diff options
Diffstat (limited to '')
89 files changed, 35353 insertions, 33082 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index a45c9fd..be4a3a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Changelog ========= +v11.4.0 +______ + +- Breaking/Improvement: Canonicalization now only quotes when safe. + v11.3.0 ------ diff --git a/docs/search.js b/docs/search.js index 9028ca3..1f8a382 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u<s.length;u++){var a=s[u];r[a]=this.pipeline.run(t.tokenizer(e[a]))}var l={};for(var c in o){var d=r[c]||r.any;if(d){var f=this.fieldSearch(d,c,o),h=o[c].boost;for(var p in f)f[p]=f[p]*h;for(var p in f)p in l?l[p]+=f[p]:l[p]=f[p]}}var v,g=[];for(var p in l)v={ref:p,score:l[p]},this.documentStore.hasDoc(p)&&(v.doc=this.documentStore.getDoc(p)),g.push(v);return g.sort(function(e,t){return t.score-e.score}),g},t.Index.prototype.fieldSearch=function(e,t,n){var i=n[t].bool,o=n[t].expand,r=n[t].boost,s=null,u={};return 0!==r?(e.forEach(function(e){var n=[e];1==o&&(n=this.index[t].expandToken(e));var r={};n.forEach(function(n){var o=this.index[t].getDocs(n),a=this.idf(n,t);if(s&&"AND"==i){var l={};for(var c in s)c in o&&(l[c]=o[c]);o=l}n==e&&this.fieldSearchStats(u,n,o);for(var c in o){var d=this.index[t].getTermFrequency(n,c),f=this.documentStore.getFieldLength(c,t),h=1;0!=f&&(h=1/Math.sqrt(f));var p=1;n!=e&&(p=.15*(1-(n.length-e.length)/n.length));var v=d*a*h*p;c in r?r[c]+=v:r[c]=v}},this),s=this.mergeScores(s,r,i)},this),s=this.coordNorm(s,u,e.length)):void 0},t.Index.prototype.mergeScores=function(e,t,n){if(!e)return t;if("AND"==n){var i={};for(var o in t)o in e&&(i[o]=e[o]+t[o]);return i}for(var o in t)o in e?e[o]+=t[o]:e[o]=t[o];return e},t.Index.prototype.fieldSearchStats=function(e,t,n){for(var i in n)i in e?e[i].push(t):e[i]=[t]},t.Index.prototype.coordNorm=function(e,t,n){for(var i in e)if(i in t){var o=t[i].length;e[i]=e[i]*o/n}return e},t.Index.prototype.toJSON=function(){var e={};return this._fields.forEach(function(t){e[t]=this.index[t].toJSON()},this),{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),index:e,pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},t.DocumentStore=function(e){this._save=null===e||void 0===e?!0:e,this.docs={},this.docInfo={},this.length=0},t.DocumentStore.load=function(e){var t=new this;return t.length=e.length,t.docs=e.docs,t.docInfo=e.docInfo,t._save=e.save,t},t.DocumentStore.prototype.isDocStored=function(){return this._save},t.DocumentStore.prototype.addDoc=function(t,n){this.hasDoc(t)||this.length++,this.docs[t]=this._save===!0?e(n):null},t.DocumentStore.prototype.getDoc=function(e){return this.hasDoc(e)===!1?null:this.docs[e]},t.DocumentStore.prototype.hasDoc=function(e){return e in this.docs},t.DocumentStore.prototype.removeDoc=function(e){this.hasDoc(e)&&(delete this.docs[e],delete this.docInfo[e],this.length--)},t.DocumentStore.prototype.addFieldLength=function(e,t,n){null!==e&&void 0!==e&&0!=this.hasDoc(e)&&(this.docInfo[e]||(this.docInfo[e]={}),this.docInfo[e][t]=n)},t.DocumentStore.prototype.updateFieldLength=function(e,t,n){null!==e&&void 0!==e&&0!=this.hasDoc(e)&&this.addFieldLength(e,t,n)},t.DocumentStore.prototype.getFieldLength=function(e,t){return null===e||void 0===e?0:e in this.docs&&t in this.docInfo[e]?this.docInfo[e][t]:0},t.DocumentStore.prototype.toJSON=function(){return{docs:this.docs,docInfo:this.docInfo,length:this.length,save:this._save}},t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,u="^("+o+")?"+r+o+"("+r+")?$",a="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,c=new RegExp(s),d=new RegExp(a),f=new RegExp(u),h=new RegExp(l),p=/^(.+?)(ss|i)es$/,v=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,m=/^(.+?)(ed|ing)$/,y=/.$/,S=/(at|bl|iz)$/,x=new RegExp("([^aeiouylsz])\\1$"),w=new RegExp("^"+o+i+"[^aeiouwxy]$"),I=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,D=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,P=/ll$/,k=new RegExp("^"+o+i+"[^aeiouwxy]$"),z=function(n){var i,o,r,s,u,a,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,u=v,s.test(n)?n=n.replace(s,"$1$2"):u.test(n)&&(n=n.replace(u,"$1$2")),s=g,u=m,s.test(n)){var z=s.exec(n);s=c,s.test(z[1])&&(s=y,n=n.replace(s,""))}else if(u.test(n)){var z=u.exec(n);i=z[1],u=h,u.test(i)&&(n=i,u=S,a=x,l=w,u.test(n)?n+="e":a.test(n)?(s=y,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=I,s.test(n)){var z=s.exec(n);i=z[1],n=i+"i"}if(s=b,s.test(n)){var z=s.exec(n);i=z[1],o=z[2],s=c,s.test(i)&&(n=i+e[o])}if(s=E,s.test(n)){var z=s.exec(n);i=z[1],o=z[2],s=c,s.test(i)&&(n=i+t[o])}if(s=D,u=F,s.test(n)){var z=s.exec(n);i=z[1],s=d,s.test(i)&&(n=i)}else if(u.test(n)){var z=u.exec(n);i=z[1]+z[2],u=d,u.test(i)&&(n=i)}if(s=_,s.test(n)){var z=s.exec(n);i=z[1],s=d,u=f,a=k,(s.test(i)||u.test(i)&&!a.test(i))&&(n=i)}return s=P,u=d,s.test(n)&&u.test(n)&&(s=y,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return z}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==!0?e:void 0},t.clearStopWords=function(){t.stopWordFilter.stopWords={}},t.addStopWords=function(e){null!=e&&Array.isArray(e)!==!1&&e.forEach(function(e){t.stopWordFilter.stopWords[e]=!0},this)},t.resetStopWords=function(){t.stopWordFilter.stopWords=t.defaultStopWords},t.defaultStopWords={"":!0,a:!0,able:!0,about:!0,across:!0,after:!0,all:!0,almost:!0,also:!0,am:!0,among:!0,an:!0,and:!0,any:!0,are:!0,as:!0,at:!0,be:!0,because:!0,been:!0,but:!0,by:!0,can:!0,cannot:!0,could:!0,dear:!0,did:!0,"do":!0,does:!0,either:!0,"else":!0,ever:!0,every:!0,"for":!0,from:!0,get:!0,got:!0,had:!0,has:!0,have:!0,he:!0,her:!0,hers:!0,him:!0,his:!0,how:!0,however:!0,i:!0,"if":!0,"in":!0,into:!0,is:!0,it:!0,its:!0,just:!0,least:!0,let:!0,like:!0,likely:!0,may:!0,me:!0,might:!0,most:!0,must:!0,my:!0,neither:!0,no:!0,nor:!0,not:!0,of:!0,off:!0,often:!0,on:!0,only:!0,or:!0,other:!0,our:!0,own:!0,rather:!0,said:!0,say:!0,says:!0,she:!0,should:!0,since:!0,so:!0,some:!0,than:!0,that:!0,the:!0,their:!0,them:!0,then:!0,there:!0,these:!0,they:!0,"this":!0,tis:!0,to:!0,too:!0,twas:!0,us:!0,wants:!0,was:!0,we:!0,were:!0,what:!0,when:!0,where:!0,which:!0,"while":!0,who:!0,whom:!0,why:!0,will:!0,"with":!0,would:!0,yet:!0,you:!0,your:!0},t.stopWordFilter.stopWords=t.defaultStopWords,t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(e){if(null===e||void 0===e)throw new Error("token should not be undefined");return e.replace(/^\W+/,"").replace(/\W+$/,"")},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.InvertedIndex=function(){this.root={docs:{},df:0}},t.InvertedIndex.load=function(e){var t=new this;return t.root=e.root,t},t.InvertedIndex.prototype.addToken=function(e,t,n){for(var n=n||this.root,i=0;i<=e.length-1;){var o=e[i];o in n||(n[o]={docs:{},df:0}),i+=1,n=n[o]}var r=t.ref;n.docs[r]?n.docs[r]={tf:t.tf}:(n.docs[r]={tf:t.tf},n.df+=1)},t.InvertedIndex.prototype.hasToken=function(e){if(!e)return!1;for(var t=this.root,n=0;n<e.length;n++){if(!t[e[n]])return!1;t=t[e[n]]}return!0},t.InvertedIndex.prototype.getNode=function(e){if(!e)return null;for(var t=this.root,n=0;n<e.length;n++){if(!t[e[n]])return null;t=t[e[n]]}return t},t.InvertedIndex.prototype.getDocs=function(e){var t=this.getNode(e);return null==t?{}:t.docs},t.InvertedIndex.prototype.getTermFrequency=function(e,t){var n=this.getNode(e);return null==n?0:t in n.docs?n.docs[t].tf:0},t.InvertedIndex.prototype.getDocFreq=function(e){var t=this.getNode(e);return null==t?0:t.df},t.InvertedIndex.prototype.removeToken=function(e,t){if(e){var n=this.getNode(e);null!=n&&t in n.docs&&(delete n.docs[t],n.df-=1)}},t.InvertedIndex.prototype.expandToken=function(e,t,n){if(null==e||""==e)return[];var t=t||[];if(void 0==n&&(n=this.getNode(e),null==n))return t;n.df>0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e<arguments.length;e++)t=arguments[e],~this.indexOf(t)||this.elements.splice(this.locationFor(t),0,t);this.length=this.elements.length},lunr.SortedSet.prototype.toArray=function(){return this.elements.slice()},lunr.SortedSet.prototype.map=function(e,t){return this.elements.map(e,t)},lunr.SortedSet.prototype.forEach=function(e,t){return this.elements.forEach(e,t)},lunr.SortedSet.prototype.indexOf=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]<u[i]?n++:s[n]>u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o<r.length;o++)i.add(r[o]);return i},lunr.SortedSet.prototype.toJSON=function(){return this.toArray()},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.elasticlunr=t()}(this,function(){return t})}(); - /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"sqlglot": {"fullname": "sqlglot", "modulename": "sqlglot", "kind": "module", "doc": "<h1 id=\"sqlglot\">SQLGlot</h1>\n\n<p>SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and engine. It can be used to format SQL or translate between <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/dialects/__init__.py\">19 different dialects</a> like <a href=\"https://duckdb.org/\">DuckDB</a>, <a href=\"https://prestodb.io/\">Presto</a>, <a href=\"https://spark.apache.org/\">Spark</a>, <a href=\"https://www.snowflake.com/en/\">Snowflake</a>, and <a href=\"https://cloud.google.com/bigquery/\">BigQuery</a>. It aims to read a wide variety of SQL inputs and output syntactically correct SQL in the targeted dialects.</p>\n\n<p>It is a very comprehensive generic SQL parser with a robust <a href=\"https://github.com/tobymao/sqlglot/blob/main/tests/\">test suite</a>. It is also quite <a href=\"#benchmarks\">performant</a>, while being written purely in Python.</p>\n\n<p>You can easily <a href=\"#custom-dialects\">customize</a> the parser, <a href=\"#metadata\">analyze</a> queries, traverse expression trees, and programmatically <a href=\"#build-and-modify-sql\">build</a> SQL.</p>\n\n<p>Syntax <a href=\"#parser-errors\">errors</a> are highlighted and dialect incompatibilities can warn or raise depending on configurations. However, it should be noted that SQL validation is not SQLGlot\u2019s goal, so some syntax errors may go unnoticed.</p>\n\n<p>Contributions are very welcome in SQLGlot; read the <a href=\"https://github.com/tobymao/sqlglot/blob/main/CONTRIBUTING.md\">contribution guide</a> to get started!</p>\n\n<h2 id=\"table-of-contents\">Table of Contents</h2>\n\n<ul>\n<li><a href=\"#install\">Install</a></li>\n<li><a href=\"#get-in-touch\">Get in Touch</a></li>\n<li><a href=\"#examples\">Examples</a>\n<ul>\n<li><a href=\"#formatting-and-transpiling\">Formatting and Transpiling</a></li>\n<li><a href=\"#metadata\">Metadata</a></li>\n<li><a href=\"#parser-errors\">Parser Errors</a></li>\n<li><a href=\"#unsupported-errors\">Unsupported Errors</a></li>\n<li><a href=\"#build-and-modify-sql\">Build and Modify SQL</a></li>\n<li><a href=\"#sql-optimizer\">SQL Optimizer</a></li>\n<li><a href=\"#ast-introspection\">AST Introspection</a></li>\n<li><a href=\"#ast-diff\">AST Diff</a></li>\n<li><a href=\"#custom-dialects\">Custom Dialects</a></li>\n<li><a href=\"#sql-execution\">SQL Execution</a></li>\n</ul></li>\n<li><a href=\"#used-by\">Used By</a></li>\n<li><a href=\"#documentation\">Documentation</a></li>\n<li><a href=\"#run-tests-and-lint\">Run Tests and Lint</a></li>\n<li><a href=\"#benchmarks\">Benchmarks</a></li>\n<li><a href=\"#optional-dependencies\">Optional Dependencies</a></li>\n</ul>\n\n<h2 id=\"install\">Install</h2>\n\n<p>From PyPI:</p>\n\n<pre><code>pip3 install sqlglot\n</code></pre>\n\n<p>Or with a local checkout:</p>\n\n<pre><code>make install\n</code></pre>\n\n<p>Requirements for development (optional):</p>\n\n<pre><code>make install-dev\n</code></pre>\n\n<h2 id=\"get-in-touch\">Get in Touch</h2>\n\n<p>We'd love to hear from you. Join our community <a href=\"https://join.slack.com/t/tobiko-data/shared_invite/zt-1ma66d79v-a4dbf4DUpLAQJ8ptQrJygg\">Slack channel</a>!</p>\n\n<h2 id=\"examples\">Examples</h2>\n\n<h3 id=\"formatting-and-transpiling\">Formatting and Transpiling</h3>\n\n<p>Easily translate from one dialect to another. For example, date/time functions vary from dialects and can be hard to deal with:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT EPOCH_MS(1618088028295)"</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s2\">"duckdb"</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"hive"</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT FROM_UNIXTIME(1618088028295 / 1000)'</span>\n</code></pre>\n</div>\n\n<p>SQLGlot can even translate custom time formats:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT STRFTIME(x, '%y-%-m-%S')"</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s2\">"duckdb"</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"hive"</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"ss\">"SELECT DATE_FORMAT(x, 'yy-M-ss')"</span>\n</code></pre>\n</div>\n\n<p>As another example, let's suppose that we want to read in a SQL query that contains a CTE and a cast to <code>REAL</code>, and then transpile it to Spark, which uses backticks for identifiers and <code>FLOAT</code> instead of <code>REAL</code>:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n\n<span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"""WITH baz AS (SELECT a, c FROM foo WHERE a = 1) SELECT f.a, b.b, baz.c, CAST("b"."a" AS REAL) d FROM foo f JOIN bar b ON f.a = b.a LEFT JOIN baz ON f.a = baz.a"""</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"spark"</span><span class=\"p\">,</span> <span class=\"n\">identify</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">])</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">WITH</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"k\">c</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">foo</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span>\n<span class=\"p\">)</span>\n<span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"k\">c</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">FLOAT</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">d</span><span class=\"o\">`</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">foo</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span>\n<span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">bar</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span>\n<span class=\"k\">LEFT</span><span class=\"w\"> </span><span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span>\n</code></pre>\n</div>\n\n<p>Comments are also preserved in a best-effort basis when transpiling SQL code:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"""</span>\n<span class=\"s2\">/* multi</span>\n<span class=\"s2\"> line</span>\n<span class=\"s2\"> comment</span>\n<span class=\"s2\">*/</span>\n<span class=\"s2\">SELECT</span>\n<span class=\"s2\"> tbl.cola /* comment 1 */ + tbl.colb /* comment 2 */,</span>\n<span class=\"s2\"> CAST(x AS INT), # comment 3</span>\n<span class=\"s2\"> y -- comment 4</span>\n<span class=\"s2\">FROM</span>\n<span class=\"s2\"> bar /* comment 5 */,</span>\n<span class=\"s2\"> tbl # comment 6</span>\n<span class=\"s2\">"""</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s1\">'mysql'</span><span class=\"p\">,</span> <span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">])</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"cm\">/* multi</span>\n<span class=\"cm\"> line</span>\n<span class=\"cm\"> comment</span>\n<span class=\"cm\">*/</span>\n<span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"n\">tbl</span><span class=\"p\">.</span><span class=\"n\">cola</span><span class=\"w\"> </span><span class=\"cm\">/* comment 1 */</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"n\">tbl</span><span class=\"p\">.</span><span class=\"n\">colb</span><span class=\"w\"> </span><span class=\"cm\">/* comment 2 */</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">INT</span><span class=\"p\">),</span><span class=\"w\"> </span><span class=\"cm\">/* comment 3 */</span>\n<span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"cm\">/* comment 4 */</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"w\"> </span><span class=\"cm\">/* comment 5 */</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"n\">tbl</span><span class=\"w\"> </span><span class=\"cm\">/* comment 6 */</span>\n</code></pre>\n</div>\n\n<h3 id=\"metadata\">Metadata</h3>\n\n<p>You can explore SQL with expression helpers to do things like find columns and tables:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span><span class=\"p\">,</span> <span class=\"n\">exp</span>\n\n<span class=\"c1\"># print all column references (a and b)</span>\n<span class=\"k\">for</span> <span class=\"n\">column</span> <span class=\"ow\">in</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a, b + 1 AS c FROM d"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find_all</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">alias_or_name</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># find all projections in select statements (a and c)</span>\n<span class=\"k\">for</span> <span class=\"n\">select</span> <span class=\"ow\">in</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a, b + 1 AS c FROM d"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find_all</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">projection</span> <span class=\"ow\">in</span> <span class=\"n\">select</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">projection</span><span class=\"o\">.</span><span class=\"n\">alias_or_name</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># find all tables (x, y, z)</span>\n<span class=\"k\">for</span> <span class=\"n\">table</span> <span class=\"ow\">in</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x JOIN y JOIN z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find_all</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"parser-errors\">Parser Errors</h3>\n\n<p>When the parser detects an error in the syntax, it raises a ParserError:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT foo( FROM bar"</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<pre><code>sqlglot.errors.ParseError: Expecting ). Line 1, Col: 13.\n select foo( FROM bar\n ~~~~\n</code></pre>\n\n<p>Structured syntax errors are accessible for programmatic use:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"k\">try</span><span class=\"p\">:</span>\n <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT foo( FROM bar"</span><span class=\"p\">)</span>\n<span class=\"k\">except</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ParseError</span> <span class=\"k\">as</span> <span class=\"n\">e</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">[{</span>\n <span class=\"s1\">'description'</span><span class=\"p\">:</span> <span class=\"s1\">'Expecting )'</span><span class=\"p\">,</span>\n <span class=\"s1\">'line'</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n <span class=\"s1\">'col'</span><span class=\"p\">:</span> <span class=\"mi\">13</span><span class=\"p\">,</span>\n <span class=\"s1\">'start_context'</span><span class=\"p\">:</span> <span class=\"s1\">'SELECT foo( '</span><span class=\"p\">,</span>\n <span class=\"s1\">'highlight'</span><span class=\"p\">:</span> <span class=\"s1\">'FROM'</span><span class=\"p\">,</span>\n <span class=\"s1\">'end_context'</span><span class=\"p\">:</span> <span class=\"s1\">' bar'</span>\n<span class=\"p\">}]</span>\n</code></pre>\n</div>\n\n<h3 id=\"unsupported-errors\">Unsupported Errors</h3>\n\n<p>Presto <code>APPROX_DISTINCT</code> supports the accuracy argument which is not supported in Hive:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT APPROX_DISTINCT(a, 0.1) FROM foo"</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s2\">"presto"</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"hive"</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">APPROX_COUNT_DISTINCT</span><span class=\"w\"> </span><span class=\"n\">does</span><span class=\"w\"> </span><span class=\"k\">not</span><span class=\"w\"> </span><span class=\"n\">support</span><span class=\"w\"> </span><span class=\"n\">accuracy</span>\n<span class=\"s1\">'SELECT APPROX_COUNT_DISTINCT(a) FROM foo'</span>\n</code></pre>\n</div>\n\n<h3 id=\"build-and-modify-sql\">Build and Modify SQL</h3>\n\n<p>SQLGlot supports incrementally building sql expressions:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">select</span><span class=\"p\">,</span> <span class=\"n\">condition</span>\n\n<span class=\"n\">where</span> <span class=\"o\">=</span> <span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span>\n<span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"n\">where</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT * FROM y WHERE x = 1 AND y = 1'</span>\n</code></pre>\n</div>\n\n<p>You can also modify a parsed tree:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT x FROM y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT x FROM y, z'</span>\n</code></pre>\n</div>\n\n<p>There is also a way to recursively transform the parsed tree by applying a mapping function to each tree node:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n\n<span class=\"n\">expression_tree</span> <span class=\"o\">=</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM x"</span><span class=\"p\">)</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">transformer</span><span class=\"p\">(</span><span class=\"n\">node</span><span class=\"p\">):</span>\n <span class=\"k\">if</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">node</span><span class=\"p\">,</span> <span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">)</span> <span class=\"ow\">and</span> <span class=\"n\">node</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">"a"</span><span class=\"p\">:</span>\n <span class=\"k\">return</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"FUN(a)"</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">node</span>\n\n<span class=\"n\">transformed_tree</span> <span class=\"o\">=</span> <span class=\"n\">expression_tree</span><span class=\"o\">.</span><span class=\"n\">transform</span><span class=\"p\">(</span><span class=\"n\">transformer</span><span class=\"p\">)</span>\n<span class=\"n\">transformed_tree</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT FUN(a) FROM x'</span>\n</code></pre>\n</div>\n\n<h3 id=\"sql-optimizer\">SQL Optimizer</h3>\n\n<p>SQLGlot can rewrite queries into an \"optimized\" form. It performs a variety of <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/optimizer/optimizer.py\">techniques</a> to create a new canonical AST. This AST can be used to standardize queries or provide the foundations for implementing an actual engine. For example:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.optimizer</span> <span class=\"kn\">import</span> <span class=\"n\">optimize</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span>\n <span class=\"n\">optimize</span><span class=\"p\">(</span>\n <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"""</span>\n<span class=\"s2\"> SELECT A OR (B OR (C AND D))</span>\n<span class=\"s2\"> FROM x</span>\n<span class=\"s2\"> WHERE Z = date '2021-01-01' + INTERVAL '1' month OR 1 = 0</span>\n<span class=\"s2\"> """</span><span class=\"p\">),</span>\n <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">"x"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"A"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"B"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"C"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"D"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"Z"</span><span class=\"p\">:</span> <span class=\"s2\">"STRING"</span><span class=\"p\">}}</span>\n <span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"a"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"b"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"c"</span>\n<span class=\"w\"> </span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"a"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"b"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"d"</span>\n<span class=\"w\"> </span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"_col_0"</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"x"</span>\n<span class=\"k\">WHERE</span>\n<span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"z"</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">DATE</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"s1\">'2021-02-01'</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">DATE</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"ast-introspection\">AST Introspection</h3>\n\n<p>You can see the AST version of the sql by calling <code>repr</code>:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"nb\">repr</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a + 1 AS z"</span><span class=\"p\">)))</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">(</span><span class=\"n\">SELECT</span> <span class=\"n\">expressions</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">ALIAS</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">ADD</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">expression</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">LITERAL</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"n\">is_string</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">alias</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">z</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)))</span>\n</code></pre>\n</div>\n\n<h3 id=\"ast-diff\">AST Diff</h3>\n\n<p>SQLGlot can calculate the difference between two expressions and output changes in a form of a sequence of actions needed to transform a source expression into a target one:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">diff</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a + b, c, d"</span><span class=\"p\">),</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT c, a - b, d"</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">[</span>\n <span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">ADD</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">expression</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)))),</span>\n <span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">SUB</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">expression</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)))),</span>\n <span class=\"n\">Move</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">c</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">))),</span>\n <span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">),</span> <span class=\"n\">target</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span>\n <span class=\"o\">...</span>\n<span class=\"p\">]</span>\n</code></pre>\n</div>\n\n<p>See also: <a href=\"https://github.com/tobymao/sqlglot/blob/main/posts/sql_diff.md\">Semantic Diff for SQL</a>.</p>\n\n<h3 id=\"custom-dialects\">Custom Dialects</h3>\n\n<p><a href=\"https://github.com/tobymao/sqlglot/tree/main/sqlglot/dialects\">Dialects</a> can be added by subclassing <code>Dialect</code>:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dialects.dialect</span> <span class=\"kn\">import</span> <span class=\"n\">Dialect</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.generator</span> <span class=\"kn\">import</span> <span class=\"n\">Generator</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.tokens</span> <span class=\"kn\">import</span> <span class=\"n\">Tokenizer</span><span class=\"p\">,</span> <span class=\"n\">TokenType</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Custom</span><span class=\"p\">(</span><span class=\"n\">Dialect</span><span class=\"p\">):</span>\n <span class=\"k\">class</span> <span class=\"nc\">Tokenizer</span><span class=\"p\">(</span><span class=\"n\">Tokenizer</span><span class=\"p\">):</span>\n <span class=\"n\">QUOTES</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"'"</span><span class=\"p\">,</span> <span class=\"s1\">'"'</span><span class=\"p\">]</span>\n <span class=\"n\">IDENTIFIERS</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"`"</span><span class=\"p\">]</span>\n\n <span class=\"n\">KEYWORDS</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <span class=\"o\">**</span><span class=\"n\">Tokenizer</span><span class=\"o\">.</span><span class=\"n\">KEYWORDS</span><span class=\"p\">,</span>\n <span class=\"s2\">"INT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">BIGINT</span><span class=\"p\">,</span>\n <span class=\"s2\">"FLOAT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">DOUBLE</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n\n <span class=\"k\">class</span> <span class=\"nc\">Generator</span><span class=\"p\">(</span><span class=\"n\">Generator</span><span class=\"p\">):</span>\n <span class=\"n\">TRANSFORMS</span> <span class=\"o\">=</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=\"k\">lambda</span> <span class=\"bp\">self</span><span class=\"p\">,</span> <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\">expressions</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">)</span><span class=\"si\">}</span><span class=\"s2\">]"</span><span class=\"p\">}</span>\n\n <span class=\"n\">TYPE_MAPPING</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <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\">TINYINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">SMALLINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">"INT64"</span><span class=\"p\">,</span>\n <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\">BIGINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">DECIMAL</span><span class=\"p\">:</span> <span class=\"s2\">"NUMERIC"</span><span class=\"p\">,</span>\n <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\">FLOAT</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">DOUBLE</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">BOOLEAN</span><span class=\"p\">:</span> <span class=\"s2\">"BOOL"</span><span class=\"p\">,</span>\n <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\">TEXT</span><span class=\"p\">:</span> <span class=\"s2\">"STRING"</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">Dialect</span><span class=\"p\">[</span><span class=\"s2\">"custom"</span><span class=\"p\">])</span>\n</code></pre>\n</div>\n\n<pre><code><class '__main__.Custom'>\n</code></pre>\n\n<h3 id=\"sql-execution\">SQL Execution</h3>\n\n<p>One can even interpret SQL queries using SQLGlot, where the tables are represented as Python dictionaries. Although the engine is not very fast (it's not supposed to be) and is in a relatively early stage of development, it can be useful for unit testing and running SQL natively across Python objects. Additionally, the foundation can be easily integrated with fast compute kernels (arrow, pandas). Below is an example showcasing the execution of a SELECT expression that involves aggregations and JOINs:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot.executor</span> <span class=\"kn\">import</span> <span class=\"n\">execute</span>\n\n<span class=\"n\">tables</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <span class=\"s2\">"sushi"</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"price"</span><span class=\"p\">:</span> <span class=\"mf\">1.0</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"price"</span><span class=\"p\">:</span> <span class=\"mf\">2.0</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"price"</span><span class=\"p\">:</span> <span class=\"mf\">3.0</span><span class=\"p\">},</span>\n <span class=\"p\">],</span>\n <span class=\"s2\">"order_items"</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">},</span>\n <span class=\"p\">],</span>\n <span class=\"s2\">"orders"</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"user_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"user_id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">},</span>\n <span class=\"p\">],</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">execute</span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"sd\">"""</span>\n<span class=\"sd\"> SELECT</span>\n<span class=\"sd\"> o.user_id,</span>\n<span class=\"sd\"> SUM(s.price) AS price</span>\n<span class=\"sd\"> FROM orders o</span>\n<span class=\"sd\"> JOIN order_items i</span>\n<span class=\"sd\"> ON o.id = i.order_id</span>\n<span class=\"sd\"> JOIN sushi s</span>\n<span class=\"sd\"> ON i.sushi_id = s.id</span>\n<span class=\"sd\"> GROUP BY o.user_id</span>\n<span class=\"sd\"> """</span><span class=\"p\">,</span>\n <span class=\"n\">tables</span><span class=\"o\">=</span><span class=\"n\">tables</span>\n<span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">user_id</span> <span class=\"n\">price</span>\n <span class=\"mi\">1</span> <span class=\"mf\">4.0</span>\n <span class=\"mi\">2</span> <span class=\"mf\">3.0</span>\n</code></pre>\n</div>\n\n<p>See also: <a href=\"https://github.com/tobymao/sqlglot/blob/main/posts/python_sql_engine.md\">Writing a Python SQL engine from scratch</a>.</p>\n\n<h2 id=\"used-by\">Used By</h2>\n\n<ul>\n<li><a href=\"https://github.com/fugue-project/fugue\">Fugue</a></li>\n<li><a href=\"https://github.com/ibis-project/ibis\">ibis</a></li>\n<li><a href=\"https://github.com/kelsin/mysql-mimic\">mysql-mimic</a></li>\n<li><a href=\"https://github.com/pinterest/querybook\">Querybook</a></li>\n<li><a href=\"https://github.com/marsupialtail/quokka\">Quokka</a></li>\n<li><a href=\"https://github.com/moj-analytical-services/splink\">Splink</a></li>\n</ul>\n\n<h2 id=\"documentation\">Documentation</h2>\n\n<p>SQLGlot uses <a href=\"https://pdoc.dev/\">pdoc</a> to serve its API documentation:</p>\n\n<pre><code>make docs-serve\n</code></pre>\n\n<h2 id=\"run-tests-and-lint\">Run Tests and Lint</h2>\n\n<pre><code>make check # Set SKIP_INTEGRATION=1 to skip integration tests\n</code></pre>\n\n<h2 id=\"benchmarks\">Benchmarks</h2>\n\n<p><a href=\"https://github.com/tobymao/sqlglot/blob/main/benchmarks/bench.py\">Benchmarks</a> run on Python 3.10.5 in seconds.</p>\n\n<table>\n<thead>\n<tr>\n <th>Query</th>\n <th>sqlglot</th>\n <th>sqlfluff</th>\n <th>sqltree</th>\n <th>sqlparse</th>\n <th>moz_sql_parser</th>\n <th>sqloxide</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n <td>tpch</td>\n <td>0.01308 (1.0)</td>\n <td>1.60626 (122.7)</td>\n <td>0.01168 (0.893)</td>\n <td>0.04958 (3.791)</td>\n <td>0.08543 (6.531)</td>\n <td>0.00136 (0.104)</td>\n</tr>\n<tr>\n <td>short</td>\n <td>0.00109 (1.0)</td>\n <td>0.14134 (129.2)</td>\n <td>0.00099 (0.906)</td>\n <td>0.00342 (3.131)</td>\n <td>0.00652 (5.970)</td>\n <td>8.76E-5 (0.080)</td>\n</tr>\n<tr>\n <td>long</td>\n <td>0.01399 (1.0)</td>\n <td>2.12632 (151.9)</td>\n <td>0.01126 (0.805)</td>\n <td>0.04410 (3.151)</td>\n <td>0.06671 (4.767)</td>\n <td>0.00107 (0.076)</td>\n</tr>\n<tr>\n <td>crazy</td>\n <td>0.03969 (1.0)</td>\n <td>24.3777 (614.1)</td>\n <td>0.03917 (0.987)</td>\n <td>11.7043 (294.8)</td>\n <td>1.03280 (26.02)</td>\n <td>0.00625 (0.157)</td>\n</tr>\n</tbody>\n</table>\n\n<h2 id=\"optional-dependencies\">Optional Dependencies</h2>\n\n<p>SQLGlot uses <a href=\"https://github.com/dateutil/dateutil\">dateutil</a> to simplify literal timedelta expressions. The optimizer will not simplify expressions like the following if the module cannot be found:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"nb\">interval</span><span class=\"w\"> </span><span class=\"s1\">'1'</span><span class=\"w\"> </span><span class=\"k\">month</span>\n</code></pre>\n</div>\n\n<hr />\n"}, "sqlglot.pretty": {"fullname": "sqlglot.pretty", "modulename": "sqlglot", "qualname": "pretty", "kind": "variable", "doc": "<p>Whether to format generated SQL by default.</p>\n", "default_value": "False"}, "sqlglot.schema": {"fullname": "sqlglot.schema", "modulename": "sqlglot.schema", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.parse": {"fullname": "sqlglot.parse", "modulename": "sqlglot", "qualname": "parse", "kind": "function", "doc": "<p>Parses the given SQL string into a collection of syntax trees, one per parsed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> the SQL code string to parse.</li>\n<li><strong>read:</strong> the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>**opts:</strong> other <code>sqlglot.parser.Parser</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The resulting syntax tree collection.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parse_one": {"fullname": "sqlglot.parse_one", "modulename": "sqlglot", "qualname": "parse_one", "kind": "function", "doc": "<p>Parses the given SQL string and returns a syntax tree for the first parsed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> the SQL code string to parse.</li>\n<li><strong>read:</strong> the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>into:</strong> the SQLGlot Expression to parse into.</li>\n<li><strong>**opts:</strong> other <code>sqlglot.parser.Parser</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The syntax tree for the first parsed statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">into</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transpile": {"fullname": "sqlglot.transpile", "modulename": "sqlglot", "qualname": "transpile", "kind": "function", "doc": "<p>Parses the given SQL string in accordance with the source dialect and returns a list of SQL strings transformed\nto conform to the target dialect. Each string in the returned list represents a single transformed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> the SQL code string to transpile.</li>\n<li><strong>read:</strong> the source dialect used to parse the input string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>write:</strong> the target dialect into which the input should be transformed (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>identity:</strong> if set to <code>True</code> and if the target dialect is not specified the source dialect will be used as both:\nthe source and the target dialect.</li>\n<li><strong>error_level:</strong> the desired error level of the parser.</li>\n<li><strong>**opts:</strong> other <code>sqlglot.generator.Generator</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of transpiled SQL statements.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">write</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identity</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">error_level</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ErrorLevel</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe": {"fullname": "sqlglot.dataframe", "modulename": "sqlglot.dataframe", "kind": "module", "doc": "<h1 id=\"pyspark-dataframe-sql-generator\">PySpark DataFrame SQL Generator</h1>\n\n<p>This is a drop-in replacement for the PySpark DataFrame API that will generate SQL instead of executing DataFrame operations directly. This, when combined with the transpiling support in SQLGlot, allows one to write PySpark DataFrame code and execute it on other engines like <a href=\"https://duckdb.org/\">DuckDB</a>, <a href=\"https://prestodb.io/\">Presto</a>, <a href=\"https://spark.apache.org/\">Spark</a>, <a href=\"https://www.snowflake.com/en/\">Snowflake</a>, and <a href=\"https://cloud.google.com/bigquery/\">BigQuery</a>. </p>\n\n<p>Currently many of the common operations are covered and more functionality will be added over time. Please <a href=\"https://github.com/tobymao/sqlglot/issues\">open an issue</a> or <a href=\"https://github.com/tobymao/sqlglot/pulls\">PR</a> with your feedback or contribution to help influence what should be prioritized next and make sure your use case is properly supported.</p>\n\n<h1 id=\"how-to-use\">How to use</h1>\n\n<h2 id=\"instructions\">Instructions</h2>\n\n<ul>\n<li><a href=\"https://github.com/tobymao/sqlglot/blob/main/README.md#install\">Install SQLGlot</a> and that is all that is required to just generate SQL. <a href=\"#examples\">The examples</a> show generating SQL and then executing that SQL on a specific engine and that will require that engine's client library.</li>\n<li>Find/replace all <code>from pyspark.sql</code> with <code>from sqlglot.dataframe</code>.</li>\n<li>Prior to any <code>spark.read.table</code> or <code>spark.table</code> run <code>sqlglot.schema.add_table('<table_name>', <column_structure>)</code>.\n<ul>\n<li>The column structure can be defined the following ways:\n<ul>\n<li>Dictionary where the keys are column names and values are string of the Spark SQL type name.\n<ul>\n<li>Ex: <code>{'cola': 'string', 'colb': 'int'}</code></li>\n</ul></li>\n<li>PySpark DataFrame <code>StructType</code> similar to when using <code>createDataFrame</code>.\n<ul>\n<li>Ex: <code>StructType([StructField('cola', StringType()), StructField('colb', IntegerType())])</code></li>\n</ul></li>\n<li>A string of names and types similar to what is supported in <code>createDataFrame</code>.\n<ul>\n<li>Ex: <code>cola: STRING, colb: INT</code></li>\n</ul></li>\n<li>[Not Recommended] A list of string column names without type.\n<ul>\n<li>Ex: <code>['cola', 'colb']</code></li>\n<li>The lack of types may limit functionality in future releases.</li>\n</ul></li>\n</ul></li>\n<li>See <a href=\"#registering-custom-schema-class\">Registering Custom Schema</a> for information on how to skip this step if the information is stored externally.</li>\n</ul></li>\n<li>Add <code>.sql(pretty=True)</code> to your final DataFrame command to return a list of sql statements to run that command.\n<ul>\n<li>In most cases a single SQL statement is returned. Currently the only exception is when caching DataFrames which isn't supported in other dialects. </li>\n<li>Spark is the default output dialect. See <a href=\"https://github.com/tobymao/sqlglot/tree/main/sqlglot/dialects\">dialects</a> for a full list of dialects.</li>\n<li>Ex: <code>.sql(pretty=True, dialect='bigquery')</code></li>\n</ul></li>\n</ul>\n\n<h2 id=\"examples\">Examples</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">add_table</span><span class=\"p\">(</span><span class=\"s1\">'employee'</span><span class=\"p\">,</span> <span class=\"p\">{</span>\n <span class=\"s1\">'employee_id'</span><span class=\"p\">:</span> <span class=\"s1\">'INT'</span><span class=\"p\">,</span>\n <span class=\"s1\">'fname'</span><span class=\"p\">:</span> <span class=\"s1\">'STRING'</span><span class=\"p\">,</span>\n <span class=\"s1\">'lname'</span><span class=\"p\">:</span> <span class=\"s1\">'STRING'</span><span class=\"p\">,</span>\n <span class=\"s1\">'age'</span><span class=\"p\">:</span> <span class=\"s1\">'INT'</span><span class=\"p\">,</span>\n<span class=\"p\">})</span> <span class=\"c1\"># Register the table structure prior to reading from the table</span>\n\n<span class=\"n\">spark</span> <span class=\"o\">=</span> <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n\n<span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">spark</span>\n <span class=\"o\">.</span><span class=\"n\">table</span><span class=\"p\">(</span><span class=\"s1\">'employee'</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span> \n<span class=\"p\">)</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">df</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span> <span class=\"c1\"># Spark will be the dialect used by default</span>\n</code></pre>\n</div>\n\n<pre><code>SELECT\n `employee`.`age` AS `age`,\n COUNT(DISTINCT `employee`.`employee_id`) AS `num_employees`\nFROM `employee` AS `employee`\nGROUP BY\n `employee`.`age`\n</code></pre>\n\n<h2 id=\"registering-custom-schema-class\">Registering Custom Schema Class</h2>\n\n<p>The step of adding <code>sqlglot.schema.add_table</code> can be skipped if you have the column structure stored externally like in a file or from an external metadata table. This can be done by writing a class that implements the <code>sqlglot.schema.Schema</code> abstract class and then assigning that class to <code>sqlglot.schema</code>. </p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.schema</span> <span class=\"kn\">import</span> <span class=\"n\">Schema</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">ExternalSchema</span><span class=\"p\">(</span><span class=\"n\">Schema</span><span class=\"p\">):</span>\n <span class=\"o\">...</span>\n\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">ExternalSchema</span><span class=\"p\">()</span>\n\n<span class=\"n\">spark</span> <span class=\"o\">=</span> <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n\n<span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">spark</span>\n <span class=\"o\">.</span><span class=\"n\">table</span><span class=\"p\">(</span><span class=\"s1\">'employee'</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span> \n<span class=\"p\">)</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">df</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<h2 id=\"example-implementations\">Example Implementations</h2>\n\n<h3 id=\"bigquery\">Bigquery</h3>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">google.cloud</span> <span class=\"kn\">import</span> <span class=\"n\">bigquery</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">types</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">client</span> <span class=\"o\">=</span> <span class=\"n\">bigquery</span><span class=\"o\">.</span><span class=\"n\">Client</span><span class=\"p\">()</span>\n\n<span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n <span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"Jack"</span><span class=\"p\">,</span> <span class=\"s2\">"Shephard"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"John"</span><span class=\"p\">,</span> <span class=\"s2\">"Locke"</span><span class=\"p\">,</span> <span class=\"mi\">48</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"Kate"</span><span class=\"p\">,</span> <span class=\"s2\">"Austen"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"s2\">"Claire"</span><span class=\"p\">,</span> <span class=\"s2\">"Littleton"</span><span class=\"p\">,</span> <span class=\"mi\">22</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"Hugo"</span><span class=\"p\">,</span> <span class=\"s2\">"Reyes"</span><span class=\"p\">,</span> <span class=\"mi\">26</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n<span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">([</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'employee_id'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'fname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'lname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'age'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n<span class=\"p\">])</span>\n\n<span class=\"n\">sql_statements</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n <span class=\"o\">.</span><span class=\"n\">createDataFrame</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"bigquery"</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n\n<span class=\"n\">result</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"k\">for</span> <span class=\"n\">sql</span> <span class=\"ow\">in</span> <span class=\"n\">sql_statements</span><span class=\"p\">:</span>\n <span class=\"n\">result</span> <span class=\"o\">=</span> <span class=\"n\">client</span><span class=\"o\">.</span><span class=\"n\">query</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n\n<span class=\"k\">assert</span> <span class=\"n\">result</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n<span class=\"k\">for</span> <span class=\"n\">row</span> <span class=\"ow\">in</span> <span class=\"n\">client</span><span class=\"o\">.</span><span class=\"n\">query</span><span class=\"p\">(</span><span class=\"n\">result</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"sa\">f</span><span class=\"s2\">"Age: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"s1\">'age'</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">, Num Employees: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"s1\">'num_employees'</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">"</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"snowflake\">Snowflake</h3>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">os</span>\n\n<span class=\"kn\">import</span> <span class=\"nn\">snowflake.connector</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe</span> <span class=\"kn\">import</span> <span class=\"n\">types</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">ctx</span> <span class=\"o\">=</span> <span class=\"n\">snowflake</span><span class=\"o\">.</span><span class=\"n\">connector</span><span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">(</span>\n <span class=\"n\">user</span><span class=\"o\">=</span><span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">"SNOWFLAKE_USER"</span><span class=\"p\">],</span>\n <span class=\"n\">password</span><span class=\"o\">=</span><span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">"SNOWFLAKE_PASS"</span><span class=\"p\">],</span>\n <span class=\"n\">account</span><span class=\"o\">=</span><span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">"SNOWFLAKE_ACCOUNT"</span><span class=\"p\">]</span>\n<span class=\"p\">)</span>\n<span class=\"n\">cs</span> <span class=\"o\">=</span> <span class=\"n\">ctx</span><span class=\"o\">.</span><span class=\"n\">cursor</span><span class=\"p\">()</span>\n\n<span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n <span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"Jack"</span><span class=\"p\">,</span> <span class=\"s2\">"Shephard"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"John"</span><span class=\"p\">,</span> <span class=\"s2\">"Locke"</span><span class=\"p\">,</span> <span class=\"mi\">48</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"Kate"</span><span class=\"p\">,</span> <span class=\"s2\">"Austen"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"s2\">"Claire"</span><span class=\"p\">,</span> <span class=\"s2\">"Littleton"</span><span class=\"p\">,</span> <span class=\"mi\">22</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"Hugo"</span><span class=\"p\">,</span> <span class=\"s2\">"Reyes"</span><span class=\"p\">,</span> <span class=\"mi\">26</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n<span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">([</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'employee_id'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'fname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'lname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'age'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n<span class=\"p\">])</span>\n\n<span class=\"n\">sql_statements</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n <span class=\"o\">.</span><span class=\"n\">createDataFrame</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"lname"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"snowflake"</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n\n<span class=\"k\">try</span><span class=\"p\">:</span>\n <span class=\"k\">for</span> <span class=\"n\">sql</span> <span class=\"ow\">in</span> <span class=\"n\">sql_statements</span><span class=\"p\">:</span>\n <span class=\"n\">cs</span><span class=\"o\">.</span><span class=\"n\">execute</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n <span class=\"n\">results</span> <span class=\"o\">=</span> <span class=\"n\">cs</span><span class=\"o\">.</span><span class=\"n\">fetchall</span><span class=\"p\">()</span>\n <span class=\"k\">for</span> <span class=\"n\">row</span> <span class=\"ow\">in</span> <span class=\"n\">results</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"sa\">f</span><span class=\"s2\">"Age: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">, Num Employees: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">"</span><span class=\"p\">)</span>\n<span class=\"k\">finally</span><span class=\"p\">:</span>\n <span class=\"n\">cs</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n<span class=\"n\">ctx</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<h3 id=\"spark\">Spark</h3>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">pyspark.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span> <span class=\"k\">as</span> <span class=\"n\">PySparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">types</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n <span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"Jack"</span><span class=\"p\">,</span> <span class=\"s2\">"Shephard"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"John"</span><span class=\"p\">,</span> <span class=\"s2\">"Locke"</span><span class=\"p\">,</span> <span class=\"mi\">48</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"Kate"</span><span class=\"p\">,</span> <span class=\"s2\">"Austen"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"s2\">"Claire"</span><span class=\"p\">,</span> <span class=\"s2\">"Littleton"</span><span class=\"p\">,</span> <span class=\"mi\">22</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"Hugo"</span><span class=\"p\">,</span> <span class=\"s2\">"Reyes"</span><span class=\"p\">,</span> <span class=\"mi\">26</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n<span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">([</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'employee_id'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'fname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'lname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'age'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n<span class=\"p\">])</span>\n\n<span class=\"n\">sql_statements</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n <span class=\"o\">.</span><span class=\"n\">createDataFrame</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"spark"</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n\n<span class=\"n\">pyspark</span> <span class=\"o\">=</span> <span class=\"n\">PySparkSession</span><span class=\"o\">.</span><span class=\"n\">builder</span><span class=\"o\">.</span><span class=\"n\">master</span><span class=\"p\">(</span><span class=\"s2\">"local[*]"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">getOrCreate</span><span class=\"p\">()</span>\n\n<span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"k\">for</span> <span class=\"n\">sql</span> <span class=\"ow\">in</span> <span class=\"n\">sql_statements</span><span class=\"p\">:</span>\n <span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"n\">pyspark</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n\n<span class=\"k\">assert</span> <span class=\"n\">df</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n<span class=\"n\">df</span><span class=\"o\">.</span><span class=\"n\">show</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<h1 id=\"unsupportable-operations\">Unsupportable Operations</h1>\n\n<p>Any operation that lacks a way to represent it in SQL cannot be supported by this tool. An example of this would be rdd operations. Since the DataFrame API though is mostly modeled around SQL concepts most operations can be supported.</p>\n"}, "sqlglot.dataframe.sql": {"fullname": "sqlglot.dataframe.sql", "modulename": "sqlglot.dataframe.sql", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.SparkSession": {"fullname": "sqlglot.dataframe.sql.SparkSession", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.SparkSession.table": {"fullname": "sqlglot.dataframe.sql.SparkSession.table", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">tableName</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"fullname": "sqlglot.dataframe.sql.SparkSession.createDataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.createDataFrame", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">data</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040242697968'</span><span class=\"o\">></span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040242697968'</span><span class=\"o\">></span><span class=\"p\">],</span> <span class=\"n\">Tuple</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040242889392'</span><span class=\"o\">></span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">samplingRatio</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">float</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">verifySchema</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.sql": {"fullname": "sqlglot.dataframe.sql.SparkSession.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sqlQuery</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame": {"fullname": "sqlglot.dataframe.sql.DataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrame.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrame.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">spark</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040247404352'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>,</span><span class=\"param\">\t<span class=\"n\">branch_id</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">sequence_id</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">last_op</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">operations</span><span class=\"o\">.</span><span class=\"n\">Operation</span> <span class=\"o\">=</span> <span class=\"o\"><</span><span class=\"n\">Operation</span><span class=\"o\">.</span><span class=\"n\">INIT</span><span class=\"p\">:</span> <span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">pending_hints</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">output_expression_container</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040245654720'</span><span class=\"o\">></span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrame.sql": {"fullname": "sqlglot.dataframe.sql.DataFrame.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s1\">'spark'</span>, </span><span class=\"param\"><span class=\"n\">optimize</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.copy": {"fullname": "sqlglot.dataframe.sql.DataFrame.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.select": {"fullname": "sqlglot.dataframe.sql.DataFrame.select", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.select", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.alias": {"fullname": "sqlglot.dataframe.sql.DataFrame.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.alias", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.where": {"fullname": "sqlglot.dataframe.sql.DataFrame.where", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.where", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.filter": {"fullname": "sqlglot.dataframe.sql.DataFrame.filter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.filter", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.groupBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.groupBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">group</span><span class=\"o\">.</span><span class=\"n\">GroupedData</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.agg": {"fullname": "sqlglot.dataframe.sql.DataFrame.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.agg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">exprs</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.join": {"fullname": "sqlglot.dataframe.sql.DataFrame.join", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other_df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">on</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">how</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'inner'</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.orderBy", "kind": "function", "doc": "<p>This implementation lets any ordered columns take priority over whatever is provided in <code>ascending</code>. Spark\nhas irregular behavior and can result in runtime errors. Users shouldn't be mixing the two anyways so this\nis unlikely to come up.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">ascending</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.sort": {"fullname": "sqlglot.dataframe.sql.DataFrame.sort", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sort", "kind": "function", "doc": "<p>This implementation lets any ordered columns take priority over whatever is provided in <code>ascending</code>. Spark\nhas irregular behavior and can result in runtime errors. Users shouldn't be mixing the two anyways so this\nis unlikely to come up.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">ascending</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.union": {"fullname": "sqlglot.dataframe.sql.DataFrame.union", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.union", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionAll", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionByName", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionByName", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">allowMissingColumns</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersect": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersect", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersect", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersectAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersectAll", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.exceptAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.exceptAll", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.distinct": {"fullname": "sqlglot.dataframe.sql.DataFrame.distinct", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.distinct", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropDuplicates", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropDuplicates", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropna": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropna", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">how</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'any'</span>,</span><span class=\"param\">\t<span class=\"n\">thresh</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.fillna": {"fullname": "sqlglot.dataframe.sql.DataFrame.fillna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.fillna", "kind": "function", "doc": "<p>Functionality Difference: If you provide a value to replace a null and that type conflicts\nwith the type of the column then PySpark will just ignore your replacement.\nThis will try to cast them to be the same in some cases. So they won't always match.\nBest to not mix types so make sure replacement is the same type as the column</p>\n\n<p>Possibility for improvement: Use <code>typeof</code> function to get the type of the column\nand check if it matches the type of the value provided. If not then make it null.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241487424'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.replace": {"fullname": "sqlglot.dataframe.sql.DataFrame.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.replace", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">to_replace</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241373216'</span><span class=\"o\">></span><span class=\"p\">],</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241373216'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumn", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumn", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">colName</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumnRenamed", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumnRenamed", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">existing</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">new</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.drop": {"fullname": "sqlglot.dataframe.sql.DataFrame.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.drop", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.limit": {"fullname": "sqlglot.dataframe.sql.DataFrame.limit", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.limit", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">num</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.hint": {"fullname": "sqlglot.dataframe.sql.DataFrame.hint", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.hint", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">parameters</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.repartition": {"fullname": "sqlglot.dataframe.sql.DataFrame.repartition", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.repartition", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">numPartitions</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241254496'</span><span class=\"o\">></span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241463696'</span><span class=\"o\">></span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"fullname": "sqlglot.dataframe.sql.DataFrame.coalesce", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.coalesce", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">numPartitions</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.cache": {"fullname": "sqlglot.dataframe.sql.DataFrame.cache", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.cache", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.persist": {"fullname": "sqlglot.dataframe.sql.DataFrame.persist", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.persist", "kind": "function", "doc": "<p>Storage Level Options: <a href=\"https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-aux-cache-cache-table.html\">https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-aux-cache-cache-table.html</a></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">storageLevel</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'MEMORY_AND_DISK_SER'</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData": {"fullname": "sqlglot.dataframe.sql.GroupedData", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.GroupedData.__init__": {"fullname": "sqlglot.dataframe.sql.GroupedData.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">group_by_cols</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">last_op</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">operations</span><span class=\"o\">.</span><span class=\"n\">Operation</span></span>)</span>"}, "sqlglot.dataframe.sql.GroupedData.agg": {"fullname": "sqlglot.dataframe.sql.GroupedData.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.agg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">exprs</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.count": {"fullname": "sqlglot.dataframe.sql.GroupedData.count", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.count", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.mean": {"fullname": "sqlglot.dataframe.sql.GroupedData.mean", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.mean", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.avg": {"fullname": "sqlglot.dataframe.sql.GroupedData.avg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.avg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.max": {"fullname": "sqlglot.dataframe.sql.GroupedData.max", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.max", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.min": {"fullname": "sqlglot.dataframe.sql.GroupedData.min", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.min", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.sum": {"fullname": "sqlglot.dataframe.sql.GroupedData.sum", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.sum", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.pivot": {"fullname": "sqlglot.dataframe.sql.GroupedData.pivot", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.pivot", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column": {"fullname": "sqlglot.dataframe.sql.Column", "modulename": "sqlglot.dataframe.sql", "qualname": "Column", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.Column.__init__": {"fullname": "sqlglot.dataframe.sql.Column.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040243591008'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span>)</span>"}, "sqlglot.dataframe.sql.Column.ensure_col": {"fullname": "sqlglot.dataframe.sql.Column.ensure_col", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_col", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241631040'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ensure_cols": {"fullname": "sqlglot.dataframe.sql.Column.ensure_cols", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_cols", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040242102912'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"fullname": "sqlglot.dataframe.sql.Column.invoke_anonymous_function", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.invoke_anonymous_function", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241905232'</span><span class=\"o\">></span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">func_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241781424'</span><span class=\"o\">></span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"fullname": "sqlglot.dataframe.sql.Column.invoke_expression_over_column", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.invoke_expression_over_column", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241714256'</span><span class=\"o\">></span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">callable_expression</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.binary_op": {"fullname": "sqlglot.dataframe.sql.Column.binary_op", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.binary_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">klass</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241710320'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"fullname": "sqlglot.dataframe.sql.Column.inverse_binary_op", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.inverse_binary_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">klass</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040241702144'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.unary_op": {"fullname": "sqlglot.dataframe.sql.Column.unary_op", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.unary_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">klass</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ensure_literal": {"fullname": "sqlglot.dataframe.sql.Column.ensure_literal", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_literal", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.copy": {"fullname": "sqlglot.dataframe.sql.Column.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.set_table_name": {"fullname": "sqlglot.dataframe.sql.Column.set_table_name", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.set_table_name", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">table_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.sql": {"fullname": "sqlglot.dataframe.sql.Column.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.alias": {"fullname": "sqlglot.dataframe.sql.Column.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.alias", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc": {"fullname": "sqlglot.dataframe.sql.Column.asc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc": {"fullname": "sqlglot.dataframe.sql.Column.desc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"fullname": "sqlglot.dataframe.sql.Column.asc_nulls_first", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc_nulls_first", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"fullname": "sqlglot.dataframe.sql.Column.asc_nulls_last", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc_nulls_last", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"fullname": "sqlglot.dataframe.sql.Column.desc_nulls_first", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc_nulls_first", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"fullname": "sqlglot.dataframe.sql.Column.desc_nulls_last", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc_nulls_last", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.when": {"fullname": "sqlglot.dataframe.sql.Column.when", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.when", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">condition</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.otherwise": {"fullname": "sqlglot.dataframe.sql.Column.otherwise", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.otherwise", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNull": {"fullname": "sqlglot.dataframe.sql.Column.isNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNull", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNotNull": {"fullname": "sqlglot.dataframe.sql.Column.isNotNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNotNull", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.cast": {"fullname": "sqlglot.dataframe.sql.Column.cast", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.cast", "kind": "function", "doc": "<p>Functionality Difference: PySpark cast accepts a datatype instance of the datatype class\nSqlglot doesn't currently replicate this class so it only accepts a string</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dataType</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.startswith": {"fullname": "sqlglot.dataframe.sql.Column.startswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.startswith", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.endswith": {"fullname": "sqlglot.dataframe.sql.Column.endswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.endswith", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.rlike": {"fullname": "sqlglot.dataframe.sql.Column.rlike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.rlike", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">regexp</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.like": {"fullname": "sqlglot.dataframe.sql.Column.like", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.like", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ilike": {"fullname": "sqlglot.dataframe.sql.Column.ilike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ilike", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.substr": {"fullname": "sqlglot.dataframe.sql.Column.substr", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.substr", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">startPos</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">length</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isin": {"fullname": "sqlglot.dataframe.sql.Column.isin", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isin", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240205968'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240205968'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.between": {"fullname": "sqlglot.dataframe.sql.Column.between", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.between", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">lowerBound</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240263232'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">upperBound</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240323392'</span><span class=\"o\">></span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.over": {"fullname": "sqlglot.dataframe.sql.Column.over", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.over", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">window</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240382832'</span><span class=\"o\">></span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.drop", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">how</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'any'</span>,</span><span class=\"param\">\t<span class=\"n\">thresh</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.fill", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.fill", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Any</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.replace", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">to_replace</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window": {"fullname": "sqlglot.dataframe.sql.Window", "modulename": "sqlglot.dataframe.sql", "qualname": "Window", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.Window.partitionBy": {"fullname": "sqlglot.dataframe.sql.Window.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.partitionBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240671344'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240671344'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.orderBy": {"fullname": "sqlglot.dataframe.sql.Window.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.orderBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240499728'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240499728'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rowsBetween": {"fullname": "sqlglot.dataframe.sql.Window.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rowsBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rangeBetween": {"fullname": "sqlglot.dataframe.sql.Window.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rangeBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec": {"fullname": "sqlglot.dataframe.sql.WindowSpec", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"fullname": "sqlglot.dataframe.sql.WindowSpec.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">WINDOW</span> <span class=\"p\">)</span></span>)</span>"}, "sqlglot.dataframe.sql.WindowSpec.copy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.sql": {"fullname": "sqlglot.dataframe.sql.WindowSpec.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.partitionBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240799488'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240799488'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.orderBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240728288'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140040240728288'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rowsBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rangeBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameReader": {"fullname": "sqlglot.dataframe.sql.DataFrameReader", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">spark</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">session</span><span class=\"o\">.</span><span class=\"n\">SparkSession</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrameReader.table": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.table", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">tableName</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">spark</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">session</span><span class=\"o\">.</span><span class=\"n\">SparkSession</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">mode</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">by_name</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">readwriter</span><span class=\"o\">.</span><span class=\"n\">DataFrameWriter</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.mode", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.mode", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">saveMode</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">readwriter</span><span class=\"o\">.</span><span class=\"n\">DataFrameWriter</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.insertInto", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.insertInto", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">tableName</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">overwrite</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">readwriter</span><span class=\"o\">.</span><span class=\"n\">DataFrameWriter</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.saveAsTable", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"nb\">format</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">mode</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></span>", "funcdef": "def"}, "sqlglot.dialects": {"fullname": "sqlglot.dialects", "modulename": "sqlglot.dialects", "kind": "module", "doc": "<h2 id=\"dialects\">Dialects</h2>\n\n<p>While there is a SQL standard, most SQL engines support a variation of that standard. This makes it difficult\nto write portable SQL code. SQLGlot bridges all the different variations, called \"dialects\", with an extensible\nSQL transpilation framework. </p>\n\n<p>The base <code>sqlglot.dialects.dialect.Dialect</code> class implements a generic dialect that aims to be as universal as possible.</p>\n\n<p>Each SQL variation has its own <code>Dialect</code> subclass, extending the corresponding <code>Tokenizer</code>, <code>Parser</code> and <code>Generator</code>\nclasses as needed.</p>\n\n<h3 id=\"implementing-a-custom-dialect\">Implementing a custom Dialect</h3>\n\n<p>Consider the following example:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dialects.dialect</span> <span class=\"kn\">import</span> <span class=\"n\">Dialect</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.generator</span> <span class=\"kn\">import</span> <span class=\"n\">Generator</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.tokens</span> <span class=\"kn\">import</span> <span class=\"n\">Tokenizer</span><span class=\"p\">,</span> <span class=\"n\">TokenType</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Custom</span><span class=\"p\">(</span><span class=\"n\">Dialect</span><span class=\"p\">):</span>\n <span class=\"k\">class</span> <span class=\"nc\">Tokenizer</span><span class=\"p\">(</span><span class=\"n\">Tokenizer</span><span class=\"p\">):</span>\n <span class=\"n\">QUOTES</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"'"</span><span class=\"p\">,</span> <span class=\"s1\">'"'</span><span class=\"p\">]</span>\n <span class=\"n\">IDENTIFIERS</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"`"</span><span class=\"p\">]</span>\n\n <span class=\"n\">KEYWORDS</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <span class=\"o\">**</span><span class=\"n\">Tokenizer</span><span class=\"o\">.</span><span class=\"n\">KEYWORDS</span><span class=\"p\">,</span>\n <span class=\"s2\">"INT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">BIGINT</span><span class=\"p\">,</span>\n <span class=\"s2\">"FLOAT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">DOUBLE</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n\n <span class=\"k\">class</span> <span class=\"nc\">Generator</span><span class=\"p\">(</span><span class=\"n\">Generator</span><span class=\"p\">):</span>\n <span class=\"n\">TRANSFORMS</span> <span class=\"o\">=</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=\"k\">lambda</span> <span class=\"bp\">self</span><span class=\"p\">,</span> <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\">expressions</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">)</span><span class=\"si\">}</span><span class=\"s2\">]"</span><span class=\"p\">}</span>\n\n <span class=\"n\">TYPE_MAPPING</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <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\">TINYINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">SMALLINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">"INT64"</span><span class=\"p\">,</span>\n <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\">BIGINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">DECIMAL</span><span class=\"p\">:</span> <span class=\"s2\">"NUMERIC"</span><span class=\"p\">,</span>\n <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\">FLOAT</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">DOUBLE</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">BOOLEAN</span><span class=\"p\">:</span> <span class=\"s2\">"BOOL"</span><span class=\"p\">,</span>\n <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\">TEXT</span><span class=\"p\">:</span> <span class=\"s2\">"STRING"</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n</code></pre>\n</div>\n\n<p>This is a typical example of adding a new dialect implementation in SQLGlot: we specify its identifier and string\ndelimiters, as well as what tokens it uses for its types and how they're associated with SQLGlot types. Since\nthe <code>Expression</code> classes are common for each dialect supported in SQLGlot, we may also need to override the generation\nlogic for some expressions; this is usually done by adding new entries to the <code>TRANSFORMS</code> mapping.</p>\n\n<hr />\n"}, "sqlglot.dialects.bigquery": {"fullname": "sqlglot.dialects.bigquery", "modulename": "sqlglot.dialects.bigquery", "kind": "module", "doc": "<p>Supports BigQuery Standard SQL.</p>\n"}, "sqlglot.dialects.bigquery.BigQuery": {"fullname": "sqlglot.dialects.bigquery.BigQuery", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Tokenizer", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Parser", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.array_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Array</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.commit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.rollback_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.in_unnest_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unnest</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.except_op", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.except_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Except</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.intersect_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Intersect</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.clickhouse": {"fullname": "sqlglot.dialects.clickhouse", "modulename": "sqlglot.dialects.clickhouse", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.clickhouse.ClickHouse": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Parser", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.cte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.databricks": {"fullname": "sqlglot.dialects.databricks", "modulename": "sqlglot.dialects.databricks", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.databricks.Databricks": {"fullname": "sqlglot.dialects.databricks.Databricks", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.spark.Spark"}, "sqlglot.dialects.databricks.Databricks.Parser": {"fullname": "sqlglot.dialects.databricks.Databricks.Parser", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.spark.Spark.Parser"}, "sqlglot.dialects.databricks.Databricks.Generator": {"fullname": "sqlglot.dialects.databricks.Databricks.Generator", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.spark.Spark.Generator"}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"fullname": "sqlglot.dialects.databricks.Databricks.Tokenizer", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.spark.Spark.Tokenizer"}, "sqlglot.dialects.dialect": {"fullname": "sqlglot.dialects.dialect", "modulename": "sqlglot.dialects.dialect", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.dialect.Dialects": {"fullname": "sqlglot.dialects.dialect.Dialects", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "builtins.str, enum.Enum"}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"fullname": "sqlglot.dialects.dialect.Dialects.DIALECT", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DIALECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DIALECT: ''>"}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"fullname": "sqlglot.dialects.dialect.Dialects.BIGQUERY", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.BIGQUERY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.BIGQUERY: 'bigquery'>"}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"fullname": "sqlglot.dialects.dialect.Dialects.CLICKHOUSE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.CLICKHOUSE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.CLICKHOUSE: 'clickhouse'>"}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"fullname": "sqlglot.dialects.dialect.Dialects.DUCKDB", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DUCKDB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DUCKDB: 'duckdb'>"}, "sqlglot.dialects.dialect.Dialects.HIVE": {"fullname": "sqlglot.dialects.dialect.Dialects.HIVE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.HIVE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.HIVE: 'hive'>"}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"fullname": "sqlglot.dialects.dialect.Dialects.MYSQL", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.MYSQL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.MYSQL: 'mysql'>"}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"fullname": "sqlglot.dialects.dialect.Dialects.ORACLE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.ORACLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.ORACLE: 'oracle'>"}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"fullname": "sqlglot.dialects.dialect.Dialects.POSTGRES", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.POSTGRES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.POSTGRES: 'postgres'>"}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"fullname": "sqlglot.dialects.dialect.Dialects.PRESTO", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.PRESTO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.PRESTO: 'presto'>"}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"fullname": "sqlglot.dialects.dialect.Dialects.REDSHIFT", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.REDSHIFT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.REDSHIFT: 'redshift'>"}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"fullname": "sqlglot.dialects.dialect.Dialects.SNOWFLAKE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SNOWFLAKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.SNOWFLAKE: 'snowflake'>"}, "sqlglot.dialects.dialect.Dialects.SPARK": {"fullname": "sqlglot.dialects.dialect.Dialects.SPARK", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SPARK", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.SPARK: 'spark'>"}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"fullname": "sqlglot.dialects.dialect.Dialects.SQLITE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SQLITE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.SQLITE: 'sqlite'>"}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"fullname": "sqlglot.dialects.dialect.Dialects.STARROCKS", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.STARROCKS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.STARROCKS: 'starrocks'>"}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"fullname": "sqlglot.dialects.dialect.Dialects.TABLEAU", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TABLEAU", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TABLEAU: 'tableau'>"}, "sqlglot.dialects.dialect.Dialects.TRINO": {"fullname": "sqlglot.dialects.dialect.Dialects.TRINO", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TRINO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TRINO: 'trino'>"}, "sqlglot.dialects.dialect.Dialects.TSQL": {"fullname": "sqlglot.dialects.dialect.Dialects.TSQL", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TSQL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TSQL: 'tsql'>"}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"fullname": "sqlglot.dialects.dialect.Dialects.DATABRICKS", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DATABRICKS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DATABRICKS: 'databricks'>"}, "sqlglot.dialects.dialect.Dialects.DRILL": {"fullname": "sqlglot.dialects.dialect.Dialects.DRILL", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DRILL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DRILL: 'drill'>"}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"fullname": "sqlglot.dialects.dialect.Dialects.TERADATA", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TERADATA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TERADATA: 'teradata'>"}, "sqlglot.dialects.dialect.Dialect": {"fullname": "sqlglot.dialects.dialect.Dialect", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"fullname": "sqlglot.dialects.dialect.Dialect.get_or_raise", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.get_or_raise", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.format_time": {"fullname": "sqlglot.dialects.dialect.Dialect.format_time", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.format_time", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parse": {"fullname": "sqlglot.dialects.dialect.Dialect.parse", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parse", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parse_into": {"fullname": "sqlglot.dialects.dialect.Dialect.parse_into", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parse_into", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression_type</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]]</span>,</span><span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generate": {"fullname": "sqlglot.dialects.dialect.Dialect.generate", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.transpile": {"fullname": "sqlglot.dialects.dialect.Dialect.transpile", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.transpile", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parser": {"fullname": "sqlglot.dialects.dialect.Dialect.parser", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parser", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parser</span><span class=\"o\">.</span><span class=\"n\">Parser</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generator": {"fullname": "sqlglot.dialects.dialect.Dialect.generator", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generator", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.rename_func": {"fullname": "sqlglot.dialects.dialect.rename_func", "modulename": "sqlglot.dialects.dialect", "qualname": "rename_func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"fullname": "sqlglot.dialects.dialect.approx_count_distinct_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "approx_count_distinct_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ApproxDistinct</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.if_sql": {"fullname": "sqlglot.dialects.dialect.if_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "if_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">If</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"fullname": "sqlglot.dialects.dialect.arrow_json_extract_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "arrow_json_extract_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONExtract</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONBExtract</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"fullname": "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "arrow_json_extract_scalar_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONExtractScalar</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONBExtractScalar</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.inline_array_sql": {"fullname": "sqlglot.dialects.dialect.inline_array_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "inline_array_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Array</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_ilike_sql": {"fullname": "sqlglot.dialects.dialect.no_ilike_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_ilike_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ILike</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"fullname": "sqlglot.dialects.dialect.no_paren_current_date_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_paren_current_date_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CurrentDate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"fullname": "sqlglot.dialects.dialect.no_recursive_cte_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_recursive_cte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">With</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"fullname": "sqlglot.dialects.dialect.no_safe_divide_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_safe_divide_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SafeDivide</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_tablesample_sql": {"fullname": "sqlglot.dialects.dialect.no_tablesample_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_tablesample_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableSample</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_pivot_sql": {"fullname": "sqlglot.dialects.dialect.no_pivot_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_pivot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Pivot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_trycast_sql": {"fullname": "sqlglot.dialects.dialect.no_trycast_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_trycast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TryCast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_properties_sql": {"fullname": "sqlglot.dialects.dialect.no_properties_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_properties_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.str_position_sql": {"fullname": "sqlglot.dialects.dialect.str_position_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "str_position_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StrPosition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.struct_extract_sql": {"fullname": "sqlglot.dialects.dialect.struct_extract_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "struct_extract_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StructExtract</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.var_map_sql": {"fullname": "sqlglot.dialects.dialect.var_map_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "var_map_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Map</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">VarMap</span>,</span><span class=\"param\">\t<span class=\"n\">map_func_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'MAP'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.format_time_lambda": {"fullname": "sqlglot.dialects.dialect.format_time_lambda", "modulename": "sqlglot.dialects.dialect", "qualname": "format_time_lambda", "kind": "function", "doc": "<p>Helper used for time expressions.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>exp_class:</strong> the expression class to instantiate.</li>\n<li><strong>dialect:</strong> target sql dialect.</li>\n<li><strong>default:</strong> the default format, True being time.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A callable that can be used to return the appropriately formatted time expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">exp_class</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">default</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">Sequence</span><span class=\"p\">],</span> <span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"fullname": "sqlglot.dialects.dialect.create_with_partitions_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "create_with_partitions_sql", "kind": "function", "doc": "<p>In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the\nPARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding\ncolumns are removed from the create statement.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Create</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.parse_date_delta": {"fullname": "sqlglot.dialects.dialect.parse_date_delta", "modulename": "sqlglot.dialects.dialect", "qualname": "parse_date_delta", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">exp_class</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">unit_mapping</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</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=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">Sequence</span><span class=\"p\">],</span> <span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.locate_to_strposition": {"fullname": "sqlglot.dialects.dialect.locate_to_strposition", "modulename": "sqlglot.dialects.dialect", "qualname": "locate_to_strposition", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"fullname": "sqlglot.dialects.dialect.strposition_to_locate_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "strposition_to_locate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StrPosition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.timestrtotime_sql": {"fullname": "sqlglot.dialects.dialect.timestrtotime_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestrtotime_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TimeStrToTime</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.datestrtodate_sql": {"fullname": "sqlglot.dialects.dialect.datestrtodate_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "datestrtodate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DateStrToDate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.min_or_least": {"fullname": "sqlglot.dialects.dialect.min_or_least", "modulename": "sqlglot.dialects.dialect", "qualname": "min_or_least", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Min</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.trim_sql": {"fullname": "sqlglot.dialects.dialect.trim_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "trim_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Trim</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.str_to_time_sql": {"fullname": "sqlglot.dialects.dialect.str_to_time_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "str_to_time_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"fullname": "sqlglot.dialects.dialect.ts_or_ds_to_date_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "ts_or_ds_to_date_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.drill": {"fullname": "sqlglot.dialects.drill", "modulename": "sqlglot.dialects.drill", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.drill.Drill": {"fullname": "sqlglot.dialects.drill.Drill", "modulename": "sqlglot.dialects.drill", "qualname": "Drill", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.drill.Drill.Tokenizer": {"fullname": "sqlglot.dialects.drill.Drill.Tokenizer", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.drill.Drill.Parser": {"fullname": "sqlglot.dialects.drill.Drill.Parser", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.drill.Drill.Generator": {"fullname": "sqlglot.dialects.drill.Drill.Generator", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"fullname": "sqlglot.dialects.drill.Drill.Generator.normalize_func", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Generator.normalize_func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.duckdb": {"fullname": "sqlglot.dialects.duckdb", "modulename": "sqlglot.dialects.duckdb", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.duckdb.DuckDB": {"fullname": "sqlglot.dialects.duckdb.DuckDB", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Tokenizer", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Parser", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Generator", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Generator.tablesample_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableSample</span>,</span><span class=\"param\">\t<span class=\"n\">seed_prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'SEED'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.hive": {"fullname": "sqlglot.dialects.hive", "modulename": "sqlglot.dialects.hive", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.hive.Hive": {"fullname": "sqlglot.dialects.hive.Hive", "modulename": "sqlglot.dialects.hive", "qualname": "Hive", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.hive.Hive.Tokenizer": {"fullname": "sqlglot.dialects.hive.Hive.Tokenizer", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.hive.Hive.Parser": {"fullname": "sqlglot.dialects.hive.Hive.Parser", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.hive.Hive.Generator": {"fullname": "sqlglot.dialects.hive.Hive.Generator", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"fullname": "sqlglot.dialects.hive.Hive.Generator.with_properties", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.with_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"fullname": "sqlglot.dialects.hive.Hive.Generator.datatype_sql", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.datatype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.mysql": {"fullname": "sqlglot.dialects.mysql", "modulename": "sqlglot.dialects.mysql", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.mysql.MySQL": {"fullname": "sqlglot.dialects.mysql.MySQL", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"fullname": "sqlglot.dialects.mysql.MySQL.Tokenizer", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.mysql.MySQL.Parser": {"fullname": "sqlglot.dialects.mysql.MySQL.Parser", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.mysql.MySQL.Generator": {"fullname": "sqlglot.dialects.mysql.MySQL.Generator", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"fullname": "sqlglot.dialects.mysql.MySQL.Generator.show_sql", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Generator.show_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"fullname": "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Generator.setitem_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"fullname": "sqlglot.dialects.mysql.MySQL.Generator.set_sql", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Generator.set_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle": {"fullname": "sqlglot.dialects.oracle", "modulename": "sqlglot.dialects.oracle", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.oracle.Oracle": {"fullname": "sqlglot.dialects.oracle.Oracle", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.oracle.Oracle.Parser": {"fullname": "sqlglot.dialects.oracle.Oracle.Parser", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.oracle.Oracle.Generator": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.query_modifiers", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">sqls</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.offset_sql", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.offset_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Offset</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.column_sql", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.column_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.xmltable_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">XMLTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"fullname": "sqlglot.dialects.oracle.Oracle.Tokenizer", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.postgres": {"fullname": "sqlglot.dialects.postgres", "modulename": "sqlglot.dialects.postgres", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.postgres.Postgres": {"fullname": "sqlglot.dialects.postgres.Postgres", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"fullname": "sqlglot.dialects.postgres.Postgres.Tokenizer", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.postgres.Postgres.Parser": {"fullname": "sqlglot.dialects.postgres.Postgres.Parser", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.postgres.Postgres.Generator": {"fullname": "sqlglot.dialects.postgres.Postgres.Generator", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto": {"fullname": "sqlglot.dialects.presto", "modulename": "sqlglot.dialects.presto", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.presto.Presto": {"fullname": "sqlglot.dialects.presto.Presto", "modulename": "sqlglot.dialects.presto", "qualname": "Presto", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.presto.Presto.Tokenizer": {"fullname": "sqlglot.dialects.presto.Presto.Tokenizer", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.presto.Presto.Parser": {"fullname": "sqlglot.dialects.presto.Presto.Parser", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.presto.Presto.Generator": {"fullname": "sqlglot.dialects.presto.Presto.Generator", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"fullname": "sqlglot.dialects.presto.Presto.Generator.transaction_sql", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift": {"fullname": "sqlglot.dialects.redshift", "modulename": "sqlglot.dialects.redshift", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.redshift.Redshift": {"fullname": "sqlglot.dialects.redshift.Redshift", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.postgres.Postgres"}, "sqlglot.dialects.redshift.Redshift.Parser": {"fullname": "sqlglot.dialects.redshift.Redshift.Parser", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.postgres.Postgres.Parser"}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"fullname": "sqlglot.dialects.redshift.Redshift.Tokenizer", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.postgres.Postgres.Tokenizer"}, "sqlglot.dialects.redshift.Redshift.Generator": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.postgres.Postgres.Generator"}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.values_sql", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.values_sql", "kind": "function", "doc": "<p>Converts <code>VALUES...</code> expression into a series of unions.</p>\n\n<p>Note: If you have a lot of unions then this will result in a large number of recursive statements to\nevaluate the expression. You may need to increase <code>sys.setrecursionlimit</code> to run and it can also be\nvery slow.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.with_properties", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.with_properties", "kind": "function", "doc": "<p>Redshift doesn't have <code>WITH</code> as part of their with_properties so we remove it</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.renametable_sql", "kind": "function", "doc": "<p>Redshift only supports defining the table name itself (not the db) when renaming tables</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RenameTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.datatype_sql", "kind": "function", "doc": "<p>Redshift converts the <code>TEXT</code> data type to <code>VARCHAR(255)</code> by default when people more generally mean\nVARCHAR of max length which is <code>VARCHAR(max)</code> in Redshift. Therefore if we get a <code>TEXT</code> data type\nwithout precision we convert it to <code>VARCHAR(max)</code> and if it does have precision then we just convert\n<code>TEXT</code> to <code>VARCHAR</code>.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake": {"fullname": "sqlglot.dialects.snowflake", "modulename": "sqlglot.dialects.snowflake", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.snowflake.Snowflake": {"fullname": "sqlglot.dialects.snowflake.Snowflake", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Parser", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Tokenizer", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.ilikeany_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ILikeAny</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.likeany_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LikeAny</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.except_op", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.except_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.intersect_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.values_sql", "kind": "function", "doc": "<p>Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</p>\n\n<p>We also want to make sure that after we find matches where we need to unquote a column that we prevent users\nfrom adding quotes to the column by using the <code>identify</code> argument when generating the SQL.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.settag_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SetTag</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.select_sql", "kind": "function", "doc": "<p>Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also\nthat all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need\nto unquote a column that we prevent users from adding quotes to the column by using the <code>identify</code> argument when\ngenerating the SQL.</p>\n\n<p>Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the\nexpression. This might not be true in a case where the same column name can be sourced from another table that can\nproperly quote but should be true in most cases.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.describe_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Describe</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.generatedasidentitycolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GeneratedAsIdentityColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.spark": {"fullname": "sqlglot.dialects.spark", "modulename": "sqlglot.dialects.spark", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.spark.Spark": {"fullname": "sqlglot.dialects.spark.Spark", "modulename": "sqlglot.dialects.spark", "qualname": "Spark", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.hive.Hive"}, "sqlglot.dialects.spark.Spark.Parser": {"fullname": "sqlglot.dialects.spark.Spark.Parser", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.hive.Hive.Parser"}, "sqlglot.dialects.spark.Spark.Generator": {"fullname": "sqlglot.dialects.spark.Spark.Generator", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.hive.Hive.Generator"}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"fullname": "sqlglot.dialects.spark.Spark.Generator.cast_sql", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator.cast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.spark.Spark.Tokenizer": {"fullname": "sqlglot.dialects.spark.Spark.Tokenizer", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.hive.Hive.Tokenizer"}, "sqlglot.dialects.sqlite": {"fullname": "sqlglot.dialects.sqlite", "modulename": "sqlglot.dialects.sqlite", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.sqlite.SQLite": {"fullname": "sqlglot.dialects.sqlite.SQLite", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"fullname": "sqlglot.dialects.sqlite.SQLite.Tokenizer", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.sqlite.SQLite.Parser": {"fullname": "sqlglot.dialects.sqlite.SQLite.Parser", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.sqlite.SQLite.Generator": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.datediff_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DateDiff</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.fetch_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.least_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.least_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.starrocks": {"fullname": "sqlglot.dialects.starrocks", "modulename": "sqlglot.dialects.starrocks", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.starrocks.StarRocks": {"fullname": "sqlglot.dialects.starrocks.StarRocks", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.mysql.MySQL"}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"fullname": "sqlglot.dialects.starrocks.StarRocks.Generator", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.mysql.MySQL.Generator"}, "sqlglot.dialects.tableau": {"fullname": "sqlglot.dialects.tableau", "modulename": "sqlglot.dialects.tableau", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.tableau.Tableau": {"fullname": "sqlglot.dialects.tableau.Tableau", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.tableau.Tableau.Generator": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tableau.Tableau.Parser": {"fullname": "sqlglot.dialects.tableau.Tableau.Parser", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.teradata": {"fullname": "sqlglot.dialects.teradata", "modulename": "sqlglot.dialects.teradata", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.teradata.Teradata": {"fullname": "sqlglot.dialects.teradata.Teradata", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"fullname": "sqlglot.dialects.teradata.Teradata.Tokenizer", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.teradata.Teradata.Parser": {"fullname": "sqlglot.dialects.teradata.Teradata.Parser", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.teradata.Teradata.Generator": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.partitionedbyproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">PartitionedByProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.update_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.update_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Update</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.mod_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.mod_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Mod</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.datatype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.rangen_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RangeN</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.trino": {"fullname": "sqlglot.dialects.trino", "modulename": "sqlglot.dialects.trino", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.trino.Trino": {"fullname": "sqlglot.dialects.trino.Trino", "modulename": "sqlglot.dialects.trino", "qualname": "Trino", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.presto.Presto"}, "sqlglot.dialects.trino.Trino.Generator": {"fullname": "sqlglot.dialects.trino.Trino.Generator", "modulename": "sqlglot.dialects.trino", "qualname": "Trino.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.presto.Presto.Generator"}, "sqlglot.dialects.trino.Trino.Tokenizer": {"fullname": "sqlglot.dialects.trino.Trino.Tokenizer", "modulename": "sqlglot.dialects.trino", "qualname": "Trino.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.presto.Presto.Tokenizer"}, "sqlglot.dialects.tsql": {"fullname": "sqlglot.dialects.tsql", "modulename": "sqlglot.dialects.tsql", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"fullname": "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "generate_date_delta_with_unit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">e</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.tsql.TSQL": {"fullname": "sqlglot.dialects.tsql.TSQL", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"fullname": "sqlglot.dialects.tsql.TSQL.Tokenizer", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.tsql.TSQL.Parser": {"fullname": "sqlglot.dialects.tsql.TSQL.Parser", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.tsql.TSQL.Generator": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator.systemtime_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SystemTime</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator.returnsproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ReturnsProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.diff": {"fullname": "sqlglot.diff", "modulename": "sqlglot.diff", "kind": "module", "doc": "<h1 id=\"semantic-diff-for-sql\">Semantic Diff for SQL</h1>\n\n<p><em>by <a href=\"https://github.com/izeigerman\">Iaroslav Zeigerman</a></em></p>\n\n<h2 id=\"motivation\">Motivation</h2>\n\n<p>Software is constantly changing and evolving, and identifying what has changed and reviewing those changes is an integral part of the development process. SQL code is no exception to this.</p>\n\n<p>Text-based diff tools such as <code>git diff</code>, when applied to a code base, have certain limitations. First, they can only detect insertions and deletions, not movements or updates of individual pieces of code. Second, such tools can only detect changes between lines of text, which is too coarse for something as granular and detailed as source code. Additionally, the outcome of such a diff is dependent on the underlying code formatting, and yields different results if the formatting should change.</p>\n\n<p>Consider the following diff generated by Git:</p>\n\n<p><img src=\"sql_diff_images/git_diff_output.png\" alt=\"Git diff output\" /></p>\n\n<p>Semantically the query hasn\u2019t changed. The two arguments <code>b</code> and <code>c</code> have been swapped (moved), posing no impact on the output of the query. Yet Git replaced the whole affected expression alongside a bulk of unrelated elements.</p>\n\n<p>The alternative to text-based diffing is to compare Abstract Syntax Trees (AST) instead. The main advantage of ASTs are that they are a direct product of code parsing, which represents the underlying code structure at any desired level of granularity. Comparing ASTs may yield extremely precise diffs; changes such as code movements and updates can also be detected. Even more importantly, this approach facilitates additional use cases beyond eyeballing two versions of source code side by side.</p>\n\n<p>The use cases I had in mind for SQL when I decided to embark on this journey of semantic diffing were the following:</p>\n\n<ul>\n<li><strong>Query similarity score.</strong> Identifying which parts the two queries have in common to automatically suggest opportunities for consolidation, creation of intermediate/staging tables, and so on.</li>\n<li><strong>Differentiating between cosmetic / structural changes and functional ones.</strong> For example when a nested query is refactored into a common table expression (CTE), this kind of change doesn\u2019t have any functional impact on either a query or its outcome.</li>\n<li><strong>Automatic suggestions about the need to retroactively backfill data.</strong> This is especially important for pipelines that populate very large tables for which restatement is a runtime-intensive procedure. The ability to discern between simple code movements and actual modifications can help assess the impact of a change and make suggestions accordingly.</li>\n</ul>\n\n<p>The implementation discussed in this post is now a part of the <a href=\"https://github.com/tobymao/sqlglot/\">SQLGlot</a> library. You can find a complete source code in the <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/diff.py\">diff.py</a> module. The choice of SQLglot was an obvious one due to its simple but powerful API, lack of external dependencies and, more importantly, extensive list of supported SQL dialects.</p>\n\n<h2 id=\"the-search-for-a-solution\">The Search for a Solution</h2>\n\n<p>When it comes to any diffing tool (not just a semantic one), the primary challenge is to match as many elements of compared entities as possible. Once such a set of matching elements is available, deriving a sequence of changes becomes an easy task.</p>\n\n<p>If our elements have unique identifiers associated with them (for example, an element\u2019s ID in DOM), the matching problem is trivial. However, the SQL syntax trees that we are comparing have neither unique keys nor object identifiers that can be used for the purposes of matching. So, how do we suppose to find pairs of nodes that are related?</p>\n\n<p>To better illustrate the problem, consider comparing the following SQL expressions: <code>SELECT a + b + c, d, e</code> and <code>SELECT a - b + c, e, f</code>. Matching individual nodes from respective syntax trees can be visualized as follows:</p>\n\n<p><img src=\"sql_diff_images/figure_1.png\" alt=\"Figure 1: Example of node matching for two SQL expression trees\" />\n<em>Figure 1: Example of node matching for two SQL expression trees.</em></p>\n\n<p>By looking at the figure of node matching for two SQL expression trees above, we conclude that the following changes should be captured by our solution:</p>\n\n<ul>\n<li>Inserted nodes: <code>Sub</code> and <code>f</code>. These are the nodes from the target AST which do not have a matching node in the source AST.</li>\n<li>Removed nodes: <code>Add</code> and <code>d</code>. These are the nodes from the source AST which do not have a counterpart in the target AST.</li>\n<li>Remaining nodes must be identified as unchanged.</li>\n</ul>\n\n<p>It should be clear at this point that if we manage to match nodes in the source tree with their counterparts in the target tree, then computing the diff becomes a trivial matter.</p>\n\n<h3 id=\"naive-brute-force\">Na\u00efve Brute-Force</h3>\n\n<p>The na\u00efve solution would be to try all different permutations of node pair combinations, and see which set of pairs performs the best based on some type of heuristics. The runtime cost of such a solution quickly reaches the escape velocity; if both trees had only 10 nodes each, the number of such sets would approximately be 10! ^ 2 = 3.6M ^ 2 ~= 13 * 10^12. This is a very bad case of factorial complexity (to be precise, it\u2019s actually much worse - O(n! ^ 2) - but I couldn\u2019t come up with a name for it), so there is little need to explore this approach any further.</p>\n\n<h3 id=\"myers-algorithm\">Myers Algorithm</h3>\n\n<p>After the na\u00efve approach was proven to be infeasible, the next question I asked myself was \u201chow does git diff work?\u201d. This question led me to discover the Myers diff algorithm [1]. This algorithm has been designed to compare sequences of strings. At its core, it\u2019s looking for the shortest path on a graph of possible edits that transform the first sequence into the second one, while heavily rewarding those paths that lead to longest subsequences of unchanged elements. There\u2019s a lot of material out there describing this algorithm in greater detail. I found James Coglan\u2019s series of <a href=\"https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/\">blog posts</a> to be the most comprehensive.</p>\n\n<p>Therefore, I had this \u201cbrilliant\u201d (actually not) idea to transform trees into sequences by traversing them in topological order, and then applying the Myers algorithm on resulting sequences while using a custom heuristics when checking the equality of two nodes. Unsurprisingly, comparing sequences of strings is quite different from comparing hierarchical tree structures, and by flattening trees into sequences, we lose a lot of relevant context. This resulted in a terrible performance of this algorithm on ASTs. It often matched completely unrelated nodes, even when the two trees were mostly the same, and produced extremely inaccurate lists of changes overall. After playing around with it a little and tweaking my equality heuristics to improve accuracy, I ultimately scrapped the whole implementation and went back to the drawing board.</p>\n\n<h2 id=\"change-distiller\">Change Distiller</h2>\n\n<p>The algorithm I settled on at the end was Change Distiller, created by Fluri et al. [2], which in turn is an improvement over the core idea described by Chawathe et al. [3].</p>\n\n<p>The algorithm consists of two high-level steps:</p>\n\n<ol>\n<li><strong>Finding appropriate matchings between pairs of nodes that are part of compared ASTs.</strong> Identifying what is meant by \u201cappropriate\u201d matching is also a part of this step.</li>\n<li><strong>Generating the so-called \u201cedit script\u201d from the matching set built in the 1st step.</strong> The edit script is a sequence of edit operations (for example, insert, remove, update, etc.) on individual tree nodes, such that when applied as transformations on the source AST, it eventually becomes the target AST. In general, the shorter the sequence, the better. The length of the edit script can be used to compare the performance of different algorithms, though this is not the only metric that matters.</li>\n</ol>\n\n<p>The rest of this section is dedicated to the Python implementation of the steps above using the AST implementation provided by the SQLGlot library.</p>\n\n<h3 id=\"building-the-matching-set\">Building the Matching Set</h3>\n\n<h4 id=\"matching-leaves\">Matching Leaves</h4>\n\n<p>We begin composing the matching set by matching the leaf nodes. Leaf nodes are the nodes that do not have any children nodes (such as literals, identifiers, etc.). In order to match them, we gather all the leaf nodes from the source tree and generate a cartesian product with all the leaves from the target tree, while comparing pairs created this way and assigning them a similarity score. During this stage, we also exclude pairs that don\u2019t pass basic matching criteria. Then, we pick pairs that scored the highest while making sure that each node is matched no more than once.</p>\n\n<p>Using the example provided at the beginning of the post, the process of building an initial set of candidate matchings can be seen on Figure 2.</p>\n\n<p><img src=\"sql_diff_images/figure_2.gif\" alt=\"Figure 2: Building a set of candidate matchings between leaf nodes. The third item in each triplet represents a similarity score between two nodes.\" />\n<em>Figure 2: Building a set of candidate matchings between leaf nodes. The third item in each triplet represents a similarity score between two nodes.</em></p>\n\n<p>First, let\u2019s analyze the similarity score. Then, we\u2019ll discuss matching criteria.</p>\n\n<p>The similarity score proposed by Fluri et al. [2] is a <a href=\"https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient\">dice coefficient </a>applied to <a href=\"https://en.wikipedia.org/wiki/Bigram\">bigrams</a> of respective node values. A bigram is a sequence of two adjacent elements from a string computed in a sliding window fashion:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">def</span> <span class=\"nf\">bigram</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">):</span>\n <span class=\"n\">count</span> <span class=\"o\">=</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">)</span> <span class=\"o\">-</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">string</span><span class=\"p\">[</span><span class=\"n\">i</span> <span class=\"p\">:</span> <span class=\"n\">i</span> <span class=\"o\">+</span> <span class=\"mi\">2</span><span class=\"p\">]</span> <span class=\"k\">for</span> <span class=\"n\">i</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">count</span><span class=\"p\">)]</span>\n</code></pre>\n</div>\n\n<p>For reasons that will become clear shortly, we actually need to compute bigram histograms rather than just sequences:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">collections</span> <span class=\"kn\">import</span> <span class=\"n\">defaultdict</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">bigram_histo</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">):</span>\n <span class=\"n\">count</span> <span class=\"o\">=</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">)</span> <span class=\"o\">-</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n <span class=\"n\">bigram_histo</span> <span class=\"o\">=</span> <span class=\"n\">defaultdict</span><span class=\"p\">(</span><span class=\"nb\">int</span><span class=\"p\">)</span>\n <span class=\"k\">for</span> <span class=\"n\">i</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">count</span><span class=\"p\">):</span>\n <span class=\"n\">bigram_histo</span><span class=\"p\">[</span><span class=\"n\">string</span><span class=\"p\">[</span><span class=\"n\">i</span> <span class=\"p\">:</span> <span class=\"n\">i</span> <span class=\"o\">+</span> <span class=\"mi\">2</span><span class=\"p\">]]</span> <span class=\"o\">+=</span> <span class=\"mi\">1</span>\n <span class=\"k\">return</span> <span class=\"n\">bigram_histo</span>\n</code></pre>\n</div>\n\n<p>The dice coefficient formula looks like following:</p>\n\n<p><img src=\"sql_diff_images/dice_coef.png\" alt=\"Dice Coefficient\" /></p>\n\n<p>Where X is a bigram of the source node and Y is a bigram of the second one. What this essentially does is count the number of bigram elements the two nodes have in common, multiply it by 2, and then divide by the total number of elements in both bigrams. This is where bigram histograms come in handy:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">def</span> <span class=\"nf\">dice_coefficient</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">,</span> <span class=\"n\">target</span><span class=\"p\">):</span>\n <span class=\"n\">source_histo</span> <span class=\"o\">=</span> <span class=\"n\">bigram_histo</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">())</span>\n <span class=\"n\">target_histo</span> <span class=\"o\">=</span> <span class=\"n\">bigram_histo</span><span class=\"p\">(</span><span class=\"n\">target</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">())</span>\n\n <span class=\"n\">total_grams</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"nb\">sum</span><span class=\"p\">(</span><span class=\"n\">source_histo</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">())</span> <span class=\"o\">+</span> <span class=\"nb\">sum</span><span class=\"p\">(</span><span class=\"n\">target_histo</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">())</span>\n <span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">total_grams</span><span class=\"p\">:</span>\n <span class=\"k\">return</span> <span class=\"mf\">1.0</span> <span class=\"k\">if</span> <span class=\"n\">source</span> <span class=\"o\">==</span> <span class=\"n\">target</span> <span class=\"k\">else</span> <span class=\"mf\">0.0</span>\n\n <span class=\"n\">overlap_len</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>\n <span class=\"n\">overlapping_grams</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">source_histo</span><span class=\"p\">)</span> <span class=\"o\">&</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">target_histo</span><span class=\"p\">)</span>\n <span class=\"k\">for</span> <span class=\"n\">g</span> <span class=\"ow\">in</span> <span class=\"n\">overlapping_grams</span><span class=\"p\">:</span>\n <span class=\"n\">overlap_len</span> <span class=\"o\">+=</span> <span class=\"nb\">min</span><span class=\"p\">(</span><span class=\"n\">source_histo</span><span class=\"p\">[</span><span class=\"n\">g</span><span class=\"p\">],</span> <span class=\"n\">target_histo</span><span class=\"p\">[</span><span class=\"n\">g</span><span class=\"p\">])</span>\n\n <span class=\"k\">return</span> <span class=\"mi\">2</span> <span class=\"o\">*</span> <span class=\"n\">overlap_len</span> <span class=\"o\">/</span> <span class=\"n\">total_grams</span>\n</code></pre>\n</div>\n\n<p>To compute a bigram given a tree node, we first transform the node into its canonical SQL representation,so that the <code>Literal(123)</code> node becomes just \u201c123\u201d and the <code>Identifier(\u201ca\u201d)</code> node becomes just \u201ca\u201d. We also handle a scenario when strings are too short to derive bigrams. In this case, we fallback to checking the two nodes for equality.</p>\n\n<p>Now when we know how to compute the similarity score, we can take care of the matching criteria for leaf nodes. In the original paper [2], the matching criteria is formalized as follows:</p>\n\n<p><img src=\"sql_diff_images/matching_criteria_1.png\" alt=\"Matching criteria for leaf nodes\" /></p>\n\n<p>The two nodes are matched if two conditions are met:</p>\n\n<ol>\n<li>The node labels match (in our case labels are just node types).</li>\n<li>The similarity score for node values is greater than or equal to some threshold \u201cf\u201d. The authors of the paper recommend setting the value of \u201cf\u201d to 0.6.</li>\n</ol>\n\n<p>With building blocks in place, we can now build a matching set for leaf nodes. First, we generate a list of candidates for matching:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">heapq</span> <span class=\"kn\">import</span> <span class=\"n\">heappush</span><span class=\"p\">,</span> <span class=\"n\">heappop</span>\n\n<span class=\"n\">candidate_matchings</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n<span class=\"n\">source_leaves</span> <span class=\"o\">=</span> <span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_source</span><span class=\"p\">)</span>\n<span class=\"n\">target_leaves</span> <span class=\"o\">=</span> <span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_target</span><span class=\"p\">)</span>\n<span class=\"k\">for</span> <span class=\"n\">source_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">source_leaves</span><span class=\"p\">:</span>\n <span class=\"k\">for</span> <span class=\"n\">target_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">target_leaves</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">_is_same_type</span><span class=\"p\">(</span><span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span><span class=\"p\">):</span>\n <span class=\"n\">similarity_score</span> <span class=\"o\">=</span> <span class=\"n\">dice_coefficient</span><span class=\"p\">(</span>\n <span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span>\n <span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"n\">similarity_score</span> <span class=\"o\">>=</span> <span class=\"mf\">0.6</span><span class=\"p\">:</span>\n <span class=\"n\">heappush</span><span class=\"p\">(</span>\n <span class=\"n\">candidate_matchings</span><span class=\"p\">,</span>\n <span class=\"p\">(</span>\n <span class=\"o\">-</span><span class=\"n\">similarity_score</span><span class=\"p\">,</span>\n <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">candidate_matchings</span><span class=\"p\">),</span>\n <span class=\"n\">source_leaf</span><span class=\"p\">,</span>\n <span class=\"n\">target_leaf</span><span class=\"p\">,</span>\n <span class=\"p\">),</span>\n <span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<p>In the implementation above, we push each matching pair onto the heap to automatically maintain the correct order based on the assigned similarity score.</p>\n\n<p>Finally, we build the initial matching set by picking leaf pairs with the highest score:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">matching_set</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">()</span>\n<span class=\"k\">while</span> <span class=\"n\">candidate_matchings</span><span class=\"p\">:</span>\n <span class=\"n\">_</span><span class=\"p\">,</span> <span class=\"n\">_</span><span class=\"p\">,</span> <span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span> <span class=\"o\">=</span> <span class=\"n\">heappop</span><span class=\"p\">(</span><span class=\"n\">candidate_matchings</span><span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"p\">(</span>\n <span class=\"n\">source_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span>\n <span class=\"ow\">and</span> <span class=\"n\">target_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_target_nodes</span>\n <span class=\"p\">):</span>\n <span class=\"n\">matching_set</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">((</span><span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span><span class=\"p\">))</span>\n <span class=\"n\">unmatched_source_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">source_leaf</span><span class=\"p\">)</span>\n <span class=\"n\">unmatched_target_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">target_leaf</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<p>To finalize the matching set, we should now proceed with matching inner nodes.</p>\n\n<h4 id=\"matching-inner-nodes\">Matching Inner Nodes</h4>\n\n<p>Matching inner nodes is quite similar to matching leaf nodes, with the following two distinctions:</p>\n\n<ul>\n<li>Rather than ranking a set of possible candidates, we pick the first node pair that passes the matching criteria.</li>\n<li>The matching criteria itself has been extended to account for the number of leaf nodes the pair of inner nodes have in common.</li>\n</ul>\n\n<p><img src=\"sql_diff_images/figure_3.gif\" alt=\"Figure 3: Matching inner nodes based on their type as well as how many of their leaf nodes have been previously matched.\" />\n<em>Figure 3: Matching inner nodes based on their type as well as how many of their leaf nodes have been previously matched.</em></p>\n\n<p>Let\u2019s start with the matching criteria. The criteria is formalized as follows:</p>\n\n<p><img src=\"sql_diff_images/matching_criteria_2.png\" alt=\"Matching criteria for inner nodes\" /></p>\n\n<p>Alongside already familiar similarity score and node type criteria, there is a new one in the middle: the ratio of leaf nodes that the two nodes have in common must exceed some threshold \u201ct\u201d. The recommended value for \u201ct\u201d is also 0.6. Counting the number of common leaf nodes is pretty straightforward, since we already have the complete matching set for leaves. All we need to do is count how many matching pairs do leaf nodes from the two compared inner nodes form.</p>\n\n<p>There are two additional heuristics associated with this matching criteria:</p>\n\n<ul>\n<li>Inner node similarity weighting: if the similarity score between the node values doesn\u2019t pass the threshold \u201cf\u201d but the ratio of common leaf nodes (\u201ct\u201d) is greater than or equal to 0.8, then the matching is considered successful.</li>\n<li>The threshold \u201ct\u201d is reduced to 0.4 for inner nodes with the number of leaf nodes equal to 4 or less, in order to decrease the false negative rate for small subtrees.</li>\n</ul>\n\n<p>We now only have to iterate through the remaining unmatched nodes and form matching pairs based on the outlined criteria:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">leaves_matching_set</span> <span class=\"o\">=</span> <span class=\"n\">matching_set</span><span class=\"o\">.</span><span class=\"n\">copy</span><span class=\"p\">()</span>\n\n<span class=\"k\">for</span> <span class=\"n\">source_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span><span class=\"o\">.</span><span class=\"n\">copy</span><span class=\"p\">():</span>\n <span class=\"k\">for</span> <span class=\"n\">target_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_target_nodes</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">_is_same_type</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">):</span>\n <span class=\"n\">source_leaves</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">))</span>\n <span class=\"n\">target_leaves</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"n\">target_node</span><span class=\"p\">))</span>\n\n <span class=\"n\">max_leaves_num</span> <span class=\"o\">=</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">source_leaves</span><span class=\"p\">),</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">target_leaves</span><span class=\"p\">))</span>\n <span class=\"k\">if</span> <span class=\"n\">max_leaves_num</span><span class=\"p\">:</span>\n <span class=\"n\">common_leaves_num</span> <span class=\"o\">=</span> <span class=\"nb\">sum</span><span class=\"p\">(</span>\n <span class=\"mi\">1</span> <span class=\"k\">if</span> <span class=\"n\">s</span> <span class=\"ow\">in</span> <span class=\"n\">source_leaves</span> <span class=\"ow\">and</span> <span class=\"n\">t</span> <span class=\"ow\">in</span> <span class=\"n\">target_leaves</span> <span class=\"k\">else</span> <span class=\"mi\">0</span>\n <span class=\"k\">for</span> <span class=\"n\">s</span><span class=\"p\">,</span> <span class=\"n\">t</span> <span class=\"ow\">in</span> <span class=\"n\">leaves_matching_set</span>\n <span class=\"p\">)</span>\n <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">=</span> <span class=\"n\">common_leaves_num</span> <span class=\"o\">/</span> <span class=\"n\">max_leaves_num</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">=</span> <span class=\"mf\">0.0</span>\n\n <span class=\"n\">adjusted_t</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"mf\">0.6</span>\n <span class=\"k\">if</span> <span class=\"nb\">min</span><span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">source_leaves</span><span class=\"p\">),</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">target_leaves</span><span class=\"p\">))</span> <span class=\"o\">></span> <span class=\"mi\">4</span>\n <span class=\"k\">else</span> <span class=\"mf\">0.4</span>\n <span class=\"p\">)</span>\n\n <span class=\"k\">if</span> <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">>=</span> <span class=\"mf\">0.8</span> <span class=\"ow\">or</span> <span class=\"p\">(</span>\n <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">>=</span> <span class=\"n\">adjusted_t</span>\n <span class=\"ow\">and</span> <span class=\"n\">dice_coefficient</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">)</span> <span class=\"o\">>=</span> <span class=\"mf\">0.6</span>\n <span class=\"p\">):</span>\n <span class=\"n\">matching_set</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">((</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">))</span>\n <span class=\"n\">unmatched_source_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">)</span>\n <span class=\"n\">unmatched_target_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">target_node</span><span class=\"p\">)</span>\n <span class=\"k\">break</span>\n</code></pre>\n</div>\n\n<p>After the matching set is formed, we can proceed with generation of the edit script, which will be the algorithm\u2019s output.</p>\n\n<h3 id=\"generating-the-edit-script\">Generating the Edit Script</h3>\n\n<p>At this point, we should have the following 3 sets at our disposal:</p>\n\n<ul>\n<li>The set of matched node pairs.</li>\n<li>The set of remaining unmatched nodes from the source tree.</li>\n<li>The set of remaining unmatched nodes from the target tree.</li>\n</ul>\n\n<p>We can derive 3 kinds of edits from the matching set: either the node\u2019s value was updated (<strong>Update</strong>), the node was moved to a different position within the tree (<strong>Move</strong>), or the node remained unchanged (<strong>Keep</strong>). Note that the <strong>Move</strong> case is not mutually exclusive with the other two. The node could have been updated or could have remained the same while at the same time its position within its parent node or the parent node itself could have changed. All unmatched nodes from the source tree are the ones that were removed (<strong>Remove</strong>), while unmatched nodes from the target tree are the ones that were inserted (<strong>Insert</strong>).</p>\n\n<p>The latter two cases are pretty straightforward to implement:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">edit_script</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n<span class=\"k\">for</span> <span class=\"n\">removed_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span><span class=\"p\">:</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">removed_node</span><span class=\"p\">))</span>\n<span class=\"k\">for</span> <span class=\"n\">inserted_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_target_nodes</span><span class=\"p\">:</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">inserted_node</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<p>Traversing the matching set requires a little more thought:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">for</span> <span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span> <span class=\"ow\">in</span> <span class=\"n\">matching_set</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"p\">(</span>\n <span class=\"ow\">not</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">LEAF_EXPRESSION_TYPES</span><span class=\"p\">)</span>\n <span class=\"ow\">or</span> <span class=\"n\">source_node</span> <span class=\"o\">==</span> <span class=\"n\">target_node</span>\n <span class=\"p\">):</span>\n <span class=\"n\">move_edits</span> <span class=\"o\">=</span> <span class=\"n\">generate_move_edits</span><span class=\"p\">(</span>\n <span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">,</span> <span class=\"n\">matching_set</span>\n <span class=\"p\">)</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">extend</span><span class=\"p\">(</span><span class=\"n\">move_edits</span><span class=\"p\">)</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">))</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Update</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<p>If a matching pair represents a pair of leaf nodes, we check if they are the same to decide whether an update took place. For inner node pairs, we also need to compare the positions of their respective children to detect node movements. Chawathe et al. [3] suggest applying the <a href=\"https://en.wikipedia.org/wiki/Longest_common_subsequence_problem\">longest common subsequence </a>(LCS) algorithm which, no surprise here, was described by Myers himself [1]. There is a small catch, however: instead of checking the equality of two children nodes, we need to check whether the two nodes form a pair that is a part of our matching set.</p>\n\n<p>Now with this knowledge, the implementation becomes straightforward:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">def</span> <span class=\"nf\">generate_move_edits</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">,</span> <span class=\"n\">target</span><span class=\"p\">,</span> <span class=\"n\">matching_set</span><span class=\"p\">):</span>\n <span class=\"n\">source_children</span> <span class=\"o\">=</span> <span class=\"n\">_get_child_nodes</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">)</span>\n <span class=\"n\">target_children</span> <span class=\"o\">=</span> <span class=\"n\">_get_child_nodes</span><span class=\"p\">(</span><span class=\"n\">target</span><span class=\"p\">)</span>\n\n <span class=\"n\">lcs</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span>\n <span class=\"n\">_longest_common_subsequence</span><span class=\"p\">(</span>\n <span class=\"n\">source_children</span><span class=\"p\">,</span>\n <span class=\"n\">target_children</span><span class=\"p\">,</span>\n <span class=\"k\">lambda</span> <span class=\"n\">l</span><span class=\"p\">,</span> <span class=\"n\">r</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"n\">l</span><span class=\"p\">,</span> <span class=\"n\">r</span><span class=\"p\">)</span> <span class=\"ow\">in</span> <span class=\"n\">matching_set</span>\n <span class=\"p\">)</span>\n <span class=\"p\">)</span>\n\n <span class=\"n\">move_edits</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">node</span> <span class=\"ow\">in</span> <span class=\"n\">source_children</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">node</span> <span class=\"ow\">not</span> <span class=\"ow\">in</span> <span class=\"n\">lcs</span> <span class=\"ow\">and</span> <span class=\"n\">node</span> <span class=\"ow\">not</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span><span class=\"p\">:</span>\n <span class=\"n\">move_edits</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Move</span><span class=\"p\">(</span><span class=\"n\">node</span><span class=\"p\">))</span>\n\n <span class=\"k\">return</span> <span class=\"n\">move_edits</span>\n</code></pre>\n</div>\n\n<p>I left out the implementation of the LCS algorithm itself here, but there are plenty of implementation choices out there that can be easily looked up.</p>\n\n<h3 id=\"output\">Output</h3>\n\n<p>The implemented algorithm produces the output that resembles the following:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"o\">>>></span> <span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span><span class=\"p\">,</span> <span class=\"n\">diff</span>\n<span class=\"o\">>>></span> <span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a + b + c, d, e"</span><span class=\"p\">),</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a - b + c, e, f"</span><span class=\"p\">))</span>\n\n<span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">Add</span><span class=\"p\">)</span>\n<span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">d</span><span class=\"p\">))</span>\n<span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">d</span><span class=\"p\">))</span>\n<span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">Sub</span><span class=\"p\">)</span>\n<span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">))</span>\n<span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Select</span><span class=\"p\">,</span> <span class=\"n\">Select</span><span class=\"p\">)</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Add</span><span class=\"p\">,</span> <span class=\"n\">Add</span><span class=\"p\">)</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<p>Note that the output above is abbreviated. The string representation of actual AST nodes is significantly more verbose.</p>\n\n<p>The implementation works especially well when coupled with the SQLGlot\u2019s query optimizer which can be used to produce canonical representations of compared queries:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"o\">>>></span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">"t"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"b"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"c"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"d"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">}}</span>\n<span class=\"o\">>>></span> <span class=\"n\">source</span> <span class=\"o\">=</span> <span class=\"s2\">"""</span>\n<span class=\"s2\">... SELECT 1 + 1 + a</span>\n<span class=\"s2\">... FROM t</span>\n<span class=\"s2\">... WHERE b = 1 OR (c = 2 AND d = 3)</span>\n<span class=\"s2\">... """</span>\n<span class=\"o\">>>></span> <span class=\"n\">target</span> <span class=\"o\">=</span> <span class=\"s2\">"""</span>\n<span class=\"s2\">... SELECT 2 + a</span>\n<span class=\"s2\">... FROM t</span>\n<span class=\"s2\">... WHERE (b = 1 OR c = 2) AND (b = 1 OR d = 3)</span>\n<span class=\"s2\">... """</span>\n<span class=\"o\">>>></span> <span class=\"n\">optimized_source</span> <span class=\"o\">=</span> <span class=\"n\">optimize</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">),</span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"n\">schema</span><span class=\"p\">)</span>\n<span class=\"o\">>>></span> <span class=\"n\">optimized_target</span> <span class=\"o\">=</span> <span class=\"n\">optimize</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">target</span><span class=\"p\">),</span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"n\">schema</span><span class=\"p\">)</span>\n<span class=\"o\">>>></span> <span class=\"n\">edit_script</span> <span class=\"o\">=</span> <span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">optimized_source</span><span class=\"p\">,</span> <span class=\"n\">optimized_target</span><span class=\"p\">)</span>\n<span class=\"o\">>>></span> <span class=\"nb\">sum</span><span class=\"p\">(</span><span class=\"mi\">0</span> <span class=\"k\">if</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">,</span> <span class=\"n\">Keep</span><span class=\"p\">)</span> <span class=\"k\">else</span> <span class=\"mi\">1</span> <span class=\"k\">for</span> <span class=\"n\">e</span> <span class=\"ow\">in</span> <span class=\"n\">edit_script</span><span class=\"p\">)</span>\n<span class=\"mi\">0</span>\n</code></pre>\n</div>\n\n<h3 id=\"optimizations\">Optimizations</h3>\n\n<p>The worst case runtime complexity of this algorithm is not exactly stellar: O(n^2 * log n^2). This is because of the leaf matching process, which involves ranking a cartesian product between all leaf nodes of compared trees. Unsurprisingly, the algorithm takes a considerable time to finish for bigger queries.</p>\n\n<p>There are still a few basic things we can do in our implementation to help improve performance:</p>\n\n<ul>\n<li>Refer to individual node objects using their identifiers (Python\u2019s <a href=\"https://docs.python.org/3/library/functions.html#id\">id()</a>) instead of direct references in sets. This helps avoid costly recursive hash calculations and equality checks.</li>\n<li>Cache bigram histograms to avoid computing them more than once for the same node.</li>\n<li>Compute the canonical SQL string representation for each tree once while caching string representations of all inner nodes. This prevents redundant tree traversals when bigrams are computed.</li>\n</ul>\n\n<p>At the time of writing only the first two optimizations have been implemented, so there is an opportunity to contribute for anyone who\u2019s interested.</p>\n\n<h2 id=\"alternative-solutions\">Alternative Solutions</h2>\n\n<p>This section is dedicated to solutions that I\u2019ve investigated, but haven\u2019t tried.</p>\n\n<p>First, this section wouldn\u2019t be complete without Tristan Hume\u2019s <a href=\"https://thume.ca/2017/06/17/tree-diffing/\">blog post</a>. Tristan\u2019s solution has a lot in common with the Myers algorithm plus heuristics that is much more clever than what I came up with. The implementation relies on a combination of <a href=\"https://en.wikipedia.org/wiki/Dynamic_programming\">dynamic programming</a> and <a href=\"https://en.wikipedia.org/wiki/A*_search_algorithm\">A* search algorithm</a> to explore the space of possible matchings and pick the best ones. It seemed to have worked well for Tistan\u2019s specific use case, but after my negative experience with the Myers algorithm, I decided to try something different.</p>\n\n<p>Another notable approach is the Gumtree algorithm by Falleri et al. [4]. I discovered this paper after I\u2019d already implemented the algorithm that is the main focus of this post. In sections 5.2 and 5.3 of their paper, the authors compare the two algorithms side by side and claim that Gumtree is significantly better in terms of both runtime performance and accuracy when evaluated on 12 792 pairs of Java source files. This doesn\u2019t surprise me, as the algorithm takes the height of subtrees into account. In my tests, I definitely saw scenarios in which this context would have helped. On top of that, the authors promise O(n^2) runtime complexity in the worst case which, given the Change Distiller's O(n^2 * log n^2), looks particularly tempting. I hope to try this algorithm out at some point, and there is a good chance you see me writing about it in my future posts.</p>\n\n<h2 id=\"conclusion\">Conclusion</h2>\n\n<p>The Change Distiller algorithm yielded quite satisfactory results in most of my tests. The scenarios in which it fell short mostly concerned identical (or very similar) subtrees located in different parts of the AST. In those cases, node mismatches were frequent and, as a result, edit scripts were somewhat suboptimal.</p>\n\n<p>Additionally, the runtime performance of the algorithm leaves a lot to be desired. On trees with 1000 leaf nodes each, the algorithm takes a little under 2 seconds to complete. My implementation still has room for improvement, but this should give you a rough idea of what to expect. It appears that the Gumtree algorithm [4] can help address both of these points. I hope to find bandwidth to work on it soon and then compare the two algorithms side-by-side to find out which one performs better on SQL specifically. In the meantime, Change Distiller definitely gets the job done, and I can now proceed with applying it to some of the use cases I mentioned at the beginning of this post.</p>\n\n<p>I\u2019m also curious to learn whether other folks in the industry faced a similar problem, and how they approached it. If you did something similar, I\u2019m interested to hear about your experience.</p>\n\n<h2 id=\"references\">References</h2>\n\n<p>[1] Eugene W. Myers. <a href=\"http://www.xmailserver.org/diff2.pdf\">An O(ND) Difference Algorithm and Its Variations</a>. Algorithmica 1(2): 251-266 (1986)</p>\n\n<p>[2] B. Fluri, M. Wursch, M. Pinzger, and H. Gall. <a href=\"https://www.researchgate.net/publication/3189787_Change_DistillingTree_Differencing_for_Fine-Grained_Source_Code_Change_Extraction\">Change Distilling: Tree differencing for fine-grained source code change extraction</a>. IEEE Trans. Software Eng., 33(11):725\u2013743, 2007.</p>\n\n<p>[3] S.S. Chawathe, A. Rajaraman, H. Garcia-Molina, and J. Widom. <a href=\"http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf\">Change Detection in Hierarchically Structured Information</a>. Proc. ACM Sigmod Int\u2019l Conf. Management of Data, pp. 493-504, June 1996</p>\n\n<p>[4] Jean-R\u00e9my Falleri, Flor\u00e9al Morandat, Xavier Blanc, Matias Martinez, Martin Monperrus. <a href=\"https://hal.archives-ouvertes.fr/hal-01054552/document\">Fine-grained and Accurate Source Code Differencing</a>. Proceedings of the International Conference on Automated Software Engineering, 2014, V\u00e4steras, Sweden. pp.313-324, 10.1145/2642937.2642982. hal-01054552</p>\n\n<hr />\n"}, "sqlglot.diff.Insert": {"fullname": "sqlglot.diff.Insert", "modulename": "sqlglot.diff", "qualname": "Insert", "kind": "class", "doc": "<p>Indicates that a new node has been inserted</p>\n"}, "sqlglot.diff.Insert.__init__": {"fullname": "sqlglot.diff.Insert.__init__", "modulename": "sqlglot.diff", "qualname": "Insert.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Remove": {"fullname": "sqlglot.diff.Remove", "modulename": "sqlglot.diff", "qualname": "Remove", "kind": "class", "doc": "<p>Indicates that an existing node has been removed</p>\n"}, "sqlglot.diff.Remove.__init__": {"fullname": "sqlglot.diff.Remove.__init__", "modulename": "sqlglot.diff", "qualname": "Remove.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Move": {"fullname": "sqlglot.diff.Move", "modulename": "sqlglot.diff", "qualname": "Move", "kind": "class", "doc": "<p>Indicates that an existing node's position within the tree has changed</p>\n"}, "sqlglot.diff.Move.__init__": {"fullname": "sqlglot.diff.Move.__init__", "modulename": "sqlglot.diff", "qualname": "Move.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Update": {"fullname": "sqlglot.diff.Update", "modulename": "sqlglot.diff", "qualname": "Update", "kind": "class", "doc": "<p>Indicates that an existing node has been updated</p>\n"}, "sqlglot.diff.Update.__init__": {"fullname": "sqlglot.diff.Update.__init__", "modulename": "sqlglot.diff", "qualname": "Update.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Keep": {"fullname": "sqlglot.diff.Keep", "modulename": "sqlglot.diff", "qualname": "Keep", "kind": "class", "doc": "<p>Indicates that an existing node hasn't been changed</p>\n"}, "sqlglot.diff.Keep.__init__": {"fullname": "sqlglot.diff.Keep.__init__", "modulename": "sqlglot.diff", "qualname": "Keep.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.diff": {"fullname": "sqlglot.diff.diff", "modulename": "sqlglot.diff", "qualname": "diff", "kind": "function", "doc": "<p>Returns the list of changes between the source and the target expressions.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"a + b"</span><span class=\"p\">),</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"a + c"</span><span class=\"p\">))</span>\n<span class=\"go\">[</span>\n<span class=\"go\"> Remove(expression=(COLUMN this: (IDENTIFIER this: b, quoted: False))),</span>\n<span class=\"go\"> Insert(expression=(COLUMN this: (IDENTIFIER this: c, quoted: False))),</span>\n<span class=\"go\"> Keep(</span>\n<span class=\"go\"> source=(ADD this: ...),</span>\n<span class=\"go\"> target=(ADD this: ...)</span>\n<span class=\"go\"> ),</span>\n<span class=\"go\"> Keep(</span>\n<span class=\"go\"> source=(COLUMN this: (IDENTIFIER this: a, quoted: False)),</span>\n<span class=\"go\"> target=(COLUMN this: (IDENTIFIER this: a, quoted: False))</span>\n<span class=\"go\"> ),</span>\n<span class=\"go\">]</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>source:</strong> the source expression.</li>\n<li><strong>target:</strong> the target expression against which the diff should be calculated.</li>\n<li><strong>matchings:</strong> the list of pre-matched node pairs which is used to help the algorithm's\nheuristics produce better results for subtrees that are known by a caller to be matching.\nNote: expression references in this list must refer to the same node objects that are\nreferenced in source / target trees.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>the list of Insert, Remove, Move, Update and Keep objects for each node in the source and the\n target expression trees. This list represents a sequence of steps needed to transform the source\n expression tree into the target one.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">matchings</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Insert</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Remove</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Move</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Update</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Keep</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.diff.ChangeDistiller": {"fullname": "sqlglot.diff.ChangeDistiller", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller", "kind": "class", "doc": "<p>The implementation of the Change Distiller algorithm described by Beat Fluri and Martin Pinzger in\ntheir paper <a href=\"https://ieeexplore.ieee.org/document/4339230\">https://ieeexplore.ieee.org/document/4339230</a>, which in turn is based on the algorithm by\nChawathe et al. described in <a href=\"http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf\">http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf</a>.</p>\n"}, "sqlglot.diff.ChangeDistiller.__init__": {"fullname": "sqlglot.diff.ChangeDistiller.__init__", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">f</span><span class=\"p\">:</span> <span class=\"nb\">float</span> <span class=\"o\">=</span> <span class=\"mf\">0.6</span>, </span><span class=\"param\"><span class=\"n\">t</span><span class=\"p\">:</span> <span class=\"nb\">float</span> <span class=\"o\">=</span> <span class=\"mf\">0.6</span></span>)</span>"}, "sqlglot.diff.ChangeDistiller.diff": {"fullname": "sqlglot.diff.ChangeDistiller.diff", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.diff", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">matchings</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Insert</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Remove</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Move</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Update</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Keep</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.errors": {"fullname": "sqlglot.errors", "modulename": "sqlglot.errors", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.errors.ErrorLevel": {"fullname": "sqlglot.errors.ErrorLevel", "modulename": "sqlglot.errors", "qualname": "ErrorLevel", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.errors.ErrorLevel.IGNORE": {"fullname": "sqlglot.errors.ErrorLevel.IGNORE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IGNORE", "kind": "variable", "doc": "<p>Ignore all errors.</p>\n", "default_value": "<ErrorLevel.IGNORE: 'IGNORE'>"}, "sqlglot.errors.ErrorLevel.WARN": {"fullname": "sqlglot.errors.ErrorLevel.WARN", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.WARN", "kind": "variable", "doc": "<p>Log all errors.</p>\n", "default_value": "<ErrorLevel.WARN: 'WARN'>"}, "sqlglot.errors.ErrorLevel.RAISE": {"fullname": "sqlglot.errors.ErrorLevel.RAISE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.RAISE", "kind": "variable", "doc": "<p>Collect all errors and raise a single exception.</p>\n", "default_value": "<ErrorLevel.RAISE: 'RAISE'>"}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"fullname": "sqlglot.errors.ErrorLevel.IMMEDIATE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IMMEDIATE", "kind": "variable", "doc": "<p>Immediately raise an exception on the first error found.</p>\n", "default_value": "<ErrorLevel.IMMEDIATE: 'IMMEDIATE'>"}, "sqlglot.errors.SqlglotError": {"fullname": "sqlglot.errors.SqlglotError", "modulename": "sqlglot.errors", "qualname": "SqlglotError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "builtins.Exception"}, "sqlglot.errors.UnsupportedError": {"fullname": "sqlglot.errors.UnsupportedError", "modulename": "sqlglot.errors", "qualname": "UnsupportedError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError": {"fullname": "sqlglot.errors.ParseError", "modulename": "sqlglot.errors", "qualname": "ParseError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError.__init__": {"fullname": "sqlglot.errors.ParseError.__init__", "modulename": "sqlglot.errors", "qualname": "ParseError.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">errors</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Any</span><span class=\"p\">]]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.errors.ParseError.new": {"fullname": "sqlglot.errors.ParseError.new", "modulename": "sqlglot.errors", "qualname": "ParseError.new", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">description</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">line</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">start_context</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">highlight</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">end_context</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">into_expression</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=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ParseError</span>:</span></span>", "funcdef": "def"}, "sqlglot.errors.TokenError": {"fullname": "sqlglot.errors.TokenError", "modulename": "sqlglot.errors", "qualname": "TokenError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.OptimizeError": {"fullname": "sqlglot.errors.OptimizeError", "modulename": "sqlglot.errors", "qualname": "OptimizeError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.SchemaError": {"fullname": "sqlglot.errors.SchemaError", "modulename": "sqlglot.errors", "qualname": "SchemaError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.ExecuteError": {"fullname": "sqlglot.errors.ExecuteError", "modulename": "sqlglot.errors", "qualname": "ExecuteError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.concat_messages": {"fullname": "sqlglot.errors.concat_messages", "modulename": "sqlglot.errors", "qualname": "concat_messages", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">errors</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">maximum</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.errors.merge_errors": {"fullname": "sqlglot.errors.merge_errors", "modulename": "sqlglot.errors", "qualname": "merge_errors", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">errors</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ParseError</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Any</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor": {"fullname": "sqlglot.executor", "modulename": "sqlglot.executor", "kind": "module", "doc": "<h1 id=\"writing-a-python-sql-engine-from-scratch\">Writing a Python SQL engine from scratch</h1>\n\n<p><a href=\"https://www.linkedin.com/in/toby-mao/\">Toby Mao</a></p>\n\n<h2 id=\"introduction\">Introduction</h2>\n\n<p>When I first started writing SQLGlot in early 2021, my goal was just to translate SQL queries from SparkSQL to Presto and vice versa. However, over the last year and a half, I've ended up with a full-fledged SQL engine. SQLGlot can now parse and transpile between <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/dialects/__init__.py\">18 SQL dialects</a> and can execute all 24 <a href=\"https://www.tpc.org/tpch/\">TPC-H</a> SQL queries. The parser and engine are all written from scratch using Python.</p>\n\n<p>This post will cover <a href=\"#why\">why</a> I went through the effort of creating a Python SQL engine and <a href=\"#how\">how</a> a simple query goes from a string to actually transforming data. The following steps are briefly summarized:</p>\n\n<ul>\n<li><a href=\"#tokenizing\">Tokenizing</a></li>\n<li><a href=\"#parsing\">Parsing</a></li>\n<li><a href=\"#optimizing\">Optimizing</a></li>\n<li><a href=\"#planning\">Planning</a></li>\n<li><a href=\"#executing\">Executing</a></li>\n</ul>\n\n<h2 id=\"why\">Why?</h2>\n\n<p>I started working on SQLGlot because of my work on the <a href=\"https://netflixtechblog.com/reimagining-experimentation-analysis-at-netflix-71356393af21\">experimentation and metrics platform</a> at Netflix, where I built tools that allowed data scientists to define and compute SQL-based metrics. Netflix relied on multiple engines to query data (Spark, Presto, and Druid), so my team built the metrics platform around <a href=\"https://github.com/kayak/pypika\">PyPika</a>, a Python SQL query builder. This way, definitions could be reused across multiple engines. However, it became quickly apparent that writing python code to programmatically generate SQL was challenging for data scientists, especially those with academic backgrounds, since they were mostly familiar with R and SQL. At the time, the only Python SQL parser was <a href=\"[https://github.com/andialbrecht/sqlparse\">sqlparse</a>, which is not actually a parser but a tokenizer, so having users write raw SQL into the platform wasn't really an option. Some time later, I randomly stumbled across <a href=\"https://craftinginterpreters.com/\">Crafting Interpreters</a> and realized that I could use it as a guide towards creating my own SQL parser/transpiler.</p>\n\n<p>Why did I do this? Isn't a Python SQL engine going to be extremely slow?</p>\n\n<p>The main reason why I ended up building a SQL engine was...just for <strong>entertainment</strong>. It's been fun learning about all the things required to actually run a SQL query, and seeing it actually work is extremely rewarding. Before SQLGlot, I had zero experience with lexers, parsers, or compilers.</p>\n\n<p>In terms of practical use cases, I planned to use the Python SQL engine for unit testing SQL pipelines. Big data pipelines are tough to test because many of the engines are not open source and cannot be run locally. With SQLGlot, you can take a SQL query targeting a warehouse such as <a href=\"https://www.snowflake.com/en/\">Snowflake</a> and seamlessly run it in CI on mock Python data. It's easy to mock data and create arbitrary <a href=\"https://en.wikipedia.org/wiki/User-defined_function\">UDFs</a> because everything is just Python. Although the implementation is slow and unsuitable for large amounts of data (> 1 million rows), there's very little overhead/startup and you can run queries on test data in a couple of milliseconds.</p>\n\n<p>Finally, the components that have been built to support execution can be used as a <strong>foundation</strong> for a faster engine. I'm inspired by what <a href=\"https://github.com/apache/calcite\">Apache Calcite</a> has done for the JVM world. Even though Python is commonly used for data, there hasn't been a Calcite for Python. So, you could say that SQLGlot aims to be that framework. For example, it wouldn't take much work to replace the Python execution engine with numpy/pandas/arrow to become a respectably-performing query engine. The implementation would be able to leverage the parser, optimizer, and logical planner, only needing to implement physical execution. There is a lot of work in the Python ecosystem around high performance vectorized computation, which I think could benefit from a pure Python-based <a href=\"https://en.wikipedia.org/wiki/Abstract_syntax_tree\">AST</a>/<a href=\"https://en.wikipedia.org/wiki/Query_plan\">plan</a>. Parsing and planning doesn't have to be fast when the bottleneck of running queries is processing terabytes of data. So, having a Python-based ecosystem around SQL is beneficial given the ease of development in Python, despite not having bare metal performance.</p>\n\n<p>Parts of SQLGlot's toolkit are being used today by the following:</p>\n\n<ul>\n<li><a href=\"https://github.com/ibis-project/ibis\">Ibis</a>: A Python library that provides a lightweight, universal interface for data wrangling.\n<ul>\n<li>Uses the Python SQL expression builder and leverages the optimizer/planner to convert SQL into dataframe operations.</li>\n</ul></li>\n<li><a href=\"https://github.com/kelsin/mysql-mimic\">mysql-mimic</a>: Pure-Python implementation of the MySQL server wire protocol\n<ul>\n<li>Parses / transforms SQL and executes INFORMATION_SCHEMA queries.</li>\n</ul></li>\n<li><a href=\"https://github.com/marsupialtail/quokka\">Quokka</a>: Push-based vectorized query engine\n<ul>\n<li>Parse and optimizes SQL.</li>\n</ul></li>\n<li><a href=\"https://github.com/moj-analytical-services/splink\">Splink</a>: Fast, accurate and scalable probabilistic data linkage using your choice of SQL backend.\n<ul>\n<li>Transpiles queries.</li>\n</ul></li>\n</ul>\n\n<h2 id=\"how\">How?</h2>\n\n<p>There are many steps involved with actually running a simple query like:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"n\">b</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">b</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">bar</span>\n<span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"n\">baz</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">baz</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">></span><span class=\"w\"> </span><span class=\"mi\">1</span>\n</code></pre>\n</div>\n\n<p>In this post, I'll walk through all the steps SQLGlot takes to run this query over Python objects.</p>\n\n<h2 id=\"tokenizing\">Tokenizing</h2>\n\n<p>The first step is to convert the sql string into a list of tokens. SQLGlot's tokenizer is quite simple and can be found <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/tokens.py\">here</a>. In a while loop, it checks each character and either appends the character to the current token, or makes a new token.</p>\n\n<p>Running the SQLGlot tokenizer shows the output.</p>\n\n<p><img src=\"python_sql_engine_images/tokenizer.png\" alt=\"Tokenizer Output\" /></p>\n\n<p>Each keyword has been converted to a SQLGlot Token object. Each token has some metadata associated with it, like line/column information for error messages. Comments are also a part of the token, so that comments can be preserved.</p>\n\n<h2 id=\"parsing\">Parsing</h2>\n\n<p>Once a SQL statement is tokenized, we don't need to worry about white space and other formatting, so it's easier to work with. We can now convert the list of tokens into an AST. The SQLGlot <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/parser.py\">parser</a> is a handwritten <a href=\"https://en.wikipedia.org/wiki/Recursive_descent_parser\">recursive descent</a> parser.</p>\n\n<p>Similar to the tokenizer, it consumes the tokens sequentially, but it instead uses a recursive algorithm. The tokens are converted into a single AST node that presents the SQL query. The SQLGlot parser was designed to support various dialects, so it contains many options for overriding parsing functionality.</p>\n\n<p><img src=\"python_sql_engine_images/parser.png\" alt=\"Parser Output\" /></p>\n\n<p>The AST is a generic representation of a given SQL query. Each dialect can override or implement its own generator, which can convert an AST object into syntatically-correct SQL.</p>\n\n<h2 id=\"optimizing\">Optimizing</h2>\n\n<p>Once we have our AST, we can transform it into an equivalent query that produces the same results more efficiently. When optimizing queries, most engines first convert the AST into a logical plan and then optimize the plan. However, I chose to <strong>optimize the AST directly</strong> for the following reasons:</p>\n\n<ol>\n<li><p>It's easier to debug and <a href=\"https://github.com/tobymao/sqlglot/blob/main/tests/fixtures/optimizer\">validate</a> the optimizations when the input and output are both SQL.</p></li>\n<li><p>Rules can be applied a la carte to transform SQL into a more desirable form.</p></li>\n<li><p>I wanted a way to generate 'canonical sql'. Having a canonical representation of SQL is useful for understanding if two queries are semantically equivalent (e.g. <code>SELECT 1 + 1</code> and <code>SELECT 2</code>).</p></li>\n</ol>\n\n<p>I've yet to find another engine that takes this approach, but I'm quite happy with this decision. The optimizer currently does not perform any \"physical optimizations\" such as join reordering. Those are left to the execution layer, as additional statistics and information could become relevant.</p>\n\n<p><img src=\"python_sql_engine_images/optimizer.png\" alt=\"Optimizer Output\" /></p>\n\n<p>The optimizer currently has <a href=\"https://github.com/tobymao/sqlglot/tree/main/sqlglot/optimizer\">17 rules</a>. Each of these rules is applied, transforming the AST in place. The combination of these rules creates \"canonical\" sql that can then be more easily converted into a logical plan and executed.</p>\n\n<p>Some example rules are:</p>\n\n<h3 id=\"qualify_tables-and-qualify_columns\">qualify_tables and qualify_columns</h3>\n\n<ul>\n<li>Adds all db/catalog qualifiers to tables and forces an alias.</li>\n<li>Ensure each column is unambiguous and expand stars.</li>\n</ul>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span><span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">;</span>\n\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"ss\">"db"</span><span class=\"p\">.</span><span class=\"ss\">"x"</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">;</span>\n</code></pre>\n</div>\n\n<h3 id=\"simplify\">simplify</h3>\n\n<p>Boolean and math simplification. Check out all the <a href=\"https://github.com/tobymao/sqlglot/blob/main/tests/fixtures/optimizer/simplify.sql\">test cases</a>.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">((</span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"k\">FALSE</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">))</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"k\">TRUE</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"o\"><></span><span class=\"w\"> </span><span class=\"mi\">3</span><span class=\"p\">);</span>\n<span class=\"n\">x</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">;</span>\n\n<span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">;</span>\n<span class=\"mi\">2</span><span class=\"p\">;</span>\n</code></pre>\n</div>\n\n<h3 id=\"normalize\">normalize</h3>\n\n<p>Attempts to convert all predicates into <a href=\"https://en.wikipedia.org/wiki/Conjunctive_normal_form\">conjunctive normal form</a>.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"c1\">-- DNF</span>\n<span class=\"p\">(</span><span class=\"n\">A</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"n\">B</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">B</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"k\">C</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"n\">D</span><span class=\"p\">);</span>\n\n<span class=\"c1\">-- CNF</span>\n<span class=\"p\">(</span><span class=\"n\">A</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"k\">C</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">A</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">D</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"n\">B</span><span class=\"p\">;</span>\n</code></pre>\n</div>\n\n<h3 id=\"unnest_subqueries\">unnest_subqueries</h3>\n\n<p>Converts subqueries in predicates into joins.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"c1\">-- The subquery can be converted into a left join</span>\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">a</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">;</span>\n\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"k\">LEFT</span><span class=\"w\"> </span><span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">a</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"k\">TRUE</span>\n<span class=\"w\"> </span><span class=\"k\">GROUP</span><span class=\"w\"> </span><span class=\"k\">BY</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"_u_0"</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"ss\">"_u_0"</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"ss\">"_u_0"</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"ss\">"_u_0"</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"k\">IS</span><span class=\"w\"> </span><span class=\"k\">NULL</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"pushdown_predicates\">pushdown_predicates</h3>\n\n<p>Push down filters into the innermost query.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">;</span>\n\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"k\">TRUE</span>\n</code></pre>\n</div>\n\n<h3 id=\"annotate_types\">annotate_types</h3>\n\n<p>Infer all types throughout the AST given schema information and function type definitions.</p>\n\n<h2 id=\"planning\">Planning</h2>\n\n<p>After the SQL AST has been \"optimized\", it's much easier to <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/planner.py\">convert into a logical plan</a>. The AST is traversed and converted into a <a href=\"https://en.wikipedia.org/wiki/Directed_acyclic_graph\">DAG</a> consisting of one of five steps. The different steps are:</p>\n\n<h3 id=\"scan\">Scan</h3>\n\n<p>Selects columns from a table, applies projections, and finally filters the table.</p>\n\n<h3 id=\"sort\">Sort</h3>\n\n<p>Sorts a table for order by expressions.</p>\n\n<h3 id=\"set\">Set</h3>\n\n<p>Applies the operators union/union all/except/intersect.</p>\n\n<h3 id=\"aggregate\">Aggregate</h3>\n\n<p>Applies an aggregation/group by.</p>\n\n<h3 id=\"join\">Join</h3>\n\n<p>Joins multiple tables together.</p>\n\n<p><img src=\"python_sql_engine_images/planner.png\" alt=\"Planner Output\" /></p>\n\n<p>The logical plan is quite simple and contains the information required to convert it into a physical plan (execution).</p>\n\n<h2 id=\"executing\">Executing</h2>\n\n<p>Finally, we can actually execute the SQL query. The <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/executor/python.py\">Python engine</a> is not fast, but it's very small (~400 LOC)! It iterates the DAG with a queue and runs each step, passing each intermediary table to the next step.</p>\n\n<p>In order to keep things simple, it evaluates expressions with <code>eval</code>. Because SQLGlot was built primarily to be a transpiler, it was simple to create a \"Python SQL\" dialect. So a SQL expression <code>x + 1</code> can just be converted into <code>scope['x'] + 1</code>.</p>\n\n<p><img src=\"python_sql_engine_images/executor.png\" alt=\"Executor Output\" /></p>\n\n<h2 id=\"whats-next\">What's next</h2>\n\n<p>SQLGlot's main focus will always be on parsing/transpiling, but I plan to continue development on the execution engine. I'd like to pass <a href=\"https://www.tpc.org/tpcds/\">TPC-DS</a>. If someone doesn't beat me to it, I may even take a stab at writing a Pandas/Arrow execution engine.</p>\n\n<p>I'm hoping that over time, SQLGlot will spark the Python SQL ecosystem just like Calcite has for Java.</p>\n\n<h2 id=\"special-thanks\">Special thanks</h2>\n\n<p>SQLGlot would not be what it is without it's core contributors. In particular, the execution engine would not exist without <a href=\"https://github.com/barakalon\">Barak Alon</a> and <a href=\"https://github.com/GeorgeSittas\">George Sittas</a>.</p>\n\n<h2 id=\"get-in-touch\">Get in touch</h2>\n\n<p>If you'd like to chat more about SQLGlot, please join my <a href=\"https://join.slack.com/t/tobiko-data/shared_invite/zt-1ma66d79v-a4dbf4DUpLAQJ8ptQrJygg\">Slack Channel</a>!</p>\n\n<hr />\n"}, "sqlglot.executor.execute": {"fullname": "sqlglot.executor.execute", "modulename": "sqlglot.executor", "qualname": "execute", "kind": "function", "doc": "<p>Run a sql query against data.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> a sql statement.</li>\n<li><strong>schema:</strong> database schema.\nThis can either be an instance of <code>Schema</code> or a mapping in one of the following forms:\n<ol>\n<li>{table: {col: type}}</li>\n<li>{db: {table: {col: type}}}</li>\n<li>{catalog: {db: {table: {col: type}}}}</li>\n</ol></li>\n<li><strong>read:</strong> the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>tables:</strong> additional tables to register.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Simple columnar data structure.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">tables</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">Table</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context": {"fullname": "sqlglot.executor.context", "modulename": "sqlglot.executor.context", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.context.Context": {"fullname": "sqlglot.executor.context.Context", "modulename": "sqlglot.executor.context", "qualname": "Context", "kind": "class", "doc": "<p>Execution context for sql expressions.</p>\n\n<p>Context is used to hold relevant data tables which can then be queried on with eval.</p>\n\n<p>References to columns can either be scalar or vectors. When set_row is used, column references\nevaluate to scalars while set_range evaluates to vectors. This allows convenient and efficient\nevaluation of aggregation functions.</p>\n"}, "sqlglot.executor.context.Context.__init__": {"fullname": "sqlglot.executor.context.Context.__init__", "modulename": "sqlglot.executor.context", "qualname": "Context.__init__", "kind": "function", "doc": "<p>Args\n tables: representing the scope of the current execution context.\n env: dictionary of functions within the execution context.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">tables</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">env</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.context.Context.eval": {"fullname": "sqlglot.executor.context.Context.eval", "modulename": "sqlglot.executor.context", "qualname": "Context.eval", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">code</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.eval_tuple": {"fullname": "sqlglot.executor.context.Context.eval_tuple", "modulename": "sqlglot.executor.context", "qualname": "Context.eval_tuple", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">codes</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.add_columns": {"fullname": "sqlglot.executor.context.Context.add_columns", "modulename": "sqlglot.executor.context", "qualname": "Context.add_columns", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">columns</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.table_iter": {"fullname": "sqlglot.executor.context.Context.table_iter", "modulename": "sqlglot.executor.context", "qualname": "Context.table_iter", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">TableIter</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">context</span><span class=\"o\">.</span><span class=\"n\">Context</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.filter": {"fullname": "sqlglot.executor.context.Context.filter", "modulename": "sqlglot.executor.context", "qualname": "Context.filter", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">condition</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.sort": {"fullname": "sqlglot.executor.context.Context.sort", "modulename": "sqlglot.executor.context", "qualname": "Context.sort", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">key</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.set_row": {"fullname": "sqlglot.executor.context.Context.set_row", "modulename": "sqlglot.executor.context", "qualname": "Context.set_row", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">row</span><span class=\"p\">:</span> <span class=\"n\">Tuple</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.set_index": {"fullname": "sqlglot.executor.context.Context.set_index", "modulename": "sqlglot.executor.context", "qualname": "Context.set_index", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">index</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.set_range": {"fullname": "sqlglot.executor.context.Context.set_range", "modulename": "sqlglot.executor.context", "qualname": "Context.set_range", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.env": {"fullname": "sqlglot.executor.env", "modulename": "sqlglot.executor.env", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.env.reverse_key": {"fullname": "sqlglot.executor.env.reverse_key", "modulename": "sqlglot.executor.env", "qualname": "reverse_key", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.env.reverse_key.__init__": {"fullname": "sqlglot.executor.env.reverse_key.__init__", "modulename": "sqlglot.executor.env", "qualname": "reverse_key.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">obj</span></span>)</span>"}, "sqlglot.executor.env.filter_nulls": {"fullname": "sqlglot.executor.env.filter_nulls", "modulename": "sqlglot.executor.env", "qualname": "filter_nulls", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">func</span>, </span><span class=\"param\"><span class=\"n\">empty_null</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.null_if_any": {"fullname": "sqlglot.executor.env.null_if_any", "modulename": "sqlglot.executor.env", "qualname": "null_if_any", "kind": "function", "doc": "<p>Decorator that makes a function return <code>None</code> if any of the <code>required</code> arguments are <code>None</code>.</p>\n\n<p>This also supports decoration with no arguments, e.g.:</p>\n\n<pre><code>@null_if_any\ndef foo(a, b): ...\n</code></pre>\n\n<p>In which case all arguments are required.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">required</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.str_position": {"fullname": "sqlglot.executor.env.str_position", "modulename": "sqlglot.executor.env", "qualname": "str_position", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">substr</span>, </span><span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">position</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.substring": {"fullname": "sqlglot.executor.env.substring", "modulename": "sqlglot.executor.env", "qualname": "substring", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">length</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.cast": {"fullname": "sqlglot.executor.env.cast", "modulename": "sqlglot.executor.env", "qualname": "cast", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">to</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.ordered": {"fullname": "sqlglot.executor.env.ordered", "modulename": "sqlglot.executor.env", "qualname": "ordered", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">desc</span>, </span><span class=\"param\"><span class=\"n\">nulls_first</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.interval": {"fullname": "sqlglot.executor.env.interval", "modulename": "sqlglot.executor.env", "qualname": "interval", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">unit</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python": {"fullname": "sqlglot.executor.python", "modulename": "sqlglot.executor.python", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.python.PythonExecutor": {"fullname": "sqlglot.executor.python.PythonExecutor", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.python.PythonExecutor.__init__": {"fullname": "sqlglot.executor.python.PythonExecutor.__init__", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">env</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">tables</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.python.PythonExecutor.execute": {"fullname": "sqlglot.executor.python.PythonExecutor.execute", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.execute", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">plan</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.generate": {"fullname": "sqlglot.executor.python.PythonExecutor.generate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.generate", "kind": "function", "doc": "<p>Convert a SQL expression into literal Python code and compile it into bytecode.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"fullname": "sqlglot.executor.python.PythonExecutor.generate_tuple", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.generate_tuple", "kind": "function", "doc": "<p>Convert an array of SQL expressions into tuple of Python byte code.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expressions</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.context": {"fullname": "sqlglot.executor.python.PythonExecutor.context", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.context", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">tables</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.table": {"fullname": "sqlglot.executor.python.PythonExecutor.table", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expressions</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan": {"fullname": "sqlglot.executor.python.PythonExecutor.scan", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.static": {"fullname": "sqlglot.executor.python.PythonExecutor.static", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.static", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan_table": {"fullname": "sqlglot.executor.python.PythonExecutor.scan_table", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan_table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"fullname": "sqlglot.executor.python.PythonExecutor.scan_csv", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan_csv", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.join": {"fullname": "sqlglot.executor.python.PythonExecutor.join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"fullname": "sqlglot.executor.python.PythonExecutor.nested_loop_join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.nested_loop_join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">_join</span>, </span><span class=\"param\"><span class=\"n\">source_context</span>, </span><span class=\"param\"><span class=\"n\">join_context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.hash_join": {"fullname": "sqlglot.executor.python.PythonExecutor.hash_join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.hash_join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">join</span>, </span><span class=\"param\"><span class=\"n\">source_context</span>, </span><span class=\"param\"><span class=\"n\">join_context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.aggregate": {"fullname": "sqlglot.executor.python.PythonExecutor.aggregate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.aggregate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.sort": {"fullname": "sqlglot.executor.python.PythonExecutor.sort", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.sort", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.set_operation": {"fullname": "sqlglot.executor.python.PythonExecutor.set_operation", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.set_operation", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.Python": {"fullname": "sqlglot.executor.python.Python", "modulename": "sqlglot.executor.python", "qualname": "Python", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.executor.python.Python.Tokenizer": {"fullname": "sqlglot.executor.python.Python.Tokenizer", "modulename": "sqlglot.executor.python", "qualname": "Python.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.executor.python.Python.Generator": {"fullname": "sqlglot.executor.python.Python.Generator", "modulename": "sqlglot.executor.python", "qualname": "Python.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.executor.table": {"fullname": "sqlglot.executor.table", "modulename": "sqlglot.executor.table", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.table.Table": {"fullname": "sqlglot.executor.table.Table", "modulename": "sqlglot.executor.table", "qualname": "Table", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.Table.__init__": {"fullname": "sqlglot.executor.table.Table.__init__", "modulename": "sqlglot.executor.table", "qualname": "Table.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">columns</span>, </span><span class=\"param\"><span class=\"n\">rows</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">column_range</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.table.Table.add_columns": {"fullname": "sqlglot.executor.table.Table.add_columns", "modulename": "sqlglot.executor.table", "qualname": "Table.add_columns", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">columns</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.table.Table.append": {"fullname": "sqlglot.executor.table.Table.append", "modulename": "sqlglot.executor.table", "qualname": "Table.append", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">row</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.table.Table.pop": {"fullname": "sqlglot.executor.table.Table.pop", "modulename": "sqlglot.executor.table", "qualname": "Table.pop", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.table.TableIter": {"fullname": "sqlglot.executor.table.TableIter", "modulename": "sqlglot.executor.table", "qualname": "TableIter", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.TableIter.__init__": {"fullname": "sqlglot.executor.table.TableIter.__init__", "modulename": "sqlglot.executor.table", "qualname": "TableIter.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span></span>)</span>"}, "sqlglot.executor.table.RangeReader": {"fullname": "sqlglot.executor.table.RangeReader", "modulename": "sqlglot.executor.table", "qualname": "RangeReader", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.RangeReader.__init__": {"fullname": "sqlglot.executor.table.RangeReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RangeReader.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span></span>)</span>"}, "sqlglot.executor.table.RowReader": {"fullname": "sqlglot.executor.table.RowReader", "modulename": "sqlglot.executor.table", "qualname": "RowReader", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.RowReader.__init__": {"fullname": "sqlglot.executor.table.RowReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RowReader.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">columns</span>, </span><span class=\"param\"><span class=\"n\">column_range</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.table.Tables": {"fullname": "sqlglot.executor.table.Tables", "modulename": "sqlglot.executor.table", "qualname": "Tables", "kind": "class", "doc": "<p>Abstract base class for generic types.</p>\n\n<p>A generic type is typically declared by inheriting from\nthis class parameterized with one or more type variables.\nFor example, a generic mapping type might be defined as::</p>\n\n<p>class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.</p>\n\n<p>This class can then be used as follows::</p>\n\n<p>def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default</p>\n", "bases": "sqlglot.schema.AbstractMappingSchema[sqlglot.executor.table.Table]"}, "sqlglot.executor.table.ensure_tables": {"fullname": "sqlglot.executor.table.ensure_tables", "modulename": "sqlglot.executor.table", "qualname": "ensure_tables", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">d</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">Tables</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions": {"fullname": "sqlglot.expressions", "modulename": "sqlglot.expressions", "kind": "module", "doc": "<h2 id=\"expressions\">Expressions</h2>\n\n<p>Every AST node in SQLGlot is represented by a subclass of <code>Expression</code>.</p>\n\n<p>This module contains the implementation of all supported <code>Expression</code> types. Additionally,\nit exposes a number of helper functions, which are mainly used to programmatically build\nSQL expressions, such as <code>sqlglot.expressions.select</code>.</p>\n\n<hr />\n"}, "sqlglot.expressions.Expression": {"fullname": "sqlglot.expressions.Expression", "modulename": "sqlglot.expressions", "qualname": "Expression", "kind": "class", "doc": "<p>The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary\ncontext, such as its child expressions, their names (arg keys), and whether a given child expression\nis optional or not.</p>\n\n<h6 id=\"attributes\">Attributes:</h6>\n\n<ul>\n<li><strong>key:</strong> a unique key for each class in the Expression hierarchy. This is useful for hashing\nand representing expressions as strings.</li>\n<li><strong>arg_types:</strong> determines what arguments (child nodes) are supported by an expression. It\nmaps arg keys to booleans that indicate whether the corresponding args are optional.</li>\n</ul>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"k\">class</span> <span class=\"nc\">Foo</span><span class=\"p\">(</span><span class=\"n\">Expression</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span> <span class=\"n\">arg_types</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">"this"</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"s2\">"expression"</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">}</span>\n</code></pre>\n </div>\n \n <p>The above definition informs us that Foo is an Expression that requires an argument called\n \"this\" and may also optionally receive an argument called \"expression\".</p>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>args:</strong> a mapping used for retrieving the arguments of an expression, given their arg keys.</li>\n<li><strong>parent:</strong> a reference to the parent expression (or None, in case of root expressions).</li>\n<li><strong>arg_key:</strong> the arg key an expression is associated with, i.e. the name its parent expression\nuses to refer to it.</li>\n<li><strong>comments:</strong> a list of comments that are associated with a given expression. This is used in\norder to preserve comments when transpiling SQL code.</li>\n<li><strong>_type:</strong> the <code>sqlglot.expressions.DataType</code> type of an expression. This is inferred by the\noptimizer, in order to enable some transformations that require type information.</li>\n</ul>\n"}, "sqlglot.expressions.Expression.__init__": {"fullname": "sqlglot.expressions.Expression.__init__", "modulename": "sqlglot.expressions", "qualname": "Expression.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">**</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span>)</span>"}, "sqlglot.expressions.Expression.this": {"fullname": "sqlglot.expressions.Expression.this", "modulename": "sqlglot.expressions", "qualname": "Expression.this", "kind": "variable", "doc": "<p>Retrieves the argument with key \"this\".</p>\n"}, "sqlglot.expressions.Expression.expression": {"fullname": "sqlglot.expressions.Expression.expression", "modulename": "sqlglot.expressions", "qualname": "Expression.expression", "kind": "variable", "doc": "<p>Retrieves the argument with key \"expression\".</p>\n"}, "sqlglot.expressions.Expression.expressions": {"fullname": "sqlglot.expressions.Expression.expressions", "modulename": "sqlglot.expressions", "qualname": "Expression.expressions", "kind": "variable", "doc": "<p>Retrieves the argument with key \"expressions\".</p>\n"}, "sqlglot.expressions.Expression.text": {"fullname": "sqlglot.expressions.Expression.text", "modulename": "sqlglot.expressions", "qualname": "Expression.text", "kind": "function", "doc": "<p>Returns a textual representation of the argument corresponding to \"key\". This can only be used\nfor args that are strings or leaf Expression instances, such as identifiers and literals.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">key</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.is_string": {"fullname": "sqlglot.expressions.Expression.is_string", "modulename": "sqlglot.expressions", "qualname": "Expression.is_string", "kind": "variable", "doc": "<p>Checks whether a Literal expression is a string.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_number": {"fullname": "sqlglot.expressions.Expression.is_number", "modulename": "sqlglot.expressions", "qualname": "Expression.is_number", "kind": "variable", "doc": "<p>Checks whether a Literal expression is a number.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_int": {"fullname": "sqlglot.expressions.Expression.is_int", "modulename": "sqlglot.expressions", "qualname": "Expression.is_int", "kind": "variable", "doc": "<p>Checks whether a Literal expression is an integer.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_star": {"fullname": "sqlglot.expressions.Expression.is_star", "modulename": "sqlglot.expressions", "qualname": "Expression.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.alias": {"fullname": "sqlglot.expressions.Expression.alias", "modulename": "sqlglot.expressions", "qualname": "Expression.alias", "kind": "variable", "doc": "<p>Returns the alias of the expression, or an empty string if it's not aliased.</p>\n", "annotation": ": str"}, "sqlglot.expressions.Expression.output_name": {"fullname": "sqlglot.expressions.Expression.output_name", "modulename": "sqlglot.expressions", "qualname": "Expression.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Expression.copy": {"fullname": "sqlglot.expressions.Expression.copy", "modulename": "sqlglot.expressions", "qualname": "Expression.copy", "kind": "function", "doc": "<p>Returns a deep copy of the expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.append": {"fullname": "sqlglot.expressions.Expression.append", "modulename": "sqlglot.expressions", "qualname": "Expression.append", "kind": "function", "doc": "<p>Appends value to arg_key if it's a list or sets it as a new list.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>arg_key (str):</strong> name of the list expression arg</li>\n<li><strong>value (Any):</strong> value to append to the list</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">arg_key</span>, </span><span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.set": {"fullname": "sqlglot.expressions.Expression.set", "modulename": "sqlglot.expressions", "qualname": "Expression.set", "kind": "function", "doc": "<p>Sets <code>arg_key</code> to <code>value</code>.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>arg_key (str):</strong> name of the expression arg.</li>\n<li><strong>value:</strong> value to set the arg to.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">arg_key</span>, </span><span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.depth": {"fullname": "sqlglot.expressions.Expression.depth", "modulename": "sqlglot.expressions", "qualname": "Expression.depth", "kind": "variable", "doc": "<p>Returns the depth of this tree.</p>\n"}, "sqlglot.expressions.Expression.find": {"fullname": "sqlglot.expressions.Expression.find", "modulename": "sqlglot.expressions", "qualname": "Expression.find", "kind": "function", "doc": "<p>Returns the first node in this tree which matches at least one of\nthe specified types.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The node which matches the criteria or None if no such node was found.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.find_all": {"fullname": "sqlglot.expressions.Expression.find_all", "modulename": "sqlglot.expressions", "qualname": "Expression.find_all", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree and only\nyields those that match at least one of the specified expression types.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.find_ancestor": {"fullname": "sqlglot.expressions.Expression.find_ancestor", "modulename": "sqlglot.expressions", "qualname": "Expression.find_ancestor", "kind": "function", "doc": "<p>Returns a nearest parent matching expression_types.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The parent node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.parent_select": {"fullname": "sqlglot.expressions.Expression.parent_select", "modulename": "sqlglot.expressions", "qualname": "Expression.parent_select", "kind": "variable", "doc": "<p>Returns the parent select statement.</p>\n"}, "sqlglot.expressions.Expression.root": {"fullname": "sqlglot.expressions.Expression.root", "modulename": "sqlglot.expressions", "qualname": "Expression.root", "kind": "function", "doc": "<p>Returns the root expression of this tree.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.walk": {"fullname": "sqlglot.expressions.Expression.walk", "modulename": "sqlglot.expressions", "qualname": "Expression.walk", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>bfs (bool):</strong> if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.</li>\n<li><strong>prune ((node, parent, arg_key) -> bool):</strong> callable that returns True if\nthe generator should stop traversing this branch of the tree.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>the generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">prune</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.dfs": {"fullname": "sqlglot.expressions.Expression.dfs", "modulename": "sqlglot.expressions", "qualname": "Expression.dfs", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree in\nthe DFS (Depth-first) order.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">parent</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">key</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">prune</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.bfs": {"fullname": "sqlglot.expressions.Expression.bfs", "modulename": "sqlglot.expressions", "qualname": "Expression.bfs", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree in\nthe BFS (Breadth-first) order.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">prune</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest": {"fullname": "sqlglot.expressions.Expression.unnest", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest", "kind": "function", "doc": "<p>Returns the first non parenthesis child or self.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.unalias": {"fullname": "sqlglot.expressions.Expression.unalias", "modulename": "sqlglot.expressions", "qualname": "Expression.unalias", "kind": "function", "doc": "<p>Returns the inner expression if this is an Alias.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest_operands": {"fullname": "sqlglot.expressions.Expression.unnest_operands", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest_operands", "kind": "function", "doc": "<p>Returns unnested operands as a tuple.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.flatten": {"fullname": "sqlglot.expressions.Expression.flatten", "modulename": "sqlglot.expressions", "qualname": "Expression.flatten", "kind": "function", "doc": "<p>Returns a generator which yields child nodes who's parents are the same class.</p>\n\n<p>A AND B AND C -> [A, B, C]</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">unnest</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.sql": {"fullname": "sqlglot.expressions.Expression.sql", "modulename": "sqlglot.expressions", "qualname": "Expression.sql", "kind": "function", "doc": "<p>Returns SQL string representation of this tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>dialect:</strong> the dialect of the output SQL string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>opts:</strong> other <code>sqlglot.generator.Generator</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The SQL string.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.transform": {"fullname": "sqlglot.expressions.Expression.transform", "modulename": "sqlglot.expressions", "qualname": "Expression.transform", "kind": "function", "doc": "<p>Recursively visits all tree nodes (excluding already transformed ones)\nand applies the given transformation function to each node.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>fun (function):</strong> a function which takes a node as an argument and returns a\nnew transformed node or the same node without modifications. If the function\nreturns None, then the corresponding node will be removed from the syntax tree.</li>\n<li><strong>copy (bool):</strong> if set to True a new tree instance is constructed, otherwise the tree is\nmodified in place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed tree.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">fun</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.replace": {"fullname": "sqlglot.expressions.Expression.replace", "modulename": "sqlglot.expressions", "qualname": "Expression.replace", "kind": "function", "doc": "<p>Swap out this expression with a new expression.</p>\n\n<p>For example::</p>\n\n<pre><code>>>> tree = Select().select(\"x\").from_(\"tbl\")\n>>> tree.find(Column).replace(Column(this=\"y\"))\n(COLUMN this: y)\n>>> tree.sql()\n'SELECT y FROM tbl'\n</code></pre>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (Expression|None):</strong> new node</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The new expression or expressions.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.pop": {"fullname": "sqlglot.expressions.Expression.pop", "modulename": "sqlglot.expressions", "qualname": "Expression.pop", "kind": "function", "doc": "<p>Remove this expression from its AST.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.assert_is": {"fullname": "sqlglot.expressions.Expression.assert_is", "modulename": "sqlglot.expressions", "qualname": "Expression.assert_is", "kind": "function", "doc": "<p>Assert that this <code>Expression</code> is an instance of <code>type_</code>.</p>\n\n<p>If it is NOT an instance of <code>type_</code>, this raises an assertion error.\nOtherwise, this returns this expression.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <p>This is useful for type security in chained expressions:</p>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT x from y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">assert_is</span><span class=\"p\">(</span><span class=\"n\">Select</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, z FROM y'</span>\n</code></pre>\n </div>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">type_</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.error_messages": {"fullname": "sqlglot.expressions.Expression.error_messages", "modulename": "sqlglot.expressions", "qualname": "Expression.error_messages", "kind": "function", "doc": "<p>Checks if this expression is valid (e.g. all mandatory args are set).</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>args:</strong> a sequence of values that were used to instantiate a Func expression. This is used\nto check that the provided arguments don't exceed the function argument limit.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A list of error messages for all possible errors that were found.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Sequence</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.dump": {"fullname": "sqlglot.expressions.Expression.dump", "modulename": "sqlglot.expressions", "qualname": "Expression.dump", "kind": "function", "doc": "<p>Dump this Expression to a JSON-serializable dict.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.load": {"fullname": "sqlglot.expressions.Expression.load", "modulename": "sqlglot.expressions", "qualname": "Expression.load", "kind": "function", "doc": "<p>Load a dict (as returned by <code>Expression.dump</code>) into an Expression instance.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">obj</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Condition": {"fullname": "sqlglot.expressions.Condition", "modulename": "sqlglot.expressions", "qualname": "Condition", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Condition.and_": {"fullname": "sqlglot.expressions.Condition.and_", "modulename": "sqlglot.expressions", "qualname": "Condition.and_", "kind": "function", "doc": "<p>AND this condition with one or multiple expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 AND y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>And: the new condition.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Condition.or_": {"fullname": "sqlglot.expressions.Condition.or_", "modulename": "sqlglot.expressions", "qualname": "Condition.or_", "kind": "function", "doc": "<p>OR this condition with one or multiple expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">or_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 OR y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Or: the new condition.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Condition.not_": {"fullname": "sqlglot.expressions.Condition.not_", "modulename": "sqlglot.expressions", "qualname": "Condition.not_", "kind": "function", "doc": "<p>Wrap this condition with NOT.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">not_</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'NOT x = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Not: the new condition.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Predicate": {"fullname": "sqlglot.expressions.Predicate", "modulename": "sqlglot.expressions", "qualname": "Predicate", "kind": "class", "doc": "<p>Relationships like x = y, x > 1, x >= y.</p>\n", "bases": "Condition"}, "sqlglot.expressions.DerivedTable": {"fullname": "sqlglot.expressions.DerivedTable", "modulename": "sqlglot.expressions", "qualname": "DerivedTable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Unionable": {"fullname": "sqlglot.expressions.Unionable", "modulename": "sqlglot.expressions", "qualname": "Unionable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Unionable.union": {"fullname": "sqlglot.expressions.Unionable.union", "modulename": "sqlglot.expressions", "qualname": "Unionable.union", "kind": "function", "doc": "<p>Builds a UNION expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo UNION SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Union: the Union expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Unionable.intersect": {"fullname": "sqlglot.expressions.Unionable.intersect", "modulename": "sqlglot.expressions", "qualname": "Unionable.intersect", "kind": "function", "doc": "<p>Builds an INTERSECT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">intersect</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Intersect: the Intersect expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Unionable.except_": {"fullname": "sqlglot.expressions.Unionable.except_", "modulename": "sqlglot.expressions", "qualname": "Unionable.except_", "kind": "function", "doc": "<p>Builds an EXCEPT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">except_</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Except: the Except expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.UDTF": {"fullname": "sqlglot.expressions.UDTF", "modulename": "sqlglot.expressions", "qualname": "UDTF", "kind": "class", "doc": "<p></p>\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Cache": {"fullname": "sqlglot.expressions.Cache", "modulename": "sqlglot.expressions", "qualname": "Cache", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Uncache": {"fullname": "sqlglot.expressions.Uncache", "modulename": "sqlglot.expressions", "qualname": "Uncache", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Create": {"fullname": "sqlglot.expressions.Create", "modulename": "sqlglot.expressions", "qualname": "Create", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Describe": {"fullname": "sqlglot.expressions.Describe", "modulename": "sqlglot.expressions", "qualname": "Describe", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Set": {"fullname": "sqlglot.expressions.Set", "modulename": "sqlglot.expressions", "qualname": "Set", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SetItem": {"fullname": "sqlglot.expressions.SetItem", "modulename": "sqlglot.expressions", "qualname": "SetItem", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Show": {"fullname": "sqlglot.expressions.Show", "modulename": "sqlglot.expressions", "qualname": "Show", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.UserDefinedFunction": {"fullname": "sqlglot.expressions.UserDefinedFunction", "modulename": "sqlglot.expressions", "qualname": "UserDefinedFunction", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.CharacterSet": {"fullname": "sqlglot.expressions.CharacterSet", "modulename": "sqlglot.expressions", "qualname": "CharacterSet", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.With": {"fullname": "sqlglot.expressions.With", "modulename": "sqlglot.expressions", "qualname": "With", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.WithinGroup": {"fullname": "sqlglot.expressions.WithinGroup", "modulename": "sqlglot.expressions", "qualname": "WithinGroup", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.CTE": {"fullname": "sqlglot.expressions.CTE", "modulename": "sqlglot.expressions", "qualname": "CTE", "kind": "class", "doc": "<p></p>\n", "bases": "DerivedTable"}, "sqlglot.expressions.TableAlias": {"fullname": "sqlglot.expressions.TableAlias", "modulename": "sqlglot.expressions", "qualname": "TableAlias", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.BitString": {"fullname": "sqlglot.expressions.BitString", "modulename": "sqlglot.expressions", "qualname": "BitString", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.HexString": {"fullname": "sqlglot.expressions.HexString", "modulename": "sqlglot.expressions", "qualname": "HexString", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.ByteString": {"fullname": "sqlglot.expressions.ByteString", "modulename": "sqlglot.expressions", "qualname": "ByteString", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Column": {"fullname": "sqlglot.expressions.Column", "modulename": "sqlglot.expressions", "qualname": "Column", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Column.output_name": {"fullname": "sqlglot.expressions.Column.output_name", "modulename": "sqlglot.expressions", "qualname": "Column.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n", "annotation": ": str"}, "sqlglot.expressions.ColumnDef": {"fullname": "sqlglot.expressions.ColumnDef", "modulename": "sqlglot.expressions", "qualname": "ColumnDef", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AlterColumn": {"fullname": "sqlglot.expressions.AlterColumn", "modulename": "sqlglot.expressions", "qualname": "AlterColumn", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.RenameTable": {"fullname": "sqlglot.expressions.RenameTable", "modulename": "sqlglot.expressions", "qualname": "RenameTable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SetTag": {"fullname": "sqlglot.expressions.SetTag", "modulename": "sqlglot.expressions", "qualname": "SetTag", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Comment": {"fullname": "sqlglot.expressions.Comment", "modulename": "sqlglot.expressions", "qualname": "Comment", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraint": {"fullname": "sqlglot.expressions.ColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraintKind": {"fullname": "sqlglot.expressions.ColumnConstraintKind", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraintKind", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"fullname": "sqlglot.expressions.AutoIncrementColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"fullname": "sqlglot.expressions.CaseSpecificColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CaseSpecificColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CharacterSetColumnConstraint": {"fullname": "sqlglot.expressions.CharacterSetColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CharacterSetColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CheckColumnConstraint": {"fullname": "sqlglot.expressions.CheckColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CheckColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CollateColumnConstraint": {"fullname": "sqlglot.expressions.CollateColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CollateColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CommentColumnConstraint": {"fullname": "sqlglot.expressions.CommentColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CommentColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CompressColumnConstraint": {"fullname": "sqlglot.expressions.CompressColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CompressColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DateFormatColumnConstraint": {"fullname": "sqlglot.expressions.DateFormatColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DateFormatColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DefaultColumnConstraint": {"fullname": "sqlglot.expressions.DefaultColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DefaultColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.EncodeColumnConstraint": {"fullname": "sqlglot.expressions.EncodeColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "EncodeColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"fullname": "sqlglot.expressions.GeneratedAsIdentityColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "GeneratedAsIdentityColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.InlineLengthColumnConstraint": {"fullname": "sqlglot.expressions.InlineLengthColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "InlineLengthColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.NotNullColumnConstraint": {"fullname": "sqlglot.expressions.NotNullColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "NotNullColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"fullname": "sqlglot.expressions.PrimaryKeyColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PrimaryKeyColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.TitleColumnConstraint": {"fullname": "sqlglot.expressions.TitleColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "TitleColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UniqueColumnConstraint": {"fullname": "sqlglot.expressions.UniqueColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UniqueColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UppercaseColumnConstraint": {"fullname": "sqlglot.expressions.UppercaseColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UppercaseColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PathColumnConstraint": {"fullname": "sqlglot.expressions.PathColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PathColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.Constraint": {"fullname": "sqlglot.expressions.Constraint", "modulename": "sqlglot.expressions", "qualname": "Constraint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Delete": {"fullname": "sqlglot.expressions.Delete", "modulename": "sqlglot.expressions", "qualname": "Delete", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Drop": {"fullname": "sqlglot.expressions.Drop", "modulename": "sqlglot.expressions", "qualname": "Drop", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Filter": {"fullname": "sqlglot.expressions.Filter", "modulename": "sqlglot.expressions", "qualname": "Filter", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Check": {"fullname": "sqlglot.expressions.Check", "modulename": "sqlglot.expressions", "qualname": "Check", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Directory": {"fullname": "sqlglot.expressions.Directory", "modulename": "sqlglot.expressions", "qualname": "Directory", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.ForeignKey": {"fullname": "sqlglot.expressions.ForeignKey", "modulename": "sqlglot.expressions", "qualname": "ForeignKey", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.PrimaryKey": {"fullname": "sqlglot.expressions.PrimaryKey", "modulename": "sqlglot.expressions", "qualname": "PrimaryKey", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Unique": {"fullname": "sqlglot.expressions.Unique", "modulename": "sqlglot.expressions", "qualname": "Unique", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Into": {"fullname": "sqlglot.expressions.Into", "modulename": "sqlglot.expressions", "qualname": "Into", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.From": {"fullname": "sqlglot.expressions.From", "modulename": "sqlglot.expressions", "qualname": "From", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Having": {"fullname": "sqlglot.expressions.Having", "modulename": "sqlglot.expressions", "qualname": "Having", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Hint": {"fullname": "sqlglot.expressions.Hint", "modulename": "sqlglot.expressions", "qualname": "Hint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.JoinHint": {"fullname": "sqlglot.expressions.JoinHint", "modulename": "sqlglot.expressions", "qualname": "JoinHint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Identifier": {"fullname": "sqlglot.expressions.Identifier", "modulename": "sqlglot.expressions", "qualname": "Identifier", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Identifier.output_name": {"fullname": "sqlglot.expressions.Identifier.output_name", "modulename": "sqlglot.expressions", "qualname": "Identifier.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Index": {"fullname": "sqlglot.expressions.Index", "modulename": "sqlglot.expressions", "qualname": "Index", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Insert": {"fullname": "sqlglot.expressions.Insert", "modulename": "sqlglot.expressions", "qualname": "Insert", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Returning": {"fullname": "sqlglot.expressions.Returning", "modulename": "sqlglot.expressions", "qualname": "Returning", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Introducer": {"fullname": "sqlglot.expressions.Introducer", "modulename": "sqlglot.expressions", "qualname": "Introducer", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.National": {"fullname": "sqlglot.expressions.National", "modulename": "sqlglot.expressions", "qualname": "National", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.LoadData": {"fullname": "sqlglot.expressions.LoadData", "modulename": "sqlglot.expressions", "qualname": "LoadData", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Partition": {"fullname": "sqlglot.expressions.Partition", "modulename": "sqlglot.expressions", "qualname": "Partition", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Fetch": {"fullname": "sqlglot.expressions.Fetch", "modulename": "sqlglot.expressions", "qualname": "Fetch", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Group": {"fullname": "sqlglot.expressions.Group", "modulename": "sqlglot.expressions", "qualname": "Group", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Lambda": {"fullname": "sqlglot.expressions.Lambda", "modulename": "sqlglot.expressions", "qualname": "Lambda", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Limit": {"fullname": "sqlglot.expressions.Limit", "modulename": "sqlglot.expressions", "qualname": "Limit", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Literal": {"fullname": "sqlglot.expressions.Literal", "modulename": "sqlglot.expressions", "qualname": "Literal", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Literal.number": {"fullname": "sqlglot.expressions.Literal.number", "modulename": "sqlglot.expressions", "qualname": "Literal.number", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">number</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Literal.string": {"fullname": "sqlglot.expressions.Literal.string", "modulename": "sqlglot.expressions", "qualname": "Literal.string", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">string</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Literal.output_name": {"fullname": "sqlglot.expressions.Literal.output_name", "modulename": "sqlglot.expressions", "qualname": "Literal.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Join": {"fullname": "sqlglot.expressions.Join", "modulename": "sqlglot.expressions", "qualname": "Join", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Join.on": {"fullname": "sqlglot.expressions.Join.on", "modulename": "sqlglot.expressions", "qualname": "Join.on", "kind": "function", "doc": "<p>Append to or set the ON expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"JOIN x"</span><span class=\"p\">,</span> <span class=\"n\">into</span><span class=\"o\">=</span><span class=\"n\">Join</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">on</span><span class=\"p\">(</span><span class=\"s2\">"y = 1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'JOIN x ON y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Join: the modified join expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Join.using": {"fullname": "sqlglot.expressions.Join.using", "modulename": "sqlglot.expressions", "qualname": "Join.using", "kind": "function", "doc": "<p>Append to or set the USING expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"JOIN x"</span><span class=\"p\">,</span> <span class=\"n\">into</span><span class=\"o\">=</span><span class=\"n\">Join</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">using</span><span class=\"p\">(</span><span class=\"s2\">"foo"</span><span class=\"p\">,</span> <span class=\"s2\">"bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'JOIN x USING (foo, bla)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, concatenate the new expressions to the existing \"using\" list.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Join: the modified join expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Lateral": {"fullname": "sqlglot.expressions.Lateral", "modulename": "sqlglot.expressions", "qualname": "Lateral", "kind": "class", "doc": "<p></p>\n", "bases": "UDTF"}, "sqlglot.expressions.MatchRecognize": {"fullname": "sqlglot.expressions.MatchRecognize", "modulename": "sqlglot.expressions", "qualname": "MatchRecognize", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Final": {"fullname": "sqlglot.expressions.Final", "modulename": "sqlglot.expressions", "qualname": "Final", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Offset": {"fullname": "sqlglot.expressions.Offset", "modulename": "sqlglot.expressions", "qualname": "Offset", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Order": {"fullname": "sqlglot.expressions.Order", "modulename": "sqlglot.expressions", "qualname": "Order", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Cluster": {"fullname": "sqlglot.expressions.Cluster", "modulename": "sqlglot.expressions", "qualname": "Cluster", "kind": "class", "doc": "<p></p>\n", "bases": "Order"}, "sqlglot.expressions.Distribute": {"fullname": "sqlglot.expressions.Distribute", "modulename": "sqlglot.expressions", "qualname": "Distribute", "kind": "class", "doc": "<p></p>\n", "bases": "Order"}, "sqlglot.expressions.Sort": {"fullname": "sqlglot.expressions.Sort", "modulename": "sqlglot.expressions", "qualname": "Sort", "kind": "class", "doc": "<p></p>\n", "bases": "Order"}, "sqlglot.expressions.Ordered": {"fullname": "sqlglot.expressions.Ordered", "modulename": "sqlglot.expressions", "qualname": "Ordered", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Property": {"fullname": "sqlglot.expressions.Property", "modulename": "sqlglot.expressions", "qualname": "Property", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AfterJournalProperty": {"fullname": "sqlglot.expressions.AfterJournalProperty", "modulename": "sqlglot.expressions", "qualname": "AfterJournalProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.AlgorithmProperty": {"fullname": "sqlglot.expressions.AlgorithmProperty", "modulename": "sqlglot.expressions", "qualname": "AlgorithmProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.AutoIncrementProperty": {"fullname": "sqlglot.expressions.AutoIncrementProperty", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.BlockCompressionProperty": {"fullname": "sqlglot.expressions.BlockCompressionProperty", "modulename": "sqlglot.expressions", "qualname": "BlockCompressionProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.CharacterSetProperty": {"fullname": "sqlglot.expressions.CharacterSetProperty", "modulename": "sqlglot.expressions", "qualname": "CharacterSetProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ChecksumProperty": {"fullname": "sqlglot.expressions.ChecksumProperty", "modulename": "sqlglot.expressions", "qualname": "ChecksumProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.CollateProperty": {"fullname": "sqlglot.expressions.CollateProperty", "modulename": "sqlglot.expressions", "qualname": "CollateProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DataBlocksizeProperty": {"fullname": "sqlglot.expressions.DataBlocksizeProperty", "modulename": "sqlglot.expressions", "qualname": "DataBlocksizeProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DefinerProperty": {"fullname": "sqlglot.expressions.DefinerProperty", "modulename": "sqlglot.expressions", "qualname": "DefinerProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DistKeyProperty": {"fullname": "sqlglot.expressions.DistKeyProperty", "modulename": "sqlglot.expressions", "qualname": "DistKeyProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DistStyleProperty": {"fullname": "sqlglot.expressions.DistStyleProperty", "modulename": "sqlglot.expressions", "qualname": "DistStyleProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.EngineProperty": {"fullname": "sqlglot.expressions.EngineProperty", "modulename": "sqlglot.expressions", "qualname": "EngineProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ExecuteAsProperty": {"fullname": "sqlglot.expressions.ExecuteAsProperty", "modulename": "sqlglot.expressions", "qualname": "ExecuteAsProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ExternalProperty": {"fullname": "sqlglot.expressions.ExternalProperty", "modulename": "sqlglot.expressions", "qualname": "ExternalProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.FallbackProperty": {"fullname": "sqlglot.expressions.FallbackProperty", "modulename": "sqlglot.expressions", "qualname": "FallbackProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.FileFormatProperty": {"fullname": "sqlglot.expressions.FileFormatProperty", "modulename": "sqlglot.expressions", "qualname": "FileFormatProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.FreespaceProperty": {"fullname": "sqlglot.expressions.FreespaceProperty", "modulename": "sqlglot.expressions", "qualname": "FreespaceProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.IsolatedLoadingProperty": {"fullname": "sqlglot.expressions.IsolatedLoadingProperty", "modulename": "sqlglot.expressions", "qualname": "IsolatedLoadingProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.JournalProperty": {"fullname": "sqlglot.expressions.JournalProperty", "modulename": "sqlglot.expressions", "qualname": "JournalProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LanguageProperty": {"fullname": "sqlglot.expressions.LanguageProperty", "modulename": "sqlglot.expressions", "qualname": "LanguageProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LikeProperty": {"fullname": "sqlglot.expressions.LikeProperty", "modulename": "sqlglot.expressions", "qualname": "LikeProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LocationProperty": {"fullname": "sqlglot.expressions.LocationProperty", "modulename": "sqlglot.expressions", "qualname": "LocationProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LockingProperty": {"fullname": "sqlglot.expressions.LockingProperty", "modulename": "sqlglot.expressions", "qualname": "LockingProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LogProperty": {"fullname": "sqlglot.expressions.LogProperty", "modulename": "sqlglot.expressions", "qualname": "LogProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.MaterializedProperty": {"fullname": "sqlglot.expressions.MaterializedProperty", "modulename": "sqlglot.expressions", "qualname": "MaterializedProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.MergeBlockRatioProperty": {"fullname": "sqlglot.expressions.MergeBlockRatioProperty", "modulename": "sqlglot.expressions", "qualname": "MergeBlockRatioProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.NoPrimaryIndexProperty": {"fullname": "sqlglot.expressions.NoPrimaryIndexProperty", "modulename": "sqlglot.expressions", "qualname": "NoPrimaryIndexProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.OnCommitProperty": {"fullname": "sqlglot.expressions.OnCommitProperty", "modulename": "sqlglot.expressions", "qualname": "OnCommitProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.PartitionedByProperty": {"fullname": "sqlglot.expressions.PartitionedByProperty", "modulename": "sqlglot.expressions", "qualname": "PartitionedByProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ReturnsProperty": {"fullname": "sqlglot.expressions.ReturnsProperty", "modulename": "sqlglot.expressions", "qualname": "ReturnsProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.RowFormatDelimitedProperty": {"fullname": "sqlglot.expressions.RowFormatDelimitedProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatDelimitedProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.RowFormatSerdeProperty": {"fullname": "sqlglot.expressions.RowFormatSerdeProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatSerdeProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SchemaCommentProperty": {"fullname": "sqlglot.expressions.SchemaCommentProperty", "modulename": "sqlglot.expressions", "qualname": "SchemaCommentProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SerdeProperties": {"fullname": "sqlglot.expressions.SerdeProperties", "modulename": "sqlglot.expressions", "qualname": "SerdeProperties", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SetProperty": {"fullname": "sqlglot.expressions.SetProperty", "modulename": "sqlglot.expressions", "qualname": "SetProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SortKeyProperty": {"fullname": "sqlglot.expressions.SortKeyProperty", "modulename": "sqlglot.expressions", "qualname": "SortKeyProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SqlSecurityProperty": {"fullname": "sqlglot.expressions.SqlSecurityProperty", "modulename": "sqlglot.expressions", "qualname": "SqlSecurityProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.TableFormatProperty": {"fullname": "sqlglot.expressions.TableFormatProperty", "modulename": "sqlglot.expressions", "qualname": "TableFormatProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.TemporaryProperty": {"fullname": "sqlglot.expressions.TemporaryProperty", "modulename": "sqlglot.expressions", "qualname": "TemporaryProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.TransientProperty": {"fullname": "sqlglot.expressions.TransientProperty", "modulename": "sqlglot.expressions", "qualname": "TransientProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.VolatilityProperty": {"fullname": "sqlglot.expressions.VolatilityProperty", "modulename": "sqlglot.expressions", "qualname": "VolatilityProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.WithDataProperty": {"fullname": "sqlglot.expressions.WithDataProperty", "modulename": "sqlglot.expressions", "qualname": "WithDataProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.WithJournalTableProperty": {"fullname": "sqlglot.expressions.WithJournalTableProperty", "modulename": "sqlglot.expressions", "qualname": "WithJournalTableProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.Properties": {"fullname": "sqlglot.expressions.Properties", "modulename": "sqlglot.expressions", "qualname": "Properties", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Properties.Location": {"fullname": "sqlglot.expressions.Properties.Location", "modulename": "sqlglot.expressions", "qualname": "Properties.Location", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"fullname": "sqlglot.expressions.Properties.Location.POST_CREATE", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_CREATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_CREATE: 'POST_CREATE'>"}, "sqlglot.expressions.Properties.Location.POST_NAME": {"fullname": "sqlglot.expressions.Properties.Location.POST_NAME", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_NAME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_NAME: 'POST_NAME'>"}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"fullname": "sqlglot.expressions.Properties.Location.POST_SCHEMA", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_SCHEMA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_SCHEMA: 'POST_SCHEMA'>"}, "sqlglot.expressions.Properties.Location.POST_WITH": {"fullname": "sqlglot.expressions.Properties.Location.POST_WITH", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_WITH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_WITH: 'POST_WITH'>"}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"fullname": "sqlglot.expressions.Properties.Location.POST_ALIAS", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_ALIAS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_ALIAS: 'POST_ALIAS'>"}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"fullname": "sqlglot.expressions.Properties.Location.POST_EXPRESSION", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_EXPRESSION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_EXPRESSION: 'POST_EXPRESSION'>"}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"fullname": "sqlglot.expressions.Properties.Location.POST_INDEX", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_INDEX", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_INDEX: 'POST_INDEX'>"}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"fullname": "sqlglot.expressions.Properties.Location.UNSUPPORTED", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.UNSUPPORTED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.UNSUPPORTED: 'UNSUPPORTED'>"}, "sqlglot.expressions.Properties.from_dict": {"fullname": "sqlglot.expressions.Properties.from_dict", "modulename": "sqlglot.expressions", "qualname": "Properties.from_dict", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">properties_dict</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Qualify": {"fullname": "sqlglot.expressions.Qualify", "modulename": "sqlglot.expressions", "qualname": "Qualify", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Return": {"fullname": "sqlglot.expressions.Return", "modulename": "sqlglot.expressions", "qualname": "Return", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Reference": {"fullname": "sqlglot.expressions.Reference", "modulename": "sqlglot.expressions", "qualname": "Reference", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Tuple": {"fullname": "sqlglot.expressions.Tuple", "modulename": "sqlglot.expressions", "qualname": "Tuple", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Subqueryable": {"fullname": "sqlglot.expressions.Subqueryable", "modulename": "sqlglot.expressions", "qualname": "Subqueryable", "kind": "class", "doc": "<p></p>\n", "bases": "Unionable"}, "sqlglot.expressions.Subqueryable.subquery": {"fullname": "sqlglot.expressions.Subqueryable.subquery", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.subquery", "kind": "function", "doc": "<p>Convert this expression to an aliased expression that can be used as a Subquery.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">subquery</span> <span class=\"o\">=</span> <span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">subquery</span><span class=\"p\">()</span>\n<span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"n\">subquery</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM (SELECT x FROM tbl)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>alias (str | Identifier):</strong> an optional alias for the subquery</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Alias: the subquery</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subquery</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.limit": {"fullname": "sqlglot.expressions.Subqueryable.limit", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.limit", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.with_": {"fullname": "sqlglot.expressions.Subqueryable.with_", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.with_", "kind": "function", "doc": "<p>Append to or set the common table expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">with_</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">,</span> <span class=\"n\">as_</span><span class=\"o\">=</span><span class=\"s2\">"SELECT * FROM tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>alias (str | Expression):</strong> the SQL code string to parse as the table name.\nIf an <code>Expression</code> instance is passed, this is used as-is.</li>\n<li><strong>as_ (str | Expression):</strong> the SQL code string to parse as the table expression.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>recursive (bool):</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span>,</span><span class=\"param\">\t<span class=\"n\">as_</span>,</span><span class=\"param\">\t<span class=\"n\">recursive</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Table": {"fullname": "sqlglot.expressions.Table", "modulename": "sqlglot.expressions", "qualname": "Table", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SystemTime": {"fullname": "sqlglot.expressions.SystemTime", "modulename": "sqlglot.expressions", "qualname": "SystemTime", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Union": {"fullname": "sqlglot.expressions.Union", "modulename": "sqlglot.expressions", "qualname": "Union", "kind": "class", "doc": "<p></p>\n", "bases": "Subqueryable"}, "sqlglot.expressions.Union.limit": {"fullname": "sqlglot.expressions.Union.limit", "modulename": "sqlglot.expressions", "qualname": "Union.limit", "kind": "function", "doc": "<p>Set the LIMIT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">limit</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.\nThis can also be an integer.\nIf a <code>Limit</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Limit</code>.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: The limited subqueryable.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Union.select": {"fullname": "sqlglot.expressions.Union.select", "modulename": "sqlglot.expressions", "qualname": "Union.select", "kind": "function", "doc": "<p>Append to or set the SELECT of the union recursively.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select a from x union select a from y union select a from z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"b"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Union: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Union</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Union.is_star": {"fullname": "sqlglot.expressions.Union.is_star", "modulename": "sqlglot.expressions", "qualname": "Union.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Except": {"fullname": "sqlglot.expressions.Except", "modulename": "sqlglot.expressions", "qualname": "Except", "kind": "class", "doc": "<p></p>\n", "bases": "Union"}, "sqlglot.expressions.Intersect": {"fullname": "sqlglot.expressions.Intersect", "modulename": "sqlglot.expressions", "qualname": "Intersect", "kind": "class", "doc": "<p></p>\n", "bases": "Union"}, "sqlglot.expressions.Unnest": {"fullname": "sqlglot.expressions.Unnest", "modulename": "sqlglot.expressions", "qualname": "Unnest", "kind": "class", "doc": "<p></p>\n", "bases": "UDTF"}, "sqlglot.expressions.Update": {"fullname": "sqlglot.expressions.Update", "modulename": "sqlglot.expressions", "qualname": "Update", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Values": {"fullname": "sqlglot.expressions.Values", "modulename": "sqlglot.expressions", "qualname": "Values", "kind": "class", "doc": "<p></p>\n", "bases": "UDTF"}, "sqlglot.expressions.Var": {"fullname": "sqlglot.expressions.Var", "modulename": "sqlglot.expressions", "qualname": "Var", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Schema": {"fullname": "sqlglot.expressions.Schema", "modulename": "sqlglot.expressions", "qualname": "Schema", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Lock": {"fullname": "sqlglot.expressions.Lock", "modulename": "sqlglot.expressions", "qualname": "Lock", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Select": {"fullname": "sqlglot.expressions.Select", "modulename": "sqlglot.expressions", "qualname": "Select", "kind": "class", "doc": "<p></p>\n", "bases": "Subqueryable"}, "sqlglot.expressions.Select.from_": {"fullname": "sqlglot.expressions.Select.from_", "modulename": "sqlglot.expressions", "qualname": "Select.from_", "kind": "function", "doc": "<p>Set the FROM expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>From</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>From</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>From</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.group_by": {"fullname": "sqlglot.expressions.Select.group_by", "modulename": "sqlglot.expressions", "qualname": "Select.group_by", "kind": "function", "doc": "<p>Set the GROUP BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"COUNT(1)"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">group_by</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Group</code>.\nIf nothing is passed in then a group by is not applied to the expression</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Group</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.order_by": {"fullname": "sqlglot.expressions.Select.order_by", "modulename": "sqlglot.expressions", "qualname": "Select.order_by", "kind": "function", "doc": "<p>Set the ORDER BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">order_by</span><span class=\"p\">(</span><span class=\"s2\">"x DESC"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl ORDER BY x DESC'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Order</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Order</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.sort_by": {"fullname": "sqlglot.expressions.Select.sort_by", "modulename": "sqlglot.expressions", "qualname": "Select.sort_by", "kind": "function", "doc": "<p>Set the SORT BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sort_by</span><span class=\"p\">(</span><span class=\"s2\">"x DESC"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl SORT BY x DESC'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>SORT</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Order</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.cluster_by": {"fullname": "sqlglot.expressions.Select.cluster_by", "modulename": "sqlglot.expressions", "qualname": "Select.cluster_by", "kind": "function", "doc": "<p>Set the CLUSTER BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">cluster_by</span><span class=\"p\">(</span><span class=\"s2\">"x DESC"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl CLUSTER BY x DESC'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Cluster</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Order</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.limit": {"fullname": "sqlglot.expressions.Select.limit", "modulename": "sqlglot.expressions", "qualname": "Select.limit", "kind": "function", "doc": "<p>Set the LIMIT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">limit</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl LIMIT 10'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.\nThis can also be an integer.\nIf a <code>Limit</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Limit</code>.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.offset": {"fullname": "sqlglot.expressions.Select.offset", "modulename": "sqlglot.expressions", "qualname": "Select.offset", "kind": "function", "doc": "<p>Set the OFFSET expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">offset</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl OFFSET 10'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.\nThis can also be an integer.\nIf a <code>Offset</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Offset</code>.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.select": {"fullname": "sqlglot.expressions.Select.select", "modulename": "sqlglot.expressions", "qualname": "Select.select", "kind": "function", "doc": "<p>Append to or set the SELECT expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.lateral": {"fullname": "sqlglot.expressions.Select.lateral", "modulename": "sqlglot.expressions", "qualname": "Select.lateral", "kind": "function", "doc": "<p>Append to or set the LATERAL expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">lateral</span><span class=\"p\">(</span><span class=\"s2\">"OUTER explode(y) tbl2 AS z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.join": {"fullname": "sqlglot.expressions.Select.join", "modulename": "sqlglot.expressions", "qualname": "Select.join", "kind": "function", "doc": "<p>Append to or set the JOIN expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">,</span> <span class=\"n\">on</span><span class=\"o\">=</span><span class=\"s2\">"tbl1.y = tbl2.y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"s2\">"b"</span><span class=\"p\">,</span> <span class=\"n\">using</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"y"</span><span class=\"p\">,</span> <span class=\"s2\">"z"</span><span class=\"p\">])</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT 1 FROM a JOIN b USING (x, y, z)'</span>\n</code></pre>\n </div>\n \n <p>Use <code>join_type</code> to change the type of join:</p>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">,</span> <span class=\"n\">on</span><span class=\"o\">=</span><span class=\"s2\">"tbl1.y = tbl2.y"</span><span class=\"p\">,</span> <span class=\"n\">join_type</span><span class=\"o\">=</span><span class=\"s2\">"left outer"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>on (str | Expression):</strong> optionally specify the join \"on\" criteria as a SQL string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>using (str | Expression):</strong> optionally specify the join \"using\" criteria as a SQL string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>join_type (str):</strong> If set, alter the parsed join type</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">on</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">using</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">join_type</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">join_alias</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.where": {"fullname": "sqlglot.expressions.Select.where", "modulename": "sqlglot.expressions", "qualname": "Select.where", "kind": "function", "doc": "<p>Append to or set the WHERE expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a' OR x < 'b'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.having": {"fullname": "sqlglot.expressions.Select.having", "modulename": "sqlglot.expressions", "qualname": "Select.having", "kind": "function", "doc": "<p>Append to or set the HAVING expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"COUNT(y)"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">group_by</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">having</span><span class=\"p\">(</span><span class=\"s2\">"COUNT(y) > 3"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.window": {"fullname": "sqlglot.expressions.Select.window", "modulename": "sqlglot.expressions", "qualname": "Select.window", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.qualify": {"fullname": "sqlglot.expressions.Select.qualify", "modulename": "sqlglot.expressions", "qualname": "Select.qualify", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.distinct": {"fullname": "sqlglot.expressions.Select.distinct", "modulename": "sqlglot.expressions", "qualname": "Select.distinct", "kind": "function", "doc": "<p>Set the OFFSET expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">distinct</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT DISTINCT x FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>distinct (bool):</strong> whether the Select should be distinct</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.ctas": {"fullname": "sqlglot.expressions.Select.ctas", "modulename": "sqlglot.expressions", "qualname": "Select.ctas", "kind": "function", "doc": "<p>Convert this expression to a CREATE TABLE AS statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">ctas</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'CREATE TABLE x AS SELECT * FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table (str | Expression):</strong> the SQL code string to parse as the table name.\nIf another <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>properties (dict):</strong> an optional mapping of table properties</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input table.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input table.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Create: the CREATE TABLE AS expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Create</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.lock": {"fullname": "sqlglot.expressions.Select.lock", "modulename": "sqlglot.expressions", "qualname": "Select.lock", "kind": "function", "doc": "<p>Set the locking read mode for this expression.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">lock</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"s2\">"mysql"</span><span class=\"p\">)</span>\n<span class=\"go\">"SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">lock</span><span class=\"p\">(</span><span class=\"n\">update</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"s2\">"mysql"</span><span class=\"p\">)</span>\n<span class=\"go\">"SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>update:</strong> if <code>True</code>, the locking type will be <code>FOR UPDATE</code>, else it will be <code>FOR SHARE</code>.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">update</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.is_star": {"fullname": "sqlglot.expressions.Select.is_star", "modulename": "sqlglot.expressions", "qualname": "Select.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery": {"fullname": "sqlglot.expressions.Subquery", "modulename": "sqlglot.expressions", "qualname": "Subquery", "kind": "class", "doc": "<p></p>\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Subquery.unnest": {"fullname": "sqlglot.expressions.Subquery.unnest", "modulename": "sqlglot.expressions", "qualname": "Subquery.unnest", "kind": "function", "doc": "<p>Returns the first non subquery.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Subquery.is_star": {"fullname": "sqlglot.expressions.Subquery.is_star", "modulename": "sqlglot.expressions", "qualname": "Subquery.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery.output_name": {"fullname": "sqlglot.expressions.Subquery.output_name", "modulename": "sqlglot.expressions", "qualname": "Subquery.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.TableSample": {"fullname": "sqlglot.expressions.TableSample", "modulename": "sqlglot.expressions", "qualname": "TableSample", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Tag": {"fullname": "sqlglot.expressions.Tag", "modulename": "sqlglot.expressions", "qualname": "Tag", "kind": "class", "doc": "<p>Tags are used for generating arbitrary sql like SELECT <span>x</span>.</p>\n", "bases": "Expression"}, "sqlglot.expressions.Pivot": {"fullname": "sqlglot.expressions.Pivot", "modulename": "sqlglot.expressions", "qualname": "Pivot", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Window": {"fullname": "sqlglot.expressions.Window", "modulename": "sqlglot.expressions", "qualname": "Window", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.WindowSpec": {"fullname": "sqlglot.expressions.WindowSpec", "modulename": "sqlglot.expressions", "qualname": "WindowSpec", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Where": {"fullname": "sqlglot.expressions.Where", "modulename": "sqlglot.expressions", "qualname": "Where", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Star": {"fullname": "sqlglot.expressions.Star", "modulename": "sqlglot.expressions", "qualname": "Star", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Star.output_name": {"fullname": "sqlglot.expressions.Star.output_name", "modulename": "sqlglot.expressions", "qualname": "Star.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Parameter": {"fullname": "sqlglot.expressions.Parameter", "modulename": "sqlglot.expressions", "qualname": "Parameter", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SessionParameter": {"fullname": "sqlglot.expressions.SessionParameter", "modulename": "sqlglot.expressions", "qualname": "SessionParameter", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Placeholder": {"fullname": "sqlglot.expressions.Placeholder", "modulename": "sqlglot.expressions", "qualname": "Placeholder", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Null": {"fullname": "sqlglot.expressions.Null", "modulename": "sqlglot.expressions", "qualname": "Null", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Boolean": {"fullname": "sqlglot.expressions.Boolean", "modulename": "sqlglot.expressions", "qualname": "Boolean", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.DataType": {"fullname": "sqlglot.expressions.DataType", "modulename": "sqlglot.expressions", "qualname": "DataType", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.DataType.Type": {"fullname": "sqlglot.expressions.DataType.Type", "modulename": "sqlglot.expressions", "qualname": "DataType.Type", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.expressions.DataType.Type.CHAR": {"fullname": "sqlglot.expressions.DataType.Type.CHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.CHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.CHAR: 'CHAR'>"}, "sqlglot.expressions.DataType.Type.NCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NCHAR: 'NCHAR'>"}, "sqlglot.expressions.DataType.Type.VARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.VARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.VARCHAR: 'VARCHAR'>"}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NVARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NVARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.expressions.DataType.Type.TEXT": {"fullname": "sqlglot.expressions.DataType.Type.TEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TEXT: 'TEXT'>"}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"fullname": "sqlglot.expressions.DataType.Type.LONGTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"fullname": "sqlglot.expressions.DataType.Type.LONGBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.expressions.DataType.Type.BINARY": {"fullname": "sqlglot.expressions.DataType.Type.BINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BINARY: 'BINARY'>"}, "sqlglot.expressions.DataType.Type.VARBINARY": {"fullname": "sqlglot.expressions.DataType.Type.VARBINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARBINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.VARBINARY: 'VARBINARY'>"}, "sqlglot.expressions.DataType.Type.INT": {"fullname": "sqlglot.expressions.DataType.Type.INT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.INT: 'INT'>"}, "sqlglot.expressions.DataType.Type.UINT": {"fullname": "sqlglot.expressions.DataType.Type.UINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UINT: 'UINT'>"}, "sqlglot.expressions.DataType.Type.TINYINT": {"fullname": "sqlglot.expressions.DataType.Type.TINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TINYINT: 'TINYINT'>"}, "sqlglot.expressions.DataType.Type.UTINYINT": {"fullname": "sqlglot.expressions.DataType.Type.UTINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UTINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UTINYINT: 'UTINYINT'>"}, "sqlglot.expressions.DataType.Type.SMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.SMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SMALLINT: 'SMALLINT'>"}, "sqlglot.expressions.DataType.Type.USMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.USMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.USMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.USMALLINT: 'USMALLINT'>"}, "sqlglot.expressions.DataType.Type.BIGINT": {"fullname": "sqlglot.expressions.DataType.Type.BIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BIGINT: 'BIGINT'>"}, "sqlglot.expressions.DataType.Type.UBIGINT": {"fullname": "sqlglot.expressions.DataType.Type.UBIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UBIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UBIGINT: 'UBIGINT'>"}, "sqlglot.expressions.DataType.Type.FLOAT": {"fullname": "sqlglot.expressions.DataType.Type.FLOAT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.FLOAT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.FLOAT: 'FLOAT'>"}, "sqlglot.expressions.DataType.Type.DOUBLE": {"fullname": "sqlglot.expressions.DataType.Type.DOUBLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DOUBLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DOUBLE: 'DOUBLE'>"}, "sqlglot.expressions.DataType.Type.DECIMAL": {"fullname": "sqlglot.expressions.DataType.Type.DECIMAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DECIMAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DECIMAL: 'DECIMAL'>"}, "sqlglot.expressions.DataType.Type.BIT": {"fullname": "sqlglot.expressions.DataType.Type.BIT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BIT: 'BIT'>"}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"fullname": "sqlglot.expressions.DataType.Type.BOOLEAN", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BOOLEAN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.expressions.DataType.Type.JSON": {"fullname": "sqlglot.expressions.DataType.Type.JSON", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.JSON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.JSON: 'JSON'>"}, "sqlglot.expressions.DataType.Type.JSONB": {"fullname": "sqlglot.expressions.DataType.Type.JSONB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.JSONB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.JSONB: 'JSONB'>"}, "sqlglot.expressions.DataType.Type.INTERVAL": {"fullname": "sqlglot.expressions.DataType.Type.INTERVAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INTERVAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.INTERVAL: 'INTERVAL'>"}, "sqlglot.expressions.DataType.Type.TIME": {"fullname": "sqlglot.expressions.DataType.Type.TIME", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIME: 'TIME'>"}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"fullname": "sqlglot.expressions.DataType.Type.TIMESTAMP", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIMESTAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIMESTAMP: 'TIMESTAMP'>"}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"fullname": "sqlglot.expressions.DataType.Type.TIMESTAMPTZ", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIMESTAMPTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIMESTAMPTZ: 'TIMESTAMPTZ'>"}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"fullname": "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIMESTAMPLTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.expressions.DataType.Type.DATE": {"fullname": "sqlglot.expressions.DataType.Type.DATE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DATE: 'DATE'>"}, "sqlglot.expressions.DataType.Type.DATETIME": {"fullname": "sqlglot.expressions.DataType.Type.DATETIME", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATETIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DATETIME: 'DATETIME'>"}, "sqlglot.expressions.DataType.Type.ARRAY": {"fullname": "sqlglot.expressions.DataType.Type.ARRAY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ARRAY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.ARRAY: 'ARRAY'>"}, "sqlglot.expressions.DataType.Type.MAP": {"fullname": "sqlglot.expressions.DataType.Type.MAP", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MAP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MAP: 'MAP'>"}, "sqlglot.expressions.DataType.Type.UUID": {"fullname": "sqlglot.expressions.DataType.Type.UUID", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UUID", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UUID: 'UUID'>"}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"fullname": "sqlglot.expressions.DataType.Type.GEOGRAPHY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.GEOGRAPHY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.GEOGRAPHY: 'GEOGRAPHY'>"}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"fullname": "sqlglot.expressions.DataType.Type.GEOMETRY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.GEOMETRY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.expressions.DataType.Type.STRUCT": {"fullname": "sqlglot.expressions.DataType.Type.STRUCT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.STRUCT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.STRUCT: 'STRUCT'>"}, "sqlglot.expressions.DataType.Type.NULLABLE": {"fullname": "sqlglot.expressions.DataType.Type.NULLABLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULLABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NULLABLE: 'NULLABLE'>"}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"fullname": "sqlglot.expressions.DataType.Type.HLLSKETCH", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.HLLSKETCH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.HLLSKETCH: 'HLLSKETCH'>"}, "sqlglot.expressions.DataType.Type.HSTORE": {"fullname": "sqlglot.expressions.DataType.Type.HSTORE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.HSTORE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.HSTORE: 'HSTORE'>"}, "sqlglot.expressions.DataType.Type.SUPER": {"fullname": "sqlglot.expressions.DataType.Type.SUPER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SUPER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SUPER: 'SUPER'>"}, "sqlglot.expressions.DataType.Type.SERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SERIAL: 'SERIAL'>"}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SMALLSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.BIGSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.expressions.DataType.Type.XML": {"fullname": "sqlglot.expressions.DataType.Type.XML", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.XML", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.XML: 'XML'>"}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"fullname": "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNIQUEIDENTIFIER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.expressions.DataType.Type.MONEY": {"fullname": "sqlglot.expressions.DataType.Type.MONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MONEY: 'MONEY'>"}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"fullname": "sqlglot.expressions.DataType.Type.SMALLMONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLMONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"fullname": "sqlglot.expressions.DataType.Type.ROWVERSION", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ROWVERSION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.expressions.DataType.Type.IMAGE": {"fullname": "sqlglot.expressions.DataType.Type.IMAGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.IMAGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.IMAGE: 'IMAGE'>"}, "sqlglot.expressions.DataType.Type.VARIANT": {"fullname": "sqlglot.expressions.DataType.Type.VARIANT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARIANT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.VARIANT: 'VARIANT'>"}, "sqlglot.expressions.DataType.Type.OBJECT": {"fullname": "sqlglot.expressions.DataType.Type.OBJECT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.OBJECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.OBJECT: 'OBJECT'>"}, "sqlglot.expressions.DataType.Type.INET": {"fullname": "sqlglot.expressions.DataType.Type.INET", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.INET: 'INET'>"}, "sqlglot.expressions.DataType.Type.NULL": {"fullname": "sqlglot.expressions.DataType.Type.NULL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NULL: 'NULL'>"}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"fullname": "sqlglot.expressions.DataType.Type.UNKNOWN", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNKNOWN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UNKNOWN: 'UNKNOWN'>"}, "sqlglot.expressions.DataType.build": {"fullname": "sqlglot.expressions.DataType.build", "modulename": "sqlglot.expressions", "qualname": "DataType.build", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">dtype</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.DataType.is_type": {"fullname": "sqlglot.expressions.DataType.is_type", "modulename": "sqlglot.expressions", "qualname": "DataType.is_type", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dtype</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.PseudoType": {"fullname": "sqlglot.expressions.PseudoType", "modulename": "sqlglot.expressions", "qualname": "PseudoType", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.StructKwarg": {"fullname": "sqlglot.expressions.StructKwarg", "modulename": "sqlglot.expressions", "qualname": "StructKwarg", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SubqueryPredicate": {"fullname": "sqlglot.expressions.SubqueryPredicate", "modulename": "sqlglot.expressions", "qualname": "SubqueryPredicate", "kind": "class", "doc": "<p></p>\n", "bases": "Predicate"}, "sqlglot.expressions.All": {"fullname": "sqlglot.expressions.All", "modulename": "sqlglot.expressions", "qualname": "All", "kind": "class", "doc": "<p></p>\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Any": {"fullname": "sqlglot.expressions.Any", "modulename": "sqlglot.expressions", "qualname": "Any", "kind": "class", "doc": "<p></p>\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Exists": {"fullname": "sqlglot.expressions.Exists", "modulename": "sqlglot.expressions", "qualname": "Exists", "kind": "class", "doc": "<p></p>\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Command": {"fullname": "sqlglot.expressions.Command", "modulename": "sqlglot.expressions", "qualname": "Command", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Transaction": {"fullname": "sqlglot.expressions.Transaction", "modulename": "sqlglot.expressions", "qualname": "Transaction", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Commit": {"fullname": "sqlglot.expressions.Commit", "modulename": "sqlglot.expressions", "qualname": "Commit", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Rollback": {"fullname": "sqlglot.expressions.Rollback", "modulename": "sqlglot.expressions", "qualname": "Rollback", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AlterTable": {"fullname": "sqlglot.expressions.AlterTable", "modulename": "sqlglot.expressions", "qualname": "AlterTable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AddConstraint": {"fullname": "sqlglot.expressions.AddConstraint", "modulename": "sqlglot.expressions", "qualname": "AddConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.DropPartition": {"fullname": "sqlglot.expressions.DropPartition", "modulename": "sqlglot.expressions", "qualname": "DropPartition", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Binary": {"fullname": "sqlglot.expressions.Binary", "modulename": "sqlglot.expressions", "qualname": "Binary", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Add": {"fullname": "sqlglot.expressions.Add", "modulename": "sqlglot.expressions", "qualname": "Add", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Connector": {"fullname": "sqlglot.expressions.Connector", "modulename": "sqlglot.expressions", "qualname": "Connector", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Condition"}, "sqlglot.expressions.And": {"fullname": "sqlglot.expressions.And", "modulename": "sqlglot.expressions", "qualname": "And", "kind": "class", "doc": "<p></p>\n", "bases": "Connector"}, "sqlglot.expressions.Or": {"fullname": "sqlglot.expressions.Or", "modulename": "sqlglot.expressions", "qualname": "Or", "kind": "class", "doc": "<p></p>\n", "bases": "Connector"}, "sqlglot.expressions.BitwiseAnd": {"fullname": "sqlglot.expressions.BitwiseAnd", "modulename": "sqlglot.expressions", "qualname": "BitwiseAnd", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseLeftShift": {"fullname": "sqlglot.expressions.BitwiseLeftShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseLeftShift", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseOr": {"fullname": "sqlglot.expressions.BitwiseOr", "modulename": "sqlglot.expressions", "qualname": "BitwiseOr", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseRightShift": {"fullname": "sqlglot.expressions.BitwiseRightShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseRightShift", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseXor": {"fullname": "sqlglot.expressions.BitwiseXor", "modulename": "sqlglot.expressions", "qualname": "BitwiseXor", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Div": {"fullname": "sqlglot.expressions.Div", "modulename": "sqlglot.expressions", "qualname": "Div", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.FloatDiv": {"fullname": "sqlglot.expressions.FloatDiv", "modulename": "sqlglot.expressions", "qualname": "FloatDiv", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Overlaps": {"fullname": "sqlglot.expressions.Overlaps", "modulename": "sqlglot.expressions", "qualname": "Overlaps", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Dot": {"fullname": "sqlglot.expressions.Dot", "modulename": "sqlglot.expressions", "qualname": "Dot", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.DPipe": {"fullname": "sqlglot.expressions.DPipe", "modulename": "sqlglot.expressions", "qualname": "DPipe", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.EQ": {"fullname": "sqlglot.expressions.EQ", "modulename": "sqlglot.expressions", "qualname": "EQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeEQ": {"fullname": "sqlglot.expressions.NullSafeEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeEQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeNEQ": {"fullname": "sqlglot.expressions.NullSafeNEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeNEQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Distance": {"fullname": "sqlglot.expressions.Distance", "modulename": "sqlglot.expressions", "qualname": "Distance", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Escape": {"fullname": "sqlglot.expressions.Escape", "modulename": "sqlglot.expressions", "qualname": "Escape", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Glob": {"fullname": "sqlglot.expressions.Glob", "modulename": "sqlglot.expressions", "qualname": "Glob", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GT": {"fullname": "sqlglot.expressions.GT", "modulename": "sqlglot.expressions", "qualname": "GT", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GTE": {"fullname": "sqlglot.expressions.GTE", "modulename": "sqlglot.expressions", "qualname": "GTE", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILike": {"fullname": "sqlglot.expressions.ILike", "modulename": "sqlglot.expressions", "qualname": "ILike", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILikeAny": {"fullname": "sqlglot.expressions.ILikeAny", "modulename": "sqlglot.expressions", "qualname": "ILikeAny", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.IntDiv": {"fullname": "sqlglot.expressions.IntDiv", "modulename": "sqlglot.expressions", "qualname": "IntDiv", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Is": {"fullname": "sqlglot.expressions.Is", "modulename": "sqlglot.expressions", "qualname": "Is", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Kwarg": {"fullname": "sqlglot.expressions.Kwarg", "modulename": "sqlglot.expressions", "qualname": "Kwarg", "kind": "class", "doc": "<p>Kwarg in special functions like func(kwarg => y).</p>\n", "bases": "Binary"}, "sqlglot.expressions.Like": {"fullname": "sqlglot.expressions.Like", "modulename": "sqlglot.expressions", "qualname": "Like", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LikeAny": {"fullname": "sqlglot.expressions.LikeAny", "modulename": "sqlglot.expressions", "qualname": "LikeAny", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LT": {"fullname": "sqlglot.expressions.LT", "modulename": "sqlglot.expressions", "qualname": "LT", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LTE": {"fullname": "sqlglot.expressions.LTE", "modulename": "sqlglot.expressions", "qualname": "LTE", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Mod": {"fullname": "sqlglot.expressions.Mod", "modulename": "sqlglot.expressions", "qualname": "Mod", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Mul": {"fullname": "sqlglot.expressions.Mul", "modulename": "sqlglot.expressions", "qualname": "Mul", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.NEQ": {"fullname": "sqlglot.expressions.NEQ", "modulename": "sqlglot.expressions", "qualname": "NEQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.SimilarTo": {"fullname": "sqlglot.expressions.SimilarTo", "modulename": "sqlglot.expressions", "qualname": "SimilarTo", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Slice": {"fullname": "sqlglot.expressions.Slice", "modulename": "sqlglot.expressions", "qualname": "Slice", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Sub": {"fullname": "sqlglot.expressions.Sub", "modulename": "sqlglot.expressions", "qualname": "Sub", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.ArrayOverlaps": {"fullname": "sqlglot.expressions.ArrayOverlaps", "modulename": "sqlglot.expressions", "qualname": "ArrayOverlaps", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Unary": {"fullname": "sqlglot.expressions.Unary", "modulename": "sqlglot.expressions", "qualname": "Unary", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.BitwiseNot": {"fullname": "sqlglot.expressions.BitwiseNot", "modulename": "sqlglot.expressions", "qualname": "BitwiseNot", "kind": "class", "doc": "<p></p>\n", "bases": "Unary"}, "sqlglot.expressions.Not": {"fullname": "sqlglot.expressions.Not", "modulename": "sqlglot.expressions", "qualname": "Not", "kind": "class", "doc": "<p></p>\n", "bases": "Unary, Condition"}, "sqlglot.expressions.Paren": {"fullname": "sqlglot.expressions.Paren", "modulename": "sqlglot.expressions", "qualname": "Paren", "kind": "class", "doc": "<p></p>\n", "bases": "Unary, Condition"}, "sqlglot.expressions.Neg": {"fullname": "sqlglot.expressions.Neg", "modulename": "sqlglot.expressions", "qualname": "Neg", "kind": "class", "doc": "<p></p>\n", "bases": "Unary"}, "sqlglot.expressions.Alias": {"fullname": "sqlglot.expressions.Alias", "modulename": "sqlglot.expressions", "qualname": "Alias", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Alias.output_name": {"fullname": "sqlglot.expressions.Alias.output_name", "modulename": "sqlglot.expressions", "qualname": "Alias.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Aliases": {"fullname": "sqlglot.expressions.Aliases", "modulename": "sqlglot.expressions", "qualname": "Aliases", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AtTimeZone": {"fullname": "sqlglot.expressions.AtTimeZone", "modulename": "sqlglot.expressions", "qualname": "AtTimeZone", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Between": {"fullname": "sqlglot.expressions.Between", "modulename": "sqlglot.expressions", "qualname": "Between", "kind": "class", "doc": "<p></p>\n", "bases": "Predicate"}, "sqlglot.expressions.Bracket": {"fullname": "sqlglot.expressions.Bracket", "modulename": "sqlglot.expressions", "qualname": "Bracket", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Distinct": {"fullname": "sqlglot.expressions.Distinct", "modulename": "sqlglot.expressions", "qualname": "Distinct", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.In": {"fullname": "sqlglot.expressions.In", "modulename": "sqlglot.expressions", "qualname": "In", "kind": "class", "doc": "<p></p>\n", "bases": "Predicate"}, "sqlglot.expressions.TimeUnit": {"fullname": "sqlglot.expressions.TimeUnit", "modulename": "sqlglot.expressions", "qualname": "TimeUnit", "kind": "class", "doc": "<p>Automatically converts unit arg into a var.</p>\n", "bases": "Expression"}, "sqlglot.expressions.TimeUnit.__init__": {"fullname": "sqlglot.expressions.TimeUnit.__init__", "modulename": "sqlglot.expressions", "qualname": "TimeUnit.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">**</span><span class=\"n\">args</span></span>)</span>"}, "sqlglot.expressions.Interval": {"fullname": "sqlglot.expressions.Interval", "modulename": "sqlglot.expressions", "qualname": "Interval", "kind": "class", "doc": "<p></p>\n", "bases": "TimeUnit"}, "sqlglot.expressions.IgnoreNulls": {"fullname": "sqlglot.expressions.IgnoreNulls", "modulename": "sqlglot.expressions", "qualname": "IgnoreNulls", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.RespectNulls": {"fullname": "sqlglot.expressions.RespectNulls", "modulename": "sqlglot.expressions", "qualname": "RespectNulls", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Func": {"fullname": "sqlglot.expressions.Func", "modulename": "sqlglot.expressions", "qualname": "Func", "kind": "class", "doc": "<p>The base class for all function expressions.</p>\n\n<h6 id=\"attributes\">Attributes:</h6>\n\n<ul>\n<li><strong>is_var_len_args (bool):</strong> if set to True the last argument defined in arg_types will be\ntreated as a variable length argument and the argument's value will be stored as a list.</li>\n<li><strong>_sql_names (list):</strong> determines the SQL name (1st item in the list) and aliases (subsequent items)\nfor this function expression. These values are used to map this node to a name during parsing\nas well as to provide the function's name during SQL string generation. By default the SQL\nname is set to the expression's class name transformed to snake case.</li>\n</ul>\n", "bases": "Condition"}, "sqlglot.expressions.Func.from_arg_list": {"fullname": "sqlglot.expressions.Func.from_arg_list", "modulename": "sqlglot.expressions", "qualname": "Func.from_arg_list", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">args</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Func.sql_names": {"fullname": "sqlglot.expressions.Func.sql_names", "modulename": "sqlglot.expressions", "qualname": "Func.sql_names", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Func.sql_name": {"fullname": "sqlglot.expressions.Func.sql_name", "modulename": "sqlglot.expressions", "qualname": "Func.sql_name", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Func.default_parser_mappings": {"fullname": "sqlglot.expressions.Func.default_parser_mappings", "modulename": "sqlglot.expressions", "qualname": "Func.default_parser_mappings", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.AggFunc": {"fullname": "sqlglot.expressions.AggFunc", "modulename": "sqlglot.expressions", "qualname": "AggFunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Abs": {"fullname": "sqlglot.expressions.Abs", "modulename": "sqlglot.expressions", "qualname": "Abs", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Anonymous": {"fullname": "sqlglot.expressions.Anonymous", "modulename": "sqlglot.expressions", "qualname": "Anonymous", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ApproxDistinct": {"fullname": "sqlglot.expressions.ApproxDistinct", "modulename": "sqlglot.expressions", "qualname": "ApproxDistinct", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Array": {"fullname": "sqlglot.expressions.Array", "modulename": "sqlglot.expressions", "qualname": "Array", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.GenerateSeries": {"fullname": "sqlglot.expressions.GenerateSeries", "modulename": "sqlglot.expressions", "qualname": "GenerateSeries", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayAgg": {"fullname": "sqlglot.expressions.ArrayAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayAgg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.ArrayAll": {"fullname": "sqlglot.expressions.ArrayAll", "modulename": "sqlglot.expressions", "qualname": "ArrayAll", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayAny": {"fullname": "sqlglot.expressions.ArrayAny", "modulename": "sqlglot.expressions", "qualname": "ArrayAny", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayConcat": {"fullname": "sqlglot.expressions.ArrayConcat", "modulename": "sqlglot.expressions", "qualname": "ArrayConcat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayContains": {"fullname": "sqlglot.expressions.ArrayContains", "modulename": "sqlglot.expressions", "qualname": "ArrayContains", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Func"}, "sqlglot.expressions.ArrayContained": {"fullname": "sqlglot.expressions.ArrayContained", "modulename": "sqlglot.expressions", "qualname": "ArrayContained", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.ArrayFilter": {"fullname": "sqlglot.expressions.ArrayFilter", "modulename": "sqlglot.expressions", "qualname": "ArrayFilter", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayJoin": {"fullname": "sqlglot.expressions.ArrayJoin", "modulename": "sqlglot.expressions", "qualname": "ArrayJoin", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArraySize": {"fullname": "sqlglot.expressions.ArraySize", "modulename": "sqlglot.expressions", "qualname": "ArraySize", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArraySort": {"fullname": "sqlglot.expressions.ArraySort", "modulename": "sqlglot.expressions", "qualname": "ArraySort", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArraySum": {"fullname": "sqlglot.expressions.ArraySum", "modulename": "sqlglot.expressions", "qualname": "ArraySum", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayUnionAgg": {"fullname": "sqlglot.expressions.ArrayUnionAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayUnionAgg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Avg": {"fullname": "sqlglot.expressions.Avg", "modulename": "sqlglot.expressions", "qualname": "Avg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.AnyValue": {"fullname": "sqlglot.expressions.AnyValue", "modulename": "sqlglot.expressions", "qualname": "AnyValue", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Case": {"fullname": "sqlglot.expressions.Case", "modulename": "sqlglot.expressions", "qualname": "Case", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Cast": {"fullname": "sqlglot.expressions.Cast", "modulename": "sqlglot.expressions", "qualname": "Cast", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Cast.output_name": {"fullname": "sqlglot.expressions.Cast.output_name", "modulename": "sqlglot.expressions", "qualname": "Cast.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Cast.is_type": {"fullname": "sqlglot.expressions.Cast.is_type", "modulename": "sqlglot.expressions", "qualname": "Cast.is_type", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dtype</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Collate": {"fullname": "sqlglot.expressions.Collate", "modulename": "sqlglot.expressions", "qualname": "Collate", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.TryCast": {"fullname": "sqlglot.expressions.TryCast", "modulename": "sqlglot.expressions", "qualname": "TryCast", "kind": "class", "doc": "<p></p>\n", "bases": "Cast"}, "sqlglot.expressions.Ceil": {"fullname": "sqlglot.expressions.Ceil", "modulename": "sqlglot.expressions", "qualname": "Ceil", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Coalesce": {"fullname": "sqlglot.expressions.Coalesce", "modulename": "sqlglot.expressions", "qualname": "Coalesce", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Concat": {"fullname": "sqlglot.expressions.Concat", "modulename": "sqlglot.expressions", "qualname": "Concat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ConcatWs": {"fullname": "sqlglot.expressions.ConcatWs", "modulename": "sqlglot.expressions", "qualname": "ConcatWs", "kind": "class", "doc": "<p></p>\n", "bases": "Concat"}, "sqlglot.expressions.Count": {"fullname": "sqlglot.expressions.Count", "modulename": "sqlglot.expressions", "qualname": "Count", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.CurrentDate": {"fullname": "sqlglot.expressions.CurrentDate", "modulename": "sqlglot.expressions", "qualname": "CurrentDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.CurrentDatetime": {"fullname": "sqlglot.expressions.CurrentDatetime", "modulename": "sqlglot.expressions", "qualname": "CurrentDatetime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.CurrentTime": {"fullname": "sqlglot.expressions.CurrentTime", "modulename": "sqlglot.expressions", "qualname": "CurrentTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.CurrentTimestamp": {"fullname": "sqlglot.expressions.CurrentTimestamp", "modulename": "sqlglot.expressions", "qualname": "CurrentTimestamp", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateAdd": {"fullname": "sqlglot.expressions.DateAdd", "modulename": "sqlglot.expressions", "qualname": "DateAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateSub": {"fullname": "sqlglot.expressions.DateSub", "modulename": "sqlglot.expressions", "qualname": "DateSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateDiff": {"fullname": "sqlglot.expressions.DateDiff", "modulename": "sqlglot.expressions", "qualname": "DateDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateTrunc": {"fullname": "sqlglot.expressions.DateTrunc", "modulename": "sqlglot.expressions", "qualname": "DateTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DatetimeAdd": {"fullname": "sqlglot.expressions.DatetimeAdd", "modulename": "sqlglot.expressions", "qualname": "DatetimeAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeSub": {"fullname": "sqlglot.expressions.DatetimeSub", "modulename": "sqlglot.expressions", "qualname": "DatetimeSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeDiff": {"fullname": "sqlglot.expressions.DatetimeDiff", "modulename": "sqlglot.expressions", "qualname": "DatetimeDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeTrunc": {"fullname": "sqlglot.expressions.DatetimeTrunc", "modulename": "sqlglot.expressions", "qualname": "DatetimeTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DayOfWeek": {"fullname": "sqlglot.expressions.DayOfWeek", "modulename": "sqlglot.expressions", "qualname": "DayOfWeek", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DayOfMonth": {"fullname": "sqlglot.expressions.DayOfMonth", "modulename": "sqlglot.expressions", "qualname": "DayOfMonth", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DayOfYear": {"fullname": "sqlglot.expressions.DayOfYear", "modulename": "sqlglot.expressions", "qualname": "DayOfYear", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.WeekOfYear": {"fullname": "sqlglot.expressions.WeekOfYear", "modulename": "sqlglot.expressions", "qualname": "WeekOfYear", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.LastDateOfMonth": {"fullname": "sqlglot.expressions.LastDateOfMonth", "modulename": "sqlglot.expressions", "qualname": "LastDateOfMonth", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Extract": {"fullname": "sqlglot.expressions.Extract", "modulename": "sqlglot.expressions", "qualname": "Extract", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimestampAdd": {"fullname": "sqlglot.expressions.TimestampAdd", "modulename": "sqlglot.expressions", "qualname": "TimestampAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampSub": {"fullname": "sqlglot.expressions.TimestampSub", "modulename": "sqlglot.expressions", "qualname": "TimestampSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampDiff": {"fullname": "sqlglot.expressions.TimestampDiff", "modulename": "sqlglot.expressions", "qualname": "TimestampDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampTrunc": {"fullname": "sqlglot.expressions.TimestampTrunc", "modulename": "sqlglot.expressions", "qualname": "TimestampTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeAdd": {"fullname": "sqlglot.expressions.TimeAdd", "modulename": "sqlglot.expressions", "qualname": "TimeAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeSub": {"fullname": "sqlglot.expressions.TimeSub", "modulename": "sqlglot.expressions", "qualname": "TimeSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeDiff": {"fullname": "sqlglot.expressions.TimeDiff", "modulename": "sqlglot.expressions", "qualname": "TimeDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeTrunc": {"fullname": "sqlglot.expressions.TimeTrunc", "modulename": "sqlglot.expressions", "qualname": "TimeTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateFromParts": {"fullname": "sqlglot.expressions.DateFromParts", "modulename": "sqlglot.expressions", "qualname": "DateFromParts", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateStrToDate": {"fullname": "sqlglot.expressions.DateStrToDate", "modulename": "sqlglot.expressions", "qualname": "DateStrToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateToDateStr": {"fullname": "sqlglot.expressions.DateToDateStr", "modulename": "sqlglot.expressions", "qualname": "DateToDateStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateToDi": {"fullname": "sqlglot.expressions.DateToDi", "modulename": "sqlglot.expressions", "qualname": "DateToDi", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Day": {"fullname": "sqlglot.expressions.Day", "modulename": "sqlglot.expressions", "qualname": "Day", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Decode": {"fullname": "sqlglot.expressions.Decode", "modulename": "sqlglot.expressions", "qualname": "Decode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DiToDate": {"fullname": "sqlglot.expressions.DiToDate", "modulename": "sqlglot.expressions", "qualname": "DiToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Encode": {"fullname": "sqlglot.expressions.Encode", "modulename": "sqlglot.expressions", "qualname": "Encode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Exp": {"fullname": "sqlglot.expressions.Exp", "modulename": "sqlglot.expressions", "qualname": "Exp", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Explode": {"fullname": "sqlglot.expressions.Explode", "modulename": "sqlglot.expressions", "qualname": "Explode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Floor": {"fullname": "sqlglot.expressions.Floor", "modulename": "sqlglot.expressions", "qualname": "Floor", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Greatest": {"fullname": "sqlglot.expressions.Greatest", "modulename": "sqlglot.expressions", "qualname": "Greatest", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.GroupConcat": {"fullname": "sqlglot.expressions.GroupConcat", "modulename": "sqlglot.expressions", "qualname": "GroupConcat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Hex": {"fullname": "sqlglot.expressions.Hex", "modulename": "sqlglot.expressions", "qualname": "Hex", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.If": {"fullname": "sqlglot.expressions.If", "modulename": "sqlglot.expressions", "qualname": "If", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.IfNull": {"fullname": "sqlglot.expressions.IfNull", "modulename": "sqlglot.expressions", "qualname": "IfNull", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Initcap": {"fullname": "sqlglot.expressions.Initcap", "modulename": "sqlglot.expressions", "qualname": "Initcap", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.JSONBContains": {"fullname": "sqlglot.expressions.JSONBContains", "modulename": "sqlglot.expressions", "qualname": "JSONBContains", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.JSONExtract": {"fullname": "sqlglot.expressions.JSONExtract", "modulename": "sqlglot.expressions", "qualname": "JSONExtract", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Func"}, "sqlglot.expressions.JSONExtractScalar": {"fullname": "sqlglot.expressions.JSONExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONExtractScalar", "kind": "class", "doc": "<p></p>\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtract": {"fullname": "sqlglot.expressions.JSONBExtract", "modulename": "sqlglot.expressions", "qualname": "JSONBExtract", "kind": "class", "doc": "<p></p>\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtractScalar": {"fullname": "sqlglot.expressions.JSONBExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONBExtractScalar", "kind": "class", "doc": "<p></p>\n", "bases": "JSONExtract"}, "sqlglot.expressions.Least": {"fullname": "sqlglot.expressions.Least", "modulename": "sqlglot.expressions", "qualname": "Least", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Length": {"fullname": "sqlglot.expressions.Length", "modulename": "sqlglot.expressions", "qualname": "Length", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Levenshtein": {"fullname": "sqlglot.expressions.Levenshtein", "modulename": "sqlglot.expressions", "qualname": "Levenshtein", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Ln": {"fullname": "sqlglot.expressions.Ln", "modulename": "sqlglot.expressions", "qualname": "Ln", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Log": {"fullname": "sqlglot.expressions.Log", "modulename": "sqlglot.expressions", "qualname": "Log", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Log2": {"fullname": "sqlglot.expressions.Log2", "modulename": "sqlglot.expressions", "qualname": "Log2", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Log10": {"fullname": "sqlglot.expressions.Log10", "modulename": "sqlglot.expressions", "qualname": "Log10", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.LogicalOr": {"fullname": "sqlglot.expressions.LogicalOr", "modulename": "sqlglot.expressions", "qualname": "LogicalOr", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Lower": {"fullname": "sqlglot.expressions.Lower", "modulename": "sqlglot.expressions", "qualname": "Lower", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Map": {"fullname": "sqlglot.expressions.Map", "modulename": "sqlglot.expressions", "qualname": "Map", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.VarMap": {"fullname": "sqlglot.expressions.VarMap", "modulename": "sqlglot.expressions", "qualname": "VarMap", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Matches": {"fullname": "sqlglot.expressions.Matches", "modulename": "sqlglot.expressions", "qualname": "Matches", "kind": "class", "doc": "<p>Oracle/Snowflake decode.\n<a href=\"https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm\">https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</a>\nPattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>\n", "bases": "Func"}, "sqlglot.expressions.Max": {"fullname": "sqlglot.expressions.Max", "modulename": "sqlglot.expressions", "qualname": "Max", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Min": {"fullname": "sqlglot.expressions.Min", "modulename": "sqlglot.expressions", "qualname": "Min", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Month": {"fullname": "sqlglot.expressions.Month", "modulename": "sqlglot.expressions", "qualname": "Month", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Nvl2": {"fullname": "sqlglot.expressions.Nvl2", "modulename": "sqlglot.expressions", "qualname": "Nvl2", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Posexplode": {"fullname": "sqlglot.expressions.Posexplode", "modulename": "sqlglot.expressions", "qualname": "Posexplode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Pow": {"fullname": "sqlglot.expressions.Pow", "modulename": "sqlglot.expressions", "qualname": "Pow", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Func"}, "sqlglot.expressions.PercentileCont": {"fullname": "sqlglot.expressions.PercentileCont", "modulename": "sqlglot.expressions", "qualname": "PercentileCont", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.PercentileDisc": {"fullname": "sqlglot.expressions.PercentileDisc", "modulename": "sqlglot.expressions", "qualname": "PercentileDisc", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Quantile": {"fullname": "sqlglot.expressions.Quantile", "modulename": "sqlglot.expressions", "qualname": "Quantile", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Quantiles": {"fullname": "sqlglot.expressions.Quantiles", "modulename": "sqlglot.expressions", "qualname": "Quantiles", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.QuantileIf": {"fullname": "sqlglot.expressions.QuantileIf", "modulename": "sqlglot.expressions", "qualname": "QuantileIf", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.ApproxQuantile": {"fullname": "sqlglot.expressions.ApproxQuantile", "modulename": "sqlglot.expressions", "qualname": "ApproxQuantile", "kind": "class", "doc": "<p></p>\n", "bases": "Quantile"}, "sqlglot.expressions.RangeN": {"fullname": "sqlglot.expressions.RangeN", "modulename": "sqlglot.expressions", "qualname": "RangeN", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ReadCSV": {"fullname": "sqlglot.expressions.ReadCSV", "modulename": "sqlglot.expressions", "qualname": "ReadCSV", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Reduce": {"fullname": "sqlglot.expressions.Reduce", "modulename": "sqlglot.expressions", "qualname": "Reduce", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpExtract": {"fullname": "sqlglot.expressions.RegexpExtract", "modulename": "sqlglot.expressions", "qualname": "RegexpExtract", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpLike": {"fullname": "sqlglot.expressions.RegexpLike", "modulename": "sqlglot.expressions", "qualname": "RegexpLike", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpILike": {"fullname": "sqlglot.expressions.RegexpILike", "modulename": "sqlglot.expressions", "qualname": "RegexpILike", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpSplit": {"fullname": "sqlglot.expressions.RegexpSplit", "modulename": "sqlglot.expressions", "qualname": "RegexpSplit", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Repeat": {"fullname": "sqlglot.expressions.Repeat", "modulename": "sqlglot.expressions", "qualname": "Repeat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Round": {"fullname": "sqlglot.expressions.Round", "modulename": "sqlglot.expressions", "qualname": "Round", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RowNumber": {"fullname": "sqlglot.expressions.RowNumber", "modulename": "sqlglot.expressions", "qualname": "RowNumber", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.SafeDivide": {"fullname": "sqlglot.expressions.SafeDivide", "modulename": "sqlglot.expressions", "qualname": "SafeDivide", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.SetAgg": {"fullname": "sqlglot.expressions.SetAgg", "modulename": "sqlglot.expressions", "qualname": "SetAgg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.SortArray": {"fullname": "sqlglot.expressions.SortArray", "modulename": "sqlglot.expressions", "qualname": "SortArray", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Split": {"fullname": "sqlglot.expressions.Split", "modulename": "sqlglot.expressions", "qualname": "Split", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Substring": {"fullname": "sqlglot.expressions.Substring", "modulename": "sqlglot.expressions", "qualname": "Substring", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrPosition": {"fullname": "sqlglot.expressions.StrPosition", "modulename": "sqlglot.expressions", "qualname": "StrPosition", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrToDate": {"fullname": "sqlglot.expressions.StrToDate", "modulename": "sqlglot.expressions", "qualname": "StrToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrToTime": {"fullname": "sqlglot.expressions.StrToTime", "modulename": "sqlglot.expressions", "qualname": "StrToTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrToUnix": {"fullname": "sqlglot.expressions.StrToUnix", "modulename": "sqlglot.expressions", "qualname": "StrToUnix", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.NumberToStr": {"fullname": "sqlglot.expressions.NumberToStr", "modulename": "sqlglot.expressions", "qualname": "NumberToStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Struct": {"fullname": "sqlglot.expressions.Struct", "modulename": "sqlglot.expressions", "qualname": "Struct", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StructExtract": {"fullname": "sqlglot.expressions.StructExtract", "modulename": "sqlglot.expressions", "qualname": "StructExtract", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Sum": {"fullname": "sqlglot.expressions.Sum", "modulename": "sqlglot.expressions", "qualname": "Sum", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Sqrt": {"fullname": "sqlglot.expressions.Sqrt", "modulename": "sqlglot.expressions", "qualname": "Sqrt", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Stddev": {"fullname": "sqlglot.expressions.Stddev", "modulename": "sqlglot.expressions", "qualname": "Stddev", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevPop": {"fullname": "sqlglot.expressions.StddevPop", "modulename": "sqlglot.expressions", "qualname": "StddevPop", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevSamp": {"fullname": "sqlglot.expressions.StddevSamp", "modulename": "sqlglot.expressions", "qualname": "StddevSamp", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.TimeToStr": {"fullname": "sqlglot.expressions.TimeToStr", "modulename": "sqlglot.expressions", "qualname": "TimeToStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeToTimeStr": {"fullname": "sqlglot.expressions.TimeToTimeStr", "modulename": "sqlglot.expressions", "qualname": "TimeToTimeStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeToUnix": {"fullname": "sqlglot.expressions.TimeToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeToUnix", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToDate": {"fullname": "sqlglot.expressions.TimeStrToDate", "modulename": "sqlglot.expressions", "qualname": "TimeStrToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToTime": {"fullname": "sqlglot.expressions.TimeStrToTime", "modulename": "sqlglot.expressions", "qualname": "TimeStrToTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToUnix": {"fullname": "sqlglot.expressions.TimeStrToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeStrToUnix", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Trim": {"fullname": "sqlglot.expressions.Trim", "modulename": "sqlglot.expressions", "qualname": "Trim", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsAdd": {"fullname": "sqlglot.expressions.TsOrDsAdd", "modulename": "sqlglot.expressions", "qualname": "TsOrDsAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TsOrDsToDateStr": {"fullname": "sqlglot.expressions.TsOrDsToDateStr", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDateStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsToDate": {"fullname": "sqlglot.expressions.TsOrDsToDate", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TsOrDiToDi": {"fullname": "sqlglot.expressions.TsOrDiToDi", "modulename": "sqlglot.expressions", "qualname": "TsOrDiToDi", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Unhex": {"fullname": "sqlglot.expressions.Unhex", "modulename": "sqlglot.expressions", "qualname": "Unhex", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.UnixToStr": {"fullname": "sqlglot.expressions.UnixToStr", "modulename": "sqlglot.expressions", "qualname": "UnixToStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.UnixToTime": {"fullname": "sqlglot.expressions.UnixToTime", "modulename": "sqlglot.expressions", "qualname": "UnixToTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.UnixToTimeStr": {"fullname": "sqlglot.expressions.UnixToTimeStr", "modulename": "sqlglot.expressions", "qualname": "UnixToTimeStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Upper": {"fullname": "sqlglot.expressions.Upper", "modulename": "sqlglot.expressions", "qualname": "Upper", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Variance": {"fullname": "sqlglot.expressions.Variance", "modulename": "sqlglot.expressions", "qualname": "Variance", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.VariancePop": {"fullname": "sqlglot.expressions.VariancePop", "modulename": "sqlglot.expressions", "qualname": "VariancePop", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Week": {"fullname": "sqlglot.expressions.Week", "modulename": "sqlglot.expressions", "qualname": "Week", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.XMLTable": {"fullname": "sqlglot.expressions.XMLTable", "modulename": "sqlglot.expressions", "qualname": "XMLTable", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Year": {"fullname": "sqlglot.expressions.Year", "modulename": "sqlglot.expressions", "qualname": "Year", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Use": {"fullname": "sqlglot.expressions.Use", "modulename": "sqlglot.expressions", "qualname": "Use", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Merge": {"fullname": "sqlglot.expressions.Merge", "modulename": "sqlglot.expressions", "qualname": "Merge", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.When": {"fullname": "sqlglot.expressions.When", "modulename": "sqlglot.expressions", "qualname": "When", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.maybe_parse": {"fullname": "sqlglot.expressions.maybe_parse", "modulename": "sqlglot.expressions", "qualname": "maybe_parse", "kind": "function", "doc": "<p>Gracefully handle a possible string or expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">maybe_parse</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">)</span>\n<span class=\"go\">(LITERAL this: 1, is_string: False)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">maybe_parse</span><span class=\"p\">(</span><span class=\"n\">to_identifier</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">))</span>\n<span class=\"go\">(IDENTIFIER this: x, quoted: False)</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql_or_expression:</strong> the SQL code string or an expression</li>\n<li><strong>into:</strong> the SQLGlot Expression to parse into</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).</li>\n<li><strong>prefix:</strong> a string to prefix the sql with before it gets parsed\n(automatically includes a space)</li>\n<li><strong>copy:</strong> whether or not to copy the expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Expression: the parsed or given expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql_or_expression</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"o\">*</span>,</span><span class=\"param\">\t<span class=\"n\">into</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">prefix</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.union": {"fullname": "sqlglot.expressions.union", "modulename": "sqlglot.expressions", "qualname": "union", "kind": "function", "doc": "<p>Initializes a syntax tree from one UNION expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">,</span> <span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo UNION SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Union: the syntax tree for the UNION expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">left</span>, </span><span class=\"param\"><span class=\"n\">right</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.intersect": {"fullname": "sqlglot.expressions.intersect", "modulename": "sqlglot.expressions", "qualname": "intersect", "kind": "function", "doc": "<p>Initializes a syntax tree from one INTERSECT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">intersect</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">,</span> <span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Intersect: the syntax tree for the INTERSECT expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">left</span>, </span><span class=\"param\"><span class=\"n\">right</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.except_": {"fullname": "sqlglot.expressions.except_", "modulename": "sqlglot.expressions", "qualname": "except_", "kind": "function", "doc": "<p>Initializes a syntax tree from one EXCEPT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">except_</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">,</span> <span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Except: the syntax tree for the EXCEPT statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">left</span>, </span><span class=\"param\"><span class=\"n\">right</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.select": {"fullname": "sqlglot.expressions.select", "modulename": "sqlglot.expressions", "qualname": "select", "kind": "function", "doc": "<p>Initializes a syntax tree from one or multiple SELECT expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"col1"</span><span class=\"p\">,</span> <span class=\"s2\">"col2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT col1, col2 FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code string to parse as the expressions of a\nSELECT statement. If an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the syntax tree for the SELECT statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.from_": {"fullname": "sqlglot.expressions.from_", "modulename": "sqlglot.expressions", "qualname": "from_", "kind": "function", "doc": "<p>Initializes a syntax tree from a FROM expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"col1"</span><span class=\"p\">,</span> <span class=\"s2\">"col2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT col1, col2 FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code string to parse as the FROM expressions of a\nSELECT statement. If an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the syntax tree for the SELECT statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.update": {"fullname": "sqlglot.expressions.update", "modulename": "sqlglot.expressions", "qualname": "update", "kind": "function", "doc": "<p>Creates an update statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"s2\">"my_table"</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s2\">"x"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"y"</span><span class=\"p\">:</span> <span class=\"s2\">"2"</span><span class=\"p\">,</span> <span class=\"s2\">"z"</span><span class=\"p\">:</span> <span class=\"kc\">None</span><span class=\"p\">},</span> <span class=\"n\">from_</span><span class=\"o\">=</span><span class=\"s2\">"baz"</span><span class=\"p\">,</span> <span class=\"n\">where</span><span class=\"o\">=</span><span class=\"s2\">"id > 1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*properties (Dict[str, Any]):</strong> dictionary of properties to set which are\nauto converted to sql objects eg None -> NULL</li>\n<li><strong>where (str):</strong> sql conditional parsed into a WHERE statement</li>\n<li><strong>from_ (str):</strong> sql statement parsed into a FROM statement</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Update: the syntax tree for the UPDATE statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">table</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span>,</span><span class=\"param\">\t<span class=\"n\">where</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">from_</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Update</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.delete": {"fullname": "sqlglot.expressions.delete", "modulename": "sqlglot.expressions", "qualname": "delete", "kind": "function", "doc": "<p>Builds a delete statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">delete</span><span class=\"p\">(</span><span class=\"s2\">"my_table"</span><span class=\"p\">,</span> <span class=\"n\">where</span><span class=\"o\">=</span><span class=\"s2\">"id > 1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'DELETE FROM my_table WHERE id > 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>where (str|Condition):</strong> sql conditional parsed into a WHERE statement</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Delete: the syntax tree for the DELETE statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span>, </span><span class=\"param\"><span class=\"n\">where</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.condition": {"fullname": "sqlglot.expressions.condition", "modulename": "sqlglot.expressions", "qualname": "condition", "kind": "function", "doc": "<p>Initialize a logical condition expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1'</span>\n</code></pre>\n </div>\n \n <p>This is helpful for composing larger logical syntax trees:</p>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">where</span> <span class=\"o\">=</span> <span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">where</span> <span class=\"o\">=</span> <span class=\"n\">where</span><span class=\"o\">.</span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"n\">where</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM tbl WHERE x = 1 AND y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expression (str | Expression):</strong> the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Condition: the expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Condition</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.and_": {"fullname": "sqlglot.expressions.and_", "modulename": "sqlglot.expressions", "qualname": "and_", "kind": "function", "doc": "<p>Combine multiple conditions with an AND logical operator.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">,</span> <span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">,</span> <span class=\"s2\">"z=1"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 AND (y = 1 AND z = 1)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>And: the new condition</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">And</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.or_": {"fullname": "sqlglot.expressions.or_", "modulename": "sqlglot.expressions", "qualname": "or_", "kind": "function", "doc": "<p>Combine multiple conditions with an OR logical operator.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">or_</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">,</span> <span class=\"n\">or_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">,</span> <span class=\"s2\">"z=1"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 OR (y = 1 OR z = 1)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Or: the new condition</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Or</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.not_": {"fullname": "sqlglot.expressions.not_", "modulename": "sqlglot.expressions", "qualname": "not_", "kind": "function", "doc": "<p>Wrap a condition with a NOT operator.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">not_</span><span class=\"p\">(</span><span class=\"s2\">"this_suit='black'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"NOT this_suit = 'black'"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Not: the new condition</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Not</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.paren": {"fullname": "sqlglot.expressions.paren", "modulename": "sqlglot.expressions", "qualname": "paren", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Paren</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_identifier": {"fullname": "sqlglot.expressions.to_identifier", "modulename": "sqlglot.expressions", "qualname": "to_identifier", "kind": "function", "doc": "<p>Builds an identifier.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>name:</strong> The name to turn into an identifier.</li>\n<li><strong>quoted:</strong> Whether or not force quote the identifier.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The identifier ast node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">name</span>, </span><span class=\"param\"><span class=\"n\">quoted</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_interval": {"fullname": "sqlglot.expressions.to_interval", "modulename": "sqlglot.expressions", "qualname": "to_interval", "kind": "function", "doc": "<p>Builds an interval expression from a string like '1 day' or '5 months'.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">interval</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Interval</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_table": {"fullname": "sqlglot.expressions.to_table", "modulename": "sqlglot.expressions", "qualname": "to_table", "kind": "function", "doc": "<p>Create a table expression from a <code>[catalog].[schema].[table]</code> sql path. Catalog and schema are optional.\nIf a table is passed in then that table is returned.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql_path:</strong> a <code>[catalog].[schema].[table]</code> string.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A table expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql_path</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_column": {"fullname": "sqlglot.expressions.to_column", "modulename": "sqlglot.expressions", "qualname": "to_column", "kind": "function", "doc": "<p>Create a column from a <code>[table].[column]</code> sql path. Schema is optional.</p>\n\n<p>If a column is passed in then that column is returned.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql_path:</strong> <code>[table].[column]</code> string</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Table: A column expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql_path</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.alias_": {"fullname": "sqlglot.expressions.alias_", "modulename": "sqlglot.expressions", "qualname": "alias_", "kind": "function", "doc": "<p>Create an Alias expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">alias_</span><span class=\"p\">(</span><span class=\"s1\">'foo'</span><span class=\"p\">,</span> <span class=\"s1\">'bar'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'foo AS bar'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">alias_</span><span class=\"p\">(</span><span class=\"s1\">'(select 1, 2)'</span><span class=\"p\">,</span> <span class=\"s1\">'bar'</span><span class=\"p\">,</span> <span class=\"n\">table</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">'a'</span><span class=\"p\">,</span> <span class=\"s1\">'b'</span><span class=\"p\">])</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'(SELECT 1, 2) AS bar(a, b)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>alias:</strong> the alias name to use. If the name has\nspecial characters it is quoted.</li>\n<li><strong>table:</strong> Whether or not to create a table alias, can also be a list of columns.</li>\n<li><strong>quoted:</strong> whether or not to quote the alias</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Alias: the aliased expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.subquery": {"fullname": "sqlglot.expressions.subquery", "modulename": "sqlglot.expressions", "qualname": "subquery", "kind": "function", "doc": "<p>Build a subquery expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">subquery</span><span class=\"p\">(</span><span class=\"s1\">'select x from tbl'</span><span class=\"p\">,</span> <span class=\"s1\">'bar'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s1\">'x'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM (SELECT x FROM tbl) AS bar'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>alias (str | Expression):</strong> the alias name to use.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: a new select with the subquery expression included</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.column": {"fullname": "sqlglot.expressions.column", "modulename": "sqlglot.expressions", "qualname": "column", "kind": "function", "doc": "<p>Build a Column.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>col:</strong> column name</li>\n<li><strong>table:</strong> table name</li>\n<li><strong>schema:</strong> schema name</li>\n<li><strong>quoted:</strong> whether or not to force quote each part</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Column: column instance</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.cast": {"fullname": "sqlglot.expressions.cast", "modulename": "sqlglot.expressions", "qualname": "cast", "kind": "function", "doc": "<p>Cast an expression to a data type.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">cast</span><span class=\"p\">(</span><span class=\"s1\">'x + 1'</span><span class=\"p\">,</span> <span class=\"s1\">'int'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'CAST(x + 1 AS INT)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> The expression to cast.</li>\n<li><strong>to:</strong> The datatype to cast to.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A cast node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">to</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.table_": {"fullname": "sqlglot.expressions.table_", "modulename": "sqlglot.expressions", "qualname": "table_", "kind": "function", "doc": "<p>Build a Table.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table (str | Expression):</strong> column name</li>\n<li><strong>db (str | Expression):</strong> db name</li>\n<li><strong>catalog (str | Expression):</strong> catalog name</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Table: table instance</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">table</span>,</span><span class=\"param\">\t<span class=\"n\">db</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">catalog</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quoted</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.values": {"fullname": "sqlglot.expressions.values", "modulename": "sqlglot.expressions", "qualname": "values", "kind": "function", "doc": "<p>Build VALUES statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">values</span><span class=\"p\">([(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s1\">'2'</span><span class=\"p\">)])</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"VALUES (1, '2')"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>values:</strong> values statements that will be converted to SQL</li>\n<li><strong>alias:</strong> optional alias</li>\n<li><strong>columns:</strong> Optional list of ordered column names or ordered dictionary of column names to types.\nIf either are provided then an alias is also required.\nIf a dictionary is provided then the first column of the values will be casted to the expected type\nin order to help with type inference.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Values: the Values expression object</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">values</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">columns</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.var": {"fullname": "sqlglot.expressions.var", "modulename": "sqlglot.expressions", "qualname": "var", "kind": "function", "doc": "<p>Build a SQL variable.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"nb\">repr</span><span class=\"p\">(</span><span class=\"n\">var</span><span class=\"p\">(</span><span class=\"s1\">'x'</span><span class=\"p\">))</span>\n<span class=\"go\">'(VAR this: x)'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"nb\">repr</span><span class=\"p\">(</span><span class=\"n\">var</span><span class=\"p\">(</span><span class=\"n\">column</span><span class=\"p\">(</span><span class=\"s1\">'x'</span><span class=\"p\">,</span> <span class=\"n\">table</span><span class=\"o\">=</span><span class=\"s1\">'y'</span><span class=\"p\">)))</span>\n<span class=\"go\">'(VAR this: x)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>name:</strong> The name of the var or an expression who's name will become the var.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The new variable node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Var</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.rename_table": {"fullname": "sqlglot.expressions.rename_table", "modulename": "sqlglot.expressions", "qualname": "rename_table", "kind": "function", "doc": "<p>Build ALTER TABLE... RENAME... expression</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>old_name:</strong> The old name of the table</li>\n<li><strong>new_name:</strong> The new name of the table</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Alter table expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">old_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>,</span><span class=\"param\">\t<span class=\"n\">new_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AlterTable</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.convert": {"fullname": "sqlglot.expressions.convert", "modulename": "sqlglot.expressions", "qualname": "convert", "kind": "function", "doc": "<p>Convert a python value into an expression object.</p>\n\n<p>Raises an error if a conversion is not possible.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value (Any):</strong> a python object</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Expression: the equivalent expression object</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.replace_children": {"fullname": "sqlglot.expressions.replace_children", "modulename": "sqlglot.expressions", "qualname": "replace_children", "kind": "function", "doc": "<p>Replace children of an expression with the result of a lambda fun(child) -> exp.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">fun</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.column_table_names": {"fullname": "sqlglot.expressions.column_table_names", "modulename": "sqlglot.expressions", "qualname": "column_table_names", "kind": "function", "doc": "<p>Return all table names referenced through columns in an expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">column_table_names</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"a.b AND c.d AND c.e"</span><span class=\"p\">))</span>\n<span class=\"go\">['c', 'a']</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to find table names</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list: A list of unique names</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.table_name": {"fullname": "sqlglot.expressions.table_name", "modulename": "sqlglot.expressions", "qualname": "table_name", "kind": "function", "doc": "<p>Get the full name of a table as a string.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table (exp.Table | str):</strong> table expression node or string.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">table_name</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from a.b.c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">))</span>\n<span class=\"go\">'a.b.c'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The table name.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.replace_tables": {"fullname": "sqlglot.expressions.replace_tables", "modulename": "sqlglot.expressions", "qualname": "replace_tables", "kind": "function", "doc": "<p>Replace all tables in expression according to the mapping.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression node to be transformed and replaced.</li>\n<li><strong>mapping (Dict[str, str]):</strong> mapping of table names.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">replace_tables</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from a.b"</span><span class=\"p\">),</span> <span class=\"p\">{</span><span class=\"s2\">"a.b"</span><span class=\"p\">:</span> <span class=\"s2\">"c"</span><span class=\"p\">})</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM c'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The mapped expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">mapping</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.replace_placeholders": {"fullname": "sqlglot.expressions.replace_placeholders", "modulename": "sqlglot.expressions", "qualname": "replace_placeholders", "kind": "function", "doc": "<p>Replace placeholders in an expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression node to be transformed and replaced.</li>\n<li><strong>args:</strong> positional names that will substitute unnamed placeholders in the given order.</li>\n<li><strong>kwargs:</strong> keyword arguments that will substitute named placeholders.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">replace_placeholders</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from :tbl where ? = ?"</span><span class=\"p\">),</span> <span class=\"s2\">"a"</span><span class=\"p\">,</span> <span class=\"s2\">"b"</span><span class=\"p\">,</span> <span class=\"n\">tbl</span><span class=\"o\">=</span><span class=\"s2\">"foo"</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo WHERE a = b'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The mapped expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.expand": {"fullname": "sqlglot.expressions.expand", "modulename": "sqlglot.expressions", "qualname": "expand", "kind": "function", "doc": "<p>Transforms an expression by expanding all referenced sources into subqueries.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expand</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from x AS z"</span><span class=\"p\">),</span> <span class=\"p\">{</span><span class=\"s2\">"x"</span><span class=\"p\">:</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from y"</span><span class=\"p\">)})</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> The expression to expand.</li>\n<li><strong>sources:</strong> A dictionary of name to Subqueryables.</li>\n<li><strong>copy:</strong> Whether or not to copy the expression during transformation. Defaults to True.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">sources</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subqueryable</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.func": {"fullname": "sqlglot.expressions.func", "modulename": "sqlglot.expressions", "qualname": "func", "kind": "function", "doc": "<p>Returns a Func expression.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">func</span><span class=\"p\">(</span><span class=\"s2\">"abs"</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'ABS(5)'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">func</span><span class=\"p\">(</span><span class=\"s2\">"cast"</span><span class=\"p\">,</span> <span class=\"n\">this</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"n\">to</span><span class=\"o\">=</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">build</span><span class=\"p\">(</span><span class=\"s2\">"DOUBLE"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'CAST(5 AS DOUBLE)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>name:</strong> the name of the function to build.</li>\n<li><strong>args:</strong> the args used to instantiate the function of interest.</li>\n<li><strong>dialect:</strong> the source dialect.</li>\n<li><strong>kwargs:</strong> the kwargs used to instantiate the function of interest.</li>\n</ul>\n\n<h6 id=\"note\">Note:</h6>\n\n<blockquote>\n <p>The arguments <code>args</code> and <code>kwargs</code> are mutually exclusive.</p>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>An instance of the function of interest, or an anonymous function, if <code>name</code> doesn't\n correspond to an existing <code>sqlglot.expressions.Func</code> class.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">args</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Func</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.true": {"fullname": "sqlglot.expressions.true", "modulename": "sqlglot.expressions", "qualname": "true", "kind": "function", "doc": "<p>Returns a true Boolean expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.false": {"fullname": "sqlglot.expressions.false", "modulename": "sqlglot.expressions", "qualname": "false", "kind": "function", "doc": "<p>Returns a false Boolean expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.null": {"fullname": "sqlglot.expressions.null", "modulename": "sqlglot.expressions", "qualname": "null", "kind": "function", "doc": "<p>Returns a Null expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.generator": {"fullname": "sqlglot.generator", "modulename": "sqlglot.generator", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.generator.Generator": {"fullname": "sqlglot.generator.Generator", "modulename": "sqlglot.generator", "qualname": "Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding\ncharacter.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n"}, "sqlglot.generator.Generator.__init__": {"fullname": "sqlglot.generator.Generator.__init__", "modulename": "sqlglot.generator", "qualname": "Generator.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">time_mapping</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">time_trie</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quote_start</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quote_end</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identifier_start</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identifier_end</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identify</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">normalize</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">string_escape</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identifier_escape</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">pad</span><span class=\"o\">=</span><span class=\"mi\">2</span>,</span><span class=\"param\">\t<span class=\"n\">indent</span><span class=\"o\">=</span><span class=\"mi\">2</span>,</span><span class=\"param\">\t<span class=\"n\">index_offset</span><span class=\"o\">=</span><span class=\"mi\">0</span>,</span><span class=\"param\">\t<span class=\"n\">unnest_column_only</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">alias_post_tablesample</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">normalize_functions</span><span class=\"o\">=</span><span class=\"s1\">'upper'</span>,</span><span class=\"param\">\t<span class=\"n\">unsupported_level</span><span class=\"o\">=<</span><span class=\"n\">ErrorLevel</span><span class=\"o\">.</span><span class=\"n\">WARN</span><span class=\"p\">:</span> <span class=\"s1\">'WARN'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">null_ordering</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">max_unsupported</span><span class=\"o\">=</span><span class=\"mi\">3</span>,</span><span class=\"param\">\t<span class=\"n\">leading_comma</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">max_text_width</span><span class=\"o\">=</span><span class=\"mi\">80</span>,</span><span class=\"param\">\t<span class=\"n\">comments</span><span class=\"o\">=</span><span class=\"kc\">True</span></span>)</span>"}, "sqlglot.generator.Generator.generate": {"fullname": "sqlglot.generator.Generator.generate", "modulename": "sqlglot.generator", "qualname": "Generator.generate", "kind": "function", "doc": "<p>Generates a SQL string by interpreting the given syntax tree.</p>\n\n<p>Args\n expression: the syntax tree.</p>\n\n<p>Returns\n the SQL string.</p>\n", "signature": "<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\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.unsupported": {"fullname": "sqlglot.generator.Generator.unsupported", "modulename": "sqlglot.generator", "qualname": "Generator.unsupported", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sep": {"fullname": "sqlglot.generator.Generator.sep", "modulename": "sqlglot.generator", "qualname": "Generator.sep", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.seg": {"fullname": "sqlglot.generator.Generator.seg", "modulename": "sqlglot.generator", "qualname": "Generator.seg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.pad_comment": {"fullname": "sqlglot.generator.Generator.pad_comment", "modulename": "sqlglot.generator", "qualname": "Generator.pad_comment", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">comment</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.maybe_comment": {"fullname": "sqlglot.generator.Generator.maybe_comment", "modulename": "sqlglot.generator", "qualname": "Generator.maybe_comment", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.wrap": {"fullname": "sqlglot.generator.Generator.wrap", "modulename": "sqlglot.generator", "qualname": "Generator.wrap", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span> <span class=\"o\">|</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.no_identify": {"fullname": "sqlglot.generator.Generator.no_identify", "modulename": "sqlglot.generator", "qualname": "Generator.no_identify", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">func</span><span class=\"p\">:</span> <span class=\"n\">Callable</span><span class=\"p\">[</span><span class=\"o\">...</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.normalize_func": {"fullname": "sqlglot.generator.Generator.normalize_func", "modulename": "sqlglot.generator", "qualname": "Generator.normalize_func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.indent": {"fullname": "sqlglot.generator.Generator.indent", "modulename": "sqlglot.generator", "qualname": "Generator.indent", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">level</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>,</span><span class=\"param\">\t<span class=\"n\">pad</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">skip_first</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">skip_last</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sql": {"fullname": "sqlglot.generator.Generator.sql", "modulename": "sqlglot.generator", "qualname": "Generator.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">key</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">comment</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.uncache_sql": {"fullname": "sqlglot.generator.Generator.uncache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uncache_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Uncache</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cache_sql": {"fullname": "sqlglot.generator.Generator.cache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cache_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cache</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.characterset_sql": {"fullname": "sqlglot.generator.Generator.characterset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.characterset_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CharacterSet</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.column_sql": {"fullname": "sqlglot.generator.Generator.column_sql", "modulename": "sqlglot.generator", "qualname": "Generator.column_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.columndef_sql": {"fullname": "sqlglot.generator.Generator.columndef_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columndef_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ColumnDef</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.columnconstraint_sql": {"fullname": "sqlglot.generator.Generator.columnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.autoincrementcolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.compresscolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.compresscolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CompressColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.generatedasidentitycolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GeneratedAsIdentityColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.notnullcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.notnullcolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NotNullColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.primarykeycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykeycolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">PrimaryKeyColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.uniquecolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uniquecolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.create_sql": {"fullname": "sqlglot.generator.Generator.create_sql", "modulename": "sqlglot.generator", "qualname": "Generator.create_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Create</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.describe_sql": {"fullname": "sqlglot.generator.Generator.describe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.describe_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Describe</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.prepend_ctes": {"fullname": "sqlglot.generator.Generator.prepend_ctes", "modulename": "sqlglot.generator", "qualname": "Generator.prepend_ctes", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.with_sql": {"fullname": "sqlglot.generator.Generator.with_sql", "modulename": "sqlglot.generator", "qualname": "Generator.with_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">With</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cte_sql": {"fullname": "sqlglot.generator.Generator.cte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tablealias_sql": {"fullname": "sqlglot.generator.Generator.tablealias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablealias_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableAlias</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitstring_sql": {"fullname": "sqlglot.generator.Generator.bitstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitstring_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitString</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.hexstring_sql": {"fullname": "sqlglot.generator.Generator.hexstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hexstring_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">HexString</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.datatype_sql": {"fullname": "sqlglot.generator.Generator.datatype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datatype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.directory_sql": {"fullname": "sqlglot.generator.Generator.directory_sql", "modulename": "sqlglot.generator", "qualname": "Generator.directory_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Directory</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.delete_sql": {"fullname": "sqlglot.generator.Generator.delete_sql", "modulename": "sqlglot.generator", "qualname": "Generator.delete_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.drop_sql": {"fullname": "sqlglot.generator.Generator.drop_sql", "modulename": "sqlglot.generator", "qualname": "Generator.drop_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Drop</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.except_sql": {"fullname": "sqlglot.generator.Generator.except_sql", "modulename": "sqlglot.generator", "qualname": "Generator.except_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Except</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.except_op": {"fullname": "sqlglot.generator.Generator.except_op", "modulename": "sqlglot.generator", "qualname": "Generator.except_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Except</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.fetch_sql": {"fullname": "sqlglot.generator.Generator.fetch_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fetch_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Fetch</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.filter_sql": {"fullname": "sqlglot.generator.Generator.filter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.filter_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Filter</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.hint_sql": {"fullname": "sqlglot.generator.Generator.hint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Hint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.index_sql": {"fullname": "sqlglot.generator.Generator.index_sql", "modulename": "sqlglot.generator", "qualname": "Generator.index_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Index</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.identifier_sql": {"fullname": "sqlglot.generator.Generator.identifier_sql", "modulename": "sqlglot.generator", "qualname": "Generator.identifier_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.national_sql": {"fullname": "sqlglot.generator.Generator.national_sql", "modulename": "sqlglot.generator", "qualname": "Generator.national_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">National</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.partition_sql": {"fullname": "sqlglot.generator.Generator.partition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.partition_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Partition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.properties_sql": {"fullname": "sqlglot.generator.Generator.properties_sql", "modulename": "sqlglot.generator", "qualname": "Generator.properties_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.root_properties": {"fullname": "sqlglot.generator.Generator.root_properties", "modulename": "sqlglot.generator", "qualname": "Generator.root_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.properties": {"fullname": "sqlglot.generator.Generator.properties", "modulename": "sqlglot.generator", "qualname": "Generator.properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span>,</span><span class=\"param\">\t<span class=\"n\">prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">''</span>,</span><span class=\"param\">\t<span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">', '</span>,</span><span class=\"param\">\t<span class=\"n\">suffix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">''</span>,</span><span class=\"param\">\t<span class=\"n\">wrapped</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.with_properties": {"fullname": "sqlglot.generator.Generator.with_properties", "modulename": "sqlglot.generator", "qualname": "Generator.with_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.locate_properties": {"fullname": "sqlglot.generator.Generator.locate_properties", "modulename": "sqlglot.generator", "qualname": "Generator.locate_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span><span class=\"o\">.</span><span class=\"n\">Location</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Property</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.property_sql": {"fullname": "sqlglot.generator.Generator.property_sql", "modulename": "sqlglot.generator", "qualname": "Generator.property_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Property</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.likeproperty_sql": {"fullname": "sqlglot.generator.Generator.likeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.likeproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LikeProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.fallbackproperty_sql": {"fullname": "sqlglot.generator.Generator.fallbackproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fallbackproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">FallbackProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.journalproperty_sql": {"fullname": "sqlglot.generator.Generator.journalproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.journalproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JournalProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.freespaceproperty_sql": {"fullname": "sqlglot.generator.Generator.freespaceproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.freespaceproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">FreespaceProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"fullname": "sqlglot.generator.Generator.afterjournalproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.afterjournalproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AfterJournalProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.checksumproperty_sql": {"fullname": "sqlglot.generator.Generator.checksumproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.checksumproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ChecksumProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"fullname": "sqlglot.generator.Generator.mergeblockratioproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergeblockratioproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">MergeBlockRatioProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"fullname": "sqlglot.generator.Generator.datablocksizeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datablocksizeproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataBlocksizeProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"fullname": "sqlglot.generator.Generator.blockcompressionproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.blockcompressionproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BlockCompressionProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"fullname": "sqlglot.generator.Generator.isolatedloadingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.isolatedloadingproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">IsolatedLoadingProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lockingproperty_sql": {"fullname": "sqlglot.generator.Generator.lockingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lockingproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LockingProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.withdataproperty_sql": {"fullname": "sqlglot.generator.Generator.withdataproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withdataproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">WithDataProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.insert_sql": {"fullname": "sqlglot.generator.Generator.insert_sql", "modulename": "sqlglot.generator", "qualname": "Generator.insert_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Insert</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_sql": {"fullname": "sqlglot.generator.Generator.intersect_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Intersect</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_op": {"fullname": "sqlglot.generator.Generator.intersect_op", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Intersect</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.introducer_sql": {"fullname": "sqlglot.generator.Generator.introducer_sql", "modulename": "sqlglot.generator", "qualname": "Generator.introducer_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Introducer</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.pseudotype_sql": {"fullname": "sqlglot.generator.Generator.pseudotype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pseudotype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">PseudoType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.returning_sql": {"fullname": "sqlglot.generator.Generator.returning_sql", "modulename": "sqlglot.generator", "qualname": "Generator.returning_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Returning</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"fullname": "sqlglot.generator.Generator.rowformatdelimitedproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rowformatdelimitedproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RowFormatDelimitedProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.table_sql": {"fullname": "sqlglot.generator.Generator.table_sql", "modulename": "sqlglot.generator", "qualname": "Generator.table_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' AS '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tablesample_sql": {"fullname": "sqlglot.generator.Generator.tablesample_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablesample_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableSample</span>,</span><span class=\"param\">\t<span class=\"n\">seed_prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'SEED'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.pivot_sql": {"fullname": "sqlglot.generator.Generator.pivot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pivot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Pivot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tuple_sql": {"fullname": "sqlglot.generator.Generator.tuple_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tuple_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Tuple</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.update_sql": {"fullname": "sqlglot.generator.Generator.update_sql", "modulename": "sqlglot.generator", "qualname": "Generator.update_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Update</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.values_sql": {"fullname": "sqlglot.generator.Generator.values_sql", "modulename": "sqlglot.generator", "qualname": "Generator.values_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.var_sql": {"fullname": "sqlglot.generator.Generator.var_sql", "modulename": "sqlglot.generator", "qualname": "Generator.var_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Var</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.into_sql": {"fullname": "sqlglot.generator.Generator.into_sql", "modulename": "sqlglot.generator", "qualname": "Generator.into_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Into</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.from_sql": {"fullname": "sqlglot.generator.Generator.from_sql", "modulename": "sqlglot.generator", "qualname": "Generator.from_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">From</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.group_sql": {"fullname": "sqlglot.generator.Generator.group_sql", "modulename": "sqlglot.generator", "qualname": "Generator.group_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Group</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.having_sql": {"fullname": "sqlglot.generator.Generator.having_sql", "modulename": "sqlglot.generator", "qualname": "Generator.having_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Having</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.join_sql": {"fullname": "sqlglot.generator.Generator.join_sql", "modulename": "sqlglot.generator", "qualname": "Generator.join_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Join</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lambda_sql": {"fullname": "sqlglot.generator.Generator.lambda_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lambda_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Lambda</span>,</span><span class=\"param\">\t<span class=\"n\">arrow_sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'->'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lateral_sql": {"fullname": "sqlglot.generator.Generator.lateral_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lateral_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Lateral</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.limit_sql": {"fullname": "sqlglot.generator.Generator.limit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.limit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Limit</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.offset_sql": {"fullname": "sqlglot.generator.Generator.offset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.offset_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Offset</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lock_sql": {"fullname": "sqlglot.generator.Generator.lock_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lock_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Lock</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.literal_sql": {"fullname": "sqlglot.generator.Generator.literal_sql", "modulename": "sqlglot.generator", "qualname": "Generator.literal_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.loaddata_sql": {"fullname": "sqlglot.generator.Generator.loaddata_sql", "modulename": "sqlglot.generator", "qualname": "Generator.loaddata_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LoadData</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.null_sql": {"fullname": "sqlglot.generator.Generator.null_sql", "modulename": "sqlglot.generator", "qualname": "Generator.null_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.boolean_sql": {"fullname": "sqlglot.generator.Generator.boolean_sql", "modulename": "sqlglot.generator", "qualname": "Generator.boolean_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Boolean</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.order_sql": {"fullname": "sqlglot.generator.Generator.order_sql", "modulename": "sqlglot.generator", "qualname": "Generator.order_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Order</span>, </span><span class=\"param\"><span class=\"n\">flat</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cluster_sql": {"fullname": "sqlglot.generator.Generator.cluster_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cluster_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cluster</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.distribute_sql": {"fullname": "sqlglot.generator.Generator.distribute_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distribute_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Distribute</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sort_sql": {"fullname": "sqlglot.generator.Generator.sort_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sort_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Sort</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.ordered_sql": {"fullname": "sqlglot.generator.Generator.ordered_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ordered_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Ordered</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.matchrecognize_sql": {"fullname": "sqlglot.generator.Generator.matchrecognize_sql", "modulename": "sqlglot.generator", "qualname": "Generator.matchrecognize_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">MatchRecognize</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.query_modifiers": {"fullname": "sqlglot.generator.Generator.query_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.query_modifiers", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">sqls</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.select_sql": {"fullname": "sqlglot.generator.Generator.select_sql", "modulename": "sqlglot.generator", "qualname": "Generator.select_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.schema_sql": {"fullname": "sqlglot.generator.Generator.schema_sql", "modulename": "sqlglot.generator", "qualname": "Generator.schema_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Schema</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.star_sql": {"fullname": "sqlglot.generator.Generator.star_sql", "modulename": "sqlglot.generator", "qualname": "Generator.star_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Star</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.structkwarg_sql": {"fullname": "sqlglot.generator.Generator.structkwarg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.structkwarg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StructKwarg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.parameter_sql": {"fullname": "sqlglot.generator.Generator.parameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.parameter_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Parameter</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sessionparameter_sql": {"fullname": "sqlglot.generator.Generator.sessionparameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sessionparameter_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SessionParameter</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.placeholder_sql": {"fullname": "sqlglot.generator.Generator.placeholder_sql", "modulename": "sqlglot.generator", "qualname": "Generator.placeholder_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Placeholder</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.subquery_sql": {"fullname": "sqlglot.generator.Generator.subquery_sql", "modulename": "sqlglot.generator", "qualname": "Generator.subquery_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subquery</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' AS '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.qualify_sql": {"fullname": "sqlglot.generator.Generator.qualify_sql", "modulename": "sqlglot.generator", "qualname": "Generator.qualify_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Qualify</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.union_sql": {"fullname": "sqlglot.generator.Generator.union_sql", "modulename": "sqlglot.generator", "qualname": "Generator.union_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Union</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.union_op": {"fullname": "sqlglot.generator.Generator.union_op", "modulename": "sqlglot.generator", "qualname": "Generator.union_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Union</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.unnest_sql": {"fullname": "sqlglot.generator.Generator.unnest_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unnest_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unnest</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.where_sql": {"fullname": "sqlglot.generator.Generator.where_sql", "modulename": "sqlglot.generator", "qualname": "Generator.where_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Where</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.window_sql": {"fullname": "sqlglot.generator.Generator.window_sql", "modulename": "sqlglot.generator", "qualname": "Generator.window_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Window</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.partition_by_sql": {"fullname": "sqlglot.generator.Generator.partition_by_sql", "modulename": "sqlglot.generator", "qualname": "Generator.partition_by_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Window</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">MatchRecognize</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.window_spec_sql": {"fullname": "sqlglot.generator.Generator.window_spec_sql", "modulename": "sqlglot.generator", "qualname": "Generator.window_spec_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.withingroup_sql": {"fullname": "sqlglot.generator.Generator.withingroup_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withingroup_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">WithinGroup</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.between_sql": {"fullname": "sqlglot.generator.Generator.between_sql", "modulename": "sqlglot.generator", "qualname": "Generator.between_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Between</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bracket_sql": {"fullname": "sqlglot.generator.Generator.bracket_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bracket_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Bracket</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.all_sql": {"fullname": "sqlglot.generator.Generator.all_sql", "modulename": "sqlglot.generator", "qualname": "Generator.all_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">All</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.any_sql": {"fullname": "sqlglot.generator.Generator.any_sql", "modulename": "sqlglot.generator", "qualname": "Generator.any_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.exists_sql": {"fullname": "sqlglot.generator.Generator.exists_sql", "modulename": "sqlglot.generator", "qualname": "Generator.exists_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Exists</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.case_sql": {"fullname": "sqlglot.generator.Generator.case_sql", "modulename": "sqlglot.generator", "qualname": "Generator.case_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Case</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.constraint_sql": {"fullname": "sqlglot.generator.Generator.constraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.constraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Constraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.extract_sql": {"fullname": "sqlglot.generator.Generator.extract_sql", "modulename": "sqlglot.generator", "qualname": "Generator.extract_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Extract</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.trim_sql": {"fullname": "sqlglot.generator.Generator.trim_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trim_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Trim</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.concat_sql": {"fullname": "sqlglot.generator.Generator.concat_sql", "modulename": "sqlglot.generator", "qualname": "Generator.concat_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Concat</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.check_sql": {"fullname": "sqlglot.generator.Generator.check_sql", "modulename": "sqlglot.generator", "qualname": "Generator.check_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Check</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.foreignkey_sql": {"fullname": "sqlglot.generator.Generator.foreignkey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.foreignkey_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.primarykey_sql": {"fullname": "sqlglot.generator.Generator.primarykey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykey_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.unique_sql": {"fullname": "sqlglot.generator.Generator.unique_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unique_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unique</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.if_sql": {"fullname": "sqlglot.generator.Generator.if_sql", "modulename": "sqlglot.generator", "qualname": "Generator.if_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">If</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.in_sql": {"fullname": "sqlglot.generator.Generator.in_sql", "modulename": "sqlglot.generator", "qualname": "Generator.in_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">In</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.in_unnest_op": {"fullname": "sqlglot.generator.Generator.in_unnest_op", "modulename": "sqlglot.generator", "qualname": "Generator.in_unnest_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">unnest</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unnest</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.interval_sql": {"fullname": "sqlglot.generator.Generator.interval_sql", "modulename": "sqlglot.generator", "qualname": "Generator.interval_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Interval</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.return_sql": {"fullname": "sqlglot.generator.Generator.return_sql", "modulename": "sqlglot.generator", "qualname": "Generator.return_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Return</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.reference_sql": {"fullname": "sqlglot.generator.Generator.reference_sql", "modulename": "sqlglot.generator", "qualname": "Generator.reference_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Reference</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.anonymous_sql": {"fullname": "sqlglot.generator.Generator.anonymous_sql", "modulename": "sqlglot.generator", "qualname": "Generator.anonymous_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Anonymous</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.paren_sql": {"fullname": "sqlglot.generator.Generator.paren_sql", "modulename": "sqlglot.generator", "qualname": "Generator.paren_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Paren</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.neg_sql": {"fullname": "sqlglot.generator.Generator.neg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Neg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.not_sql": {"fullname": "sqlglot.generator.Generator.not_sql", "modulename": "sqlglot.generator", "qualname": "Generator.not_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Not</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.alias_sql": {"fullname": "sqlglot.generator.Generator.alias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.alias_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Alias</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.aliases_sql": {"fullname": "sqlglot.generator.Generator.aliases_sql", "modulename": "sqlglot.generator", "qualname": "Generator.aliases_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Aliases</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.attimezone_sql": {"fullname": "sqlglot.generator.Generator.attimezone_sql", "modulename": "sqlglot.generator", "qualname": "Generator.attimezone_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AtTimeZone</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.add_sql": {"fullname": "sqlglot.generator.Generator.add_sql", "modulename": "sqlglot.generator", "qualname": "Generator.add_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Add</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.and_sql": {"fullname": "sqlglot.generator.Generator.and_sql", "modulename": "sqlglot.generator", "qualname": "Generator.and_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">And</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.connector_sql": {"fullname": "sqlglot.generator.Generator.connector_sql", "modulename": "sqlglot.generator", "qualname": "Generator.connector_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Connector</span>, </span><span class=\"param\"><span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseand_sql": {"fullname": "sqlglot.generator.Generator.bitwiseand_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseand_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseAnd</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiseleftshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseleftshift_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseLeftShift</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisenot_sql": {"fullname": "sqlglot.generator.Generator.bitwisenot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisenot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseNot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseor_sql": {"fullname": "sqlglot.generator.Generator.bitwiseor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseor_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseOr</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiserightshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiserightshift_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseRightShift</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisexor_sql": {"fullname": "sqlglot.generator.Generator.bitwisexor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisexor_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseXor</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cast_sql": {"fullname": "sqlglot.generator.Generator.cast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.currentdate_sql": {"fullname": "sqlglot.generator.Generator.currentdate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.currentdate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CurrentDate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.collate_sql": {"fullname": "sqlglot.generator.Generator.collate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.collate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Collate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.command_sql": {"fullname": "sqlglot.generator.Generator.command_sql", "modulename": "sqlglot.generator", "qualname": "Generator.command_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Command</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.comment_sql": {"fullname": "sqlglot.generator.Generator.comment_sql", "modulename": "sqlglot.generator", "qualname": "Generator.comment_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Comment</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.transaction_sql": {"fullname": "sqlglot.generator.Generator.transaction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.commit_sql": {"fullname": "sqlglot.generator.Generator.commit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.commit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Commit</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.rollback_sql": {"fullname": "sqlglot.generator.Generator.rollback_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rollback_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Rollback</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.altercolumn_sql": {"fullname": "sqlglot.generator.Generator.altercolumn_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altercolumn_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AlterColumn</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.renametable_sql": {"fullname": "sqlglot.generator.Generator.renametable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.renametable_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RenameTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.altertable_sql": {"fullname": "sqlglot.generator.Generator.altertable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altertable_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AlterTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.droppartition_sql": {"fullname": "sqlglot.generator.Generator.droppartition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.droppartition_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DropPartition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.addconstraint_sql": {"fullname": "sqlglot.generator.Generator.addconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.addconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AddConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.distinct_sql": {"fullname": "sqlglot.generator.Generator.distinct_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distinct_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Distinct</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.ignorenulls_sql": {"fullname": "sqlglot.generator.Generator.ignorenulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ignorenulls_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">IgnoreNulls</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.respectnulls_sql": {"fullname": "sqlglot.generator.Generator.respectnulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.respectnulls_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RespectNulls</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.intdiv_sql": {"fullname": "sqlglot.generator.Generator.intdiv_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intdiv_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">IntDiv</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.dpipe_sql": {"fullname": "sqlglot.generator.Generator.dpipe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dpipe_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DPipe</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.div_sql": {"fullname": "sqlglot.generator.Generator.div_sql", "modulename": "sqlglot.generator", "qualname": "Generator.div_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Div</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.floatdiv_sql": {"fullname": "sqlglot.generator.Generator.floatdiv_sql", "modulename": "sqlglot.generator", "qualname": "Generator.floatdiv_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">FloatDiv</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.overlaps_sql": {"fullname": "sqlglot.generator.Generator.overlaps_sql", "modulename": "sqlglot.generator", "qualname": "Generator.overlaps_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Overlaps</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.distance_sql": {"fullname": "sqlglot.generator.Generator.distance_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distance_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Distance</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.dot_sql": {"fullname": "sqlglot.generator.Generator.dot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Dot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.eq_sql": {"fullname": "sqlglot.generator.Generator.eq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.eq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">EQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.escape_sql": {"fullname": "sqlglot.generator.Generator.escape_sql", "modulename": "sqlglot.generator", "qualname": "Generator.escape_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Escape</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.glob_sql": {"fullname": "sqlglot.generator.Generator.glob_sql", "modulename": "sqlglot.generator", "qualname": "Generator.glob_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Glob</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.gt_sql": {"fullname": "sqlglot.generator.Generator.gt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gt_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GT</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.gte_sql": {"fullname": "sqlglot.generator.Generator.gte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.ilike_sql": {"fullname": "sqlglot.generator.Generator.ilike_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ilike_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ILike</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.is_sql": {"fullname": "sqlglot.generator.Generator.is_sql", "modulename": "sqlglot.generator", "qualname": "Generator.is_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Is</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.like_sql": {"fullname": "sqlglot.generator.Generator.like_sql", "modulename": "sqlglot.generator", "qualname": "Generator.like_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Like</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.similarto_sql": {"fullname": "sqlglot.generator.Generator.similarto_sql", "modulename": "sqlglot.generator", "qualname": "Generator.similarto_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SimilarTo</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lt_sql": {"fullname": "sqlglot.generator.Generator.lt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lt_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LT</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lte_sql": {"fullname": "sqlglot.generator.Generator.lte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.mod_sql": {"fullname": "sqlglot.generator.Generator.mod_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mod_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Mod</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.mul_sql": {"fullname": "sqlglot.generator.Generator.mul_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mul_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Mul</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.neq_sql": {"fullname": "sqlglot.generator.Generator.neq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NEQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeeq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeeq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeeq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NullSafeEQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeneq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeneq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeneq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NullSafeNEQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.or_sql": {"fullname": "sqlglot.generator.Generator.or_sql", "modulename": "sqlglot.generator", "qualname": "Generator.or_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Or</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.slice_sql": {"fullname": "sqlglot.generator.Generator.slice_sql", "modulename": "sqlglot.generator", "qualname": "Generator.slice_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Slice</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sub_sql": {"fullname": "sqlglot.generator.Generator.sub_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sub_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Sub</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.trycast_sql": {"fullname": "sqlglot.generator.Generator.trycast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trycast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TryCast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.use_sql": {"fullname": "sqlglot.generator.Generator.use_sql", "modulename": "sqlglot.generator", "qualname": "Generator.use_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Use</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.binary": {"fullname": "sqlglot.generator.Generator.binary", "modulename": "sqlglot.generator", "qualname": "Generator.binary", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Binary</span>, </span><span class=\"param\"><span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.function_fallback_sql": {"fullname": "sqlglot.generator.Generator.function_fallback_sql", "modulename": "sqlglot.generator", "qualname": "Generator.function_fallback_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Func</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.func": {"fullname": "sqlglot.generator.Generator.func", "modulename": "sqlglot.generator", "qualname": "Generator.func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.format_args": {"fullname": "sqlglot.generator.Generator.format_args", "modulename": "sqlglot.generator", "qualname": "Generator.format_args", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.text_width": {"fullname": "sqlglot.generator.Generator.text_width", "modulename": "sqlglot.generator", "qualname": "Generator.text_width", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">int</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.format_time": {"fullname": "sqlglot.generator.Generator.format_time", "modulename": "sqlglot.generator", "qualname": "Generator.format_time", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.expressions": {"fullname": "sqlglot.generator.Generator.expressions", "modulename": "sqlglot.generator", "qualname": "Generator.expressions", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">key</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">flat</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">indent</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">', '</span>,</span><span class=\"param\">\t<span class=\"n\">prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">''</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.op_expressions": {"fullname": "sqlglot.generator.Generator.op_expressions", "modulename": "sqlglot.generator", "qualname": "Generator.op_expressions", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">flat</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.naked_property": {"fullname": "sqlglot.generator.Generator.naked_property", "modulename": "sqlglot.generator", "qualname": "Generator.naked_property", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Property</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.set_operation": {"fullname": "sqlglot.generator.Generator.set_operation", "modulename": "sqlglot.generator", "qualname": "Generator.set_operation", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tag_sql": {"fullname": "sqlglot.generator.Generator.tag_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tag_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Tag</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.token_sql": {"fullname": "sqlglot.generator.Generator.token_sql", "modulename": "sqlglot.generator", "qualname": "Generator.token_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">token_type</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">TokenType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"fullname": "sqlglot.generator.Generator.userdefinedfunction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.userdefinedfunction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">UserDefinedFunction</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.joinhint_sql": {"fullname": "sqlglot.generator.Generator.joinhint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.joinhint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JoinHint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.kwarg_sql": {"fullname": "sqlglot.generator.Generator.kwarg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.kwarg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Kwarg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.when_sql": {"fullname": "sqlglot.generator.Generator.when_sql", "modulename": "sqlglot.generator", "qualname": "Generator.when_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">When</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.merge_sql": {"fullname": "sqlglot.generator.Generator.merge_sql", "modulename": "sqlglot.generator", "qualname": "Generator.merge_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Merge</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper": {"fullname": "sqlglot.helper", "modulename": "sqlglot.helper", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.helper.AutoName": {"fullname": "sqlglot.helper.AutoName", "modulename": "sqlglot.helper", "qualname": "AutoName", "kind": "class", "doc": "<p>This is used for creating enum classes where <code>auto()</code> is the string form of the corresponding value's name.</p>\n", "bases": "enum.Enum"}, "sqlglot.helper.seq_get": {"fullname": "sqlglot.helper.seq_get", "modulename": "sqlglot.helper", "qualname": "seq_get", "kind": "function", "doc": "<p>Returns the value in <code>seq</code> at position <code>index</code>, or <code>None</code> if <code>index</code> is out of bounds.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">seq</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">index</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.ensure_list": {"fullname": "sqlglot.helper.ensure_list", "modulename": "sqlglot.helper", "qualname": "ensure_list", "kind": "function", "doc": "<p>Ensures that a value is a list, otherwise casts or wraps it into one.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value of interest.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The value cast as a list if it's a list or a tuple, or else the value wrapped in a list.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.helper.ensure_collection": {"fullname": "sqlglot.helper.ensure_collection", "modulename": "sqlglot.helper", "qualname": "ensure_collection", "kind": "function", "doc": "<p>Ensures that a value is a collection (excluding <code>str</code> and <code>bytes</code>), otherwise wraps it into a list.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value of interest.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The value if it's a collection, or else the value wrapped in a list.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.helper.csv": {"fullname": "sqlglot.helper.csv", "modulename": "sqlglot.helper", "qualname": "csv", "kind": "function", "doc": "<p>Formats any number of string arguments as CSV.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>args:</strong> the string arguments to format.</li>\n<li><strong>sep:</strong> the argument separator.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The arguments formatted as a CSV string.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">', '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.subclasses": {"fullname": "sqlglot.helper.subclasses", "modulename": "sqlglot.helper", "qualname": "subclasses", "kind": "function", "doc": "<p>Returns all subclasses for a collection of classes, possibly excluding some of them.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>module_name:</strong> the name of the module to search for subclasses in.</li>\n<li><strong>classes:</strong> class(es) we want to find the subclasses of.</li>\n<li><strong>exclude:</strong> class(es) we want to exclude from the returned list.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The target subclasses.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">module_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">classes</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">exclude</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"p\">()</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.apply_index_offset": {"fullname": "sqlglot.helper.apply_index_offset", "modulename": "sqlglot.helper", "qualname": "apply_index_offset", "kind": "function", "doc": "<p>Applies an offset to a given integer literal expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expressions:</strong> the expression the offset will be applied to, wrapped in a list.</li>\n<li><strong>offset:</strong> the offset that will be applied.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The original expression with the offset applied to it, wrapped in a list. If the provided\n <code>expressions</code> argument contains more than one expressions, it's returned unaffected.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]]</span>, </span><span class=\"param\"><span class=\"n\">offset</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.camel_to_snake_case": {"fullname": "sqlglot.helper.camel_to_snake_case", "modulename": "sqlglot.helper", "qualname": "camel_to_snake_case", "kind": "function", "doc": "<p>Converts <code>name</code> from camelCase to snake_case and returns the result.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.while_changing": {"fullname": "sqlglot.helper.while_changing", "modulename": "sqlglot.helper", "qualname": "while_changing", "kind": "function", "doc": "<p>Applies a transformation to a given expression until a fix point is reached.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to be transformed.</li>\n<li><strong>func:</strong> the transformation to be applied.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">func</span><span class=\"p\">:</span> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]],</span> <span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"o\">~</span><span class=\"n\">E</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.tsort": {"fullname": "sqlglot.helper.tsort", "modulename": "sqlglot.helper", "qualname": "tsort", "kind": "function", "doc": "<p>Sorts a given directed acyclic graph in topological order.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>dag:</strong> the graph to be sorted.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A list that contains all of the graph's nodes in topological order.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">dag</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.open_file": {"fullname": "sqlglot.helper.open_file", "modulename": "sqlglot.helper", "qualname": "open_file", "kind": "function", "doc": "<p>Open a file that may be compressed as gzip and return it in universal newline mode.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">file_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <class 'TextIO'>:</span></span>", "funcdef": "def"}, "sqlglot.helper.csv_reader": {"fullname": "sqlglot.helper.csv_reader", "modulename": "sqlglot.helper", "qualname": "csv_reader", "kind": "function", "doc": "<p>Returns a csv reader given the expression <code>READ_CSV(name, ['delimiter', '|', ...])</code>.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>read_csv:</strong> a <code>ReadCSV</code> function call</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>A python csv reader.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">read_csv</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ReadCSV</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Any</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.find_new_name": {"fullname": "sqlglot.helper.find_new_name", "modulename": "sqlglot.helper", "qualname": "find_new_name", "kind": "function", "doc": "<p>Searches for a new name.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>taken:</strong> a collection of taken names.</li>\n<li><strong>base:</strong> base name to alter.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The new, available name.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">taken</span><span class=\"p\">:</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">base</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.object_to_dict": {"fullname": "sqlglot.helper.object_to_dict", "modulename": "sqlglot.helper", "qualname": "object_to_dict", "kind": "function", "doc": "<p>Returns a dictionary created from an object's attributes.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">obj</span><span class=\"p\">:</span> <span class=\"n\">Any</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Dict</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.split_num_words": {"fullname": "sqlglot.helper.split_num_words", "modulename": "sqlglot.helper", "qualname": "split_num_words", "kind": "function", "doc": "<p>Perform a split on a value and return N words as a result with <code>None</code> used for words that don't exist.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value to be split.</li>\n<li><strong>sep:</strong> the value to use to split on.</li>\n<li><strong>min_num_words:</strong> the minimum number of words that are going to be in the result.</li>\n<li><strong>fill_from_start:</strong> indicates that if <code>None</code> values should be inserted at the start or end of the list.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">split_num_words</span><span class=\"p\">(</span><span class=\"s2\">"db.table"</span><span class=\"p\">,</span> <span class=\"s2\">"."</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">)</span>\n<span class=\"go\">[None, 'db', 'table']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">split_num_words</span><span class=\"p\">(</span><span class=\"s2\">"db.table"</span><span class=\"p\">,</span> <span class=\"s2\">"."</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">fill_from_start</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">['db', 'table', None]</span>\n<span class=\"gp\">>>> </span><span class=\"n\">split_num_words</span><span class=\"p\">(</span><span class=\"s2\">"db.table"</span><span class=\"p\">,</span> <span class=\"s2\">"."</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"go\">['db', 'table']</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of words returned by <code>split</code>, possibly augmented by a number of <code>None</code> values.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">min_num_words</span><span class=\"p\">:</span> <span class=\"nb\">int</span>,</span><span class=\"param\">\t<span class=\"n\">fill_from_start</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.is_iterable": {"fullname": "sqlglot.helper.is_iterable", "modulename": "sqlglot.helper", "qualname": "is_iterable", "kind": "function", "doc": "<p>Checks if the value is an iterable, excluding the types <code>str</code> and <code>bytes</code>.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">is_iterable</span><span class=\"p\">([</span><span class=\"mi\">1</span><span class=\"p\">,</span><span class=\"mi\">2</span><span class=\"p\">])</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">>>> </span><span class=\"n\">is_iterable</span><span class=\"p\">(</span><span class=\"s2\">"test"</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value to check if it is an iterable.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A <code>bool</code> value indicating if it is an iterable.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.flatten": {"fullname": "sqlglot.helper.flatten", "modulename": "sqlglot.helper", "qualname": "flatten", "kind": "function", "doc": "<p>Flattens an iterable that can contain both iterable and non-iterable elements. Objects of\ntype <code>str</code> and <code>bytes</code> are not regarded as iterables.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">flatten</span><span class=\"p\">([[</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">],</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"mi\">4</span><span class=\"p\">},</span> <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"bla"</span><span class=\"p\">)]))</span>\n<span class=\"go\">[1, 2, 3, 4, 5, 'bla']</span>\n<span class=\"gp\">>>> </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">flatten</span><span class=\"p\">([</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">]))</span>\n<span class=\"go\">[1, 2, 3]</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>values:</strong> the value to be flattened.</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>Non-iterable elements in <code>values</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">values</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">],</span> <span class=\"n\">Any</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.count_params": {"fullname": "sqlglot.helper.count_params", "modulename": "sqlglot.helper", "qualname": "count_params", "kind": "function", "doc": "<p>Returns the number of formal parameters expected by a function, without counting \"self\"\nand \"cls\", in case of instance and class methods, respectively.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">function</span><span class=\"p\">:</span> <span class=\"n\">Callable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">int</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.dict_depth": {"fullname": "sqlglot.helper.dict_depth", "modulename": "sqlglot.helper", "qualname": "dict_depth", "kind": "function", "doc": "<p>Get the nesting depth of a dictionary.</p>\n\n<h6 id=\"for-example\">For example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"go\">0</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({})</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"s2\">"b"</span><span class=\"p\">})</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"p\">{}})</span>\n<span class=\"go\">2</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"b"</span><span class=\"p\">:</span> <span class=\"p\">{}}})</span>\n<span class=\"go\">3</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>d (dict):</strong> dictionary</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>int: depth</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">d</span><span class=\"p\">:</span> <span class=\"n\">Dict</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">int</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.first": {"fullname": "sqlglot.helper.first", "modulename": "sqlglot.helper", "qualname": "first", "kind": "function", "doc": "<p>Returns the first element from an iterable.</p>\n\n<p>Useful for sets.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">it</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"o\">~</span><span class=\"n\">T</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage": {"fullname": "sqlglot.lineage", "modulename": "sqlglot.lineage", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.lineage.Node": {"fullname": "sqlglot.lineage.Node", "modulename": "sqlglot.lineage", "qualname": "Node", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.lineage.Node.__init__": {"fullname": "sqlglot.lineage.Node.__init__", "modulename": "sqlglot.lineage", "qualname": "Node.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">downstream</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"o\"><</span><span class=\"n\">factory</span><span class=\"o\">></span></span>)</span>"}, "sqlglot.lineage.Node.walk": {"fullname": "sqlglot.lineage.Node.walk", "modulename": "sqlglot.lineage", "qualname": "Node.walk", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage.Node.to_html": {"fullname": "sqlglot.lineage.Node.to_html", "modulename": "sqlglot.lineage", "qualname": "Node.to_html", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">LineageHTML</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage.lineage": {"fullname": "sqlglot.lineage.lineage", "modulename": "sqlglot.lineage", "qualname": "lineage", "kind": "function", "doc": "<p>Build the lineage graph for a column of a SQL query.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>column:</strong> The column to build the lineage for.</li>\n<li><strong>sql:</strong> The SQL string or expression.</li>\n<li><strong>schema:</strong> The schema of tables.</li>\n<li><strong>sources:</strong> A mapping of queries which will be used to continue building lineage.</li>\n<li><strong>rules:</strong> Optimizer rules to apply, by default only qualifying tables and columns.</li>\n<li><strong>dialect:</strong> The dialect of input SQL.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A lineage node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>,</span><span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">sources</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subqueryable</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">rules</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Callable</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_tables</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa3a0ee0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_columns</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39fd90</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">expand_laterals</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39e560</span><span class=\"o\">></span><span class=\"p\">)</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage.LineageHTML": {"fullname": "sqlglot.lineage.LineageHTML", "modulename": "sqlglot.lineage", "qualname": "LineageHTML", "kind": "class", "doc": "<p>Node to HTML generator using vis.js.</p>\n\n<p><a href=\"https://visjs.github.io/vis-network/docs/network/\">https://visjs.github.io/vis-network/docs/network/</a></p>\n"}, "sqlglot.lineage.LineageHTML.__init__": {"fullname": "sqlglot.lineage.LineageHTML.__init__", "modulename": "sqlglot.lineage", "qualname": "LineageHTML.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">imports</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span>)</span>"}, "sqlglot.optimizer": {"fullname": "sqlglot.optimizer", "modulename": "sqlglot.optimizer", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.annotate_types": {"fullname": "sqlglot.optimizer.annotate_types", "modulename": "sqlglot.optimizer.annotate_types", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.annotate_types.annotate_types": {"fullname": "sqlglot.optimizer.annotate_types.annotate_types", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "annotate_types", "kind": "function", "doc": "<p>Recursively infer & annotate types in an expression syntax tree against a schema.\nAssumes that we've already executed the optimizer's qualify_columns step.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">"y"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"cola"</span><span class=\"p\">:</span> <span class=\"s2\">"SMALLINT"</span><span class=\"p\">}}</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT x.cola + 2.5 AS cola FROM (SELECT y.cola AS cola FROM y AS y) AS x"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">annotated_expr</span> <span class=\"o\">=</span> <span class=\"n\">annotate_types</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">),</span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"n\">schema</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">annotated_expr</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">type</span><span class=\"o\">.</span><span class=\"n\">this</span> <span class=\"c1\"># Get the type of "x.cola + 2.5 AS cola"</span>\n<span class=\"go\"><Type.DOUBLE: 'DOUBLE'></span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> Expression to annotate.</li>\n<li><strong>schema (dict|sqlglot.optimizer.Schema):</strong> Database schema.</li>\n<li><strong>annotators (dict):</strong> Maps expression type to corresponding annotation function.</li>\n<li><strong>coerces_to (dict):</strong> Maps expression type to set of types that it can be coerced into.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: expression annotated with types</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">annotators</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">coerces_to</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">annotators</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">coerces_to</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator.annotate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.canonicalize.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "canonicalize", "kind": "function", "doc": "<p>Converts a sql expression into a standard form.</p>\n\n<p>This method relies on annotate_types because many of the\nconversions rely on type inference.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> The expression to canonicalize.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"fullname": "sqlglot.optimizer.canonicalize.add_text_to_concat", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "add_text_to_concat", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.coerce_type": {"fullname": "sqlglot.optimizer.canonicalize.coerce_type", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "coerce_type", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"fullname": "sqlglot.optimizer.canonicalize.remove_redundant_casts", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "remove_redundant_casts", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_ctes": {"fullname": "sqlglot.optimizer.eliminate_ctes", "modulename": "sqlglot.optimizer.eliminate_ctes", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"fullname": "sqlglot.optimizer.eliminate_ctes.eliminate_ctes", "modulename": "sqlglot.optimizer.eliminate_ctes", "qualname": "eliminate_ctes", "kind": "function", "doc": "<p>Remove unused CTEs from an expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"WITH y AS (SELECT a FROM x) SELECT a FROM z"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_ctes</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT a FROM z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_joins": {"fullname": "sqlglot.optimizer.eliminate_joins", "modulename": "sqlglot.optimizer.eliminate_joins", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"fullname": "sqlglot.optimizer.eliminate_joins.eliminate_joins", "modulename": "sqlglot.optimizer.eliminate_joins", "qualname": "eliminate_joins", "kind": "function", "doc": "<p>Remove unused joins from an expression.</p>\n\n<p>This only removes joins when we know that the join condition doesn't produce duplicate rows.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT x.a FROM x LEFT JOIN (SELECT DISTINCT y.b FROM y) AS y ON x.b = y.b"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_joins</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x.a FROM x'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_joins.join_condition": {"fullname": "sqlglot.optimizer.eliminate_joins.join_condition", "modulename": "sqlglot.optimizer.eliminate_joins", "qualname": "join_condition", "kind": "function", "doc": "<p>Extract the join condition from a join expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li>join (exp.Join)</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>tuple[list[str], list[str], exp.Expression]:\n Tuple of (source key, join key, remaining predicate)</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">join</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_subqueries": {"fullname": "sqlglot.optimizer.eliminate_subqueries", "modulename": "sqlglot.optimizer.eliminate_subqueries", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"fullname": "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries", "modulename": "sqlglot.optimizer.eliminate_subqueries", "qualname": "eliminate_subqueries", "kind": "function", "doc": "<p>Rewrite derived tables as CTES, deduplicating if possible.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT * FROM x) AS y"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"this-also-deduplicates-common-subqueries\">This also deduplicates common subqueries:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT * FROM x) AS y JOIN (SELECT * FROM x) AS z"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y JOIN y AS z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.expand_laterals": {"fullname": "sqlglot.optimizer.expand_laterals", "modulename": "sqlglot.optimizer.expand_laterals", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"fullname": "sqlglot.optimizer.expand_laterals.expand_laterals", "modulename": "sqlglot.optimizer.expand_laterals", "qualname": "expand_laterals", "kind": "function", "doc": "<p>Expand lateral column alias references.</p>\n\n<p>This assumes <code>qualify_columns</code> as already run.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT x.a + 1 AS b, b + 1 AS c FROM x"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expand_laterals</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x.a + 1 AS b, x.a + 1 + 1 AS c FROM x'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.expand_multi_table_selects": {"fullname": "sqlglot.optimizer.expand_multi_table_selects", "modulename": "sqlglot.optimizer.expand_multi_table_selects", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"fullname": "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects", "modulename": "sqlglot.optimizer.expand_multi_table_selects", "qualname": "expand_multi_table_selects", "kind": "function", "doc": "<p>Replace multiple FROM expressions with JOINs.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expand_multi_table_selects</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x, y"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM x CROSS JOIN y'</span>\n</code></pre>\n </div>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.isolate_table_selects": {"fullname": "sqlglot.optimizer.isolate_table_selects", "modulename": "sqlglot.optimizer.isolate_table_selects", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"fullname": "sqlglot.optimizer.isolate_table_selects.isolate_table_selects", "modulename": "sqlglot.optimizer.isolate_table_selects", "qualname": "isolate_table_selects", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.lower_identities": {"fullname": "sqlglot.optimizer.lower_identities", "modulename": "sqlglot.optimizer.lower_identities", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.lower_identities.lower_identities": {"fullname": "sqlglot.optimizer.lower_identities.lower_identities", "modulename": "sqlglot.optimizer.lower_identities", "qualname": "lower_identities", "kind": "function", "doc": "<p>Convert all unquoted identifiers to lower case.</p>\n\n<p>Assuming the schema is all lower case, this essentially makes identifiers case-insensitive.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s1\">'SELECT Bar.A AS A FROM "Foo".Bar'</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">lower_identities</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT bar.a AS A FROM "Foo".bar'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to quote</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: quoted expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries": {"fullname": "sqlglot.optimizer.merge_subqueries", "modulename": "sqlglot.optimizer.merge_subqueries", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"fullname": "sqlglot.optimizer.merge_subqueries.merge_subqueries", "modulename": "sqlglot.optimizer.merge_subqueries", "qualname": "merge_subqueries", "kind": "function", "doc": "<p>Rewrite sqlglot AST to merge derived tables into the outer query.</p>\n\n<p>This also merges CTEs if they are selected from only once.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT x.a FROM x) JOIN y"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">merge_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x.a FROM x JOIN y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<p>If <code>leave_tables_isolated</code> is True, this will not merge inner queries into outer\nqueries if it would result in multiple table selects in a single query:</p>\n\n<blockquote>\n <blockquote>\n <blockquote>\n <p>expression = sqlglot.parse_one(\"SELECT a FROM (SELECT x.a FROM x) JOIN y\")\n merge_subqueries(expression, leave_tables_isolated=True).sql()\n 'SELECT a FROM (SELECT x.a FROM x) JOIN y'</p>\n </blockquote>\n </blockquote>\n</blockquote>\n\n<p>Inspired by <a href=\"https://dev.mysql.com/doc/refman/8.0/en/derived-table-optimization.html\">https://dev.mysql.com/doc/refman/8.0/en/derived-table-optimization.html</a></p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n<li><strong>leave_tables_isolated (bool):</strong> </li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">leave_tables_isolated</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"fullname": "sqlglot.optimizer.merge_subqueries.merge_ctes", "modulename": "sqlglot.optimizer.merge_subqueries", "qualname": "merge_ctes", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">leave_tables_isolated</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"fullname": "sqlglot.optimizer.merge_subqueries.merge_derived_tables", "modulename": "sqlglot.optimizer.merge_subqueries", "qualname": "merge_derived_tables", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">leave_tables_isolated</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize": {"fullname": "sqlglot.optimizer.normalize", "modulename": "sqlglot.optimizer.normalize", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.normalize.normalize": {"fullname": "sqlglot.optimizer.normalize.normalize", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalize", "kind": "function", "doc": "<p>Rewrite sqlglot AST into conjunctive normal form.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"(x AND y) OR z"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">normalize</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'(x OR z) AND (y OR z)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to normalize</li>\n<li><strong>dnf (bool):</strong> rewrite in disjunctive normal form instead</li>\n<li><strong>max_distance (int):</strong> the maximal estimated distance from cnf to attempt conversion</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: normalized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span><span class=\"o\">=</span><span class=\"kc\">False</span>, </span><span class=\"param\"><span class=\"n\">max_distance</span><span class=\"o\">=</span><span class=\"mi\">128</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalized": {"fullname": "sqlglot.optimizer.normalize.normalized", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalized", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalization_distance": {"fullname": "sqlglot.optimizer.normalize.normalization_distance", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalization_distance", "kind": "function", "doc": "<p>The difference in the number of predicates between the current expression and the normalized form.</p>\n\n<p>This is used as an estimate of the cost of the conversion which is exponential in complexity.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"(a AND b) OR (c AND d)"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">normalization_distance</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span>\n<span class=\"go\">4</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to compute distance</li>\n<li><strong>dnf (bool):</strong> compute to dnf distance instead</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>int: difference</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize.distributive_law": {"fullname": "sqlglot.optimizer.normalize.distributive_law", "modulename": "sqlglot.optimizer.normalize", "qualname": "distributive_law", "kind": "function", "doc": "<p>x OR (y AND z) -> (x OR y) AND (x OR z)\n(x AND y) OR (y AND z) -> (x OR y) AND (x OR z) AND (y OR y) AND (y OR z)</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span>, </span><span class=\"param\"><span class=\"n\">max_distance</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins": {"fullname": "sqlglot.optimizer.optimize_joins", "modulename": "sqlglot.optimizer.optimize_joins", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"fullname": "sqlglot.optimizer.optimize_joins.optimize_joins", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "optimize_joins", "kind": "function", "doc": "<p>Removes cross joins if possible and reorder joins based on predicate dependencies.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">optimize_joins</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x CROSS JOIN y JOIN z ON x.a = z.a AND y.a = z.a"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM x JOIN z ON x.a = z.a AND TRUE JOIN y ON y.a = z.a'</span>\n</code></pre>\n </div>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"fullname": "sqlglot.optimizer.optimize_joins.reorder_joins", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "reorder_joins", "kind": "function", "doc": "<p>Reorder joins by topological sort order based on predicate references.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.normalize": {"fullname": "sqlglot.optimizer.optimize_joins.normalize", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "normalize", "kind": "function", "doc": "<p>Remove INNER and OUTER from joins as they are optional.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.other_table_names": {"fullname": "sqlglot.optimizer.optimize_joins.other_table_names", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "other_table_names", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">join</span>, </span><span class=\"param\"><span class=\"n\">exclude</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimizer": {"fullname": "sqlglot.optimizer.optimizer", "modulename": "sqlglot.optimizer.optimizer", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.optimizer.optimize": {"fullname": "sqlglot.optimizer.optimizer.optimize", "modulename": "sqlglot.optimizer.optimizer", "qualname": "optimize", "kind": "function", "doc": "<p>Rewrite a sqlglot AST into an optimized form.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> expression to optimize</li>\n<li><strong>schema:</strong> database schema.\nThis can either be an instance of <code>sqlglot.optimizer.Schema</code> or a mapping in one of\nthe following forms:\n 1. {table: {col: type}}\n 2. {db: {table: {col: type}}}\n 3. {catalog: {db: {table: {col: type}}}}\nIf no schema is provided then the default schema defined at <code>sqlgot.schema</code> will be used</li>\n<li><strong>db:</strong> specify the default database, as might be set by a <code>USE DATABASE db</code> statement</li>\n<li><strong>catalog:</strong> specify the default catalog, as might be set by a <code>USE CATALOG c</code> statement</li>\n<li><strong>dialect:</strong> The dialect to parse the sql string.</li>\n<li><strong>rules:</strong> sequence of optimizer rules to use.\nMany of the rules require tables and columns to be qualified.\nDo not remove qualify_tables or qualify_columns from the sequence of rules unless you know\nwhat you're doing!</li>\n<li><strong><em>*kwargs:</strong> If a rule has a keyword argument with a same name in *</em>kwargs, it will be passed in.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">db</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">catalog</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">rules</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Callable</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">lower_identities</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39e830</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_tables</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa3a0ee0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">isolate_table_selects</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39e7a0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_columns</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39fd90</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">expand_laterals</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39e560</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">pushdown_projections</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa3a08b0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">validate_qualify_columns</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39fe20</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">normalize</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39c550</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">unnest_subqueries</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa3a1000</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">expand_multi_table_selects</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39e710</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">pushdown_predicates</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39f910</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">optimize_joins</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39f640</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">eliminate_subqueries</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39e170</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">merge_subqueries</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39eb00</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">eliminate_joins</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39c3a0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">eliminate_ctes</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa39c280</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">annotate_types</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa324e50</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">canonicalize</span> <span class=\"n\">at</span> <span class=\"mh\">0x7f5daa3b7e20</span><span class=\"o\">></span><span class=\"p\">)</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates": {"fullname": "sqlglot.optimizer.pushdown_predicates", "modulename": "sqlglot.optimizer.pushdown_predicates", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown_predicates", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown_predicates", "kind": "function", "doc": "<p>Rewrite sqlglot AST to pushdown predicates in FROMS and JOINS</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT * FROM (SELECT * FROM x AS x) AS y WHERE y.a = 1"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">pushdown_predicates</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM (SELECT * FROM x AS x WHERE y.a = 1) AS y WHERE TRUE'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">condition</span>, </span><span class=\"param\"><span class=\"n\">sources</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown_cnf", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown_cnf", "kind": "function", "doc": "<p>If the predicates are in CNF like form, we can simply replace each block in the parent.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">predicates</span>, </span><span class=\"param\"><span class=\"n\">scope</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown_dnf", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown_dnf", "kind": "function", "doc": "<p>If the predicates are in DNF form, we can only push down conditions that are in all blocks.\nAdditionally, we can't remove predicates from their original form.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">predicates</span>, </span><span class=\"param\"><span class=\"n\">scope</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"fullname": "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "nodes_for_predicate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">predicate</span>, </span><span class=\"param\"><span class=\"n\">sources</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"fullname": "sqlglot.optimizer.pushdown_predicates.replace_aliases", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "replace_aliases", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">source</span>, </span><span class=\"param\"><span class=\"n\">predicate</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_projections": {"fullname": "sqlglot.optimizer.pushdown_projections", "modulename": "sqlglot.optimizer.pushdown_projections", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"fullname": "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION", "modulename": "sqlglot.optimizer.pushdown_projections", "qualname": "DEFAULT_SELECTION", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"fullname": "sqlglot.optimizer.pushdown_projections.pushdown_projections", "modulename": "sqlglot.optimizer.pushdown_projections", "qualname": "pushdown_projections", "kind": "function", "doc": "<p>Rewrite sqlglot AST to remove unused columns projections.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">pushdown_projections</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n<li><strong>remove_unused_selections (bool):</strong> remove selects that are unused</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">remove_unused_selections</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns.qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "qualify_columns", "kind": "function", "doc": "<p>Rewrite sqlglot AST to have fully qualified columns.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">"tbl"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"col"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">}}</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT col FROM tbl"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">qualify_columns</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT tbl.col AS col FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to qualify</li>\n<li><strong>schema (dict|sqlglot.optimizer.Schema):</strong> Database schema</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: qualified expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns.validate_qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "validate_qualify_columns", "kind": "function", "doc": "<p>Raise an <code>OptimizeError</code> if any columns aren't qualified</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.Resolver": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver", "kind": "class", "doc": "<p>Helper for resolving columns.</p>\n\n<p>This is a class so we can lazily load some things and easily share them across functions.</p>\n"}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.__init__", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">scope</span>, </span><span class=\"param\"><span class=\"n\">schema</span></span>)</span>"}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.get_table", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.get_table", "kind": "function", "doc": "<p>Get the table for a column name.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>column_name:</strong> The column name to find the table for.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The table name if it can be found/inferred.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">column_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.all_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.all_columns", "kind": "variable", "doc": "<p>All available columns of all sources in this scope</p>\n"}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.get_source_columns", "kind": "function", "doc": "<p>Resolve the source columns for a given source <code>name</code></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span>, </span><span class=\"param\"><span class=\"n\">only_visible</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_tables": {"fullname": "sqlglot.optimizer.qualify_tables", "modulename": "sqlglot.optimizer.qualify_tables", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"fullname": "sqlglot.optimizer.qualify_tables.qualify_tables", "modulename": "sqlglot.optimizer.qualify_tables", "qualname": "qualify_tables", "kind": "function", "doc": "<p>Rewrite sqlglot AST to have fully qualified tables.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 FROM tbl"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">qualify_tables</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">,</span> <span class=\"n\">db</span><span class=\"o\">=</span><span class=\"s2\">"db"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT 1 FROM db.tbl AS tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to qualify</li>\n<li><strong>db (str):</strong> Database name</li>\n<li><strong>catalog (str):</strong> Catalog name</li>\n<li><strong>schema:</strong> A schema to populate</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: qualified expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">db</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">catalog</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope": {"fullname": "sqlglot.optimizer.scope", "modulename": "sqlglot.optimizer.scope", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.scope.ScopeType": {"fullname": "sqlglot.optimizer.scope.ScopeType", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "enum.Enum"}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"fullname": "sqlglot.optimizer.scope.ScopeType.ROOT", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.ROOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.ROOT: 1>"}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"fullname": "sqlglot.optimizer.scope.ScopeType.SUBQUERY", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.SUBQUERY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.SUBQUERY: 2>"}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"fullname": "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.DERIVED_TABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.DERIVED_TABLE: 3>"}, "sqlglot.optimizer.scope.ScopeType.CTE": {"fullname": "sqlglot.optimizer.scope.ScopeType.CTE", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.CTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.CTE: 4>"}, "sqlglot.optimizer.scope.ScopeType.UNION": {"fullname": "sqlglot.optimizer.scope.ScopeType.UNION", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.UNION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.UNION: 5>"}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"fullname": "sqlglot.optimizer.scope.ScopeType.UDTF", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.UDTF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.UDTF: 6>"}, "sqlglot.optimizer.scope.Scope": {"fullname": "sqlglot.optimizer.scope.Scope", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope", "kind": "class", "doc": "<p>Selection scope.</p>\n\n<h6 id=\"attributes\">Attributes:</h6>\n\n<ul>\n<li><strong>expression (exp.Select|exp.Union):</strong> Root expression of this scope</li>\n<li><strong>sources (dict[str, exp.Table|Scope]):</strong> Mapping of source name to either\na Table expression or another Scope instance. For example:\n SELECT * FROM x {\"x\": Table(this=\"x\")}\n SELECT * FROM x AS y {\"y\": Table(this=\"x\")}\n SELECT * FROM (SELECT ...) AS y {\"y\": Scope(...)}</li>\n<li><strong>lateral_sources (dict[str, exp.Table|Scope]):</strong> Sources from laterals\nFor example:\n SELECT c FROM x LATERAL VIEW EXPLODE (a) AS c;\nThe LATERAL VIEW EXPLODE gets x as a source.</li>\n<li><strong>outer_column_list (list[str]):</strong> If this is a derived table or CTE, and the outer query\ndefines a column list of it's alias of this scope, this is that list of columns.\nFor example:\n SELECT * FROM (SELECT ...) AS y(col1, col2)\nThe inner query would have <code>[\"col1\", \"col2\"]</code> for its <code>outer_column_list</code></li>\n<li><strong>parent (Scope):</strong> Parent scope</li>\n<li><strong>scope_type (ScopeType):</strong> Type of this scope, relative to it's parent</li>\n<li><strong>subquery_scopes (list[Scope]):</strong> List of all child scopes for subqueries</li>\n<li><strong>cte_scopes (list[Scope]):</strong> List of all child scopes for CTEs</li>\n<li><strong>derived_table_scopes (list[Scope]):</strong> List of all child scopes for derived_tables</li>\n<li><strong>udtf_scopes (list[Scope]):</strong> List of all child scopes for user defined tabular functions</li>\n<li><strong>table_scopes (list[Scope]):</strong> derived_table_scopes + udtf_scopes, in the order that they're defined</li>\n<li><strong>union_scopes (list[Scope, Scope]):</strong> If this Scope is for a Union expression, this will be\na list of the left and right child scopes.</li>\n</ul>\n"}, "sqlglot.optimizer.scope.Scope.__init__": {"fullname": "sqlglot.optimizer.scope.Scope.__init__", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">sources</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">outer_column_list</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">parent</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">scope_type</span><span class=\"o\">=<</span><span class=\"n\">ScopeType</span><span class=\"o\">.</span><span class=\"n\">ROOT</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">lateral_sources</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.optimizer.scope.Scope.clear_cache": {"fullname": "sqlglot.optimizer.scope.Scope.clear_cache", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.clear_cache", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.branch": {"fullname": "sqlglot.optimizer.scope.Scope.branch", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.branch", "kind": "function", "doc": "<p>Branch from the current scope to a new, inner scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">scope_type</span>, </span><span class=\"param\"><span class=\"n\">chain_sources</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.walk": {"fullname": "sqlglot.optimizer.scope.Scope.walk", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.walk", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.find": {"fullname": "sqlglot.optimizer.scope.Scope.find", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.find", "kind": "function", "doc": "<p>Returns the first node in this scope which matches at least one of the specified types.</p>\n\n<p>This does NOT traverse into subscopes.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n<li><strong>bfs (bool):</strong> True to use breadth-first search, False to use depth-first.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>exp.Expression: the node which matches the criteria or None if no node matching\n the criteria was found.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.find_all": {"fullname": "sqlglot.optimizer.scope.Scope.find_all", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.find_all", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this scope and only yields those that\nmatch at least one of the specified expression types.</p>\n\n<p>This does NOT traverse into subscopes.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n<li><strong>bfs (bool):</strong> True to use breadth-first search, False to use depth-first.</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>exp.Expression: nodes</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.replace": {"fullname": "sqlglot.optimizer.scope.Scope.replace", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.replace", "kind": "function", "doc": "<p>Replace <code>old</code> with <code>new</code>.</p>\n\n<p>This can be used instead of <code>exp.Expression.replace</code> to ensure the <code>Scope</code> is kept up-to-date.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>old (exp.Expression):</strong> old node</li>\n<li><strong>new (exp.Expression):</strong> new node</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">old</span>, </span><span class=\"param\"><span class=\"n\">new</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.tables": {"fullname": "sqlglot.optimizer.scope.Scope.tables", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.tables", "kind": "variable", "doc": "<p>List of tables in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Table]: tables</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.ctes": {"fullname": "sqlglot.optimizer.scope.Scope.ctes", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.ctes", "kind": "variable", "doc": "<p>List of CTEs in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.CTE]: ctes</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.derived_tables": {"fullname": "sqlglot.optimizer.scope.Scope.derived_tables", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.derived_tables", "kind": "variable", "doc": "<p>List of derived tables in this scope.</p>\n\n<h6 id=\"for-example\">For example:</h6>\n\n<blockquote>\n <p>SELECT * FROM (SELECT ...) <- that's a derived table</p>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Subquery]: derived tables</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.udtfs": {"fullname": "sqlglot.optimizer.scope.Scope.udtfs", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.udtfs", "kind": "variable", "doc": "<p>List of \"User Defined Tabular Functions\" in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.UDTF]: UDTFs</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.subqueries": {"fullname": "sqlglot.optimizer.scope.Scope.subqueries", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.subqueries", "kind": "variable", "doc": "<p>List of subqueries in this scope.</p>\n\n<h6 id=\"for-example\">For example:</h6>\n\n<blockquote>\n <p>SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery</p>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Subqueryable]: subqueries</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.columns": {"fullname": "sqlglot.optimizer.scope.Scope.columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.columns", "kind": "variable", "doc": "<p>List of columns in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Column instances in this scope, plus any\n Columns that reference this scope from correlated subqueries.</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.selected_sources": {"fullname": "sqlglot.optimizer.scope.Scope.selected_sources", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.selected_sources", "kind": "variable", "doc": "<p>Mapping of nodes and sources that are actually selected from in this scope.</p>\n\n<p>That is, all tables in a schema are selectable at any point. But a\ntable only becomes a selected source if it's included in a FROM or JOIN clause.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.cte_sources": {"fullname": "sqlglot.optimizer.scope.Scope.cte_sources", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.cte_sources", "kind": "variable", "doc": "<p>Sources that are CTEs.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>dict[str, Scope]: Mapping of source alias to Scope</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.selects": {"fullname": "sqlglot.optimizer.scope.Scope.selects", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.selects", "kind": "variable", "doc": "<p>Select expressions of this scope.</p>\n\n<p>For example, for the following expression:\n SELECT 1 as a, 2 as b FROM x</p>\n\n<p>The outputs are the \"1 as a\" and \"2 as b\" expressions.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Expression]: expressions</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.external_columns": {"fullname": "sqlglot.optimizer.scope.Scope.external_columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.external_columns", "kind": "variable", "doc": "<p>Columns that appear to reference sources in outer scopes.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Column instances that don't reference\n sources in the current scope.</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"fullname": "sqlglot.optimizer.scope.Scope.unqualified_columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.unqualified_columns", "kind": "variable", "doc": "<p>Unqualified columns in the current scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Unqualified columns</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.join_hints": {"fullname": "sqlglot.optimizer.scope.Scope.join_hints", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.join_hints", "kind": "variable", "doc": "<p>Hints that exist in the scope that reference tables</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.JoinHint]: Join hints that are referenced within the scope</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.source_columns": {"fullname": "sqlglot.optimizer.scope.Scope.source_columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.source_columns", "kind": "function", "doc": "<p>Get all columns in the current scope for a particular source.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>source_name (str):</strong> Name of the source</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Column instances that reference <code>source_name</code></p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">source_name</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.is_subquery": {"fullname": "sqlglot.optimizer.scope.Scope.is_subquery", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_subquery", "kind": "variable", "doc": "<p>Determine if this scope is a subquery</p>\n"}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"fullname": "sqlglot.optimizer.scope.Scope.is_derived_table", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_derived_table", "kind": "variable", "doc": "<p>Determine if this scope is a derived table</p>\n"}, "sqlglot.optimizer.scope.Scope.is_union": {"fullname": "sqlglot.optimizer.scope.Scope.is_union", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_union", "kind": "variable", "doc": "<p>Determine if this scope is a union</p>\n"}, "sqlglot.optimizer.scope.Scope.is_cte": {"fullname": "sqlglot.optimizer.scope.Scope.is_cte", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_cte", "kind": "variable", "doc": "<p>Determine if this scope is a common table expression</p>\n"}, "sqlglot.optimizer.scope.Scope.is_root": {"fullname": "sqlglot.optimizer.scope.Scope.is_root", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_root", "kind": "variable", "doc": "<p>Determine if this is the root scope</p>\n"}, "sqlglot.optimizer.scope.Scope.is_udtf": {"fullname": "sqlglot.optimizer.scope.Scope.is_udtf", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_udtf", "kind": "variable", "doc": "<p>Determine if this scope is a UDTF (User Defined Table Function)</p>\n"}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"fullname": "sqlglot.optimizer.scope.Scope.is_correlated_subquery", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_correlated_subquery", "kind": "variable", "doc": "<p>Determine if this scope is a correlated subquery</p>\n"}, "sqlglot.optimizer.scope.Scope.rename_source": {"fullname": "sqlglot.optimizer.scope.Scope.rename_source", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.rename_source", "kind": "function", "doc": "<p>Rename a source in this scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">old_name</span>, </span><span class=\"param\"><span class=\"n\">new_name</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.add_source": {"fullname": "sqlglot.optimizer.scope.Scope.add_source", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.add_source", "kind": "function", "doc": "<p>Add a source to this scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span>, </span><span class=\"param\"><span class=\"n\">source</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.remove_source": {"fullname": "sqlglot.optimizer.scope.Scope.remove_source", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.remove_source", "kind": "function", "doc": "<p>Remove a source from this scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.traverse": {"fullname": "sqlglot.optimizer.scope.Scope.traverse", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.traverse", "kind": "function", "doc": "<p>Traverse the scope tree from this node.</p>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>Scope: scope instances in depth-first-search post-order</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.ref_count": {"fullname": "sqlglot.optimizer.scope.Scope.ref_count", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.ref_count", "kind": "function", "doc": "<p>Count the number of times each scope in this tree is referenced.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>dict[int, int]: Mapping of Scope instance ID to reference count</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.traverse_scope": {"fullname": "sqlglot.optimizer.scope.traverse_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "traverse_scope", "kind": "function", "doc": "<p>Traverse an expression by it's \"scopes\".</p>\n\n<p>\"Scope\" represents the current context of a Select statement.</p>\n\n<p>This is helpful for optimizing queries, where we need more information than\nthe expression tree itself. For example, we might care about the source\nnames within a subquery. Returns a list because a generator could result in\nincomplete properties which is confusing.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT a FROM x) AS y"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">scopes</span> <span class=\"o\">=</span> <span class=\"n\">traverse_scope</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">expression</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(),</span> <span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">sources</span><span class=\"p\">)</span>\n<span class=\"go\">('SELECT a FROM x', ['x'])</span>\n<span class=\"gp\">>>> </span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">expression</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(),</span> <span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">sources</span><span class=\"p\">)</span>\n<span class=\"go\">('SELECT a FROM (SELECT a FROM x) AS y', ['y'])</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (exp.Expression):</strong> expression to traverse</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[Scope]: scope instances</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.build_scope": {"fullname": "sqlglot.optimizer.scope.build_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "build_scope", "kind": "function", "doc": "<p>Build a scope tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (exp.Expression):</strong> expression to build the scope tree for</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Scope: root scope</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.walk_in_scope": {"fullname": "sqlglot.optimizer.scope.walk_in_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "walk_in_scope", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in the syntrax tree, stopping at\nnodes that start child scopes.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (exp.Expression):</strong> </li>\n<li><strong>bfs (bool):</strong> if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify": {"fullname": "sqlglot.optimizer.simplify", "modulename": "sqlglot.optimizer.simplify", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.simplify.simplify": {"fullname": "sqlglot.optimizer.simplify.simplify", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify", "kind": "function", "doc": "<p>Rewrite sqlglot AST to simplify expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"TRUE AND TRUE"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">simplify</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'TRUE'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to simplify</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: simplified expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.rewrite_between": {"fullname": "sqlglot.optimizer.simplify.rewrite_between", "modulename": "sqlglot.optimizer.simplify", "qualname": "rewrite_between", "kind": "function", "doc": "<p>Rewrite x between y and z to x >= y AND x <= z.</p>\n\n<p>This is done because comparison simplification is only done on lt/lte/gt/gte.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_not": {"fullname": "sqlglot.optimizer.simplify.simplify_not", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_not", "kind": "function", "doc": "<p>Demorgan's Law\nNOT (x OR y) -> NOT x AND NOT y\nNOT (x AND y) -> NOT x OR NOT y</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.flatten": {"fullname": "sqlglot.optimizer.simplify.flatten", "modulename": "sqlglot.optimizer.simplify", "qualname": "flatten", "kind": "function", "doc": "<p>A AND (B AND C) -> A AND B AND C\nA OR (B OR C) -> A OR B OR C</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_connectors": {"fullname": "sqlglot.optimizer.simplify.simplify_connectors", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_connectors", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.remove_compliments": {"fullname": "sqlglot.optimizer.simplify.remove_compliments", "modulename": "sqlglot.optimizer.simplify", "qualname": "remove_compliments", "kind": "function", "doc": "<p>Removing compliments.</p>\n\n<p>A AND NOT A -> FALSE\nA OR NOT A -> TRUE</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.uniq_sort": {"fullname": "sqlglot.optimizer.simplify.uniq_sort", "modulename": "sqlglot.optimizer.simplify", "qualname": "uniq_sort", "kind": "function", "doc": "<p>Uniq and sort a connector.</p>\n\n<p>C AND A AND B AND B -> A AND B AND C</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"fullname": "sqlglot.optimizer.simplify.absorb_and_eliminate", "modulename": "sqlglot.optimizer.simplify", "qualname": "absorb_and_eliminate", "kind": "function", "doc": "<p>absorption:\n A AND (A OR B) -> A\n A OR (A AND B) -> A\n A AND (NOT A OR B) -> A AND B\n A OR (NOT A AND B) -> A OR B\nelimination:\n (A AND B) OR (A AND NOT B) -> A\n (A OR B) AND (A OR NOT B) -> A</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_literals": {"fullname": "sqlglot.optimizer.simplify.simplify_literals", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_literals", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_parens": {"fullname": "sqlglot.optimizer.simplify.simplify_parens", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_parens", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.remove_where_true": {"fullname": "sqlglot.optimizer.simplify.remove_where_true", "modulename": "sqlglot.optimizer.simplify", "qualname": "remove_where_true", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.always_true": {"fullname": "sqlglot.optimizer.simplify.always_true", "modulename": "sqlglot.optimizer.simplify", "qualname": "always_true", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_complement": {"fullname": "sqlglot.optimizer.simplify.is_complement", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_complement", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">a</span>, </span><span class=\"param\"><span class=\"n\">b</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.eval_boolean": {"fullname": "sqlglot.optimizer.simplify.eval_boolean", "modulename": "sqlglot.optimizer.simplify", "qualname": "eval_boolean", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">a</span>, </span><span class=\"param\"><span class=\"n\">b</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_date": {"fullname": "sqlglot.optimizer.simplify.extract_date", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_date", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">cast</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_interval": {"fullname": "sqlglot.optimizer.simplify.extract_interval", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_interval", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">interval</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.date_literal": {"fullname": "sqlglot.optimizer.simplify.date_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "date_literal", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">date</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.boolean_literal": {"fullname": "sqlglot.optimizer.simplify.boolean_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "boolean_literal", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">condition</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries": {"fullname": "sqlglot.optimizer.unnest_subqueries", "modulename": "sqlglot.optimizer.unnest_subqueries", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"fullname": "sqlglot.optimizer.unnest_subqueries.unnest_subqueries", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "unnest_subqueries", "kind": "function", "doc": "<p>Rewrite sqlglot AST to convert some predicates with subqueries into joins.</p>\n\n<p>Convert scalar subqueries into cross joins.\nConvert correlated or vectorized subqueries into a group by so it is not a many to many left join.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 "</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">unnest_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM x AS x LEFT JOIN (SELECT y.a AS a FROM y AS y WHERE TRUE GROUP BY y.a) AS _u_0 ON x.a = _u_0.a WHERE _u_0.a = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to unnest</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: unnested expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.unnest": {"fullname": "sqlglot.optimizer.unnest_subqueries.unnest", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "unnest", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">select</span>, </span><span class=\"param\"><span class=\"n\">parent_select</span>, </span><span class=\"param\"><span class=\"n\">sequence</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"fullname": "sqlglot.optimizer.unnest_subqueries.decorrelate", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "decorrelate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">select</span>, </span><span class=\"param\"><span class=\"n\">parent_select</span>, </span><span class=\"param\"><span class=\"n\">external_columns</span>, </span><span class=\"param\"><span class=\"n\">sequence</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.parser": {"fullname": "sqlglot.parser", "modulename": "sqlglot.parser", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.parser.parse_var_map": {"fullname": "sqlglot.parser.parse_var_map", "modulename": "sqlglot.parser", "qualname": "parse_var_map", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">args</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.parser.binary_range_parser": {"fullname": "sqlglot.parser.binary_range_parser", "modulename": "sqlglot.parser", "qualname": "binary_range_parser", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expr_type</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parser</span><span class=\"o\">.</span><span class=\"n\">Parser</span><span class=\"p\">,</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]],</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser": {"fullname": "sqlglot.parser.Parser", "modulename": "sqlglot.parser", "qualname": "Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n"}, "sqlglot.parser.Parser.__init__": {"fullname": "sqlglot.parser.Parser.__init__", "modulename": "sqlglot.parser", "qualname": "Parser.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">error_level</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ErrorLevel</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">error_message_context</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">100</span>,</span><span class=\"param\">\t<span class=\"n\">index_offset</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>,</span><span class=\"param\">\t<span class=\"n\">unnest_column_only</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">alias_post_tablesample</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">max_errors</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">3</span>,</span><span class=\"param\">\t<span class=\"n\">null_ordering</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>"}, "sqlglot.parser.Parser.reset": {"fullname": "sqlglot.parser.Parser.reset", "modulename": "sqlglot.parser", "qualname": "Parser.reset", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.parse": {"fullname": "sqlglot.parser.Parser.parse", "modulename": "sqlglot.parser", "qualname": "Parser.parse", "kind": "function", "doc": "<p>Parses a list of tokens and returns a list of syntax trees, one tree\nper parsed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>raw_tokens:</strong> the list of tokens.</li>\n<li><strong>sql:</strong> the original SQL string, used to produce helpful debug messages.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of syntax trees.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">raw_tokens</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">sql</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=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.parse_into": {"fullname": "sqlglot.parser.Parser.parse_into", "modulename": "sqlglot.parser", "qualname": "Parser.parse_into", "kind": "function", "doc": "<p>Parses a list of tokens into a given Expression type. If a collection of Expression\ntypes is given instead, this method will try to parse the token list into each one\nof them, stopping at the first for which the parsing succeeds.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types:</strong> the expression type(s) to try and parse the token list into.</li>\n<li><strong>raw_tokens:</strong> the list of tokens.</li>\n<li><strong>sql:</strong> the original SQL string, used to produce helpful debug messages.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The target Expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]]</span>,</span><span class=\"param\">\t<span class=\"n\">raw_tokens</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">sql</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=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.check_errors": {"fullname": "sqlglot.parser.Parser.check_errors", "modulename": "sqlglot.parser", "qualname": "Parser.check_errors", "kind": "function", "doc": "<p>Logs or raises any found errors, depending on the chosen error level setting.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.raise_error": {"fullname": "sqlglot.parser.Parser.raise_error", "modulename": "sqlglot.parser", "qualname": "Parser.raise_error", "kind": "function", "doc": "<p>Appends an error in the list of recorded errors or raises it, depending on the chosen\nerror level setting.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">token</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.expression": {"fullname": "sqlglot.parser.Parser.expression", "modulename": "sqlglot.parser", "qualname": "Parser.expression", "kind": "function", "doc": "<p>Creates a new, validated Expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>exp_class:</strong> the expression class to instantiate.</li>\n<li><strong>comments:</strong> an optional list of comments to attach to the expression.</li>\n<li><strong>kwargs:</strong> the arguments to set for the expression along with their respective values.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The target expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">exp_class</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">comments</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.validate_expression": {"fullname": "sqlglot.parser.Parser.validate_expression", "modulename": "sqlglot.parser", "qualname": "Parser.validate_expression", "kind": "function", "doc": "<p>Validates an already instantiated expression, making sure that all its mandatory arguments\nare set.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to validate.</li>\n<li><strong>args:</strong> an optional list of items that was used to instantiate the expression, if it's a Func.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner": {"fullname": "sqlglot.planner", "modulename": "sqlglot.planner", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.planner.Plan": {"fullname": "sqlglot.planner.Plan", "modulename": "sqlglot.planner", "qualname": "Plan", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.planner.Plan.__init__": {"fullname": "sqlglot.planner.Plan.__init__", "modulename": "sqlglot.planner", "qualname": "Plan.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.planner.Step": {"fullname": "sqlglot.planner.Step", "modulename": "sqlglot.planner", "qualname": "Step", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.planner.Step.from_expression": {"fullname": "sqlglot.planner.Step.from_expression", "modulename": "sqlglot.planner", "qualname": "Step.from_expression", "kind": "function", "doc": "<p>Builds a DAG of Steps from a SQL expression so that it's easier to execute in an engine.\nNote: the expression's tables and subqueries must be aliased for this method to work. For\nexample, given the following expression:</p>\n\n<p>SELECT\n x.a,\n SUM(x.b)\nFROM x AS x\nJOIN y AS y\n ON x.a = y.a\nGROUP BY x.a</p>\n\n<p>the following DAG is produced (the expression IDs might differ per execution):</p>\n\n<ul>\n<li>Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n<ul>\n<li>x.a</li>\n<li>\"x\".\"\"\nDependencies:\n<ul>\n<li>Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:</li>\n</ul></li>\n<li>Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:</li>\n<li>Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:</li>\n</ul></li>\n</ul>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to build the DAG from.</li>\n<li><strong>ctes:</strong> a dictionary that maps CTEs to their corresponding Step DAG by name.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A Step DAG corresponding to <code>expression</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Step.add_dependency": {"fullname": "sqlglot.planner.Step.add_dependency", "modulename": "sqlglot.planner", "qualname": "Step.add_dependency", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dependency</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Step.to_s": {"fullname": "sqlglot.planner.Step.to_s", "modulename": "sqlglot.planner", "qualname": "Step.to_s", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">level</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">0</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Scan": {"fullname": "sqlglot.planner.Scan", "modulename": "sqlglot.planner", "qualname": "Scan", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.Scan.from_expression": {"fullname": "sqlglot.planner.Scan.from_expression", "modulename": "sqlglot.planner", "qualname": "Scan.from_expression", "kind": "function", "doc": "<p>Builds a DAG of Steps from a SQL expression so that it's easier to execute in an engine.\nNote: the expression's tables and subqueries must be aliased for this method to work. For\nexample, given the following expression:</p>\n\n<p>SELECT\n x.a,\n SUM(x.b)\nFROM x AS x\nJOIN y AS y\n ON x.a = y.a\nGROUP BY x.a</p>\n\n<p>the following DAG is produced (the expression IDs might differ per execution):</p>\n\n<ul>\n<li>Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n<ul>\n<li>x.a</li>\n<li>\"x\".\"\"\nDependencies:\n<ul>\n<li>Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:</li>\n</ul></li>\n<li>Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:</li>\n<li>Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:</li>\n</ul></li>\n</ul>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to build the DAG from.</li>\n<li><strong>ctes:</strong> a dictionary that maps CTEs to their corresponding Step DAG by name.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A Step DAG corresponding to <code>expression</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Join": {"fullname": "sqlglot.planner.Join", "modulename": "sqlglot.planner", "qualname": "Join", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.Join.from_joins": {"fullname": "sqlglot.planner.Join.from_joins", "modulename": "sqlglot.planner", "qualname": "Join.from_joins", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">joins</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Join</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Aggregate": {"fullname": "sqlglot.planner.Aggregate", "modulename": "sqlglot.planner", "qualname": "Aggregate", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.Sort": {"fullname": "sqlglot.planner.Sort", "modulename": "sqlglot.planner", "qualname": "Sort", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.SetOperation": {"fullname": "sqlglot.planner.SetOperation", "modulename": "sqlglot.planner", "qualname": "SetOperation", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.SetOperation.__init__": {"fullname": "sqlglot.planner.SetOperation.__init__", "modulename": "sqlglot.planner", "qualname": "SetOperation.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">left</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">right</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">distinct</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span>)</span>"}, "sqlglot.planner.SetOperation.from_expression": {"fullname": "sqlglot.planner.SetOperation.from_expression", "modulename": "sqlglot.planner", "qualname": "SetOperation.from_expression", "kind": "function", "doc": "<p>Builds a DAG of Steps from a SQL expression so that it's easier to execute in an engine.\nNote: the expression's tables and subqueries must be aliased for this method to work. For\nexample, given the following expression:</p>\n\n<p>SELECT\n x.a,\n SUM(x.b)\nFROM x AS x\nJOIN y AS y\n ON x.a = y.a\nGROUP BY x.a</p>\n\n<p>the following DAG is produced (the expression IDs might differ per execution):</p>\n\n<ul>\n<li>Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n<ul>\n<li>x.a</li>\n<li>\"x\".\"\"\nDependencies:\n<ul>\n<li>Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:</li>\n</ul></li>\n<li>Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:</li>\n<li>Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:</li>\n</ul></li>\n</ul>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to build the DAG from.</li>\n<li><strong>ctes:</strong> a dictionary that maps CTEs to their corresponding Step DAG by name.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A Step DAG corresponding to <code>expression</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema": {"fullname": "sqlglot.schema.Schema", "modulename": "sqlglot.schema", "qualname": "Schema", "kind": "class", "doc": "<p>Abstract base class for database schemas</p>\n", "bases": "abc.ABC"}, "sqlglot.schema.Schema.add_table": {"fullname": "sqlglot.schema.Schema.add_table", "modulename": "sqlglot.schema", "qualname": "Schema.add_table", "kind": "function", "doc": "<p>Register or update a table. Some implementing classes may require column information to also be provided.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> table expression instance or string representing the table.</li>\n<li><strong>column_mapping:</strong> a column mapping that describes the structure of the table.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column_mapping</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema.column_names": {"fullname": "sqlglot.schema.Schema.column_names", "modulename": "sqlglot.schema", "qualname": "Schema.column_names", "kind": "function", "doc": "<p>Get the column names for a table.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the <code>Table</code> expression instance.</li>\n<li><strong>only_visible:</strong> whether to include invisible columns.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of column names.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">only_visible</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema.get_column_type": {"fullname": "sqlglot.schema.Schema.get_column_type", "modulename": "sqlglot.schema", "qualname": "Schema.get_column_type", "kind": "function", "doc": "<p>Get the <code>sqlglot.exp.DataType</code> type of a column in the schema.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the source table.</li>\n<li><strong>column:</strong> the target column.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The resulting column type.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema.supported_table_args": {"fullname": "sqlglot.schema.Schema.supported_table_args", "modulename": "sqlglot.schema", "qualname": "Schema.supported_table_args", "kind": "variable", "doc": "<p>Table arguments this schema support, e.g. <code>(\"this\", \"db\", \"catalog\")</code></p>\n", "annotation": ": Tuple[str, ...]"}, "sqlglot.schema.AbstractMappingSchema": {"fullname": "sqlglot.schema.AbstractMappingSchema", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema", "kind": "class", "doc": "<p>Abstract base class for generic types.</p>\n\n<p>A generic type is typically declared by inheriting from\nthis class parameterized with one or more type variables.\nFor example, a generic mapping type might be defined as::</p>\n\n<p>class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.</p>\n\n<p>This class can then be used as follows::</p>\n\n<p>def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default</p>\n", "bases": "typing.Generic[~T]"}, "sqlglot.schema.AbstractMappingSchema.__init__": {"fullname": "sqlglot.schema.AbstractMappingSchema.__init__", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">mapping</span><span class=\"p\">:</span> <span class=\"nb\">dict</span> <span class=\"o\">|</span> <span class=\"kc\">None</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"fullname": "sqlglot.schema.AbstractMappingSchema.table_parts", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.table_parts", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.AbstractMappingSchema.find": {"fullname": "sqlglot.schema.AbstractMappingSchema.find", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.find", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>,</span><span class=\"param\">\t<span class=\"n\">trie</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">raise_on_missing</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema": {"fullname": "sqlglot.schema.MappingSchema", "modulename": "sqlglot.schema", "qualname": "MappingSchema", "kind": "class", "doc": "<p>Schema based on a nested mapping.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>schema (dict):</strong> Mapping in one of the following forms:\n<ol>\n<li>{table: {col: type}}</li>\n<li>{db: {table: {col: type}}}</li>\n<li>{catalog: {db: {table: {col: type}}}}</li>\n<li>None - Tables will be added later</li>\n</ol></li>\n<li><strong>visible (dict):</strong> Optional mapping of which columns in the schema are visible. If not provided, all columns\nare assumed to be visible. The nesting should mirror that of the schema:\n<ol>\n<li>{table: set(<em>cols)}}</li>\n<li>{db: {table: set(</em>cols)}}}</li>\n<li>{catalog: {db: {table: set(*cols)}}}}</li>\n</ol></li>\n<li><strong>dialect (str):</strong> The dialect to be used for custom type mappings.</li>\n</ul>\n", "bases": "sqlglot.schema.AbstractMappingSchema[typing.Dict[str, str]], Schema"}, "sqlglot.schema.MappingSchema.__init__": {"fullname": "sqlglot.schema.MappingSchema.__init__", "modulename": "sqlglot.schema", "qualname": "MappingSchema.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">visible</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"fullname": "sqlglot.schema.MappingSchema.from_mapping_schema", "modulename": "sqlglot.schema", "qualname": "MappingSchema.from_mapping_schema", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">mapping_schema</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">MappingSchema</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">MappingSchema</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.copy": {"fullname": "sqlglot.schema.MappingSchema.copy", "modulename": "sqlglot.schema", "qualname": "MappingSchema.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">MappingSchema</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.add_table": {"fullname": "sqlglot.schema.MappingSchema.add_table", "modulename": "sqlglot.schema", "qualname": "MappingSchema.add_table", "kind": "function", "doc": "<p>Register or update a table. Updates are only performed if a new column mapping is provided.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the <code>Table</code> expression instance or string representing the table.</li>\n<li><strong>column_mapping:</strong> a column mapping that describes the structure of the table.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column_mapping</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.column_names": {"fullname": "sqlglot.schema.MappingSchema.column_names", "modulename": "sqlglot.schema", "qualname": "MappingSchema.column_names", "kind": "function", "doc": "<p>Get the column names for a table.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the <code>Table</code> expression instance.</li>\n<li><strong>only_visible:</strong> whether to include invisible columns.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of column names.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">only_visible</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.get_column_type": {"fullname": "sqlglot.schema.MappingSchema.get_column_type", "modulename": "sqlglot.schema", "qualname": "MappingSchema.get_column_type", "kind": "function", "doc": "<p>Get the <code>sqlglot.exp.DataType</code> type of a column in the schema.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the source table.</li>\n<li><strong>column:</strong> the target column.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The resulting column type.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span> <span class=\"o\">|</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.ensure_schema": {"fullname": "sqlglot.schema.ensure_schema", "modulename": "sqlglot.schema", "qualname": "ensure_schema", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.ensure_column_mapping": {"fullname": "sqlglot.schema.ensure_column_mapping", "modulename": "sqlglot.schema", "qualname": "ensure_column_mapping", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">mapping</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.schema.flatten_schema": {"fullname": "sqlglot.schema.flatten_schema", "modulename": "sqlglot.schema", "qualname": "flatten_schema", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Dict</span>,</span><span class=\"param\">\t<span class=\"n\">depth</span><span class=\"p\">:</span> <span class=\"nb\">int</span>,</span><span class=\"param\">\t<span class=\"n\">keys</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.serde": {"fullname": "sqlglot.serde", "modulename": "sqlglot.serde", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.serde.dump": {"fullname": "sqlglot.serde.dump", "modulename": "sqlglot.serde", "qualname": "dump", "kind": "function", "doc": "<p>Recursively dump an AST into a JSON-serializable dict.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">ForwardRef</span><span class=\"p\">(</span><span class=\"s1\">'Node'</span><span class=\"p\">)],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.serde.load": {"fullname": "sqlglot.serde.load", "modulename": "sqlglot.serde", "qualname": "load", "kind": "function", "doc": "<p>Recursively load a dict (as returned by <code>dump</code>) into an AST.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">obj</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">ForwardRef</span><span class=\"p\">(</span><span class=\"s1\">'Node'</span><span class=\"p\">)],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.time": {"fullname": "sqlglot.time", "modulename": "sqlglot.time", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.time.format_time": {"fullname": "sqlglot.time.format_time", "modulename": "sqlglot.time", "qualname": "format_time", "kind": "function", "doc": "<p>Converts a time string given a mapping.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">format_time</span><span class=\"p\">(</span><span class=\"s2\">"%Y"</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s2\">"%Y"</span><span class=\"p\">:</span> <span class=\"s2\">"YYYY"</span><span class=\"p\">})</span>\n<span class=\"go\">'YYYY'</span>\n</code></pre>\n </div>\n \n <p>Args:\n mapping: dictionary of time format to target time format.\n trie: optional trie, can be passed in for performance.</p>\n \n <p>Returns:\n The converted time string.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">string</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">mapping</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">trie</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens": {"fullname": "sqlglot.tokens", "modulename": "sqlglot.tokens", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.tokens.TokenType": {"fullname": "sqlglot.tokens.TokenType", "modulename": "sqlglot.tokens", "qualname": "TokenType", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.tokens.TokenType.L_PAREN": {"fullname": "sqlglot.tokens.TokenType.L_PAREN", "modulename": "sqlglot.tokens", "qualname": "TokenType.L_PAREN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.L_PAREN: 'L_PAREN'>"}, "sqlglot.tokens.TokenType.R_PAREN": {"fullname": "sqlglot.tokens.TokenType.R_PAREN", "modulename": "sqlglot.tokens", "qualname": "TokenType.R_PAREN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.R_PAREN: 'R_PAREN'>"}, "sqlglot.tokens.TokenType.L_BRACKET": {"fullname": "sqlglot.tokens.TokenType.L_BRACKET", "modulename": "sqlglot.tokens", "qualname": "TokenType.L_BRACKET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.L_BRACKET: 'L_BRACKET'>"}, "sqlglot.tokens.TokenType.R_BRACKET": {"fullname": "sqlglot.tokens.TokenType.R_BRACKET", "modulename": "sqlglot.tokens", "qualname": "TokenType.R_BRACKET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.R_BRACKET: 'R_BRACKET'>"}, "sqlglot.tokens.TokenType.L_BRACE": {"fullname": "sqlglot.tokens.TokenType.L_BRACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.L_BRACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.L_BRACE: 'L_BRACE'>"}, "sqlglot.tokens.TokenType.R_BRACE": {"fullname": "sqlglot.tokens.TokenType.R_BRACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.R_BRACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.R_BRACE: 'R_BRACE'>"}, "sqlglot.tokens.TokenType.COMMA": {"fullname": "sqlglot.tokens.TokenType.COMMA", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMA: 'COMMA'>"}, "sqlglot.tokens.TokenType.DOT": {"fullname": "sqlglot.tokens.TokenType.DOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DOT: 'DOT'>"}, "sqlglot.tokens.TokenType.DASH": {"fullname": "sqlglot.tokens.TokenType.DASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.DASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DASH: 'DASH'>"}, "sqlglot.tokens.TokenType.PLUS": {"fullname": "sqlglot.tokens.TokenType.PLUS", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLUS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PLUS: 'PLUS'>"}, "sqlglot.tokens.TokenType.COLON": {"fullname": "sqlglot.tokens.TokenType.COLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLON: 'COLON'>"}, "sqlglot.tokens.TokenType.DCOLON": {"fullname": "sqlglot.tokens.TokenType.DCOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.DCOLON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DCOLON: 'DCOLON'>"}, "sqlglot.tokens.TokenType.SEMICOLON": {"fullname": "sqlglot.tokens.TokenType.SEMICOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMICOLON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEMICOLON: 'SEMICOLON'>"}, "sqlglot.tokens.TokenType.STAR": {"fullname": "sqlglot.tokens.TokenType.STAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.STAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.STAR: 'STAR'>"}, "sqlglot.tokens.TokenType.BACKSLASH": {"fullname": "sqlglot.tokens.TokenType.BACKSLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.BACKSLASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BACKSLASH: 'BACKSLASH'>"}, "sqlglot.tokens.TokenType.SLASH": {"fullname": "sqlglot.tokens.TokenType.SLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.SLASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SLASH: 'SLASH'>"}, "sqlglot.tokens.TokenType.LT": {"fullname": "sqlglot.tokens.TokenType.LT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LT: 'LT'>"}, "sqlglot.tokens.TokenType.LTE": {"fullname": "sqlglot.tokens.TokenType.LTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LTE: 'LTE'>"}, "sqlglot.tokens.TokenType.GT": {"fullname": "sqlglot.tokens.TokenType.GT", "modulename": "sqlglot.tokens", "qualname": "TokenType.GT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GT: 'GT'>"}, "sqlglot.tokens.TokenType.GTE": {"fullname": "sqlglot.tokens.TokenType.GTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.GTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GTE: 'GTE'>"}, "sqlglot.tokens.TokenType.NOT": {"fullname": "sqlglot.tokens.TokenType.NOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NOT: 'NOT'>"}, "sqlglot.tokens.TokenType.EQ": {"fullname": "sqlglot.tokens.TokenType.EQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.EQ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EQ: 'EQ'>"}, "sqlglot.tokens.TokenType.NEQ": {"fullname": "sqlglot.tokens.TokenType.NEQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEQ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NEQ: 'NEQ'>"}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"fullname": "sqlglot.tokens.TokenType.NULLSAFE_EQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLSAFE_EQ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLSAFE_EQ: 'NULLSAFE_EQ'>"}, "sqlglot.tokens.TokenType.AND": {"fullname": "sqlglot.tokens.TokenType.AND", "modulename": "sqlglot.tokens", "qualname": "TokenType.AND", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AND: 'AND'>"}, "sqlglot.tokens.TokenType.OR": {"fullname": "sqlglot.tokens.TokenType.OR", "modulename": "sqlglot.tokens", "qualname": "TokenType.OR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OR: 'OR'>"}, "sqlglot.tokens.TokenType.AMP": {"fullname": "sqlglot.tokens.TokenType.AMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.AMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AMP: 'AMP'>"}, "sqlglot.tokens.TokenType.DPIPE": {"fullname": "sqlglot.tokens.TokenType.DPIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DPIPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DPIPE: 'DPIPE'>"}, "sqlglot.tokens.TokenType.PIPE": {"fullname": "sqlglot.tokens.TokenType.PIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PIPE: 'PIPE'>"}, "sqlglot.tokens.TokenType.CARET": {"fullname": "sqlglot.tokens.TokenType.CARET", "modulename": "sqlglot.tokens", "qualname": "TokenType.CARET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CARET: 'CARET'>"}, "sqlglot.tokens.TokenType.TILDA": {"fullname": "sqlglot.tokens.TokenType.TILDA", "modulename": "sqlglot.tokens", "qualname": "TokenType.TILDA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TILDA: 'TILDA'>"}, "sqlglot.tokens.TokenType.ARROW": {"fullname": "sqlglot.tokens.TokenType.ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ARROW: 'ARROW'>"}, "sqlglot.tokens.TokenType.DARROW": {"fullname": "sqlglot.tokens.TokenType.DARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.DARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DARROW: 'DARROW'>"}, "sqlglot.tokens.TokenType.FARROW": {"fullname": "sqlglot.tokens.TokenType.FARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.FARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FARROW: 'FARROW'>"}, "sqlglot.tokens.TokenType.HASH": {"fullname": "sqlglot.tokens.TokenType.HASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HASH: 'HASH'>"}, "sqlglot.tokens.TokenType.HASH_ARROW": {"fullname": "sqlglot.tokens.TokenType.HASH_ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.HASH_ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HASH_ARROW: 'HASH_ARROW'>"}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"fullname": "sqlglot.tokens.TokenType.DHASH_ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.DHASH_ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DHASH_ARROW: 'DHASH_ARROW'>"}, "sqlglot.tokens.TokenType.LR_ARROW": {"fullname": "sqlglot.tokens.TokenType.LR_ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.LR_ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LR_ARROW: 'LR_ARROW'>"}, "sqlglot.tokens.TokenType.LT_AT": {"fullname": "sqlglot.tokens.TokenType.LT_AT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LT_AT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LT_AT: 'LT_AT'>"}, "sqlglot.tokens.TokenType.AT_GT": {"fullname": "sqlglot.tokens.TokenType.AT_GT", "modulename": "sqlglot.tokens", "qualname": "TokenType.AT_GT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AT_GT: 'AT_GT'>"}, "sqlglot.tokens.TokenType.DOLLAR": {"fullname": "sqlglot.tokens.TokenType.DOLLAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOLLAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DOLLAR: 'DOLLAR'>"}, "sqlglot.tokens.TokenType.PARAMETER": {"fullname": "sqlglot.tokens.TokenType.PARAMETER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARAMETER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PARAMETER: 'PARAMETER'>"}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"fullname": "sqlglot.tokens.TokenType.SESSION_PARAMETER", "modulename": "sqlglot.tokens", "qualname": "TokenType.SESSION_PARAMETER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SESSION_PARAMETER: 'SESSION_PARAMETER'>"}, "sqlglot.tokens.TokenType.NATIONAL": {"fullname": "sqlglot.tokens.TokenType.NATIONAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATIONAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NATIONAL: 'NATIONAL'>"}, "sqlglot.tokens.TokenType.DAMP": {"fullname": "sqlglot.tokens.TokenType.DAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DAMP: 'DAMP'>"}, "sqlglot.tokens.TokenType.BLOCK_START": {"fullname": "sqlglot.tokens.TokenType.BLOCK_START", "modulename": "sqlglot.tokens", "qualname": "TokenType.BLOCK_START", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BLOCK_START: 'BLOCK_START'>"}, "sqlglot.tokens.TokenType.BLOCK_END": {"fullname": "sqlglot.tokens.TokenType.BLOCK_END", "modulename": "sqlglot.tokens", "qualname": "TokenType.BLOCK_END", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BLOCK_END: 'BLOCK_END'>"}, "sqlglot.tokens.TokenType.SPACE": {"fullname": "sqlglot.tokens.TokenType.SPACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.SPACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SPACE: 'SPACE'>"}, "sqlglot.tokens.TokenType.BREAK": {"fullname": "sqlglot.tokens.TokenType.BREAK", "modulename": "sqlglot.tokens", "qualname": "TokenType.BREAK", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BREAK: 'BREAK'>"}, "sqlglot.tokens.TokenType.STRING": {"fullname": "sqlglot.tokens.TokenType.STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.STRING: 'STRING'>"}, "sqlglot.tokens.TokenType.NUMBER": {"fullname": "sqlglot.tokens.TokenType.NUMBER", "modulename": "sqlglot.tokens", "qualname": "TokenType.NUMBER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NUMBER: 'NUMBER'>"}, "sqlglot.tokens.TokenType.IDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.IDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.IDENTIFIER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IDENTIFIER: 'IDENTIFIER'>"}, "sqlglot.tokens.TokenType.DATABASE": {"fullname": "sqlglot.tokens.TokenType.DATABASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATABASE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DATABASE: 'DATABASE'>"}, "sqlglot.tokens.TokenType.COLUMN": {"fullname": "sqlglot.tokens.TokenType.COLUMN", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLUMN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLUMN: 'COLUMN'>"}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"fullname": "sqlglot.tokens.TokenType.COLUMN_DEF", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLUMN_DEF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLUMN_DEF: 'COLUMN_DEF'>"}, "sqlglot.tokens.TokenType.SCHEMA": {"fullname": "sqlglot.tokens.TokenType.SCHEMA", "modulename": "sqlglot.tokens", "qualname": "TokenType.SCHEMA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SCHEMA: 'SCHEMA'>"}, "sqlglot.tokens.TokenType.TABLE": {"fullname": "sqlglot.tokens.TokenType.TABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TABLE: 'TABLE'>"}, "sqlglot.tokens.TokenType.VAR": {"fullname": "sqlglot.tokens.TokenType.VAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VAR: 'VAR'>"}, "sqlglot.tokens.TokenType.BIT_STRING": {"fullname": "sqlglot.tokens.TokenType.BIT_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIT_STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIT_STRING: 'BIT_STRING'>"}, "sqlglot.tokens.TokenType.HEX_STRING": {"fullname": "sqlglot.tokens.TokenType.HEX_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.HEX_STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HEX_STRING: 'HEX_STRING'>"}, "sqlglot.tokens.TokenType.BYTE_STRING": {"fullname": "sqlglot.tokens.TokenType.BYTE_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.BYTE_STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BYTE_STRING: 'BYTE_STRING'>"}, "sqlglot.tokens.TokenType.BIT": {"fullname": "sqlglot.tokens.TokenType.BIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIT: 'BIT'>"}, "sqlglot.tokens.TokenType.BOOLEAN": {"fullname": "sqlglot.tokens.TokenType.BOOLEAN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BOOLEAN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.tokens.TokenType.TINYINT": {"fullname": "sqlglot.tokens.TokenType.TINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TINYINT: 'TINYINT'>"}, "sqlglot.tokens.TokenType.UTINYINT": {"fullname": "sqlglot.tokens.TokenType.UTINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UTINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UTINYINT: 'UTINYINT'>"}, "sqlglot.tokens.TokenType.SMALLINT": {"fullname": "sqlglot.tokens.TokenType.SMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SMALLINT: 'SMALLINT'>"}, "sqlglot.tokens.TokenType.USMALLINT": {"fullname": "sqlglot.tokens.TokenType.USMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.USMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.USMALLINT: 'USMALLINT'>"}, "sqlglot.tokens.TokenType.INT": {"fullname": "sqlglot.tokens.TokenType.INT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INT: 'INT'>"}, "sqlglot.tokens.TokenType.UINT": {"fullname": "sqlglot.tokens.TokenType.UINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UINT: 'UINT'>"}, "sqlglot.tokens.TokenType.BIGINT": {"fullname": "sqlglot.tokens.TokenType.BIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIGINT: 'BIGINT'>"}, "sqlglot.tokens.TokenType.UBIGINT": {"fullname": "sqlglot.tokens.TokenType.UBIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UBIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UBIGINT: 'UBIGINT'>"}, "sqlglot.tokens.TokenType.FLOAT": {"fullname": "sqlglot.tokens.TokenType.FLOAT", "modulename": "sqlglot.tokens", "qualname": "TokenType.FLOAT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FLOAT: 'FLOAT'>"}, "sqlglot.tokens.TokenType.DOUBLE": {"fullname": "sqlglot.tokens.TokenType.DOUBLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOUBLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DOUBLE: 'DOUBLE'>"}, "sqlglot.tokens.TokenType.DECIMAL": {"fullname": "sqlglot.tokens.TokenType.DECIMAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.DECIMAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DECIMAL: 'DECIMAL'>"}, "sqlglot.tokens.TokenType.CHAR": {"fullname": "sqlglot.tokens.TokenType.CHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.CHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CHAR: 'CHAR'>"}, "sqlglot.tokens.TokenType.NCHAR": {"fullname": "sqlglot.tokens.TokenType.NCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NCHAR: 'NCHAR'>"}, "sqlglot.tokens.TokenType.VARCHAR": {"fullname": "sqlglot.tokens.TokenType.VARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VARCHAR: 'VARCHAR'>"}, "sqlglot.tokens.TokenType.NVARCHAR": {"fullname": "sqlglot.tokens.TokenType.NVARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NVARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.tokens.TokenType.TEXT": {"fullname": "sqlglot.tokens.TokenType.TEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TEXT: 'TEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"fullname": "sqlglot.tokens.TokenType.MEDIUMTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.tokens.TokenType.LONGTEXT": {"fullname": "sqlglot.tokens.TokenType.LONGTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"fullname": "sqlglot.tokens.TokenType.MEDIUMBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.tokens.TokenType.LONGBLOB": {"fullname": "sqlglot.tokens.TokenType.LONGBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.tokens.TokenType.BINARY": {"fullname": "sqlglot.tokens.TokenType.BINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.BINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BINARY: 'BINARY'>"}, "sqlglot.tokens.TokenType.VARBINARY": {"fullname": "sqlglot.tokens.TokenType.VARBINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARBINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VARBINARY: 'VARBINARY'>"}, "sqlglot.tokens.TokenType.JSON": {"fullname": "sqlglot.tokens.TokenType.JSON", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JSON: 'JSON'>"}, "sqlglot.tokens.TokenType.JSONB": {"fullname": "sqlglot.tokens.TokenType.JSONB", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSONB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JSONB: 'JSONB'>"}, "sqlglot.tokens.TokenType.TIME": {"fullname": "sqlglot.tokens.TokenType.TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIME: 'TIME'>"}, "sqlglot.tokens.TokenType.TIMESTAMP": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIMESTAMP: 'TIMESTAMP'>"}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>"}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPLTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPLTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.tokens.TokenType.DATETIME": {"fullname": "sqlglot.tokens.TokenType.DATETIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATETIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DATETIME: 'DATETIME'>"}, "sqlglot.tokens.TokenType.DATE": {"fullname": "sqlglot.tokens.TokenType.DATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DATE: 'DATE'>"}, "sqlglot.tokens.TokenType.UUID": {"fullname": "sqlglot.tokens.TokenType.UUID", "modulename": "sqlglot.tokens", "qualname": "TokenType.UUID", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UUID: 'UUID'>"}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"fullname": "sqlglot.tokens.TokenType.GEOGRAPHY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOGRAPHY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GEOGRAPHY: 'GEOGRAPHY'>"}, "sqlglot.tokens.TokenType.NULLABLE": {"fullname": "sqlglot.tokens.TokenType.NULLABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLABLE: 'NULLABLE'>"}, "sqlglot.tokens.TokenType.GEOMETRY": {"fullname": "sqlglot.tokens.TokenType.GEOMETRY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOMETRY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.tokens.TokenType.HLLSKETCH": {"fullname": "sqlglot.tokens.TokenType.HLLSKETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HLLSKETCH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HLLSKETCH: 'HLLSKETCH'>"}, "sqlglot.tokens.TokenType.HSTORE": {"fullname": "sqlglot.tokens.TokenType.HSTORE", "modulename": "sqlglot.tokens", "qualname": "TokenType.HSTORE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HSTORE: 'HSTORE'>"}, "sqlglot.tokens.TokenType.SUPER": {"fullname": "sqlglot.tokens.TokenType.SUPER", "modulename": "sqlglot.tokens", "qualname": "TokenType.SUPER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SUPER: 'SUPER'>"}, "sqlglot.tokens.TokenType.SERIAL": {"fullname": "sqlglot.tokens.TokenType.SERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SERIAL: 'SERIAL'>"}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"fullname": "sqlglot.tokens.TokenType.SMALLSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.tokens.TokenType.BIGSERIAL": {"fullname": "sqlglot.tokens.TokenType.BIGSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.tokens.TokenType.XML": {"fullname": "sqlglot.tokens.TokenType.XML", "modulename": "sqlglot.tokens", "qualname": "TokenType.XML", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.XML: 'XML'>"}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUEIDENTIFIER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.tokens.TokenType.MONEY": {"fullname": "sqlglot.tokens.TokenType.MONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.MONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MONEY: 'MONEY'>"}, "sqlglot.tokens.TokenType.SMALLMONEY": {"fullname": "sqlglot.tokens.TokenType.SMALLMONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLMONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.tokens.TokenType.ROWVERSION": {"fullname": "sqlglot.tokens.TokenType.ROWVERSION", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWVERSION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.tokens.TokenType.IMAGE": {"fullname": "sqlglot.tokens.TokenType.IMAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IMAGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IMAGE: 'IMAGE'>"}, "sqlglot.tokens.TokenType.VARIANT": {"fullname": "sqlglot.tokens.TokenType.VARIANT", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARIANT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VARIANT: 'VARIANT'>"}, "sqlglot.tokens.TokenType.OBJECT": {"fullname": "sqlglot.tokens.TokenType.OBJECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.OBJECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OBJECT: 'OBJECT'>"}, "sqlglot.tokens.TokenType.INET": {"fullname": "sqlglot.tokens.TokenType.INET", "modulename": "sqlglot.tokens", "qualname": "TokenType.INET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INET: 'INET'>"}, "sqlglot.tokens.TokenType.ALIAS": {"fullname": "sqlglot.tokens.TokenType.ALIAS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALIAS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALIAS: 'ALIAS'>"}, "sqlglot.tokens.TokenType.ALTER": {"fullname": "sqlglot.tokens.TokenType.ALTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALTER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALTER: 'ALTER'>"}, "sqlglot.tokens.TokenType.ALWAYS": {"fullname": "sqlglot.tokens.TokenType.ALWAYS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALWAYS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALWAYS: 'ALWAYS'>"}, "sqlglot.tokens.TokenType.ALL": {"fullname": "sqlglot.tokens.TokenType.ALL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALL: 'ALL'>"}, "sqlglot.tokens.TokenType.ANTI": {"fullname": "sqlglot.tokens.TokenType.ANTI", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANTI", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ANTI: 'ANTI'>"}, "sqlglot.tokens.TokenType.ANY": {"fullname": "sqlglot.tokens.TokenType.ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ANY: 'ANY'>"}, "sqlglot.tokens.TokenType.APPLY": {"fullname": "sqlglot.tokens.TokenType.APPLY", "modulename": "sqlglot.tokens", "qualname": "TokenType.APPLY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.APPLY: 'APPLY'>"}, "sqlglot.tokens.TokenType.ARRAY": {"fullname": "sqlglot.tokens.TokenType.ARRAY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARRAY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ARRAY: 'ARRAY'>"}, "sqlglot.tokens.TokenType.ASC": {"fullname": "sqlglot.tokens.TokenType.ASC", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASC", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ASC: 'ASC'>"}, "sqlglot.tokens.TokenType.ASOF": {"fullname": "sqlglot.tokens.TokenType.ASOF", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASOF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ASOF: 'ASOF'>"}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.AT_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.AT_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AT_TIME_ZONE: 'AT_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"fullname": "sqlglot.tokens.TokenType.AUTO_INCREMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.AUTO_INCREMENT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AUTO_INCREMENT: 'AUTO_INCREMENT'>"}, "sqlglot.tokens.TokenType.BEGIN": {"fullname": "sqlglot.tokens.TokenType.BEGIN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BEGIN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BEGIN: 'BEGIN'>"}, "sqlglot.tokens.TokenType.BETWEEN": {"fullname": "sqlglot.tokens.TokenType.BETWEEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BETWEEN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BETWEEN: 'BETWEEN'>"}, "sqlglot.tokens.TokenType.BOTH": {"fullname": "sqlglot.tokens.TokenType.BOTH", "modulename": "sqlglot.tokens", "qualname": "TokenType.BOTH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BOTH: 'BOTH'>"}, "sqlglot.tokens.TokenType.BUCKET": {"fullname": "sqlglot.tokens.TokenType.BUCKET", "modulename": "sqlglot.tokens", "qualname": "TokenType.BUCKET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BUCKET: 'BUCKET'>"}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"fullname": "sqlglot.tokens.TokenType.BY_DEFAULT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BY_DEFAULT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BY_DEFAULT: 'BY_DEFAULT'>"}, "sqlglot.tokens.TokenType.CACHE": {"fullname": "sqlglot.tokens.TokenType.CACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CACHE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CACHE: 'CACHE'>"}, "sqlglot.tokens.TokenType.CASCADE": {"fullname": "sqlglot.tokens.TokenType.CASCADE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CASCADE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CASCADE: 'CASCADE'>"}, "sqlglot.tokens.TokenType.CASE": {"fullname": "sqlglot.tokens.TokenType.CASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CASE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CASE: 'CASE'>"}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"fullname": "sqlglot.tokens.TokenType.CHARACTER_SET", "modulename": "sqlglot.tokens", "qualname": "TokenType.CHARACTER_SET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CHARACTER_SET: 'CHARACTER_SET'>"}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"fullname": "sqlglot.tokens.TokenType.CLUSTER_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.CLUSTER_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CLUSTER_BY: 'CLUSTER_BY'>"}, "sqlglot.tokens.TokenType.COLLATE": {"fullname": "sqlglot.tokens.TokenType.COLLATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLLATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLLATE: 'COLLATE'>"}, "sqlglot.tokens.TokenType.COMMAND": {"fullname": "sqlglot.tokens.TokenType.COMMAND", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMAND", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMAND: 'COMMAND'>"}, "sqlglot.tokens.TokenType.COMMENT": {"fullname": "sqlglot.tokens.TokenType.COMMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMENT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMENT: 'COMMENT'>"}, "sqlglot.tokens.TokenType.COMMIT": {"fullname": "sqlglot.tokens.TokenType.COMMIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMIT: 'COMMIT'>"}, "sqlglot.tokens.TokenType.COMPOUND": {"fullname": "sqlglot.tokens.TokenType.COMPOUND", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMPOUND", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMPOUND: 'COMPOUND'>"}, "sqlglot.tokens.TokenType.CONSTRAINT": {"fullname": "sqlglot.tokens.TokenType.CONSTRAINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.CONSTRAINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CONSTRAINT: 'CONSTRAINT'>"}, "sqlglot.tokens.TokenType.CREATE": {"fullname": "sqlglot.tokens.TokenType.CREATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CREATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CREATE: 'CREATE'>"}, "sqlglot.tokens.TokenType.CROSS": {"fullname": "sqlglot.tokens.TokenType.CROSS", "modulename": "sqlglot.tokens", "qualname": "TokenType.CROSS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CROSS: 'CROSS'>"}, "sqlglot.tokens.TokenType.CUBE": {"fullname": "sqlglot.tokens.TokenType.CUBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CUBE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CUBE: 'CUBE'>"}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"fullname": "sqlglot.tokens.TokenType.CURRENT_DATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_DATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_DATE: 'CURRENT_DATE'>"}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"fullname": "sqlglot.tokens.TokenType.CURRENT_DATETIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_DATETIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_DATETIME: 'CURRENT_DATETIME'>"}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"fullname": "sqlglot.tokens.TokenType.CURRENT_ROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_ROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_ROW: 'CURRENT_ROW'>"}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"fullname": "sqlglot.tokens.TokenType.CURRENT_TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_TIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_TIME: 'CURRENT_TIME'>"}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"fullname": "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_TIMESTAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>"}, "sqlglot.tokens.TokenType.DEFAULT": {"fullname": "sqlglot.tokens.TokenType.DEFAULT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DEFAULT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DEFAULT: 'DEFAULT'>"}, "sqlglot.tokens.TokenType.DELETE": {"fullname": "sqlglot.tokens.TokenType.DELETE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DELETE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DELETE: 'DELETE'>"}, "sqlglot.tokens.TokenType.DESC": {"fullname": "sqlglot.tokens.TokenType.DESC", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESC", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DESC: 'DESC'>"}, "sqlglot.tokens.TokenType.DESCRIBE": {"fullname": "sqlglot.tokens.TokenType.DESCRIBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESCRIBE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DESCRIBE: 'DESCRIBE'>"}, "sqlglot.tokens.TokenType.DISTINCT": {"fullname": "sqlglot.tokens.TokenType.DISTINCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTINCT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DISTINCT: 'DISTINCT'>"}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"fullname": "sqlglot.tokens.TokenType.DISTINCT_FROM", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTINCT_FROM", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DISTINCT_FROM: 'DISTINCT_FROM'>"}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"fullname": "sqlglot.tokens.TokenType.DISTRIBUTE_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTRIBUTE_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DISTRIBUTE_BY: 'DISTRIBUTE_BY'>"}, "sqlglot.tokens.TokenType.DIV": {"fullname": "sqlglot.tokens.TokenType.DIV", "modulename": "sqlglot.tokens", "qualname": "TokenType.DIV", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DIV: 'DIV'>"}, "sqlglot.tokens.TokenType.DROP": {"fullname": "sqlglot.tokens.TokenType.DROP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DROP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DROP: 'DROP'>"}, "sqlglot.tokens.TokenType.ELSE": {"fullname": "sqlglot.tokens.TokenType.ELSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ELSE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ELSE: 'ELSE'>"}, "sqlglot.tokens.TokenType.END": {"fullname": "sqlglot.tokens.TokenType.END", "modulename": "sqlglot.tokens", "qualname": "TokenType.END", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.END: 'END'>"}, "sqlglot.tokens.TokenType.ESCAPE": {"fullname": "sqlglot.tokens.TokenType.ESCAPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ESCAPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ESCAPE: 'ESCAPE'>"}, "sqlglot.tokens.TokenType.EXCEPT": {"fullname": "sqlglot.tokens.TokenType.EXCEPT", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXCEPT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EXCEPT: 'EXCEPT'>"}, "sqlglot.tokens.TokenType.EXECUTE": {"fullname": "sqlglot.tokens.TokenType.EXECUTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXECUTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EXECUTE: 'EXECUTE'>"}, "sqlglot.tokens.TokenType.EXISTS": {"fullname": "sqlglot.tokens.TokenType.EXISTS", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXISTS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EXISTS: 'EXISTS'>"}, "sqlglot.tokens.TokenType.FALSE": {"fullname": "sqlglot.tokens.TokenType.FALSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.FALSE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FALSE: 'FALSE'>"}, "sqlglot.tokens.TokenType.FETCH": {"fullname": "sqlglot.tokens.TokenType.FETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.FETCH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FETCH: 'FETCH'>"}, "sqlglot.tokens.TokenType.FILTER": {"fullname": "sqlglot.tokens.TokenType.FILTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.FILTER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FILTER: 'FILTER'>"}, "sqlglot.tokens.TokenType.FINAL": {"fullname": "sqlglot.tokens.TokenType.FINAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FINAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FINAL: 'FINAL'>"}, "sqlglot.tokens.TokenType.FIRST": {"fullname": "sqlglot.tokens.TokenType.FIRST", "modulename": "sqlglot.tokens", "qualname": "TokenType.FIRST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FIRST: 'FIRST'>"}, "sqlglot.tokens.TokenType.FOLLOWING": {"fullname": "sqlglot.tokens.TokenType.FOLLOWING", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOLLOWING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FOLLOWING: 'FOLLOWING'>"}, "sqlglot.tokens.TokenType.FOR": {"fullname": "sqlglot.tokens.TokenType.FOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FOR: 'FOR'>"}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"fullname": "sqlglot.tokens.TokenType.FOREIGN_KEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOREIGN_KEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FOREIGN_KEY: 'FOREIGN_KEY'>"}, "sqlglot.tokens.TokenType.FORMAT": {"fullname": "sqlglot.tokens.TokenType.FORMAT", "modulename": "sqlglot.tokens", "qualname": "TokenType.FORMAT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FORMAT: 'FORMAT'>"}, "sqlglot.tokens.TokenType.FROM": {"fullname": "sqlglot.tokens.TokenType.FROM", "modulename": "sqlglot.tokens", "qualname": "TokenType.FROM", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FROM: 'FROM'>"}, "sqlglot.tokens.TokenType.FULL": {"fullname": "sqlglot.tokens.TokenType.FULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FULL: 'FULL'>"}, "sqlglot.tokens.TokenType.FUNCTION": {"fullname": "sqlglot.tokens.TokenType.FUNCTION", "modulename": "sqlglot.tokens", "qualname": "TokenType.FUNCTION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FUNCTION: 'FUNCTION'>"}, "sqlglot.tokens.TokenType.GLOB": {"fullname": "sqlglot.tokens.TokenType.GLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GLOB: 'GLOB'>"}, "sqlglot.tokens.TokenType.GLOBAL": {"fullname": "sqlglot.tokens.TokenType.GLOBAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOBAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GLOBAL: 'GLOBAL'>"}, "sqlglot.tokens.TokenType.GROUP_BY": {"fullname": "sqlglot.tokens.TokenType.GROUP_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GROUP_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GROUP_BY: 'GROUP_BY'>"}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"fullname": "sqlglot.tokens.TokenType.GROUPING_SETS", "modulename": "sqlglot.tokens", "qualname": "TokenType.GROUPING_SETS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GROUPING_SETS: 'GROUPING_SETS'>"}, "sqlglot.tokens.TokenType.HAVING": {"fullname": "sqlglot.tokens.TokenType.HAVING", "modulename": "sqlglot.tokens", "qualname": "TokenType.HAVING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HAVING: 'HAVING'>"}, "sqlglot.tokens.TokenType.HINT": {"fullname": "sqlglot.tokens.TokenType.HINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.HINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HINT: 'HINT'>"}, "sqlglot.tokens.TokenType.IF": {"fullname": "sqlglot.tokens.TokenType.IF", "modulename": "sqlglot.tokens", "qualname": "TokenType.IF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IF: 'IF'>"}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"fullname": "sqlglot.tokens.TokenType.IGNORE_NULLS", "modulename": "sqlglot.tokens", "qualname": "TokenType.IGNORE_NULLS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IGNORE_NULLS: 'IGNORE_NULLS'>"}, "sqlglot.tokens.TokenType.ILIKE": {"fullname": "sqlglot.tokens.TokenType.ILIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ILIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ILIKE: 'ILIKE'>"}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"fullname": "sqlglot.tokens.TokenType.ILIKE_ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ILIKE_ANY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ILIKE_ANY: 'ILIKE_ANY'>"}, "sqlglot.tokens.TokenType.IN": {"fullname": "sqlglot.tokens.TokenType.IN", "modulename": "sqlglot.tokens", "qualname": "TokenType.IN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IN: 'IN'>"}, "sqlglot.tokens.TokenType.INDEX": {"fullname": "sqlglot.tokens.TokenType.INDEX", "modulename": "sqlglot.tokens", "qualname": "TokenType.INDEX", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INDEX: 'INDEX'>"}, "sqlglot.tokens.TokenType.INNER": {"fullname": "sqlglot.tokens.TokenType.INNER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INNER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INNER: 'INNER'>"}, "sqlglot.tokens.TokenType.INSERT": {"fullname": "sqlglot.tokens.TokenType.INSERT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INSERT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INSERT: 'INSERT'>"}, "sqlglot.tokens.TokenType.INTERSECT": {"fullname": "sqlglot.tokens.TokenType.INTERSECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERSECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTERSECT: 'INTERSECT'>"}, "sqlglot.tokens.TokenType.INTERVAL": {"fullname": "sqlglot.tokens.TokenType.INTERVAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERVAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTERVAL: 'INTERVAL'>"}, "sqlglot.tokens.TokenType.INTO": {"fullname": "sqlglot.tokens.TokenType.INTO", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTO: 'INTO'>"}, "sqlglot.tokens.TokenType.INTRODUCER": {"fullname": "sqlglot.tokens.TokenType.INTRODUCER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTRODUCER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTRODUCER: 'INTRODUCER'>"}, "sqlglot.tokens.TokenType.IRLIKE": {"fullname": "sqlglot.tokens.TokenType.IRLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IRLIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IRLIKE: 'IRLIKE'>"}, "sqlglot.tokens.TokenType.IS": {"fullname": "sqlglot.tokens.TokenType.IS", "modulename": "sqlglot.tokens", "qualname": "TokenType.IS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IS: 'IS'>"}, "sqlglot.tokens.TokenType.ISNULL": {"fullname": "sqlglot.tokens.TokenType.ISNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ISNULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ISNULL: 'ISNULL'>"}, "sqlglot.tokens.TokenType.JOIN": {"fullname": "sqlglot.tokens.TokenType.JOIN", "modulename": "sqlglot.tokens", "qualname": "TokenType.JOIN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JOIN: 'JOIN'>"}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"fullname": "sqlglot.tokens.TokenType.JOIN_MARKER", "modulename": "sqlglot.tokens", "qualname": "TokenType.JOIN_MARKER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JOIN_MARKER: 'JOIN_MARKER'>"}, "sqlglot.tokens.TokenType.LANGUAGE": {"fullname": "sqlglot.tokens.TokenType.LANGUAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LANGUAGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LANGUAGE: 'LANGUAGE'>"}, "sqlglot.tokens.TokenType.LATERAL": {"fullname": "sqlglot.tokens.TokenType.LATERAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.LATERAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LATERAL: 'LATERAL'>"}, "sqlglot.tokens.TokenType.LAZY": {"fullname": "sqlglot.tokens.TokenType.LAZY", "modulename": "sqlglot.tokens", "qualname": "TokenType.LAZY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LAZY: 'LAZY'>"}, "sqlglot.tokens.TokenType.LEADING": {"fullname": "sqlglot.tokens.TokenType.LEADING", "modulename": "sqlglot.tokens", "qualname": "TokenType.LEADING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LEADING: 'LEADING'>"}, "sqlglot.tokens.TokenType.LEFT": {"fullname": "sqlglot.tokens.TokenType.LEFT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LEFT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LEFT: 'LEFT'>"}, "sqlglot.tokens.TokenType.LIKE": {"fullname": "sqlglot.tokens.TokenType.LIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LIKE: 'LIKE'>"}, "sqlglot.tokens.TokenType.LIKE_ANY": {"fullname": "sqlglot.tokens.TokenType.LIKE_ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIKE_ANY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LIKE_ANY: 'LIKE_ANY'>"}, "sqlglot.tokens.TokenType.LIMIT": {"fullname": "sqlglot.tokens.TokenType.LIMIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIMIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LIMIT: 'LIMIT'>"}, "sqlglot.tokens.TokenType.LOAD_DATA": {"fullname": "sqlglot.tokens.TokenType.LOAD_DATA", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOAD_DATA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LOAD_DATA: 'LOAD_DATA'>"}, "sqlglot.tokens.TokenType.LOCAL": {"fullname": "sqlglot.tokens.TokenType.LOCAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOCAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LOCAL: 'LOCAL'>"}, "sqlglot.tokens.TokenType.MAP": {"fullname": "sqlglot.tokens.TokenType.MAP", "modulename": "sqlglot.tokens", "qualname": "TokenType.MAP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MAP: 'MAP'>"}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"fullname": "sqlglot.tokens.TokenType.MATCH_RECOGNIZE", "modulename": "sqlglot.tokens", "qualname": "TokenType.MATCH_RECOGNIZE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MATCH_RECOGNIZE: 'MATCH_RECOGNIZE'>"}, "sqlglot.tokens.TokenType.MATERIALIZED": {"fullname": "sqlglot.tokens.TokenType.MATERIALIZED", "modulename": "sqlglot.tokens", "qualname": "TokenType.MATERIALIZED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MATERIALIZED: 'MATERIALIZED'>"}, "sqlglot.tokens.TokenType.MERGE": {"fullname": "sqlglot.tokens.TokenType.MERGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.MERGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MERGE: 'MERGE'>"}, "sqlglot.tokens.TokenType.MOD": {"fullname": "sqlglot.tokens.TokenType.MOD", "modulename": "sqlglot.tokens", "qualname": "TokenType.MOD", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MOD: 'MOD'>"}, "sqlglot.tokens.TokenType.NATURAL": {"fullname": "sqlglot.tokens.TokenType.NATURAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATURAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NATURAL: 'NATURAL'>"}, "sqlglot.tokens.TokenType.NEXT": {"fullname": "sqlglot.tokens.TokenType.NEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NEXT: 'NEXT'>"}, "sqlglot.tokens.TokenType.NO_ACTION": {"fullname": "sqlglot.tokens.TokenType.NO_ACTION", "modulename": "sqlglot.tokens", "qualname": "TokenType.NO_ACTION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NO_ACTION: 'NO_ACTION'>"}, "sqlglot.tokens.TokenType.NOTNULL": {"fullname": "sqlglot.tokens.TokenType.NOTNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOTNULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NOTNULL: 'NOTNULL'>"}, "sqlglot.tokens.TokenType.NULL": {"fullname": "sqlglot.tokens.TokenType.NULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULL: 'NULL'>"}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"fullname": "sqlglot.tokens.TokenType.NULLS_FIRST", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLS_FIRST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLS_FIRST: 'NULLS_FIRST'>"}, "sqlglot.tokens.TokenType.NULLS_LAST": {"fullname": "sqlglot.tokens.TokenType.NULLS_LAST", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLS_LAST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLS_LAST: 'NULLS_LAST'>"}, "sqlglot.tokens.TokenType.OFFSET": {"fullname": "sqlglot.tokens.TokenType.OFFSET", "modulename": "sqlglot.tokens", "qualname": "TokenType.OFFSET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OFFSET: 'OFFSET'>"}, "sqlglot.tokens.TokenType.ON": {"fullname": "sqlglot.tokens.TokenType.ON", "modulename": "sqlglot.tokens", "qualname": "TokenType.ON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ON: 'ON'>"}, "sqlglot.tokens.TokenType.ONLY": {"fullname": "sqlglot.tokens.TokenType.ONLY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ONLY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ONLY: 'ONLY'>"}, "sqlglot.tokens.TokenType.OPTIONS": {"fullname": "sqlglot.tokens.TokenType.OPTIONS", "modulename": "sqlglot.tokens", "qualname": "TokenType.OPTIONS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OPTIONS: 'OPTIONS'>"}, "sqlglot.tokens.TokenType.ORDER_BY": {"fullname": "sqlglot.tokens.TokenType.ORDER_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDER_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ORDER_BY: 'ORDER_BY'>"}, "sqlglot.tokens.TokenType.ORDERED": {"fullname": "sqlglot.tokens.TokenType.ORDERED", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDERED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ORDERED: 'ORDERED'>"}, "sqlglot.tokens.TokenType.ORDINALITY": {"fullname": "sqlglot.tokens.TokenType.ORDINALITY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDINALITY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ORDINALITY: 'ORDINALITY'>"}, "sqlglot.tokens.TokenType.OUTER": {"fullname": "sqlglot.tokens.TokenType.OUTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OUTER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OUTER: 'OUTER'>"}, "sqlglot.tokens.TokenType.OUT_OF": {"fullname": "sqlglot.tokens.TokenType.OUT_OF", "modulename": "sqlglot.tokens", "qualname": "TokenType.OUT_OF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OUT_OF: 'OUT_OF'>"}, "sqlglot.tokens.TokenType.OVER": {"fullname": "sqlglot.tokens.TokenType.OVER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OVER: 'OVER'>"}, "sqlglot.tokens.TokenType.OVERLAPS": {"fullname": "sqlglot.tokens.TokenType.OVERLAPS", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERLAPS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OVERLAPS: 'OVERLAPS'>"}, "sqlglot.tokens.TokenType.OVERWRITE": {"fullname": "sqlglot.tokens.TokenType.OVERWRITE", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERWRITE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OVERWRITE: 'OVERWRITE'>"}, "sqlglot.tokens.TokenType.PARTITION": {"fullname": "sqlglot.tokens.TokenType.PARTITION", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARTITION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PARTITION: 'PARTITION'>"}, "sqlglot.tokens.TokenType.PARTITION_BY": {"fullname": "sqlglot.tokens.TokenType.PARTITION_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARTITION_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PARTITION_BY: 'PARTITION_BY'>"}, "sqlglot.tokens.TokenType.PERCENT": {"fullname": "sqlglot.tokens.TokenType.PERCENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.PERCENT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PERCENT: 'PERCENT'>"}, "sqlglot.tokens.TokenType.PIVOT": {"fullname": "sqlglot.tokens.TokenType.PIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIVOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PIVOT: 'PIVOT'>"}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"fullname": "sqlglot.tokens.TokenType.PLACEHOLDER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLACEHOLDER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PLACEHOLDER: 'PLACEHOLDER'>"}, "sqlglot.tokens.TokenType.PRECEDING": {"fullname": "sqlglot.tokens.TokenType.PRECEDING", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRECEDING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PRECEDING: 'PRECEDING'>"}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"fullname": "sqlglot.tokens.TokenType.PRIMARY_KEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRIMARY_KEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PRIMARY_KEY: 'PRIMARY_KEY'>"}, "sqlglot.tokens.TokenType.PROCEDURE": {"fullname": "sqlglot.tokens.TokenType.PROCEDURE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PROCEDURE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PROCEDURE: 'PROCEDURE'>"}, "sqlglot.tokens.TokenType.PROPERTIES": {"fullname": "sqlglot.tokens.TokenType.PROPERTIES", "modulename": "sqlglot.tokens", "qualname": "TokenType.PROPERTIES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PROPERTIES: 'PROPERTIES'>"}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"fullname": "sqlglot.tokens.TokenType.PSEUDO_TYPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PSEUDO_TYPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PSEUDO_TYPE: 'PSEUDO_TYPE'>"}, "sqlglot.tokens.TokenType.QUALIFY": {"fullname": "sqlglot.tokens.TokenType.QUALIFY", "modulename": "sqlglot.tokens", "qualname": "TokenType.QUALIFY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.QUALIFY: 'QUALIFY'>"}, "sqlglot.tokens.TokenType.QUOTE": {"fullname": "sqlglot.tokens.TokenType.QUOTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.QUOTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.QUOTE: 'QUOTE'>"}, "sqlglot.tokens.TokenType.RANGE": {"fullname": "sqlglot.tokens.TokenType.RANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RANGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RANGE: 'RANGE'>"}, "sqlglot.tokens.TokenType.RECURSIVE": {"fullname": "sqlglot.tokens.TokenType.RECURSIVE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RECURSIVE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RECURSIVE: 'RECURSIVE'>"}, "sqlglot.tokens.TokenType.REPLACE": {"fullname": "sqlglot.tokens.TokenType.REPLACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.REPLACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.REPLACE: 'REPLACE'>"}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"fullname": "sqlglot.tokens.TokenType.RESPECT_NULLS", "modulename": "sqlglot.tokens", "qualname": "TokenType.RESPECT_NULLS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RESPECT_NULLS: 'RESPECT_NULLS'>"}, "sqlglot.tokens.TokenType.RETURNING": {"fullname": "sqlglot.tokens.TokenType.RETURNING", "modulename": "sqlglot.tokens", "qualname": "TokenType.RETURNING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RETURNING: 'RETURNING'>"}, "sqlglot.tokens.TokenType.REFERENCES": {"fullname": "sqlglot.tokens.TokenType.REFERENCES", "modulename": "sqlglot.tokens", "qualname": "TokenType.REFERENCES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.REFERENCES: 'REFERENCES'>"}, "sqlglot.tokens.TokenType.RIGHT": {"fullname": "sqlglot.tokens.TokenType.RIGHT", "modulename": "sqlglot.tokens", "qualname": "TokenType.RIGHT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RIGHT: 'RIGHT'>"}, "sqlglot.tokens.TokenType.RLIKE": {"fullname": "sqlglot.tokens.TokenType.RLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RLIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RLIKE: 'RLIKE'>"}, "sqlglot.tokens.TokenType.ROLLBACK": {"fullname": "sqlglot.tokens.TokenType.ROLLBACK", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLBACK", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROLLBACK: 'ROLLBACK'>"}, "sqlglot.tokens.TokenType.ROLLUP": {"fullname": "sqlglot.tokens.TokenType.ROLLUP", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLUP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROLLUP: 'ROLLUP'>"}, "sqlglot.tokens.TokenType.ROW": {"fullname": "sqlglot.tokens.TokenType.ROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROW: 'ROW'>"}, "sqlglot.tokens.TokenType.ROWS": {"fullname": "sqlglot.tokens.TokenType.ROWS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROWS: 'ROWS'>"}, "sqlglot.tokens.TokenType.SEED": {"fullname": "sqlglot.tokens.TokenType.SEED", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEED: 'SEED'>"}, "sqlglot.tokens.TokenType.SELECT": {"fullname": "sqlglot.tokens.TokenType.SELECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SELECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SELECT: 'SELECT'>"}, "sqlglot.tokens.TokenType.SEMI": {"fullname": "sqlglot.tokens.TokenType.SEMI", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMI", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEMI: 'SEMI'>"}, "sqlglot.tokens.TokenType.SEPARATOR": {"fullname": "sqlglot.tokens.TokenType.SEPARATOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEPARATOR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEPARATOR: 'SEPARATOR'>"}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"fullname": "sqlglot.tokens.TokenType.SERDE_PROPERTIES", "modulename": "sqlglot.tokens", "qualname": "TokenType.SERDE_PROPERTIES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SERDE_PROPERTIES: 'SERDE_PROPERTIES'>"}, "sqlglot.tokens.TokenType.SET": {"fullname": "sqlglot.tokens.TokenType.SET", "modulename": "sqlglot.tokens", "qualname": "TokenType.SET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SET: 'SET'>"}, "sqlglot.tokens.TokenType.SHOW": {"fullname": "sqlglot.tokens.TokenType.SHOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.SHOW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SHOW: 'SHOW'>"}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"fullname": "sqlglot.tokens.TokenType.SIMILAR_TO", "modulename": "sqlglot.tokens", "qualname": "TokenType.SIMILAR_TO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SIMILAR_TO: 'SIMILAR_TO'>"}, "sqlglot.tokens.TokenType.SOME": {"fullname": "sqlglot.tokens.TokenType.SOME", "modulename": "sqlglot.tokens", "qualname": "TokenType.SOME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SOME: 'SOME'>"}, "sqlglot.tokens.TokenType.SORTKEY": {"fullname": "sqlglot.tokens.TokenType.SORTKEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SORTKEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SORTKEY: 'SORTKEY'>"}, "sqlglot.tokens.TokenType.SORT_BY": {"fullname": "sqlglot.tokens.TokenType.SORT_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SORT_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SORT_BY: 'SORT_BY'>"}, "sqlglot.tokens.TokenType.STRUCT": {"fullname": "sqlglot.tokens.TokenType.STRUCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRUCT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.STRUCT: 'STRUCT'>"}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"fullname": "sqlglot.tokens.TokenType.TABLE_SAMPLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TABLE_SAMPLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TABLE_SAMPLE: 'TABLE_SAMPLE'>"}, "sqlglot.tokens.TokenType.TEMPORARY": {"fullname": "sqlglot.tokens.TokenType.TEMPORARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.TEMPORARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TEMPORARY: 'TEMPORARY'>"}, "sqlglot.tokens.TokenType.TOP": {"fullname": "sqlglot.tokens.TokenType.TOP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TOP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TOP: 'TOP'>"}, "sqlglot.tokens.TokenType.THEN": {"fullname": "sqlglot.tokens.TokenType.THEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.THEN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.THEN: 'THEN'>"}, "sqlglot.tokens.TokenType.TRAILING": {"fullname": "sqlglot.tokens.TokenType.TRAILING", "modulename": "sqlglot.tokens", "qualname": "TokenType.TRAILING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TRAILING: 'TRAILING'>"}, "sqlglot.tokens.TokenType.TRUE": {"fullname": "sqlglot.tokens.TokenType.TRUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TRUE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TRUE: 'TRUE'>"}, "sqlglot.tokens.TokenType.UNBOUNDED": {"fullname": "sqlglot.tokens.TokenType.UNBOUNDED", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNBOUNDED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNBOUNDED: 'UNBOUNDED'>"}, "sqlglot.tokens.TokenType.UNCACHE": {"fullname": "sqlglot.tokens.TokenType.UNCACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNCACHE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNCACHE: 'UNCACHE'>"}, "sqlglot.tokens.TokenType.UNION": {"fullname": "sqlglot.tokens.TokenType.UNION", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNION: 'UNION'>"}, "sqlglot.tokens.TokenType.UNLOGGED": {"fullname": "sqlglot.tokens.TokenType.UNLOGGED", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNLOGGED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNLOGGED: 'UNLOGGED'>"}, "sqlglot.tokens.TokenType.UNNEST": {"fullname": "sqlglot.tokens.TokenType.UNNEST", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNNEST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNNEST: 'UNNEST'>"}, "sqlglot.tokens.TokenType.UNPIVOT": {"fullname": "sqlglot.tokens.TokenType.UNPIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNPIVOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNPIVOT: 'UNPIVOT'>"}, "sqlglot.tokens.TokenType.UPDATE": {"fullname": "sqlglot.tokens.TokenType.UPDATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UPDATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UPDATE: 'UPDATE'>"}, "sqlglot.tokens.TokenType.USE": {"fullname": "sqlglot.tokens.TokenType.USE", "modulename": "sqlglot.tokens", "qualname": "TokenType.USE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.USE: 'USE'>"}, "sqlglot.tokens.TokenType.USING": {"fullname": "sqlglot.tokens.TokenType.USING", "modulename": "sqlglot.tokens", "qualname": "TokenType.USING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.USING: 'USING'>"}, "sqlglot.tokens.TokenType.VALUES": {"fullname": "sqlglot.tokens.TokenType.VALUES", "modulename": "sqlglot.tokens", "qualname": "TokenType.VALUES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VALUES: 'VALUES'>"}, "sqlglot.tokens.TokenType.VIEW": {"fullname": "sqlglot.tokens.TokenType.VIEW", "modulename": "sqlglot.tokens", "qualname": "TokenType.VIEW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VIEW: 'VIEW'>"}, "sqlglot.tokens.TokenType.VOLATILE": {"fullname": "sqlglot.tokens.TokenType.VOLATILE", "modulename": "sqlglot.tokens", "qualname": "TokenType.VOLATILE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VOLATILE: 'VOLATILE'>"}, "sqlglot.tokens.TokenType.WHEN": {"fullname": "sqlglot.tokens.TokenType.WHEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHEN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WHEN: 'WHEN'>"}, "sqlglot.tokens.TokenType.WHERE": {"fullname": "sqlglot.tokens.TokenType.WHERE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHERE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WHERE: 'WHERE'>"}, "sqlglot.tokens.TokenType.WINDOW": {"fullname": "sqlglot.tokens.TokenType.WINDOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.WINDOW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WINDOW: 'WINDOW'>"}, "sqlglot.tokens.TokenType.WITH": {"fullname": "sqlglot.tokens.TokenType.WITH", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITH: 'WITH'>"}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.WITH_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITH_TIME_ZONE: 'WITH_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH_LOCAL_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITH_LOCAL_TIME_ZONE: 'WITH_LOCAL_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"fullname": "sqlglot.tokens.TokenType.WITHIN_GROUP", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITHIN_GROUP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITHIN_GROUP: 'WITHIN_GROUP'>"}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITHOUT_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITHOUT_TIME_ZONE: 'WITHOUT_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.UNIQUE": {"fullname": "sqlglot.tokens.TokenType.UNIQUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNIQUE: 'UNIQUE'>"}, "sqlglot.tokens.Token": {"fullname": "sqlglot.tokens.Token", "modulename": "sqlglot.tokens", "qualname": "Token", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.tokens.Token.__init__": {"fullname": "sqlglot.tokens.Token.__init__", "modulename": "sqlglot.tokens", "qualname": "Token.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">token_type</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">TokenType</span>,</span><span class=\"param\">\t<span class=\"n\">text</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">line</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>,</span><span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>,</span><span class=\"param\">\t<span class=\"n\">comments</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">[]</span></span>)</span>"}, "sqlglot.tokens.Token.number": {"fullname": "sqlglot.tokens.Token.number", "modulename": "sqlglot.tokens", "qualname": "Token.number", "kind": "function", "doc": "<p>Returns a NUMBER token with <code>number</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">number</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Token.string": {"fullname": "sqlglot.tokens.Token.string", "modulename": "sqlglot.tokens", "qualname": "Token.string", "kind": "function", "doc": "<p>Returns a STRING token with <code>string</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">string</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Token.identifier": {"fullname": "sqlglot.tokens.Token.identifier", "modulename": "sqlglot.tokens", "qualname": "Token.identifier", "kind": "function", "doc": "<p>Returns an IDENTIFIER token with <code>identifier</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">identifier</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Token.var": {"fullname": "sqlglot.tokens.Token.var", "modulename": "sqlglot.tokens", "qualname": "Token.var", "kind": "function", "doc": "<p>Returns an VAR token with <code>var</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">var</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Tokenizer": {"fullname": "sqlglot.tokens.Tokenizer", "modulename": "sqlglot.tokens", "qualname": "Tokenizer", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.tokens.Tokenizer.reset": {"fullname": "sqlglot.tokens.Tokenizer.reset", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.reset", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Tokenizer.tokenize": {"fullname": "sqlglot.tokens.Tokenizer.tokenize", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.tokenize", "kind": "function", "doc": "<p>Returns a list of tokens corresponding to the SQL string <code>sql</code>.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms": {"fullname": "sqlglot.transforms", "modulename": "sqlglot.transforms", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.transforms.unalias_group": {"fullname": "sqlglot.transforms.unalias_group", "modulename": "sqlglot.transforms", "qualname": "unalias_group", "kind": "function", "doc": "<p>Replace references to select aliases in GROUP BY clauses.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a AS b FROM x GROUP BY b"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">transform</span><span class=\"p\">(</span><span class=\"n\">unalias_group</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT a AS b FROM x GROUP BY 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression that will be transformed.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.eliminate_distinct_on": {"fullname": "sqlglot.transforms.eliminate_distinct_on", "modulename": "sqlglot.transforms", "qualname": "eliminate_distinct_on", "kind": "function", "doc": "<p>Convert SELECT DISTINCT ON statements to a subquery with a window function.</p>\n\n<p>This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression that will be transformed.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.remove_precision_parameterized_types": {"fullname": "sqlglot.transforms.remove_precision_parameterized_types", "modulename": "sqlglot.transforms", "qualname": "remove_precision_parameterized_types", "kind": "function", "doc": "<p>Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions.\nThis transforms removes the precision from parameterized types in expressions.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.preprocess": {"fullname": "sqlglot.transforms.preprocess", "modulename": "sqlglot.transforms", "qualname": "preprocess", "kind": "function", "doc": "<p>Creates a new transform by chaining a sequence of transformations and converts the resulting\nexpression to SQL, using an appropriate <code>Generator.TRANSFORMS</code> function.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>transforms:</strong> sequence of transform functions. These will be called in order.</li>\n<li><strong>to_sql:</strong> final transform that converts the resulting expression to a SQL string.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Function that can be used as a generator transform.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">transforms</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">to_sql</span><span class=\"p\">:</span> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"nb\">str</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.delegate": {"fullname": "sqlglot.transforms.delegate", "modulename": "sqlglot.transforms", "qualname": "delegate", "kind": "function", "doc": "<p>Create a new method that delegates to <code>attr</code>. This is useful for creating <code>Generator.TRANSFORMS</code>\nfunctions that delegate to existing generator methods.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">attr</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span>:</span></span>", "funcdef": "def"}, "sqlglot.trie": {"fullname": "sqlglot.trie", "modulename": "sqlglot.trie", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.trie.new_trie": {"fullname": "sqlglot.trie.new_trie", "modulename": "sqlglot.trie", "qualname": "new_trie", "kind": "function", "doc": "<p>Creates a new trie out of a collection of keywords.</p>\n\n<p>The trie is represented as a sequence of nested dictionaries keyed by either single character\nstrings, or by 0, which is used to designate that a keyword is in the trie.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"bla"</span><span class=\"p\">,</span> <span class=\"s2\">"foo"</span><span class=\"p\">,</span> <span class=\"s2\">"blab"</span><span class=\"p\">])</span>\n<span class=\"go\">{'b': {'l': {'a': {0: True, 'b': {0: True}}}}, 'f': {'o': {'o': {0: True}}}}</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>keywords:</strong> the keywords to create the trie from.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The trie corresponding to <code>keywords</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">keywords</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Hashable</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Dict</span>:</span></span>", "funcdef": "def"}, "sqlglot.trie.in_trie": {"fullname": "sqlglot.trie.in_trie", "modulename": "sqlglot.trie", "qualname": "in_trie", "kind": "function", "doc": "<p>Checks whether a key is in a trie.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">in_trie</span><span class=\"p\">(</span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"cat"</span><span class=\"p\">]),</span> <span class=\"s2\">"bob"</span><span class=\"p\">)</span>\n<span class=\"go\">(0, {'c': {'a': {'t': {0: True}}}})</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">in_trie</span><span class=\"p\">(</span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"cat"</span><span class=\"p\">]),</span> <span class=\"s2\">"ca"</span><span class=\"p\">)</span>\n<span class=\"go\">(1, {'t': {0: True}})</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">in_trie</span><span class=\"p\">(</span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"cat"</span><span class=\"p\">]),</span> <span class=\"s2\">"cat"</span><span class=\"p\">)</span>\n<span class=\"go\">(2, {0: True})</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>trie:</strong> the trie to be searched.</li>\n<li><strong>key:</strong> the target key.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A pair <code>(value, subtrie)</code>, where <code>subtrie</code> is the sub-trie we get at the point where the search stops, and <code>value</code>\n is either 0 (search was unsuccessful), 1 (<code>value</code> is a prefix of a keyword in <code>trie</code>) or 2 (<code>key is in</code>trie`).</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">trie</span><span class=\"p\">:</span> <span class=\"n\">Dict</span>, </span><span class=\"param\"><span class=\"n\">key</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Hashable</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}}, "docInfo": {"sqlglot": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 5685}, "sqlglot.pretty": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 1, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.schema": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.parse": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 124, "bases": 0, "doc": 84}, "sqlglot.parse_one": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 198, "bases": 0, "doc": 99}, "sqlglot.transpile": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 239, "bases": 0, "doc": 177}, "sqlglot.dataframe": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3543}, "sqlglot.dataframe.sql": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession.table": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 208, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 259, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.select": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.alias": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.where": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.filter": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.agg": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.join": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 180, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 120, "bases": 0, "doc": 44}, "sqlglot.dataframe.sql.DataFrame.sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 120, "bases": 0, "doc": 44}, "sqlglot.dataframe.sql.DataFrame.union": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.intersect": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.distinct": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.dropna": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.fillna": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 123, "bases": 0, "doc": 100}, "sqlglot.dataframe.sql.DataFrame.replace": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 217, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.drop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 80, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.limit": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.hint": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.repartition": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.cache": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.persist": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 20}, "sqlglot.dataframe.sql.GroupedData": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 106, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.agg": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.count": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.mean": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.avg": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.max": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.min": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.sum": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.pivot": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ensure_col": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ensure_cols": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 98, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 123, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.binary_op": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 85, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 85, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.unary_op": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ensure_literal": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.set_table_name": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.alias": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.asc": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.desc": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.when": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.otherwise": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.isNull": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.isNotNull": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.cast": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 27}, "sqlglot.dataframe.sql.Column.startswith": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 78, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.endswith": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 78, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.rlike": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.like": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ilike": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.substr": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 121, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.isin": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 81, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.between": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 97, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.over": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 177, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.partitionBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.orderBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.rowsBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.rangeBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameReader.table": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 122, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 3}, "sqlglot.dialects": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 764}, "sqlglot.dialects.bigquery": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "sqlglot.dialects.bigquery.BigQuery": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.databricks": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.databricks.Databricks": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.databricks.Databricks.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.databricks.Databricks.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 495}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.dialect": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 5}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 8, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.HIVE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.SPARK": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TRINO": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TSQL": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.DRILL": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 105, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.format_time": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.parse": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.parse_into": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 126, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.generate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 50, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.transpile": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 37, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.rename_func": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.if_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.inline_array_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_ilike_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_tablesample_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_pivot_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_trycast_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_properties_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.str_position_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.struct_extract_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.var_map_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 91, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.format_time_lambda": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 71}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 46}, "sqlglot.dialects.dialect.parse_date_delta": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 78, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.locate_to_strposition": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.timestrtotime_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.datestrtodate_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.min_or_least": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.trim_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.str_to_time_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "sqlglot.dialects.drill": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.drill.Drill": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.drill.Drill.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.drill.Drill.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.drill.Drill.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.dialects.duckdb": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.duckdb.DuckDB": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "sqlglot.dialects.hive": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.hive.Hive": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.hive.Hive.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.hive.Hive.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.hive.Hive.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.mysql": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.mysql.MySQL": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.mysql.MySQL.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.mysql.MySQL.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.oracle.Oracle.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.postgres": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.postgres.Postgres": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.postgres.Postgres.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.postgres.Postgres.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.presto": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.presto.Presto": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.presto.Presto.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.presto.Presto.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.presto.Presto.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.redshift": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.redshift.Redshift": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.redshift.Redshift.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.redshift.Redshift.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 495}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 58}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 19}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 16}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 75}, "sqlglot.dialects.snowflake": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 66}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 125}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "sqlglot.dialects.spark": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.spark.Spark": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.spark.Spark.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.spark.Spark.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 495}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.spark.Spark.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.sqlite": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.sqlite.SQLite.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.starrocks": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.starrocks.StarRocks": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 495}, "sqlglot.dialects.tableau": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.tableau.Tableau": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.tableau.Tableau.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.tableau.Tableau.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.teradata": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.teradata.Teradata.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.trino": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.trino.Trino": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.trino.Trino.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 495}, "sqlglot.dialects.trino.Trino.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.tsql": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.tsql.TSQL": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.tsql.TSQL.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.tsql.TSQL.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.diff": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 6444}, "sqlglot.diff.Insert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.diff.Insert.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.diff.Remove": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.diff.Remove.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.diff.Move": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "sqlglot.diff.Move.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.diff.Update": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.diff.Update.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.diff.Keep": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.diff.Keep.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.diff.diff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 206, "bases": 0, "doc": 306}, "sqlglot.diff.ChangeDistiller": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 46}, "sqlglot.diff.ChangeDistiller.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.diff.ChangeDistiller.diff": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 199, "bases": 0, "doc": 3}, "sqlglot.errors": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.errors.ErrorLevel": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.errors.ErrorLevel.IGNORE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 6}, "sqlglot.errors.ErrorLevel.WARN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 6}, "sqlglot.errors.ErrorLevel.RAISE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 12}, "sqlglot.errors.SqlglotError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 11}, "sqlglot.errors.UnsupportedError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.ParseError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.ParseError.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.errors.ParseError.new": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 207, "bases": 0, "doc": 3}, "sqlglot.errors.TokenError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.OptimizeError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.SchemaError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.ExecuteError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.concat_messages": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "sqlglot.errors.merge_errors": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.executor": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 2950}, "sqlglot.executor.execute": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 197, "bases": 0, "doc": 115}, "sqlglot.executor.context": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 64}, "sqlglot.executor.context.Context.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 21}, "sqlglot.executor.context.Context.eval": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.eval_tuple": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.add_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.table_iter": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.filter": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.set_row": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.set_index": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.set_range": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.executor.env": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.env.reverse_key": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.env.reverse_key.__init__": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "sqlglot.executor.env.filter_nulls": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.executor.env.null_if_any": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 59}, "sqlglot.executor.env.str_position": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "sqlglot.executor.env.substring": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.executor.env.cast": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.env.ordered": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.executor.env.interval": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.execute": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.generate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 16}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 15}, "sqlglot.executor.python.PythonExecutor.context": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.table": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.scan": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.static": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.scan_table": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.join": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.hash_join": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.aggregate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.set_operation": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.Python": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.executor.python.Python.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.executor.python.Python.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 495}, "sqlglot.executor.table": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.add_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.append": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.pop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.executor.table.TableIter": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.TableIter.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "sqlglot.executor.table.RangeReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.RangeReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "sqlglot.executor.table.RowReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.RowReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "sqlglot.executor.table.Tables": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 87}, "sqlglot.executor.table.ensure_tables": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.expressions": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 61}, "sqlglot.expressions.Expression": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 346}, "sqlglot.expressions.Expression.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.expressions.Expression.this": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.expression": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.expressions": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.text": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 32}, "sqlglot.expressions.Expression.is_string": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.is_number": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.is_int": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Expression.alias": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 18}, "sqlglot.expressions.Expression.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Expression.copy": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 10}, "sqlglot.expressions.Expression.append": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 54}, "sqlglot.expressions.Expression.set": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 45}, "sqlglot.expressions.Expression.depth": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.find": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 65}, "sqlglot.expressions.Expression.find_all": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 63}, "sqlglot.expressions.Expression.find_ancestor": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 45}, "sqlglot.expressions.Expression.parent_select": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "sqlglot.expressions.Expression.root": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 10}, "sqlglot.expressions.Expression.walk": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 89}, "sqlglot.expressions.Expression.dfs": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 33}, "sqlglot.expressions.Expression.bfs": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 33}, "sqlglot.expressions.Expression.unnest": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.unalias": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 12}, "sqlglot.expressions.Expression.unnest_operands": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.flatten": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 28}, "sqlglot.expressions.Expression.sql": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 99, "bases": 0, "doc": 61}, "sqlglot.expressions.Expression.transform": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 111}, "sqlglot.expressions.Expression.replace": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 83}, "sqlglot.expressions.Expression.pop": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.assert_is": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 162}, "sqlglot.expressions.Expression.error_messages": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 79}, "sqlglot.expressions.Expression.dump": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.load": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 17}, "sqlglot.expressions.Condition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Condition.and_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 173}, "sqlglot.expressions.Condition.or_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 173}, "sqlglot.expressions.Condition.not_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 88}, "sqlglot.expressions.Predicate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 13}, "sqlglot.expressions.DerivedTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unionable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unionable.union": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 211}, "sqlglot.expressions.Unionable.intersect": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 210}, "sqlglot.expressions.Unionable.except_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 211}, "sqlglot.expressions.UDTF": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Cache": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Uncache": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Create": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Describe": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Set": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetItem": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Show": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UserDefinedFunction": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CharacterSet": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.With": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WithinGroup": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CTE": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TableAlias": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitString": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.HexString": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ByteString": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Column": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Column.output_name": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.ColumnDef": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AlterColumn": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RenameTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetTag": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Comment": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ColumnConstraintKind": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CharacterSetColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CheckColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CollateColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CommentColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CompressColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateFormatColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DefaultColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.EncodeColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.InlineLengthColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NotNullColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TitleColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UniqueColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UppercaseColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PathColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Constraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Delete": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Drop": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Filter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Check": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Directory": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ForeignKey": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PrimaryKey": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unique": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Into": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.From": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Having": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Hint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JoinHint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Identifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Identifier.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Index": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Insert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Returning": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Introducer": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.National": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LoadData": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Partition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Fetch": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Group": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Lambda": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Limit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Literal": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Literal.number": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.expressions.Literal.string": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.expressions.Literal.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Join": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Join.on": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 252}, "sqlglot.expressions.Join.using": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 254}, "sqlglot.expressions.Lateral": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MatchRecognize": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Final": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Offset": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Order": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Cluster": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Distribute": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Ordered": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Property": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AfterJournalProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AlgorithmProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AutoIncrementProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BlockCompressionProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CharacterSetProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ChecksumProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CollateProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DataBlocksizeProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DefinerProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DistKeyProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DistStyleProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.EngineProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ExecuteAsProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ExternalProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FallbackProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FileFormatProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FreespaceProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.IsolatedLoadingProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JournalProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LanguageProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LikeProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LocationProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LockingProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LogProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MaterializedProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MergeBlockRatioProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NoPrimaryIndexProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.OnCommitProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PartitionedByProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ReturnsProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RowFormatDelimitedProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RowFormatSerdeProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SchemaCommentProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SerdeProperties": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SortKeyProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SqlSecurityProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TableFormatProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TemporaryProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TransientProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.VolatilityProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WithDataProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WithJournalTableProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Properties": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Properties.Location": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_NAME": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_WITH": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.from_dict": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 3}, "sqlglot.expressions.Qualify": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Return": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Reference": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Tuple": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Subqueryable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Subqueryable.subquery": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 213}, "sqlglot.expressions.Subqueryable.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 3}, "sqlglot.expressions.Subqueryable.with_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 319}, "sqlglot.expressions.Table": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SystemTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Union": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Union.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 234}, "sqlglot.expressions.Union.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 174, "bases": 0, "doc": 245}, "sqlglot.expressions.Union.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Except": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Intersect": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unnest": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Update": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Values": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Var": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Schema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Lock": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Select": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Select.from_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 238}, "sqlglot.expressions.Select.group_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 287}, "sqlglot.expressions.Select.order_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 262}, "sqlglot.expressions.Select.sort_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 262}, "sqlglot.expressions.Select.cluster_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 262}, "sqlglot.expressions.Select.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 231}, "sqlglot.expressions.Select.offset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 231}, "sqlglot.expressions.Select.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 174, "bases": 0, "doc": 196}, "sqlglot.expressions.Select.lateral": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 247}, "sqlglot.expressions.Select.join": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 118, "bases": 0, "doc": 628}, "sqlglot.expressions.Select.where": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 265}, "sqlglot.expressions.Select.having": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 287}, "sqlglot.expressions.Select.window": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.qualify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.distinct": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 151}, "sqlglot.expressions.Select.ctas": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 236}, "sqlglot.expressions.Select.lock": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 331}, "sqlglot.expressions.Select.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Subquery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Subquery.unnest": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 8}, "sqlglot.expressions.Subquery.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Subquery.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.TableSample": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Tag": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 15}, "sqlglot.expressions.Pivot": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Window": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WindowSpec": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Where": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Star": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Star.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Parameter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SessionParameter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Placeholder": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Null": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Boolean": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DataType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DataType.Type": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.expressions.DataType.Type.CHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NCHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.VARCHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TEXT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BINARY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.VARBINARY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TINYINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UTINYINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SMALLINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.USMALLINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIGINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UBIGINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.FLOAT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DOUBLE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DECIMAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.JSON": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.JSONB": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INTERVAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DATE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DATETIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.ARRAY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MAP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UUID": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.STRUCT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NULLABLE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.HSTORE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SUPER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SERIAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.XML": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MONEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.IMAGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.VARIANT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.OBJECT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NULL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.build": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 157, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.is_type": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.expressions.PseudoType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StructKwarg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SubqueryPredicate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.All": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Any": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Exists": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Command": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Transaction": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Commit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Rollback": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AlterTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AddConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DropPartition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Binary": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Add": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Connector": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.And": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Or": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseAnd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseLeftShift": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseOr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseRightShift": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseXor": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Div": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FloatDiv": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Overlaps": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Dot": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DPipe": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.EQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.NullSafeEQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.NullSafeNEQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Distance": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Escape": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Glob": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.GT": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.GTE": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.ILike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.ILikeAny": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.IntDiv": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Is": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Kwarg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 12}, "sqlglot.expressions.Like": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.LikeAny": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.LT": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.LTE": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Mod": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Mul": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NEQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.SimilarTo": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Slice": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayOverlaps": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unary": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseNot": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Not": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Neg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Alias": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Alias.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Aliases": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AtTimeZone": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Between": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Bracket": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Distinct": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.In": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeUnit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 10}, "sqlglot.expressions.TimeUnit.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.Interval": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.IgnoreNulls": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RespectNulls": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Func": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 128}, "sqlglot.expressions.Func.from_arg_list": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.expressions.Func.sql_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.Func.sql_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.Func.default_parser_mappings": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.AggFunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Abs": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Anonymous": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ApproxDistinct": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Array": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.GenerateSeries": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayAgg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayAll": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayAny": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayConcat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayContains": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.ArrayContained": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayFilter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayJoin": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArraySize": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArraySort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArraySum": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayUnionAgg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Avg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AnyValue": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Case": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Cast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Cast.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Cast.is_type": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.expressions.Collate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TryCast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Ceil": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Coalesce": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Concat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ConcatWs": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Count": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentDatetime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentTimestamp": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DatetimeAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DatetimeSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DatetimeDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DatetimeTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DayOfWeek": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DayOfMonth": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DayOfYear": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WeekOfYear": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LastDateOfMonth": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Extract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimestampAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimestampSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimestampDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimestampTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateFromParts": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateStrToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateToDateStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateToDi": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Day": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Decode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DiToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Encode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Exp": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Explode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Floor": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Greatest": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.GroupConcat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Hex": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.If": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.IfNull": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Initcap": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONBContains": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.JSONExtractScalar": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONBExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONBExtractScalar": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Least": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Length": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Levenshtein": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Ln": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Log": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Log2": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Log10": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LogicalOr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Lower": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Map": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.VarMap": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Matches": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 22}, "sqlglot.expressions.Max": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Min": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Month": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Nvl2": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Posexplode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Pow": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.PercentileCont": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PercentileDisc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Quantile": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Quantiles": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.QuantileIf": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ApproxQuantile": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RangeN": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ReadCSV": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Reduce": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpLike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpILike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpSplit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Repeat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Round": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RowNumber": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SafeDivide": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetAgg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SortArray": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Split": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Substring": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrPosition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrToTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrToUnix": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NumberToStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Struct": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StructExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sum": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sqrt": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Stddev": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StddevPop": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StddevSamp": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeToStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeToTimeStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeToUnix": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeStrToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeStrToTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeStrToUnix": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Trim": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TsOrDsAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TsOrDsToDateStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TsOrDsToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TsOrDiToDi": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unhex": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UnixToStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UnixToTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UnixToTimeStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Upper": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Variance": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.VariancePop": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Week": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.XMLTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Year": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Use": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Merge": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.When": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.maybe_parse": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 264, "bases": 0, "doc": 231}, "sqlglot.expressions.union": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 234}, "sqlglot.expressions.intersect": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 234}, "sqlglot.expressions.except_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 235}, "sqlglot.expressions.select": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 132, "bases": 0, "doc": 206}, "sqlglot.expressions.from_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 211}, "sqlglot.expressions.update": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 271}, "sqlglot.expressions.delete": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 156}, "sqlglot.expressions.condition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 334}, "sqlglot.expressions.and_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 180}, "sqlglot.expressions.or_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 180}, "sqlglot.expressions.not_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 152}, "sqlglot.expressions.paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.expressions.to_identifier": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 53}, "sqlglot.expressions.to_interval": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 16}, "sqlglot.expressions.to_table": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 66}, "sqlglot.expressions.to_column": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 62}, "sqlglot.expressions.alias_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 218, "bases": 0, "doc": 292}, "sqlglot.expressions.subquery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 197}, "sqlglot.expressions.column": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 59}, "sqlglot.expressions.cast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 102, "bases": 0, "doc": 122}, "sqlglot.expressions.table_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 58}, "sqlglot.expressions.values": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 169}, "sqlglot.expressions.var": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 168}, "sqlglot.expressions.rename_table": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 50}, "sqlglot.expressions.convert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 54}, "sqlglot.expressions.replace_children": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 18}, "sqlglot.expressions.column_table_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 129}, "sqlglot.expressions.table_name": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 152}, "sqlglot.expressions.replace_tables": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 176}, "sqlglot.expressions.replace_placeholders": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 216}, "sqlglot.expressions.expand": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 84, "bases": 0, "doc": 200}, "sqlglot.expressions.func": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 122, "bases": 0, "doc": 272}, "sqlglot.expressions.true": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 8}, "sqlglot.expressions.false": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 8}, "sqlglot.expressions.null": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 7}, "sqlglot.generator": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.generator.Generator": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 495}, "sqlglot.generator.Generator.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 300, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.generate": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 28}, "sqlglot.generator.Generator.unsupported": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sep": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.seg": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.pad_comment": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.maybe_comment": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.wrap": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.no_identify": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.normalize_func": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.indent": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 106, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sql": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 96, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.uncache_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cache_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.characterset_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.column_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.columndef_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.columnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.create_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.describe_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.prepend_ctes": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.with_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cte_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tablealias_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitstring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.hexstring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.datatype_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.directory_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.delete_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.drop_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.except_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.except_op": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.fetch_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.filter_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.hint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.index_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.identifier_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.national_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.partition_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.properties_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.root_properties": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.properties": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 117, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.with_properties": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.locate_properties": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.property_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.likeproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.fallbackproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.journalproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.freespaceproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.checksumproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lockingproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.withdataproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.insert_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.intersect_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.intersect_op": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.introducer_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.pseudotype_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.returning_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.table_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tablesample_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.pivot_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tuple_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.update_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.values_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.var_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.into_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.from_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.group_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.having_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.join_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lambda_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lateral_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.limit_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.offset_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lock_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.literal_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.loaddata_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.null_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.boolean_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.order_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cluster_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.distribute_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sort_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.ordered_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.matchrecognize_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.query_modifiers": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.select_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.schema_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.star_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.structkwarg_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.parameter_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sessionparameter_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.placeholder_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.subquery_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.qualify_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.union_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.union_op": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.unnest_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.where_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.window_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.partition_by_sql": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.window_spec_sql": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.withingroup_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.between_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bracket_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.all_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.any_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.exists_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.case_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.constraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.extract_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.trim_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.concat_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.check_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.foreignkey_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.primarykey_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.unique_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.if_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.in_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.in_unnest_op": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.interval_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.return_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.reference_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.anonymous_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.paren_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.neg_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.not_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.alias_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.aliases_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.attimezone_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.add_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.and_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.connector_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiseand_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwisenot_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiseor_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwisexor_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cast_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.currentdate_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.collate_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.command_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.comment_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.transaction_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.commit_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.rollback_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.altercolumn_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.renametable_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.altertable_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.droppartition_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.addconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.distinct_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.ignorenulls_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.respectnulls_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.intdiv_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.dpipe_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.div_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.floatdiv_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.overlaps_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.distance_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.dot_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.eq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.escape_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.glob_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.gt_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.gte_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.ilike_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.is_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.like_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.similarto_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lt_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lte_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mod_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mul_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.neq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.nullsafeeq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.nullsafeneq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.or_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.slice_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sub_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.trycast_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.use_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.binary": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.function_fallback_sql": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.func": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.format_args": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.text_width": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.format_time": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.expressions": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.op_expressions": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.naked_property": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.set_operation": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tag_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.token_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.joinhint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.kwarg_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.when_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.merge_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.helper": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.helper.AutoName": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 25}, "sqlglot.helper.seq_get": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 27}, "sqlglot.helper.ensure_list": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 66}, "sqlglot.helper.ensure_collection": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 66}, "sqlglot.helper.csv": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 55}, "sqlglot.helper.subclasses": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 103, "bases": 0, "doc": 84}, "sqlglot.helper.apply_index_offset": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 88}, "sqlglot.helper.camel_to_snake_case": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 16}, "sqlglot.helper.while_changing": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 58}, "sqlglot.helper.tsort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 53}, "sqlglot.helper.open_file": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 19}, "sqlglot.helper.csv_reader": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 53}, "sqlglot.helper.find_new_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 50}, "sqlglot.helper.object_to_dict": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 12}, "sqlglot.helper.split_num_words": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 312}, "sqlglot.helper.is_iterable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 132}, "sqlglot.helper.flatten": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 195}, "sqlglot.helper.count_params": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 26}, "sqlglot.helper.dict_depth": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 194}, "sqlglot.helper.first": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 16}, "sqlglot.lineage": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.lineage.Node": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.lineage.Node.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 99, "bases": 0, "doc": 3}, "sqlglot.lineage.Node.walk": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 3}, "sqlglot.lineage.Node.to_html": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.lineage.lineage": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 341, "bases": 0, "doc": 114}, "sqlglot.lineage.LineageHTML": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 18}, "sqlglot.lineage.LineageHTML.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 132, "bases": 0, "doc": 3}, "sqlglot.optimizer": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types.annotate_types": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 331}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.canonicalize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 46}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.coerce_type": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_ctes": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 166}, "sqlglot.optimizer.eliminate_joins": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 195}, "sqlglot.optimizer.eliminate_joins.join_condition": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 46}, "sqlglot.optimizer.eliminate_subqueries": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 276}, "sqlglot.optimizer.expand_laterals": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 188}, "sqlglot.optimizer.expand_multi_table_selects": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 101}, "sqlglot.optimizer.isolate_table_selects": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.lower_identities": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.lower_identities.lower_identities": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 172}, "sqlglot.optimizer.merge_subqueries": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 272}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize.normalize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 177}, "sqlglot.optimizer.normalize.normalized": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize.normalization_distance": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 171}, "sqlglot.optimizer.normalize.distributive_law": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 39}, "sqlglot.optimizer.optimize_joins": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 132}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 13}, "sqlglot.optimizer.optimize_joins.normalize": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 13}, "sqlglot.optimizer.optimize_joins.other_table_names": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.optimizer": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.optimizer.optimize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 669, "bases": 0, "doc": 223}, "sqlglot.optimizer.pushdown_predicates": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 186}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 20}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 31}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_projections": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 201}, "sqlglot.optimizer.qualify_columns": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 209}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 13}, "sqlglot.optimizer.qualify_columns.Resolver": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 27}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 50}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 13}, "sqlglot.optimizer.qualify_tables": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 190}, "sqlglot.optimizer.scope": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 5}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 8, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.CTE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.UNION": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 328}, "sqlglot.optimizer.scope.Scope.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 84, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope.clear_cache": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope.branch": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 12}, "sqlglot.optimizer.scope.Scope.walk": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope.find": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 97}, "sqlglot.optimizer.scope.Scope.find_all": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 90}, "sqlglot.optimizer.scope.Scope.replace": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 63}, "sqlglot.optimizer.scope.Scope.tables": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "sqlglot.optimizer.scope.Scope.ctes": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "sqlglot.optimizer.scope.Scope.derived_tables": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 43}, "sqlglot.optimizer.scope.Scope.udtfs": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 24}, "sqlglot.optimizer.scope.Scope.subqueries": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 44}, "sqlglot.optimizer.scope.Scope.columns": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 36}, "sqlglot.optimizer.scope.Scope.selected_sources": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 69}, "sqlglot.optimizer.scope.Scope.cte_sources": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 24}, "sqlglot.optimizer.scope.Scope.selects": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 52}, "sqlglot.optimizer.scope.Scope.external_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 35}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 22}, "sqlglot.optimizer.scope.Scope.join_hints": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 30}, "sqlglot.optimizer.scope.Scope.source_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 52}, "sqlglot.optimizer.scope.Scope.is_subquery": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.optimizer.scope.Scope.is_union": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.optimizer.scope.Scope.is_cte": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.optimizer.scope.Scope.is_root": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.optimizer.scope.Scope.is_udtf": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.optimizer.scope.Scope.rename_source": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 8}, "sqlglot.optimizer.scope.Scope.add_source": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 8}, "sqlglot.optimizer.scope.Scope.remove_source": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 8}, "sqlglot.optimizer.scope.Scope.traverse": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 28}, "sqlglot.optimizer.scope.Scope.ref_count": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 34}, "sqlglot.optimizer.scope.traverse_scope": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 330}, "sqlglot.optimizer.scope.build_scope": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 41}, "sqlglot.optimizer.scope.walk_in_scope": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 83}, "sqlglot.optimizer.simplify": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.simplify": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 138}, "sqlglot.optimizer.simplify.rewrite_between": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 31}, "sqlglot.optimizer.simplify.simplify_not": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 25}, "sqlglot.optimizer.simplify.flatten": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 24}, "sqlglot.optimizer.simplify.simplify_connectors": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.remove_compliments": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 19}, "sqlglot.optimizer.simplify.uniq_sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 23}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 58}, "sqlglot.optimizer.simplify.simplify_literals": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.simplify_parens": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.remove_where_true": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.always_true": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.is_complement": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.eval_boolean": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.extract_date": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.extract_interval": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.date_literal": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.boolean_literal": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 227}, "sqlglot.optimizer.unnest_subqueries.unnest": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 3}, "sqlglot.parser": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.parser.parse_var_map": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.parser.binary_range_parser": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 93, "bases": 0, "doc": 3}, "sqlglot.parser.Parser": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 174}, "sqlglot.parser.Parser.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 3}, "sqlglot.parser.Parser.reset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.parser.Parser.parse": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 87, "bases": 0, "doc": 70}, "sqlglot.parser.Parser.parse_into": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 159, "bases": 0, "doc": 111}, "sqlglot.parser.Parser.check_errors": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 16}, "sqlglot.parser.Parser.raise_error": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 57, "bases": 0, "doc": 22}, "sqlglot.parser.Parser.expression": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 89, "bases": 0, "doc": 74}, "sqlglot.parser.Parser.validate_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 57}, "sqlglot.planner": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.planner.Plan": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.planner.Plan.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.planner.Step": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.planner.Step.from_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 209}, "sqlglot.planner.Step.add_dependency": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.planner.Step.to_s": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.planner.Scan": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.Scan.from_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 209}, "sqlglot.planner.Join": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.Join.from_joins": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 96, "bases": 0, "doc": 3}, "sqlglot.planner.Aggregate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.Sort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.SetOperation": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.SetOperation.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 83, "bases": 0, "doc": 3}, "sqlglot.planner.SetOperation.from_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 209}, "sqlglot.schema.Schema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 8}, "sqlglot.schema.Schema.add_table": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 57}, "sqlglot.schema.Schema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 56}, "sqlglot.schema.Schema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 56}, "sqlglot.schema.Schema.supported_table_args": {"qualname": 4, "fullname": 6, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "sqlglot.schema.AbstractMappingSchema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 87}, "sqlglot.schema.AbstractMappingSchema.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 3}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.schema.AbstractMappingSchema.find": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 88, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 139}, "sqlglot.schema.MappingSchema.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 128, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema.copy": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema.add_table": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 60}, "sqlglot.schema.MappingSchema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 56}, "sqlglot.schema.MappingSchema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 79, "bases": 0, "doc": 56}, "sqlglot.schema.ensure_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.schema.ensure_column_mapping": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.schema.flatten_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 3}, "sqlglot.serde": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.serde.dump": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 12}, "sqlglot.serde.load": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 16}, "sqlglot.time": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.time.format_time": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 108}, "sqlglot.tokens": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.tokens.TokenType.L_PAREN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.R_PAREN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.L_BRACKET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.R_BRACKET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.L_BRACE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.R_BRACE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMA": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PLUS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DCOLON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEMICOLON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.STAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BACKSLASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SLASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EQ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NEQ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AND": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AMP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DPIPE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PIPE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CARET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TILDA": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ARROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DARROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FARROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HASH_ARROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LR_ARROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LT_AT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AT_GT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DOLLAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PARAMETER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NATIONAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DAMP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BLOCK_START": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BLOCK_END": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SPACE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BREAK": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.STRING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NUMBER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IDENTIFIER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATABASE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLUMN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SCHEMA": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TABLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIT_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HEX_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BYTE_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BOOLEAN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TINYINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UTINYINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SMALLINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.USMALLINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIGINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UBIGINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FLOAT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DOUBLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DECIMAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NCHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VARCHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NVARCHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LONGTEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LONGBLOB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BINARY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VARBINARY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JSON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JSONB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIME": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIMESTAMP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATETIME": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UUID": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLABLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GEOMETRY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HLLSKETCH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HSTORE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SUPER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SERIAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIGSERIAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.XML": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MONEY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SMALLMONEY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROWVERSION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IMAGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VARIANT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OBJECT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALIAS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALTER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALWAYS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ANTI": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ANY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.APPLY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ARRAY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ASC": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ASOF": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BEGIN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BETWEEN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BOTH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BUCKET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CACHE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CASCADE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CASE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLLATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMAND": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMENT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMIT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMPOUND": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CONSTRAINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CREATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CROSS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CUBE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DEFAULT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DELETE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DESC": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DESCRIBE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DISTINCT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DIV": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DROP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ELSE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.END": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ESCAPE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EXCEPT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EXECUTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EXISTS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FALSE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FETCH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FILTER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FINAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FIRST": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FOLLOWING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FOR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FORMAT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FROM": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FUNCTION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GLOB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GLOBAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GROUP_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HAVING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IF": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ILIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INDEX": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INNER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INSERT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTERSECT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTERVAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTO": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTRODUCER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IRLIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ISNULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JOIN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LANGUAGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LATERAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LAZY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LEADING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LEFT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LIKE_ANY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LIMIT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LOAD_DATA": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LOCAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MAP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MATERIALIZED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MERGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MOD": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NATURAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NO_ACTION": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NOTNULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLS_LAST": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OFFSET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ONLY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OPTIONS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ORDER_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ORDERED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ORDINALITY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OUTER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OUT_OF": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OVER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OVERLAPS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OVERWRITE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PARTITION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PARTITION_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PERCENT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PIVOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PRECEDING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PROCEDURE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PROPERTIES": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.QUALIFY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.QUOTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RECURSIVE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.REPLACE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RETURNING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.REFERENCES": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RIGHT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RLIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROLLBACK": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROLLUP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROWS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SELECT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEMI": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEPARATOR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SHOW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SOME": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SORTKEY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SORT_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.STRUCT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TEMPORARY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TOP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.THEN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TRAILING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TRUE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNBOUNDED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNCACHE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNLOGGED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNNEST": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNPIVOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UPDATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.USE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.USING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VALUES": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VIEW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VOLATILE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WHEN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WHERE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WINDOW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 15, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNIQUE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.Token": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.Token.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 97, "bases": 0, "doc": 3}, "sqlglot.tokens.Token.number": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Token.string": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Token.identifier": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Token.var": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Tokenizer": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.Tokenizer.reset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "sqlglot.tokens.Tokenizer.tokenize": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 16}, "sqlglot.transforms": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.transforms.unalias_group": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 146}, "sqlglot.transforms.eliminate_distinct_on": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 66}, "sqlglot.transforms.remove_precision_parameterized_types": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 33}, "sqlglot.transforms.preprocess": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 144, "bases": 0, "doc": 88}, "sqlglot.transforms.delegate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 29}, "sqlglot.trie": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.trie.new_trie": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 185}, "sqlglot.trie.in_trie": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 299}}, "length": 1717, "save": true}, "index": {"qualname": {"root": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 48, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.pretty": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}}, "df": 6}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 21}}}, "y": {"docs": {"sqlglot.expressions.Property": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 3}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 9, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 29}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 3}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}}, "df": 2}}, "s": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}}, "df": 6, "t": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PathColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "d": {"docs": {"sqlglot.generator.Generator.pad_comment": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PERCENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PercentileCont": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.PercentileDisc": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 5}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}}, "df": 7, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}}, "df": 5}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Posexplode": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}}, "df": 2}, "w": {"docs": {"sqlglot.expressions.Pow": {"tf": 1}}, "df": 1}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}}, "df": 17}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {"sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PLUS": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 5}}}}}}}}, "s": {"docs": {"sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}}, "df": 13, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SchemaError": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SchemaCommentProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 36, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 7}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}}, "df": 4}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SPACE": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Split": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.generator.Generator.window_spec_sql": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}}, "df": 250, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}}, "df": 9}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SqlSecurityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Sqrt": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}}, "df": 26, "s": {"docs": {"sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 11, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SetProperty": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.SetAgg": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}}}}}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.SerdeProperties": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "p": {"docs": {"sqlglot.generator.Generator.sep": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {"sqlglot.generator.Generator.seg": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.SEMI": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.SEED": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 9, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortArray": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SOME": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}}, "df": 2}, "b": {"docs": {"sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}}, "df": 2}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SubqueryPredicate": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 4}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}}, "df": 8, "t": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.startswith": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 3, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}}, "df": 4, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.StructExtract": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToDate": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToTime": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.StrToUnix": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.Stddev": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevPop": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevSamp": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SafeDivide": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 14}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}}, "df": 3}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}}, "df": 5}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.SLASH": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 3, "e": {"docs": {"sqlglot.parse_one": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.OnCommitProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ONLY": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}}, "df": 8, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}}, "df": 4, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}}, "df": 9}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.OptimizeError": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}}, "df": 6}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}}, "df": 8}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OUTER": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 5}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TransientProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.TRAILING": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}}, "df": 4}}, "m": {"docs": {"sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}}, "df": 3}, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.true": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 30, "a": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}}, "df": 4}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}}, "df": 7, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TableFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}}, "o": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 14, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 1, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 21}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.TokenError": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 296}}}}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 7}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TsOrDsAdd": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TsOrDsToDate": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.expressions.TsOrDiToDi": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}}, "df": 10}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}}, "df": 5}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TemporaryProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 12, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TimeStrToDate": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeStrToUnix": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.TimestampTrunc": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimestampAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimestampSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimestampDiff": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimeSub": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimeAdd": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.TimeTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToTimeStr": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeToUnix": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TitleColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.TILDA": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 4}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.this": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.THEN": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.CROSS": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 6}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 5}}}, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 48, "s": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 10}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}}, "df": 2, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ColumnConstraintKind": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CollateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CollateProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLON": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CommentColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {"sqlglot.tokens.TokenType.COMMA": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Command": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}}, "df": 4, "w": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ConcatWs": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}}, "df": 12}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 6}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 3}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.convert": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}}, "df": 5}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CASCADE": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CARET": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 6}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Select.ctas": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDatetime": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.CurrentTimestamp": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CUBE": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 3}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CharacterSetProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Check": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CheckColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.replace_children": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Ceil": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 33, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 5}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}}, "df": 3}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 7}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}}, "df": 5}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DATABASE": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 65}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DateSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.DateFromParts": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DatetimeAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DatetimeSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.DatetimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DatetimeTrunc": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DateTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DateToDateStr": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot.expressions.DateToDi": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DateAdd": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"sqlglot.expressions.Day": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.DayOfWeek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DayOfMonth": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DayOfYear": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DASH": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.DARROW": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DAMP": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 8}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistStyleProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}}, "df": 21}}}}}}, "v": {"docs": {"sqlglot.expressions.Div": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DiToDate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}}, "df": 6}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}}, "df": 4, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}}, "df": 4}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}}, "df": 4}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.planner.Step.add_dependency": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DerivedTable": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DefinerProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Decode": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}}, "df": 6}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.dfs": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {"sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.DCOLON": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 35, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Initcap": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}}, "df": 7}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}}, "df": 5}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}}, "df": 3}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INNER": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 22, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.IfNull": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.is_iterable": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"sqlglot.generator.Generator.no_identify": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {"sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}}, "df": 6}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ALTER": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AlgorithmProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.AggFunc": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 3}}}}}}}, "y": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 6, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AnyValue": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.find_ancestor": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.ANTI": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.tokens.TokenType.ASOF": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayOverlaps": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ArrayAgg": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.ArrayAll": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ArrayAny": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArrayConcat": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayContains": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ArrayContained": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.ArrayFilter": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.ArrayJoin": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ArraySize": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArraySort": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.ArraySum": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ArrayUnionAgg": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 6}}}, "g": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ApproxDistinct": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ApproxQuantile": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 9, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AutoIncrementProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.AutoName": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Abs": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}}, "df": 6}}, "n": {"docs": {"sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 12, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}}, "df": 9}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.text_width": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ErrorLevel.WARN": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Week": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.WeekOfYear": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.wrap": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}}, "df": 6}}}, "l": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FileFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}}, "df": 5}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Final": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FULL": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.FloatDiv": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Floor": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}}, "df": 13}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.FARROW": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}}, "df": 10}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.GroupConcat": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Greatest": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}}, "df": 279}}, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 6}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.GT": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}}, "df": 3}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 15, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}}, "df": 4, "b": {"docs": {"sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.JSONBContains": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONBExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONBExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}}, "df": 4}}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {"sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UnixToTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToTimeStr": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}}, "df": 10}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.UnsupportedError": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}}, "df": 3}}}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Unhex": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}}, "df": 7}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Upper": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Use": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"sqlglot.expressions.Exp": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 43, "s": {"docs": {"sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 3}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExternalProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExecuteAsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}}, "df": 3}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 8}}}}, "d": {"docs": {"sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.endswith": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Encode": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.EngineProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 5}}}}}, "s": {"docs": {"sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 2}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 3}}}, "q": {"docs": {"sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 5}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}}, "df": 9}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Repeat": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 9}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reduce": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 3}}}}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Return": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}}, "df": 3}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 7}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}}, "df": 2}}}}}, "f": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}}, "df": 5}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.ReadCSV": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpExtract": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpLike": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpILike": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpSplit": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.tokens.TokenType.ROWS": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.RowNumber": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}}, "df": 4}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Round": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}}, "df": 3, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RIGHT": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.LastDateOfMonth": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LanguageProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "w": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.LAZY": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LocationProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 2}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}}, "df": 2}}}}}}, "g": {"1": {"0": {"docs": {"sqlglot.expressions.Log10": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"docs": {"sqlglot.expressions.Log2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.Log": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LogProperty": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.LogicalOr": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}}, "df": 3}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.LEADING": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Length": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Levenshtein": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LEFT": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"sqlglot.expressions.LT": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot.expressions.Ln": {"tf": 1}}, "df": 1}, "r": {"docs": {"sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}}, "df": 7}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}}, "df": 3}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}}, "df": 7, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 2}, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 7}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MaterializedProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}}, "df": 3}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Month": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}}, "df": 8}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}}, "df": 7}}}}, "g": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 12}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "x": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}}, "df": 5}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BEGIN": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.bfs": {"tf": 1}}, "df": 1}}, "y": {"docs": {"sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 12, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ByteString": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}}, "df": 6}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BOTH": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BUCKET": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}}, "df": 4}}}, "e": {"docs": {"sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BREAK": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}}, "df": 13, "s": {"docs": {"sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 5}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.National": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATURAL": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NumberToStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 10, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}}, "df": 4, "d": {"docs": {"sqlglot.optimizer.normalize.normalized": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 3}, "g": {"docs": {"sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}}, "df": 2}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NEXT": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}}, "df": 2}}}}}}, "l": {"2": {"docs": {"sqlglot.expressions.Nvl2": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}}, "df": 2}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Variance": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VariancePop": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VarMap": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.VolatilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}}, "df": 7}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Quantile": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Quantiles": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.QuantileIf": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}}, "df": 2}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}}, "df": 2}}, "y": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 4}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Year": {"tf": 1}}, "df": 1}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 4}}}}}}, "fullname": {"root": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 48, "s": {"docs": {"sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}}, "df": 355, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.pretty": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.dialect.Dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.drill": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.errors": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env": {"tf": 1}, "sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.executor.python": {"tf": 1}, "sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.DerivedTable": {"tf": 1}, "sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.expressions.ByteString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}, "sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.expressions.Check": {"tf": 1}, "sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.expressions.National": {"tf": 1}, "sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.expressions.Final": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.expressions.Property": {"tf": 1}, "sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1}, "sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.expressions.CollateProperty": {"tf": 1}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.expressions.DefinerProperty": {"tf": 1}, "sqlglot.expressions.DistKeyProperty": {"tf": 1}, "sqlglot.expressions.DistStyleProperty": {"tf": 1}, "sqlglot.expressions.EngineProperty": {"tf": 1}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1}, "sqlglot.expressions.ExternalProperty": {"tf": 1}, "sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.expressions.FileFormatProperty": {"tf": 1}, "sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.expressions.LocationProperty": {"tf": 1}, "sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.expressions.LogProperty": {"tf": 1}, "sqlglot.expressions.MaterializedProperty": {"tf": 1}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}, "sqlglot.expressions.OnCommitProperty": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1}, "sqlglot.expressions.SerdeProperties": {"tf": 1}, "sqlglot.expressions.SetProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.TableFormatProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatilityProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Return": {"tf": 1}, "sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.expressions.SubqueryPredicate": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.expressions.Command": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.expressions.Div": {"tf": 1}, "sqlglot.expressions.FloatDiv": {"tf": 1}, "sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}, "sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.AggFunc": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.ApproxDistinct": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}, "sqlglot.expressions.ArrayAll": {"tf": 1}, "sqlglot.expressions.ArrayAny": {"tf": 1}, "sqlglot.expressions.ArrayConcat": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayContained": {"tf": 1}, "sqlglot.expressions.ArrayFilter": {"tf": 1}, "sqlglot.expressions.ArrayJoin": {"tf": 1}, "sqlglot.expressions.ArraySize": {"tf": 1}, "sqlglot.expressions.ArraySort": {"tf": 1}, "sqlglot.expressions.ArraySum": {"tf": 1}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}, "sqlglot.expressions.AnyValue": {"tf": 1}, "sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.expressions.Ceil": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.expressions.ConcatWs": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.expressions.CurrentDatetime": {"tf": 1}, "sqlglot.expressions.CurrentTime": {"tf": 1}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DateTrunc": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.DayOfWeek": {"tf": 1}, "sqlglot.expressions.DayOfMonth": {"tf": 1}, "sqlglot.expressions.DayOfYear": {"tf": 1}, "sqlglot.expressions.WeekOfYear": {"tf": 1}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.DateFromParts": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}, "sqlglot.expressions.DateToDateStr": {"tf": 1}, "sqlglot.expressions.DateToDi": {"tf": 1}, "sqlglot.expressions.Day": {"tf": 1}, "sqlglot.expressions.Decode": {"tf": 1}, "sqlglot.expressions.DiToDate": {"tf": 1}, "sqlglot.expressions.Encode": {"tf": 1}, "sqlglot.expressions.Exp": {"tf": 1}, "sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.expressions.Floor": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}, "sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.expressions.IfNull": {"tf": 1}, "sqlglot.expressions.Initcap": {"tf": 1}, "sqlglot.expressions.JSONBContains": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.JSONExtractScalar": {"tf": 1}, "sqlglot.expressions.JSONBExtract": {"tf": 1}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Length": {"tf": 1}, "sqlglot.expressions.Levenshtein": {"tf": 1}, "sqlglot.expressions.Ln": {"tf": 1}, "sqlglot.expressions.Log": {"tf": 1}, "sqlglot.expressions.Log2": {"tf": 1}, "sqlglot.expressions.Log10": {"tf": 1}, "sqlglot.expressions.LogicalOr": {"tf": 1}, "sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}, "sqlglot.expressions.Month": {"tf": 1}, "sqlglot.expressions.Nvl2": {"tf": 1}, "sqlglot.expressions.Posexplode": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}, "sqlglot.expressions.PercentileCont": {"tf": 1}, "sqlglot.expressions.PercentileDisc": {"tf": 1}, "sqlglot.expressions.Quantile": {"tf": 1}, "sqlglot.expressions.Quantiles": {"tf": 1}, "sqlglot.expressions.QuantileIf": {"tf": 1}, "sqlglot.expressions.ApproxQuantile": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}, "sqlglot.expressions.ReadCSV": {"tf": 1}, "sqlglot.expressions.Reduce": {"tf": 1}, "sqlglot.expressions.RegexpExtract": {"tf": 1}, "sqlglot.expressions.RegexpLike": {"tf": 1}, "sqlglot.expressions.RegexpILike": {"tf": 1}, "sqlglot.expressions.RegexpSplit": {"tf": 1}, "sqlglot.expressions.Repeat": {"tf": 1}, "sqlglot.expressions.Round": {"tf": 1}, "sqlglot.expressions.RowNumber": {"tf": 1}, "sqlglot.expressions.SafeDivide": {"tf": 1}, "sqlglot.expressions.SetAgg": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}, "sqlglot.expressions.StrToDate": {"tf": 1}, "sqlglot.expressions.StrToTime": {"tf": 1}, "sqlglot.expressions.StrToUnix": {"tf": 1}, "sqlglot.expressions.NumberToStr": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.expressions.StructExtract": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}, "sqlglot.expressions.Sqrt": {"tf": 1}, "sqlglot.expressions.Stddev": {"tf": 1}, "sqlglot.expressions.StddevPop": {"tf": 1}, "sqlglot.expressions.StddevSamp": {"tf": 1}, "sqlglot.expressions.TimeToStr": {"tf": 1}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1}, "sqlglot.expressions.TimeToUnix": {"tf": 1}, "sqlglot.expressions.TimeStrToDate": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1}, "sqlglot.expressions.Unhex": {"tf": 1}, "sqlglot.expressions.UnixToStr": {"tf": 1}, "sqlglot.expressions.UnixToTime": {"tf": 1}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1}, "sqlglot.expressions.Upper": {"tf": 1}, "sqlglot.expressions.Variance": {"tf": 1}, "sqlglot.expressions.VariancePop": {"tf": 1}, "sqlglot.expressions.Week": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}, "sqlglot.expressions.Year": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.helper": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.lineage": {"tf": 1}, "sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer": {"tf": 1}, "sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.optimizer": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.parser": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner": {"tf": 1}, "sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.serde": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 1717, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.sqlite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1.4142135623730951}}, "df": 10}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SqlSecurityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Sqrt": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}}, "df": 24, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SchemaError": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SchemaCommentProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 44, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 7}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.spark": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}}, "df": 4}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SPACE": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Split": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.generator.Generator.window_spec_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}}, "df": 26, "s": {"docs": {"sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 11, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SetProperty": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.SetAgg": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}}}}}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.serde": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 4, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.SerdeProperties": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "p": {"docs": {"sqlglot.generator.Generator.sep": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {"sqlglot.generator.Generator.seg": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.SEMI": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.SEED": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 9, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortArray": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SOME": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}}, "df": 2}, "b": {"docs": {"sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}}, "df": 2}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SubqueryPredicate": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 11}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}}, "df": 8, "t": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.startswith": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.starrocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}}, "df": 4}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 3, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}}, "df": 4, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.StructExtract": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToDate": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToTime": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.StrToUnix": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.Stddev": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevPop": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevSamp": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SafeDivide": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.4142135623730951}}, "df": 15}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}}, "df": 3}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 19}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.SLASH": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.pretty": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.presto": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.4142135623730951}}, "df": 7}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 7}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 21}}}, "y": {"docs": {"sqlglot.expressions.Property": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 3}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 9, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.parser": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.reset": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.check_errors": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}}, "df": 31}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 3}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}}, "df": 2}}, "s": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}}, "df": 6, "t": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PathColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "d": {"docs": {"sqlglot.generator.Generator.pad_comment": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PERCENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PercentileCont": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.PercentileDisc": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 5}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}}, "df": 7, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}}, "df": 6}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Posexplode": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}}, "df": 2}, "w": {"docs": {"sqlglot.expressions.Pow": {"tf": 1}}, "df": 1}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python": {"tf": 1}, "sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}}, "df": 21, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}}, "df": 17}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {"sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.planner": {"tf": 1}, "sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 16}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PLUS": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}}, "df": 10}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 3, "e": {"docs": {"sqlglot.parse_one": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.OnCommitProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ONLY": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}}, "df": 8, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}}, "df": 4, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1.4142135623730951}}, "df": 10}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.OptimizeError": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.optimizer": {"tf": 1}, "sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.optimizer": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 129}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}}, "df": 6}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}}, "df": 8}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OUTER": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 5}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.transforms": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 6}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TransientProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.TRAILING": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.trino": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1.4142135623730951}}, "df": 5}}, "m": {"docs": {"sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}}, "df": 3}, "e": {"docs": {"sqlglot.trie": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 3}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.true": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.add_columns": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.append": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.pop": {"tf": 1.4142135623730951}, "sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 41, "a": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}}, "df": 5}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TableFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}}, "o": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 14, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 1, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 21}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.TokenError": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.tokens": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 306}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 296}}}}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.tsql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1.4142135623730951}}, "df": 9}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TsOrDsAdd": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TsOrDsToDate": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.expressions.TsOrDiToDi": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1.4142135623730951}}, "df": 11}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}}, "df": 5}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TemporaryProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 13, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TimeStrToDate": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeStrToUnix": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.TimestampTrunc": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimestampAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimestampSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimestampDiff": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimeSub": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimeAdd": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.TimeTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToTimeStr": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeToUnix": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TitleColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.TILDA": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 4}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.this": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.THEN": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 6}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 111, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 5}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}}, "df": 3}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 7}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}}, "df": 6}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DATABASE": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 65}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DateSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.DateFromParts": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DatetimeAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DatetimeSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.DatetimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DatetimeTrunc": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DateTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DateToDateStr": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot.expressions.DateToDi": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DateAdd": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"sqlglot.expressions.Day": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.DayOfWeek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DayOfMonth": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DayOfYear": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DASH": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.DARROW": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DAMP": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 8}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistStyleProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.dialect.Dialect": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 59, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.drill": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 197}}}}}}, "v": {"docs": {"sqlglot.expressions.Div": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1.4142135623730951}}, "df": 15}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DiToDate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.drill": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.4142135623730951}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}}, "df": 4, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}}, "df": 4}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}}, "df": 4}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.planner.Step.add_dependency": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DerivedTable": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DefinerProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Decode": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.duckdb": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}}, "df": 7}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.dfs": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {"sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.DCOLON": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.CROSS": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 6}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 5}}}, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 48, "s": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 14}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}}, "df": 2, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ColumnConstraintKind": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CollateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CollateProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLON": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CommentColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {"sqlglot.tokens.TokenType.COMMA": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Command": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}}, "df": 4, "w": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ConcatWs": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.eval": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.add_columns": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.filter": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.sort": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.set_row": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.set_index": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.set_range": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}}, "df": 13}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 6}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 3}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.convert": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}}, "df": 5}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CASCADE": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 5}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CARET": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 7}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 5}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Select.ctas": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDatetime": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.CurrentTimestamp": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CUBE": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 3}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CharacterSetProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Check": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CheckColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.replace_children": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Ceil": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 35, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Initcap": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}}, "df": 7}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}}, "df": 5}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}}, "df": 3}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INNER": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 22, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.4142135623730951}}, "df": 2, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}}, "df": 5, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.IfNull": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.is_iterable": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"sqlglot.generator.Generator.no_identify": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {"sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}}, "df": 6}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ALTER": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AlgorithmProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.AggFunc": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 3}}}}}}}, "y": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 6, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AnyValue": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.find_ancestor": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1.4142135623730951}}, "df": 5}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.ANTI": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.tokens.TokenType.ASOF": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayOverlaps": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ArrayAgg": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.ArrayAll": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ArrayAny": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArrayConcat": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayContains": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ArrayContained": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.ArrayFilter": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.ArrayJoin": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ArraySize": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArraySort": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.ArraySum": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ArrayUnionAgg": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 6}}}, "g": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ApproxDistinct": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ApproxQuantile": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 9, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AutoIncrementProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.AutoName": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Abs": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}}, "df": 6}}, "n": {"docs": {"sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 12, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}}, "df": 9}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.text_width": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ErrorLevel.WARN": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Week": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.WeekOfYear": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.wrap": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}}, "df": 6}}}, "l": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FileFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}}, "df": 5}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Final": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FULL": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.FloatDiv": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Floor": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}}, "df": 13}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.FARROW": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}}, "df": 10}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.GroupConcat": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Greatest": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.unsupported": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sep": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.seg": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pad_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.wrap": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.no_identify": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cache_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.column_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.create_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.describe_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cte_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.directory_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.delete_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.drop_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.except_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.except_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.filter_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.hint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.index_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.national_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.partition_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.root_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.property_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.insert_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.returning_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.update_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.var_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.into_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.from_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.group_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.having_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.join_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.limit_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.offset_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lock_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.literal_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.null_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.order_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sort_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.schema_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.star_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.union_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.union_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.where_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.between_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.all_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.any_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.exists_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.case_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.extract_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.trim_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.concat_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.check_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.unique_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.if_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.in_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.interval_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.return_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.reference_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.paren_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.neg_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.not_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.alias_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.add_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.and_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.connector_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.collate_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.command_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.comment_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.commit_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.div_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.distance_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.dot_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.eq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.escape_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.glob_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.gt_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.gte_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.is_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.like_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lt_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lte_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mod_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mul_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.neq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.or_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.slice_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sub_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.use_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.binary": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.format_args": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.format_time": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.naked_property": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.set_operation": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tag_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.token_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.when_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.merge_sql": {"tf": 1.4142135623730951}}, "df": 280}}, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 6}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.GT": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}}, "df": 3}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 15, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 9}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}}, "df": 4, "b": {"docs": {"sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.JSONBContains": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONBExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONBExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}}, "df": 4}}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {"sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UnixToTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToTimeStr": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}}, "df": 12}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.UnsupportedError": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}}, "df": 3}}}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Unhex": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}}, "df": 7}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Upper": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Use": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"sqlglot.expressions.Exp": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 43, "s": {"docs": {"sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.DerivedTable": {"tf": 1}, "sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.expressions.ByteString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}, "sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.expressions.Check": {"tf": 1}, "sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.expressions.National": {"tf": 1}, "sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.expressions.Final": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.expressions.Property": {"tf": 1}, "sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1}, "sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.expressions.CollateProperty": {"tf": 1}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.expressions.DefinerProperty": {"tf": 1}, "sqlglot.expressions.DistKeyProperty": {"tf": 1}, "sqlglot.expressions.DistStyleProperty": {"tf": 1}, "sqlglot.expressions.EngineProperty": {"tf": 1}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1}, "sqlglot.expressions.ExternalProperty": {"tf": 1}, "sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.expressions.FileFormatProperty": {"tf": 1}, "sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.expressions.LocationProperty": {"tf": 1}, "sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.expressions.LogProperty": {"tf": 1}, "sqlglot.expressions.MaterializedProperty": {"tf": 1}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}, "sqlglot.expressions.OnCommitProperty": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1}, "sqlglot.expressions.SerdeProperties": {"tf": 1}, "sqlglot.expressions.SetProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.TableFormatProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatilityProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Return": {"tf": 1}, "sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.expressions.SubqueryPredicate": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.expressions.Command": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.expressions.Div": {"tf": 1}, "sqlglot.expressions.FloatDiv": {"tf": 1}, "sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}, "sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.AggFunc": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.ApproxDistinct": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}, "sqlglot.expressions.ArrayAll": {"tf": 1}, "sqlglot.expressions.ArrayAny": {"tf": 1}, "sqlglot.expressions.ArrayConcat": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayContained": {"tf": 1}, "sqlglot.expressions.ArrayFilter": {"tf": 1}, "sqlglot.expressions.ArrayJoin": {"tf": 1}, "sqlglot.expressions.ArraySize": {"tf": 1}, "sqlglot.expressions.ArraySort": {"tf": 1}, "sqlglot.expressions.ArraySum": {"tf": 1}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}, "sqlglot.expressions.AnyValue": {"tf": 1}, "sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.expressions.Ceil": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.expressions.ConcatWs": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.expressions.CurrentDatetime": {"tf": 1}, "sqlglot.expressions.CurrentTime": {"tf": 1}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DateTrunc": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.DayOfWeek": {"tf": 1}, "sqlglot.expressions.DayOfMonth": {"tf": 1}, "sqlglot.expressions.DayOfYear": {"tf": 1}, "sqlglot.expressions.WeekOfYear": {"tf": 1}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.DateFromParts": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}, "sqlglot.expressions.DateToDateStr": {"tf": 1}, "sqlglot.expressions.DateToDi": {"tf": 1}, "sqlglot.expressions.Day": {"tf": 1}, "sqlglot.expressions.Decode": {"tf": 1}, "sqlglot.expressions.DiToDate": {"tf": 1}, "sqlglot.expressions.Encode": {"tf": 1}, "sqlglot.expressions.Exp": {"tf": 1}, "sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.expressions.Floor": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}, "sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.expressions.IfNull": {"tf": 1}, "sqlglot.expressions.Initcap": {"tf": 1}, "sqlglot.expressions.JSONBContains": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.JSONExtractScalar": {"tf": 1}, "sqlglot.expressions.JSONBExtract": {"tf": 1}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Length": {"tf": 1}, "sqlglot.expressions.Levenshtein": {"tf": 1}, "sqlglot.expressions.Ln": {"tf": 1}, "sqlglot.expressions.Log": {"tf": 1}, "sqlglot.expressions.Log2": {"tf": 1}, "sqlglot.expressions.Log10": {"tf": 1}, "sqlglot.expressions.LogicalOr": {"tf": 1}, "sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}, "sqlglot.expressions.Month": {"tf": 1}, "sqlglot.expressions.Nvl2": {"tf": 1}, "sqlglot.expressions.Posexplode": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}, "sqlglot.expressions.PercentileCont": {"tf": 1}, "sqlglot.expressions.PercentileDisc": {"tf": 1}, "sqlglot.expressions.Quantile": {"tf": 1}, "sqlglot.expressions.Quantiles": {"tf": 1}, "sqlglot.expressions.QuantileIf": {"tf": 1}, "sqlglot.expressions.ApproxQuantile": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}, "sqlglot.expressions.ReadCSV": {"tf": 1}, "sqlglot.expressions.Reduce": {"tf": 1}, "sqlglot.expressions.RegexpExtract": {"tf": 1}, "sqlglot.expressions.RegexpLike": {"tf": 1}, "sqlglot.expressions.RegexpILike": {"tf": 1}, "sqlglot.expressions.RegexpSplit": {"tf": 1}, "sqlglot.expressions.Repeat": {"tf": 1}, "sqlglot.expressions.Round": {"tf": 1}, "sqlglot.expressions.RowNumber": {"tf": 1}, "sqlglot.expressions.SafeDivide": {"tf": 1}, "sqlglot.expressions.SetAgg": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}, "sqlglot.expressions.StrToDate": {"tf": 1}, "sqlglot.expressions.StrToTime": {"tf": 1}, "sqlglot.expressions.StrToUnix": {"tf": 1}, "sqlglot.expressions.NumberToStr": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.expressions.StructExtract": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}, "sqlglot.expressions.Sqrt": {"tf": 1}, "sqlglot.expressions.Stddev": {"tf": 1}, "sqlglot.expressions.StddevPop": {"tf": 1}, "sqlglot.expressions.StddevSamp": {"tf": 1}, "sqlglot.expressions.TimeToStr": {"tf": 1}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1}, "sqlglot.expressions.TimeToUnix": {"tf": 1}, "sqlglot.expressions.TimeStrToDate": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1}, "sqlglot.expressions.Unhex": {"tf": 1}, "sqlglot.expressions.UnixToStr": {"tf": 1}, "sqlglot.expressions.UnixToTime": {"tf": 1}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1}, "sqlglot.expressions.Upper": {"tf": 1}, "sqlglot.expressions.Variance": {"tf": 1}, "sqlglot.expressions.VariancePop": {"tf": 1}, "sqlglot.expressions.Week": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}, "sqlglot.expressions.Year": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 575}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}}, "df": 5}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExternalProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExecuteAsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env": {"tf": 1}, "sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.executor.python": {"tf": 1}, "sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}}, "df": 59}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}}, "df": 3}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 8}}}}, "d": {"docs": {"sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.endswith": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {"sqlglot.executor.env": {"tf": 1}, "sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}}, "df": 10}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Encode": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.EngineProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.errors": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 18}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 5}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 3}}}, "q": {"docs": {"sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 9}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}}, "df": 9}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Repeat": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}}, "df": 10}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reduce": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 3}}}}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Return": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}}, "df": 3}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 7}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}}, "df": 2}}}}}, "f": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}}, "df": 5}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.ReadCSV": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpExtract": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpLike": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpILike": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpSplit": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.tokens.TokenType.ROWS": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.RowNumber": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}}, "df": 4}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Round": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}}, "df": 3, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RIGHT": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage": {"tf": 1}, "sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 8, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.LastDateOfMonth": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LanguageProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "w": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.LAZY": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LocationProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 2}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}}, "df": 2}}}}}}, "g": {"1": {"0": {"docs": {"sqlglot.expressions.Log10": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"docs": {"sqlglot.expressions.Log2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.Log": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LogProperty": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.LogicalOr": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}}, "df": 3}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.LEADING": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Length": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Levenshtein": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LEFT": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"sqlglot.expressions.LT": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot.expressions.Ln": {"tf": 1}}, "df": 1}, "r": {"docs": {"sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.hive": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1.4142135623730951}}, "df": 8}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}}, "df": 3}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}}, "df": 21}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}}, "df": 8, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 2}, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 7}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MaterializedProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}}, "df": 3}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Month": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.mysql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1.4142135623730951}}, "df": 9}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}}, "df": 7}}}}, "g": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 13}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "x": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}}, "df": 5}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BEGIN": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.bfs": {"tf": 1}}, "df": 1}}, "y": {"docs": {"sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 12, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ByteString": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}}, "df": 6}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BOTH": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BUCKET": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}}, "df": 4}}}, "e": {"docs": {"sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BREAK": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}}, "df": 13, "s": {"docs": {"sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 5}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.National": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATURAL": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NumberToStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 10, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.optimizer.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}}, "df": 8, "d": {"docs": {"sqlglot.optimizer.normalize.normalized": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 3}, "g": {"docs": {"sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}}, "df": 2}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NEXT": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}}, "df": 2}}}}}}, "l": {"2": {"docs": {"sqlglot.expressions.Nvl2": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}}, "df": 2}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Variance": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VariancePop": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VarMap": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.VolatilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}}, "df": 14}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Quantile": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Quantiles": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.QuantileIf": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}}, "df": 2}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}}, "df": 2}}, "y": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 4}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Year": {"tf": 1}}, "df": 1}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 4}}}}}}, "annotation": {"root": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}}, "df": 10, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}}, "df": 7}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 1}}}}}}}}}}}, "default_value": {"root": {"1": {"docs": {"sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}}, "df": 1}, "2": {"docs": {"sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}}, "df": 1}, "3": {"docs": {"sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}}, "df": 1}, "4": {"docs": {"sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}}, "df": 1}, "5": {"docs": {"sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}}, "df": 1}, "6": {"docs": {"sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.schema": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CARET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.XML": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DIV": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DROP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INNER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MOD": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SOME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TOP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.THEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.4142135623730951}}, "df": 391, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.4142135623730951}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.FARROW": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.FETCH": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.FILTER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FINAL": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.FORMAT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FULL": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 391, "e": {"docs": {"sqlglot.tokens.TokenType.LTE": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}}, "df": 8}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.LOCAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {"sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}}, "df": 1}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.LATERAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.LAZY": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.LEADING": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LEFT": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}}, "df": 2}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LIMIT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.4142135623730951}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 6}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SPACE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.STAR": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.4142135623730951}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.4142135623730951}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.SEMI": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SET": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.SEED": {"tf": 1.4142135623730951}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.SELECT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.SLASH": {"tf": 1.4142135623730951}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.SHOW": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SOME": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}}, "df": 2, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MERGE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {"sqlglot.tokens.TokenType.MOD": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.OR": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.ORDERED": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}}, "df": 1, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.tokens.TokenType.ON": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ONLY": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OUTER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OVER": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.4142135623730951}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 391, "e": {"docs": {"sqlglot.tokens.TokenType.GTE": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.tokens.TokenType.GLOB": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}}, "df": 20}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "v": {"docs": {"sqlglot.tokens.TokenType.DIV": {"tf": 1.4142135623730951}}, "df": 1}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}}, "df": 1, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DATABASE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DASH": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.DARROW": {"tf": 1.4142135623730951}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DAMP": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DROP": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.DOT": {"tf": 1.4142135623730951}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DELETE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.tokens.TokenType.DESC": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.DCOLON": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DPIPE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "x": {"2": {"7": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CARET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.XML": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DIV": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DROP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INNER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MOD": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SOME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TOP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.THEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.4142135623730951}}, "df": 384}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.XML": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.XML": {"tf": 1.4142135623730951}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.4142135623730951}}, "df": 2}}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.4142135623730951}}, "df": 3}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BOTH": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {"sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BREAK": {"tf": 1.4142135623730951}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}}, "df": 2}}}}, "y": {"docs": {"sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}}, "df": 7, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BUCKET": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.CROSS": {"tf": 1.4142135623730951}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.4142135623730951}}, "df": 2, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.COMMA": {"tf": 1.4142135623730951}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMMAND": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.COMMENT": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.COMMIT": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLON": {"tf": 1.4142135623730951}}, "df": 1}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLUMN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.COLLATE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CARET": {"tf": 1.4142135623730951}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CASCADE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CUBE": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}}, "df": 5}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.HINT": {"tf": 1.4142135623730951}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.HASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}}, "df": 2}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.HAVING": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}}, "df": 7, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}}, "df": 2}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.PARTITION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PLUS": {"tf": 1.4142135623730951}}, "df": 1}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1.4142135623730951}}, "df": 1}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PIVOT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PERCENT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.REPLACE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.RETURNING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.RANGE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.4142135623730951}}, "df": 2, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.ROWS": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.4142135623730951}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RIGHT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.RLIKE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}}, "df": 3, "a": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.TRAILING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TRUE": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.4142135623730951}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}}, "df": 58}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.4142135623730951}}, "df": 2}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.TILDA": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 295}}}}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1.4142135623730951}}, "df": 1}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.THEN": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 4}}}}}}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.EXISTS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "q": {"docs": {"sqlglot.tokens.TokenType.EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}}, "df": 2}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.END": {"tf": 1.4142135623730951}}, "df": 2}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ELSE": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "n": {"docs": {"sqlglot.tokens.TokenType.IN": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {"sqlglot.tokens.TokenType.INTO": {"tf": 1.4142135623730951}}, "df": 1}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INNER": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.INSERT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.IF": {"tf": 1.4142135623730951}}, "df": 1}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ILIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.IS": {"tf": 1.4142135623730951}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.ISNULL": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ErrorLevel.WARN": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.WINDOW": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WHEN": {"tf": 1.4142135623730951}}, "df": 1}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.WHERE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATURAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.4142135623730951}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}}, "df": 4, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}}, "df": 1, "t": {"docs": {"sqlglot.tokens.TokenType.NOT": {"tf": 1.4142135623730951}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.tokens.TokenType.NEQ": {"tf": 1.4142135623730951}}, "df": 1}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NEXT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ALTER": {"tf": 1.4142135623730951}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.ALL": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.4142135623730951}}, "df": 2}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}}, "df": 4}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.AND": {"tf": 1.4142135623730951}}, "df": 1}, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.ANTI": {"tf": 1.4142135623730951}}, "df": 1}}, "y": {"docs": {"sqlglot.tokens.TokenType.ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}}, "df": 3}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"tf": 1.4142135623730951}}, "df": 1}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 3}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.APPLY": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.tokens.TokenType.ASC": {"tf": 1.4142135623730951}}, "df": 1}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.tokens.TokenType.ASOF": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.4142135623730951}}, "df": 2}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNNEST": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.USE": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.UPDATE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.VALUES": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.4142135623730951}}, "df": 2, "b": {"docs": {"sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.JOIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}}, "df": 2}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 4}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}}, "df": 2}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "signature": {"root": {"0": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 5, "x": {"7": {"docs": {}, "df": 0, "f": {"5": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "a": {"3": {"2": {"4": {"docs": {}, "df": 0, "e": {"5": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "9": {"docs": {}, "df": 0, "f": {"6": {"4": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"1": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "d": {"9": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "e": {"2": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "e": {"1": {"7": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"6": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"1": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "a": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "8": {"3": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "b": {"0": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "c": {"2": {"8": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"docs": {}, "df": 0, "a": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "5": {"5": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0, "a": {"0": {"8": {"docs": {}, "df": 0, "b": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}}, "1": {"0": {"0": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "b": {"7": {"docs": {}, "df": 0, "e": {"2": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}}}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}, "1": {"0": {"0": {"docs": {"sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"8": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "4": {"0": {"0": {"4": {"0": {"2": {"4": {"0": {"2": {"0": {"5": {"9": {"6": {"8": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"3": {"2": {"3": {"2": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"2": {"3": {"3": {"9": {"2": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"2": {"8": {"3": {"2": {"docs": {"sqlglot.dataframe.sql.Column.over": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"9": {"9": {"7": {"2": {"8": {"docs": {"sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"7": {"1": {"3": {"4": {"4": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"2": {"8": {"2": {"8": {"8": {"docs": {"sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"9": {"4": {"8": {"8": {"docs": {"sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"2": {"5": {"4": {"4": {"9": {"6": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"7": {"3": {"2": {"1": {"6": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"6": {"3": {"6": {"9": {"6": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"7": {"4": {"2": {"4": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"3": {"1": {"0": {"4": {"0": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"0": {"2": {"1": {"4": {"4": {"docs": {"sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"0": {"3": {"2": {"0": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"2": {"5": {"6": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"1": {"4": {"2": {"4": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"0": {"5": {"2": {"3": {"2": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"1": {"0": {"2": {"9": {"1": {"2": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"9": {"7": {"9": {"6": {"8": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"8": {"9": {"3": {"9": {"2": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"5": {"9": {"1": {"0": {"0": {"8": {"docs": {"sqlglot.dataframe.sql.Column.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"6": {"5": {"4": {"7": {"2": {"0": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"4": {"0": {"4": {"3": {"5": {"2": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 3}, "2": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1}, "3": {"9": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 2}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isin": {"tf": 2}, "sqlglot.dataframe.sql.Column.between": {"tf": 2}, "sqlglot.dataframe.sql.Column.over": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 2}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 2}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 2}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 2}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 2}, "sqlglot.generator.Generator.sep": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.seg": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 2.449489742783178}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.expressions": {"tf": 2}, "sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 38}, "docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 2}, "6": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.4142135623730951}}, "df": 1}, "8": {"0": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot.parse": {"tf": 10.099504938362077}, "sqlglot.parse_one": {"tf": 12.727922061357855}, "sqlglot.transpile": {"tf": 14}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 6}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 12.806248474865697}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 6}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 14.2828568570857}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 6.4031242374328485}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 5.830951894845301}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 6.324555320336759}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 6.48074069840786}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 8.426149773176359}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 8.426149773176359}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 6.324555320336759}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 6.324555320336759}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 12.041594578792296}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 9.9498743710662}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 9.9498743710662}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 7.14142842854285}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 5.656854249492381}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 10.677078252031311}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 10}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 13.19090595827292}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 7.937253933193772}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 5.0990195135927845}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 8.12403840463596}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 6}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 8}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 9.327379053088816}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 6}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 6.782329983125268}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 9.16515138991168}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 8.602325267042627}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 7.0710678118654755}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 7.54983443527075}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 8.831760866327848}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 9.797958971132712}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 8.54400374531753}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 8.246211251235321}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 8.246211251235321}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 6.48074069840786}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 5.656854249492381}, "sqlglot.dataframe.sql.Column.copy": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.Column.sql": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.Column.alias": {"tf": 6}, "sqlglot.dataframe.sql.Column.asc": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.desc": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.when": {"tf": 7.937253933193772}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 6}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.cast": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 8}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 8}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 6}, "sqlglot.dataframe.sql.Column.like": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.Column.substr": {"tf": 9.9498743710662}, "sqlglot.dataframe.sql.Column.isin": {"tf": 7.937253933193772}, "sqlglot.dataframe.sql.Column.between": {"tf": 8.660254037844387}, "sqlglot.dataframe.sql.Column.over": {"tf": 7.211102550927978}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 10.677078252031311}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 10.908712114635714}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 12.083045973594572}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 9}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 9}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 5.744562646538029}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 9}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 9}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 6}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 10}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 5.830951894845301}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 4.795831523312719}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 6.557438524302}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 7.615773105863909}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 7.745966692414834}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 5.291502622129181}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 5.291502622129181}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 9.273618495495704}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 7.615773105863909}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 10.099504938362077}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 5.5677643628300215}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 5.0990195135927845}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 5.0990195135927845}, "sqlglot.dialects.dialect.rename_func": {"tf": 6.928203230275509}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.if_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 7.416198487095663}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 7.416198487095663}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 8.48528137423857}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 8.660254037844387}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 8}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 4.898979485566356}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.min_or_least": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.trim_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 4}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 4.47213595499958}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 6.855654600401044}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 6.164414002968976}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 5.477225575051661}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 5.291502622129181}, "sqlglot.diff.Insert.__init__": {"tf": 4.47213595499958}, "sqlglot.diff.Remove.__init__": {"tf": 4.47213595499958}, "sqlglot.diff.Move.__init__": {"tf": 4.47213595499958}, "sqlglot.diff.Update.__init__": {"tf": 6.164414002968976}, "sqlglot.diff.Keep.__init__": {"tf": 6.164414002968976}, "sqlglot.diff.diff": {"tf": 12.96148139681572}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 5.656854249492381}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 12.727922061357855}, "sqlglot.errors.ParseError.__init__": {"tf": 6.48074069840786}, "sqlglot.errors.ParseError.new": {"tf": 13.038404810405298}, "sqlglot.errors.concat_messages": {"tf": 5.385164807134504}, "sqlglot.errors.merge_errors": {"tf": 6.48074069840786}, "sqlglot.executor.execute": {"tf": 12.727922061357855}, "sqlglot.executor.context.Context.__init__": {"tf": 7.416198487095663}, "sqlglot.executor.context.Context.eval": {"tf": 3.7416573867739413}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 3.7416573867739413}, "sqlglot.executor.context.Context.add_columns": {"tf": 4.69041575982343}, "sqlglot.executor.context.Context.table_iter": {"tf": 7.681145747868608}, "sqlglot.executor.context.Context.filter": {"tf": 4}, "sqlglot.executor.context.Context.sort": {"tf": 4}, "sqlglot.executor.context.Context.set_row": {"tf": 4.47213595499958}, "sqlglot.executor.context.Context.set_index": {"tf": 4.47213595499958}, "sqlglot.executor.context.Context.set_range": {"tf": 5.291502622129181}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 2.8284271247461903}, "sqlglot.executor.env.filter_nulls": {"tf": 4.242640687119285}, "sqlglot.executor.env.null_if_any": {"tf": 3.4641016151377544}, "sqlglot.executor.env.str_position": {"tf": 4.69041575982343}, "sqlglot.executor.env.substring": {"tf": 5.0990195135927845}, "sqlglot.executor.env.cast": {"tf": 3.7416573867739413}, "sqlglot.executor.env.ordered": {"tf": 4.242640687119285}, "sqlglot.executor.env.interval": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 4.47213595499958}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 3.1622776601683795}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 4.795831523312719}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 4.69041575982343}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 4.242640687119285}, "sqlglot.executor.table.Table.__init__": {"tf": 4.898979485566356}, "sqlglot.executor.table.Table.add_columns": {"tf": 4.69041575982343}, "sqlglot.executor.table.Table.append": {"tf": 3.7416573867739413}, "sqlglot.executor.table.Table.pop": {"tf": 3.1622776601683795}, "sqlglot.executor.table.TableIter.__init__": {"tf": 2.8284271247461903}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 2.8284271247461903}, "sqlglot.executor.table.RowReader.__init__": {"tf": 4}, "sqlglot.executor.table.ensure_tables": {"tf": 5.744562646538029}, "sqlglot.expressions.Expression.__init__": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.text": {"tf": 4}, "sqlglot.expressions.Expression.copy": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.append": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.set": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.find": {"tf": 6.6332495807108}, "sqlglot.expressions.Expression.find_all": {"tf": 6.6332495807108}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 6}, "sqlglot.expressions.Expression.root": {"tf": 4.47213595499958}, "sqlglot.expressions.Expression.walk": {"tf": 5.0990195135927845}, "sqlglot.expressions.Expression.dfs": {"tf": 5.830951894845301}, "sqlglot.expressions.Expression.bfs": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.unnest": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.unalias": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.flatten": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.sql": {"tf": 9.055385138137417}, "sqlglot.expressions.Expression.transform": {"tf": 5.830951894845301}, "sqlglot.expressions.Expression.replace": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.pop": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.assert_is": {"tf": 3.872983346207417}, "sqlglot.expressions.Expression.error_messages": {"tf": 6}, "sqlglot.expressions.Expression.dump": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.load": {"tf": 3.7416573867739413}, "sqlglot.expressions.Condition.and_": {"tf": 5.477225575051661}, "sqlglot.expressions.Condition.or_": {"tf": 5.477225575051661}, "sqlglot.expressions.Condition.not_": {"tf": 3.1622776601683795}, "sqlglot.expressions.Unionable.union": {"tf": 6}, "sqlglot.expressions.Unionable.intersect": {"tf": 6}, "sqlglot.expressions.Unionable.except_": {"tf": 6}, "sqlglot.expressions.Literal.number": {"tf": 4.898979485566356}, "sqlglot.expressions.Literal.string": {"tf": 4.898979485566356}, "sqlglot.expressions.Join.on": {"tf": 6.782329983125268}, "sqlglot.expressions.Join.using": {"tf": 6.782329983125268}, "sqlglot.expressions.Properties.from_dict": {"tf": 4.898979485566356}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 6}, "sqlglot.expressions.Subqueryable.limit": {"tf": 7.14142842854285}, "sqlglot.expressions.Subqueryable.with_": {"tf": 8.06225774829855}, "sqlglot.expressions.Union.limit": {"tf": 7.14142842854285}, "sqlglot.expressions.Union.select": {"tf": 12}, "sqlglot.expressions.Select.from_": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.group_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.order_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.sort_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.cluster_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.limit": {"tf": 7.14142842854285}, "sqlglot.expressions.Select.offset": {"tf": 7.14142842854285}, "sqlglot.expressions.Select.select": {"tf": 12}, "sqlglot.expressions.Select.lateral": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.join": {"tf": 9.797958971132712}, "sqlglot.expressions.Select.where": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.having": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.window": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.qualify": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.distinct": {"tf": 6}, "sqlglot.expressions.Select.ctas": {"tf": 7.745966692414834}, "sqlglot.expressions.Select.lock": {"tf": 7.14142842854285}, "sqlglot.expressions.Subquery.unnest": {"tf": 3.1622776601683795}, "sqlglot.expressions.DataType.build": {"tf": 11.357816691600547}, "sqlglot.expressions.DataType.is_type": {"tf": 5.656854249492381}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func.from_arg_list": {"tf": 3.7416573867739413}, "sqlglot.expressions.Func.sql_names": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func.sql_name": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 3.1622776601683795}, "sqlglot.expressions.Cast.is_type": {"tf": 5.656854249492381}, "sqlglot.expressions.maybe_parse": {"tf": 14.696938456699069}, "sqlglot.expressions.union": {"tf": 6}, "sqlglot.expressions.intersect": {"tf": 6}, "sqlglot.expressions.except_": {"tf": 6}, "sqlglot.expressions.select": {"tf": 10.44030650891055}, "sqlglot.expressions.from_": {"tf": 6}, "sqlglot.expressions.update": {"tf": 7.810249675906654}, "sqlglot.expressions.delete": {"tf": 6.48074069840786}, "sqlglot.expressions.condition": {"tf": 5.830951894845301}, "sqlglot.expressions.and_": {"tf": 6}, "sqlglot.expressions.or_": {"tf": 6}, "sqlglot.expressions.not_": {"tf": 5.830951894845301}, "sqlglot.expressions.paren": {"tf": 4.47213595499958}, "sqlglot.expressions.to_identifier": {"tf": 4.242640687119285}, "sqlglot.expressions.to_interval": {"tf": 6.164414002968976}, "sqlglot.expressions.to_table": {"tf": 7.745966692414834}, "sqlglot.expressions.to_column": {"tf": 6.708203932499369}, "sqlglot.expressions.alias_": {"tf": 13.416407864998739}, "sqlglot.expressions.subquery": {"tf": 5.656854249492381}, "sqlglot.expressions.column": {"tf": 11.575836902790225}, "sqlglot.expressions.cast": {"tf": 9.16515138991168}, "sqlglot.expressions.table_": {"tf": 7.54983443527075}, "sqlglot.expressions.values": {"tf": 10.44030650891055}, "sqlglot.expressions.var": {"tf": 6.928203230275509}, "sqlglot.expressions.rename_table": {"tf": 7.745966692414834}, "sqlglot.expressions.convert": {"tf": 4.47213595499958}, "sqlglot.expressions.replace_children": {"tf": 3.7416573867739413}, "sqlglot.expressions.column_table_names": {"tf": 3.1622776601683795}, "sqlglot.expressions.table_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.replace_tables": {"tf": 3.7416573867739413}, "sqlglot.expressions.replace_placeholders": {"tf": 4.69041575982343}, "sqlglot.expressions.expand": {"tf": 8.306623862918075}, "sqlglot.expressions.func": {"tf": 10.04987562112089}, "sqlglot.expressions.true": {"tf": 2.6457513110645907}, "sqlglot.expressions.false": {"tf": 2.6457513110645907}, "sqlglot.expressions.null": {"tf": 2.6457513110645907}, "sqlglot.generator.Generator.__init__": {"tf": 15.033296378372908}, "sqlglot.generator.Generator.generate": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.unsupported": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.sep": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.seg": {"tf": 6}, "sqlglot.generator.Generator.pad_comment": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.maybe_comment": {"tf": 6}, "sqlglot.generator.Generator.wrap": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.no_identify": {"tf": 6.6332495807108}, "sqlglot.generator.Generator.normalize_func": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.indent": {"tf": 9.327379053088816}, "sqlglot.generator.Generator.sql": {"tf": 8.94427190999916}, "sqlglot.generator.Generator.uncache_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.cache_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.characterset_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.column_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.columndef_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 4.242640687119285}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 5.477225575051661}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 4.242640687119285}, "sqlglot.generator.Generator.create_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.describe_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 6}, "sqlglot.generator.Generator.with_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.cte_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.directory_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.delete_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.drop_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.except_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.except_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.fetch_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.filter_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.hint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.index_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.identifier_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.national_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.partition_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.properties_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.root_properties": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.properties": {"tf": 9.797958971132712}, "sqlglot.generator.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.locate_properties": {"tf": 7.937253933193772}, "sqlglot.generator.Generator.property_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.insert_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.intersect_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.intersect_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.introducer_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.returning_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.table_sql": {"tf": 6.6332495807108}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 6.855654600401044}, "sqlglot.generator.Generator.pivot_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.tuple_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.update_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.values_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.var_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.into_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.from_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.group_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.having_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.join_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lambda_sql": {"tf": 6.855654600401044}, "sqlglot.generator.Generator.lateral_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.limit_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.offset_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lock_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.literal_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.null_sql": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.boolean_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.order_sql": {"tf": 6.48074069840786}, "sqlglot.generator.Generator.cluster_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.distribute_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.sort_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.ordered_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.query_modifiers": {"tf": 6.164414002968976}, "sqlglot.generator.Generator.select_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.schema_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.star_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.parameter_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.subquery_sql": {"tf": 6.6332495807108}, "sqlglot.generator.Generator.qualify_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.union_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.union_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.unnest_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.where_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.window_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 6.557438524302}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.between_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bracket_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.all_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.any_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.exists_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.case_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.constraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.extract_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.trim_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.concat_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.check_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.unique_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.if_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.in_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.interval_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.return_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.reference_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.paren_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.neg_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.not_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.alias_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.aliases_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.add_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.and_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.connector_sql": {"tf": 6}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.collate_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.command_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.comment_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.transaction_sql": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.commit_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.rollback_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.renametable_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.altertable_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.distinct_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.div_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.distance_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.dot_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.eq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.escape_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.glob_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.gt_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.gte_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.ilike_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.is_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.like_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.similarto_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lt_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lte_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mod_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mul_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.neq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.or_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.slice_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.sub_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.trycast_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.use_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.binary": {"tf": 6}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.func": {"tf": 7.483314773547883}, "sqlglot.generator.Generator.format_args": {"tf": 6.708203932499369}, "sqlglot.generator.Generator.text_width": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.format_time": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.expressions": {"tf": 10.677078252031311}, "sqlglot.generator.Generator.op_expressions": {"tf": 7.3484692283495345}, "sqlglot.generator.Generator.naked_property": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.set_operation": {"tf": 6}, "sqlglot.generator.Generator.tag_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.token_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.when_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.merge_sql": {"tf": 5.291502622129181}, "sqlglot.helper.seq_get": {"tf": 6.164414002968976}, "sqlglot.helper.ensure_list": {"tf": 3.1622776601683795}, "sqlglot.helper.ensure_collection": {"tf": 3.1622776601683795}, "sqlglot.helper.csv": {"tf": 5.477225575051661}, "sqlglot.helper.subclasses": {"tf": 9.38083151964686}, "sqlglot.helper.apply_index_offset": {"tf": 6.6332495807108}, "sqlglot.helper.camel_to_snake_case": {"tf": 4}, "sqlglot.helper.while_changing": {"tf": 8}, "sqlglot.helper.tsort": {"tf": 6.324555320336759}, "sqlglot.helper.open_file": {"tf": 3.872983346207417}, "sqlglot.helper.csv_reader": {"tf": 4.898979485566356}, "sqlglot.helper.find_new_name": {"tf": 5.385164807134504}, "sqlglot.helper.object_to_dict": {"tf": 4.69041575982343}, "sqlglot.helper.split_num_words": {"tf": 7.615773105863909}, "sqlglot.helper.is_iterable": {"tf": 4}, "sqlglot.helper.flatten": {"tf": 6.082762530298219}, "sqlglot.helper.count_params": {"tf": 4}, "sqlglot.helper.dict_depth": {"tf": 4}, "sqlglot.helper.first": {"tf": 5}, "sqlglot.lineage.Node.__init__": {"tf": 9}, "sqlglot.lineage.Node.walk": {"tf": 5}, "sqlglot.lineage.Node.to_html": {"tf": 5.0990195135927845}, "sqlglot.lineage.lineage": {"tf": 16.522711641858304}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 10.44030650891055}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 5.830951894845301}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 5.291502622129181}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 3.7416573867739413}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 5.744562646538029}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 5.656854249492381}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 5.656854249492381}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 5.744562646538029}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3.1622776601683795}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 5.744562646538029}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 3.1622776601683795}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 4.242640687119285}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 3.1622776601683795}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 4.242640687119285}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 4.242640687119285}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.normalize": {"tf": 5.0990195135927845}, "sqlglot.optimizer.normalize.normalized": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 4.242640687119285}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 3.1622776601683795}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 3.1622776601683795}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 3.1622776601683795}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 3.7416573867739413}, "sqlglot.optimizer.optimizer.optimize": {"tf": 22.40535650240808}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 3.1622776601683795}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 3.7416573867739413}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 5.0990195135927845}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 3.7416573867739413}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 3.1622776601683795}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 5.744562646538029}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 4.69041575982343}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 5.830951894845301}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 8.06225774829855}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 5.656854249492381}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.find": {"tf": 4.898979485566356}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 4.898979485566356}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 3.7416573867739413}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 3.7416573867739413}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.build_scope": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.simplify": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 5.744562646538029}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.flatten": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.always_true": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.is_complement": {"tf": 3.7416573867739413}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.extract_date": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.date_literal": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 3.1622776601683795}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 3.1622776601683795}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 4.242640687119285}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 4.69041575982343}, "sqlglot.parser.parse_var_map": {"tf": 3.1622776601683795}, "sqlglot.parser.binary_range_parser": {"tf": 8.660254037844387}, "sqlglot.parser.Parser.__init__": {"tf": 11.269427669584644}, "sqlglot.parser.Parser.reset": {"tf": 3.1622776601683795}, "sqlglot.parser.Parser.parse": {"tf": 8.426149773176359}, "sqlglot.parser.Parser.parse_into": {"tf": 11.313708498984761}, "sqlglot.parser.Parser.check_errors": {"tf": 3.4641016151377544}, "sqlglot.parser.Parser.raise_error": {"tf": 6.855654600401044}, "sqlglot.parser.Parser.expression": {"tf": 8.54400374531753}, "sqlglot.parser.Parser.validate_expression": {"tf": 7.0710678118654755}, "sqlglot.planner.Plan.__init__": {"tf": 4.47213595499958}, "sqlglot.planner.Step.from_expression": {"tf": 8.602325267042627}, "sqlglot.planner.Step.add_dependency": {"tf": 5.291502622129181}, "sqlglot.planner.Step.to_s": {"tf": 5.0990195135927845}, "sqlglot.planner.Scan.from_expression": {"tf": 8.602325267042627}, "sqlglot.planner.Join.from_joins": {"tf": 8.888194417315589}, "sqlglot.planner.SetOperation.__init__": {"tf": 8.306623862918075}, "sqlglot.planner.SetOperation.from_expression": {"tf": 8.602325267042627}, "sqlglot.schema.Schema.add_table": {"tf": 9.539392014169456}, "sqlglot.schema.Schema.column_names": {"tf": 7.416198487095663}, "sqlglot.schema.Schema.get_column_type": {"tf": 7.745966692414834}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 4.795831523312719}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 5.744562646538029}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 8.48528137423857}, "sqlglot.schema.MappingSchema.__init__": {"tf": 10.295630140987}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 6.164414002968976}, "sqlglot.schema.MappingSchema.copy": {"tf": 5.0990195135927845}, "sqlglot.schema.MappingSchema.add_table": {"tf": 9.539392014169456}, "sqlglot.schema.MappingSchema.column_names": {"tf": 7.416198487095663}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 8.06225774829855}, "sqlglot.schema.ensure_schema": {"tf": 4.898979485566356}, "sqlglot.schema.ensure_column_mapping": {"tf": 7.483314773547883}, "sqlglot.schema.flatten_schema": {"tf": 7.54983443527075}, "sqlglot.serde.dump": {"tf": 11.045361017187261}, "sqlglot.serde.load": {"tf": 11.045361017187261}, "sqlglot.time.format_time": {"tf": 7.810249675906654}, "sqlglot.tokens.Token.__init__": {"tf": 9}, "sqlglot.tokens.Token.number": {"tf": 5.291502622129181}, "sqlglot.tokens.Token.string": {"tf": 5.291502622129181}, "sqlglot.tokens.Token.identifier": {"tf": 5.291502622129181}, "sqlglot.tokens.Token.var": {"tf": 5.291502622129181}, "sqlglot.tokens.Tokenizer.reset": {"tf": 3.4641016151377544}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 5.744562646538029}, "sqlglot.transforms.unalias_group": {"tf": 5.744562646538029}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 5.744562646538029}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 5.744562646538029}, "sqlglot.transforms.preprocess": {"tf": 10.816653826391969}, "sqlglot.transforms.delegate": {"tf": 4}, "sqlglot.trie.new_trie": {"tf": 4.898979485566356}, "sqlglot.trie.in_trie": {"tf": 6.244997998398398}}, "df": 706, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 108, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 1.7320508075688772}, "sqlglot.parse_one": {"tf": 2.23606797749979}, "sqlglot.transpile": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.if_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 3}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 3}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor.execute": {"tf": 2.23606797749979}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}, "sqlglot.expressions.rename_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2.6457513110645907}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.parser.binary_range_parser": {"tf": 2}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.Join.from_joins": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2.449489742783178}}, "df": 472}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 2}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 2}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 2}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1.4142135623730951}, "sqlglot.errors.ParseError.new": {"tf": 2.449489742783178}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.seg": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pad_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.wrap": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.no_identify": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 2}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.format_args": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 2}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2.23606797749979}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 2}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 395, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 4}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.star_sql": {"tf": 1}}, "df": 1, "t": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Join.from_joins": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 12}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 490}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1.4142135623730951}}, "df": 25, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 16}}}}}}, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 9}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 18}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.generator.Generator.sub_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 7}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.env.str_position": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.generator.Generator.properties": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 6}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.sort_sql": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.generator.Generator.similarto_sql": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.slice_sql": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 3}}}}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.Column.rlike": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.return_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.returning_sql": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 3}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.reference_sql": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}}, "df": 2, "n": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.executor.table.Table.__init__": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.rollback_sql": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 67}}, "t": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}}, "df": 2}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.unique_sql": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 7}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.uncache_sql": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}}, "df": 6}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Select.join": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.generator.Generator.use_sql": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "d": {"docs": {"sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 2}, "sqlglot.parse_one": {"tf": 2}, "sqlglot.transpile": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 2.6457513110645907}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.executor.execute": {"tf": 2}, "sqlglot.expressions.Expression.sql": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 2.23606797749979}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 2.23606797749979}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.__init__": {"tf": 2.23606797749979}}, "df": 55, "s": {"docs": {"sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.7320508075688772}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}}, "df": 17}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 36}}, "s": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 9}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.distribute_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 3}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 2.23606797749979}}, "df": 2}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.directory_sql": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {"sqlglot.generator.Generator.div_sql": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 2}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 89, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 3}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 13}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {"sqlglot.optimizer.simplify.date_literal": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}, "f": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.planner.Step.add_dependency": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}}, "df": 3}}}}, "b": {"docs": {"sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 3}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.drop_sql": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.droppartition_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.dpipe_sql": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.dot_sql": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 4}}}, "t": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1.7320508075688772}, "sqlglot.helper.first": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 5, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 39, "s": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 11}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 51}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}}, "df": 2}, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 26, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 5}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.tablealias_sql": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 4}}}}, "g": {"docs": {"sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 1}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 13}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}}, "df": 5}}}, "o": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 7, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 10}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 3.1622776601683795}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 2}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}}, "df": 125, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 40}}}}}}, "t": {"docs": {"sqlglot.expressions.not_": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1}}, "df": 8}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 26}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.national_sql": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 4}, "g": {"docs": {"sqlglot.generator.Generator.neg_sql": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.generator.Generator.neq_sql": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}}, "df": 2}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 53}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 60}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}}, "df": 11}}}}, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 5}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.overlaps_sql": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 5}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {"sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 4}}, "r": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.order_sql": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.ordered_sql": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1.4142135623730951}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1.7320508075688772}, "sqlglot.serde.load": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 53}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.like_sql": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 5, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.limit_sql": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 5}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 26, "e": {"docs": {"sqlglot.generator.Generator.lte_sql": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 3}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.locate_properties": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {"sqlglot.generator.Generator.lock_sql": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.loaddata_sql": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}}, "df": 8, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 3, "r": {"docs": {"sqlglot.parser.binary_range_parser": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 2}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Remove.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Move.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Update.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 2}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.wrap": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.__init__": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Plan.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 378, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 2}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}, "sqlglot.expressions.rename_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.parser.binary_range_parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 367}}}}}}}, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"sqlglot.generator.Generator.exists_sql": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.table.ensure_tables": {"tf": 1}}, "df": 4}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.extract_sql": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}}, "df": 6}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 3}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 7}, "v": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor.env.filter_nulls": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {"sqlglot.generator.Generator.eq_sql": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.in_sql": {"tf": 1}}, "df": 1, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1.4142135623730951}, "sqlglot.errors.ParseError.new": {"tf": 1.4142135623730951}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 33, "o": {"docs": {"sqlglot.parse_one": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.introducer_sql": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.generator.Generator.intdiv_sql": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 5}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}}, "df": 19, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.__init__": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot.helper.first": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}}, "df": 4}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}}, "df": 2}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"sqlglot.generator.Generator.is_sql": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 4, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse_one": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 6}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.collate_sql": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}}, "df": 18}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.when": {"tf": 2}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 2}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 2}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.substr": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 50, "s": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 8}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 10}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 5}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.constraint_sql": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.concat_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.connector_sql": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 28}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.eval": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor.context.Context.eval_tuple": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.command_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.commit_sql": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 30}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.cluster_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 16}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}}, "df": 4}, "e": {"docs": {"sqlglot.generator.Generator.case_sql": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.cache_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}}, "df": 3}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.characterset_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.check_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.properties": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}}, "df": 12, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}}, "df": 9}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.withingroup_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot.generator.Generator.when_sql": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 35, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.boolean_sql": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bracket_sql": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 2}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.bitstring_sql": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "x": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.binary": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.between_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}}, "df": 19}}}}}}}, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1.7320508075688772}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 2}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "x": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 5}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}}, "df": 2, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 2}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.mul_sql": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 27, "e": {"docs": {"sqlglot.generator.Generator.gte_sql": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.if_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 25}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.generator.Generator.glob_sql": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 7, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.generator.Generator.floatdiv_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 2.23606797749979}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 22}}, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 2, "c": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.count_params": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}}, "df": 3, "s": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}}, "df": 2}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.filter_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}, "l": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.fetch_sql": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 17, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 3, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 4}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.parameter_sql": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.parser": {"tf": 1.4142135623730951}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}}, "df": 2}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.partition_sql": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.paren": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}}, "df": 2, "t": {"docs": {"sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}}, "df": 2}}, "d": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.from_dict": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}}, "df": 11}}}, "y": {"docs": {"sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 3}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}}, "df": 5}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 3}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.env.str_position": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Join.from_joins": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 5}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.placeholder_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.hint_sql": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.hexstring_sql": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.having_sql": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2}}}}}}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.kwarg_sql": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 31}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}, "y": {"docs": {"sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.7320508075688772}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}}, "df": 20}, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.all_sql": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 10, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.aliases_sql": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 17}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}}, "df": 16}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.attimezone_sql": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.add_sql": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 7, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.joinhint_sql": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "x": {"2": {"7": {"docs": {"sqlglot.helper.open_file": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}}, "df": 3}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 81, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 6}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.databricks.Databricks": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.4142135623730951}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.planner.SetOperation": {"tf": 1}}, "df": 5}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.All": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.expressions.Exists": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python": {"tf": 1.4142135623730951}}, "df": 15, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}}, "df": 32}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}}, "df": 14}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}}, "df": 18}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}}, "df": 17}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}}, "df": 17}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.trino.Trino": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1.4142135623730951}}, "df": 3}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SubqueryPredicate": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}}, "df": 18}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1}, "sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.expressions.CollateProperty": {"tf": 1}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.expressions.DefinerProperty": {"tf": 1}, "sqlglot.expressions.DistKeyProperty": {"tf": 1}, "sqlglot.expressions.DistStyleProperty": {"tf": 1}, "sqlglot.expressions.EngineProperty": {"tf": 1}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1}, "sqlglot.expressions.ExternalProperty": {"tf": 1}, "sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.expressions.FileFormatProperty": {"tf": 1}, "sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.expressions.LocationProperty": {"tf": 1}, "sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.expressions.LogProperty": {"tf": 1}, "sqlglot.expressions.MaterializedProperty": {"tf": 1}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}, "sqlglot.expressions.OnCommitProperty": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1}, "sqlglot.expressions.SerdeProperties": {"tf": 1}, "sqlglot.expressions.SetProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.TableFormatProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatilityProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 43}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}}, "df": 20}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "~": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Add": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.expressions.Div": {"tf": 1}, "sqlglot.expressions.FloatDiv": {"tf": 1}, "sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayContained": {"tf": 1}, "sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.expressions.JSONBContains": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}}, "df": 42}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1.4142135623730951}}, "df": 3}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.DerivedTable": {"tf": 1}, "sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}, "sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.expressions.Check": {"tf": 1}, "sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.expressions.National": {"tf": 1}, "sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.expressions.Final": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.expressions.Property": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Return": {"tf": 1}, "sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.expressions.Command": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}}, "df": 97}}}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.spark.Spark": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1.4142135623730951}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 4}}}}}}, "m": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.starrocks.StarRocks": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 4}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {"sqlglot.schema.Schema": {"tf": 1.4142135623730951}}, "df": 1}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.ApproxDistinct": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}, "sqlglot.expressions.AnyValue": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.expressions.LogicalOr": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}, "sqlglot.expressions.PercentileCont": {"tf": 1}, "sqlglot.expressions.PercentileDisc": {"tf": 1}, "sqlglot.expressions.Quantile": {"tf": 1}, "sqlglot.expressions.Quantiles": {"tf": 1}, "sqlglot.expressions.QuantileIf": {"tf": 1}, "sqlglot.expressions.SetAgg": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}, "sqlglot.expressions.Stddev": {"tf": 1}, "sqlglot.expressions.StddevPop": {"tf": 1}, "sqlglot.expressions.StddevSamp": {"tf": 1}, "sqlglot.expressions.Variance": {"tf": 1}, "sqlglot.expressions.VariancePop": {"tf": 1}}, "df": 21}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.expressions.ByteString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 13}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ConcatWs": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1}}, "df": 18}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TryCast": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}}, "df": 3}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Neg": {"tf": 1}}, "df": 4}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}}, "df": 3}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.AggFunc": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}, "sqlglot.expressions.ArrayAll": {"tf": 1}, "sqlglot.expressions.ArrayAny": {"tf": 1}, "sqlglot.expressions.ArrayConcat": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayFilter": {"tf": 1}, "sqlglot.expressions.ArrayJoin": {"tf": 1}, "sqlglot.expressions.ArraySize": {"tf": 1}, "sqlglot.expressions.ArraySort": {"tf": 1}, "sqlglot.expressions.ArraySum": {"tf": 1}, "sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Ceil": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.expressions.CurrentDatetime": {"tf": 1}, "sqlglot.expressions.CurrentTime": {"tf": 1}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DateTrunc": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.DayOfWeek": {"tf": 1}, "sqlglot.expressions.DayOfMonth": {"tf": 1}, "sqlglot.expressions.DayOfYear": {"tf": 1}, "sqlglot.expressions.WeekOfYear": {"tf": 1}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.DateFromParts": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}, "sqlglot.expressions.DateToDateStr": {"tf": 1}, "sqlglot.expressions.DateToDi": {"tf": 1}, "sqlglot.expressions.Day": {"tf": 1}, "sqlglot.expressions.Decode": {"tf": 1}, "sqlglot.expressions.DiToDate": {"tf": 1}, "sqlglot.expressions.Encode": {"tf": 1}, "sqlglot.expressions.Exp": {"tf": 1}, "sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.expressions.Floor": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}, "sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.expressions.IfNull": {"tf": 1}, "sqlglot.expressions.Initcap": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Length": {"tf": 1}, "sqlglot.expressions.Levenshtein": {"tf": 1}, "sqlglot.expressions.Ln": {"tf": 1}, "sqlglot.expressions.Log": {"tf": 1}, "sqlglot.expressions.Log2": {"tf": 1}, "sqlglot.expressions.Log10": {"tf": 1}, "sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.Month": {"tf": 1}, "sqlglot.expressions.Nvl2": {"tf": 1}, "sqlglot.expressions.Posexplode": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}, "sqlglot.expressions.ReadCSV": {"tf": 1}, "sqlglot.expressions.Reduce": {"tf": 1}, "sqlglot.expressions.RegexpExtract": {"tf": 1}, "sqlglot.expressions.RegexpLike": {"tf": 1}, "sqlglot.expressions.RegexpILike": {"tf": 1}, "sqlglot.expressions.RegexpSplit": {"tf": 1}, "sqlglot.expressions.Repeat": {"tf": 1}, "sqlglot.expressions.Round": {"tf": 1}, "sqlglot.expressions.RowNumber": {"tf": 1}, "sqlglot.expressions.SafeDivide": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}, "sqlglot.expressions.StrToDate": {"tf": 1}, "sqlglot.expressions.StrToTime": {"tf": 1}, "sqlglot.expressions.StrToUnix": {"tf": 1}, "sqlglot.expressions.NumberToStr": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.expressions.StructExtract": {"tf": 1}, "sqlglot.expressions.Sqrt": {"tf": 1}, "sqlglot.expressions.TimeToStr": {"tf": 1}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1}, "sqlglot.expressions.TimeToUnix": {"tf": 1}, "sqlglot.expressions.TimeStrToDate": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1}, "sqlglot.expressions.Unhex": {"tf": 1}, "sqlglot.expressions.UnixToStr": {"tf": 1}, "sqlglot.expressions.UnixToTime": {"tf": 1}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1}, "sqlglot.expressions.Upper": {"tf": 1}, "sqlglot.expressions.Week": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}, "sqlglot.expressions.Year": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}}, "df": 120}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONExtractScalar": {"tf": 1}, "sqlglot.expressions.JSONBExtract": {"tf": 1}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1}}, "df": 3}}}}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ApproxQuantile": {"tf": 1}}, "df": 1}}}}}}}}}}, "doc": {"root": {"0": {"0": {"0": {"9": {"9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"0": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "3": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"4": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"2": {"5": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "5": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"0": {"5": {"4": {"5": {"5": {"2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"2": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"8": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"0": {"8": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}}}}}, "2": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "3": {"2": {"8": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"1": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"4": {"1": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"5": {"8": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"6": {"7": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "5": {"4": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 6.48074069840786}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 4.47213595499958}, "sqlglot.executor": {"tf": 2}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 38, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "1": {"0": {"0": {"0": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "2": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"1": {"4": {"2": {"0": {"0": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"0": {"4": {"0": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}}, "df": 4, "^": {"1": {"2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "1": {"4": {"5": {"docs": {}, "df": 0, "/": {"2": {"6": {"4": {"2": {"9": {"3": {"7": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "2": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "3": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "6": {"3": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "3": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "4": {"1": {"3": {"4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"1": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"1": {"8": {"0": {"8": {"8": {"0": {"2": {"8": {"2": {"9": {"5": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "8": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "9": {"8": {"6": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"6": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 6}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.diff": {"tf": 4}, "sqlglot.executor": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.dict_depth": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 43, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2}}}, "2": {"0": {"0": {"7": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "1": {"4": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"1": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "4": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "5": {"1": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "5": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"4": {"2": {"9": {"8": {"2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 2}, "9": {"4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 3.3166247903554}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 4.358898943540674}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 43}, "3": {"1": {"3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"4": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "4": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}}, "df": 1}, "7": {"7": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"sqlglot": {"tf": 6.855654600401044}, "sqlglot.dataframe": {"tf": 7.0710678118654755}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Literal.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2.8284271247461903}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Star.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Alias.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Cast.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 4}, "sqlglot.expressions.subquery": {"tf": 2.8284271247461903}, "sqlglot.expressions.cast": {"tf": 2.449489742783178}, "sqlglot.expressions.values": {"tf": 2}, "sqlglot.expressions.var": {"tf": 3.1622776601683795}, "sqlglot.expressions.column_table_names": {"tf": 2}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 2}, "sqlglot.helper.split_num_words": {"tf": 3.4641016151377544}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.8284271247461903}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 3.7416573867739413}, "sqlglot.trie.in_trie": {"tf": 2.8284271247461903}}, "df": 84}, "docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 48}, "4": {"0": {"0": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "3": {"4": {"3": {"4": {"1": {"6": {"6": {"2": {"4": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"9": {"8": {"3": {"1": {"3": {"6": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"6": {"2": {"4": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"2": {"9": {"6": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}, "8": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "9": {"3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 26}, "5": {"0": {"4": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}, "3": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}}, "df": 7}, "6": {"0": {"6": {"2": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.23606797749979}}, "df": 2, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "7": {"0": {"4": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"docs": {}, "df": 0, "\u2013": {"7": {"4": {"3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "6": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "9": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}}, "df": 1}, "8": {"0": {"5": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}, "9": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}, "9": {"0": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 61.318838867023565}, "sqlglot.pretty": {"tf": 1.7320508075688772}, "sqlglot.schema": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 5.916079783099616}, "sqlglot.parse_one": {"tf": 6.324555320336759}, "sqlglot.transpile": {"tf": 7.211102550927978}, "sqlglot.dataframe": {"tf": 48.86716689148246}, "sqlglot.dataframe.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 2.6457513110645907}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 2}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.like": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.over": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 21.817424229271428}, "sqlglot.dialects.bigquery": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.if_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 5.744562646538029}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator.setitem_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator.set_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.presto": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 3.3166247903554}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.snowflake": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.teradata": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 11.40175425099138}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 50.556898639058154}, "sqlglot.diff.Insert": {"tf": 1.4142135623730951}, "sqlglot.diff.Insert.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Remove": {"tf": 1.4142135623730951}, "sqlglot.diff.Remove.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Move": {"tf": 1.4142135623730951}, "sqlglot.diff.Move.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Update": {"tf": 1.4142135623730951}, "sqlglot.diff.Update.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Keep": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 11.313708498984761}, "sqlglot.diff.ChangeDistiller": {"tf": 2.6457513110645907}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1.7320508075688772}, "sqlglot.errors": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.7320508075688772}, "sqlglot.errors.SqlglotError": {"tf": 1.7320508075688772}, "sqlglot.errors.UnsupportedError": {"tf": 1.7320508075688772}, "sqlglot.errors.ParseError": {"tf": 1.7320508075688772}, "sqlglot.errors.ParseError.__init__": {"tf": 1.7320508075688772}, "sqlglot.errors.ParseError.new": {"tf": 1.7320508075688772}, "sqlglot.errors.TokenError": {"tf": 1.7320508075688772}, "sqlglot.errors.OptimizeError": {"tf": 1.7320508075688772}, "sqlglot.errors.SchemaError": {"tf": 1.7320508075688772}, "sqlglot.errors.ExecuteError": {"tf": 1.7320508075688772}, "sqlglot.errors.concat_messages": {"tf": 1.7320508075688772}, "sqlglot.errors.merge_errors": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 35.11409973215888}, "sqlglot.executor.execute": {"tf": 7}, "sqlglot.executor.context": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context": {"tf": 3}, "sqlglot.executor.context.Context.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.eval": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.add_columns": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.filter": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.sort": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.set_row": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.set_index": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.set_range": {"tf": 1.7320508075688772}, "sqlglot.executor.env": {"tf": 1.7320508075688772}, "sqlglot.executor.env.reverse_key": {"tf": 1.7320508075688772}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.env.filter_nulls": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 4.58257569495584}, "sqlglot.executor.env.str_position": {"tf": 1.7320508075688772}, "sqlglot.executor.env.substring": {"tf": 1.7320508075688772}, "sqlglot.executor.env.cast": {"tf": 1.7320508075688772}, "sqlglot.executor.env.ordered": {"tf": 1.7320508075688772}, "sqlglot.executor.env.interval": {"tf": 1.7320508075688772}, "sqlglot.executor.python": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 11.40175425099138}, "sqlglot.executor.table": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.add_columns": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.append": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.pop": {"tf": 1.7320508075688772}, "sqlglot.executor.table.TableIter": {"tf": 1.7320508075688772}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RangeReader": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RowReader": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 4}, "sqlglot.executor.table.ensure_tables": {"tf": 1.7320508075688772}, "sqlglot.expressions": {"tf": 4}, "sqlglot.expressions.Expression": {"tf": 10.954451150103322}, "sqlglot.expressions.Expression.__init__": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.this": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.text": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_string": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_number": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_int": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.alias": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Expression.copy": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 4.358898943540674}, "sqlglot.expressions.Expression.set": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.depth": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.find_all": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.parent_select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.root": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.walk": {"tf": 5.5677643628300215}, "sqlglot.expressions.Expression.dfs": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.bfs": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.unnest": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.unalias": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.flatten": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.sql": {"tf": 5.477225575051661}, "sqlglot.expressions.Expression.transform": {"tf": 5.477225575051661}, "sqlglot.expressions.Expression.replace": {"tf": 5.5677643628300215}, "sqlglot.expressions.Expression.pop": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.assert_is": {"tf": 9.643650760992955}, "sqlglot.expressions.Expression.error_messages": {"tf": 4.795831523312719}, "sqlglot.expressions.Expression.dump": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.load": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.and_": {"tf": 9.746794344808963}, "sqlglot.expressions.Condition.or_": {"tf": 9.746794344808963}, "sqlglot.expressions.Condition.not_": {"tf": 7.874007874011811}, "sqlglot.expressions.Predicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.DerivedTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 10.723805294763608}, "sqlglot.expressions.Unionable.intersect": {"tf": 10.677078252031311}, "sqlglot.expressions.Unionable.except_": {"tf": 10.723805294763608}, "sqlglot.expressions.UDTF": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cache": {"tf": 1.7320508075688772}, "sqlglot.expressions.Uncache": {"tf": 1.7320508075688772}, "sqlglot.expressions.Create": {"tf": 1.7320508075688772}, "sqlglot.expressions.Describe": {"tf": 1.7320508075688772}, "sqlglot.expressions.Set": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetItem": {"tf": 1.7320508075688772}, "sqlglot.expressions.Show": {"tf": 1.7320508075688772}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1.7320508075688772}, "sqlglot.expressions.CharacterSet": {"tf": 1.7320508075688772}, "sqlglot.expressions.With": {"tf": 1.7320508075688772}, "sqlglot.expressions.WithinGroup": {"tf": 1.7320508075688772}, "sqlglot.expressions.CTE": {"tf": 1.7320508075688772}, "sqlglot.expressions.TableAlias": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitString": {"tf": 1.7320508075688772}, "sqlglot.expressions.HexString": {"tf": 1.7320508075688772}, "sqlglot.expressions.ByteString": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.ColumnDef": {"tf": 1.7320508075688772}, "sqlglot.expressions.AlterColumn": {"tf": 1.7320508075688772}, "sqlglot.expressions.RenameTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetTag": {"tf": 1.7320508075688772}, "sqlglot.expressions.Comment": {"tf": 1.7320508075688772}, "sqlglot.expressions.ColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1.7320508075688772}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.Constraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.Drop": {"tf": 1.7320508075688772}, "sqlglot.expressions.Filter": {"tf": 1.7320508075688772}, "sqlglot.expressions.Check": {"tf": 1.7320508075688772}, "sqlglot.expressions.Directory": {"tf": 1.7320508075688772}, "sqlglot.expressions.ForeignKey": {"tf": 1.7320508075688772}, "sqlglot.expressions.PrimaryKey": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unique": {"tf": 1.7320508075688772}, "sqlglot.expressions.Into": {"tf": 1.7320508075688772}, "sqlglot.expressions.From": {"tf": 1.7320508075688772}, "sqlglot.expressions.Having": {"tf": 1.7320508075688772}, "sqlglot.expressions.Hint": {"tf": 1.7320508075688772}, "sqlglot.expressions.JoinHint": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Index": {"tf": 1.7320508075688772}, "sqlglot.expressions.Insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.Returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.Introducer": {"tf": 1.7320508075688772}, "sqlglot.expressions.National": {"tf": 1.7320508075688772}, "sqlglot.expressions.LoadData": {"tf": 1.7320508075688772}, "sqlglot.expressions.Partition": {"tf": 1.7320508075688772}, "sqlglot.expressions.Fetch": {"tf": 1.7320508075688772}, "sqlglot.expressions.Group": {"tf": 1.7320508075688772}, "sqlglot.expressions.Lambda": {"tf": 1.7320508075688772}, "sqlglot.expressions.Limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.number": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.string": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 11.40175425099138}, "sqlglot.expressions.Join.using": {"tf": 11.704699910719626}, "sqlglot.expressions.Lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.MatchRecognize": {"tf": 1.7320508075688772}, "sqlglot.expressions.Final": {"tf": 1.7320508075688772}, "sqlglot.expressions.Offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Order": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cluster": {"tf": 1.7320508075688772}, "sqlglot.expressions.Distribute": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sort": {"tf": 1.7320508075688772}, "sqlglot.expressions.Ordered": {"tf": 1.7320508075688772}, "sqlglot.expressions.Property": {"tf": 1.7320508075688772}, "sqlglot.expressions.AfterJournalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ChecksumProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.CollateProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DefinerProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DistKeyProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DistStyleProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.EngineProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ExternalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.FallbackProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.FileFormatProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.FreespaceProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.JournalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LanguageProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LikeProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LocationProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LockingProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LogProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.MaterializedProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.OnCommitProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ReturnsProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SerdeProperties": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortKeyProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TableFormatProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TemporaryProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TransientProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.VolatilityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.WithDataProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.from_dict": {"tf": 1.7320508075688772}, "sqlglot.expressions.Qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Return": {"tf": 1.7320508075688772}, "sqlglot.expressions.Reference": {"tf": 1.7320508075688772}, "sqlglot.expressions.Tuple": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 11.832159566199232}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 12.767145334803704}, "sqlglot.expressions.Table": {"tf": 1.7320508075688772}, "sqlglot.expressions.SystemTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 11.090536506409418}, "sqlglot.expressions.Union.select": {"tf": 10.723805294763608}, "sqlglot.expressions.Union.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Except": {"tf": 1.7320508075688772}, "sqlglot.expressions.Intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unnest": {"tf": 1.7320508075688772}, "sqlglot.expressions.Update": {"tf": 1.7320508075688772}, "sqlglot.expressions.Values": {"tf": 1.7320508075688772}, "sqlglot.expressions.Var": {"tf": 1.7320508075688772}, "sqlglot.expressions.Schema": {"tf": 1.7320508075688772}, "sqlglot.expressions.Lock": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 11.135528725660043}, "sqlglot.expressions.Select.group_by": {"tf": 11.958260743101398}, "sqlglot.expressions.Select.order_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.sort_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.cluster_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.limit": {"tf": 11.224972160321824}, "sqlglot.expressions.Select.offset": {"tf": 11.224972160321824}, "sqlglot.expressions.Select.select": {"tf": 10.246950765959598}, "sqlglot.expressions.Select.lateral": {"tf": 11.445523142259598}, "sqlglot.expressions.Select.join": {"tf": 19.026297590440446}, "sqlglot.expressions.Select.where": {"tf": 11.445523142259598}, "sqlglot.expressions.Select.having": {"tf": 12.288205727444508}, "sqlglot.expressions.Select.window": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 10.04987562112089}, "sqlglot.expressions.Select.ctas": {"tf": 11.357816691600547}, "sqlglot.expressions.Select.lock": {"tf": 14.696938456699069}, "sqlglot.expressions.Select.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.unnest": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.TableSample": {"tf": 1.7320508075688772}, "sqlglot.expressions.Tag": {"tf": 2.23606797749979}, "sqlglot.expressions.Pivot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Window": {"tf": 1.7320508075688772}, "sqlglot.expressions.WindowSpec": {"tf": 1.7320508075688772}, "sqlglot.expressions.Where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Parameter": {"tf": 1.7320508075688772}, "sqlglot.expressions.SessionParameter": {"tf": 1.7320508075688772}, "sqlglot.expressions.Placeholder": {"tf": 1.7320508075688772}, "sqlglot.expressions.Null": {"tf": 1.7320508075688772}, "sqlglot.expressions.Boolean": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1.7320508075688772}, "sqlglot.expressions.PseudoType": {"tf": 1.7320508075688772}, "sqlglot.expressions.StructKwarg": {"tf": 1.7320508075688772}, "sqlglot.expressions.SubqueryPredicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.All": {"tf": 1.7320508075688772}, "sqlglot.expressions.Any": {"tf": 1.7320508075688772}, "sqlglot.expressions.Exists": {"tf": 1.7320508075688772}, "sqlglot.expressions.Command": {"tf": 1.7320508075688772}, "sqlglot.expressions.Transaction": {"tf": 1.7320508075688772}, "sqlglot.expressions.Commit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Rollback": {"tf": 1.7320508075688772}, "sqlglot.expressions.AlterTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.AddConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.DropPartition": {"tf": 1.7320508075688772}, "sqlglot.expressions.Binary": {"tf": 1.7320508075688772}, "sqlglot.expressions.Add": {"tf": 1.7320508075688772}, "sqlglot.expressions.Connector": {"tf": 1.7320508075688772}, "sqlglot.expressions.And": {"tf": 1.7320508075688772}, "sqlglot.expressions.Or": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseAnd": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseOr": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseXor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Div": {"tf": 1.7320508075688772}, "sqlglot.expressions.FloatDiv": {"tf": 1.7320508075688772}, "sqlglot.expressions.Overlaps": {"tf": 1.7320508075688772}, "sqlglot.expressions.Dot": {"tf": 1.7320508075688772}, "sqlglot.expressions.DPipe": {"tf": 1.7320508075688772}, "sqlglot.expressions.EQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.NullSafeEQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.Distance": {"tf": 1.7320508075688772}, "sqlglot.expressions.Escape": {"tf": 1.7320508075688772}, "sqlglot.expressions.Glob": {"tf": 1.7320508075688772}, "sqlglot.expressions.GT": {"tf": 1.7320508075688772}, "sqlglot.expressions.GTE": {"tf": 1.7320508075688772}, "sqlglot.expressions.ILike": {"tf": 1.7320508075688772}, "sqlglot.expressions.ILikeAny": {"tf": 1.7320508075688772}, "sqlglot.expressions.IntDiv": {"tf": 1.7320508075688772}, "sqlglot.expressions.Is": {"tf": 1.7320508075688772}, "sqlglot.expressions.Kwarg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Like": {"tf": 1.7320508075688772}, "sqlglot.expressions.LikeAny": {"tf": 1.7320508075688772}, "sqlglot.expressions.LT": {"tf": 1.7320508075688772}, "sqlglot.expressions.LTE": {"tf": 1.7320508075688772}, "sqlglot.expressions.Mod": {"tf": 1.7320508075688772}, "sqlglot.expressions.Mul": {"tf": 1.7320508075688772}, "sqlglot.expressions.NEQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.SimilarTo": {"tf": 1.7320508075688772}, "sqlglot.expressions.Slice": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sub": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unary": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseNot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Not": {"tf": 1.7320508075688772}, "sqlglot.expressions.Paren": {"tf": 1.7320508075688772}, "sqlglot.expressions.Neg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Aliases": {"tf": 1.7320508075688772}, "sqlglot.expressions.AtTimeZone": {"tf": 1.7320508075688772}, "sqlglot.expressions.Between": {"tf": 1.7320508075688772}, "sqlglot.expressions.Bracket": {"tf": 1.7320508075688772}, "sqlglot.expressions.Distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.In": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeUnit": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1.7320508075688772}, "sqlglot.expressions.Interval": {"tf": 1.7320508075688772}, "sqlglot.expressions.IgnoreNulls": {"tf": 1.7320508075688772}, "sqlglot.expressions.RespectNulls": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 4.69041575982343}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func.sql_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func.sql_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1.7320508075688772}, "sqlglot.expressions.AggFunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.Abs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Anonymous": {"tf": 1.7320508075688772}, "sqlglot.expressions.ApproxDistinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Array": {"tf": 1.7320508075688772}, "sqlglot.expressions.GenerateSeries": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayAll": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayAny": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayConcat": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayContains": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayContained": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayFilter": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayJoin": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArraySize": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArraySort": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArraySum": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Avg": {"tf": 1.7320508075688772}, "sqlglot.expressions.AnyValue": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Cast.is_type": {"tf": 1.7320508075688772}, "sqlglot.expressions.Collate": {"tf": 1.7320508075688772}, "sqlglot.expressions.TryCast": {"tf": 1.7320508075688772}, "sqlglot.expressions.Ceil": {"tf": 1.7320508075688772}, "sqlglot.expressions.Coalesce": {"tf": 1.7320508075688772}, "sqlglot.expressions.Concat": {"tf": 1.7320508075688772}, "sqlglot.expressions.ConcatWs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Count": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentDatetime": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.DayOfWeek": {"tf": 1.7320508075688772}, "sqlglot.expressions.DayOfMonth": {"tf": 1.7320508075688772}, "sqlglot.expressions.DayOfYear": {"tf": 1.7320508075688772}, "sqlglot.expressions.WeekOfYear": {"tf": 1.7320508075688772}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1.7320508075688772}, "sqlglot.expressions.Extract": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateFromParts": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateStrToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateToDateStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateToDi": {"tf": 1.7320508075688772}, "sqlglot.expressions.Day": {"tf": 1.7320508075688772}, "sqlglot.expressions.Decode": {"tf": 1.7320508075688772}, "sqlglot.expressions.DiToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.Encode": {"tf": 1.7320508075688772}, "sqlglot.expressions.Exp": {"tf": 1.7320508075688772}, "sqlglot.expressions.Explode": {"tf": 1.7320508075688772}, "sqlglot.expressions.Floor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Greatest": {"tf": 1.7320508075688772}, "sqlglot.expressions.GroupConcat": {"tf": 1.7320508075688772}, "sqlglot.expressions.Hex": {"tf": 1.7320508075688772}, "sqlglot.expressions.If": {"tf": 1.7320508075688772}, "sqlglot.expressions.IfNull": {"tf": 1.7320508075688772}, "sqlglot.expressions.Initcap": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONBContains": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONExtractScalar": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONBExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1.7320508075688772}, "sqlglot.expressions.Least": {"tf": 1.7320508075688772}, "sqlglot.expressions.Length": {"tf": 1.7320508075688772}, "sqlglot.expressions.Levenshtein": {"tf": 1.7320508075688772}, "sqlglot.expressions.Ln": {"tf": 1.7320508075688772}, "sqlglot.expressions.Log": {"tf": 1.7320508075688772}, "sqlglot.expressions.Log2": {"tf": 1.7320508075688772}, "sqlglot.expressions.Log10": {"tf": 1.7320508075688772}, "sqlglot.expressions.LogicalOr": {"tf": 1.7320508075688772}, "sqlglot.expressions.Lower": {"tf": 1.7320508075688772}, "sqlglot.expressions.Map": {"tf": 1.7320508075688772}, "sqlglot.expressions.VarMap": {"tf": 1.7320508075688772}, "sqlglot.expressions.Matches": {"tf": 2.23606797749979}, "sqlglot.expressions.Max": {"tf": 1.7320508075688772}, "sqlglot.expressions.Min": {"tf": 1.7320508075688772}, "sqlglot.expressions.Month": {"tf": 1.7320508075688772}, "sqlglot.expressions.Nvl2": {"tf": 1.7320508075688772}, "sqlglot.expressions.Posexplode": {"tf": 1.7320508075688772}, "sqlglot.expressions.Pow": {"tf": 1.7320508075688772}, "sqlglot.expressions.PercentileCont": {"tf": 1.7320508075688772}, "sqlglot.expressions.PercentileDisc": {"tf": 1.7320508075688772}, "sqlglot.expressions.Quantile": {"tf": 1.7320508075688772}, "sqlglot.expressions.Quantiles": {"tf": 1.7320508075688772}, "sqlglot.expressions.QuantileIf": {"tf": 1.7320508075688772}, "sqlglot.expressions.ApproxQuantile": {"tf": 1.7320508075688772}, "sqlglot.expressions.RangeN": {"tf": 1.7320508075688772}, "sqlglot.expressions.ReadCSV": {"tf": 1.7320508075688772}, "sqlglot.expressions.Reduce": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpLike": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpILike": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpSplit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Repeat": {"tf": 1.7320508075688772}, "sqlglot.expressions.Round": {"tf": 1.7320508075688772}, "sqlglot.expressions.RowNumber": {"tf": 1.7320508075688772}, "sqlglot.expressions.SafeDivide": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortArray": {"tf": 1.7320508075688772}, "sqlglot.expressions.Split": {"tf": 1.7320508075688772}, "sqlglot.expressions.Substring": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrPosition": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrToTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrToUnix": {"tf": 1.7320508075688772}, "sqlglot.expressions.NumberToStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.Struct": {"tf": 1.7320508075688772}, "sqlglot.expressions.StructExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sum": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sqrt": {"tf": 1.7320508075688772}, "sqlglot.expressions.Stddev": {"tf": 1.7320508075688772}, "sqlglot.expressions.StddevPop": {"tf": 1.7320508075688772}, "sqlglot.expressions.StddevSamp": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeToStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeToUnix": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeStrToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeStrToTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1.7320508075688772}, "sqlglot.expressions.Trim": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unhex": {"tf": 1.7320508075688772}, "sqlglot.expressions.UnixToStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.UnixToTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.Upper": {"tf": 1.7320508075688772}, "sqlglot.expressions.Variance": {"tf": 1.7320508075688772}, "sqlglot.expressions.VariancePop": {"tf": 1.7320508075688772}, "sqlglot.expressions.Week": {"tf": 1.7320508075688772}, "sqlglot.expressions.XMLTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Year": {"tf": 1.7320508075688772}, "sqlglot.expressions.Use": {"tf": 1.7320508075688772}, "sqlglot.expressions.Merge": {"tf": 1.7320508075688772}, "sqlglot.expressions.When": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 10.14889156509222}, "sqlglot.expressions.union": {"tf": 10.344080432788601}, "sqlglot.expressions.intersect": {"tf": 10.344080432788601}, "sqlglot.expressions.except_": {"tf": 10.392304845413264}, "sqlglot.expressions.select": {"tf": 9.797958971132712}, "sqlglot.expressions.from_": {"tf": 9.9498743710662}, "sqlglot.expressions.update": {"tf": 12.12435565298214}, "sqlglot.expressions.delete": {"tf": 9.327379053088816}, "sqlglot.expressions.condition": {"tf": 13.92838827718412}, "sqlglot.expressions.and_": {"tf": 9.848857801796104}, "sqlglot.expressions.or_": {"tf": 9.848857801796104}, "sqlglot.expressions.not_": {"tf": 8.831760866327848}, "sqlglot.expressions.paren": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_identifier": {"tf": 5.291502622129181}, "sqlglot.expressions.to_interval": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 5.196152422706632}, "sqlglot.expressions.to_column": {"tf": 5.291502622129181}, "sqlglot.expressions.alias_": {"tf": 12.649110640673518}, "sqlglot.expressions.subquery": {"tf": 10.198039027185569}, "sqlglot.expressions.column": {"tf": 5.744562646538029}, "sqlglot.expressions.cast": {"tf": 8.888194417315589}, "sqlglot.expressions.table_": {"tf": 5.916079783099616}, "sqlglot.expressions.values": {"tf": 8.888194417315589}, "sqlglot.expressions.var": {"tf": 10.488088481701515}, "sqlglot.expressions.rename_table": {"tf": 4.898979485566356}, "sqlglot.expressions.convert": {"tf": 5}, "sqlglot.expressions.replace_children": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 8.48528137423857}, "sqlglot.expressions.table_name": {"tf": 9.797958971132712}, "sqlglot.expressions.replace_tables": {"tf": 10.44030650891055}, "sqlglot.expressions.replace_placeholders": {"tf": 11.575836902790225}, "sqlglot.expressions.expand": {"tf": 10.770329614269007}, "sqlglot.expressions.func": {"tf": 12.884098726725126}, "sqlglot.expressions.true": {"tf": 1.7320508075688772}, "sqlglot.expressions.false": {"tf": 1.7320508075688772}, "sqlglot.expressions.null": {"tf": 1.7320508075688772}, "sqlglot.generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 11.40175425099138}, "sqlglot.generator.Generator.__init__": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 3}, "sqlglot.generator.Generator.unsupported": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sep": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.seg": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pad_comment": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.wrap": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.no_identify": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.normalize_func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.indent": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cache_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.column_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.create_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.describe_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.with_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cte_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.directory_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.delete_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.drop_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.except_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.except_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.filter_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.hint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.index_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.national_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.partition_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.properties_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.root_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.with_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.property_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.insert_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.intersect_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.returning_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.table_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.update_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.var_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.into_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.from_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.group_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.having_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.join_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.limit_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.offset_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lock_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.literal_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.null_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.order_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sort_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.schema_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.star_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.union_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.union_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.where_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.window_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.between_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.all_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.any_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.exists_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.case_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.extract_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.trim_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.concat_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.check_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.unique_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.if_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.in_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.interval_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.return_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.reference_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.paren_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.neg_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.not_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.alias_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.add_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.and_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.connector_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.collate_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.command_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.comment_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.commit_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.div_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.floatdiv_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.distance_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.dot_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.eq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.escape_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.glob_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.gt_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.gte_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.is_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.like_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lt_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lte_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mod_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mul_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.neq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.or_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.slice_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sub_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.use_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.binary": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.format_args": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.text_width": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.format_time": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.expressions": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.naked_property": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.set_operation": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tag_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.token_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.when_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.merge_sql": {"tf": 1.7320508075688772}, "sqlglot.helper": {"tf": 1.7320508075688772}, "sqlglot.helper.AutoName": {"tf": 2.449489742783178}, "sqlglot.helper.seq_get": {"tf": 3.3166247903554}, "sqlglot.helper.ensure_list": {"tf": 4.795831523312719}, "sqlglot.helper.ensure_collection": {"tf": 5.196152422706632}, "sqlglot.helper.csv": {"tf": 5.291502622129181}, "sqlglot.helper.subclasses": {"tf": 5.744562646538029}, "sqlglot.helper.apply_index_offset": {"tf": 5.477225575051661}, "sqlglot.helper.camel_to_snake_case": {"tf": 2.23606797749979}, "sqlglot.helper.while_changing": {"tf": 5.291502622129181}, "sqlglot.helper.tsort": {"tf": 4.795831523312719}, "sqlglot.helper.open_file": {"tf": 1.7320508075688772}, "sqlglot.helper.csv_reader": {"tf": 5.477225575051661}, "sqlglot.helper.find_new_name": {"tf": 5.291502622129181}, "sqlglot.helper.object_to_dict": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 12.649110640673518}, "sqlglot.helper.is_iterable": {"tf": 8.94427190999916}, "sqlglot.helper.flatten": {"tf": 11.224972160321824}, "sqlglot.helper.count_params": {"tf": 1.7320508075688772}, "sqlglot.helper.dict_depth": {"tf": 11.489125293076057}, "sqlglot.helper.first": {"tf": 2.449489742783178}, "sqlglot.lineage": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.__init__": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.walk": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.to_html": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 6.928203230275509}, "sqlglot.lineage.LineageHTML": {"tf": 2.6457513110645907}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 13.2664991614216}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 4.123105625617661}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 10.198039027185569}, "sqlglot.optimizer.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 10.344080432788601}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 4.58257569495584}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 12.727922061357855}, "sqlglot.optimizer.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 10.63014581273465}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 7.874007874011811}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 9.797958971132712}, "sqlglot.optimizer.merge_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 11.180339887498949}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalize": {"tf": 10.14889156509222}, "sqlglot.optimizer.normalize.normalized": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 9.591663046625438}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 7.874007874011811}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 7.54983443527075}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 10.344080432788601}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 10.44030650891055}, "sqlglot.optimizer.qualify_columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 11.575836902790225}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 4.795831523312719}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 2}, "sqlglot.optimizer.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 10.862780491200215}, "sqlglot.optimizer.scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 9.539392014169456}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find": {"tf": 5.744562646538029}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 5.656854249492381}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 5.477225575051661}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 4.47213595499958}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 4.47213595499958}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 3.872983346207417}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 4}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 4.898979485566356}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 13.601470508735444}, "sqlglot.optimizer.scope.build_scope": {"tf": 4.69041575982343}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 5.385164807134504}, "sqlglot.optimizer.simplify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify": {"tf": 9.643650760992955}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 2.6457513110645907}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2.8284271247461903}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.always_true": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1.7320508075688772}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 9.899494936611665}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1.7320508075688772}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1.7320508075688772}, "sqlglot.parser": {"tf": 1.7320508075688772}, "sqlglot.parser.parse_var_map": {"tf": 1.7320508075688772}, "sqlglot.parser.binary_range_parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 6.082762530298219}, "sqlglot.parser.Parser.__init__": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.reset": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 5.291502622129181}, "sqlglot.parser.Parser.parse_into": {"tf": 5.744562646538029}, "sqlglot.parser.Parser.check_errors": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.raise_error": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 5.744562646538029}, "sqlglot.parser.Parser.validate_expression": {"tf": 4.358898943540674}, "sqlglot.planner": {"tf": 1.7320508075688772}, "sqlglot.planner.Plan": {"tf": 1.7320508075688772}, "sqlglot.planner.Plan.__init__": {"tf": 1.7320508075688772}, "sqlglot.planner.Step": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.from_expression": {"tf": 7.681145747868608}, "sqlglot.planner.Step.add_dependency": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.to_s": {"tf": 1.7320508075688772}, "sqlglot.planner.Scan": {"tf": 1.7320508075688772}, "sqlglot.planner.Scan.from_expression": {"tf": 7.681145747868608}, "sqlglot.planner.Join": {"tf": 1.7320508075688772}, "sqlglot.planner.Join.from_joins": {"tf": 1.7320508075688772}, "sqlglot.planner.Aggregate": {"tf": 1.7320508075688772}, "sqlglot.planner.Sort": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.__init__": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.from_expression": {"tf": 7.681145747868608}, "sqlglot.schema.Schema": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 4.358898943540674}, "sqlglot.schema.Schema.column_names": {"tf": 5.477225575051661}, "sqlglot.schema.Schema.get_column_type": {"tf": 5.477225575051661}, "sqlglot.schema.Schema.supported_table_args": {"tf": 2.449489742783178}, "sqlglot.schema.AbstractMappingSchema": {"tf": 4}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 7.211102550927978}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.copy": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 4.58257569495584}, "sqlglot.schema.MappingSchema.column_names": {"tf": 5.477225575051661}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 5.477225575051661}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.ensure_column_mapping": {"tf": 1.7320508075688772}, "sqlglot.schema.flatten_schema": {"tf": 1.7320508075688772}, "sqlglot.serde": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1.7320508075688772}, "sqlglot.serde.load": {"tf": 2.23606797749979}, "sqlglot.time": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 7.681145747868608}, "sqlglot.tokens": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.STAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EQ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AND": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CARET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.XML": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ANY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ASC": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DESC": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DIV": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DROP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.END": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FOR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INNER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTO": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MOD": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OVER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SOME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TOP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.THEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.USE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.USING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.number": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.string": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.identifier": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.var": {"tf": 2.23606797749979}, "sqlglot.tokens.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 2.23606797749979}, "sqlglot.transforms": {"tf": 1.7320508075688772}, "sqlglot.transforms.unalias_group": {"tf": 9.327379053088816}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 5.0990195135927845}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 5.477225575051661}, "sqlglot.transforms.delegate": {"tf": 2.6457513110645907}, "sqlglot.trie": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 9.327379053088816}, "sqlglot.trie.in_trie": {"tf": 13.228756555322953}}, "df": 1717, "s": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 56, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 5.5677643628300215}, "sqlglot.pretty": {"tf": 1}, "sqlglot.parse": {"tf": 2.23606797749979}, "sqlglot.parse_one": {"tf": 2.23606797749979}, "sqlglot.transpile": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 6.48074069840786}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.executor": {"tf": 6.324555320336759}, "sqlglot.executor.execute": {"tf": 2}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 2}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2.23606797749979}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 124, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 6.4031242374328485}, "sqlglot.schema": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 5}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 3}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 4.242640687119285}, "sqlglot.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2.23606797749979}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize.normalize": {"tf": 2.23606797749979}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.23606797749979}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify": {"tf": 2.23606797749979}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.23606797749979}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}}, "df": 75, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3.4641016151377544}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 11, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 3.3166247903554}}, "df": 1}}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "t": {"docs": {"sqlglot.helper.split_num_words": {"tf": 2.6457513110645907}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 5}, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}}, "df": 21}}, "c": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 3}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}}, "df": 3}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 5}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Func": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}, "x": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}}, "df": 57}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.not_": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 6, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 6}}}}}}}, "b": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.expressions": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 2}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"sqlglot.expressions.Func": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 11}}}, "y": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 11, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot": {"tf": 2.6457513110645907}}, "df": 1}}}, "m": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 5, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 6}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 3}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}}, "df": 6}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 10, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}, "w": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 13, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.diff": {"tf": 7.937253933193772}, "sqlglot.diff.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 2}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 22, "d": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}}, "df": 8}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}}, "df": 4, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 25, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 27}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}, "b": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 66, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 5, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 3.7416573867739413}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dataframe": {"tf": 2.6457513110645907}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.string": {"tf": 1.4142135623730951}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 93, "s": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 24}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.6457513110645907}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}}}, "|": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.delete": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 6.164414002968976}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.assert_is": {"tf": 2}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lateral": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 3.1622776601683795}, "sqlglot.expressions.Select.where": {"tf": 2}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Select.distinct": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.ctas": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lock": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 2}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 2.449489742783178}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.6457513110645907}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 98, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 4}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 9, "s": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.7320508075688772}}, "df": 2}}, "|": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 7}}, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 3, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}}}}}}}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 5.916079783099616}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}}, "df": 81, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}}, "df": 4}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"1": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 6, "n": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.dataframe": {"tf": 4.242640687119285}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.6457513110645907}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 21, "s": {"docs": {"sqlglot.schema.Schema": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 3.605551275463989}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 4.242640687119285}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.build_scope": {"tf": 2}}, "df": 35, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 3.605551275463989}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 4}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 41, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.7320508075688772}}, "df": 3}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.simplify.simplify": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.executor.execute": {"tf": 1}}, "df": 3}, "y": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 4.242640687119285}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 11}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}}, "df": 4}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 8}}, "w": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.replace": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 4.795831523312719}, "sqlglot.executor": {"tf": 4.69041575982343}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 3.4641016151377544}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 7.54983443527075}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 4.58257569495584}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 2}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 2.23606797749979}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.helper.AutoName": {"tf": 1.4142135623730951}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 2.23606797749979}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 150, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.7416573867739413}, "sqlglot.executor": {"tf": 4.898979485566356}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_collection": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 84, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 3}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.is_iterable": {"tf": 2.23606797749979}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.first": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3}}}}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {"sqlglot": {"tf": 4.123105625617661}, "sqlglot.schema": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3.605551275463989}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.diff": {"tf": 8.12403840463596}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 151, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 40, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 41, "s": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 53, "s": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 6}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5, "d": {"docs": {"sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 10}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}}, "df": 3, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 2}}}}}}, "t": {"6": {"4": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 2.23606797749979}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 34, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 39}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Unionable.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.6457513110645907}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "\u2019": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 6}}}}}, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.helper.seq_get": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 19}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 45}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.is_iterable": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.condition": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}}, "df": 5}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 6, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 4.358898943540674}, "sqlglot.dataframe": {"tf": 4.47213595499958}, "sqlglot.dialects": {"tf": 2}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 43, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {"sqlglot": {"tf": 4.69041575982343}, "sqlglot.dataframe": {"tf": 3}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.tokens.Token.identifier": {"tf": 1.4142135623730951}}, "df": 29, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 26}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 24, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}, "s": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}}, "f": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.diff": {"tf": 4.69041575982343}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.using": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 2}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 136}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "\u2019": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "m": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {"sqlglot": {"tf": 7.615773105863909}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 2.449489742783178}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3}, "sqlglot.diff": {"tf": 8.94427190999916}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.diff": {"tf": 2.449489742783178}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.executor": {"tf": 8.660254037844387}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 3}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.is_number": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 2}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 2.23606797749979}, "sqlglot.expressions.to_column": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 2}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 3}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 2.449489742783178}, "sqlglot.helper.ensure_collection": {"tf": 2.23606797749979}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1.7320508075688772}, "sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2}, "sqlglot.lineage.lineage": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 2}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 2}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 4.242640687119285}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 3.4641016151377544}, "sqlglot.parser.Parser": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 3.4641016151377544}, "sqlglot.planner.Scan.from_expression": {"tf": 3.4641016151377544}, "sqlglot.planner.SetOperation.from_expression": {"tf": 3.4641016151377544}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 2.23606797749979}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 229, "n": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 126, "d": {"docs": {"sqlglot": {"tf": 5.196152422706632}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 7.0710678118654755}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.executor": {"tf": 7.0710678118654755}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.6457513110645907}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2.8284271247461903}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 116}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 14}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.func": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 29, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 3, "d": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "l": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 17}}, "l": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 2}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 68, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 54, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 23}, "d": {"docs": {"sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.helper.find_new_name": {"tf": 1}}, "df": 3, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "g": {"docs": {"sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 5}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 4.47213595499958}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 77, "n": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}}, "df": 1}}, "g": {"docs": {"sqlglot.expressions.Expression": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.append": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 2}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 14, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 2}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 174}}}}}}, "s": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 11}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}, "[": {"0": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}, "1": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}, "docs": {}, "df": 0}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 4.47213595499958}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 3}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4}, "sqlglot.executor": {"tf": 4.242640687119285}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 2}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.23606797749979}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 2}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 2}, "sqlglot.planner.Scan.from_expression": {"tf": 2}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 138, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 17, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.replace_tables": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot": {"tf": 2}}, "df": 1, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7}, "s": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}}, "df": 16, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}}, "df": 3}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}}, "df": 15, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 4}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 4}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 4}, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 4}}}}}}}, "e": {"docs": {"sqlglot.dataframe": {"tf": 3.872983346207417}}, "df": 1}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 3}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.func": {"tf": 1.4142135623730951}}, "df": 1, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 5}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}, "x": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 3}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 43}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 4}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}}, "df": 3}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}}, "df": 14, "t": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.executor": {"tf": 3}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 70, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 8, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Select.group_by": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 7.745966692414834}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 28, "s": {"docs": {"sqlglot.diff": {"tf": 8.12403840463596}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 12}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}}, "df": 10, "e": {"docs": {"sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2.23606797749979}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 32}}, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}}, "df": 23, "d": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}}}, "w": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Literal.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Star.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Alias.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Func": {"tf": 2.23606797749979}, "sqlglot.expressions.Cast.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1.7320508075688772}, "sqlglot.expressions.rename_table": {"tf": 2}, "sqlglot.expressions.table_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 45, "s": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 2}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}}, "df": 33}, "d": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "\u00ef": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 51, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 7, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.find_ancestor": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe": {"tf": 3}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 2}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1.4142135623730951}}, "df": 49}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 44, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 2}}, "df": 39}}}}, "^": {"2": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}, "docs": {}, "df": 0}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 6}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}}, "df": 6}}}, "v": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 41}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}}, "df": 3, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller": {"tf": 1.4142135623730951}}, "df": 2}, "s": {"docs": {"sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 20}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 5, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 4.358898943540674}, "sqlglot.executor.python.Python.Generator": {"tf": 4.358898943540674}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 4.358898943540674}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 2.6457513110645907}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 49, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 9}, "s": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}}, "df": 21, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"sqlglot.expressions.delete": {"tf": 2.23606797749979}}, "df": 1}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}}, "df": 5}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.copy": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.simplify_not": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 2.6457513110645907}, "sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dialects": {"tf": 3.1622776601683795}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 51, "s": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 2}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 7}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 2}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 11, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2.449489742783178}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 29, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 32}}}}}}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1}}}}, "|": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 6}}}}, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 3}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 4}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 6, "n": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}}, "df": 5, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}}, "df": 4}}}}, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 5, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}}, "df": 5}, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 3}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 8}}}}, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 4.58257569495584}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}}, "df": 6}}}}}}, "g": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.Scan.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.23606797749979}}, "df": 5}, "y": {"docs": {"sqlglot.expressions.to_interval": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"sqlglot.dataframe": {"tf": 2.8284271247461903}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 3}}, "b": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2}}, "df": 9, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 4}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "d": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3.872983346207417}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 2}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 2}, "sqlglot.expressions.Identifier.output_name": {"tf": 2}, "sqlglot.expressions.Literal.output_name": {"tf": 2}, "sqlglot.expressions.Join.on": {"tf": 2}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.output_name": {"tf": 2}, "sqlglot.expressions.Star.output_name": {"tf": 2}, "sqlglot.expressions.Alias.output_name": {"tf": 2}, "sqlglot.expressions.Cast.output_name": {"tf": 2}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 79, "r": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 24, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}}}}}, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 26}, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 6}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 7, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 8, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 3}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 38}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "e": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 8}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 24}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 6}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2}, "sqlglot.planner.Scan.from_expression": {"tf": 2}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2}}, "df": 6}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 3, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 11}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 4}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 5, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 22}, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 41}}, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 2}}, "df": 2}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.449489742783178}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 3}}}}}}}, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 4.898979485566356}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 28, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "f": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}}, "df": 24, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 2}}, "df": 1}}}}}}}}}, "n": {"docs": {"sqlglot.executor": {"tf": 2.8284271247461903}}, "df": 1, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}}, "df": 7}, "y": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "h": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 18, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.transpile": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 6, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 11}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}}, "df": 5, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.872983346207417}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 71, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}}, "df": 6}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Func": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 66}}, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2.449489742783178}, "sqlglot.trie.in_trie": {"tf": 3.4641016151377544}}, "df": 24, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 4.358898943540674}, "sqlglot.pretty": {"tf": 1}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.transpile": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 3.7416573867739413}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.diff": {"tf": 8.48528137423857}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 6.708203932499369}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 3.7416573867739413}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.8284271247461903}, "sqlglot.expressions.Union.limit": {"tf": 2}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.group_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.order_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.sort_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lateral": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.join": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.Func": {"tf": 2.449489742783178}, "sqlglot.expressions.maybe_parse": {"tf": 2.6457513110645907}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 2}, "sqlglot.expressions.or_": {"tf": 2}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.6457513110645907}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 2.23606797749979}, "sqlglot.expressions.values": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 2}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 3.7416573867739413}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.7320508075688772}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 2}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.Scan.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}, "sqlglot.transforms.delegate": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 181, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 24}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 21}, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1.7320508075688772}}, "df": 2}}}}}}}, "o": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 3}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 4.242640687119285}, "sqlglot.schema": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 2}, "sqlglot.parse_one": {"tf": 2.6457513110645907}, "sqlglot.transpile": {"tf": 4}, "sqlglot.dataframe": {"tf": 4.358898943540674}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 3}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 4.47213595499958}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 4.47213595499958}, "sqlglot.diff": {"tf": 15.066519173319364}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.diff": {"tf": 3.7416573867739413}, "sqlglot.diff.ChangeDistiller": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 8.48528137423857}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 4.47213595499958}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.set": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.find_all": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 2.8284271247461903}, "sqlglot.expressions.Join.using": {"tf": 3}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 3.4641016151377544}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.from_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.group_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.order_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.sort_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.offset": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.select": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.lateral": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.join": {"tf": 3.3166247903554}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lock": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 2.8284271247461903}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 3.1622776601683795}, "sqlglot.expressions.union": {"tf": 3.1622776601683795}, "sqlglot.expressions.intersect": {"tf": 3.1622776601683795}, "sqlglot.expressions.except_": {"tf": 3.1622776601683795}, "sqlglot.expressions.select": {"tf": 3}, "sqlglot.expressions.from_": {"tf": 3.3166247903554}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 3}, "sqlglot.expressions.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.to_identifier": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 2}, "sqlglot.expressions.var": {"tf": 2}, "sqlglot.expressions.rename_table": {"tf": 2}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 3}, "sqlglot.generator.Generator": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.generate": {"tf": 1.7320508075688772}, "sqlglot.helper.AutoName": {"tf": 1.4142135623730951}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_collection": {"tf": 1.7320508075688772}, "sqlglot.helper.csv": {"tf": 1.7320508075688772}, "sqlglot.helper.subclasses": {"tf": 2.23606797749979}, "sqlglot.helper.apply_index_offset": {"tf": 2.449489742783178}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2.6457513110645907}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2.449489742783178}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.8284271247461903}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser.parse": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 2.8284271247461903}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2.449489742783178}, "sqlglot.planner.Scan.from_expression": {"tf": 2.449489742783178}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.449489742783178}, "sqlglot.schema.Schema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2.23606797749979}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 228, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 16}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 2}}, "df": 4, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 5}, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 8}, "i": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 9}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 5.744562646538029}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 65}, "n": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 4}}, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot": {"tf": 4.58257569495584}, "sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 6.244997998398398}, "sqlglot.diff.diff": {"tf": 3.4641016151377544}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 170}, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 4}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}}, "df": 3, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 7.280109889280518}, "sqlglot.diff.diff": {"tf": 2.8284271247461903}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 33, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 3.3166247903554}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2.8284271247461903}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 2.449489742783178}, "sqlglot.expressions.to_column": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 2.6457513110645907}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 83, "s": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 22, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 39}}}}}}, "|": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 3}, "n": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 29, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.time.format_time": {"tf": 2.23606797749979}}, "df": 27, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"1": {"docs": {"sqlglot.expressions.Select.join": {"tf": 2}}, "df": 1}, "2": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.8284271247461903}}, "df": 3}, "docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.replace": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 25}}, "w": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 5}, "sqlglot.executor": {"tf": 1}}, "df": 5}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 3.1622776601683795}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.23606797749979}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 30, "s": {"docs": {"sqlglot.dataframe": {"tf": 5.656854249492381}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 21}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}}}, "p": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1, "h": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}}, "df": 3}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 4, "[": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}}, "df": 3, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 11, "r": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.schema": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 9, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 10}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}}, "df": 2}}, "[": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 82}}}}, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}}, "df": 41}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 3}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {"sqlglot": {"tf": 3.605551275463989}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 3.7416573867739413}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2.8284271247461903}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 83, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 39}}}}}}, "g": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"3": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"4": {"3": {"3": {"9": {"2": {"3": {"0": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 5}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "f": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.parse": {"tf": 1}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 10.488088481701515}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 4.69041575982343}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_children": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 2}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1.4142135623730951}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.parse": {"tf": 2}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 154, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 2.23606797749979}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 21}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Literal.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Star.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Alias.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Cast.output_name": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}}, "df": 34, "s": {"docs": {"sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 6}}}, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 4.795831523312719}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 3}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 44, "e": {"docs": {"sqlglot": {"tf": 4.242640687119285}, "sqlglot.parse": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 2}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 2}, "sqlglot.expressions.Identifier.output_name": {"tf": 2}, "sqlglot.expressions.Literal.output_name": {"tf": 2}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 2}, "sqlglot.expressions.Star.output_name": {"tf": 2}, "sqlglot.expressions.Alias.output_name": {"tf": 2}, "sqlglot.expressions.Cast.output_name": {"tf": 2}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 63}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.7320508075688772}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 11, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 6}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 45, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 20}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 5, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 2}}, "df": 1}, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}}, "df": 2}}}, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.schema": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 10, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 4}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 2}}, "df": 3}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 24, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}, "v": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.helper.AutoName": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 6}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 4}}}, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 12}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1, "p": {"docs": {"sqlglot": {"tf": 4.123105625617661}, "sqlglot.dialects": {"tf": 3.3166247903554}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 19, "r": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 3.4641016151377544}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 2}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 3}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.group_by": {"tf": 3}, "sqlglot.expressions.Select.order_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.sort_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.limit": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.offset": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 3}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lock": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 3}, "sqlglot.expressions.union": {"tf": 2.6457513110645907}, "sqlglot.expressions.intersect": {"tf": 2.6457513110645907}, "sqlglot.expressions.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.condition": {"tf": 2.8284271247461903}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 2.6457513110645907}, "sqlglot.expressions.cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 2}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 2.23606797749979}, "sqlglot.expressions.replace_placeholders": {"tf": 2.23606797749979}, "sqlglot.expressions.expand": {"tf": 2.23606797749979}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 2}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.8284271247461903}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 2.8284271247461903}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2.8284271247461903}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2.6457513110645907}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 2.6457513110645907}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope": {"tf": 2}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 2}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 2}, "sqlglot.optimizer.simplify.simplify": {"tf": 2.6457513110645907}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser.parse_into": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.expression": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.validate_expression": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 2.6457513110645907}, "sqlglot.planner.Scan.from_expression": {"tf": 2.6457513110645907}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.6457513110645907}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 147, "s": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lateral": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 2.23606797749979}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 86}, "|": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.replace": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 39}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.values": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 89, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 16}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 7}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 7}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 20}}}}}, "t": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 7}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.449489742783178}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 2.449489742783178}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}}, "df": 27, "s": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 27}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 39}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 24}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 4.123105625617661}}, "df": 1, "s": {"docs": {"sqlglot.dataframe": {"tf": 3}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}}, "df": 9}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}}, "df": 22}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 2}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.helper.first": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}}, "df": 2}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 9}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 3.872983346207417}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 3}}, "df": 1}}}, "u": {"docs": {}, "df": 0, ":": {"8": {"0": {"9": {"0": {"docs": {}, "df": 0, "/": {"1": {"1": {"5": {"docs": {}, "df": 0, "/": {"1": {"docs": {}, "df": 0, "/": {"1": {"9": {"9": {"5": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1}}, "df": 2}}}}}}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2, "c": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 3}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}, "c": {"docs": {"sqlglot": {"tf": 3.605551275463989}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.flatten": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 23, "a": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot": {"tf": 3.872983346207417}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4.242640687119285}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 29, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 2.449489742783178}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.values": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.7320508075688772}}, "df": 13, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 5}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 4}, "r": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}, "t": {"docs": {"sqlglot.trie.in_trie": {"tf": 2}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 7}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.func": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 36}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}}, "df": 4, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}}, "df": 1}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 3.7416573867739413}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}}, "df": 25}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}}, "df": 13, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 40}}, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"1": {"9": {"3": {"0": {"6": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "/": {"8": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2}, "sqlglot.planner.Scan.from_expression": {"tf": 2}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2}}, "df": 27}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}}, "df": 5}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 4}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}}, "df": 2}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Join.using": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 4}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.convert": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 2}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 67}}, "l": {"1": {"docs": {"sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 3}, "2": {"docs": {"sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 3}, "docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}}, "df": 7, "a": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.6457513110645907}}, "df": 3}, "b": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2}}, "df": 2}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 3.3166247903554}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 2.449489742783178}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 2}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2}}, "df": 60, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 29}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.execute": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_collection": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}}, "df": 6, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}}, "df": 26}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 26, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 6, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 12}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.diff.diff": {"tf": 1}}, "df": 3}, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.6457513110645907}, "sqlglot.generator.Generator": {"tf": 2.6457513110645907}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 23, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 40}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 9}}, "x": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Select.ctas": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 2}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 9, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.object_to_dict": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 24}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}}, "df": 4}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 2}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 2}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 2}}, "df": 23, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Select.cluster_by": {"tf": 2}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 2}}, "df": 1, "v": {"docs": {"sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 2}}, "df": 2}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 3}}}, "b": {"docs": {"sqlglot": {"tf": 4.795831523312719}, "sqlglot.diff": {"tf": 3.7416573867739413}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.helper.dict_depth": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 3.1622776601683795}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}}, "df": 36, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4.242640687119285}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 99, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 6}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 3}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 23}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 23}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 26}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}}, "df": 6}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dialects.bigquery": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 3.872983346207417}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 15, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "s": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 9}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}}, "df": 2}}}, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2}, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 5}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.pretty": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 4.47213595499958}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}}, "df": 80, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}}, "df": 3}, "r": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}}, "df": 5, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 15, "d": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 6}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 58, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 4}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 9, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.not_": {"tf": 1.4142135623730951}}, "df": 1}}, "b": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 5}}}, "u": {"docs": {"sqlglot.executor": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 85, "d": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.schema": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 70}, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 4}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 7}}}, "r": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 10}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 23, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}}, "df": 22, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}}, "df": 3}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}}, "df": 1}, "/": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {"sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 4}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.7320508075688772}}, "df": 3}}}}}, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.Update": {"tf": 1}}, "df": 2}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe": {"tf": 4.69041575982343}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 3.4641016151377544}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 6.855654600401044}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2.23606797749979}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 84, "m": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}}, "df": 10, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.pretty": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.7320508075688772}}, "df": 26, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.csv": {"tf": 1}}, "df": 23}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}}, "df": 2}}, "l": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 14}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 12}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 3}}}}, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot": {"tf": 6.557438524302}, "sqlglot.dataframe": {"tf": 4.58257569495584}, "sqlglot.dialects": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 4.358898943540674}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "sqlglot.expressions.expand": {"tf": 2.23606797749979}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 2}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.Scan.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 117, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 4, "c": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 35, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 33}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}}, "df": 3, "y": {"docs": {"sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"6": {"4": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1.7320508075688772}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "\u00e9": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.flatten": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 6}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}}, "df": 6}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}}, "df": 10, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 15}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}}, "df": 1}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "x": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 3.4641016151377544}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 73}}, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 9}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22}, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.lineage": {"tf": 2}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 2}, "sqlglot.helper.ensure_collection": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 3}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 2}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 54, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 11}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.limit": {"tf": 2.23606797749979}}, "df": 4, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Union.limit": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {"sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {"sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.7320508075688772}}, "df": 22}}}, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}, "p": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 10}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 44}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 5.196152422706632}}, "df": 1}}}, "f": {"docs": {"sqlglot.diff": {"tf": 6.324555320336759}, "sqlglot.expressions.Expression.text": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 4}}}, "n": {"docs": {"sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 24}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42, "r": {"docs": {"sqlglot.expressions.condition": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 41}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 2}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"sqlglot.optimizer.simplify.simplify_not": {"tf": 1}}, "df": 1}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 8, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1.4142135623730951}}, "df": 8, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 4, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}}, "df": 4}, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 7}, "d": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}}, "df": 4, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 6}}}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 10, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 165}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 38}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}}, "df": 3}}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 12}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}}, "s": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 25}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 4}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 10, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}}, "df": 2}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 12, "d": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 4}, "s": {"docs": {"sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"1": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.dataframe": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 5}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "n": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}}, "df": 9}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "t": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 5}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 43, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 5}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 39}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 3}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}}, "df": 3}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "\u00e9": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 4}}}}}, "w": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4.58257569495584}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 46, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 5}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 72}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 5}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 4}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 49}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 3}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 18}}, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 51}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 40}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot.executor": {"tf": 2}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {"sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}}, "df": 11}}}, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22}, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 6, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 5.5677643628300215}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 16, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 3}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}}, "df": 3}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "\u2019": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 5, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "k": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 2.8284271247461903}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.var": {"tf": 2.449489742783178}, "sqlglot.tokens.Token.var": {"tf": 1.4142135623730951}}, "df": 4, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 2.23606797749979}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 2.23606797749979}, "sqlglot.helper.ensure_collection": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 2}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 16, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.values": {"tf": 2.8284271247461903}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 11}}}}}, "e": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.executor.context.Context": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 2}}}, "\u00e4": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 2.23606797749979}, "sqlglot.schema.AbstractMappingSchema": {"tf": 2.23606797749979}}, "df": 2}}, "g": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.7320508075688772}}, "df": 5, "[": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1.4142135623730951}}, "df": 38}}, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3, "d": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 15, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 5.656854249492381}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.replace": {"tf": 3}, "sqlglot.expressions.Expression.assert_is": {"tf": 2.449489742783178}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Predicate": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.Column.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Identifier.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Literal.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 3}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lock": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Star.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Cast.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 3.4641016151377544}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 2.449489742783178}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 2.449489742783178}, "sqlglot.expressions.column_table_names": {"tf": 2.449489742783178}, "sqlglot.expressions.table_name": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_tables": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_placeholders": {"tf": 2.449489742783178}, "sqlglot.expressions.expand": {"tf": 2.449489742783178}, "sqlglot.expressions.func": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 3}, "sqlglot.helper.is_iterable": {"tf": 2.449489742783178}, "sqlglot.helper.flatten": {"tf": 2.449489742783178}, "sqlglot.helper.dict_depth": {"tf": 3.872983346207417}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 4}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 3.4641016151377544}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 3.4641016151377544}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3.872983346207417}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 3.4641016151377544}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 2.449489742783178}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 3}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 3}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 3}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.449489742783178}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 3.4641016151377544}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 3}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3.872983346207417}, "sqlglot.optimizer.simplify.simplify": {"tf": 3}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 3}, "sqlglot.time.format_time": {"tf": 1.7320508075688772}, "sqlglot.transforms.unalias_group": {"tf": 2.449489742783178}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 3}}, "df": 95}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 2}}, "df": 13, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 3}}, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 41}}}, "t": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 6}, "d": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 3.7416573867739413}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 26, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 14.594519519326424}, "sqlglot.dataframe": {"tf": 10.392304845413264}, "sqlglot.dialects": {"tf": 5.385164807134504}, "sqlglot.diff": {"tf": 5.830951894845301}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.assert_is": {"tf": 2}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Literal.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.on": {"tf": 2}, "sqlglot.expressions.Join.using": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.8284271247461903}, "sqlglot.expressions.Union.limit": {"tf": 2}, "sqlglot.expressions.Union.select": {"tf": 2}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.order_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.sort_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.join": {"tf": 5.477225575051661}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 3.1622776601683795}, "sqlglot.expressions.Select.distinct": {"tf": 2}, "sqlglot.expressions.Select.ctas": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lock": {"tf": 4.47213595499958}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Star.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Alias.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Cast.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.union": {"tf": 2}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 2.449489742783178}, "sqlglot.expressions.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.update": {"tf": 4}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 3.1622776601683795}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_placeholders": {"tf": 2.8284271247461903}, "sqlglot.expressions.expand": {"tf": 2.449489742783178}, "sqlglot.expressions.func": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 3.4641016151377544}, "sqlglot.helper.is_iterable": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.helper.dict_depth": {"tf": 3.1622776601683795}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 2.449489742783178}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2.449489742783178}, "sqlglot.trie.in_trie": {"tf": 3.4641016151377544}}, "df": 88, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 26, "d": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 7}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 25}}}, "k": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 6, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}}}, "y": {"docs": {"sqlglot": {"tf": 3.3166247903554}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Predicate": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 3.1622776601683795}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.8284271247461903}, "sqlglot.planner.Step.from_expression": {"tf": 2.8284271247461903}, "sqlglot.planner.Scan.from_expression": {"tf": 2.8284271247461903}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.8284271247461903}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 41, "o": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 2}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 7, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}}}, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "y": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 7}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 3.7416573867739413}}, "df": 1, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 18}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "q": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 4}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 4.69041575982343}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 9, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 2}, "sqlglot.expressions.Select.having": {"tf": 1.7320508075688772}}, "df": 2}}}}, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 19, "n": {"docs": {"sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}}, "df": 3, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 2}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "f": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}}}}}, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 9, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {"sqlglot.expressions.Func": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 39, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 22}, "[": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 6}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}}, "df": 7, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}}, "df": 6}, "d": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 7.14142842854285}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.diff": {"tf": 3}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "h": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "x": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 39}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 2, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 45, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 18, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 43}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}}, "df": 1, "s": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}}, "df": 22}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}}, "df": 19}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 4}}}, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 23, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.expressions.to_interval": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.diff.diff": {"tf": 1}}, "df": 3, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "z": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 8}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "e": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 11}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}}, "df": 2}}}}}}}, "y": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 9}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "x": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 8}}}, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.on": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.join": {"tf": 3.7416573867739413}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 2.23606797749979}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 17, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 9}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 1}}}}}}, "h": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 2.23606797749979}}, "df": 5}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {"sqlglot": {"tf": 4.898979485566356}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 4.358898943540674}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Predicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2.8284271247461903}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 2}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2.23606797749979}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2.23606797749979}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.449489742783178}, "sqlglot.planner.Step.from_expression": {"tf": 4}, "sqlglot.planner.Scan.from_expression": {"tf": 4}, "sqlglot.planner.SetOperation.from_expression": {"tf": 4}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}}, "df": 62, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "z": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}}, "df": 15, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 4}}, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.set": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 2}}, "df": 34, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2}}, "df": 3}}}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 24}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 2}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Kwarg": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 28}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"sqlglot": {"fullname": "sqlglot", "modulename": "sqlglot", "kind": "module", "doc": "<h1 id=\"sqlglot\">SQLGlot</h1>\n\n<p>SQLGlot is a no-dependency SQL parser, transpiler, optimizer, and engine. It can be used to format SQL or translate between <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/dialects/__init__.py\">19 different dialects</a> like <a href=\"https://duckdb.org/\">DuckDB</a>, <a href=\"https://prestodb.io/\">Presto</a>, <a href=\"https://spark.apache.org/\">Spark</a>, <a href=\"https://www.snowflake.com/en/\">Snowflake</a>, and <a href=\"https://cloud.google.com/bigquery/\">BigQuery</a>. It aims to read a wide variety of SQL inputs and output syntactically correct SQL in the targeted dialects.</p>\n\n<p>It is a very comprehensive generic SQL parser with a robust <a href=\"https://github.com/tobymao/sqlglot/blob/main/tests/\">test suite</a>. It is also quite <a href=\"#benchmarks\">performant</a>, while being written purely in Python.</p>\n\n<p>You can easily <a href=\"#custom-dialects\">customize</a> the parser, <a href=\"#metadata\">analyze</a> queries, traverse expression trees, and programmatically <a href=\"#build-and-modify-sql\">build</a> SQL.</p>\n\n<p>Syntax <a href=\"#parser-errors\">errors</a> are highlighted and dialect incompatibilities can warn or raise depending on configurations. However, it should be noted that SQL validation is not SQLGlot\u2019s goal, so some syntax errors may go unnoticed.</p>\n\n<p>Contributions are very welcome in SQLGlot; read the <a href=\"https://github.com/tobymao/sqlglot/blob/main/CONTRIBUTING.md\">contribution guide</a> to get started!</p>\n\n<h2 id=\"table-of-contents\">Table of Contents</h2>\n\n<ul>\n<li><a href=\"#install\">Install</a></li>\n<li><a href=\"#get-in-touch\">Get in Touch</a></li>\n<li><a href=\"#examples\">Examples</a>\n<ul>\n<li><a href=\"#formatting-and-transpiling\">Formatting and Transpiling</a></li>\n<li><a href=\"#metadata\">Metadata</a></li>\n<li><a href=\"#parser-errors\">Parser Errors</a></li>\n<li><a href=\"#unsupported-errors\">Unsupported Errors</a></li>\n<li><a href=\"#build-and-modify-sql\">Build and Modify SQL</a></li>\n<li><a href=\"#sql-optimizer\">SQL Optimizer</a></li>\n<li><a href=\"#ast-introspection\">AST Introspection</a></li>\n<li><a href=\"#ast-diff\">AST Diff</a></li>\n<li><a href=\"#custom-dialects\">Custom Dialects</a></li>\n<li><a href=\"#sql-execution\">SQL Execution</a></li>\n</ul></li>\n<li><a href=\"#used-by\">Used By</a></li>\n<li><a href=\"#documentation\">Documentation</a></li>\n<li><a href=\"#run-tests-and-lint\">Run Tests and Lint</a></li>\n<li><a href=\"#benchmarks\">Benchmarks</a></li>\n<li><a href=\"#optional-dependencies\">Optional Dependencies</a></li>\n</ul>\n\n<h2 id=\"install\">Install</h2>\n\n<p>From PyPI:</p>\n\n<pre><code>pip3 install sqlglot\n</code></pre>\n\n<p>Or with a local checkout:</p>\n\n<pre><code>make install\n</code></pre>\n\n<p>Requirements for development (optional):</p>\n\n<pre><code>make install-dev\n</code></pre>\n\n<h2 id=\"get-in-touch\">Get in Touch</h2>\n\n<p>We'd love to hear from you. Join our community <a href=\"https://join.slack.com/t/tobiko-data/shared_invite/zt-1ma66d79v-a4dbf4DUpLAQJ8ptQrJygg\">Slack channel</a>!</p>\n\n<h2 id=\"examples\">Examples</h2>\n\n<h3 id=\"formatting-and-transpiling\">Formatting and Transpiling</h3>\n\n<p>Easily translate from one dialect to another. For example, date/time functions vary from dialects and can be hard to deal with:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT EPOCH_MS(1618088028295)"</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s2\">"duckdb"</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"hive"</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT FROM_UNIXTIME(1618088028295 / 1000)'</span>\n</code></pre>\n</div>\n\n<p>SQLGlot can even translate custom time formats:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT STRFTIME(x, '%y-%-m-%S')"</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s2\">"duckdb"</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"hive"</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">]</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"ss\">"SELECT DATE_FORMAT(x, 'yy-M-ss')"</span>\n</code></pre>\n</div>\n\n<p>As another example, let's suppose that we want to read in a SQL query that contains a CTE and a cast to <code>REAL</code>, and then transpile it to Spark, which uses backticks for identifiers and <code>FLOAT</code> instead of <code>REAL</code>:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n\n<span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"""WITH baz AS (SELECT a, c FROM foo WHERE a = 1) SELECT f.a, b.b, baz.c, CAST("b"."a" AS REAL) d FROM foo f JOIN bar b ON f.a = b.a LEFT JOIN baz ON f.a = baz.a"""</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"spark"</span><span class=\"p\">,</span> <span class=\"n\">identify</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">])</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">WITH</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"k\">c</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">foo</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span>\n<span class=\"p\">)</span>\n<span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"k\">c</span><span class=\"o\">`</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">FLOAT</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">d</span><span class=\"o\">`</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">foo</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span>\n<span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">bar</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">b</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span>\n<span class=\"k\">LEFT</span><span class=\"w\"> </span><span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">f</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"o\">`</span><span class=\"n\">baz</span><span class=\"o\">`</span><span class=\"p\">.</span><span class=\"o\">`</span><span class=\"n\">a</span><span class=\"o\">`</span>\n</code></pre>\n</div>\n\n<p>Comments are also preserved in a best-effort basis when transpiling SQL code:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"""</span>\n<span class=\"s2\">/* multi</span>\n<span class=\"s2\"> line</span>\n<span class=\"s2\"> comment</span>\n<span class=\"s2\">*/</span>\n<span class=\"s2\">SELECT</span>\n<span class=\"s2\"> tbl.cola /* comment 1 */ + tbl.colb /* comment 2 */,</span>\n<span class=\"s2\"> CAST(x AS INT), # comment 3</span>\n<span class=\"s2\"> y -- comment 4</span>\n<span class=\"s2\">FROM</span>\n<span class=\"s2\"> bar /* comment 5 */,</span>\n<span class=\"s2\"> tbl # comment 6</span>\n<span class=\"s2\">"""</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s1\">'mysql'</span><span class=\"p\">,</span> <span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)[</span><span class=\"mi\">0</span><span class=\"p\">])</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"cm\">/* multi</span>\n<span class=\"cm\"> line</span>\n<span class=\"cm\"> comment</span>\n<span class=\"cm\">*/</span>\n<span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"n\">tbl</span><span class=\"p\">.</span><span class=\"n\">cola</span><span class=\"w\"> </span><span class=\"cm\">/* comment 1 */</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"n\">tbl</span><span class=\"p\">.</span><span class=\"n\">colb</span><span class=\"w\"> </span><span class=\"cm\">/* comment 2 */</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">INT</span><span class=\"p\">),</span><span class=\"w\"> </span><span class=\"cm\">/* comment 3 */</span>\n<span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"cm\">/* comment 4 */</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"w\"> </span><span class=\"cm\">/* comment 5 */</span><span class=\"p\">,</span><span class=\"w\"> </span><span class=\"n\">tbl</span><span class=\"w\"> </span><span class=\"cm\">/* comment 6 */</span>\n</code></pre>\n</div>\n\n<h3 id=\"metadata\">Metadata</h3>\n\n<p>You can explore SQL with expression helpers to do things like find columns and tables:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span><span class=\"p\">,</span> <span class=\"n\">exp</span>\n\n<span class=\"c1\"># print all column references (a and b)</span>\n<span class=\"k\">for</span> <span class=\"n\">column</span> <span class=\"ow\">in</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a, b + 1 AS c FROM d"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find_all</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">alias_or_name</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># find all projections in select statements (a and c)</span>\n<span class=\"k\">for</span> <span class=\"n\">select</span> <span class=\"ow\">in</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a, b + 1 AS c FROM d"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find_all</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Select</span><span class=\"p\">):</span>\n <span class=\"k\">for</span> <span class=\"n\">projection</span> <span class=\"ow\">in</span> <span class=\"n\">select</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">projection</span><span class=\"o\">.</span><span class=\"n\">alias_or_name</span><span class=\"p\">)</span>\n\n<span class=\"c1\"># find all tables (x, y, z)</span>\n<span class=\"k\">for</span> <span class=\"n\">table</span> <span class=\"ow\">in</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x JOIN y JOIN z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find_all</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">name</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"parser-errors\">Parser Errors</h3>\n\n<p>When the parser detects an error in the syntax, it raises a ParserError:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT foo( FROM bar"</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<pre><code>sqlglot.errors.ParseError: Expecting ). Line 1, Col: 13.\n select foo( FROM bar\n ~~~~\n</code></pre>\n\n<p>Structured syntax errors are accessible for programmatic use:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"k\">try</span><span class=\"p\">:</span>\n <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT foo( FROM bar"</span><span class=\"p\">)</span>\n<span class=\"k\">except</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ParseError</span> <span class=\"k\">as</span> <span class=\"n\">e</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">[{</span>\n <span class=\"s1\">'description'</span><span class=\"p\">:</span> <span class=\"s1\">'Expecting )'</span><span class=\"p\">,</span>\n <span class=\"s1\">'line'</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span>\n <span class=\"s1\">'col'</span><span class=\"p\">:</span> <span class=\"mi\">13</span><span class=\"p\">,</span>\n <span class=\"s1\">'start_context'</span><span class=\"p\">:</span> <span class=\"s1\">'SELECT foo( '</span><span class=\"p\">,</span>\n <span class=\"s1\">'highlight'</span><span class=\"p\">:</span> <span class=\"s1\">'FROM'</span><span class=\"p\">,</span>\n <span class=\"s1\">'end_context'</span><span class=\"p\">:</span> <span class=\"s1\">' bar'</span>\n<span class=\"p\">}]</span>\n</code></pre>\n</div>\n\n<h3 id=\"unsupported-errors\">Unsupported Errors</h3>\n\n<p>Presto <code>APPROX_DISTINCT</code> supports the accuracy argument which is not supported in Hive:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">transpile</span><span class=\"p\">(</span><span class=\"s2\">"SELECT APPROX_DISTINCT(a, 0.1) FROM foo"</span><span class=\"p\">,</span> <span class=\"n\">read</span><span class=\"o\">=</span><span class=\"s2\">"presto"</span><span class=\"p\">,</span> <span class=\"n\">write</span><span class=\"o\">=</span><span class=\"s2\">"hive"</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">APPROX_COUNT_DISTINCT</span><span class=\"w\"> </span><span class=\"n\">does</span><span class=\"w\"> </span><span class=\"k\">not</span><span class=\"w\"> </span><span class=\"n\">support</span><span class=\"w\"> </span><span class=\"n\">accuracy</span>\n<span class=\"s1\">'SELECT APPROX_COUNT_DISTINCT(a) FROM foo'</span>\n</code></pre>\n</div>\n\n<h3 id=\"build-and-modify-sql\">Build and Modify SQL</h3>\n\n<p>SQLGlot supports incrementally building sql expressions:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">select</span><span class=\"p\">,</span> <span class=\"n\">condition</span>\n\n<span class=\"n\">where</span> <span class=\"o\">=</span> <span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span>\n<span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"n\">where</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT * FROM y WHERE x = 1 AND y = 1'</span>\n</code></pre>\n</div>\n\n<p>You can also modify a parsed tree:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT x FROM y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT x FROM y, z'</span>\n</code></pre>\n</div>\n\n<p>There is also a way to recursively transform the parsed tree by applying a mapping function to each tree node:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n\n<span class=\"n\">expression_tree</span> <span class=\"o\">=</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM x"</span><span class=\"p\">)</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">transformer</span><span class=\"p\">(</span><span class=\"n\">node</span><span class=\"p\">):</span>\n <span class=\"k\">if</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">node</span><span class=\"p\">,</span> <span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">)</span> <span class=\"ow\">and</span> <span class=\"n\">node</span><span class=\"o\">.</span><span class=\"n\">name</span> <span class=\"o\">==</span> <span class=\"s2\">"a"</span><span class=\"p\">:</span>\n <span class=\"k\">return</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"FUN(a)"</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"n\">node</span>\n\n<span class=\"n\">transformed_tree</span> <span class=\"o\">=</span> <span class=\"n\">expression_tree</span><span class=\"o\">.</span><span class=\"n\">transform</span><span class=\"p\">(</span><span class=\"n\">transformer</span><span class=\"p\">)</span>\n<span class=\"n\">transformed_tree</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"s1\">'SELECT FUN(a) FROM x'</span>\n</code></pre>\n</div>\n\n<h3 id=\"sql-optimizer\">SQL Optimizer</h3>\n\n<p>SQLGlot can rewrite queries into an \"optimized\" form. It performs a variety of <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/optimizer/optimizer.py\">techniques</a> to create a new canonical AST. This AST can be used to standardize queries or provide the foundations for implementing an actual engine. For example:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.optimizer</span> <span class=\"kn\">import</span> <span class=\"n\">optimize</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span>\n <span class=\"n\">optimize</span><span class=\"p\">(</span>\n <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"""</span>\n<span class=\"s2\"> SELECT A OR (B OR (C AND D))</span>\n<span class=\"s2\"> FROM x</span>\n<span class=\"s2\"> WHERE Z = date '2021-01-01' + INTERVAL '1' month OR 1 = 0</span>\n<span class=\"s2\"> """</span><span class=\"p\">),</span>\n <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">"x"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"A"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"B"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"C"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"D"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"Z"</span><span class=\"p\">:</span> <span class=\"s2\">"STRING"</span><span class=\"p\">}}</span>\n <span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"a"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"b"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"c"</span>\n<span class=\"w\"> </span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"a"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"b"</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"d"</span>\n<span class=\"w\"> </span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"_col_0"</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"x"</span>\n<span class=\"k\">WHERE</span>\n<span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"ss\">"x"</span><span class=\"p\">.</span><span class=\"ss\">"z"</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">DATE</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"k\">CAST</span><span class=\"p\">(</span><span class=\"s1\">'2021-02-01'</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"nb\">DATE</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"ast-introspection\">AST Introspection</h3>\n\n<p>You can see the AST version of the sql by calling <code>repr</code>:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"nb\">repr</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a + 1 AS z"</span><span class=\"p\">)))</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">(</span><span class=\"n\">SELECT</span> <span class=\"n\">expressions</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">ALIAS</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">ADD</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">expression</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">LITERAL</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"n\">is_string</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">alias</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">z</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)))</span>\n</code></pre>\n</div>\n\n<h3 id=\"ast-diff\">AST Diff</h3>\n\n<p>SQLGlot can calculate the difference between two expressions and output changes in a form of a sequence of actions needed to transform a source expression into a target one:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">diff</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a + b, c, d"</span><span class=\"p\">),</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT c, a - b, d"</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">[</span>\n <span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">ADD</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">expression</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)))),</span>\n <span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">SUB</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">a</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span> <span class=\"n\">expression</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)))),</span>\n <span class=\"n\">Move</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">COLUMN</span> <span class=\"n\">this</span><span class=\"p\">:</span>\n <span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">c</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">))),</span>\n <span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">),</span> <span class=\"n\">target</span><span class=\"o\">=</span><span class=\"p\">(</span><span class=\"n\">IDENTIFIER</span> <span class=\"n\">this</span><span class=\"p\">:</span> <span class=\"n\">b</span><span class=\"p\">,</span> <span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">)),</span>\n <span class=\"o\">...</span>\n<span class=\"p\">]</span>\n</code></pre>\n</div>\n\n<p>See also: <a href=\"https://github.com/tobymao/sqlglot/blob/main/posts/sql_diff.md\">Semantic Diff for SQL</a>.</p>\n\n<h3 id=\"custom-dialects\">Custom Dialects</h3>\n\n<p><a href=\"https://github.com/tobymao/sqlglot/tree/main/sqlglot/dialects\">Dialects</a> can be added by subclassing <code>Dialect</code>:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dialects.dialect</span> <span class=\"kn\">import</span> <span class=\"n\">Dialect</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.generator</span> <span class=\"kn\">import</span> <span class=\"n\">Generator</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.tokens</span> <span class=\"kn\">import</span> <span class=\"n\">Tokenizer</span><span class=\"p\">,</span> <span class=\"n\">TokenType</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Custom</span><span class=\"p\">(</span><span class=\"n\">Dialect</span><span class=\"p\">):</span>\n <span class=\"k\">class</span> <span class=\"nc\">Tokenizer</span><span class=\"p\">(</span><span class=\"n\">Tokenizer</span><span class=\"p\">):</span>\n <span class=\"n\">QUOTES</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"'"</span><span class=\"p\">,</span> <span class=\"s1\">'"'</span><span class=\"p\">]</span>\n <span class=\"n\">IDENTIFIERS</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"`"</span><span class=\"p\">]</span>\n\n <span class=\"n\">KEYWORDS</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <span class=\"o\">**</span><span class=\"n\">Tokenizer</span><span class=\"o\">.</span><span class=\"n\">KEYWORDS</span><span class=\"p\">,</span>\n <span class=\"s2\">"INT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">BIGINT</span><span class=\"p\">,</span>\n <span class=\"s2\">"FLOAT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">DOUBLE</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n\n <span class=\"k\">class</span> <span class=\"nc\">Generator</span><span class=\"p\">(</span><span class=\"n\">Generator</span><span class=\"p\">):</span>\n <span class=\"n\">TRANSFORMS</span> <span class=\"o\">=</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=\"k\">lambda</span> <span class=\"bp\">self</span><span class=\"p\">,</span> <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\">expressions</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">)</span><span class=\"si\">}</span><span class=\"s2\">]"</span><span class=\"p\">}</span>\n\n <span class=\"n\">TYPE_MAPPING</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <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\">TINYINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">SMALLINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">"INT64"</span><span class=\"p\">,</span>\n <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\">BIGINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">DECIMAL</span><span class=\"p\">:</span> <span class=\"s2\">"NUMERIC"</span><span class=\"p\">,</span>\n <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\">FLOAT</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">DOUBLE</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">BOOLEAN</span><span class=\"p\">:</span> <span class=\"s2\">"BOOL"</span><span class=\"p\">,</span>\n <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\">TEXT</span><span class=\"p\">:</span> <span class=\"s2\">"STRING"</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">Dialect</span><span class=\"p\">[</span><span class=\"s2\">"custom"</span><span class=\"p\">])</span>\n</code></pre>\n</div>\n\n<pre><code><class '__main__.Custom'>\n</code></pre>\n\n<h3 id=\"sql-execution\">SQL Execution</h3>\n\n<p>One can even interpret SQL queries using SQLGlot, where the tables are represented as Python dictionaries. Although the engine is not very fast (it's not supposed to be) and is in a relatively early stage of development, it can be useful for unit testing and running SQL natively across Python objects. Additionally, the foundation can be easily integrated with fast compute kernels (arrow, pandas). Below is an example showcasing the execution of a SELECT expression that involves aggregations and JOINs:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot.executor</span> <span class=\"kn\">import</span> <span class=\"n\">execute</span>\n\n<span class=\"n\">tables</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <span class=\"s2\">"sushi"</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"price"</span><span class=\"p\">:</span> <span class=\"mf\">1.0</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"price"</span><span class=\"p\">:</span> <span class=\"mf\">2.0</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"price"</span><span class=\"p\">:</span> <span class=\"mf\">3.0</span><span class=\"p\">},</span>\n <span class=\"p\">],</span>\n <span class=\"s2\">"order_items"</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"sushi_id"</span><span class=\"p\">:</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"order_id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">},</span>\n <span class=\"p\">],</span>\n <span class=\"s2\">"orders"</span><span class=\"p\">:</span> <span class=\"p\">[</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"user_id"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">},</span>\n <span class=\"p\">{</span><span class=\"s2\">"id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"user_id"</span><span class=\"p\">:</span> <span class=\"mi\">2</span><span class=\"p\">},</span>\n <span class=\"p\">],</span>\n<span class=\"p\">}</span>\n\n<span class=\"n\">execute</span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"sd\">"""</span>\n<span class=\"sd\"> SELECT</span>\n<span class=\"sd\"> o.user_id,</span>\n<span class=\"sd\"> SUM(s.price) AS price</span>\n<span class=\"sd\"> FROM orders o</span>\n<span class=\"sd\"> JOIN order_items i</span>\n<span class=\"sd\"> ON o.id = i.order_id</span>\n<span class=\"sd\"> JOIN sushi s</span>\n<span class=\"sd\"> ON i.sushi_id = s.id</span>\n<span class=\"sd\"> GROUP BY o.user_id</span>\n<span class=\"sd\"> """</span><span class=\"p\">,</span>\n <span class=\"n\">tables</span><span class=\"o\">=</span><span class=\"n\">tables</span>\n<span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">user_id</span> <span class=\"n\">price</span>\n <span class=\"mi\">1</span> <span class=\"mf\">4.0</span>\n <span class=\"mi\">2</span> <span class=\"mf\">3.0</span>\n</code></pre>\n</div>\n\n<p>See also: <a href=\"https://github.com/tobymao/sqlglot/blob/main/posts/python_sql_engine.md\">Writing a Python SQL engine from scratch</a>.</p>\n\n<h2 id=\"used-by\">Used By</h2>\n\n<ul>\n<li><a href=\"https://github.com/fugue-project/fugue\">Fugue</a></li>\n<li><a href=\"https://github.com/ibis-project/ibis\">ibis</a></li>\n<li><a href=\"https://github.com/kelsin/mysql-mimic\">mysql-mimic</a></li>\n<li><a href=\"https://github.com/pinterest/querybook\">Querybook</a></li>\n<li><a href=\"https://github.com/marsupialtail/quokka\">Quokka</a></li>\n<li><a href=\"https://github.com/moj-analytical-services/splink\">Splink</a></li>\n</ul>\n\n<h2 id=\"documentation\">Documentation</h2>\n\n<p>SQLGlot uses <a href=\"https://pdoc.dev/\">pdoc</a> to serve its API documentation:</p>\n\n<pre><code>make docs-serve\n</code></pre>\n\n<h2 id=\"run-tests-and-lint\">Run Tests and Lint</h2>\n\n<pre><code>make check # Set SKIP_INTEGRATION=1 to skip integration tests\n</code></pre>\n\n<h2 id=\"benchmarks\">Benchmarks</h2>\n\n<p><a href=\"https://github.com/tobymao/sqlglot/blob/main/benchmarks/bench.py\">Benchmarks</a> run on Python 3.10.5 in seconds.</p>\n\n<table>\n<thead>\n<tr>\n <th>Query</th>\n <th>sqlglot</th>\n <th>sqlfluff</th>\n <th>sqltree</th>\n <th>sqlparse</th>\n <th>moz_sql_parser</th>\n <th>sqloxide</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n <td>tpch</td>\n <td>0.01308 (1.0)</td>\n <td>1.60626 (122.7)</td>\n <td>0.01168 (0.893)</td>\n <td>0.04958 (3.791)</td>\n <td>0.08543 (6.531)</td>\n <td>0.00136 (0.104)</td>\n</tr>\n<tr>\n <td>short</td>\n <td>0.00109 (1.0)</td>\n <td>0.14134 (129.2)</td>\n <td>0.00099 (0.906)</td>\n <td>0.00342 (3.131)</td>\n <td>0.00652 (5.970)</td>\n <td>8.76E-5 (0.080)</td>\n</tr>\n<tr>\n <td>long</td>\n <td>0.01399 (1.0)</td>\n <td>2.12632 (151.9)</td>\n <td>0.01126 (0.805)</td>\n <td>0.04410 (3.151)</td>\n <td>0.06671 (4.767)</td>\n <td>0.00107 (0.076)</td>\n</tr>\n<tr>\n <td>crazy</td>\n <td>0.03969 (1.0)</td>\n <td>24.3777 (614.1)</td>\n <td>0.03917 (0.987)</td>\n <td>11.7043 (294.8)</td>\n <td>1.03280 (26.02)</td>\n <td>0.00625 (0.157)</td>\n</tr>\n</tbody>\n</table>\n\n<h2 id=\"optional-dependencies\">Optional Dependencies</h2>\n\n<p>SQLGlot uses <a href=\"https://github.com/dateutil/dateutil\">dateutil</a> to simplify literal timedelta expressions. The optimizer will not simplify expressions like the following if the module cannot be found:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"nb\">interval</span><span class=\"w\"> </span><span class=\"s1\">'1'</span><span class=\"w\"> </span><span class=\"k\">month</span>\n</code></pre>\n</div>\n\n<hr />\n"}, "sqlglot.pretty": {"fullname": "sqlglot.pretty", "modulename": "sqlglot", "qualname": "pretty", "kind": "variable", "doc": "<p>Whether to format generated SQL by default.</p>\n", "default_value": "False"}, "sqlglot.schema": {"fullname": "sqlglot.schema", "modulename": "sqlglot.schema", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.parse": {"fullname": "sqlglot.parse", "modulename": "sqlglot", "qualname": "parse", "kind": "function", "doc": "<p>Parses the given SQL string into a collection of syntax trees, one per parsed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> the SQL code string to parse.</li>\n<li><strong>read:</strong> the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>**opts:</strong> other <code>sqlglot.parser.Parser</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The resulting syntax tree collection.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parse_one": {"fullname": "sqlglot.parse_one", "modulename": "sqlglot", "qualname": "parse_one", "kind": "function", "doc": "<p>Parses the given SQL string and returns a syntax tree for the first parsed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> the SQL code string to parse.</li>\n<li><strong>read:</strong> the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>into:</strong> the SQLGlot Expression to parse into.</li>\n<li><strong>**opts:</strong> other <code>sqlglot.parser.Parser</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The syntax tree for the first parsed statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">into</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transpile": {"fullname": "sqlglot.transpile", "modulename": "sqlglot", "qualname": "transpile", "kind": "function", "doc": "<p>Parses the given SQL string in accordance with the source dialect and returns a list of SQL strings transformed\nto conform to the target dialect. Each string in the returned list represents a single transformed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> the SQL code string to transpile.</li>\n<li><strong>read:</strong> the source dialect used to parse the input string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>write:</strong> the target dialect into which the input should be transformed (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>identity:</strong> if set to <code>True</code> and if the target dialect is not specified the source dialect will be used as both:\nthe source and the target dialect.</li>\n<li><strong>error_level:</strong> the desired error level of the parser.</li>\n<li><strong>**opts:</strong> other <code>sqlglot.generator.Generator</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of transpiled SQL statements.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">write</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identity</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">error_level</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ErrorLevel</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe": {"fullname": "sqlglot.dataframe", "modulename": "sqlglot.dataframe", "kind": "module", "doc": "<h1 id=\"pyspark-dataframe-sql-generator\">PySpark DataFrame SQL Generator</h1>\n\n<p>This is a drop-in replacement for the PySpark DataFrame API that will generate SQL instead of executing DataFrame operations directly. This, when combined with the transpiling support in SQLGlot, allows one to write PySpark DataFrame code and execute it on other engines like <a href=\"https://duckdb.org/\">DuckDB</a>, <a href=\"https://prestodb.io/\">Presto</a>, <a href=\"https://spark.apache.org/\">Spark</a>, <a href=\"https://www.snowflake.com/en/\">Snowflake</a>, and <a href=\"https://cloud.google.com/bigquery/\">BigQuery</a>. </p>\n\n<p>Currently many of the common operations are covered and more functionality will be added over time. Please <a href=\"https://github.com/tobymao/sqlglot/issues\">open an issue</a> or <a href=\"https://github.com/tobymao/sqlglot/pulls\">PR</a> with your feedback or contribution to help influence what should be prioritized next and make sure your use case is properly supported.</p>\n\n<h1 id=\"how-to-use\">How to use</h1>\n\n<h2 id=\"instructions\">Instructions</h2>\n\n<ul>\n<li><a href=\"https://github.com/tobymao/sqlglot/blob/main/README.md#install\">Install SQLGlot</a> and that is all that is required to just generate SQL. <a href=\"#examples\">The examples</a> show generating SQL and then executing that SQL on a specific engine and that will require that engine's client library.</li>\n<li>Find/replace all <code>from pyspark.sql</code> with <code>from sqlglot.dataframe</code>.</li>\n<li>Prior to any <code>spark.read.table</code> or <code>spark.table</code> run <code>sqlglot.schema.add_table('<table_name>', <column_structure>)</code>.\n<ul>\n<li>The column structure can be defined the following ways:\n<ul>\n<li>Dictionary where the keys are column names and values are string of the Spark SQL type name.\n<ul>\n<li>Ex: <code>{'cola': 'string', 'colb': 'int'}</code></li>\n</ul></li>\n<li>PySpark DataFrame <code>StructType</code> similar to when using <code>createDataFrame</code>.\n<ul>\n<li>Ex: <code>StructType([StructField('cola', StringType()), StructField('colb', IntegerType())])</code></li>\n</ul></li>\n<li>A string of names and types similar to what is supported in <code>createDataFrame</code>.\n<ul>\n<li>Ex: <code>cola: STRING, colb: INT</code></li>\n</ul></li>\n<li>[Not Recommended] A list of string column names without type.\n<ul>\n<li>Ex: <code>['cola', 'colb']</code></li>\n<li>The lack of types may limit functionality in future releases.</li>\n</ul></li>\n</ul></li>\n<li>See <a href=\"#registering-custom-schema-class\">Registering Custom Schema</a> for information on how to skip this step if the information is stored externally.</li>\n</ul></li>\n<li>Add <code>.sql(pretty=True)</code> to your final DataFrame command to return a list of sql statements to run that command.\n<ul>\n<li>In most cases a single SQL statement is returned. Currently the only exception is when caching DataFrames which isn't supported in other dialects. </li>\n<li>Spark is the default output dialect. See <a href=\"https://github.com/tobymao/sqlglot/tree/main/sqlglot/dialects\">dialects</a> for a full list of dialects.</li>\n<li>Ex: <code>.sql(pretty=True, dialect='bigquery')</code></li>\n</ul></li>\n</ul>\n\n<h2 id=\"examples\">Examples</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">add_table</span><span class=\"p\">(</span><span class=\"s1\">'employee'</span><span class=\"p\">,</span> <span class=\"p\">{</span>\n <span class=\"s1\">'employee_id'</span><span class=\"p\">:</span> <span class=\"s1\">'INT'</span><span class=\"p\">,</span>\n <span class=\"s1\">'fname'</span><span class=\"p\">:</span> <span class=\"s1\">'STRING'</span><span class=\"p\">,</span>\n <span class=\"s1\">'lname'</span><span class=\"p\">:</span> <span class=\"s1\">'STRING'</span><span class=\"p\">,</span>\n <span class=\"s1\">'age'</span><span class=\"p\">:</span> <span class=\"s1\">'INT'</span><span class=\"p\">,</span>\n<span class=\"p\">})</span> <span class=\"c1\"># Register the table structure prior to reading from the table</span>\n\n<span class=\"n\">spark</span> <span class=\"o\">=</span> <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n\n<span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">spark</span>\n <span class=\"o\">.</span><span class=\"n\">table</span><span class=\"p\">(</span><span class=\"s1\">'employee'</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span> \n<span class=\"p\">)</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">df</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span> <span class=\"c1\"># Spark will be the dialect used by default</span>\n</code></pre>\n</div>\n\n<pre><code>SELECT\n `employee`.`age` AS `age`,\n COUNT(DISTINCT `employee`.`employee_id`) AS `num_employees`\nFROM `employee` AS `employee`\nGROUP BY\n `employee`.`age`\n</code></pre>\n\n<h2 id=\"registering-custom-schema-class\">Registering Custom Schema Class</h2>\n\n<p>The step of adding <code>sqlglot.schema.add_table</code> can be skipped if you have the column structure stored externally like in a file or from an external metadata table. This can be done by writing a class that implements the <code>sqlglot.schema.Schema</code> abstract class and then assigning that class to <code>sqlglot.schema</code>. </p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.schema</span> <span class=\"kn\">import</span> <span class=\"n\">Schema</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">ExternalSchema</span><span class=\"p\">(</span><span class=\"n\">Schema</span><span class=\"p\">):</span>\n <span class=\"o\">...</span>\n\n<span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">ExternalSchema</span><span class=\"p\">()</span>\n\n<span class=\"n\">spark</span> <span class=\"o\">=</span> <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n\n<span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">spark</span>\n <span class=\"o\">.</span><span class=\"n\">table</span><span class=\"p\">(</span><span class=\"s1\">'employee'</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span> \n<span class=\"p\">)</span>\n\n<span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"n\">df</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<h2 id=\"example-implementations\">Example Implementations</h2>\n\n<h3 id=\"bigquery\">Bigquery</h3>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">google.cloud</span> <span class=\"kn\">import</span> <span class=\"n\">bigquery</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">types</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">client</span> <span class=\"o\">=</span> <span class=\"n\">bigquery</span><span class=\"o\">.</span><span class=\"n\">Client</span><span class=\"p\">()</span>\n\n<span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n <span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"Jack"</span><span class=\"p\">,</span> <span class=\"s2\">"Shephard"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"John"</span><span class=\"p\">,</span> <span class=\"s2\">"Locke"</span><span class=\"p\">,</span> <span class=\"mi\">48</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"Kate"</span><span class=\"p\">,</span> <span class=\"s2\">"Austen"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"s2\">"Claire"</span><span class=\"p\">,</span> <span class=\"s2\">"Littleton"</span><span class=\"p\">,</span> <span class=\"mi\">22</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"Hugo"</span><span class=\"p\">,</span> <span class=\"s2\">"Reyes"</span><span class=\"p\">,</span> <span class=\"mi\">26</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n<span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">([</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'employee_id'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'fname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'lname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'age'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n<span class=\"p\">])</span>\n\n<span class=\"n\">sql_statements</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n <span class=\"o\">.</span><span class=\"n\">createDataFrame</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"bigquery"</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n\n<span class=\"n\">result</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"k\">for</span> <span class=\"n\">sql</span> <span class=\"ow\">in</span> <span class=\"n\">sql_statements</span><span class=\"p\">:</span>\n <span class=\"n\">result</span> <span class=\"o\">=</span> <span class=\"n\">client</span><span class=\"o\">.</span><span class=\"n\">query</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n\n<span class=\"k\">assert</span> <span class=\"n\">result</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n<span class=\"k\">for</span> <span class=\"n\">row</span> <span class=\"ow\">in</span> <span class=\"n\">client</span><span class=\"o\">.</span><span class=\"n\">query</span><span class=\"p\">(</span><span class=\"n\">result</span><span class=\"p\">):</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"sa\">f</span><span class=\"s2\">"Age: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"s1\">'age'</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">, Num Employees: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"s1\">'num_employees'</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">"</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"snowflake\">Snowflake</h3>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">import</span> <span class=\"nn\">os</span>\n\n<span class=\"kn\">import</span> <span class=\"nn\">snowflake.connector</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe</span> <span class=\"kn\">import</span> <span class=\"n\">types</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">ctx</span> <span class=\"o\">=</span> <span class=\"n\">snowflake</span><span class=\"o\">.</span><span class=\"n\">connector</span><span class=\"o\">.</span><span class=\"n\">connect</span><span class=\"p\">(</span>\n <span class=\"n\">user</span><span class=\"o\">=</span><span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">"SNOWFLAKE_USER"</span><span class=\"p\">],</span>\n <span class=\"n\">password</span><span class=\"o\">=</span><span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">"SNOWFLAKE_PASS"</span><span class=\"p\">],</span>\n <span class=\"n\">account</span><span class=\"o\">=</span><span class=\"n\">os</span><span class=\"o\">.</span><span class=\"n\">environ</span><span class=\"p\">[</span><span class=\"s2\">"SNOWFLAKE_ACCOUNT"</span><span class=\"p\">]</span>\n<span class=\"p\">)</span>\n<span class=\"n\">cs</span> <span class=\"o\">=</span> <span class=\"n\">ctx</span><span class=\"o\">.</span><span class=\"n\">cursor</span><span class=\"p\">()</span>\n\n<span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n <span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"Jack"</span><span class=\"p\">,</span> <span class=\"s2\">"Shephard"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"John"</span><span class=\"p\">,</span> <span class=\"s2\">"Locke"</span><span class=\"p\">,</span> <span class=\"mi\">48</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"Kate"</span><span class=\"p\">,</span> <span class=\"s2\">"Austen"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"s2\">"Claire"</span><span class=\"p\">,</span> <span class=\"s2\">"Littleton"</span><span class=\"p\">,</span> <span class=\"mi\">22</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"Hugo"</span><span class=\"p\">,</span> <span class=\"s2\">"Reyes"</span><span class=\"p\">,</span> <span class=\"mi\">26</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n<span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">([</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'employee_id'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'fname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'lname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'age'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n<span class=\"p\">])</span>\n\n<span class=\"n\">sql_statements</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n <span class=\"o\">.</span><span class=\"n\">createDataFrame</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"lname"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"snowflake"</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n\n<span class=\"k\">try</span><span class=\"p\">:</span>\n <span class=\"k\">for</span> <span class=\"n\">sql</span> <span class=\"ow\">in</span> <span class=\"n\">sql_statements</span><span class=\"p\">:</span>\n <span class=\"n\">cs</span><span class=\"o\">.</span><span class=\"n\">execute</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n <span class=\"n\">results</span> <span class=\"o\">=</span> <span class=\"n\">cs</span><span class=\"o\">.</span><span class=\"n\">fetchall</span><span class=\"p\">()</span>\n <span class=\"k\">for</span> <span class=\"n\">row</span> <span class=\"ow\">in</span> <span class=\"n\">results</span><span class=\"p\">:</span>\n <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"sa\">f</span><span class=\"s2\">"Age: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">, Num Employees: </span><span class=\"si\">{</span><span class=\"n\">row</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"si\">}</span><span class=\"s2\">"</span><span class=\"p\">)</span>\n<span class=\"k\">finally</span><span class=\"p\">:</span>\n <span class=\"n\">cs</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n<span class=\"n\">ctx</span><span class=\"o\">.</span><span class=\"n\">close</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<h3 id=\"spark\">Spark</h3>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">pyspark.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span> <span class=\"k\">as</span> <span class=\"n\">PySparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql.session</span> <span class=\"kn\">import</span> <span class=\"n\">SparkSession</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">types</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dataframe.sql</span> <span class=\"kn\">import</span> <span class=\"n\">functions</span> <span class=\"k\">as</span> <span class=\"n\">F</span>\n\n<span class=\"n\">data</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n <span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"Jack"</span><span class=\"p\">,</span> <span class=\"s2\">"Shephard"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"s2\">"John"</span><span class=\"p\">,</span> <span class=\"s2\">"Locke"</span><span class=\"p\">,</span> <span class=\"mi\">48</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"s2\">"Kate"</span><span class=\"p\">,</span> <span class=\"s2\">"Austen"</span><span class=\"p\">,</span> <span class=\"mi\">34</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">4</span><span class=\"p\">,</span> <span class=\"s2\">"Claire"</span><span class=\"p\">,</span> <span class=\"s2\">"Littleton"</span><span class=\"p\">,</span> <span class=\"mi\">22</span><span class=\"p\">),</span>\n <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"Hugo"</span><span class=\"p\">,</span> <span class=\"s2\">"Reyes"</span><span class=\"p\">,</span> <span class=\"mi\">26</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n<span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">([</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'employee_id'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'fname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'lname'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StringType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructField</span><span class=\"p\">(</span><span class=\"s1\">'age'</span><span class=\"p\">,</span> <span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">IntegerType</span><span class=\"p\">(),</span> <span class=\"kc\">False</span><span class=\"p\">),</span>\n<span class=\"p\">])</span>\n\n<span class=\"n\">sql_statements</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"n\">SparkSession</span><span class=\"p\">()</span>\n <span class=\"o\">.</span><span class=\"n\">createDataFrame</span><span class=\"p\">(</span><span class=\"n\">data</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span>\n <span class=\"o\">.</span><span class=\"n\">groupBy</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"age"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">agg</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">countDistinct</span><span class=\"p\">(</span><span class=\"n\">F</span><span class=\"o\">.</span><span class=\"n\">col</span><span class=\"p\">(</span><span class=\"s2\">"employee_id"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">alias</span><span class=\"p\">(</span><span class=\"s2\">"num_employees"</span><span class=\"p\">))</span>\n <span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"spark"</span><span class=\"p\">)</span>\n<span class=\"p\">)</span>\n\n<span class=\"n\">pyspark</span> <span class=\"o\">=</span> <span class=\"n\">PySparkSession</span><span class=\"o\">.</span><span class=\"n\">builder</span><span class=\"o\">.</span><span class=\"n\">master</span><span class=\"p\">(</span><span class=\"s2\">"local[*]"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">getOrCreate</span><span class=\"p\">()</span>\n\n<span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>\n<span class=\"k\">for</span> <span class=\"n\">sql</span> <span class=\"ow\">in</span> <span class=\"n\">sql_statements</span><span class=\"p\">:</span>\n <span class=\"n\">df</span> <span class=\"o\">=</span> <span class=\"n\">pyspark</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n\n<span class=\"k\">assert</span> <span class=\"n\">df</span> <span class=\"ow\">is</span> <span class=\"ow\">not</span> <span class=\"kc\">None</span>\n<span class=\"n\">df</span><span class=\"o\">.</span><span class=\"n\">show</span><span class=\"p\">()</span>\n</code></pre>\n</div>\n\n<h1 id=\"unsupportable-operations\">Unsupportable Operations</h1>\n\n<p>Any operation that lacks a way to represent it in SQL cannot be supported by this tool. An example of this would be rdd operations. Since the DataFrame API though is mostly modeled around SQL concepts most operations can be supported.</p>\n"}, "sqlglot.dataframe.sql": {"fullname": "sqlglot.dataframe.sql", "modulename": "sqlglot.dataframe.sql", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.SparkSession": {"fullname": "sqlglot.dataframe.sql.SparkSession", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.SparkSession.table": {"fullname": "sqlglot.dataframe.sql.SparkSession.table", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">tableName</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"fullname": "sqlglot.dataframe.sql.SparkSession.createDataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.createDataFrame", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">data</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431323699648'</span><span class=\"o\">></span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431323699648'</span><span class=\"o\">></span><span class=\"p\">],</span> <span class=\"n\">Tuple</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322449088'</span><span class=\"o\">></span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">samplingRatio</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">float</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">verifySchema</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.SparkSession.sql": {"fullname": "sqlglot.dataframe.sql.SparkSession.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "SparkSession.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sqlQuery</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame": {"fullname": "sqlglot.dataframe.sql.DataFrame", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrame.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrame.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">spark</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431327125104'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>,</span><span class=\"param\">\t<span class=\"n\">branch_id</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">sequence_id</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">last_op</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">operations</span><span class=\"o\">.</span><span class=\"n\">Operation</span> <span class=\"o\">=</span> <span class=\"o\"><</span><span class=\"n\">Operation</span><span class=\"o\">.</span><span class=\"n\">INIT</span><span class=\"p\">:</span> <span class=\"o\">-</span><span class=\"mi\">1</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">pending_hints</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">output_expression_container</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431327032656'</span><span class=\"o\">></span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrame.sql": {"fullname": "sqlglot.dataframe.sql.DataFrame.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s1\">'spark'</span>, </span><span class=\"param\"><span class=\"n\">optimize</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.copy": {"fullname": "sqlglot.dataframe.sql.DataFrame.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.select": {"fullname": "sqlglot.dataframe.sql.DataFrame.select", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.select", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.alias": {"fullname": "sqlglot.dataframe.sql.DataFrame.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.alias", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.where": {"fullname": "sqlglot.dataframe.sql.DataFrame.where", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.where", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.filter": {"fullname": "sqlglot.dataframe.sql.DataFrame.filter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.filter", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.groupBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.groupBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">group</span><span class=\"o\">.</span><span class=\"n\">GroupedData</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.agg": {"fullname": "sqlglot.dataframe.sql.DataFrame.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.agg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">exprs</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.join": {"fullname": "sqlglot.dataframe.sql.DataFrame.join", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other_df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">on</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">how</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'inner'</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"fullname": "sqlglot.dataframe.sql.DataFrame.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.orderBy", "kind": "function", "doc": "<p>This implementation lets any ordered columns take priority over whatever is provided in <code>ascending</code>. Spark\nhas irregular behavior and can result in runtime errors. Users shouldn't be mixing the two anyways so this\nis unlikely to come up.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">ascending</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.sort": {"fullname": "sqlglot.dataframe.sql.DataFrame.sort", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.sort", "kind": "function", "doc": "<p>This implementation lets any ordered columns take priority over whatever is provided in <code>ascending</code>. Spark\nhas irregular behavior and can result in runtime errors. Users shouldn't be mixing the two anyways so this\nis unlikely to come up.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">ascending</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.union": {"fullname": "sqlglot.dataframe.sql.DataFrame.union", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.union", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionAll", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"fullname": "sqlglot.dataframe.sql.DataFrame.unionByName", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.unionByName", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">allowMissingColumns</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersect": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersect", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersect", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.intersectAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.intersectAll", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"fullname": "sqlglot.dataframe.sql.DataFrame.exceptAll", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.exceptAll", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.distinct": {"fullname": "sqlglot.dataframe.sql.DataFrame.distinct", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.distinct", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropDuplicates", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropDuplicates", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.dropna": {"fullname": "sqlglot.dataframe.sql.DataFrame.dropna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.dropna", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">how</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'any'</span>,</span><span class=\"param\">\t<span class=\"n\">thresh</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.fillna": {"fullname": "sqlglot.dataframe.sql.DataFrame.fillna", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.fillna", "kind": "function", "doc": "<p>Functionality Difference: If you provide a value to replace a null and that type conflicts\nwith the type of the column then PySpark will just ignore your replacement.\nThis will try to cast them to be the same in some cases. So they won't always match.\nBest to not mix types so make sure replacement is the same type as the column</p>\n\n<p>Possibility for improvement: Use <code>typeof</code> function to get the type of the column\nand check if it matches the type of the value provided. If not then make it null.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322372736'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.replace": {"fullname": "sqlglot.dataframe.sql.DataFrame.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.replace", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">to_replace</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322278992'</span><span class=\"o\">></span><span class=\"p\">],</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322278992'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumn", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumn", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">colName</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"fullname": "sqlglot.dataframe.sql.DataFrame.withColumnRenamed", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.withColumnRenamed", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">existing</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">new</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.drop": {"fullname": "sqlglot.dataframe.sql.DataFrame.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.drop", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.limit": {"fullname": "sqlglot.dataframe.sql.DataFrame.limit", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.limit", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">num</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.hint": {"fullname": "sqlglot.dataframe.sql.DataFrame.hint", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.hint", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">parameters</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.repartition": {"fullname": "sqlglot.dataframe.sql.DataFrame.repartition", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.repartition", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">numPartitions</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322875456'</span><span class=\"o\">></span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322936800'</span><span class=\"o\">></span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"fullname": "sqlglot.dataframe.sql.DataFrame.coalesce", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.coalesce", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">numPartitions</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.cache": {"fullname": "sqlglot.dataframe.sql.DataFrame.cache", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.cache", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrame.persist": {"fullname": "sqlglot.dataframe.sql.DataFrame.persist", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrame.persist", "kind": "function", "doc": "<p>Storage Level Options: <a href=\"https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-aux-cache-cache-table.html\">https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-aux-cache-cache-table.html</a></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">storageLevel</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'MEMORY_AND_DISK_SER'</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData": {"fullname": "sqlglot.dataframe.sql.GroupedData", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.GroupedData.__init__": {"fullname": "sqlglot.dataframe.sql.GroupedData.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">group_by_cols</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">last_op</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">operations</span><span class=\"o\">.</span><span class=\"n\">Operation</span></span>)</span>"}, "sqlglot.dataframe.sql.GroupedData.agg": {"fullname": "sqlglot.dataframe.sql.GroupedData.agg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.agg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">exprs</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.count": {"fullname": "sqlglot.dataframe.sql.GroupedData.count", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.count", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.mean": {"fullname": "sqlglot.dataframe.sql.GroupedData.mean", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.mean", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.avg": {"fullname": "sqlglot.dataframe.sql.GroupedData.avg", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.avg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.max": {"fullname": "sqlglot.dataframe.sql.GroupedData.max", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.max", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.min": {"fullname": "sqlglot.dataframe.sql.GroupedData.min", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.min", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.sum": {"fullname": "sqlglot.dataframe.sql.GroupedData.sum", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.sum", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.GroupedData.pivot": {"fullname": "sqlglot.dataframe.sql.GroupedData.pivot", "modulename": "sqlglot.dataframe.sql", "qualname": "GroupedData.pivot", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column": {"fullname": "sqlglot.dataframe.sql.Column", "modulename": "sqlglot.dataframe.sql", "qualname": "Column", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.Column.__init__": {"fullname": "sqlglot.dataframe.sql.Column.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431324936560'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span>)</span>"}, "sqlglot.dataframe.sql.Column.ensure_col": {"fullname": "sqlglot.dataframe.sql.Column.ensure_col", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_col", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431323066816'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ensure_cols": {"fullname": "sqlglot.dataframe.sql.Column.ensure_cols", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_cols", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322777728'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"fullname": "sqlglot.dataframe.sql.Column.invoke_anonymous_function", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.invoke_anonymous_function", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321452064'</span><span class=\"o\">></span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">func_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321074320'</span><span class=\"o\">></span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"fullname": "sqlglot.dataframe.sql.Column.invoke_expression_over_column", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.invoke_expression_over_column", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321272944'</span><span class=\"o\">></span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">callable_expression</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.binary_op": {"fullname": "sqlglot.dataframe.sql.Column.binary_op", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.binary_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">klass</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321368896'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"fullname": "sqlglot.dataframe.sql.Column.inverse_binary_op", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.inverse_binary_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">klass</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>,</span><span class=\"param\">\t<span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321378976'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.unary_op": {"fullname": "sqlglot.dataframe.sql.Column.unary_op", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.unary_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">klass</span><span class=\"p\">:</span> <span class=\"n\">Callable</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ensure_literal": {"fullname": "sqlglot.dataframe.sql.Column.ensure_literal", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ensure_literal", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.copy": {"fullname": "sqlglot.dataframe.sql.Column.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.set_table_name": {"fullname": "sqlglot.dataframe.sql.Column.set_table_name", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.set_table_name", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">table_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.sql": {"fullname": "sqlglot.dataframe.sql.Column.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.alias": {"fullname": "sqlglot.dataframe.sql.Column.alias", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.alias", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc": {"fullname": "sqlglot.dataframe.sql.Column.asc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc": {"fullname": "sqlglot.dataframe.sql.Column.desc", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"fullname": "sqlglot.dataframe.sql.Column.asc_nulls_first", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc_nulls_first", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"fullname": "sqlglot.dataframe.sql.Column.asc_nulls_last", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.asc_nulls_last", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"fullname": "sqlglot.dataframe.sql.Column.desc_nulls_first", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc_nulls_first", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"fullname": "sqlglot.dataframe.sql.Column.desc_nulls_last", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.desc_nulls_last", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.when": {"fullname": "sqlglot.dataframe.sql.Column.when", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.when", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">condition</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.otherwise": {"fullname": "sqlglot.dataframe.sql.Column.otherwise", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.otherwise", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNull": {"fullname": "sqlglot.dataframe.sql.Column.isNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNull", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isNotNull": {"fullname": "sqlglot.dataframe.sql.Column.isNotNull", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isNotNull", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.cast": {"fullname": "sqlglot.dataframe.sql.Column.cast", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.cast", "kind": "function", "doc": "<p>Functionality Difference: PySpark cast accepts a datatype instance of the datatype class\nSqlglot doesn't currently replicate this class so it only accepts a string</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dataType</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.startswith": {"fullname": "sqlglot.dataframe.sql.Column.startswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.startswith", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.endswith": {"fullname": "sqlglot.dataframe.sql.Column.endswith", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.endswith", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.rlike": {"fullname": "sqlglot.dataframe.sql.Column.rlike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.rlike", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">regexp</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.like": {"fullname": "sqlglot.dataframe.sql.Column.like", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.like", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.ilike": {"fullname": "sqlglot.dataframe.sql.Column.ilike", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.ilike", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">other</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.substr": {"fullname": "sqlglot.dataframe.sql.Column.substr", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.substr", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">startPos</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">length</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.isin": {"fullname": "sqlglot.dataframe.sql.Column.isin", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.isin", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321579680'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321579680'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.between": {"fullname": "sqlglot.dataframe.sql.Column.between", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.between", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">lowerBound</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321667120'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">upperBound</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321705216'</span><span class=\"o\">></span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Column.over": {"fullname": "sqlglot.dataframe.sql.Column.over", "modulename": "sqlglot.dataframe.sql", "qualname": "Column.over", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">window</span><span class=\"p\">:</span> <span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321762928'</span><span class=\"o\">></span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">column</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.drop", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.drop", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">how</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'any'</span>,</span><span class=\"param\">\t<span class=\"n\">thresh</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.fill", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.fill", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Any</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">],</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"fullname": "sqlglot.dataframe.sql.DataFrameNaFunctions.replace", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameNaFunctions.replace", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">to_replace</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">subset</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window": {"fullname": "sqlglot.dataframe.sql.Window", "modulename": "sqlglot.dataframe.sql", "qualname": "Window", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.Window.partitionBy": {"fullname": "sqlglot.dataframe.sql.Window.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.partitionBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322000032'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322000032'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.orderBy": {"fullname": "sqlglot.dataframe.sql.Window.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.orderBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322080464'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431322080464'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rowsBetween": {"fullname": "sqlglot.dataframe.sql.Window.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rowsBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.Window.rangeBetween": {"fullname": "sqlglot.dataframe.sql.Window.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "Window.rangeBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec": {"fullname": "sqlglot.dataframe.sql.WindowSpec", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"fullname": "sqlglot.dataframe.sql.WindowSpec.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"n\">WINDOW</span> <span class=\"p\">)</span></span>)</span>"}, "sqlglot.dataframe.sql.WindowSpec.copy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.sql": {"fullname": "sqlglot.dataframe.sql.WindowSpec.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.partitionBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.partitionBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321854976'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431321854976'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"fullname": "sqlglot.dataframe.sql.WindowSpec.orderBy", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.orderBy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">cols</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431320185440'</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\"><</span><span class=\"n\">MagicMock</span> <span class=\"nb\">id</span><span class=\"o\">=</span><span class=\"s1\">'140431320185440'</span><span class=\"o\">></span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rowsBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rowsBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"fullname": "sqlglot.dataframe.sql.WindowSpec.rangeBetween", "modulename": "sqlglot.dataframe.sql", "qualname": "WindowSpec.rangeBetween", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">window</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameReader": {"fullname": "sqlglot.dataframe.sql.DataFrameReader", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">spark</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">session</span><span class=\"o\">.</span><span class=\"n\">SparkSession</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrameReader.table": {"fullname": "sqlglot.dataframe.sql.DataFrameReader.table", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameReader.table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">tableName</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.__init__", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">df</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">DataFrame</span>,</span><span class=\"param\">\t<span class=\"n\">spark</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">session</span><span class=\"o\">.</span><span class=\"n\">SparkSession</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">mode</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">by_name</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span>)</span>"}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.copy", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">readwriter</span><span class=\"o\">.</span><span class=\"n\">DataFrameWriter</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.sql", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.mode", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.mode", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">saveMode</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">readwriter</span><span class=\"o\">.</span><span class=\"n\">DataFrameWriter</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.insertInto", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.insertInto", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">tableName</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">overwrite</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">readwriter</span><span class=\"o\">.</span><span class=\"n\">DataFrameWriter</span>:</span></span>", "funcdef": "def"}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"fullname": "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable", "modulename": "sqlglot.dataframe.sql", "qualname": "DataFrameWriter.saveAsTable", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"nb\">format</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">mode</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></span>", "funcdef": "def"}, "sqlglot.dialects": {"fullname": "sqlglot.dialects", "modulename": "sqlglot.dialects", "kind": "module", "doc": "<h2 id=\"dialects\">Dialects</h2>\n\n<p>While there is a SQL standard, most SQL engines support a variation of that standard. This makes it difficult\nto write portable SQL code. SQLGlot bridges all the different variations, called \"dialects\", with an extensible\nSQL transpilation framework. </p>\n\n<p>The base <code>sqlglot.dialects.dialect.Dialect</code> class implements a generic dialect that aims to be as universal as possible.</p>\n\n<p>Each SQL variation has its own <code>Dialect</code> subclass, extending the corresponding <code>Tokenizer</code>, <code>Parser</code> and <code>Generator</code>\nclasses as needed.</p>\n\n<h3 id=\"implementing-a-custom-dialect\">Implementing a custom Dialect</h3>\n\n<p>Consider the following example:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.dialects.dialect</span> <span class=\"kn\">import</span> <span class=\"n\">Dialect</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.generator</span> <span class=\"kn\">import</span> <span class=\"n\">Generator</span>\n<span class=\"kn\">from</span> <span class=\"nn\">sqlglot.tokens</span> <span class=\"kn\">import</span> <span class=\"n\">Tokenizer</span><span class=\"p\">,</span> <span class=\"n\">TokenType</span>\n\n\n<span class=\"k\">class</span> <span class=\"nc\">Custom</span><span class=\"p\">(</span><span class=\"n\">Dialect</span><span class=\"p\">):</span>\n <span class=\"k\">class</span> <span class=\"nc\">Tokenizer</span><span class=\"p\">(</span><span class=\"n\">Tokenizer</span><span class=\"p\">):</span>\n <span class=\"n\">QUOTES</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"'"</span><span class=\"p\">,</span> <span class=\"s1\">'"'</span><span class=\"p\">]</span>\n <span class=\"n\">IDENTIFIERS</span> <span class=\"o\">=</span> <span class=\"p\">[</span><span class=\"s2\">"`"</span><span class=\"p\">]</span>\n\n <span class=\"n\">KEYWORDS</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <span class=\"o\">**</span><span class=\"n\">Tokenizer</span><span class=\"o\">.</span><span class=\"n\">KEYWORDS</span><span class=\"p\">,</span>\n <span class=\"s2\">"INT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">BIGINT</span><span class=\"p\">,</span>\n <span class=\"s2\">"FLOAT64"</span><span class=\"p\">:</span> <span class=\"n\">TokenType</span><span class=\"o\">.</span><span class=\"n\">DOUBLE</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n\n <span class=\"k\">class</span> <span class=\"nc\">Generator</span><span class=\"p\">(</span><span class=\"n\">Generator</span><span class=\"p\">):</span>\n <span class=\"n\">TRANSFORMS</span> <span class=\"o\">=</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=\"k\">lambda</span> <span class=\"bp\">self</span><span class=\"p\">,</span> <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\">expressions</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">)</span><span class=\"si\">}</span><span class=\"s2\">]"</span><span class=\"p\">}</span>\n\n <span class=\"n\">TYPE_MAPPING</span> <span class=\"o\">=</span> <span class=\"p\">{</span>\n <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\">TINYINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">SMALLINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">"INT64"</span><span class=\"p\">,</span>\n <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\">BIGINT</span><span class=\"p\">:</span> <span class=\"s2\">"INT64"</span><span class=\"p\">,</span>\n <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\">DECIMAL</span><span class=\"p\">:</span> <span class=\"s2\">"NUMERIC"</span><span class=\"p\">,</span>\n <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\">FLOAT</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">DOUBLE</span><span class=\"p\">:</span> <span class=\"s2\">"FLOAT64"</span><span class=\"p\">,</span>\n <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\">BOOLEAN</span><span class=\"p\">:</span> <span class=\"s2\">"BOOL"</span><span class=\"p\">,</span>\n <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\">TEXT</span><span class=\"p\">:</span> <span class=\"s2\">"STRING"</span><span class=\"p\">,</span>\n <span class=\"p\">}</span>\n</code></pre>\n</div>\n\n<p>This is a typical example of adding a new dialect implementation in SQLGlot: we specify its identifier and string\ndelimiters, as well as what tokens it uses for its types and how they're associated with SQLGlot types. Since\nthe <code>Expression</code> classes are common for each dialect supported in SQLGlot, we may also need to override the generation\nlogic for some expressions; this is usually done by adding new entries to the <code>TRANSFORMS</code> mapping.</p>\n\n<hr />\n"}, "sqlglot.dialects.bigquery": {"fullname": "sqlglot.dialects.bigquery", "modulename": "sqlglot.dialects.bigquery", "kind": "module", "doc": "<p>Supports BigQuery Standard SQL.</p>\n"}, "sqlglot.dialects.bigquery.BigQuery": {"fullname": "sqlglot.dialects.bigquery.BigQuery", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Tokenizer", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Parser", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.array_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Array</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.commit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.rollback_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.in_unnest_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unnest</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.except_op", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.except_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Except</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"fullname": "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op", "modulename": "sqlglot.dialects.bigquery", "qualname": "BigQuery.Generator.intersect_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Intersect</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.clickhouse": {"fullname": "sqlglot.dialects.clickhouse", "modulename": "sqlglot.dialects.clickhouse", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.clickhouse.ClickHouse": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Parser", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"fullname": "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql", "modulename": "sqlglot.dialects.clickhouse", "qualname": "ClickHouse.Generator.cte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.databricks": {"fullname": "sqlglot.dialects.databricks", "modulename": "sqlglot.dialects.databricks", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.databricks.Databricks": {"fullname": "sqlglot.dialects.databricks.Databricks", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.spark.Spark"}, "sqlglot.dialects.databricks.Databricks.Parser": {"fullname": "sqlglot.dialects.databricks.Databricks.Parser", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.spark.Spark.Parser"}, "sqlglot.dialects.databricks.Databricks.Generator": {"fullname": "sqlglot.dialects.databricks.Databricks.Generator", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.spark.Spark.Generator"}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"fullname": "sqlglot.dialects.databricks.Databricks.Tokenizer", "modulename": "sqlglot.dialects.databricks", "qualname": "Databricks.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.spark.Spark.Tokenizer"}, "sqlglot.dialects.dialect": {"fullname": "sqlglot.dialects.dialect", "modulename": "sqlglot.dialects.dialect", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.dialect.Dialects": {"fullname": "sqlglot.dialects.dialect.Dialects", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "builtins.str, enum.Enum"}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"fullname": "sqlglot.dialects.dialect.Dialects.DIALECT", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DIALECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DIALECT: ''>"}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"fullname": "sqlglot.dialects.dialect.Dialects.BIGQUERY", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.BIGQUERY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.BIGQUERY: 'bigquery'>"}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"fullname": "sqlglot.dialects.dialect.Dialects.CLICKHOUSE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.CLICKHOUSE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.CLICKHOUSE: 'clickhouse'>"}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"fullname": "sqlglot.dialects.dialect.Dialects.DUCKDB", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DUCKDB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DUCKDB: 'duckdb'>"}, "sqlglot.dialects.dialect.Dialects.HIVE": {"fullname": "sqlglot.dialects.dialect.Dialects.HIVE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.HIVE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.HIVE: 'hive'>"}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"fullname": "sqlglot.dialects.dialect.Dialects.MYSQL", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.MYSQL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.MYSQL: 'mysql'>"}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"fullname": "sqlglot.dialects.dialect.Dialects.ORACLE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.ORACLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.ORACLE: 'oracle'>"}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"fullname": "sqlglot.dialects.dialect.Dialects.POSTGRES", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.POSTGRES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.POSTGRES: 'postgres'>"}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"fullname": "sqlglot.dialects.dialect.Dialects.PRESTO", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.PRESTO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.PRESTO: 'presto'>"}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"fullname": "sqlglot.dialects.dialect.Dialects.REDSHIFT", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.REDSHIFT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.REDSHIFT: 'redshift'>"}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"fullname": "sqlglot.dialects.dialect.Dialects.SNOWFLAKE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SNOWFLAKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.SNOWFLAKE: 'snowflake'>"}, "sqlglot.dialects.dialect.Dialects.SPARK": {"fullname": "sqlglot.dialects.dialect.Dialects.SPARK", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SPARK", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.SPARK: 'spark'>"}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"fullname": "sqlglot.dialects.dialect.Dialects.SQLITE", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.SQLITE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.SQLITE: 'sqlite'>"}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"fullname": "sqlglot.dialects.dialect.Dialects.STARROCKS", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.STARROCKS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.STARROCKS: 'starrocks'>"}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"fullname": "sqlglot.dialects.dialect.Dialects.TABLEAU", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TABLEAU", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TABLEAU: 'tableau'>"}, "sqlglot.dialects.dialect.Dialects.TRINO": {"fullname": "sqlglot.dialects.dialect.Dialects.TRINO", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TRINO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TRINO: 'trino'>"}, "sqlglot.dialects.dialect.Dialects.TSQL": {"fullname": "sqlglot.dialects.dialect.Dialects.TSQL", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TSQL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TSQL: 'tsql'>"}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"fullname": "sqlglot.dialects.dialect.Dialects.DATABRICKS", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DATABRICKS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DATABRICKS: 'databricks'>"}, "sqlglot.dialects.dialect.Dialects.DRILL": {"fullname": "sqlglot.dialects.dialect.Dialects.DRILL", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.DRILL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.DRILL: 'drill'>"}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"fullname": "sqlglot.dialects.dialect.Dialects.TERADATA", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialects.TERADATA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Dialects.TERADATA: 'teradata'>"}, "sqlglot.dialects.dialect.Dialect": {"fullname": "sqlglot.dialects.dialect.Dialect", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"fullname": "sqlglot.dialects.dialect.Dialect.get_or_raise", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.get_or_raise", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.format_time": {"fullname": "sqlglot.dialects.dialect.Dialect.format_time", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.format_time", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parse": {"fullname": "sqlglot.dialects.dialect.Dialect.parse", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parse", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parse_into": {"fullname": "sqlglot.dialects.dialect.Dialect.parse_into", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parse_into", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression_type</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]]</span>,</span><span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generate": {"fullname": "sqlglot.dialects.dialect.Dialect.generate", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.transpile": {"fullname": "sqlglot.dialects.dialect.Dialect.transpile", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.transpile", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.tokenize": {"fullname": "sqlglot.dialects.dialect.Dialect.tokenize", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.tokenize", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.parser": {"fullname": "sqlglot.dialects.dialect.Dialect.parser", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.parser", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parser</span><span class=\"o\">.</span><span class=\"n\">Parser</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.Dialect.generator": {"fullname": "sqlglot.dialects.dialect.Dialect.generator", "modulename": "sqlglot.dialects.dialect", "qualname": "Dialect.generator", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.rename_func": {"fullname": "sqlglot.dialects.dialect.rename_func", "modulename": "sqlglot.dialects.dialect", "qualname": "rename_func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"fullname": "sqlglot.dialects.dialect.approx_count_distinct_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "approx_count_distinct_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ApproxDistinct</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.if_sql": {"fullname": "sqlglot.dialects.dialect.if_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "if_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">If</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"fullname": "sqlglot.dialects.dialect.arrow_json_extract_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "arrow_json_extract_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONExtract</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONBExtract</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"fullname": "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "arrow_json_extract_scalar_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONExtractScalar</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JSONBExtractScalar</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.inline_array_sql": {"fullname": "sqlglot.dialects.dialect.inline_array_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "inline_array_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Array</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_ilike_sql": {"fullname": "sqlglot.dialects.dialect.no_ilike_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_ilike_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ILike</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"fullname": "sqlglot.dialects.dialect.no_paren_current_date_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_paren_current_date_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CurrentDate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"fullname": "sqlglot.dialects.dialect.no_recursive_cte_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_recursive_cte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">With</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"fullname": "sqlglot.dialects.dialect.no_safe_divide_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_safe_divide_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SafeDivide</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_tablesample_sql": {"fullname": "sqlglot.dialects.dialect.no_tablesample_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_tablesample_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableSample</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_pivot_sql": {"fullname": "sqlglot.dialects.dialect.no_pivot_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_pivot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Pivot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_trycast_sql": {"fullname": "sqlglot.dialects.dialect.no_trycast_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_trycast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TryCast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.no_properties_sql": {"fullname": "sqlglot.dialects.dialect.no_properties_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "no_properties_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.str_position_sql": {"fullname": "sqlglot.dialects.dialect.str_position_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "str_position_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StrPosition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.struct_extract_sql": {"fullname": "sqlglot.dialects.dialect.struct_extract_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "struct_extract_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StructExtract</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.var_map_sql": {"fullname": "sqlglot.dialects.dialect.var_map_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "var_map_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Map</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">VarMap</span>,</span><span class=\"param\">\t<span class=\"n\">map_func_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'MAP'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.format_time_lambda": {"fullname": "sqlglot.dialects.dialect.format_time_lambda", "modulename": "sqlglot.dialects.dialect", "qualname": "format_time_lambda", "kind": "function", "doc": "<p>Helper used for time expressions.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>exp_class:</strong> the expression class to instantiate.</li>\n<li><strong>dialect:</strong> target sql dialect.</li>\n<li><strong>default:</strong> the default format, True being time.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A callable that can be used to return the appropriately formatted time expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">exp_class</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">default</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">Sequence</span><span class=\"p\">],</span> <span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"fullname": "sqlglot.dialects.dialect.create_with_partitions_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "create_with_partitions_sql", "kind": "function", "doc": "<p>In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the\nPARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding\ncolumns are removed from the create statement.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Create</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.parse_date_delta": {"fullname": "sqlglot.dialects.dialect.parse_date_delta", "modulename": "sqlglot.dialects.dialect", "qualname": "parse_date_delta", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">exp_class</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">unit_mapping</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</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=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">Sequence</span><span class=\"p\">],</span> <span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.date_trunc_to_time": {"fullname": "sqlglot.dialects.dialect.date_trunc_to_time", "modulename": "sqlglot.dialects.dialect", "qualname": "date_trunc_to_time", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DateTrunc</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TimestampTrunc</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"fullname": "sqlglot.dialects.dialect.timestamptrunc_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestamptrunc_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TimestampTrunc</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.locate_to_strposition": {"fullname": "sqlglot.dialects.dialect.locate_to_strposition", "modulename": "sqlglot.dialects.dialect", "qualname": "locate_to_strposition", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"fullname": "sqlglot.dialects.dialect.strposition_to_locate_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "strposition_to_locate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StrPosition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.timestrtotime_sql": {"fullname": "sqlglot.dialects.dialect.timestrtotime_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "timestrtotime_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TimeStrToTime</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.datestrtodate_sql": {"fullname": "sqlglot.dialects.dialect.datestrtodate_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "datestrtodate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DateStrToDate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.min_or_least": {"fullname": "sqlglot.dialects.dialect.min_or_least", "modulename": "sqlglot.dialects.dialect", "qualname": "min_or_least", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Min</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.count_if_to_sum": {"fullname": "sqlglot.dialects.dialect.count_if_to_sum", "modulename": "sqlglot.dialects.dialect", "qualname": "count_if_to_sum", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CountIf</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.trim_sql": {"fullname": "sqlglot.dialects.dialect.trim_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "trim_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Trim</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.str_to_time_sql": {"fullname": "sqlglot.dialects.dialect.str_to_time_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "str_to_time_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"fullname": "sqlglot.dialects.dialect.ts_or_ds_to_date_sql", "modulename": "sqlglot.dialects.dialect", "qualname": "ts_or_ds_to_date_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.drill": {"fullname": "sqlglot.dialects.drill", "modulename": "sqlglot.dialects.drill", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.drill.Drill": {"fullname": "sqlglot.dialects.drill.Drill", "modulename": "sqlglot.dialects.drill", "qualname": "Drill", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.drill.Drill.Tokenizer": {"fullname": "sqlglot.dialects.drill.Drill.Tokenizer", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.drill.Drill.Parser": {"fullname": "sqlglot.dialects.drill.Drill.Parser", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.drill.Drill.Generator": {"fullname": "sqlglot.dialects.drill.Drill.Generator", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"fullname": "sqlglot.dialects.drill.Drill.Generator.normalize_func", "modulename": "sqlglot.dialects.drill", "qualname": "Drill.Generator.normalize_func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.duckdb": {"fullname": "sqlglot.dialects.duckdb", "modulename": "sqlglot.dialects.duckdb", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.duckdb.DuckDB": {"fullname": "sqlglot.dialects.duckdb.DuckDB", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Tokenizer", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Parser", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Generator", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"fullname": "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql", "modulename": "sqlglot.dialects.duckdb", "qualname": "DuckDB.Generator.tablesample_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableSample</span>,</span><span class=\"param\">\t<span class=\"n\">seed_prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'SEED'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.hive": {"fullname": "sqlglot.dialects.hive", "modulename": "sqlglot.dialects.hive", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.hive.Hive": {"fullname": "sqlglot.dialects.hive.Hive", "modulename": "sqlglot.dialects.hive", "qualname": "Hive", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.hive.Hive.Tokenizer": {"fullname": "sqlglot.dialects.hive.Hive.Tokenizer", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.hive.Hive.Parser": {"fullname": "sqlglot.dialects.hive.Hive.Parser", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.hive.Hive.Generator": {"fullname": "sqlglot.dialects.hive.Hive.Generator", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"fullname": "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.arrayagg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ArrayAgg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"fullname": "sqlglot.dialects.hive.Hive.Generator.with_properties", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.with_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"fullname": "sqlglot.dialects.hive.Hive.Generator.datatype_sql", "modulename": "sqlglot.dialects.hive", "qualname": "Hive.Generator.datatype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.mysql": {"fullname": "sqlglot.dialects.mysql", "modulename": "sqlglot.dialects.mysql", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.mysql.MySQL": {"fullname": "sqlglot.dialects.mysql.MySQL", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"fullname": "sqlglot.dialects.mysql.MySQL.Tokenizer", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.mysql.MySQL.Parser": {"fullname": "sqlglot.dialects.mysql.MySQL.Parser", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.mysql.MySQL.Generator": {"fullname": "sqlglot.dialects.mysql.MySQL.Generator", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"fullname": "sqlglot.dialects.mysql.MySQL.Generator.show_sql", "modulename": "sqlglot.dialects.mysql", "qualname": "MySQL.Generator.show_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle": {"fullname": "sqlglot.dialects.oracle", "modulename": "sqlglot.dialects.oracle", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.oracle.Oracle": {"fullname": "sqlglot.dialects.oracle.Oracle", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.oracle.Oracle.Parser": {"fullname": "sqlglot.dialects.oracle.Oracle.Parser", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.oracle.Oracle.Generator": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.query_modifiers", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">sqls</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.offset_sql", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.offset_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Offset</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.column_sql", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.column_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"fullname": "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Generator.xmltable_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">XMLTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"fullname": "sqlglot.dialects.oracle.Oracle.Tokenizer", "modulename": "sqlglot.dialects.oracle", "qualname": "Oracle.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.postgres": {"fullname": "sqlglot.dialects.postgres", "modulename": "sqlglot.dialects.postgres", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.postgres.Postgres": {"fullname": "sqlglot.dialects.postgres.Postgres", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"fullname": "sqlglot.dialects.postgres.Postgres.Tokenizer", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.postgres.Postgres.Parser": {"fullname": "sqlglot.dialects.postgres.Postgres.Parser", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.postgres.Postgres.Generator": {"fullname": "sqlglot.dialects.postgres.Postgres.Generator", "modulename": "sqlglot.dialects.postgres", "qualname": "Postgres.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto": {"fullname": "sqlglot.dialects.presto", "modulename": "sqlglot.dialects.presto", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.presto.Presto": {"fullname": "sqlglot.dialects.presto.Presto", "modulename": "sqlglot.dialects.presto", "qualname": "Presto", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.presto.Presto.Tokenizer": {"fullname": "sqlglot.dialects.presto.Presto.Tokenizer", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.presto.Presto.Parser": {"fullname": "sqlglot.dialects.presto.Presto.Parser", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.presto.Presto.Generator": {"fullname": "sqlglot.dialects.presto.Presto.Generator", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"fullname": "sqlglot.dialects.presto.Presto.Generator.transaction_sql", "modulename": "sqlglot.dialects.presto", "qualname": "Presto.Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift": {"fullname": "sqlglot.dialects.redshift", "modulename": "sqlglot.dialects.redshift", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.redshift.Redshift": {"fullname": "sqlglot.dialects.redshift.Redshift", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.postgres.Postgres"}, "sqlglot.dialects.redshift.Redshift.Parser": {"fullname": "sqlglot.dialects.redshift.Redshift.Parser", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.postgres.Postgres.Parser"}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"fullname": "sqlglot.dialects.redshift.Redshift.Tokenizer", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.postgres.Postgres.Tokenizer"}, "sqlglot.dialects.redshift.Redshift.Generator": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.postgres.Postgres.Generator"}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.values_sql", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.values_sql", "kind": "function", "doc": "<p>Converts <code>VALUES...</code> expression into a series of unions.</p>\n\n<p>Note: If you have a lot of unions then this will result in a large number of recursive statements to\nevaluate the expression. You may need to increase <code>sys.setrecursionlimit</code> to run and it can also be\nvery slow.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.with_properties", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.with_properties", "kind": "function", "doc": "<p>Redshift doesn't have <code>WITH</code> as part of their with_properties so we remove it</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.renametable_sql", "kind": "function", "doc": "<p>Redshift only supports defining the table name itself (not the db) when renaming tables</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RenameTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"fullname": "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql", "modulename": "sqlglot.dialects.redshift", "qualname": "Redshift.Generator.datatype_sql", "kind": "function", "doc": "<p>Redshift converts the <code>TEXT</code> data type to <code>VARCHAR(255)</code> by default when people more generally mean\nVARCHAR of max length which is <code>VARCHAR(max)</code> in Redshift. Therefore if we get a <code>TEXT</code> data type\nwithout precision we convert it to <code>VARCHAR(max)</code> and if it does have precision then we just convert\n<code>TEXT</code> to <code>VARCHAR</code>.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake": {"fullname": "sqlglot.dialects.snowflake", "modulename": "sqlglot.dialects.snowflake", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.snowflake.Snowflake": {"fullname": "sqlglot.dialects.snowflake.Snowflake", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Parser", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Tokenizer", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.ilikeany_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ILikeAny</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.likeany_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LikeAny</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.except_op", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.except_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.intersect_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.values_sql", "kind": "function", "doc": "<p>Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</p>\n\n<p>We also want to make sure that after we find matches where we need to unquote a column that we prevent users\nfrom adding quotes to the column by using the <code>identify</code> argument when generating the SQL.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.settag_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SetTag</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.select_sql", "kind": "function", "doc": "<p>Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also\nthat all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need\nto unquote a column that we prevent users from adding quotes to the column by using the <code>identify</code> argument when\ngenerating the SQL.</p>\n\n<p>Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the\nexpression. This might not be true in a case where the same column name can be sourced from another table that can\nproperly quote but should be true in most cases.</p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.describe_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Describe</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"fullname": "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql", "modulename": "sqlglot.dialects.snowflake", "qualname": "Snowflake.Generator.generatedasidentitycolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GeneratedAsIdentityColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.spark": {"fullname": "sqlglot.dialects.spark", "modulename": "sqlglot.dialects.spark", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.spark.Spark": {"fullname": "sqlglot.dialects.spark.Spark", "modulename": "sqlglot.dialects.spark", "qualname": "Spark", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.hive.Hive"}, "sqlglot.dialects.spark.Spark.Parser": {"fullname": "sqlglot.dialects.spark.Spark.Parser", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.hive.Hive.Parser"}, "sqlglot.dialects.spark.Spark.Generator": {"fullname": "sqlglot.dialects.spark.Spark.Generator", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.hive.Hive.Generator"}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"fullname": "sqlglot.dialects.spark.Spark.Generator.cast_sql", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Generator.cast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.spark.Spark.Tokenizer": {"fullname": "sqlglot.dialects.spark.Spark.Tokenizer", "modulename": "sqlglot.dialects.spark", "qualname": "Spark.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.hive.Hive.Tokenizer"}, "sqlglot.dialects.sqlite": {"fullname": "sqlglot.dialects.sqlite", "modulename": "sqlglot.dialects.sqlite", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.sqlite.SQLite": {"fullname": "sqlglot.dialects.sqlite.SQLite", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"fullname": "sqlglot.dialects.sqlite.SQLite.Tokenizer", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.sqlite.SQLite.Parser": {"fullname": "sqlglot.dialects.sqlite.SQLite.Parser", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.sqlite.SQLite.Generator": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.cast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.datediff_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DateDiff</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.fetch_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Fetch</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.groupconcat_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.least_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.least_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Least</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"fullname": "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql", "modulename": "sqlglot.dialects.sqlite", "qualname": "SQLite.Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Transaction</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.starrocks": {"fullname": "sqlglot.dialects.starrocks", "modulename": "sqlglot.dialects.starrocks", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.starrocks.StarRocks": {"fullname": "sqlglot.dialects.starrocks.StarRocks", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.mysql.MySQL"}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"fullname": "sqlglot.dialects.starrocks.StarRocks.Parser", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.dialects.mysql.MySQL.Parser"}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"fullname": "sqlglot.dialects.starrocks.StarRocks.Generator", "modulename": "sqlglot.dialects.starrocks", "qualname": "StarRocks.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.mysql.MySQL.Generator"}, "sqlglot.dialects.tableau": {"fullname": "sqlglot.dialects.tableau", "modulename": "sqlglot.dialects.tableau", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.tableau.Tableau": {"fullname": "sqlglot.dialects.tableau.Tableau", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.tableau.Tableau.Generator": {"fullname": "sqlglot.dialects.tableau.Tableau.Generator", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tableau.Tableau.Parser": {"fullname": "sqlglot.dialects.tableau.Tableau.Parser", "modulename": "sqlglot.dialects.tableau", "qualname": "Tableau.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.teradata": {"fullname": "sqlglot.dialects.teradata", "modulename": "sqlglot.dialects.teradata", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.teradata.Teradata": {"fullname": "sqlglot.dialects.teradata.Teradata", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"fullname": "sqlglot.dialects.teradata.Teradata.Tokenizer", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.teradata.Teradata.Parser": {"fullname": "sqlglot.dialects.teradata.Teradata.Parser", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.teradata.Teradata.Generator": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.partitionedbyproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">PartitionedByProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.update_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.update_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Update</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.mod_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.mod_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Mod</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.datatype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"fullname": "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql", "modulename": "sqlglot.dialects.teradata", "qualname": "Teradata.Generator.rangen_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RangeN</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.trino": {"fullname": "sqlglot.dialects.trino", "modulename": "sqlglot.dialects.trino", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.trino.Trino": {"fullname": "sqlglot.dialects.trino.Trino", "modulename": "sqlglot.dialects.trino", "qualname": "Trino", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.presto.Presto"}, "sqlglot.dialects.trino.Trino.Generator": {"fullname": "sqlglot.dialects.trino.Trino.Generator", "modulename": "sqlglot.dialects.trino", "qualname": "Trino.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.dialects.presto.Presto.Generator"}, "sqlglot.dialects.trino.Trino.Tokenizer": {"fullname": "sqlglot.dialects.trino.Trino.Tokenizer", "modulename": "sqlglot.dialects.trino", "qualname": "Trino.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.presto.Presto.Tokenizer"}, "sqlglot.dialects.tsql": {"fullname": "sqlglot.dialects.tsql", "modulename": "sqlglot.dialects.tsql", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"fullname": "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "generate_date_delta_with_unit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">e</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.dialects.tsql.TSQL": {"fullname": "sqlglot.dialects.tsql.TSQL", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"fullname": "sqlglot.dialects.tsql.TSQL.Tokenizer", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.dialects.tsql.TSQL.Parser": {"fullname": "sqlglot.dialects.tsql.TSQL.Parser", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n", "bases": "sqlglot.parser.Parser"}, "sqlglot.dialects.tsql.TSQL.Generator": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator.systemtime_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SystemTime</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"fullname": "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql", "modulename": "sqlglot.dialects.tsql", "qualname": "TSQL.Generator.returnsproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ReturnsProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.diff": {"fullname": "sqlglot.diff", "modulename": "sqlglot.diff", "kind": "module", "doc": "<h1 id=\"semantic-diff-for-sql\">Semantic Diff for SQL</h1>\n\n<p><em>by <a href=\"https://github.com/izeigerman\">Iaroslav Zeigerman</a></em></p>\n\n<h2 id=\"motivation\">Motivation</h2>\n\n<p>Software is constantly changing and evolving, and identifying what has changed and reviewing those changes is an integral part of the development process. SQL code is no exception to this.</p>\n\n<p>Text-based diff tools such as <code>git diff</code>, when applied to a code base, have certain limitations. First, they can only detect insertions and deletions, not movements or updates of individual pieces of code. Second, such tools can only detect changes between lines of text, which is too coarse for something as granular and detailed as source code. Additionally, the outcome of such a diff is dependent on the underlying code formatting, and yields different results if the formatting should change.</p>\n\n<p>Consider the following diff generated by Git:</p>\n\n<p><img src=\"sql_diff_images/git_diff_output.png\" alt=\"Git diff output\" /></p>\n\n<p>Semantically the query hasn\u2019t changed. The two arguments <code>b</code> and <code>c</code> have been swapped (moved), posing no impact on the output of the query. Yet Git replaced the whole affected expression alongside a bulk of unrelated elements.</p>\n\n<p>The alternative to text-based diffing is to compare Abstract Syntax Trees (AST) instead. The main advantage of ASTs are that they are a direct product of code parsing, which represents the underlying code structure at any desired level of granularity. Comparing ASTs may yield extremely precise diffs; changes such as code movements and updates can also be detected. Even more importantly, this approach facilitates additional use cases beyond eyeballing two versions of source code side by side.</p>\n\n<p>The use cases I had in mind for SQL when I decided to embark on this journey of semantic diffing were the following:</p>\n\n<ul>\n<li><strong>Query similarity score.</strong> Identifying which parts the two queries have in common to automatically suggest opportunities for consolidation, creation of intermediate/staging tables, and so on.</li>\n<li><strong>Differentiating between cosmetic / structural changes and functional ones.</strong> For example when a nested query is refactored into a common table expression (CTE), this kind of change doesn\u2019t have any functional impact on either a query or its outcome.</li>\n<li><strong>Automatic suggestions about the need to retroactively backfill data.</strong> This is especially important for pipelines that populate very large tables for which restatement is a runtime-intensive procedure. The ability to discern between simple code movements and actual modifications can help assess the impact of a change and make suggestions accordingly.</li>\n</ul>\n\n<p>The implementation discussed in this post is now a part of the <a href=\"https://github.com/tobymao/sqlglot/\">SQLGlot</a> library. You can find a complete source code in the <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/diff.py\">diff.py</a> module. The choice of SQLglot was an obvious one due to its simple but powerful API, lack of external dependencies and, more importantly, extensive list of supported SQL dialects.</p>\n\n<h2 id=\"the-search-for-a-solution\">The Search for a Solution</h2>\n\n<p>When it comes to any diffing tool (not just a semantic one), the primary challenge is to match as many elements of compared entities as possible. Once such a set of matching elements is available, deriving a sequence of changes becomes an easy task.</p>\n\n<p>If our elements have unique identifiers associated with them (for example, an element\u2019s ID in DOM), the matching problem is trivial. However, the SQL syntax trees that we are comparing have neither unique keys nor object identifiers that can be used for the purposes of matching. So, how do we suppose to find pairs of nodes that are related?</p>\n\n<p>To better illustrate the problem, consider comparing the following SQL expressions: <code>SELECT a + b + c, d, e</code> and <code>SELECT a - b + c, e, f</code>. Matching individual nodes from respective syntax trees can be visualized as follows:</p>\n\n<p><img src=\"sql_diff_images/figure_1.png\" alt=\"Figure 1: Example of node matching for two SQL expression trees\" />\n<em>Figure 1: Example of node matching for two SQL expression trees.</em></p>\n\n<p>By looking at the figure of node matching for two SQL expression trees above, we conclude that the following changes should be captured by our solution:</p>\n\n<ul>\n<li>Inserted nodes: <code>Sub</code> and <code>f</code>. These are the nodes from the target AST which do not have a matching node in the source AST.</li>\n<li>Removed nodes: <code>Add</code> and <code>d</code>. These are the nodes from the source AST which do not have a counterpart in the target AST.</li>\n<li>Remaining nodes must be identified as unchanged.</li>\n</ul>\n\n<p>It should be clear at this point that if we manage to match nodes in the source tree with their counterparts in the target tree, then computing the diff becomes a trivial matter.</p>\n\n<h3 id=\"naive-brute-force\">Na\u00efve Brute-Force</h3>\n\n<p>The na\u00efve solution would be to try all different permutations of node pair combinations, and see which set of pairs performs the best based on some type of heuristics. The runtime cost of such a solution quickly reaches the escape velocity; if both trees had only 10 nodes each, the number of such sets would approximately be 10! ^ 2 = 3.6M ^ 2 ~= 13 * 10^12. This is a very bad case of factorial complexity (to be precise, it\u2019s actually much worse - O(n! ^ 2) - but I couldn\u2019t come up with a name for it), so there is little need to explore this approach any further.</p>\n\n<h3 id=\"myers-algorithm\">Myers Algorithm</h3>\n\n<p>After the na\u00efve approach was proven to be infeasible, the next question I asked myself was \u201chow does git diff work?\u201d. This question led me to discover the Myers diff algorithm [1]. This algorithm has been designed to compare sequences of strings. At its core, it\u2019s looking for the shortest path on a graph of possible edits that transform the first sequence into the second one, while heavily rewarding those paths that lead to longest subsequences of unchanged elements. There\u2019s a lot of material out there describing this algorithm in greater detail. I found James Coglan\u2019s series of <a href=\"https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/\">blog posts</a> to be the most comprehensive.</p>\n\n<p>Therefore, I had this \u201cbrilliant\u201d (actually not) idea to transform trees into sequences by traversing them in topological order, and then applying the Myers algorithm on resulting sequences while using a custom heuristics when checking the equality of two nodes. Unsurprisingly, comparing sequences of strings is quite different from comparing hierarchical tree structures, and by flattening trees into sequences, we lose a lot of relevant context. This resulted in a terrible performance of this algorithm on ASTs. It often matched completely unrelated nodes, even when the two trees were mostly the same, and produced extremely inaccurate lists of changes overall. After playing around with it a little and tweaking my equality heuristics to improve accuracy, I ultimately scrapped the whole implementation and went back to the drawing board.</p>\n\n<h2 id=\"change-distiller\">Change Distiller</h2>\n\n<p>The algorithm I settled on at the end was Change Distiller, created by Fluri et al. [2], which in turn is an improvement over the core idea described by Chawathe et al. [3].</p>\n\n<p>The algorithm consists of two high-level steps:</p>\n\n<ol>\n<li><strong>Finding appropriate matchings between pairs of nodes that are part of compared ASTs.</strong> Identifying what is meant by \u201cappropriate\u201d matching is also a part of this step.</li>\n<li><strong>Generating the so-called \u201cedit script\u201d from the matching set built in the 1st step.</strong> The edit script is a sequence of edit operations (for example, insert, remove, update, etc.) on individual tree nodes, such that when applied as transformations on the source AST, it eventually becomes the target AST. In general, the shorter the sequence, the better. The length of the edit script can be used to compare the performance of different algorithms, though this is not the only metric that matters.</li>\n</ol>\n\n<p>The rest of this section is dedicated to the Python implementation of the steps above using the AST implementation provided by the SQLGlot library.</p>\n\n<h3 id=\"building-the-matching-set\">Building the Matching Set</h3>\n\n<h4 id=\"matching-leaves\">Matching Leaves</h4>\n\n<p>We begin composing the matching set by matching the leaf nodes. Leaf nodes are the nodes that do not have any children nodes (such as literals, identifiers, etc.). In order to match them, we gather all the leaf nodes from the source tree and generate a cartesian product with all the leaves from the target tree, while comparing pairs created this way and assigning them a similarity score. During this stage, we also exclude pairs that don\u2019t pass basic matching criteria. Then, we pick pairs that scored the highest while making sure that each node is matched no more than once.</p>\n\n<p>Using the example provided at the beginning of the post, the process of building an initial set of candidate matchings can be seen on Figure 2.</p>\n\n<p><img src=\"sql_diff_images/figure_2.gif\" alt=\"Figure 2: Building a set of candidate matchings between leaf nodes. The third item in each triplet represents a similarity score between two nodes.\" />\n<em>Figure 2: Building a set of candidate matchings between leaf nodes. The third item in each triplet represents a similarity score between two nodes.</em></p>\n\n<p>First, let\u2019s analyze the similarity score. Then, we\u2019ll discuss matching criteria.</p>\n\n<p>The similarity score proposed by Fluri et al. [2] is a <a href=\"https://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient\">dice coefficient </a>applied to <a href=\"https://en.wikipedia.org/wiki/Bigram\">bigrams</a> of respective node values. A bigram is a sequence of two adjacent elements from a string computed in a sliding window fashion:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">def</span> <span class=\"nf\">bigram</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">):</span>\n <span class=\"n\">count</span> <span class=\"o\">=</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">)</span> <span class=\"o\">-</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n <span class=\"k\">return</span> <span class=\"p\">[</span><span class=\"n\">string</span><span class=\"p\">[</span><span class=\"n\">i</span> <span class=\"p\">:</span> <span class=\"n\">i</span> <span class=\"o\">+</span> <span class=\"mi\">2</span><span class=\"p\">]</span> <span class=\"k\">for</span> <span class=\"n\">i</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">count</span><span class=\"p\">)]</span>\n</code></pre>\n</div>\n\n<p>For reasons that will become clear shortly, we actually need to compute bigram histograms rather than just sequences:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">collections</span> <span class=\"kn\">import</span> <span class=\"n\">defaultdict</span>\n\n<span class=\"k\">def</span> <span class=\"nf\">bigram_histo</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">):</span>\n <span class=\"n\">count</span> <span class=\"o\">=</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">string</span><span class=\"p\">)</span> <span class=\"o\">-</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n <span class=\"n\">bigram_histo</span> <span class=\"o\">=</span> <span class=\"n\">defaultdict</span><span class=\"p\">(</span><span class=\"nb\">int</span><span class=\"p\">)</span>\n <span class=\"k\">for</span> <span class=\"n\">i</span> <span class=\"ow\">in</span> <span class=\"nb\">range</span><span class=\"p\">(</span><span class=\"n\">count</span><span class=\"p\">):</span>\n <span class=\"n\">bigram_histo</span><span class=\"p\">[</span><span class=\"n\">string</span><span class=\"p\">[</span><span class=\"n\">i</span> <span class=\"p\">:</span> <span class=\"n\">i</span> <span class=\"o\">+</span> <span class=\"mi\">2</span><span class=\"p\">]]</span> <span class=\"o\">+=</span> <span class=\"mi\">1</span>\n <span class=\"k\">return</span> <span class=\"n\">bigram_histo</span>\n</code></pre>\n</div>\n\n<p>The dice coefficient formula looks like following:</p>\n\n<p><img src=\"sql_diff_images/dice_coef.png\" alt=\"Dice Coefficient\" /></p>\n\n<p>Where X is a bigram of the source node and Y is a bigram of the second one. What this essentially does is count the number of bigram elements the two nodes have in common, multiply it by 2, and then divide by the total number of elements in both bigrams. This is where bigram histograms come in handy:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">def</span> <span class=\"nf\">dice_coefficient</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">,</span> <span class=\"n\">target</span><span class=\"p\">):</span>\n <span class=\"n\">source_histo</span> <span class=\"o\">=</span> <span class=\"n\">bigram_histo</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">())</span>\n <span class=\"n\">target_histo</span> <span class=\"o\">=</span> <span class=\"n\">bigram_histo</span><span class=\"p\">(</span><span class=\"n\">target</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">())</span>\n\n <span class=\"n\">total_grams</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"nb\">sum</span><span class=\"p\">(</span><span class=\"n\">source_histo</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">())</span> <span class=\"o\">+</span> <span class=\"nb\">sum</span><span class=\"p\">(</span><span class=\"n\">target_histo</span><span class=\"o\">.</span><span class=\"n\">values</span><span class=\"p\">())</span>\n <span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"ow\">not</span> <span class=\"n\">total_grams</span><span class=\"p\">:</span>\n <span class=\"k\">return</span> <span class=\"mf\">1.0</span> <span class=\"k\">if</span> <span class=\"n\">source</span> <span class=\"o\">==</span> <span class=\"n\">target</span> <span class=\"k\">else</span> <span class=\"mf\">0.0</span>\n\n <span class=\"n\">overlap_len</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>\n <span class=\"n\">overlapping_grams</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">source_histo</span><span class=\"p\">)</span> <span class=\"o\">&</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">target_histo</span><span class=\"p\">)</span>\n <span class=\"k\">for</span> <span class=\"n\">g</span> <span class=\"ow\">in</span> <span class=\"n\">overlapping_grams</span><span class=\"p\">:</span>\n <span class=\"n\">overlap_len</span> <span class=\"o\">+=</span> <span class=\"nb\">min</span><span class=\"p\">(</span><span class=\"n\">source_histo</span><span class=\"p\">[</span><span class=\"n\">g</span><span class=\"p\">],</span> <span class=\"n\">target_histo</span><span class=\"p\">[</span><span class=\"n\">g</span><span class=\"p\">])</span>\n\n <span class=\"k\">return</span> <span class=\"mi\">2</span> <span class=\"o\">*</span> <span class=\"n\">overlap_len</span> <span class=\"o\">/</span> <span class=\"n\">total_grams</span>\n</code></pre>\n</div>\n\n<p>To compute a bigram given a tree node, we first transform the node into its canonical SQL representation,so that the <code>Literal(123)</code> node becomes just \u201c123\u201d and the <code>Identifier(\u201ca\u201d)</code> node becomes just \u201ca\u201d. We also handle a scenario when strings are too short to derive bigrams. In this case, we fallback to checking the two nodes for equality.</p>\n\n<p>Now when we know how to compute the similarity score, we can take care of the matching criteria for leaf nodes. In the original paper [2], the matching criteria is formalized as follows:</p>\n\n<p><img src=\"sql_diff_images/matching_criteria_1.png\" alt=\"Matching criteria for leaf nodes\" /></p>\n\n<p>The two nodes are matched if two conditions are met:</p>\n\n<ol>\n<li>The node labels match (in our case labels are just node types).</li>\n<li>The similarity score for node values is greater than or equal to some threshold \u201cf\u201d. The authors of the paper recommend setting the value of \u201cf\u201d to 0.6.</li>\n</ol>\n\n<p>With building blocks in place, we can now build a matching set for leaf nodes. First, we generate a list of candidates for matching:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"kn\">from</span> <span class=\"nn\">heapq</span> <span class=\"kn\">import</span> <span class=\"n\">heappush</span><span class=\"p\">,</span> <span class=\"n\">heappop</span>\n\n<span class=\"n\">candidate_matchings</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n<span class=\"n\">source_leaves</span> <span class=\"o\">=</span> <span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_source</span><span class=\"p\">)</span>\n<span class=\"n\">target_leaves</span> <span class=\"o\">=</span> <span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">_target</span><span class=\"p\">)</span>\n<span class=\"k\">for</span> <span class=\"n\">source_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">source_leaves</span><span class=\"p\">:</span>\n <span class=\"k\">for</span> <span class=\"n\">target_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">target_leaves</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">_is_same_type</span><span class=\"p\">(</span><span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span><span class=\"p\">):</span>\n <span class=\"n\">similarity_score</span> <span class=\"o\">=</span> <span class=\"n\">dice_coefficient</span><span class=\"p\">(</span>\n <span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span>\n <span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"n\">similarity_score</span> <span class=\"o\">>=</span> <span class=\"mf\">0.6</span><span class=\"p\">:</span>\n <span class=\"n\">heappush</span><span class=\"p\">(</span>\n <span class=\"n\">candidate_matchings</span><span class=\"p\">,</span>\n <span class=\"p\">(</span>\n <span class=\"o\">-</span><span class=\"n\">similarity_score</span><span class=\"p\">,</span>\n <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">candidate_matchings</span><span class=\"p\">),</span>\n <span class=\"n\">source_leaf</span><span class=\"p\">,</span>\n <span class=\"n\">target_leaf</span><span class=\"p\">,</span>\n <span class=\"p\">),</span>\n <span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<p>In the implementation above, we push each matching pair onto the heap to automatically maintain the correct order based on the assigned similarity score.</p>\n\n<p>Finally, we build the initial matching set by picking leaf pairs with the highest score:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">matching_set</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">()</span>\n<span class=\"k\">while</span> <span class=\"n\">candidate_matchings</span><span class=\"p\">:</span>\n <span class=\"n\">_</span><span class=\"p\">,</span> <span class=\"n\">_</span><span class=\"p\">,</span> <span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span> <span class=\"o\">=</span> <span class=\"n\">heappop</span><span class=\"p\">(</span><span class=\"n\">candidate_matchings</span><span class=\"p\">)</span>\n <span class=\"k\">if</span> <span class=\"p\">(</span>\n <span class=\"n\">source_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span>\n <span class=\"ow\">and</span> <span class=\"n\">target_leaf</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_target_nodes</span>\n <span class=\"p\">):</span>\n <span class=\"n\">matching_set</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">((</span><span class=\"n\">source_leaf</span><span class=\"p\">,</span> <span class=\"n\">target_leaf</span><span class=\"p\">))</span>\n <span class=\"n\">unmatched_source_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">source_leaf</span><span class=\"p\">)</span>\n <span class=\"n\">unmatched_target_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">target_leaf</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<p>To finalize the matching set, we should now proceed with matching inner nodes.</p>\n\n<h4 id=\"matching-inner-nodes\">Matching Inner Nodes</h4>\n\n<p>Matching inner nodes is quite similar to matching leaf nodes, with the following two distinctions:</p>\n\n<ul>\n<li>Rather than ranking a set of possible candidates, we pick the first node pair that passes the matching criteria.</li>\n<li>The matching criteria itself has been extended to account for the number of leaf nodes the pair of inner nodes have in common.</li>\n</ul>\n\n<p><img src=\"sql_diff_images/figure_3.gif\" alt=\"Figure 3: Matching inner nodes based on their type as well as how many of their leaf nodes have been previously matched.\" />\n<em>Figure 3: Matching inner nodes based on their type as well as how many of their leaf nodes have been previously matched.</em></p>\n\n<p>Let\u2019s start with the matching criteria. The criteria is formalized as follows:</p>\n\n<p><img src=\"sql_diff_images/matching_criteria_2.png\" alt=\"Matching criteria for inner nodes\" /></p>\n\n<p>Alongside already familiar similarity score and node type criteria, there is a new one in the middle: the ratio of leaf nodes that the two nodes have in common must exceed some threshold \u201ct\u201d. The recommended value for \u201ct\u201d is also 0.6. Counting the number of common leaf nodes is pretty straightforward, since we already have the complete matching set for leaves. All we need to do is count how many matching pairs do leaf nodes from the two compared inner nodes form.</p>\n\n<p>There are two additional heuristics associated with this matching criteria:</p>\n\n<ul>\n<li>Inner node similarity weighting: if the similarity score between the node values doesn\u2019t pass the threshold \u201cf\u201d but the ratio of common leaf nodes (\u201ct\u201d) is greater than or equal to 0.8, then the matching is considered successful.</li>\n<li>The threshold \u201ct\u201d is reduced to 0.4 for inner nodes with the number of leaf nodes equal to 4 or less, in order to decrease the false negative rate for small subtrees.</li>\n</ul>\n\n<p>We now only have to iterate through the remaining unmatched nodes and form matching pairs based on the outlined criteria:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">leaves_matching_set</span> <span class=\"o\">=</span> <span class=\"n\">matching_set</span><span class=\"o\">.</span><span class=\"n\">copy</span><span class=\"p\">()</span>\n\n<span class=\"k\">for</span> <span class=\"n\">source_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span><span class=\"o\">.</span><span class=\"n\">copy</span><span class=\"p\">():</span>\n <span class=\"k\">for</span> <span class=\"n\">target_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_target_nodes</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">_is_same_type</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">):</span>\n <span class=\"n\">source_leaves</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">))</span>\n <span class=\"n\">target_leaves</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span><span class=\"n\">_get_leaves</span><span class=\"p\">(</span><span class=\"n\">target_node</span><span class=\"p\">))</span>\n\n <span class=\"n\">max_leaves_num</span> <span class=\"o\">=</span> <span class=\"nb\">max</span><span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">source_leaves</span><span class=\"p\">),</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">target_leaves</span><span class=\"p\">))</span>\n <span class=\"k\">if</span> <span class=\"n\">max_leaves_num</span><span class=\"p\">:</span>\n <span class=\"n\">common_leaves_num</span> <span class=\"o\">=</span> <span class=\"nb\">sum</span><span class=\"p\">(</span>\n <span class=\"mi\">1</span> <span class=\"k\">if</span> <span class=\"n\">s</span> <span class=\"ow\">in</span> <span class=\"n\">source_leaves</span> <span class=\"ow\">and</span> <span class=\"n\">t</span> <span class=\"ow\">in</span> <span class=\"n\">target_leaves</span> <span class=\"k\">else</span> <span class=\"mi\">0</span>\n <span class=\"k\">for</span> <span class=\"n\">s</span><span class=\"p\">,</span> <span class=\"n\">t</span> <span class=\"ow\">in</span> <span class=\"n\">leaves_matching_set</span>\n <span class=\"p\">)</span>\n <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">=</span> <span class=\"n\">common_leaves_num</span> <span class=\"o\">/</span> <span class=\"n\">max_leaves_num</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">=</span> <span class=\"mf\">0.0</span>\n\n <span class=\"n\">adjusted_t</span> <span class=\"o\">=</span> <span class=\"p\">(</span>\n <span class=\"mf\">0.6</span>\n <span class=\"k\">if</span> <span class=\"nb\">min</span><span class=\"p\">(</span><span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">source_leaves</span><span class=\"p\">),</span> <span class=\"nb\">len</span><span class=\"p\">(</span><span class=\"n\">target_leaves</span><span class=\"p\">))</span> <span class=\"o\">></span> <span class=\"mi\">4</span>\n <span class=\"k\">else</span> <span class=\"mf\">0.4</span>\n <span class=\"p\">)</span>\n\n <span class=\"k\">if</span> <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">>=</span> <span class=\"mf\">0.8</span> <span class=\"ow\">or</span> <span class=\"p\">(</span>\n <span class=\"n\">leaf_similarity_score</span> <span class=\"o\">>=</span> <span class=\"n\">adjusted_t</span>\n <span class=\"ow\">and</span> <span class=\"n\">dice_coefficient</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">)</span> <span class=\"o\">>=</span> <span class=\"mf\">0.6</span>\n <span class=\"p\">):</span>\n <span class=\"n\">matching_set</span><span class=\"o\">.</span><span class=\"n\">add</span><span class=\"p\">((</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">))</span>\n <span class=\"n\">unmatched_source_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">)</span>\n <span class=\"n\">unmatched_target_nodes</span><span class=\"o\">.</span><span class=\"n\">remove</span><span class=\"p\">(</span><span class=\"n\">target_node</span><span class=\"p\">)</span>\n <span class=\"k\">break</span>\n</code></pre>\n</div>\n\n<p>After the matching set is formed, we can proceed with generation of the edit script, which will be the algorithm\u2019s output.</p>\n\n<h3 id=\"generating-the-edit-script\">Generating the Edit Script</h3>\n\n<p>At this point, we should have the following 3 sets at our disposal:</p>\n\n<ul>\n<li>The set of matched node pairs.</li>\n<li>The set of remaining unmatched nodes from the source tree.</li>\n<li>The set of remaining unmatched nodes from the target tree.</li>\n</ul>\n\n<p>We can derive 3 kinds of edits from the matching set: either the node\u2019s value was updated (<strong>Update</strong>), the node was moved to a different position within the tree (<strong>Move</strong>), or the node remained unchanged (<strong>Keep</strong>). Note that the <strong>Move</strong> case is not mutually exclusive with the other two. The node could have been updated or could have remained the same while at the same time its position within its parent node or the parent node itself could have changed. All unmatched nodes from the source tree are the ones that were removed (<strong>Remove</strong>), while unmatched nodes from the target tree are the ones that were inserted (<strong>Insert</strong>).</p>\n\n<p>The latter two cases are pretty straightforward to implement:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"n\">edit_script</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n\n<span class=\"k\">for</span> <span class=\"n\">removed_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span><span class=\"p\">:</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">removed_node</span><span class=\"p\">))</span>\n<span class=\"k\">for</span> <span class=\"n\">inserted_node</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_target_nodes</span><span class=\"p\">:</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">inserted_node</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<p>Traversing the matching set requires a little more thought:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">for</span> <span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span> <span class=\"ow\">in</span> <span class=\"n\">matching_set</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"p\">(</span>\n <span class=\"ow\">not</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">LEAF_EXPRESSION_TYPES</span><span class=\"p\">)</span>\n <span class=\"ow\">or</span> <span class=\"n\">source_node</span> <span class=\"o\">==</span> <span class=\"n\">target_node</span>\n <span class=\"p\">):</span>\n <span class=\"n\">move_edits</span> <span class=\"o\">=</span> <span class=\"n\">generate_move_edits</span><span class=\"p\">(</span>\n <span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">,</span> <span class=\"n\">matching_set</span>\n <span class=\"p\">)</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">extend</span><span class=\"p\">(</span><span class=\"n\">move_edits</span><span class=\"p\">)</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">))</span>\n <span class=\"k\">else</span><span class=\"p\">:</span>\n <span class=\"n\">edit_script</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Update</span><span class=\"p\">(</span><span class=\"n\">source_node</span><span class=\"p\">,</span> <span class=\"n\">target_node</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<p>If a matching pair represents a pair of leaf nodes, we check if they are the same to decide whether an update took place. For inner node pairs, we also need to compare the positions of their respective children to detect node movements. Chawathe et al. [3] suggest applying the <a href=\"https://en.wikipedia.org/wiki/Longest_common_subsequence_problem\">longest common subsequence </a>(LCS) algorithm which, no surprise here, was described by Myers himself [1]. There is a small catch, however: instead of checking the equality of two children nodes, we need to check whether the two nodes form a pair that is a part of our matching set.</p>\n\n<p>Now with this knowledge, the implementation becomes straightforward:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">def</span> <span class=\"nf\">generate_move_edits</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">,</span> <span class=\"n\">target</span><span class=\"p\">,</span> <span class=\"n\">matching_set</span><span class=\"p\">):</span>\n <span class=\"n\">source_children</span> <span class=\"o\">=</span> <span class=\"n\">_get_child_nodes</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">)</span>\n <span class=\"n\">target_children</span> <span class=\"o\">=</span> <span class=\"n\">_get_child_nodes</span><span class=\"p\">(</span><span class=\"n\">target</span><span class=\"p\">)</span>\n\n <span class=\"n\">lcs</span> <span class=\"o\">=</span> <span class=\"nb\">set</span><span class=\"p\">(</span>\n <span class=\"n\">_longest_common_subsequence</span><span class=\"p\">(</span>\n <span class=\"n\">source_children</span><span class=\"p\">,</span>\n <span class=\"n\">target_children</span><span class=\"p\">,</span>\n <span class=\"k\">lambda</span> <span class=\"n\">l</span><span class=\"p\">,</span> <span class=\"n\">r</span><span class=\"p\">:</span> <span class=\"p\">(</span><span class=\"n\">l</span><span class=\"p\">,</span> <span class=\"n\">r</span><span class=\"p\">)</span> <span class=\"ow\">in</span> <span class=\"n\">matching_set</span>\n <span class=\"p\">)</span>\n <span class=\"p\">)</span>\n\n <span class=\"n\">move_edits</span> <span class=\"o\">=</span> <span class=\"p\">[]</span>\n <span class=\"k\">for</span> <span class=\"n\">node</span> <span class=\"ow\">in</span> <span class=\"n\">source_children</span><span class=\"p\">:</span>\n <span class=\"k\">if</span> <span class=\"n\">node</span> <span class=\"ow\">not</span> <span class=\"ow\">in</span> <span class=\"n\">lcs</span> <span class=\"ow\">and</span> <span class=\"n\">node</span> <span class=\"ow\">not</span> <span class=\"ow\">in</span> <span class=\"n\">unmatched_source_nodes</span><span class=\"p\">:</span>\n <span class=\"n\">move_edits</span><span class=\"o\">.</span><span class=\"n\">append</span><span class=\"p\">(</span><span class=\"n\">Move</span><span class=\"p\">(</span><span class=\"n\">node</span><span class=\"p\">))</span>\n\n <span class=\"k\">return</span> <span class=\"n\">move_edits</span>\n</code></pre>\n</div>\n\n<p>I left out the implementation of the LCS algorithm itself here, but there are plenty of implementation choices out there that can be easily looked up.</p>\n\n<h3 id=\"output\">Output</h3>\n\n<p>The implemented algorithm produces the output that resembles the following:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"o\">>>></span> <span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span><span class=\"p\">,</span> <span class=\"n\">diff</span>\n<span class=\"o\">>>></span> <span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a + b + c, d, e"</span><span class=\"p\">),</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a - b + c, e, f"</span><span class=\"p\">))</span>\n\n<span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">Add</span><span class=\"p\">)</span>\n<span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">d</span><span class=\"p\">))</span>\n<span class=\"n\">Remove</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">d</span><span class=\"p\">))</span>\n<span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">Sub</span><span class=\"p\">)</span>\n<span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">))</span>\n<span class=\"n\">Insert</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">f</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Select</span><span class=\"p\">,</span> <span class=\"n\">Select</span><span class=\"p\">)</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Add</span><span class=\"p\">,</span> <span class=\"n\">Add</span><span class=\"p\">)</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">a</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">b</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">c</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">),</span> <span class=\"n\">Column</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">))</span>\n<span class=\"n\">Keep</span><span class=\"p\">(</span><span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">),</span> <span class=\"n\">Identifier</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">))</span>\n</code></pre>\n</div>\n\n<p>Note that the output above is abbreviated. The string representation of actual AST nodes is significantly more verbose.</p>\n\n<p>The implementation works especially well when coupled with the SQLGlot\u2019s query optimizer which can be used to produce canonical representations of compared queries:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"o\">>>></span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">"t"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"b"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"c"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">,</span> <span class=\"s2\">"d"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">}}</span>\n<span class=\"o\">>>></span> <span class=\"n\">source</span> <span class=\"o\">=</span> <span class=\"s2\">"""</span>\n<span class=\"s2\">... SELECT 1 + 1 + a</span>\n<span class=\"s2\">... FROM t</span>\n<span class=\"s2\">... WHERE b = 1 OR (c = 2 AND d = 3)</span>\n<span class=\"s2\">... """</span>\n<span class=\"o\">>>></span> <span class=\"n\">target</span> <span class=\"o\">=</span> <span class=\"s2\">"""</span>\n<span class=\"s2\">... SELECT 2 + a</span>\n<span class=\"s2\">... FROM t</span>\n<span class=\"s2\">... WHERE (b = 1 OR c = 2) AND (b = 1 OR d = 3)</span>\n<span class=\"s2\">... """</span>\n<span class=\"o\">>>></span> <span class=\"n\">optimized_source</span> <span class=\"o\">=</span> <span class=\"n\">optimize</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">source</span><span class=\"p\">),</span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"n\">schema</span><span class=\"p\">)</span>\n<span class=\"o\">>>></span> <span class=\"n\">optimized_target</span> <span class=\"o\">=</span> <span class=\"n\">optimize</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">target</span><span class=\"p\">),</span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"n\">schema</span><span class=\"p\">)</span>\n<span class=\"o\">>>></span> <span class=\"n\">edit_script</span> <span class=\"o\">=</span> <span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">optimized_source</span><span class=\"p\">,</span> <span class=\"n\">optimized_target</span><span class=\"p\">)</span>\n<span class=\"o\">>>></span> <span class=\"nb\">sum</span><span class=\"p\">(</span><span class=\"mi\">0</span> <span class=\"k\">if</span> <span class=\"nb\">isinstance</span><span class=\"p\">(</span><span class=\"n\">e</span><span class=\"p\">,</span> <span class=\"n\">Keep</span><span class=\"p\">)</span> <span class=\"k\">else</span> <span class=\"mi\">1</span> <span class=\"k\">for</span> <span class=\"n\">e</span> <span class=\"ow\">in</span> <span class=\"n\">edit_script</span><span class=\"p\">)</span>\n<span class=\"mi\">0</span>\n</code></pre>\n</div>\n\n<h3 id=\"optimizations\">Optimizations</h3>\n\n<p>The worst case runtime complexity of this algorithm is not exactly stellar: O(n^2 * log n^2). This is because of the leaf matching process, which involves ranking a cartesian product between all leaf nodes of compared trees. Unsurprisingly, the algorithm takes a considerable time to finish for bigger queries.</p>\n\n<p>There are still a few basic things we can do in our implementation to help improve performance:</p>\n\n<ul>\n<li>Refer to individual node objects using their identifiers (Python\u2019s <a href=\"https://docs.python.org/3/library/functions.html#id\">id()</a>) instead of direct references in sets. This helps avoid costly recursive hash calculations and equality checks.</li>\n<li>Cache bigram histograms to avoid computing them more than once for the same node.</li>\n<li>Compute the canonical SQL string representation for each tree once while caching string representations of all inner nodes. This prevents redundant tree traversals when bigrams are computed.</li>\n</ul>\n\n<p>At the time of writing only the first two optimizations have been implemented, so there is an opportunity to contribute for anyone who\u2019s interested.</p>\n\n<h2 id=\"alternative-solutions\">Alternative Solutions</h2>\n\n<p>This section is dedicated to solutions that I\u2019ve investigated, but haven\u2019t tried.</p>\n\n<p>First, this section wouldn\u2019t be complete without Tristan Hume\u2019s <a href=\"https://thume.ca/2017/06/17/tree-diffing/\">blog post</a>. Tristan\u2019s solution has a lot in common with the Myers algorithm plus heuristics that is much more clever than what I came up with. The implementation relies on a combination of <a href=\"https://en.wikipedia.org/wiki/Dynamic_programming\">dynamic programming</a> and <a href=\"https://en.wikipedia.org/wiki/A*_search_algorithm\">A* search algorithm</a> to explore the space of possible matchings and pick the best ones. It seemed to have worked well for Tistan\u2019s specific use case, but after my negative experience with the Myers algorithm, I decided to try something different.</p>\n\n<p>Another notable approach is the Gumtree algorithm by Falleri et al. [4]. I discovered this paper after I\u2019d already implemented the algorithm that is the main focus of this post. In sections 5.2 and 5.3 of their paper, the authors compare the two algorithms side by side and claim that Gumtree is significantly better in terms of both runtime performance and accuracy when evaluated on 12 792 pairs of Java source files. This doesn\u2019t surprise me, as the algorithm takes the height of subtrees into account. In my tests, I definitely saw scenarios in which this context would have helped. On top of that, the authors promise O(n^2) runtime complexity in the worst case which, given the Change Distiller's O(n^2 * log n^2), looks particularly tempting. I hope to try this algorithm out at some point, and there is a good chance you see me writing about it in my future posts.</p>\n\n<h2 id=\"conclusion\">Conclusion</h2>\n\n<p>The Change Distiller algorithm yielded quite satisfactory results in most of my tests. The scenarios in which it fell short mostly concerned identical (or very similar) subtrees located in different parts of the AST. In those cases, node mismatches were frequent and, as a result, edit scripts were somewhat suboptimal.</p>\n\n<p>Additionally, the runtime performance of the algorithm leaves a lot to be desired. On trees with 1000 leaf nodes each, the algorithm takes a little under 2 seconds to complete. My implementation still has room for improvement, but this should give you a rough idea of what to expect. It appears that the Gumtree algorithm [4] can help address both of these points. I hope to find bandwidth to work on it soon and then compare the two algorithms side-by-side to find out which one performs better on SQL specifically. In the meantime, Change Distiller definitely gets the job done, and I can now proceed with applying it to some of the use cases I mentioned at the beginning of this post.</p>\n\n<p>I\u2019m also curious to learn whether other folks in the industry faced a similar problem, and how they approached it. If you did something similar, I\u2019m interested to hear about your experience.</p>\n\n<h2 id=\"references\">References</h2>\n\n<p>[1] Eugene W. Myers. <a href=\"http://www.xmailserver.org/diff2.pdf\">An O(ND) Difference Algorithm and Its Variations</a>. Algorithmica 1(2): 251-266 (1986)</p>\n\n<p>[2] B. Fluri, M. Wursch, M. Pinzger, and H. Gall. <a href=\"https://www.researchgate.net/publication/3189787_Change_DistillingTree_Differencing_for_Fine-Grained_Source_Code_Change_Extraction\">Change Distilling: Tree differencing for fine-grained source code change extraction</a>. IEEE Trans. Software Eng., 33(11):725\u2013743, 2007.</p>\n\n<p>[3] S.S. Chawathe, A. Rajaraman, H. Garcia-Molina, and J. Widom. <a href=\"http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf\">Change Detection in Hierarchically Structured Information</a>. Proc. ACM Sigmod Int\u2019l Conf. Management of Data, pp. 493-504, June 1996</p>\n\n<p>[4] Jean-R\u00e9my Falleri, Flor\u00e9al Morandat, Xavier Blanc, Matias Martinez, Martin Monperrus. <a href=\"https://hal.archives-ouvertes.fr/hal-01054552/document\">Fine-grained and Accurate Source Code Differencing</a>. Proceedings of the International Conference on Automated Software Engineering, 2014, V\u00e4steras, Sweden. pp.313-324, 10.1145/2642937.2642982. hal-01054552</p>\n\n<hr />\n"}, "sqlglot.diff.Insert": {"fullname": "sqlglot.diff.Insert", "modulename": "sqlglot.diff", "qualname": "Insert", "kind": "class", "doc": "<p>Indicates that a new node has been inserted</p>\n"}, "sqlglot.diff.Insert.__init__": {"fullname": "sqlglot.diff.Insert.__init__", "modulename": "sqlglot.diff", "qualname": "Insert.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Remove": {"fullname": "sqlglot.diff.Remove", "modulename": "sqlglot.diff", "qualname": "Remove", "kind": "class", "doc": "<p>Indicates that an existing node has been removed</p>\n"}, "sqlglot.diff.Remove.__init__": {"fullname": "sqlglot.diff.Remove.__init__", "modulename": "sqlglot.diff", "qualname": "Remove.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Move": {"fullname": "sqlglot.diff.Move", "modulename": "sqlglot.diff", "qualname": "Move", "kind": "class", "doc": "<p>Indicates that an existing node's position within the tree has changed</p>\n"}, "sqlglot.diff.Move.__init__": {"fullname": "sqlglot.diff.Move.__init__", "modulename": "sqlglot.diff", "qualname": "Move.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Update": {"fullname": "sqlglot.diff.Update", "modulename": "sqlglot.diff", "qualname": "Update", "kind": "class", "doc": "<p>Indicates that an existing node has been updated</p>\n"}, "sqlglot.diff.Update.__init__": {"fullname": "sqlglot.diff.Update.__init__", "modulename": "sqlglot.diff", "qualname": "Update.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.Keep": {"fullname": "sqlglot.diff.Keep", "modulename": "sqlglot.diff", "qualname": "Keep", "kind": "class", "doc": "<p>Indicates that an existing node hasn't been changed</p>\n"}, "sqlglot.diff.Keep.__init__": {"fullname": "sqlglot.diff.Keep.__init__", "modulename": "sqlglot.diff", "qualname": "Keep.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.diff.diff": {"fullname": "sqlglot.diff.diff", "modulename": "sqlglot.diff", "qualname": "diff", "kind": "function", "doc": "<p>Returns the list of changes between the source and the target expressions.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">diff</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"a + b"</span><span class=\"p\">),</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"a + c"</span><span class=\"p\">))</span>\n<span class=\"go\">[</span>\n<span class=\"go\"> Remove(expression=(COLUMN this: (IDENTIFIER this: b, quoted: False))),</span>\n<span class=\"go\"> Insert(expression=(COLUMN this: (IDENTIFIER this: c, quoted: False))),</span>\n<span class=\"go\"> Keep(</span>\n<span class=\"go\"> source=(ADD this: ...),</span>\n<span class=\"go\"> target=(ADD this: ...)</span>\n<span class=\"go\"> ),</span>\n<span class=\"go\"> Keep(</span>\n<span class=\"go\"> source=(COLUMN this: (IDENTIFIER this: a, quoted: False)),</span>\n<span class=\"go\"> target=(COLUMN this: (IDENTIFIER this: a, quoted: False))</span>\n<span class=\"go\"> ),</span>\n<span class=\"go\">]</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>source:</strong> the source expression.</li>\n<li><strong>target:</strong> the target expression against which the diff should be calculated.</li>\n<li><strong>matchings:</strong> the list of pre-matched node pairs which is used to help the algorithm's\nheuristics produce better results for subtrees that are known by a caller to be matching.\nNote: expression references in this list must refer to the same node objects that are\nreferenced in source / target trees.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>the list of Insert, Remove, Move, Update and Keep objects for each node in the source and the\n target expression trees. This list represents a sequence of steps needed to transform the source\n expression tree into the target one.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">matchings</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Insert</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Remove</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Move</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Update</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Keep</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.diff.ChangeDistiller": {"fullname": "sqlglot.diff.ChangeDistiller", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller", "kind": "class", "doc": "<p>The implementation of the Change Distiller algorithm described by Beat Fluri and Martin Pinzger in\ntheir paper <a href=\"https://ieeexplore.ieee.org/document/4339230\">https://ieeexplore.ieee.org/document/4339230</a>, which in turn is based on the algorithm by\nChawathe et al. described in <a href=\"http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf\">http://ilpubs.stanford.edu:8090/115/1/1995-46.pdf</a>.</p>\n"}, "sqlglot.diff.ChangeDistiller.__init__": {"fullname": "sqlglot.diff.ChangeDistiller.__init__", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">f</span><span class=\"p\">:</span> <span class=\"nb\">float</span> <span class=\"o\">=</span> <span class=\"mf\">0.6</span>, </span><span class=\"param\"><span class=\"n\">t</span><span class=\"p\">:</span> <span class=\"nb\">float</span> <span class=\"o\">=</span> <span class=\"mf\">0.6</span></span>)</span>"}, "sqlglot.diff.ChangeDistiller.diff": {"fullname": "sqlglot.diff.ChangeDistiller.diff", "modulename": "sqlglot.diff", "qualname": "ChangeDistiller.diff", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">target</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">matchings</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Insert</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Remove</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Move</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Update</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">diff</span><span class=\"o\">.</span><span class=\"n\">Keep</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.errors": {"fullname": "sqlglot.errors", "modulename": "sqlglot.errors", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.errors.ErrorLevel": {"fullname": "sqlglot.errors.ErrorLevel", "modulename": "sqlglot.errors", "qualname": "ErrorLevel", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.errors.ErrorLevel.IGNORE": {"fullname": "sqlglot.errors.ErrorLevel.IGNORE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IGNORE", "kind": "variable", "doc": "<p>Ignore all errors.</p>\n", "default_value": "<ErrorLevel.IGNORE: 'IGNORE'>"}, "sqlglot.errors.ErrorLevel.WARN": {"fullname": "sqlglot.errors.ErrorLevel.WARN", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.WARN", "kind": "variable", "doc": "<p>Log all errors.</p>\n", "default_value": "<ErrorLevel.WARN: 'WARN'>"}, "sqlglot.errors.ErrorLevel.RAISE": {"fullname": "sqlglot.errors.ErrorLevel.RAISE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.RAISE", "kind": "variable", "doc": "<p>Collect all errors and raise a single exception.</p>\n", "default_value": "<ErrorLevel.RAISE: 'RAISE'>"}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"fullname": "sqlglot.errors.ErrorLevel.IMMEDIATE", "modulename": "sqlglot.errors", "qualname": "ErrorLevel.IMMEDIATE", "kind": "variable", "doc": "<p>Immediately raise an exception on the first error found.</p>\n", "default_value": "<ErrorLevel.IMMEDIATE: 'IMMEDIATE'>"}, "sqlglot.errors.SqlglotError": {"fullname": "sqlglot.errors.SqlglotError", "modulename": "sqlglot.errors", "qualname": "SqlglotError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "builtins.Exception"}, "sqlglot.errors.UnsupportedError": {"fullname": "sqlglot.errors.UnsupportedError", "modulename": "sqlglot.errors", "qualname": "UnsupportedError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError": {"fullname": "sqlglot.errors.ParseError", "modulename": "sqlglot.errors", "qualname": "ParseError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.ParseError.__init__": {"fullname": "sqlglot.errors.ParseError.__init__", "modulename": "sqlglot.errors", "qualname": "ParseError.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">errors</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Any</span><span class=\"p\">]]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.errors.ParseError.new": {"fullname": "sqlglot.errors.ParseError.new", "modulename": "sqlglot.errors", "qualname": "ParseError.new", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">description</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">line</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">start_context</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">highlight</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">end_context</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">into_expression</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=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ParseError</span>:</span></span>", "funcdef": "def"}, "sqlglot.errors.TokenError": {"fullname": "sqlglot.errors.TokenError", "modulename": "sqlglot.errors", "qualname": "TokenError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.OptimizeError": {"fullname": "sqlglot.errors.OptimizeError", "modulename": "sqlglot.errors", "qualname": "OptimizeError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.SchemaError": {"fullname": "sqlglot.errors.SchemaError", "modulename": "sqlglot.errors", "qualname": "SchemaError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.ExecuteError": {"fullname": "sqlglot.errors.ExecuteError", "modulename": "sqlglot.errors", "qualname": "ExecuteError", "kind": "class", "doc": "<p>Common base class for all non-exit exceptions.</p>\n", "bases": "SqlglotError"}, "sqlglot.errors.concat_messages": {"fullname": "sqlglot.errors.concat_messages", "modulename": "sqlglot.errors", "qualname": "concat_messages", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">errors</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">maximum</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.errors.merge_errors": {"fullname": "sqlglot.errors.merge_errors", "modulename": "sqlglot.errors", "qualname": "merge_errors", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">errors</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ParseError</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Any</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor": {"fullname": "sqlglot.executor", "modulename": "sqlglot.executor", "kind": "module", "doc": "<h1 id=\"writing-a-python-sql-engine-from-scratch\">Writing a Python SQL engine from scratch</h1>\n\n<p><a href=\"https://www.linkedin.com/in/toby-mao/\">Toby Mao</a></p>\n\n<h2 id=\"introduction\">Introduction</h2>\n\n<p>When I first started writing SQLGlot in early 2021, my goal was just to translate SQL queries from SparkSQL to Presto and vice versa. However, over the last year and a half, I've ended up with a full-fledged SQL engine. SQLGlot can now parse and transpile between <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/dialects/__init__.py\">18 SQL dialects</a> and can execute all 24 <a href=\"https://www.tpc.org/tpch/\">TPC-H</a> SQL queries. The parser and engine are all written from scratch using Python.</p>\n\n<p>This post will cover <a href=\"#why\">why</a> I went through the effort of creating a Python SQL engine and <a href=\"#how\">how</a> a simple query goes from a string to actually transforming data. The following steps are briefly summarized:</p>\n\n<ul>\n<li><a href=\"#tokenizing\">Tokenizing</a></li>\n<li><a href=\"#parsing\">Parsing</a></li>\n<li><a href=\"#optimizing\">Optimizing</a></li>\n<li><a href=\"#planning\">Planning</a></li>\n<li><a href=\"#executing\">Executing</a></li>\n</ul>\n\n<h2 id=\"why\">Why?</h2>\n\n<p>I started working on SQLGlot because of my work on the <a href=\"https://netflixtechblog.com/reimagining-experimentation-analysis-at-netflix-71356393af21\">experimentation and metrics platform</a> at Netflix, where I built tools that allowed data scientists to define and compute SQL-based metrics. Netflix relied on multiple engines to query data (Spark, Presto, and Druid), so my team built the metrics platform around <a href=\"https://github.com/kayak/pypika\">PyPika</a>, a Python SQL query builder. This way, definitions could be reused across multiple engines. However, it became quickly apparent that writing python code to programmatically generate SQL was challenging for data scientists, especially those with academic backgrounds, since they were mostly familiar with R and SQL. At the time, the only Python SQL parser was <a href=\"[https://github.com/andialbrecht/sqlparse\">sqlparse</a>, which is not actually a parser but a tokenizer, so having users write raw SQL into the platform wasn't really an option. Some time later, I randomly stumbled across <a href=\"https://craftinginterpreters.com/\">Crafting Interpreters</a> and realized that I could use it as a guide towards creating my own SQL parser/transpiler.</p>\n\n<p>Why did I do this? Isn't a Python SQL engine going to be extremely slow?</p>\n\n<p>The main reason why I ended up building a SQL engine was...just for <strong>entertainment</strong>. It's been fun learning about all the things required to actually run a SQL query, and seeing it actually work is extremely rewarding. Before SQLGlot, I had zero experience with lexers, parsers, or compilers.</p>\n\n<p>In terms of practical use cases, I planned to use the Python SQL engine for unit testing SQL pipelines. Big data pipelines are tough to test because many of the engines are not open source and cannot be run locally. With SQLGlot, you can take a SQL query targeting a warehouse such as <a href=\"https://www.snowflake.com/en/\">Snowflake</a> and seamlessly run it in CI on mock Python data. It's easy to mock data and create arbitrary <a href=\"https://en.wikipedia.org/wiki/User-defined_function\">UDFs</a> because everything is just Python. Although the implementation is slow and unsuitable for large amounts of data (> 1 million rows), there's very little overhead/startup and you can run queries on test data in a couple of milliseconds.</p>\n\n<p>Finally, the components that have been built to support execution can be used as a <strong>foundation</strong> for a faster engine. I'm inspired by what <a href=\"https://github.com/apache/calcite\">Apache Calcite</a> has done for the JVM world. Even though Python is commonly used for data, there hasn't been a Calcite for Python. So, you could say that SQLGlot aims to be that framework. For example, it wouldn't take much work to replace the Python execution engine with numpy/pandas/arrow to become a respectably-performing query engine. The implementation would be able to leverage the parser, optimizer, and logical planner, only needing to implement physical execution. There is a lot of work in the Python ecosystem around high performance vectorized computation, which I think could benefit from a pure Python-based <a href=\"https://en.wikipedia.org/wiki/Abstract_syntax_tree\">AST</a>/<a href=\"https://en.wikipedia.org/wiki/Query_plan\">plan</a>. Parsing and planning doesn't have to be fast when the bottleneck of running queries is processing terabytes of data. So, having a Python-based ecosystem around SQL is beneficial given the ease of development in Python, despite not having bare metal performance.</p>\n\n<p>Parts of SQLGlot's toolkit are being used today by the following:</p>\n\n<ul>\n<li><a href=\"https://github.com/ibis-project/ibis\">Ibis</a>: A Python library that provides a lightweight, universal interface for data wrangling.\n<ul>\n<li>Uses the Python SQL expression builder and leverages the optimizer/planner to convert SQL into dataframe operations.</li>\n</ul></li>\n<li><a href=\"https://github.com/kelsin/mysql-mimic\">mysql-mimic</a>: Pure-Python implementation of the MySQL server wire protocol\n<ul>\n<li>Parses / transforms SQL and executes INFORMATION_SCHEMA queries.</li>\n</ul></li>\n<li><a href=\"https://github.com/marsupialtail/quokka\">Quokka</a>: Push-based vectorized query engine\n<ul>\n<li>Parse and optimizes SQL.</li>\n</ul></li>\n<li><a href=\"https://github.com/moj-analytical-services/splink\">Splink</a>: Fast, accurate and scalable probabilistic data linkage using your choice of SQL backend.\n<ul>\n<li>Transpiles queries.</li>\n</ul></li>\n</ul>\n\n<h2 id=\"how\">How?</h2>\n\n<p>There are many steps involved with actually running a simple query like:</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span>\n<span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"p\">,</span>\n<span class=\"w\"> </span><span class=\"n\">b</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">b</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">bar</span>\n<span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"n\">baz</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">baz</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">bar</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">></span><span class=\"w\"> </span><span class=\"mi\">1</span>\n</code></pre>\n</div>\n\n<p>In this post, I'll walk through all the steps SQLGlot takes to run this query over Python objects.</p>\n\n<h2 id=\"tokenizing\">Tokenizing</h2>\n\n<p>The first step is to convert the sql string into a list of tokens. SQLGlot's tokenizer is quite simple and can be found <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/tokens.py\">here</a>. In a while loop, it checks each character and either appends the character to the current token, or makes a new token.</p>\n\n<p>Running the SQLGlot tokenizer shows the output.</p>\n\n<p><img src=\"python_sql_engine_images/tokenizer.png\" alt=\"Tokenizer Output\" /></p>\n\n<p>Each keyword has been converted to a SQLGlot Token object. Each token has some metadata associated with it, like line/column information for error messages. Comments are also a part of the token, so that comments can be preserved.</p>\n\n<h2 id=\"parsing\">Parsing</h2>\n\n<p>Once a SQL statement is tokenized, we don't need to worry about white space and other formatting, so it's easier to work with. We can now convert the list of tokens into an AST. The SQLGlot <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/parser.py\">parser</a> is a handwritten <a href=\"https://en.wikipedia.org/wiki/Recursive_descent_parser\">recursive descent</a> parser.</p>\n\n<p>Similar to the tokenizer, it consumes the tokens sequentially, but it instead uses a recursive algorithm. The tokens are converted into a single AST node that presents the SQL query. The SQLGlot parser was designed to support various dialects, so it contains many options for overriding parsing functionality.</p>\n\n<p><img src=\"python_sql_engine_images/parser.png\" alt=\"Parser Output\" /></p>\n\n<p>The AST is a generic representation of a given SQL query. Each dialect can override or implement its own generator, which can convert an AST object into syntatically-correct SQL.</p>\n\n<h2 id=\"optimizing\">Optimizing</h2>\n\n<p>Once we have our AST, we can transform it into an equivalent query that produces the same results more efficiently. When optimizing queries, most engines first convert the AST into a logical plan and then optimize the plan. However, I chose to <strong>optimize the AST directly</strong> for the following reasons:</p>\n\n<ol>\n<li><p>It's easier to debug and <a href=\"https://github.com/tobymao/sqlglot/blob/main/tests/fixtures/optimizer\">validate</a> the optimizations when the input and output are both SQL.</p></li>\n<li><p>Rules can be applied a la carte to transform SQL into a more desirable form.</p></li>\n<li><p>I wanted a way to generate 'canonical sql'. Having a canonical representation of SQL is useful for understanding if two queries are semantically equivalent (e.g. <code>SELECT 1 + 1</code> and <code>SELECT 2</code>).</p></li>\n</ol>\n\n<p>I've yet to find another engine that takes this approach, but I'm quite happy with this decision. The optimizer currently does not perform any \"physical optimizations\" such as join reordering. Those are left to the execution layer, as additional statistics and information could become relevant.</p>\n\n<p><img src=\"python_sql_engine_images/optimizer.png\" alt=\"Optimizer Output\" /></p>\n\n<p>The optimizer currently has <a href=\"https://github.com/tobymao/sqlglot/tree/main/sqlglot/optimizer\">17 rules</a>. Each of these rules is applied, transforming the AST in place. The combination of these rules creates \"canonical\" sql that can then be more easily converted into a logical plan and executed.</p>\n\n<p>Some example rules are:</p>\n\n<h3 id=\"qualify_tables-and-qualify_columns\">qualify_tables and qualify_columns</h3>\n\n<ul>\n<li>Adds all db/catalog qualifiers to tables and forces an alias.</li>\n<li>Ensure each column is unambiguous and expand stars.</li>\n</ul>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span><span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">;</span>\n\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"ss\">"db"</span><span class=\"p\">.</span><span class=\"ss\">"x"</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"x"</span><span class=\"p\">;</span>\n</code></pre>\n</div>\n\n<h3 id=\"simplify\">simplify</h3>\n\n<p>Boolean and math simplification. Check out all the <a href=\"https://github.com/tobymao/sqlglot/blob/main/tests/fixtures/optimizer/simplify.sql\">test cases</a>.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"p\">((</span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"k\">FALSE</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">))</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"k\">TRUE</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"o\"><></span><span class=\"w\"> </span><span class=\"mi\">3</span><span class=\"p\">);</span>\n<span class=\"n\">x</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">;</span>\n\n<span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"o\">+</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">;</span>\n<span class=\"mi\">2</span><span class=\"p\">;</span>\n</code></pre>\n</div>\n\n<h3 id=\"normalize\">normalize</h3>\n\n<p>Attempts to convert all predicates into <a href=\"https://en.wikipedia.org/wiki/Conjunctive_normal_form\">conjunctive normal form</a>.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"c1\">-- DNF</span>\n<span class=\"p\">(</span><span class=\"n\">A</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"n\">B</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">B</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"k\">C</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"n\">D</span><span class=\"p\">);</span>\n\n<span class=\"c1\">-- CNF</span>\n<span class=\"p\">(</span><span class=\"n\">A</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"k\">C</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"n\">A</span><span class=\"w\"> </span><span class=\"k\">OR</span><span class=\"w\"> </span><span class=\"n\">D</span><span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"n\">B</span><span class=\"p\">;</span>\n</code></pre>\n</div>\n\n<h3 id=\"unnest_subqueries\">unnest_subqueries</h3>\n\n<p>Converts subqueries in predicates into joins.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"c1\">-- The subquery can be converted into a left join</span>\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">a</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">;</span>\n\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"k\">LEFT</span><span class=\"w\"> </span><span class=\"k\">JOIN</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">a</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"k\">TRUE</span>\n<span class=\"w\"> </span><span class=\"k\">GROUP</span><span class=\"w\"> </span><span class=\"k\">BY</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"ss\">"_u_0"</span>\n<span class=\"w\"> </span><span class=\"k\">ON</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"ss\">"_u_0"</span><span class=\"p\">.</span><span class=\"n\">a</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"p\">(</span><span class=\"ss\">"_u_0"</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"w\"> </span><span class=\"k\">AND</span><span class=\"w\"> </span><span class=\"k\">NOT</span><span class=\"w\"> </span><span class=\"ss\">"_u_0"</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"k\">IS</span><span class=\"w\"> </span><span class=\"k\">NULL</span><span class=\"p\">)</span>\n</code></pre>\n</div>\n\n<h3 id=\"pushdown_predicates\">pushdown_predicates</h3>\n\n<p>Push down filters into the innermost query.</p>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span>\n<span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span><span class=\"p\">;</span>\n\n<span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"p\">(</span>\n<span class=\"w\"> </span><span class=\"k\">SELECT</span><span class=\"w\"> </span><span class=\"o\">*</span>\n<span class=\"w\"> </span><span class=\"k\">FROM</span><span class=\"w\"> </span><span class=\"n\">x</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">x</span>\n<span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"p\">.</span><span class=\"n\">a</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"mi\">1</span>\n<span class=\"p\">)</span><span class=\"w\"> </span><span class=\"k\">AS</span><span class=\"w\"> </span><span class=\"n\">y</span><span class=\"w\"> </span><span class=\"k\">WHERE</span><span class=\"w\"> </span><span class=\"k\">TRUE</span>\n</code></pre>\n</div>\n\n<h3 id=\"annotate_types\">annotate_types</h3>\n\n<p>Infer all types throughout the AST given schema information and function type definitions.</p>\n\n<h2 id=\"planning\">Planning</h2>\n\n<p>After the SQL AST has been \"optimized\", it's much easier to <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/planner.py\">convert into a logical plan</a>. The AST is traversed and converted into a <a href=\"https://en.wikipedia.org/wiki/Directed_acyclic_graph\">DAG</a> consisting of one of five steps. The different steps are:</p>\n\n<h3 id=\"scan\">Scan</h3>\n\n<p>Selects columns from a table, applies projections, and finally filters the table.</p>\n\n<h3 id=\"sort\">Sort</h3>\n\n<p>Sorts a table for order by expressions.</p>\n\n<h3 id=\"set\">Set</h3>\n\n<p>Applies the operators union/union all/except/intersect.</p>\n\n<h3 id=\"aggregate\">Aggregate</h3>\n\n<p>Applies an aggregation/group by.</p>\n\n<h3 id=\"join\">Join</h3>\n\n<p>Joins multiple tables together.</p>\n\n<p><img src=\"python_sql_engine_images/planner.png\" alt=\"Planner Output\" /></p>\n\n<p>The logical plan is quite simple and contains the information required to convert it into a physical plan (execution).</p>\n\n<h2 id=\"executing\">Executing</h2>\n\n<p>Finally, we can actually execute the SQL query. The <a href=\"https://github.com/tobymao/sqlglot/blob/main/sqlglot/executor/python.py\">Python engine</a> is not fast, but it's very small (~400 LOC)! It iterates the DAG with a queue and runs each step, passing each intermediary table to the next step.</p>\n\n<p>In order to keep things simple, it evaluates expressions with <code>eval</code>. Because SQLGlot was built primarily to be a transpiler, it was simple to create a \"Python SQL\" dialect. So a SQL expression <code>x + 1</code> can just be converted into <code>scope['x'] + 1</code>.</p>\n\n<p><img src=\"python_sql_engine_images/executor.png\" alt=\"Executor Output\" /></p>\n\n<h2 id=\"whats-next\">What's next</h2>\n\n<p>SQLGlot's main focus will always be on parsing/transpiling, but I plan to continue development on the execution engine. I'd like to pass <a href=\"https://www.tpc.org/tpcds/\">TPC-DS</a>. If someone doesn't beat me to it, I may even take a stab at writing a Pandas/Arrow execution engine.</p>\n\n<p>I'm hoping that over time, SQLGlot will spark the Python SQL ecosystem just like Calcite has for Java.</p>\n\n<h2 id=\"special-thanks\">Special thanks</h2>\n\n<p>SQLGlot would not be what it is without it's core contributors. In particular, the execution engine would not exist without <a href=\"https://github.com/barakalon\">Barak Alon</a> and <a href=\"https://github.com/GeorgeSittas\">George Sittas</a>.</p>\n\n<h2 id=\"get-in-touch\">Get in touch</h2>\n\n<p>If you'd like to chat more about SQLGlot, please join my <a href=\"https://join.slack.com/t/tobiko-data/shared_invite/zt-1ma66d79v-a4dbf4DUpLAQJ8ptQrJygg\">Slack Channel</a>!</p>\n\n<hr />\n"}, "sqlglot.executor.execute": {"fullname": "sqlglot.executor.execute", "modulename": "sqlglot.executor", "qualname": "execute", "kind": "function", "doc": "<p>Run a sql query against data.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql:</strong> a sql statement.</li>\n<li><strong>schema:</strong> database schema.\nThis can either be an instance of <code>Schema</code> or a mapping in one of the following forms:\n<ol>\n<li>{table: {col: type}}</li>\n<li>{db: {table: {col: type}}}</li>\n<li>{catalog: {db: {table: {col: type}}}}</li>\n</ol></li>\n<li><strong>read:</strong> the SQL dialect to apply during parsing (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>tables:</strong> additional tables to register.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Simple columnar data structure.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">read</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">tables</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">Table</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context": {"fullname": "sqlglot.executor.context", "modulename": "sqlglot.executor.context", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.context.Context": {"fullname": "sqlglot.executor.context.Context", "modulename": "sqlglot.executor.context", "qualname": "Context", "kind": "class", "doc": "<p>Execution context for sql expressions.</p>\n\n<p>Context is used to hold relevant data tables which can then be queried on with eval.</p>\n\n<p>References to columns can either be scalar or vectors. When set_row is used, column references\nevaluate to scalars while set_range evaluates to vectors. This allows convenient and efficient\nevaluation of aggregation functions.</p>\n"}, "sqlglot.executor.context.Context.__init__": {"fullname": "sqlglot.executor.context.Context.__init__", "modulename": "sqlglot.executor.context", "qualname": "Context.__init__", "kind": "function", "doc": "<p>Args\n tables: representing the scope of the current execution context.\n env: dictionary of functions within the execution context.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">tables</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">env</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.context.Context.eval": {"fullname": "sqlglot.executor.context.Context.eval", "modulename": "sqlglot.executor.context", "qualname": "Context.eval", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">code</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.eval_tuple": {"fullname": "sqlglot.executor.context.Context.eval_tuple", "modulename": "sqlglot.executor.context", "qualname": "Context.eval_tuple", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">codes</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.add_columns": {"fullname": "sqlglot.executor.context.Context.add_columns", "modulename": "sqlglot.executor.context", "qualname": "Context.add_columns", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">columns</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.table_iter": {"fullname": "sqlglot.executor.context.Context.table_iter", "modulename": "sqlglot.executor.context", "qualname": "Context.table_iter", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">TableIter</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">context</span><span class=\"o\">.</span><span class=\"n\">Context</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.filter": {"fullname": "sqlglot.executor.context.Context.filter", "modulename": "sqlglot.executor.context", "qualname": "Context.filter", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">condition</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.sort": {"fullname": "sqlglot.executor.context.Context.sort", "modulename": "sqlglot.executor.context", "qualname": "Context.sort", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">key</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.set_row": {"fullname": "sqlglot.executor.context.Context.set_row", "modulename": "sqlglot.executor.context", "qualname": "Context.set_row", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">row</span><span class=\"p\">:</span> <span class=\"n\">Tuple</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.set_index": {"fullname": "sqlglot.executor.context.Context.set_index", "modulename": "sqlglot.executor.context", "qualname": "Context.set_index", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">index</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.context.Context.set_range": {"fullname": "sqlglot.executor.context.Context.set_range", "modulename": "sqlglot.executor.context", "qualname": "Context.set_range", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"p\">:</span> <span class=\"nb\">int</span>, </span><span class=\"param\"><span class=\"n\">end</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.env": {"fullname": "sqlglot.executor.env", "modulename": "sqlglot.executor.env", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.env.reverse_key": {"fullname": "sqlglot.executor.env.reverse_key", "modulename": "sqlglot.executor.env", "qualname": "reverse_key", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.env.reverse_key.__init__": {"fullname": "sqlglot.executor.env.reverse_key.__init__", "modulename": "sqlglot.executor.env", "qualname": "reverse_key.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">obj</span></span>)</span>"}, "sqlglot.executor.env.filter_nulls": {"fullname": "sqlglot.executor.env.filter_nulls", "modulename": "sqlglot.executor.env", "qualname": "filter_nulls", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">func</span>, </span><span class=\"param\"><span class=\"n\">empty_null</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.null_if_any": {"fullname": "sqlglot.executor.env.null_if_any", "modulename": "sqlglot.executor.env", "qualname": "null_if_any", "kind": "function", "doc": "<p>Decorator that makes a function return <code>None</code> if any of the <code>required</code> arguments are <code>None</code>.</p>\n\n<p>This also supports decoration with no arguments, e.g.:</p>\n\n<pre><code>@null_if_any\ndef foo(a, b): ...\n</code></pre>\n\n<p>In which case all arguments are required.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">required</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.str_position": {"fullname": "sqlglot.executor.env.str_position", "modulename": "sqlglot.executor.env", "qualname": "str_position", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">substr</span>, </span><span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">position</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.substring": {"fullname": "sqlglot.executor.env.substring", "modulename": "sqlglot.executor.env", "qualname": "substring", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">start</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">length</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.cast": {"fullname": "sqlglot.executor.env.cast", "modulename": "sqlglot.executor.env", "qualname": "cast", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">to</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.ordered": {"fullname": "sqlglot.executor.env.ordered", "modulename": "sqlglot.executor.env", "qualname": "ordered", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">desc</span>, </span><span class=\"param\"><span class=\"n\">nulls_first</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.env.interval": {"fullname": "sqlglot.executor.env.interval", "modulename": "sqlglot.executor.env", "qualname": "interval", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">this</span>, </span><span class=\"param\"><span class=\"n\">unit</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python": {"fullname": "sqlglot.executor.python", "modulename": "sqlglot.executor.python", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.python.PythonExecutor": {"fullname": "sqlglot.executor.python.PythonExecutor", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.python.PythonExecutor.__init__": {"fullname": "sqlglot.executor.python.PythonExecutor.__init__", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">env</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">tables</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.python.PythonExecutor.execute": {"fullname": "sqlglot.executor.python.PythonExecutor.execute", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.execute", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">plan</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.generate": {"fullname": "sqlglot.executor.python.PythonExecutor.generate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.generate", "kind": "function", "doc": "<p>Convert a SQL expression into literal Python code and compile it into bytecode.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"fullname": "sqlglot.executor.python.PythonExecutor.generate_tuple", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.generate_tuple", "kind": "function", "doc": "<p>Convert an array of SQL expressions into tuple of Python byte code.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expressions</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.context": {"fullname": "sqlglot.executor.python.PythonExecutor.context", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.context", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">tables</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.table": {"fullname": "sqlglot.executor.python.PythonExecutor.table", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expressions</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan": {"fullname": "sqlglot.executor.python.PythonExecutor.scan", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.static": {"fullname": "sqlglot.executor.python.PythonExecutor.static", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.static", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan_table": {"fullname": "sqlglot.executor.python.PythonExecutor.scan_table", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan_table", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"fullname": "sqlglot.executor.python.PythonExecutor.scan_csv", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.scan_csv", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.join": {"fullname": "sqlglot.executor.python.PythonExecutor.join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"fullname": "sqlglot.executor.python.PythonExecutor.nested_loop_join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.nested_loop_join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">_join</span>, </span><span class=\"param\"><span class=\"n\">source_context</span>, </span><span class=\"param\"><span class=\"n\">join_context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.hash_join": {"fullname": "sqlglot.executor.python.PythonExecutor.hash_join", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.hash_join", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">join</span>, </span><span class=\"param\"><span class=\"n\">source_context</span>, </span><span class=\"param\"><span class=\"n\">join_context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.aggregate": {"fullname": "sqlglot.executor.python.PythonExecutor.aggregate", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.aggregate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.sort": {"fullname": "sqlglot.executor.python.PythonExecutor.sort", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.sort", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.PythonExecutor.set_operation": {"fullname": "sqlglot.executor.python.PythonExecutor.set_operation", "modulename": "sqlglot.executor.python", "qualname": "PythonExecutor.set_operation", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">step</span>, </span><span class=\"param\"><span class=\"n\">context</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.python.Python": {"fullname": "sqlglot.executor.python.Python", "modulename": "sqlglot.executor.python", "qualname": "Python", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.dialects.dialect.Dialect"}, "sqlglot.executor.python.Python.Tokenizer": {"fullname": "sqlglot.executor.python.Python.Tokenizer", "modulename": "sqlglot.executor.python", "qualname": "Python.Tokenizer", "kind": "class", "doc": "<p></p>\n", "bases": "sqlglot.tokens.Tokenizer"}, "sqlglot.executor.python.Python.Generator": {"fullname": "sqlglot.executor.python.Python.Generator", "modulename": "sqlglot.executor.python", "qualname": "Python.Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n", "bases": "sqlglot.generator.Generator"}, "sqlglot.executor.table": {"fullname": "sqlglot.executor.table", "modulename": "sqlglot.executor.table", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.executor.table.Table": {"fullname": "sqlglot.executor.table.Table", "modulename": "sqlglot.executor.table", "qualname": "Table", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.Table.__init__": {"fullname": "sqlglot.executor.table.Table.__init__", "modulename": "sqlglot.executor.table", "qualname": "Table.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">columns</span>, </span><span class=\"param\"><span class=\"n\">rows</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">column_range</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.table.Table.add_columns": {"fullname": "sqlglot.executor.table.Table.add_columns", "modulename": "sqlglot.executor.table", "qualname": "Table.add_columns", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">columns</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.executor.table.Table.append": {"fullname": "sqlglot.executor.table.Table.append", "modulename": "sqlglot.executor.table", "qualname": "Table.append", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">row</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.table.Table.pop": {"fullname": "sqlglot.executor.table.Table.pop", "modulename": "sqlglot.executor.table", "qualname": "Table.pop", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.executor.table.TableIter": {"fullname": "sqlglot.executor.table.TableIter", "modulename": "sqlglot.executor.table", "qualname": "TableIter", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.TableIter.__init__": {"fullname": "sqlglot.executor.table.TableIter.__init__", "modulename": "sqlglot.executor.table", "qualname": "TableIter.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span></span>)</span>"}, "sqlglot.executor.table.RangeReader": {"fullname": "sqlglot.executor.table.RangeReader", "modulename": "sqlglot.executor.table", "qualname": "RangeReader", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.RangeReader.__init__": {"fullname": "sqlglot.executor.table.RangeReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RangeReader.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span></span>)</span>"}, "sqlglot.executor.table.RowReader": {"fullname": "sqlglot.executor.table.RowReader", "modulename": "sqlglot.executor.table", "qualname": "RowReader", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.executor.table.RowReader.__init__": {"fullname": "sqlglot.executor.table.RowReader.__init__", "modulename": "sqlglot.executor.table", "qualname": "RowReader.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">columns</span>, </span><span class=\"param\"><span class=\"n\">column_range</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.executor.table.Tables": {"fullname": "sqlglot.executor.table.Tables", "modulename": "sqlglot.executor.table", "qualname": "Tables", "kind": "class", "doc": "<p>Abstract base class for generic types.</p>\n\n<p>A generic type is typically declared by inheriting from\nthis class parameterized with one or more type variables.\nFor example, a generic mapping type might be defined as::</p>\n\n<p>class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.</p>\n\n<p>This class can then be used as follows::</p>\n\n<p>def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default</p>\n", "bases": "sqlglot.schema.AbstractMappingSchema[sqlglot.executor.table.Table]"}, "sqlglot.executor.table.ensure_tables": {"fullname": "sqlglot.executor.table.ensure_tables", "modulename": "sqlglot.executor.table", "qualname": "ensure_tables", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">d</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">executor</span><span class=\"o\">.</span><span class=\"n\">table</span><span class=\"o\">.</span><span class=\"n\">Tables</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions": {"fullname": "sqlglot.expressions", "modulename": "sqlglot.expressions", "kind": "module", "doc": "<h2 id=\"expressions\">Expressions</h2>\n\n<p>Every AST node in SQLGlot is represented by a subclass of <code>Expression</code>.</p>\n\n<p>This module contains the implementation of all supported <code>Expression</code> types. Additionally,\nit exposes a number of helper functions, which are mainly used to programmatically build\nSQL expressions, such as <code>sqlglot.expressions.select</code>.</p>\n\n<hr />\n"}, "sqlglot.expressions.Expression": {"fullname": "sqlglot.expressions.Expression", "modulename": "sqlglot.expressions", "qualname": "Expression", "kind": "class", "doc": "<p>The base class for all expressions in a syntax tree. Each Expression encapsulates any necessary\ncontext, such as its child expressions, their names (arg keys), and whether a given child expression\nis optional or not.</p>\n\n<h6 id=\"attributes\">Attributes:</h6>\n\n<ul>\n<li><strong>key:</strong> a unique key for each class in the Expression hierarchy. This is useful for hashing\nand representing expressions as strings.</li>\n<li><strong>arg_types:</strong> determines what arguments (child nodes) are supported by an expression. It\nmaps arg keys to booleans that indicate whether the corresponding args are optional.</li>\n</ul>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"k\">class</span> <span class=\"nc\">Foo</span><span class=\"p\">(</span><span class=\"n\">Expression</span><span class=\"p\">):</span>\n<span class=\"gp\">... </span> <span class=\"n\">arg_types</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">"this"</span><span class=\"p\">:</span> <span class=\"kc\">True</span><span class=\"p\">,</span> <span class=\"s2\">"expression"</span><span class=\"p\">:</span> <span class=\"kc\">False</span><span class=\"p\">}</span>\n</code></pre>\n </div>\n \n <p>The above definition informs us that Foo is an Expression that requires an argument called\n \"this\" and may also optionally receive an argument called \"expression\".</p>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>args:</strong> a mapping used for retrieving the arguments of an expression, given their arg keys.</li>\n<li><strong>parent:</strong> a reference to the parent expression (or None, in case of root expressions).</li>\n<li><strong>arg_key:</strong> the arg key an expression is associated with, i.e. the name its parent expression\nuses to refer to it.</li>\n<li><strong>comments:</strong> a list of comments that are associated with a given expression. This is used in\norder to preserve comments when transpiling SQL code.</li>\n<li><strong>_type:</strong> the <code>sqlglot.expressions.DataType</code> type of an expression. This is inferred by the\noptimizer, in order to enable some transformations that require type information.</li>\n</ul>\n"}, "sqlglot.expressions.Expression.__init__": {"fullname": "sqlglot.expressions.Expression.__init__", "modulename": "sqlglot.expressions", "qualname": "Expression.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">**</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span>)</span>"}, "sqlglot.expressions.Expression.this": {"fullname": "sqlglot.expressions.Expression.this", "modulename": "sqlglot.expressions", "qualname": "Expression.this", "kind": "variable", "doc": "<p>Retrieves the argument with key \"this\".</p>\n"}, "sqlglot.expressions.Expression.expression": {"fullname": "sqlglot.expressions.Expression.expression", "modulename": "sqlglot.expressions", "qualname": "Expression.expression", "kind": "variable", "doc": "<p>Retrieves the argument with key \"expression\".</p>\n"}, "sqlglot.expressions.Expression.expressions": {"fullname": "sqlglot.expressions.Expression.expressions", "modulename": "sqlglot.expressions", "qualname": "Expression.expressions", "kind": "variable", "doc": "<p>Retrieves the argument with key \"expressions\".</p>\n"}, "sqlglot.expressions.Expression.text": {"fullname": "sqlglot.expressions.Expression.text", "modulename": "sqlglot.expressions", "qualname": "Expression.text", "kind": "function", "doc": "<p>Returns a textual representation of the argument corresponding to \"key\". This can only be used\nfor args that are strings or leaf Expression instances, such as identifiers and literals.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">key</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.is_string": {"fullname": "sqlglot.expressions.Expression.is_string", "modulename": "sqlglot.expressions", "qualname": "Expression.is_string", "kind": "variable", "doc": "<p>Checks whether a Literal expression is a string.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_number": {"fullname": "sqlglot.expressions.Expression.is_number", "modulename": "sqlglot.expressions", "qualname": "Expression.is_number", "kind": "variable", "doc": "<p>Checks whether a Literal expression is a number.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_int": {"fullname": "sqlglot.expressions.Expression.is_int", "modulename": "sqlglot.expressions", "qualname": "Expression.is_int", "kind": "variable", "doc": "<p>Checks whether a Literal expression is an integer.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.is_star": {"fullname": "sqlglot.expressions.Expression.is_star", "modulename": "sqlglot.expressions", "qualname": "Expression.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Expression.alias": {"fullname": "sqlglot.expressions.Expression.alias", "modulename": "sqlglot.expressions", "qualname": "Expression.alias", "kind": "variable", "doc": "<p>Returns the alias of the expression, or an empty string if it's not aliased.</p>\n", "annotation": ": str"}, "sqlglot.expressions.Expression.output_name": {"fullname": "sqlglot.expressions.Expression.output_name", "modulename": "sqlglot.expressions", "qualname": "Expression.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Expression.copy": {"fullname": "sqlglot.expressions.Expression.copy", "modulename": "sqlglot.expressions", "qualname": "Expression.copy", "kind": "function", "doc": "<p>Returns a deep copy of the expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.append": {"fullname": "sqlglot.expressions.Expression.append", "modulename": "sqlglot.expressions", "qualname": "Expression.append", "kind": "function", "doc": "<p>Appends value to arg_key if it's a list or sets it as a new list.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>arg_key (str):</strong> name of the list expression arg</li>\n<li><strong>value (Any):</strong> value to append to the list</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">arg_key</span>, </span><span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.set": {"fullname": "sqlglot.expressions.Expression.set", "modulename": "sqlglot.expressions", "qualname": "Expression.set", "kind": "function", "doc": "<p>Sets <code>arg_key</code> to <code>value</code>.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>arg_key (str):</strong> name of the expression arg.</li>\n<li><strong>value:</strong> value to set the arg to.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">arg_key</span>, </span><span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.depth": {"fullname": "sqlglot.expressions.Expression.depth", "modulename": "sqlglot.expressions", "qualname": "Expression.depth", "kind": "variable", "doc": "<p>Returns the depth of this tree.</p>\n"}, "sqlglot.expressions.Expression.find": {"fullname": "sqlglot.expressions.Expression.find", "modulename": "sqlglot.expressions", "qualname": "Expression.find", "kind": "function", "doc": "<p>Returns the first node in this tree which matches at least one of\nthe specified types.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The node which matches the criteria or None if no such node was found.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.find_all": {"fullname": "sqlglot.expressions.Expression.find_all", "modulename": "sqlglot.expressions", "qualname": "Expression.find_all", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree and only\nyields those that match at least one of the specified expression types.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.find_ancestor": {"fullname": "sqlglot.expressions.Expression.find_ancestor", "modulename": "sqlglot.expressions", "qualname": "Expression.find_ancestor", "kind": "function", "doc": "<p>Returns a nearest parent matching expression_types.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The parent node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.parent_select": {"fullname": "sqlglot.expressions.Expression.parent_select", "modulename": "sqlglot.expressions", "qualname": "Expression.parent_select", "kind": "variable", "doc": "<p>Returns the parent select statement.</p>\n"}, "sqlglot.expressions.Expression.root": {"fullname": "sqlglot.expressions.Expression.root", "modulename": "sqlglot.expressions", "qualname": "Expression.root", "kind": "function", "doc": "<p>Returns the root expression of this tree.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.walk": {"fullname": "sqlglot.expressions.Expression.walk", "modulename": "sqlglot.expressions", "qualname": "Expression.walk", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>bfs (bool):</strong> if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.</li>\n<li><strong>prune ((node, parent, arg_key) -> bool):</strong> callable that returns True if\nthe generator should stop traversing this branch of the tree.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>the generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">prune</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.dfs": {"fullname": "sqlglot.expressions.Expression.dfs", "modulename": "sqlglot.expressions", "qualname": "Expression.dfs", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree in\nthe DFS (Depth-first) order.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">parent</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">key</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">prune</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.bfs": {"fullname": "sqlglot.expressions.Expression.bfs", "modulename": "sqlglot.expressions", "qualname": "Expression.bfs", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this tree in\nthe BFS (Breadth-first) order.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The generator object.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">prune</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest": {"fullname": "sqlglot.expressions.Expression.unnest", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest", "kind": "function", "doc": "<p>Returns the first non parenthesis child or self.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.unalias": {"fullname": "sqlglot.expressions.Expression.unalias", "modulename": "sqlglot.expressions", "qualname": "Expression.unalias", "kind": "function", "doc": "<p>Returns the inner expression if this is an Alias.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.unnest_operands": {"fullname": "sqlglot.expressions.Expression.unnest_operands", "modulename": "sqlglot.expressions", "qualname": "Expression.unnest_operands", "kind": "function", "doc": "<p>Returns unnested operands as a tuple.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.flatten": {"fullname": "sqlglot.expressions.Expression.flatten", "modulename": "sqlglot.expressions", "qualname": "Expression.flatten", "kind": "function", "doc": "<p>Returns a generator which yields child nodes who's parents are the same class.</p>\n\n<p>A AND B AND C -> [A, B, C]</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">unnest</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.sql": {"fullname": "sqlglot.expressions.Expression.sql", "modulename": "sqlglot.expressions", "qualname": "Expression.sql", "kind": "function", "doc": "<p>Returns SQL string representation of this tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>dialect:</strong> the dialect of the output SQL string (eg. \"spark\", \"hive\", \"presto\", \"mysql\").</li>\n<li><strong>opts:</strong> other <code>sqlglot.generator.Generator</code> options.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The SQL string.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.transform": {"fullname": "sqlglot.expressions.Expression.transform", "modulename": "sqlglot.expressions", "qualname": "Expression.transform", "kind": "function", "doc": "<p>Recursively visits all tree nodes (excluding already transformed ones)\nand applies the given transformation function to each node.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>fun (function):</strong> a function which takes a node as an argument and returns a\nnew transformed node or the same node without modifications. If the function\nreturns None, then the corresponding node will be removed from the syntax tree.</li>\n<li><strong>copy (bool):</strong> if set to True a new tree instance is constructed, otherwise the tree is\nmodified in place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed tree.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">fun</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.replace": {"fullname": "sqlglot.expressions.Expression.replace", "modulename": "sqlglot.expressions", "qualname": "Expression.replace", "kind": "function", "doc": "<p>Swap out this expression with a new expression.</p>\n\n<p>For example::</p>\n\n<pre><code>>>> tree = Select().select(\"x\").from_(\"tbl\")\n>>> tree.find(Column).replace(Column(this=\"y\"))\n(COLUMN this: y)\n>>> tree.sql()\n'SELECT y FROM tbl'\n</code></pre>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (Expression|None):</strong> new node</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The new expression or expressions.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.pop": {"fullname": "sqlglot.expressions.Expression.pop", "modulename": "sqlglot.expressions", "qualname": "Expression.pop", "kind": "function", "doc": "<p>Remove this expression from its AST.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The popped expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.assert_is": {"fullname": "sqlglot.expressions.Expression.assert_is", "modulename": "sqlglot.expressions", "qualname": "Expression.assert_is", "kind": "function", "doc": "<p>Assert that this <code>Expression</code> is an instance of <code>type_</code>.</p>\n\n<p>If it is NOT an instance of <code>type_</code>, this raises an assertion error.\nOtherwise, this returns this expression.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <p>This is useful for type security in chained expressions:</p>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT x from y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">assert_is</span><span class=\"p\">(</span><span class=\"n\">Select</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, z FROM y'</span>\n</code></pre>\n </div>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">type_</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.error_messages": {"fullname": "sqlglot.expressions.Expression.error_messages", "modulename": "sqlglot.expressions", "qualname": "Expression.error_messages", "kind": "function", "doc": "<p>Checks if this expression is valid (e.g. all mandatory args are set).</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>args:</strong> a sequence of values that were used to instantiate a Func expression. This is used\nto check that the provided arguments don't exceed the function argument limit.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A list of error messages for all possible errors that were found.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Sequence</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.dump": {"fullname": "sqlglot.expressions.Expression.dump", "modulename": "sqlglot.expressions", "qualname": "Expression.dump", "kind": "function", "doc": "<p>Dump this Expression to a JSON-serializable dict.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Expression.load": {"fullname": "sqlglot.expressions.Expression.load", "modulename": "sqlglot.expressions", "qualname": "Expression.load", "kind": "function", "doc": "<p>Load a dict (as returned by <code>Expression.dump</code>) into an Expression instance.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">obj</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Condition": {"fullname": "sqlglot.expressions.Condition", "modulename": "sqlglot.expressions", "qualname": "Condition", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Condition.and_": {"fullname": "sqlglot.expressions.Condition.and_", "modulename": "sqlglot.expressions", "qualname": "Condition.and_", "kind": "function", "doc": "<p>AND this condition with one or multiple expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 AND y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>And: the new condition.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Condition.or_": {"fullname": "sqlglot.expressions.Condition.or_", "modulename": "sqlglot.expressions", "qualname": "Condition.or_", "kind": "function", "doc": "<p>OR this condition with one or multiple expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">or_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 OR y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Or: the new condition.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Condition.not_": {"fullname": "sqlglot.expressions.Condition.not_", "modulename": "sqlglot.expressions", "qualname": "Condition.not_", "kind": "function", "doc": "<p>Wrap this condition with NOT.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">not_</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'NOT x = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Not: the new condition.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Predicate": {"fullname": "sqlglot.expressions.Predicate", "modulename": "sqlglot.expressions", "qualname": "Predicate", "kind": "class", "doc": "<p>Relationships like x = y, x > 1, x >= y.</p>\n", "bases": "Condition"}, "sqlglot.expressions.DerivedTable": {"fullname": "sqlglot.expressions.DerivedTable", "modulename": "sqlglot.expressions", "qualname": "DerivedTable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Unionable": {"fullname": "sqlglot.expressions.Unionable", "modulename": "sqlglot.expressions", "qualname": "Unionable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Unionable.union": {"fullname": "sqlglot.expressions.Unionable.union", "modulename": "sqlglot.expressions", "qualname": "Unionable.union", "kind": "function", "doc": "<p>Builds a UNION expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo UNION SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Union: the Union expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Unionable.intersect": {"fullname": "sqlglot.expressions.Unionable.intersect", "modulename": "sqlglot.expressions", "qualname": "Unionable.intersect", "kind": "function", "doc": "<p>Builds an INTERSECT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">intersect</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Intersect: the Intersect expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Unionable.except_": {"fullname": "sqlglot.expressions.Unionable.except_", "modulename": "sqlglot.expressions", "qualname": "Unionable.except_", "kind": "function", "doc": "<p>Builds an EXCEPT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">except_</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Except: the Except expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.UDTF": {"fullname": "sqlglot.expressions.UDTF", "modulename": "sqlglot.expressions", "qualname": "UDTF", "kind": "class", "doc": "<p></p>\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Cache": {"fullname": "sqlglot.expressions.Cache", "modulename": "sqlglot.expressions", "qualname": "Cache", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Uncache": {"fullname": "sqlglot.expressions.Uncache", "modulename": "sqlglot.expressions", "qualname": "Uncache", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Create": {"fullname": "sqlglot.expressions.Create", "modulename": "sqlglot.expressions", "qualname": "Create", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Describe": {"fullname": "sqlglot.expressions.Describe", "modulename": "sqlglot.expressions", "qualname": "Describe", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Set": {"fullname": "sqlglot.expressions.Set", "modulename": "sqlglot.expressions", "qualname": "Set", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SetItem": {"fullname": "sqlglot.expressions.SetItem", "modulename": "sqlglot.expressions", "qualname": "SetItem", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Show": {"fullname": "sqlglot.expressions.Show", "modulename": "sqlglot.expressions", "qualname": "Show", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.UserDefinedFunction": {"fullname": "sqlglot.expressions.UserDefinedFunction", "modulename": "sqlglot.expressions", "qualname": "UserDefinedFunction", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.CharacterSet": {"fullname": "sqlglot.expressions.CharacterSet", "modulename": "sqlglot.expressions", "qualname": "CharacterSet", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.With": {"fullname": "sqlglot.expressions.With", "modulename": "sqlglot.expressions", "qualname": "With", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.WithinGroup": {"fullname": "sqlglot.expressions.WithinGroup", "modulename": "sqlglot.expressions", "qualname": "WithinGroup", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.CTE": {"fullname": "sqlglot.expressions.CTE", "modulename": "sqlglot.expressions", "qualname": "CTE", "kind": "class", "doc": "<p></p>\n", "bases": "DerivedTable"}, "sqlglot.expressions.TableAlias": {"fullname": "sqlglot.expressions.TableAlias", "modulename": "sqlglot.expressions", "qualname": "TableAlias", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.BitString": {"fullname": "sqlglot.expressions.BitString", "modulename": "sqlglot.expressions", "qualname": "BitString", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.HexString": {"fullname": "sqlglot.expressions.HexString", "modulename": "sqlglot.expressions", "qualname": "HexString", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.ByteString": {"fullname": "sqlglot.expressions.ByteString", "modulename": "sqlglot.expressions", "qualname": "ByteString", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Column": {"fullname": "sqlglot.expressions.Column", "modulename": "sqlglot.expressions", "qualname": "Column", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Column.output_name": {"fullname": "sqlglot.expressions.Column.output_name", "modulename": "sqlglot.expressions", "qualname": "Column.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n", "annotation": ": str"}, "sqlglot.expressions.ColumnDef": {"fullname": "sqlglot.expressions.ColumnDef", "modulename": "sqlglot.expressions", "qualname": "ColumnDef", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AlterColumn": {"fullname": "sqlglot.expressions.AlterColumn", "modulename": "sqlglot.expressions", "qualname": "AlterColumn", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.RenameTable": {"fullname": "sqlglot.expressions.RenameTable", "modulename": "sqlglot.expressions", "qualname": "RenameTable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SetTag": {"fullname": "sqlglot.expressions.SetTag", "modulename": "sqlglot.expressions", "qualname": "SetTag", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Comment": {"fullname": "sqlglot.expressions.Comment", "modulename": "sqlglot.expressions", "qualname": "Comment", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraint": {"fullname": "sqlglot.expressions.ColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.ColumnConstraintKind": {"fullname": "sqlglot.expressions.ColumnConstraintKind", "modulename": "sqlglot.expressions", "qualname": "ColumnConstraintKind", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"fullname": "sqlglot.expressions.AutoIncrementColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"fullname": "sqlglot.expressions.CaseSpecificColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CaseSpecificColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CharacterSetColumnConstraint": {"fullname": "sqlglot.expressions.CharacterSetColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CharacterSetColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CheckColumnConstraint": {"fullname": "sqlglot.expressions.CheckColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CheckColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CollateColumnConstraint": {"fullname": "sqlglot.expressions.CollateColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CollateColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CommentColumnConstraint": {"fullname": "sqlglot.expressions.CommentColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CommentColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.CompressColumnConstraint": {"fullname": "sqlglot.expressions.CompressColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "CompressColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DateFormatColumnConstraint": {"fullname": "sqlglot.expressions.DateFormatColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DateFormatColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.DefaultColumnConstraint": {"fullname": "sqlglot.expressions.DefaultColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "DefaultColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.EncodeColumnConstraint": {"fullname": "sqlglot.expressions.EncodeColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "EncodeColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"fullname": "sqlglot.expressions.GeneratedAsIdentityColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "GeneratedAsIdentityColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.InlineLengthColumnConstraint": {"fullname": "sqlglot.expressions.InlineLengthColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "InlineLengthColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.NotNullColumnConstraint": {"fullname": "sqlglot.expressions.NotNullColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "NotNullColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"fullname": "sqlglot.expressions.PrimaryKeyColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PrimaryKeyColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.TitleColumnConstraint": {"fullname": "sqlglot.expressions.TitleColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "TitleColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UniqueColumnConstraint": {"fullname": "sqlglot.expressions.UniqueColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UniqueColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.UppercaseColumnConstraint": {"fullname": "sqlglot.expressions.UppercaseColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "UppercaseColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.PathColumnConstraint": {"fullname": "sqlglot.expressions.PathColumnConstraint", "modulename": "sqlglot.expressions", "qualname": "PathColumnConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "ColumnConstraintKind"}, "sqlglot.expressions.Constraint": {"fullname": "sqlglot.expressions.Constraint", "modulename": "sqlglot.expressions", "qualname": "Constraint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Delete": {"fullname": "sqlglot.expressions.Delete", "modulename": "sqlglot.expressions", "qualname": "Delete", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Delete.delete": {"fullname": "sqlglot.expressions.Delete.delete", "modulename": "sqlglot.expressions", "qualname": "Delete.delete", "kind": "function", "doc": "<p>Create a DELETE expression or replace the table on an existing DELETE expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">delete</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'DELETE FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the table from which to delete.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Delete: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Delete.where": {"fullname": "sqlglot.expressions.Delete.where", "modulename": "sqlglot.expressions", "qualname": "Delete.where", "kind": "function", "doc": "<p>Append to or set the WHERE expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">delete</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a' OR x < 'b'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"DELETE FROM tbl WHERE x = 'a' OR x < 'b'"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Delete: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Delete.returning": {"fullname": "sqlglot.expressions.Delete.returning", "modulename": "sqlglot.expressions", "qualname": "Delete.returning", "kind": "function", "doc": "<p>Set the RETURNING expression. Not supported by all dialects.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">delete</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">returning</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">,</span> <span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"s2\">"postgres"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'DELETE FROM tbl RETURNING *'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Delete: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Drop": {"fullname": "sqlglot.expressions.Drop", "modulename": "sqlglot.expressions", "qualname": "Drop", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Filter": {"fullname": "sqlglot.expressions.Filter", "modulename": "sqlglot.expressions", "qualname": "Filter", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Check": {"fullname": "sqlglot.expressions.Check", "modulename": "sqlglot.expressions", "qualname": "Check", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Directory": {"fullname": "sqlglot.expressions.Directory", "modulename": "sqlglot.expressions", "qualname": "Directory", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.ForeignKey": {"fullname": "sqlglot.expressions.ForeignKey", "modulename": "sqlglot.expressions", "qualname": "ForeignKey", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.PrimaryKey": {"fullname": "sqlglot.expressions.PrimaryKey", "modulename": "sqlglot.expressions", "qualname": "PrimaryKey", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Unique": {"fullname": "sqlglot.expressions.Unique", "modulename": "sqlglot.expressions", "qualname": "Unique", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Into": {"fullname": "sqlglot.expressions.Into", "modulename": "sqlglot.expressions", "qualname": "Into", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.From": {"fullname": "sqlglot.expressions.From", "modulename": "sqlglot.expressions", "qualname": "From", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Having": {"fullname": "sqlglot.expressions.Having", "modulename": "sqlglot.expressions", "qualname": "Having", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Hint": {"fullname": "sqlglot.expressions.Hint", "modulename": "sqlglot.expressions", "qualname": "Hint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.JoinHint": {"fullname": "sqlglot.expressions.JoinHint", "modulename": "sqlglot.expressions", "qualname": "JoinHint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Identifier": {"fullname": "sqlglot.expressions.Identifier", "modulename": "sqlglot.expressions", "qualname": "Identifier", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Identifier.output_name": {"fullname": "sqlglot.expressions.Identifier.output_name", "modulename": "sqlglot.expressions", "qualname": "Identifier.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Index": {"fullname": "sqlglot.expressions.Index", "modulename": "sqlglot.expressions", "qualname": "Index", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Insert": {"fullname": "sqlglot.expressions.Insert", "modulename": "sqlglot.expressions", "qualname": "Insert", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Returning": {"fullname": "sqlglot.expressions.Returning", "modulename": "sqlglot.expressions", "qualname": "Returning", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Introducer": {"fullname": "sqlglot.expressions.Introducer", "modulename": "sqlglot.expressions", "qualname": "Introducer", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.National": {"fullname": "sqlglot.expressions.National", "modulename": "sqlglot.expressions", "qualname": "National", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.LoadData": {"fullname": "sqlglot.expressions.LoadData", "modulename": "sqlglot.expressions", "qualname": "LoadData", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Partition": {"fullname": "sqlglot.expressions.Partition", "modulename": "sqlglot.expressions", "qualname": "Partition", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Fetch": {"fullname": "sqlglot.expressions.Fetch", "modulename": "sqlglot.expressions", "qualname": "Fetch", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Group": {"fullname": "sqlglot.expressions.Group", "modulename": "sqlglot.expressions", "qualname": "Group", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Lambda": {"fullname": "sqlglot.expressions.Lambda", "modulename": "sqlglot.expressions", "qualname": "Lambda", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Limit": {"fullname": "sqlglot.expressions.Limit", "modulename": "sqlglot.expressions", "qualname": "Limit", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Literal": {"fullname": "sqlglot.expressions.Literal", "modulename": "sqlglot.expressions", "qualname": "Literal", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Literal.number": {"fullname": "sqlglot.expressions.Literal.number", "modulename": "sqlglot.expressions", "qualname": "Literal.number", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">number</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Literal.string": {"fullname": "sqlglot.expressions.Literal.string", "modulename": "sqlglot.expressions", "qualname": "Literal.string", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">string</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Literal.output_name": {"fullname": "sqlglot.expressions.Literal.output_name", "modulename": "sqlglot.expressions", "qualname": "Literal.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Join": {"fullname": "sqlglot.expressions.Join", "modulename": "sqlglot.expressions", "qualname": "Join", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Join.on": {"fullname": "sqlglot.expressions.Join.on", "modulename": "sqlglot.expressions", "qualname": "Join.on", "kind": "function", "doc": "<p>Append to or set the ON expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"JOIN x"</span><span class=\"p\">,</span> <span class=\"n\">into</span><span class=\"o\">=</span><span class=\"n\">Join</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">on</span><span class=\"p\">(</span><span class=\"s2\">"y = 1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'JOIN x ON y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Join: the modified join expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Join.using": {"fullname": "sqlglot.expressions.Join.using", "modulename": "sqlglot.expressions", "qualname": "Join.using", "kind": "function", "doc": "<p>Append to or set the USING expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"JOIN x"</span><span class=\"p\">,</span> <span class=\"n\">into</span><span class=\"o\">=</span><span class=\"n\">Join</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">using</span><span class=\"p\">(</span><span class=\"s2\">"foo"</span><span class=\"p\">,</span> <span class=\"s2\">"bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'JOIN x USING (foo, bla)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, concatenate the new expressions to the existing \"using\" list.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Join: the modified join expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Lateral": {"fullname": "sqlglot.expressions.Lateral", "modulename": "sqlglot.expressions", "qualname": "Lateral", "kind": "class", "doc": "<p></p>\n", "bases": "UDTF"}, "sqlglot.expressions.MatchRecognize": {"fullname": "sqlglot.expressions.MatchRecognize", "modulename": "sqlglot.expressions", "qualname": "MatchRecognize", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Final": {"fullname": "sqlglot.expressions.Final", "modulename": "sqlglot.expressions", "qualname": "Final", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Offset": {"fullname": "sqlglot.expressions.Offset", "modulename": "sqlglot.expressions", "qualname": "Offset", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Order": {"fullname": "sqlglot.expressions.Order", "modulename": "sqlglot.expressions", "qualname": "Order", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Cluster": {"fullname": "sqlglot.expressions.Cluster", "modulename": "sqlglot.expressions", "qualname": "Cluster", "kind": "class", "doc": "<p></p>\n", "bases": "Order"}, "sqlglot.expressions.Distribute": {"fullname": "sqlglot.expressions.Distribute", "modulename": "sqlglot.expressions", "qualname": "Distribute", "kind": "class", "doc": "<p></p>\n", "bases": "Order"}, "sqlglot.expressions.Sort": {"fullname": "sqlglot.expressions.Sort", "modulename": "sqlglot.expressions", "qualname": "Sort", "kind": "class", "doc": "<p></p>\n", "bases": "Order"}, "sqlglot.expressions.Ordered": {"fullname": "sqlglot.expressions.Ordered", "modulename": "sqlglot.expressions", "qualname": "Ordered", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Property": {"fullname": "sqlglot.expressions.Property", "modulename": "sqlglot.expressions", "qualname": "Property", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AfterJournalProperty": {"fullname": "sqlglot.expressions.AfterJournalProperty", "modulename": "sqlglot.expressions", "qualname": "AfterJournalProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.AlgorithmProperty": {"fullname": "sqlglot.expressions.AlgorithmProperty", "modulename": "sqlglot.expressions", "qualname": "AlgorithmProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.AutoIncrementProperty": {"fullname": "sqlglot.expressions.AutoIncrementProperty", "modulename": "sqlglot.expressions", "qualname": "AutoIncrementProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.BlockCompressionProperty": {"fullname": "sqlglot.expressions.BlockCompressionProperty", "modulename": "sqlglot.expressions", "qualname": "BlockCompressionProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.CharacterSetProperty": {"fullname": "sqlglot.expressions.CharacterSetProperty", "modulename": "sqlglot.expressions", "qualname": "CharacterSetProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ChecksumProperty": {"fullname": "sqlglot.expressions.ChecksumProperty", "modulename": "sqlglot.expressions", "qualname": "ChecksumProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.CollateProperty": {"fullname": "sqlglot.expressions.CollateProperty", "modulename": "sqlglot.expressions", "qualname": "CollateProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DataBlocksizeProperty": {"fullname": "sqlglot.expressions.DataBlocksizeProperty", "modulename": "sqlglot.expressions", "qualname": "DataBlocksizeProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DefinerProperty": {"fullname": "sqlglot.expressions.DefinerProperty", "modulename": "sqlglot.expressions", "qualname": "DefinerProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DistKeyProperty": {"fullname": "sqlglot.expressions.DistKeyProperty", "modulename": "sqlglot.expressions", "qualname": "DistKeyProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.DistStyleProperty": {"fullname": "sqlglot.expressions.DistStyleProperty", "modulename": "sqlglot.expressions", "qualname": "DistStyleProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.EngineProperty": {"fullname": "sqlglot.expressions.EngineProperty", "modulename": "sqlglot.expressions", "qualname": "EngineProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ExecuteAsProperty": {"fullname": "sqlglot.expressions.ExecuteAsProperty", "modulename": "sqlglot.expressions", "qualname": "ExecuteAsProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ExternalProperty": {"fullname": "sqlglot.expressions.ExternalProperty", "modulename": "sqlglot.expressions", "qualname": "ExternalProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.FallbackProperty": {"fullname": "sqlglot.expressions.FallbackProperty", "modulename": "sqlglot.expressions", "qualname": "FallbackProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.FileFormatProperty": {"fullname": "sqlglot.expressions.FileFormatProperty", "modulename": "sqlglot.expressions", "qualname": "FileFormatProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.FreespaceProperty": {"fullname": "sqlglot.expressions.FreespaceProperty", "modulename": "sqlglot.expressions", "qualname": "FreespaceProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.IsolatedLoadingProperty": {"fullname": "sqlglot.expressions.IsolatedLoadingProperty", "modulename": "sqlglot.expressions", "qualname": "IsolatedLoadingProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.JournalProperty": {"fullname": "sqlglot.expressions.JournalProperty", "modulename": "sqlglot.expressions", "qualname": "JournalProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LanguageProperty": {"fullname": "sqlglot.expressions.LanguageProperty", "modulename": "sqlglot.expressions", "qualname": "LanguageProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LikeProperty": {"fullname": "sqlglot.expressions.LikeProperty", "modulename": "sqlglot.expressions", "qualname": "LikeProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LocationProperty": {"fullname": "sqlglot.expressions.LocationProperty", "modulename": "sqlglot.expressions", "qualname": "LocationProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LockingProperty": {"fullname": "sqlglot.expressions.LockingProperty", "modulename": "sqlglot.expressions", "qualname": "LockingProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.LogProperty": {"fullname": "sqlglot.expressions.LogProperty", "modulename": "sqlglot.expressions", "qualname": "LogProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.MaterializedProperty": {"fullname": "sqlglot.expressions.MaterializedProperty", "modulename": "sqlglot.expressions", "qualname": "MaterializedProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.MergeBlockRatioProperty": {"fullname": "sqlglot.expressions.MergeBlockRatioProperty", "modulename": "sqlglot.expressions", "qualname": "MergeBlockRatioProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.NoPrimaryIndexProperty": {"fullname": "sqlglot.expressions.NoPrimaryIndexProperty", "modulename": "sqlglot.expressions", "qualname": "NoPrimaryIndexProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.OnCommitProperty": {"fullname": "sqlglot.expressions.OnCommitProperty", "modulename": "sqlglot.expressions", "qualname": "OnCommitProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.PartitionedByProperty": {"fullname": "sqlglot.expressions.PartitionedByProperty", "modulename": "sqlglot.expressions", "qualname": "PartitionedByProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.ReturnsProperty": {"fullname": "sqlglot.expressions.ReturnsProperty", "modulename": "sqlglot.expressions", "qualname": "ReturnsProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.RowFormatDelimitedProperty": {"fullname": "sqlglot.expressions.RowFormatDelimitedProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatDelimitedProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.RowFormatSerdeProperty": {"fullname": "sqlglot.expressions.RowFormatSerdeProperty", "modulename": "sqlglot.expressions", "qualname": "RowFormatSerdeProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SchemaCommentProperty": {"fullname": "sqlglot.expressions.SchemaCommentProperty", "modulename": "sqlglot.expressions", "qualname": "SchemaCommentProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SerdeProperties": {"fullname": "sqlglot.expressions.SerdeProperties", "modulename": "sqlglot.expressions", "qualname": "SerdeProperties", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SetProperty": {"fullname": "sqlglot.expressions.SetProperty", "modulename": "sqlglot.expressions", "qualname": "SetProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SortKeyProperty": {"fullname": "sqlglot.expressions.SortKeyProperty", "modulename": "sqlglot.expressions", "qualname": "SortKeyProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.SqlSecurityProperty": {"fullname": "sqlglot.expressions.SqlSecurityProperty", "modulename": "sqlglot.expressions", "qualname": "SqlSecurityProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.TableFormatProperty": {"fullname": "sqlglot.expressions.TableFormatProperty", "modulename": "sqlglot.expressions", "qualname": "TableFormatProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.TemporaryProperty": {"fullname": "sqlglot.expressions.TemporaryProperty", "modulename": "sqlglot.expressions", "qualname": "TemporaryProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.TransientProperty": {"fullname": "sqlglot.expressions.TransientProperty", "modulename": "sqlglot.expressions", "qualname": "TransientProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.VolatilityProperty": {"fullname": "sqlglot.expressions.VolatilityProperty", "modulename": "sqlglot.expressions", "qualname": "VolatilityProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.WithDataProperty": {"fullname": "sqlglot.expressions.WithDataProperty", "modulename": "sqlglot.expressions", "qualname": "WithDataProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.WithJournalTableProperty": {"fullname": "sqlglot.expressions.WithJournalTableProperty", "modulename": "sqlglot.expressions", "qualname": "WithJournalTableProperty", "kind": "class", "doc": "<p></p>\n", "bases": "Property"}, "sqlglot.expressions.Properties": {"fullname": "sqlglot.expressions.Properties", "modulename": "sqlglot.expressions", "qualname": "Properties", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Properties.Location": {"fullname": "sqlglot.expressions.Properties.Location", "modulename": "sqlglot.expressions", "qualname": "Properties.Location", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"fullname": "sqlglot.expressions.Properties.Location.POST_CREATE", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_CREATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_CREATE: 'POST_CREATE'>"}, "sqlglot.expressions.Properties.Location.POST_NAME": {"fullname": "sqlglot.expressions.Properties.Location.POST_NAME", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_NAME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_NAME: 'POST_NAME'>"}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"fullname": "sqlglot.expressions.Properties.Location.POST_SCHEMA", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_SCHEMA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_SCHEMA: 'POST_SCHEMA'>"}, "sqlglot.expressions.Properties.Location.POST_WITH": {"fullname": "sqlglot.expressions.Properties.Location.POST_WITH", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_WITH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_WITH: 'POST_WITH'>"}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"fullname": "sqlglot.expressions.Properties.Location.POST_ALIAS", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_ALIAS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_ALIAS: 'POST_ALIAS'>"}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"fullname": "sqlglot.expressions.Properties.Location.POST_EXPRESSION", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_EXPRESSION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_EXPRESSION: 'POST_EXPRESSION'>"}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"fullname": "sqlglot.expressions.Properties.Location.POST_INDEX", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.POST_INDEX", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.POST_INDEX: 'POST_INDEX'>"}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"fullname": "sqlglot.expressions.Properties.Location.UNSUPPORTED", "modulename": "sqlglot.expressions", "qualname": "Properties.Location.UNSUPPORTED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Location.UNSUPPORTED: 'UNSUPPORTED'>"}, "sqlglot.expressions.Properties.from_dict": {"fullname": "sqlglot.expressions.Properties.from_dict", "modulename": "sqlglot.expressions", "qualname": "Properties.from_dict", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">properties_dict</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Qualify": {"fullname": "sqlglot.expressions.Qualify", "modulename": "sqlglot.expressions", "qualname": "Qualify", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Return": {"fullname": "sqlglot.expressions.Return", "modulename": "sqlglot.expressions", "qualname": "Return", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Reference": {"fullname": "sqlglot.expressions.Reference", "modulename": "sqlglot.expressions", "qualname": "Reference", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Tuple": {"fullname": "sqlglot.expressions.Tuple", "modulename": "sqlglot.expressions", "qualname": "Tuple", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Subqueryable": {"fullname": "sqlglot.expressions.Subqueryable", "modulename": "sqlglot.expressions", "qualname": "Subqueryable", "kind": "class", "doc": "<p></p>\n", "bases": "Unionable"}, "sqlglot.expressions.Subqueryable.subquery": {"fullname": "sqlglot.expressions.Subqueryable.subquery", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.subquery", "kind": "function", "doc": "<p>Convert this expression to an aliased expression that can be used as a Subquery.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">subquery</span> <span class=\"o\">=</span> <span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">subquery</span><span class=\"p\">()</span>\n<span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"n\">subquery</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM (SELECT x FROM tbl)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>alias (str | Identifier):</strong> an optional alias for the subquery</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Alias: the subquery</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subquery</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.limit": {"fullname": "sqlglot.expressions.Subqueryable.limit", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.limit", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Subqueryable.with_": {"fullname": "sqlglot.expressions.Subqueryable.with_", "modulename": "sqlglot.expressions", "qualname": "Subqueryable.with_", "kind": "function", "doc": "<p>Append to or set the common table expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">with_</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">,</span> <span class=\"n\">as_</span><span class=\"o\">=</span><span class=\"s2\">"SELECT * FROM tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>alias (str | Expression):</strong> the SQL code string to parse as the table name.\nIf an <code>Expression</code> instance is passed, this is used as-is.</li>\n<li><strong>as_ (str | Expression):</strong> the SQL code string to parse as the table expression.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>recursive (bool):</strong> set the RECURSIVE part of the expression. Defaults to <code>False</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span>,</span><span class=\"param\">\t<span class=\"n\">as_</span>,</span><span class=\"param\">\t<span class=\"n\">recursive</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Table": {"fullname": "sqlglot.expressions.Table", "modulename": "sqlglot.expressions", "qualname": "Table", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SystemTime": {"fullname": "sqlglot.expressions.SystemTime", "modulename": "sqlglot.expressions", "qualname": "SystemTime", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Union": {"fullname": "sqlglot.expressions.Union", "modulename": "sqlglot.expressions", "qualname": "Union", "kind": "class", "doc": "<p></p>\n", "bases": "Subqueryable"}, "sqlglot.expressions.Union.limit": {"fullname": "sqlglot.expressions.Union.limit", "modulename": "sqlglot.expressions", "qualname": "Union.limit", "kind": "function", "doc": "<p>Set the LIMIT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">limit</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.\nThis can also be an integer.\nIf a <code>Limit</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Limit</code>.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: The limited subqueryable.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Union.select": {"fullname": "sqlglot.expressions.Union.select", "modulename": "sqlglot.expressions", "qualname": "Union.select", "kind": "function", "doc": "<p>Append to or set the SELECT of the union recursively.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select a from x union select a from y union select a from z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"b"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Union: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Union</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Union.is_star": {"fullname": "sqlglot.expressions.Union.is_star", "modulename": "sqlglot.expressions", "qualname": "Union.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Except": {"fullname": "sqlglot.expressions.Except", "modulename": "sqlglot.expressions", "qualname": "Except", "kind": "class", "doc": "<p></p>\n", "bases": "Union"}, "sqlglot.expressions.Intersect": {"fullname": "sqlglot.expressions.Intersect", "modulename": "sqlglot.expressions", "qualname": "Intersect", "kind": "class", "doc": "<p></p>\n", "bases": "Union"}, "sqlglot.expressions.Unnest": {"fullname": "sqlglot.expressions.Unnest", "modulename": "sqlglot.expressions", "qualname": "Unnest", "kind": "class", "doc": "<p></p>\n", "bases": "UDTF"}, "sqlglot.expressions.Update": {"fullname": "sqlglot.expressions.Update", "modulename": "sqlglot.expressions", "qualname": "Update", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Values": {"fullname": "sqlglot.expressions.Values", "modulename": "sqlglot.expressions", "qualname": "Values", "kind": "class", "doc": "<p></p>\n", "bases": "UDTF"}, "sqlglot.expressions.Var": {"fullname": "sqlglot.expressions.Var", "modulename": "sqlglot.expressions", "qualname": "Var", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Schema": {"fullname": "sqlglot.expressions.Schema", "modulename": "sqlglot.expressions", "qualname": "Schema", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Lock": {"fullname": "sqlglot.expressions.Lock", "modulename": "sqlglot.expressions", "qualname": "Lock", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Select": {"fullname": "sqlglot.expressions.Select", "modulename": "sqlglot.expressions", "qualname": "Select", "kind": "class", "doc": "<p></p>\n", "bases": "Subqueryable"}, "sqlglot.expressions.Select.from_": {"fullname": "sqlglot.expressions.Select.from_", "modulename": "sqlglot.expressions", "qualname": "Select.from_", "kind": "function", "doc": "<p>Set the FROM expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>From</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>From</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>From</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.group_by": {"fullname": "sqlglot.expressions.Select.group_by", "modulename": "sqlglot.expressions", "qualname": "Select.group_by", "kind": "function", "doc": "<p>Set the GROUP BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"COUNT(1)"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">group_by</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Group</code>.\nIf nothing is passed in then a group by is not applied to the expression</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Group</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.order_by": {"fullname": "sqlglot.expressions.Select.order_by", "modulename": "sqlglot.expressions", "qualname": "Select.order_by", "kind": "function", "doc": "<p>Set the ORDER BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">order_by</span><span class=\"p\">(</span><span class=\"s2\">"x DESC"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl ORDER BY x DESC'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Order</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Order</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.sort_by": {"fullname": "sqlglot.expressions.Select.sort_by", "modulename": "sqlglot.expressions", "qualname": "Select.sort_by", "kind": "function", "doc": "<p>Set the SORT BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sort_by</span><span class=\"p\">(</span><span class=\"s2\">"x DESC"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl SORT BY x DESC'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>SORT</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Order</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.cluster_by": {"fullname": "sqlglot.expressions.Select.cluster_by", "modulename": "sqlglot.expressions", "qualname": "Select.cluster_by", "kind": "function", "doc": "<p>Set the CLUSTER BY expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">cluster_by</span><span class=\"p\">(</span><span class=\"s2\">"x DESC"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl CLUSTER BY x DESC'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf a <code>Group</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Cluster</code>.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this flattens all the <code>Order</code> expression into a single expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.limit": {"fullname": "sqlglot.expressions.Select.limit", "modulename": "sqlglot.expressions", "qualname": "Select.limit", "kind": "function", "doc": "<p>Set the LIMIT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">limit</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl LIMIT 10'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.\nThis can also be an integer.\nIf a <code>Limit</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Limit</code>.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.offset": {"fullname": "sqlglot.expressions.Select.offset", "modulename": "sqlglot.expressions", "qualname": "Select.offset", "kind": "function", "doc": "<p>Set the OFFSET expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">offset</span><span class=\"p\">(</span><span class=\"mi\">10</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl OFFSET 10'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | int | Expression):</strong> the SQL code string to parse.\nThis can also be an integer.\nIf a <code>Offset</code> instance is passed, this is used as-is.\nIf another <code>Expression</code> instance is passed, it will be wrapped in a <code>Offset</code>.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.select": {"fullname": "sqlglot.expressions.Select.select", "modulename": "sqlglot.expressions", "qualname": "Select.select", "kind": "function", "doc": "<p>Append to or set the SELECT expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append:</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.lateral": {"fullname": "sqlglot.expressions.Select.lateral", "modulename": "sqlglot.expressions", "qualname": "Select.lateral", "kind": "function", "doc": "<p>Append to or set the LATERAL expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">lateral</span><span class=\"p\">(</span><span class=\"s2\">"OUTER explode(y) tbl2 AS z"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.join": {"fullname": "sqlglot.expressions.Select.join", "modulename": "sqlglot.expressions", "qualname": "Select.join", "kind": "function", "doc": "<p>Append to or set the JOIN expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">,</span> <span class=\"n\">on</span><span class=\"o\">=</span><span class=\"s2\">"tbl1.y = tbl2.y"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"s2\">"b"</span><span class=\"p\">,</span> <span class=\"n\">using</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"y"</span><span class=\"p\">,</span> <span class=\"s2\">"z"</span><span class=\"p\">])</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT 1 FROM a JOIN b USING (x, y, z)'</span>\n</code></pre>\n </div>\n \n <p>Use <code>join_type</code> to change the type of join:</p>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">join</span><span class=\"p\">(</span><span class=\"s2\">"tbl2"</span><span class=\"p\">,</span> <span class=\"n\">on</span><span class=\"o\">=</span><span class=\"s2\">"tbl1.y = tbl2.y"</span><span class=\"p\">,</span> <span class=\"n\">join_type</span><span class=\"o\">=</span><span class=\"s2\">"left outer"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code string to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>on (str | Expression):</strong> optionally specify the join \"on\" criteria as a SQL string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>using (str | Expression):</strong> optionally specify the join \"using\" criteria as a SQL string.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, add to any existing expressions.\nOtherwise, this resets the expressions.</li>\n<li><strong>join_type (str):</strong> If set, alter the parsed join type</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">on</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">using</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">join_type</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">join_alias</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.where": {"fullname": "sqlglot.expressions.Select.where", "modulename": "sqlglot.expressions", "qualname": "Select.where", "kind": "function", "doc": "<p>Append to or set the WHERE expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a' OR x < 'b'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.having": {"fullname": "sqlglot.expressions.Select.having", "modulename": "sqlglot.expressions", "qualname": "Select.having", "kind": "function", "doc": "<p>Append to or set the HAVING expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">,</span> <span class=\"s2\">"COUNT(y)"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">group_by</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">having</span><span class=\"p\">(</span><span class=\"s2\">"COUNT(y) > 3"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an <code>Expression</code> instance is passed, it will be used as-is.\nMultiple expressions are combined with an AND operator.</li>\n<li><strong>append (bool):</strong> if <code>True</code>, AND the new expressions to any existing expression.\nOtherwise, this resets the expression.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.window": {"fullname": "sqlglot.expressions.Select.window", "modulename": "sqlglot.expressions", "qualname": "Select.window", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.qualify": {"fullname": "sqlglot.expressions.Select.qualify", "modulename": "sqlglot.expressions", "qualname": "Select.qualify", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span>,</span><span class=\"param\">\t<span class=\"n\">append</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.distinct": {"fullname": "sqlglot.expressions.Select.distinct", "modulename": "sqlglot.expressions", "qualname": "Select.distinct", "kind": "function", "doc": "<p>Set the OFFSET expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">distinct</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT DISTINCT x FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>distinct (bool):</strong> whether the Select should be distinct</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.ctas": {"fullname": "sqlglot.expressions.Select.ctas", "modulename": "sqlglot.expressions", "qualname": "Select.ctas", "kind": "function", "doc": "<p>Convert this expression to a CREATE TABLE AS statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">ctas</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'CREATE TABLE x AS SELECT * FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table (str | Expression):</strong> the SQL code string to parse as the table name.\nIf another <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>properties (dict):</strong> an optional mapping of table properties</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input table.</li>\n<li><strong>copy (bool):</strong> if <code>False</code>, modify this expression instance in-place.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input table.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Create: the CREATE TABLE AS expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Create</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.lock": {"fullname": "sqlglot.expressions.Select.lock", "modulename": "sqlglot.expressions", "qualname": "Select.lock", "kind": "function", "doc": "<p>Set the locking read mode for this expression.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">lock</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"s2\">"mysql"</span><span class=\"p\">)</span>\n<span class=\"go\">"SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"s2\">"x = 'a'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">lock</span><span class=\"p\">(</span><span class=\"n\">update</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(</span><span class=\"s2\">"mysql"</span><span class=\"p\">)</span>\n<span class=\"go\">"SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>update:</strong> if <code>True</code>, the locking type will be <code>FOR UPDATE</code>, else it will be <code>FOR SHARE</code>.</li>\n<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The modified expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">update</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Select.is_star": {"fullname": "sqlglot.expressions.Select.is_star", "modulename": "sqlglot.expressions", "qualname": "Select.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery": {"fullname": "sqlglot.expressions.Subquery", "modulename": "sqlglot.expressions", "qualname": "Subquery", "kind": "class", "doc": "<p></p>\n", "bases": "DerivedTable, Unionable"}, "sqlglot.expressions.Subquery.unnest": {"fullname": "sqlglot.expressions.Subquery.unnest", "modulename": "sqlglot.expressions", "qualname": "Subquery.unnest", "kind": "function", "doc": "<p>Returns the first non subquery.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Subquery.is_star": {"fullname": "sqlglot.expressions.Subquery.is_star", "modulename": "sqlglot.expressions", "qualname": "Subquery.is_star", "kind": "variable", "doc": "<p>Checks whether an expression is a star.</p>\n", "annotation": ": bool"}, "sqlglot.expressions.Subquery.output_name": {"fullname": "sqlglot.expressions.Subquery.output_name", "modulename": "sqlglot.expressions", "qualname": "Subquery.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.TableSample": {"fullname": "sqlglot.expressions.TableSample", "modulename": "sqlglot.expressions", "qualname": "TableSample", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Tag": {"fullname": "sqlglot.expressions.Tag", "modulename": "sqlglot.expressions", "qualname": "Tag", "kind": "class", "doc": "<p>Tags are used for generating arbitrary sql like SELECT <span>x</span>.</p>\n", "bases": "Expression"}, "sqlglot.expressions.Pivot": {"fullname": "sqlglot.expressions.Pivot", "modulename": "sqlglot.expressions", "qualname": "Pivot", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Window": {"fullname": "sqlglot.expressions.Window", "modulename": "sqlglot.expressions", "qualname": "Window", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.WindowSpec": {"fullname": "sqlglot.expressions.WindowSpec", "modulename": "sqlglot.expressions", "qualname": "WindowSpec", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Where": {"fullname": "sqlglot.expressions.Where", "modulename": "sqlglot.expressions", "qualname": "Where", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Star": {"fullname": "sqlglot.expressions.Star", "modulename": "sqlglot.expressions", "qualname": "Star", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Star.output_name": {"fullname": "sqlglot.expressions.Star.output_name", "modulename": "sqlglot.expressions", "qualname": "Star.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Parameter": {"fullname": "sqlglot.expressions.Parameter", "modulename": "sqlglot.expressions", "qualname": "Parameter", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SessionParameter": {"fullname": "sqlglot.expressions.SessionParameter", "modulename": "sqlglot.expressions", "qualname": "SessionParameter", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Placeholder": {"fullname": "sqlglot.expressions.Placeholder", "modulename": "sqlglot.expressions", "qualname": "Placeholder", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Null": {"fullname": "sqlglot.expressions.Null", "modulename": "sqlglot.expressions", "qualname": "Null", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Boolean": {"fullname": "sqlglot.expressions.Boolean", "modulename": "sqlglot.expressions", "qualname": "Boolean", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.DataType": {"fullname": "sqlglot.expressions.DataType", "modulename": "sqlglot.expressions", "qualname": "DataType", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.DataType.Type": {"fullname": "sqlglot.expressions.DataType.Type", "modulename": "sqlglot.expressions", "qualname": "DataType.Type", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.expressions.DataType.Type.CHAR": {"fullname": "sqlglot.expressions.DataType.Type.CHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.CHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.CHAR: 'CHAR'>"}, "sqlglot.expressions.DataType.Type.NCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NCHAR: 'NCHAR'>"}, "sqlglot.expressions.DataType.Type.VARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.VARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.VARCHAR: 'VARCHAR'>"}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"fullname": "sqlglot.expressions.DataType.Type.NVARCHAR", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NVARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.expressions.DataType.Type.TEXT": {"fullname": "sqlglot.expressions.DataType.Type.TEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TEXT: 'TEXT'>"}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"fullname": "sqlglot.expressions.DataType.Type.LONGTEXT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"fullname": "sqlglot.expressions.DataType.Type.MEDIUMBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MEDIUMBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"fullname": "sqlglot.expressions.DataType.Type.LONGBLOB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.LONGBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.expressions.DataType.Type.BINARY": {"fullname": "sqlglot.expressions.DataType.Type.BINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BINARY: 'BINARY'>"}, "sqlglot.expressions.DataType.Type.VARBINARY": {"fullname": "sqlglot.expressions.DataType.Type.VARBINARY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARBINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.VARBINARY: 'VARBINARY'>"}, "sqlglot.expressions.DataType.Type.INT": {"fullname": "sqlglot.expressions.DataType.Type.INT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.INT: 'INT'>"}, "sqlglot.expressions.DataType.Type.UINT": {"fullname": "sqlglot.expressions.DataType.Type.UINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UINT: 'UINT'>"}, "sqlglot.expressions.DataType.Type.TINYINT": {"fullname": "sqlglot.expressions.DataType.Type.TINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TINYINT: 'TINYINT'>"}, "sqlglot.expressions.DataType.Type.UTINYINT": {"fullname": "sqlglot.expressions.DataType.Type.UTINYINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UTINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UTINYINT: 'UTINYINT'>"}, "sqlglot.expressions.DataType.Type.SMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.SMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SMALLINT: 'SMALLINT'>"}, "sqlglot.expressions.DataType.Type.USMALLINT": {"fullname": "sqlglot.expressions.DataType.Type.USMALLINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.USMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.USMALLINT: 'USMALLINT'>"}, "sqlglot.expressions.DataType.Type.BIGINT": {"fullname": "sqlglot.expressions.DataType.Type.BIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BIGINT: 'BIGINT'>"}, "sqlglot.expressions.DataType.Type.UBIGINT": {"fullname": "sqlglot.expressions.DataType.Type.UBIGINT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UBIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UBIGINT: 'UBIGINT'>"}, "sqlglot.expressions.DataType.Type.FLOAT": {"fullname": "sqlglot.expressions.DataType.Type.FLOAT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.FLOAT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.FLOAT: 'FLOAT'>"}, "sqlglot.expressions.DataType.Type.DOUBLE": {"fullname": "sqlglot.expressions.DataType.Type.DOUBLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DOUBLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DOUBLE: 'DOUBLE'>"}, "sqlglot.expressions.DataType.Type.DECIMAL": {"fullname": "sqlglot.expressions.DataType.Type.DECIMAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DECIMAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DECIMAL: 'DECIMAL'>"}, "sqlglot.expressions.DataType.Type.BIT": {"fullname": "sqlglot.expressions.DataType.Type.BIT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BIT: 'BIT'>"}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"fullname": "sqlglot.expressions.DataType.Type.BOOLEAN", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BOOLEAN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.expressions.DataType.Type.JSON": {"fullname": "sqlglot.expressions.DataType.Type.JSON", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.JSON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.JSON: 'JSON'>"}, "sqlglot.expressions.DataType.Type.JSONB": {"fullname": "sqlglot.expressions.DataType.Type.JSONB", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.JSONB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.JSONB: 'JSONB'>"}, "sqlglot.expressions.DataType.Type.INTERVAL": {"fullname": "sqlglot.expressions.DataType.Type.INTERVAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INTERVAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.INTERVAL: 'INTERVAL'>"}, "sqlglot.expressions.DataType.Type.TIME": {"fullname": "sqlglot.expressions.DataType.Type.TIME", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIME: 'TIME'>"}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"fullname": "sqlglot.expressions.DataType.Type.TIMESTAMP", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIMESTAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIMESTAMP: 'TIMESTAMP'>"}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"fullname": "sqlglot.expressions.DataType.Type.TIMESTAMPTZ", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIMESTAMPTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIMESTAMPTZ: 'TIMESTAMPTZ'>"}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"fullname": "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.TIMESTAMPLTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.expressions.DataType.Type.DATE": {"fullname": "sqlglot.expressions.DataType.Type.DATE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DATE: 'DATE'>"}, "sqlglot.expressions.DataType.Type.DATETIME": {"fullname": "sqlglot.expressions.DataType.Type.DATETIME", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.DATETIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.DATETIME: 'DATETIME'>"}, "sqlglot.expressions.DataType.Type.ARRAY": {"fullname": "sqlglot.expressions.DataType.Type.ARRAY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ARRAY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.ARRAY: 'ARRAY'>"}, "sqlglot.expressions.DataType.Type.MAP": {"fullname": "sqlglot.expressions.DataType.Type.MAP", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MAP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MAP: 'MAP'>"}, "sqlglot.expressions.DataType.Type.UUID": {"fullname": "sqlglot.expressions.DataType.Type.UUID", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UUID", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UUID: 'UUID'>"}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"fullname": "sqlglot.expressions.DataType.Type.GEOGRAPHY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.GEOGRAPHY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.GEOGRAPHY: 'GEOGRAPHY'>"}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"fullname": "sqlglot.expressions.DataType.Type.GEOMETRY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.GEOMETRY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.expressions.DataType.Type.STRUCT": {"fullname": "sqlglot.expressions.DataType.Type.STRUCT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.STRUCT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.STRUCT: 'STRUCT'>"}, "sqlglot.expressions.DataType.Type.NULLABLE": {"fullname": "sqlglot.expressions.DataType.Type.NULLABLE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULLABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NULLABLE: 'NULLABLE'>"}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"fullname": "sqlglot.expressions.DataType.Type.HLLSKETCH", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.HLLSKETCH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.HLLSKETCH: 'HLLSKETCH'>"}, "sqlglot.expressions.DataType.Type.HSTORE": {"fullname": "sqlglot.expressions.DataType.Type.HSTORE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.HSTORE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.HSTORE: 'HSTORE'>"}, "sqlglot.expressions.DataType.Type.SUPER": {"fullname": "sqlglot.expressions.DataType.Type.SUPER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SUPER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SUPER: 'SUPER'>"}, "sqlglot.expressions.DataType.Type.SERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SERIAL: 'SERIAL'>"}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.SMALLSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"fullname": "sqlglot.expressions.DataType.Type.BIGSERIAL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.BIGSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.expressions.DataType.Type.XML": {"fullname": "sqlglot.expressions.DataType.Type.XML", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.XML", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.XML: 'XML'>"}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"fullname": "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNIQUEIDENTIFIER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.expressions.DataType.Type.MONEY": {"fullname": "sqlglot.expressions.DataType.Type.MONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.MONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.MONEY: 'MONEY'>"}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"fullname": "sqlglot.expressions.DataType.Type.SMALLMONEY", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.SMALLMONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"fullname": "sqlglot.expressions.DataType.Type.ROWVERSION", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.ROWVERSION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.expressions.DataType.Type.IMAGE": {"fullname": "sqlglot.expressions.DataType.Type.IMAGE", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.IMAGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.IMAGE: 'IMAGE'>"}, "sqlglot.expressions.DataType.Type.VARIANT": {"fullname": "sqlglot.expressions.DataType.Type.VARIANT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.VARIANT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.VARIANT: 'VARIANT'>"}, "sqlglot.expressions.DataType.Type.OBJECT": {"fullname": "sqlglot.expressions.DataType.Type.OBJECT", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.OBJECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.OBJECT: 'OBJECT'>"}, "sqlglot.expressions.DataType.Type.INET": {"fullname": "sqlglot.expressions.DataType.Type.INET", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.INET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.INET: 'INET'>"}, "sqlglot.expressions.DataType.Type.NULL": {"fullname": "sqlglot.expressions.DataType.Type.NULL", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.NULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.NULL: 'NULL'>"}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"fullname": "sqlglot.expressions.DataType.Type.UNKNOWN", "modulename": "sqlglot.expressions", "qualname": "DataType.Type.UNKNOWN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<Type.UNKNOWN: 'UNKNOWN'>"}, "sqlglot.expressions.DataType.build": {"fullname": "sqlglot.expressions.DataType.build", "modulename": "sqlglot.expressions", "qualname": "DataType.build", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">dtype</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.DataType.is_type": {"fullname": "sqlglot.expressions.DataType.is_type", "modulename": "sqlglot.expressions", "qualname": "DataType.is_type", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dtype</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.PseudoType": {"fullname": "sqlglot.expressions.PseudoType", "modulename": "sqlglot.expressions", "qualname": "PseudoType", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.StructKwarg": {"fullname": "sqlglot.expressions.StructKwarg", "modulename": "sqlglot.expressions", "qualname": "StructKwarg", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.SubqueryPredicate": {"fullname": "sqlglot.expressions.SubqueryPredicate", "modulename": "sqlglot.expressions", "qualname": "SubqueryPredicate", "kind": "class", "doc": "<p></p>\n", "bases": "Predicate"}, "sqlglot.expressions.All": {"fullname": "sqlglot.expressions.All", "modulename": "sqlglot.expressions", "qualname": "All", "kind": "class", "doc": "<p></p>\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Any": {"fullname": "sqlglot.expressions.Any", "modulename": "sqlglot.expressions", "qualname": "Any", "kind": "class", "doc": "<p></p>\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Exists": {"fullname": "sqlglot.expressions.Exists", "modulename": "sqlglot.expressions", "qualname": "Exists", "kind": "class", "doc": "<p></p>\n", "bases": "SubqueryPredicate"}, "sqlglot.expressions.Command": {"fullname": "sqlglot.expressions.Command", "modulename": "sqlglot.expressions", "qualname": "Command", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Transaction": {"fullname": "sqlglot.expressions.Transaction", "modulename": "sqlglot.expressions", "qualname": "Transaction", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Commit": {"fullname": "sqlglot.expressions.Commit", "modulename": "sqlglot.expressions", "qualname": "Commit", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Rollback": {"fullname": "sqlglot.expressions.Rollback", "modulename": "sqlglot.expressions", "qualname": "Rollback", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AlterTable": {"fullname": "sqlglot.expressions.AlterTable", "modulename": "sqlglot.expressions", "qualname": "AlterTable", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AddConstraint": {"fullname": "sqlglot.expressions.AddConstraint", "modulename": "sqlglot.expressions", "qualname": "AddConstraint", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.DropPartition": {"fullname": "sqlglot.expressions.DropPartition", "modulename": "sqlglot.expressions", "qualname": "DropPartition", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Binary": {"fullname": "sqlglot.expressions.Binary", "modulename": "sqlglot.expressions", "qualname": "Binary", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Add": {"fullname": "sqlglot.expressions.Add", "modulename": "sqlglot.expressions", "qualname": "Add", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Connector": {"fullname": "sqlglot.expressions.Connector", "modulename": "sqlglot.expressions", "qualname": "Connector", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Condition"}, "sqlglot.expressions.And": {"fullname": "sqlglot.expressions.And", "modulename": "sqlglot.expressions", "qualname": "And", "kind": "class", "doc": "<p></p>\n", "bases": "Connector"}, "sqlglot.expressions.Or": {"fullname": "sqlglot.expressions.Or", "modulename": "sqlglot.expressions", "qualname": "Or", "kind": "class", "doc": "<p></p>\n", "bases": "Connector"}, "sqlglot.expressions.BitwiseAnd": {"fullname": "sqlglot.expressions.BitwiseAnd", "modulename": "sqlglot.expressions", "qualname": "BitwiseAnd", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseLeftShift": {"fullname": "sqlglot.expressions.BitwiseLeftShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseLeftShift", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseOr": {"fullname": "sqlglot.expressions.BitwiseOr", "modulename": "sqlglot.expressions", "qualname": "BitwiseOr", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseRightShift": {"fullname": "sqlglot.expressions.BitwiseRightShift", "modulename": "sqlglot.expressions", "qualname": "BitwiseRightShift", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.BitwiseXor": {"fullname": "sqlglot.expressions.BitwiseXor", "modulename": "sqlglot.expressions", "qualname": "BitwiseXor", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Div": {"fullname": "sqlglot.expressions.Div", "modulename": "sqlglot.expressions", "qualname": "Div", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Overlaps": {"fullname": "sqlglot.expressions.Overlaps", "modulename": "sqlglot.expressions", "qualname": "Overlaps", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Dot": {"fullname": "sqlglot.expressions.Dot", "modulename": "sqlglot.expressions", "qualname": "Dot", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.DPipe": {"fullname": "sqlglot.expressions.DPipe", "modulename": "sqlglot.expressions", "qualname": "DPipe", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.EQ": {"fullname": "sqlglot.expressions.EQ", "modulename": "sqlglot.expressions", "qualname": "EQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeEQ": {"fullname": "sqlglot.expressions.NullSafeEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeEQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.NullSafeNEQ": {"fullname": "sqlglot.expressions.NullSafeNEQ", "modulename": "sqlglot.expressions", "qualname": "NullSafeNEQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Distance": {"fullname": "sqlglot.expressions.Distance", "modulename": "sqlglot.expressions", "qualname": "Distance", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Escape": {"fullname": "sqlglot.expressions.Escape", "modulename": "sqlglot.expressions", "qualname": "Escape", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Glob": {"fullname": "sqlglot.expressions.Glob", "modulename": "sqlglot.expressions", "qualname": "Glob", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GT": {"fullname": "sqlglot.expressions.GT", "modulename": "sqlglot.expressions", "qualname": "GT", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.GTE": {"fullname": "sqlglot.expressions.GTE", "modulename": "sqlglot.expressions", "qualname": "GTE", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILike": {"fullname": "sqlglot.expressions.ILike", "modulename": "sqlglot.expressions", "qualname": "ILike", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.ILikeAny": {"fullname": "sqlglot.expressions.ILikeAny", "modulename": "sqlglot.expressions", "qualname": "ILikeAny", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.IntDiv": {"fullname": "sqlglot.expressions.IntDiv", "modulename": "sqlglot.expressions", "qualname": "IntDiv", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Is": {"fullname": "sqlglot.expressions.Is", "modulename": "sqlglot.expressions", "qualname": "Is", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Kwarg": {"fullname": "sqlglot.expressions.Kwarg", "modulename": "sqlglot.expressions", "qualname": "Kwarg", "kind": "class", "doc": "<p>Kwarg in special functions like func(kwarg => y).</p>\n", "bases": "Binary"}, "sqlglot.expressions.Like": {"fullname": "sqlglot.expressions.Like", "modulename": "sqlglot.expressions", "qualname": "Like", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LikeAny": {"fullname": "sqlglot.expressions.LikeAny", "modulename": "sqlglot.expressions", "qualname": "LikeAny", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LT": {"fullname": "sqlglot.expressions.LT", "modulename": "sqlglot.expressions", "qualname": "LT", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.LTE": {"fullname": "sqlglot.expressions.LTE", "modulename": "sqlglot.expressions", "qualname": "LTE", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Mod": {"fullname": "sqlglot.expressions.Mod", "modulename": "sqlglot.expressions", "qualname": "Mod", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Mul": {"fullname": "sqlglot.expressions.Mul", "modulename": "sqlglot.expressions", "qualname": "Mul", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.NEQ": {"fullname": "sqlglot.expressions.NEQ", "modulename": "sqlglot.expressions", "qualname": "NEQ", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.SimilarTo": {"fullname": "sqlglot.expressions.SimilarTo", "modulename": "sqlglot.expressions", "qualname": "SimilarTo", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Predicate"}, "sqlglot.expressions.Slice": {"fullname": "sqlglot.expressions.Slice", "modulename": "sqlglot.expressions", "qualname": "Slice", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Sub": {"fullname": "sqlglot.expressions.Sub", "modulename": "sqlglot.expressions", "qualname": "Sub", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.ArrayOverlaps": {"fullname": "sqlglot.expressions.ArrayOverlaps", "modulename": "sqlglot.expressions", "qualname": "ArrayOverlaps", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.Unary": {"fullname": "sqlglot.expressions.Unary", "modulename": "sqlglot.expressions", "qualname": "Unary", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.BitwiseNot": {"fullname": "sqlglot.expressions.BitwiseNot", "modulename": "sqlglot.expressions", "qualname": "BitwiseNot", "kind": "class", "doc": "<p></p>\n", "bases": "Unary"}, "sqlglot.expressions.Not": {"fullname": "sqlglot.expressions.Not", "modulename": "sqlglot.expressions", "qualname": "Not", "kind": "class", "doc": "<p></p>\n", "bases": "Unary, Condition"}, "sqlglot.expressions.Paren": {"fullname": "sqlglot.expressions.Paren", "modulename": "sqlglot.expressions", "qualname": "Paren", "kind": "class", "doc": "<p></p>\n", "bases": "Unary, Condition"}, "sqlglot.expressions.Neg": {"fullname": "sqlglot.expressions.Neg", "modulename": "sqlglot.expressions", "qualname": "Neg", "kind": "class", "doc": "<p></p>\n", "bases": "Unary"}, "sqlglot.expressions.Alias": {"fullname": "sqlglot.expressions.Alias", "modulename": "sqlglot.expressions", "qualname": "Alias", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Alias.output_name": {"fullname": "sqlglot.expressions.Alias.output_name", "modulename": "sqlglot.expressions", "qualname": "Alias.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Aliases": {"fullname": "sqlglot.expressions.Aliases", "modulename": "sqlglot.expressions", "qualname": "Aliases", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.AtTimeZone": {"fullname": "sqlglot.expressions.AtTimeZone", "modulename": "sqlglot.expressions", "qualname": "AtTimeZone", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Between": {"fullname": "sqlglot.expressions.Between", "modulename": "sqlglot.expressions", "qualname": "Between", "kind": "class", "doc": "<p></p>\n", "bases": "Predicate"}, "sqlglot.expressions.Bracket": {"fullname": "sqlglot.expressions.Bracket", "modulename": "sqlglot.expressions", "qualname": "Bracket", "kind": "class", "doc": "<p></p>\n", "bases": "Condition"}, "sqlglot.expressions.Distinct": {"fullname": "sqlglot.expressions.Distinct", "modulename": "sqlglot.expressions", "qualname": "Distinct", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.In": {"fullname": "sqlglot.expressions.In", "modulename": "sqlglot.expressions", "qualname": "In", "kind": "class", "doc": "<p></p>\n", "bases": "Predicate"}, "sqlglot.expressions.TimeUnit": {"fullname": "sqlglot.expressions.TimeUnit", "modulename": "sqlglot.expressions", "qualname": "TimeUnit", "kind": "class", "doc": "<p>Automatically converts unit arg into a var.</p>\n", "bases": "Expression"}, "sqlglot.expressions.TimeUnit.__init__": {"fullname": "sqlglot.expressions.TimeUnit.__init__", "modulename": "sqlglot.expressions", "qualname": "TimeUnit.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">**</span><span class=\"n\">args</span></span>)</span>"}, "sqlglot.expressions.Interval": {"fullname": "sqlglot.expressions.Interval", "modulename": "sqlglot.expressions", "qualname": "Interval", "kind": "class", "doc": "<p></p>\n", "bases": "TimeUnit"}, "sqlglot.expressions.IgnoreNulls": {"fullname": "sqlglot.expressions.IgnoreNulls", "modulename": "sqlglot.expressions", "qualname": "IgnoreNulls", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.RespectNulls": {"fullname": "sqlglot.expressions.RespectNulls", "modulename": "sqlglot.expressions", "qualname": "RespectNulls", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Func": {"fullname": "sqlglot.expressions.Func", "modulename": "sqlglot.expressions", "qualname": "Func", "kind": "class", "doc": "<p>The base class for all function expressions.</p>\n\n<h6 id=\"attributes\">Attributes:</h6>\n\n<ul>\n<li><strong>is_var_len_args (bool):</strong> if set to True the last argument defined in arg_types will be\ntreated as a variable length argument and the argument's value will be stored as a list.</li>\n<li><strong>_sql_names (list):</strong> determines the SQL name (1st item in the list) and aliases (subsequent items)\nfor this function expression. These values are used to map this node to a name during parsing\nas well as to provide the function's name during SQL string generation. By default the SQL\nname is set to the expression's class name transformed to snake case.</li>\n</ul>\n", "bases": "Condition"}, "sqlglot.expressions.Func.from_arg_list": {"fullname": "sqlglot.expressions.Func.from_arg_list", "modulename": "sqlglot.expressions", "qualname": "Func.from_arg_list", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">args</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Func.sql_names": {"fullname": "sqlglot.expressions.Func.sql_names", "modulename": "sqlglot.expressions", "qualname": "Func.sql_names", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Func.sql_name": {"fullname": "sqlglot.expressions.Func.sql_name", "modulename": "sqlglot.expressions", "qualname": "Func.sql_name", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.Func.default_parser_mappings": {"fullname": "sqlglot.expressions.Func.default_parser_mappings", "modulename": "sqlglot.expressions", "qualname": "Func.default_parser_mappings", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.AggFunc": {"fullname": "sqlglot.expressions.AggFunc", "modulename": "sqlglot.expressions", "qualname": "AggFunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Abs": {"fullname": "sqlglot.expressions.Abs", "modulename": "sqlglot.expressions", "qualname": "Abs", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Anonymous": {"fullname": "sqlglot.expressions.Anonymous", "modulename": "sqlglot.expressions", "qualname": "Anonymous", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ApproxDistinct": {"fullname": "sqlglot.expressions.ApproxDistinct", "modulename": "sqlglot.expressions", "qualname": "ApproxDistinct", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Array": {"fullname": "sqlglot.expressions.Array", "modulename": "sqlglot.expressions", "qualname": "Array", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ToChar": {"fullname": "sqlglot.expressions.ToChar", "modulename": "sqlglot.expressions", "qualname": "ToChar", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.GenerateSeries": {"fullname": "sqlglot.expressions.GenerateSeries", "modulename": "sqlglot.expressions", "qualname": "GenerateSeries", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayAgg": {"fullname": "sqlglot.expressions.ArrayAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayAgg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.ArrayAll": {"fullname": "sqlglot.expressions.ArrayAll", "modulename": "sqlglot.expressions", "qualname": "ArrayAll", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayAny": {"fullname": "sqlglot.expressions.ArrayAny", "modulename": "sqlglot.expressions", "qualname": "ArrayAny", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayConcat": {"fullname": "sqlglot.expressions.ArrayConcat", "modulename": "sqlglot.expressions", "qualname": "ArrayConcat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayContains": {"fullname": "sqlglot.expressions.ArrayContains", "modulename": "sqlglot.expressions", "qualname": "ArrayContains", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Func"}, "sqlglot.expressions.ArrayContained": {"fullname": "sqlglot.expressions.ArrayContained", "modulename": "sqlglot.expressions", "qualname": "ArrayContained", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.ArrayFilter": {"fullname": "sqlglot.expressions.ArrayFilter", "modulename": "sqlglot.expressions", "qualname": "ArrayFilter", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayJoin": {"fullname": "sqlglot.expressions.ArrayJoin", "modulename": "sqlglot.expressions", "qualname": "ArrayJoin", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArraySize": {"fullname": "sqlglot.expressions.ArraySize", "modulename": "sqlglot.expressions", "qualname": "ArraySize", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArraySort": {"fullname": "sqlglot.expressions.ArraySort", "modulename": "sqlglot.expressions", "qualname": "ArraySort", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArraySum": {"fullname": "sqlglot.expressions.ArraySum", "modulename": "sqlglot.expressions", "qualname": "ArraySum", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ArrayUnionAgg": {"fullname": "sqlglot.expressions.ArrayUnionAgg", "modulename": "sqlglot.expressions", "qualname": "ArrayUnionAgg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Avg": {"fullname": "sqlglot.expressions.Avg", "modulename": "sqlglot.expressions", "qualname": "Avg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.AnyValue": {"fullname": "sqlglot.expressions.AnyValue", "modulename": "sqlglot.expressions", "qualname": "AnyValue", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Case": {"fullname": "sqlglot.expressions.Case", "modulename": "sqlglot.expressions", "qualname": "Case", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Cast": {"fullname": "sqlglot.expressions.Cast", "modulename": "sqlglot.expressions", "qualname": "Cast", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Cast.output_name": {"fullname": "sqlglot.expressions.Cast.output_name", "modulename": "sqlglot.expressions", "qualname": "Cast.output_name", "kind": "variable", "doc": "<p>Name of the output column if this expression is a selection.</p>\n\n<p>If the Expression has no output name, an empty string is returned.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'a'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT b AS c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">'c'</span>\n<span class=\"gp\">>>> </span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 + 2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">output_name</span>\n<span class=\"go\">''</span>\n</code></pre>\n </div>\n</blockquote>\n"}, "sqlglot.expressions.Cast.is_type": {"fullname": "sqlglot.expressions.Cast.is_type", "modulename": "sqlglot.expressions", "qualname": "Cast.is_type", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dtype</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.Collate": {"fullname": "sqlglot.expressions.Collate", "modulename": "sqlglot.expressions", "qualname": "Collate", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.TryCast": {"fullname": "sqlglot.expressions.TryCast", "modulename": "sqlglot.expressions", "qualname": "TryCast", "kind": "class", "doc": "<p></p>\n", "bases": "Cast"}, "sqlglot.expressions.Ceil": {"fullname": "sqlglot.expressions.Ceil", "modulename": "sqlglot.expressions", "qualname": "Ceil", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Coalesce": {"fullname": "sqlglot.expressions.Coalesce", "modulename": "sqlglot.expressions", "qualname": "Coalesce", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Concat": {"fullname": "sqlglot.expressions.Concat", "modulename": "sqlglot.expressions", "qualname": "Concat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ConcatWs": {"fullname": "sqlglot.expressions.ConcatWs", "modulename": "sqlglot.expressions", "qualname": "ConcatWs", "kind": "class", "doc": "<p></p>\n", "bases": "Concat"}, "sqlglot.expressions.Count": {"fullname": "sqlglot.expressions.Count", "modulename": "sqlglot.expressions", "qualname": "Count", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.CountIf": {"fullname": "sqlglot.expressions.CountIf", "modulename": "sqlglot.expressions", "qualname": "CountIf", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.CurrentDate": {"fullname": "sqlglot.expressions.CurrentDate", "modulename": "sqlglot.expressions", "qualname": "CurrentDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.CurrentDatetime": {"fullname": "sqlglot.expressions.CurrentDatetime", "modulename": "sqlglot.expressions", "qualname": "CurrentDatetime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.CurrentTime": {"fullname": "sqlglot.expressions.CurrentTime", "modulename": "sqlglot.expressions", "qualname": "CurrentTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.CurrentTimestamp": {"fullname": "sqlglot.expressions.CurrentTimestamp", "modulename": "sqlglot.expressions", "qualname": "CurrentTimestamp", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateAdd": {"fullname": "sqlglot.expressions.DateAdd", "modulename": "sqlglot.expressions", "qualname": "DateAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateSub": {"fullname": "sqlglot.expressions.DateSub", "modulename": "sqlglot.expressions", "qualname": "DateSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateDiff": {"fullname": "sqlglot.expressions.DateDiff", "modulename": "sqlglot.expressions", "qualname": "DateDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateTrunc": {"fullname": "sqlglot.expressions.DateTrunc", "modulename": "sqlglot.expressions", "qualname": "DateTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DatetimeAdd": {"fullname": "sqlglot.expressions.DatetimeAdd", "modulename": "sqlglot.expressions", "qualname": "DatetimeAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeSub": {"fullname": "sqlglot.expressions.DatetimeSub", "modulename": "sqlglot.expressions", "qualname": "DatetimeSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeDiff": {"fullname": "sqlglot.expressions.DatetimeDiff", "modulename": "sqlglot.expressions", "qualname": "DatetimeDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DatetimeTrunc": {"fullname": "sqlglot.expressions.DatetimeTrunc", "modulename": "sqlglot.expressions", "qualname": "DatetimeTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DayOfWeek": {"fullname": "sqlglot.expressions.DayOfWeek", "modulename": "sqlglot.expressions", "qualname": "DayOfWeek", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DayOfMonth": {"fullname": "sqlglot.expressions.DayOfMonth", "modulename": "sqlglot.expressions", "qualname": "DayOfMonth", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DayOfYear": {"fullname": "sqlglot.expressions.DayOfYear", "modulename": "sqlglot.expressions", "qualname": "DayOfYear", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.WeekOfYear": {"fullname": "sqlglot.expressions.WeekOfYear", "modulename": "sqlglot.expressions", "qualname": "WeekOfYear", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.LastDateOfMonth": {"fullname": "sqlglot.expressions.LastDateOfMonth", "modulename": "sqlglot.expressions", "qualname": "LastDateOfMonth", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Extract": {"fullname": "sqlglot.expressions.Extract", "modulename": "sqlglot.expressions", "qualname": "Extract", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimestampAdd": {"fullname": "sqlglot.expressions.TimestampAdd", "modulename": "sqlglot.expressions", "qualname": "TimestampAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampSub": {"fullname": "sqlglot.expressions.TimestampSub", "modulename": "sqlglot.expressions", "qualname": "TimestampSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampDiff": {"fullname": "sqlglot.expressions.TimestampDiff", "modulename": "sqlglot.expressions", "qualname": "TimestampDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimestampTrunc": {"fullname": "sqlglot.expressions.TimestampTrunc", "modulename": "sqlglot.expressions", "qualname": "TimestampTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeAdd": {"fullname": "sqlglot.expressions.TimeAdd", "modulename": "sqlglot.expressions", "qualname": "TimeAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeSub": {"fullname": "sqlglot.expressions.TimeSub", "modulename": "sqlglot.expressions", "qualname": "TimeSub", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeDiff": {"fullname": "sqlglot.expressions.TimeDiff", "modulename": "sqlglot.expressions", "qualname": "TimeDiff", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TimeTrunc": {"fullname": "sqlglot.expressions.TimeTrunc", "modulename": "sqlglot.expressions", "qualname": "TimeTrunc", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.DateFromParts": {"fullname": "sqlglot.expressions.DateFromParts", "modulename": "sqlglot.expressions", "qualname": "DateFromParts", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateStrToDate": {"fullname": "sqlglot.expressions.DateStrToDate", "modulename": "sqlglot.expressions", "qualname": "DateStrToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateToDateStr": {"fullname": "sqlglot.expressions.DateToDateStr", "modulename": "sqlglot.expressions", "qualname": "DateToDateStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DateToDi": {"fullname": "sqlglot.expressions.DateToDi", "modulename": "sqlglot.expressions", "qualname": "DateToDi", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Day": {"fullname": "sqlglot.expressions.Day", "modulename": "sqlglot.expressions", "qualname": "Day", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Decode": {"fullname": "sqlglot.expressions.Decode", "modulename": "sqlglot.expressions", "qualname": "Decode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.DiToDate": {"fullname": "sqlglot.expressions.DiToDate", "modulename": "sqlglot.expressions", "qualname": "DiToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Encode": {"fullname": "sqlglot.expressions.Encode", "modulename": "sqlglot.expressions", "qualname": "Encode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Exp": {"fullname": "sqlglot.expressions.Exp", "modulename": "sqlglot.expressions", "qualname": "Exp", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Explode": {"fullname": "sqlglot.expressions.Explode", "modulename": "sqlglot.expressions", "qualname": "Explode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Floor": {"fullname": "sqlglot.expressions.Floor", "modulename": "sqlglot.expressions", "qualname": "Floor", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Greatest": {"fullname": "sqlglot.expressions.Greatest", "modulename": "sqlglot.expressions", "qualname": "Greatest", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.GroupConcat": {"fullname": "sqlglot.expressions.GroupConcat", "modulename": "sqlglot.expressions", "qualname": "GroupConcat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Hex": {"fullname": "sqlglot.expressions.Hex", "modulename": "sqlglot.expressions", "qualname": "Hex", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.If": {"fullname": "sqlglot.expressions.If", "modulename": "sqlglot.expressions", "qualname": "If", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.IfNull": {"fullname": "sqlglot.expressions.IfNull", "modulename": "sqlglot.expressions", "qualname": "IfNull", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Initcap": {"fullname": "sqlglot.expressions.Initcap", "modulename": "sqlglot.expressions", "qualname": "Initcap", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.JSONBContains": {"fullname": "sqlglot.expressions.JSONBContains", "modulename": "sqlglot.expressions", "qualname": "JSONBContains", "kind": "class", "doc": "<p></p>\n", "bases": "Binary"}, "sqlglot.expressions.JSONExtract": {"fullname": "sqlglot.expressions.JSONExtract", "modulename": "sqlglot.expressions", "qualname": "JSONExtract", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Func"}, "sqlglot.expressions.JSONExtractScalar": {"fullname": "sqlglot.expressions.JSONExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONExtractScalar", "kind": "class", "doc": "<p></p>\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtract": {"fullname": "sqlglot.expressions.JSONBExtract", "modulename": "sqlglot.expressions", "qualname": "JSONBExtract", "kind": "class", "doc": "<p></p>\n", "bases": "JSONExtract"}, "sqlglot.expressions.JSONBExtractScalar": {"fullname": "sqlglot.expressions.JSONBExtractScalar", "modulename": "sqlglot.expressions", "qualname": "JSONBExtractScalar", "kind": "class", "doc": "<p></p>\n", "bases": "JSONExtract"}, "sqlglot.expressions.Least": {"fullname": "sqlglot.expressions.Least", "modulename": "sqlglot.expressions", "qualname": "Least", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Length": {"fullname": "sqlglot.expressions.Length", "modulename": "sqlglot.expressions", "qualname": "Length", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Levenshtein": {"fullname": "sqlglot.expressions.Levenshtein", "modulename": "sqlglot.expressions", "qualname": "Levenshtein", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Ln": {"fullname": "sqlglot.expressions.Ln", "modulename": "sqlglot.expressions", "qualname": "Ln", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Log": {"fullname": "sqlglot.expressions.Log", "modulename": "sqlglot.expressions", "qualname": "Log", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Log2": {"fullname": "sqlglot.expressions.Log2", "modulename": "sqlglot.expressions", "qualname": "Log2", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Log10": {"fullname": "sqlglot.expressions.Log10", "modulename": "sqlglot.expressions", "qualname": "Log10", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.LogicalOr": {"fullname": "sqlglot.expressions.LogicalOr", "modulename": "sqlglot.expressions", "qualname": "LogicalOr", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.LogicalAnd": {"fullname": "sqlglot.expressions.LogicalAnd", "modulename": "sqlglot.expressions", "qualname": "LogicalAnd", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Lower": {"fullname": "sqlglot.expressions.Lower", "modulename": "sqlglot.expressions", "qualname": "Lower", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Map": {"fullname": "sqlglot.expressions.Map", "modulename": "sqlglot.expressions", "qualname": "Map", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.VarMap": {"fullname": "sqlglot.expressions.VarMap", "modulename": "sqlglot.expressions", "qualname": "VarMap", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Matches": {"fullname": "sqlglot.expressions.Matches", "modulename": "sqlglot.expressions", "qualname": "Matches", "kind": "class", "doc": "<p>Oracle/Snowflake decode.\n<a href=\"https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm\">https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</a>\nPattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p>\n", "bases": "Func"}, "sqlglot.expressions.Max": {"fullname": "sqlglot.expressions.Max", "modulename": "sqlglot.expressions", "qualname": "Max", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Min": {"fullname": "sqlglot.expressions.Min", "modulename": "sqlglot.expressions", "qualname": "Min", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Month": {"fullname": "sqlglot.expressions.Month", "modulename": "sqlglot.expressions", "qualname": "Month", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Nvl2": {"fullname": "sqlglot.expressions.Nvl2", "modulename": "sqlglot.expressions", "qualname": "Nvl2", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Posexplode": {"fullname": "sqlglot.expressions.Posexplode", "modulename": "sqlglot.expressions", "qualname": "Posexplode", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Pow": {"fullname": "sqlglot.expressions.Pow", "modulename": "sqlglot.expressions", "qualname": "Pow", "kind": "class", "doc": "<p></p>\n", "bases": "Binary, Func"}, "sqlglot.expressions.PercentileCont": {"fullname": "sqlglot.expressions.PercentileCont", "modulename": "sqlglot.expressions", "qualname": "PercentileCont", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.PercentileDisc": {"fullname": "sqlglot.expressions.PercentileDisc", "modulename": "sqlglot.expressions", "qualname": "PercentileDisc", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Quantile": {"fullname": "sqlglot.expressions.Quantile", "modulename": "sqlglot.expressions", "qualname": "Quantile", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Quantiles": {"fullname": "sqlglot.expressions.Quantiles", "modulename": "sqlglot.expressions", "qualname": "Quantiles", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.QuantileIf": {"fullname": "sqlglot.expressions.QuantileIf", "modulename": "sqlglot.expressions", "qualname": "QuantileIf", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.ApproxQuantile": {"fullname": "sqlglot.expressions.ApproxQuantile", "modulename": "sqlglot.expressions", "qualname": "ApproxQuantile", "kind": "class", "doc": "<p></p>\n", "bases": "Quantile"}, "sqlglot.expressions.RangeN": {"fullname": "sqlglot.expressions.RangeN", "modulename": "sqlglot.expressions", "qualname": "RangeN", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.ReadCSV": {"fullname": "sqlglot.expressions.ReadCSV", "modulename": "sqlglot.expressions", "qualname": "ReadCSV", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Reduce": {"fullname": "sqlglot.expressions.Reduce", "modulename": "sqlglot.expressions", "qualname": "Reduce", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpExtract": {"fullname": "sqlglot.expressions.RegexpExtract", "modulename": "sqlglot.expressions", "qualname": "RegexpExtract", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpLike": {"fullname": "sqlglot.expressions.RegexpLike", "modulename": "sqlglot.expressions", "qualname": "RegexpLike", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpILike": {"fullname": "sqlglot.expressions.RegexpILike", "modulename": "sqlglot.expressions", "qualname": "RegexpILike", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RegexpSplit": {"fullname": "sqlglot.expressions.RegexpSplit", "modulename": "sqlglot.expressions", "qualname": "RegexpSplit", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Repeat": {"fullname": "sqlglot.expressions.Repeat", "modulename": "sqlglot.expressions", "qualname": "Repeat", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Round": {"fullname": "sqlglot.expressions.Round", "modulename": "sqlglot.expressions", "qualname": "Round", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.RowNumber": {"fullname": "sqlglot.expressions.RowNumber", "modulename": "sqlglot.expressions", "qualname": "RowNumber", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.SafeDivide": {"fullname": "sqlglot.expressions.SafeDivide", "modulename": "sqlglot.expressions", "qualname": "SafeDivide", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.SetAgg": {"fullname": "sqlglot.expressions.SetAgg", "modulename": "sqlglot.expressions", "qualname": "SetAgg", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.SortArray": {"fullname": "sqlglot.expressions.SortArray", "modulename": "sqlglot.expressions", "qualname": "SortArray", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Split": {"fullname": "sqlglot.expressions.Split", "modulename": "sqlglot.expressions", "qualname": "Split", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Substring": {"fullname": "sqlglot.expressions.Substring", "modulename": "sqlglot.expressions", "qualname": "Substring", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrPosition": {"fullname": "sqlglot.expressions.StrPosition", "modulename": "sqlglot.expressions", "qualname": "StrPosition", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrToDate": {"fullname": "sqlglot.expressions.StrToDate", "modulename": "sqlglot.expressions", "qualname": "StrToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrToTime": {"fullname": "sqlglot.expressions.StrToTime", "modulename": "sqlglot.expressions", "qualname": "StrToTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StrToUnix": {"fullname": "sqlglot.expressions.StrToUnix", "modulename": "sqlglot.expressions", "qualname": "StrToUnix", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.NumberToStr": {"fullname": "sqlglot.expressions.NumberToStr", "modulename": "sqlglot.expressions", "qualname": "NumberToStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Struct": {"fullname": "sqlglot.expressions.Struct", "modulename": "sqlglot.expressions", "qualname": "Struct", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.StructExtract": {"fullname": "sqlglot.expressions.StructExtract", "modulename": "sqlglot.expressions", "qualname": "StructExtract", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Sum": {"fullname": "sqlglot.expressions.Sum", "modulename": "sqlglot.expressions", "qualname": "Sum", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Sqrt": {"fullname": "sqlglot.expressions.Sqrt", "modulename": "sqlglot.expressions", "qualname": "Sqrt", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Stddev": {"fullname": "sqlglot.expressions.Stddev", "modulename": "sqlglot.expressions", "qualname": "Stddev", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevPop": {"fullname": "sqlglot.expressions.StddevPop", "modulename": "sqlglot.expressions", "qualname": "StddevPop", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.StddevSamp": {"fullname": "sqlglot.expressions.StddevSamp", "modulename": "sqlglot.expressions", "qualname": "StddevSamp", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.TimeToStr": {"fullname": "sqlglot.expressions.TimeToStr", "modulename": "sqlglot.expressions", "qualname": "TimeToStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeToTimeStr": {"fullname": "sqlglot.expressions.TimeToTimeStr", "modulename": "sqlglot.expressions", "qualname": "TimeToTimeStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeToUnix": {"fullname": "sqlglot.expressions.TimeToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeToUnix", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToDate": {"fullname": "sqlglot.expressions.TimeStrToDate", "modulename": "sqlglot.expressions", "qualname": "TimeStrToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToTime": {"fullname": "sqlglot.expressions.TimeStrToTime", "modulename": "sqlglot.expressions", "qualname": "TimeStrToTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TimeStrToUnix": {"fullname": "sqlglot.expressions.TimeStrToUnix", "modulename": "sqlglot.expressions", "qualname": "TimeStrToUnix", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Trim": {"fullname": "sqlglot.expressions.Trim", "modulename": "sqlglot.expressions", "qualname": "Trim", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsAdd": {"fullname": "sqlglot.expressions.TsOrDsAdd", "modulename": "sqlglot.expressions", "qualname": "TsOrDsAdd", "kind": "class", "doc": "<p></p>\n", "bases": "Func, TimeUnit"}, "sqlglot.expressions.TsOrDsToDateStr": {"fullname": "sqlglot.expressions.TsOrDsToDateStr", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDateStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TsOrDsToDate": {"fullname": "sqlglot.expressions.TsOrDsToDate", "modulename": "sqlglot.expressions", "qualname": "TsOrDsToDate", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.TsOrDiToDi": {"fullname": "sqlglot.expressions.TsOrDiToDi", "modulename": "sqlglot.expressions", "qualname": "TsOrDiToDi", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Unhex": {"fullname": "sqlglot.expressions.Unhex", "modulename": "sqlglot.expressions", "qualname": "Unhex", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.UnixToStr": {"fullname": "sqlglot.expressions.UnixToStr", "modulename": "sqlglot.expressions", "qualname": "UnixToStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.UnixToTime": {"fullname": "sqlglot.expressions.UnixToTime", "modulename": "sqlglot.expressions", "qualname": "UnixToTime", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.UnixToTimeStr": {"fullname": "sqlglot.expressions.UnixToTimeStr", "modulename": "sqlglot.expressions", "qualname": "UnixToTimeStr", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Upper": {"fullname": "sqlglot.expressions.Upper", "modulename": "sqlglot.expressions", "qualname": "Upper", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Variance": {"fullname": "sqlglot.expressions.Variance", "modulename": "sqlglot.expressions", "qualname": "Variance", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.VariancePop": {"fullname": "sqlglot.expressions.VariancePop", "modulename": "sqlglot.expressions", "qualname": "VariancePop", "kind": "class", "doc": "<p></p>\n", "bases": "AggFunc"}, "sqlglot.expressions.Week": {"fullname": "sqlglot.expressions.Week", "modulename": "sqlglot.expressions", "qualname": "Week", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.XMLTable": {"fullname": "sqlglot.expressions.XMLTable", "modulename": "sqlglot.expressions", "qualname": "XMLTable", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Year": {"fullname": "sqlglot.expressions.Year", "modulename": "sqlglot.expressions", "qualname": "Year", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.Use": {"fullname": "sqlglot.expressions.Use", "modulename": "sqlglot.expressions", "qualname": "Use", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.Merge": {"fullname": "sqlglot.expressions.Merge", "modulename": "sqlglot.expressions", "qualname": "Merge", "kind": "class", "doc": "<p></p>\n", "bases": "Expression"}, "sqlglot.expressions.When": {"fullname": "sqlglot.expressions.When", "modulename": "sqlglot.expressions", "qualname": "When", "kind": "class", "doc": "<p></p>\n", "bases": "Func"}, "sqlglot.expressions.maybe_parse": {"fullname": "sqlglot.expressions.maybe_parse", "modulename": "sqlglot.expressions", "qualname": "maybe_parse", "kind": "function", "doc": "<p>Gracefully handle a possible string or expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">maybe_parse</span><span class=\"p\">(</span><span class=\"s2\">"1"</span><span class=\"p\">)</span>\n<span class=\"go\">(LITERAL this: 1, is_string: False)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">maybe_parse</span><span class=\"p\">(</span><span class=\"n\">to_identifier</span><span class=\"p\">(</span><span class=\"s2\">"x"</span><span class=\"p\">))</span>\n<span class=\"go\">(IDENTIFIER this: x, quoted: False)</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql_or_expression:</strong> the SQL code string or an expression</li>\n<li><strong>into:</strong> the SQLGlot Expression to parse into</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).</li>\n<li><strong>prefix:</strong> a string to prefix the sql with before it gets parsed\n(automatically includes a space)</li>\n<li><strong>copy:</strong> whether or not to copy the expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Expression: the parsed or given expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql_or_expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">*</span>,</span><span class=\"param\">\t<span class=\"n\">into</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">prefix</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.union": {"fullname": "sqlglot.expressions.union", "modulename": "sqlglot.expressions", "qualname": "union", "kind": "function", "doc": "<p>Initializes a syntax tree from one UNION expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">union</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">,</span> <span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo UNION SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Union: the syntax tree for the UNION expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">left</span>, </span><span class=\"param\"><span class=\"n\">right</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.intersect": {"fullname": "sqlglot.expressions.intersect", "modulename": "sqlglot.expressions", "qualname": "intersect", "kind": "function", "doc": "<p>Initializes a syntax tree from one INTERSECT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">intersect</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">,</span> <span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Intersect: the syntax tree for the INTERSECT expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">left</span>, </span><span class=\"param\"><span class=\"n\">right</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.except_": {"fullname": "sqlglot.expressions.except_", "modulename": "sqlglot.expressions", "qualname": "except_", "kind": "function", "doc": "<p>Initializes a syntax tree from one EXCEPT expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">except_</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM foo"</span><span class=\"p\">,</span> <span class=\"s2\">"SELECT * FROM bla"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>left (str | Expression):</strong> the SQL code string corresponding to the left-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>right (str | Expression):</strong> the SQL code string corresponding to the right-hand side.\nIf an <code>Expression</code> instance is passed, it will be used as-is.</li>\n<li><strong>distinct (bool):</strong> set the DISTINCT flag if and only if this is true.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>opts (kwargs):</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Except: the syntax tree for the EXCEPT statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">left</span>, </span><span class=\"param\"><span class=\"n\">right</span>, </span><span class=\"param\"><span class=\"n\">distinct</span><span class=\"o\">=</span><span class=\"kc\">True</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.select": {"fullname": "sqlglot.expressions.select", "modulename": "sqlglot.expressions", "qualname": "select", "kind": "function", "doc": "<p>Initializes a syntax tree from one or multiple SELECT expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"col1"</span><span class=\"p\">,</span> <span class=\"s2\">"col2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT col1, col2 FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions:</strong> the SQL code string to parse as the expressions of a\nSELECT statement. If an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions (in the case that an\ninput expression is a SQL string).</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat an input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the syntax tree for the SELECT statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.from_": {"fullname": "sqlglot.expressions.from_", "modulename": "sqlglot.expressions", "qualname": "from_", "kind": "function", "doc": "<p>Initializes a syntax tree from a FROM expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"col1"</span><span class=\"p\">,</span> <span class=\"s2\">"col2"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT col1, col2 FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code string to parse as the FROM expressions of a\nSELECT statement. If an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: the syntax tree for the SELECT statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.update": {"fullname": "sqlglot.expressions.update", "modulename": "sqlglot.expressions", "qualname": "update", "kind": "function", "doc": "<p>Creates an update statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">update</span><span class=\"p\">(</span><span class=\"s2\">"my_table"</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s2\">"x"</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s2\">"y"</span><span class=\"p\">:</span> <span class=\"s2\">"2"</span><span class=\"p\">,</span> <span class=\"s2\">"z"</span><span class=\"p\">:</span> <span class=\"kc\">None</span><span class=\"p\">},</span> <span class=\"n\">from_</span><span class=\"o\">=</span><span class=\"s2\">"baz"</span><span class=\"p\">,</span> <span class=\"n\">where</span><span class=\"o\">=</span><span class=\"s2\">"id > 1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*properties:</strong> dictionary of properties to set which are\nauto converted to sql objects eg None -> NULL</li>\n<li><strong>where:</strong> sql conditional parsed into a WHERE statement</li>\n<li><strong>from_:</strong> sql statement parsed into a FROM statement</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Update: the syntax tree for the UPDATE statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"nb\">dict</span>,</span><span class=\"param\">\t<span class=\"n\">where</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">from_</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Update</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.delete": {"fullname": "sqlglot.expressions.delete", "modulename": "sqlglot.expressions", "qualname": "delete", "kind": "function", "doc": "<p>Builds a delete statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">delete</span><span class=\"p\">(</span><span class=\"s2\">"my_table"</span><span class=\"p\">,</span> <span class=\"n\">where</span><span class=\"o\">=</span><span class=\"s2\">"id > 1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'DELETE FROM my_table WHERE id > 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>where:</strong> sql conditional parsed into a WHERE statement</li>\n<li><strong>returning:</strong> sql conditional parsed into a RETURNING statement</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Delete: the syntax tree for the DELETE statement.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">where</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">returning</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.condition": {"fullname": "sqlglot.expressions.condition", "modulename": "sqlglot.expressions", "qualname": "condition", "kind": "function", "doc": "<p>Initialize a logical condition expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1'</span>\n</code></pre>\n </div>\n \n <p>This is helpful for composing larger logical syntax trees:</p>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">where</span> <span class=\"o\">=</span> <span class=\"n\">condition</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">where</span> <span class=\"o\">=</span> <span class=\"n\">where</span><span class=\"o\">.</span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">Select</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">from_</span><span class=\"p\">(</span><span class=\"s2\">"tbl"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s2\">"*"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">where</span><span class=\"p\">(</span><span class=\"n\">where</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM tbl WHERE x = 1 AND y = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expression (str | Expression):</strong> the SQL code string to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression (in the case that the\ninput expression is a SQL string).</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions (again, in the case\nthat the input expression is a SQL string).</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Condition: the expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Condition</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.and_": {"fullname": "sqlglot.expressions.and_", "modulename": "sqlglot.expressions", "qualname": "and_", "kind": "function", "doc": "<p>Combine multiple conditions with an AND logical operator.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">,</span> <span class=\"n\">and_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">,</span> <span class=\"s2\">"z=1"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 AND (y = 1 AND z = 1)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>And: the new condition</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">And</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.or_": {"fullname": "sqlglot.expressions.or_", "modulename": "sqlglot.expressions", "qualname": "or_", "kind": "function", "doc": "<p>Combine multiple conditions with an OR logical operator.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">or_</span><span class=\"p\">(</span><span class=\"s2\">"x=1"</span><span class=\"p\">,</span> <span class=\"n\">or_</span><span class=\"p\">(</span><span class=\"s2\">"y=1"</span><span class=\"p\">,</span> <span class=\"s2\">"z=1"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'x = 1 OR (y = 1 OR z = 1)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>*expressions (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Or: the new condition</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expressions</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Or</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.not_": {"fullname": "sqlglot.expressions.not_", "modulename": "sqlglot.expressions", "qualname": "not_", "kind": "function", "doc": "<p>Wrap a condition with a NOT operator.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">not_</span><span class=\"p\">(</span><span class=\"s2\">"this_suit='black'"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"NOT this_suit = 'black'"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Not: the new condition</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Not</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.paren": {"fullname": "sqlglot.expressions.paren", "modulename": "sqlglot.expressions", "qualname": "paren", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Paren</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_identifier": {"fullname": "sqlglot.expressions.to_identifier", "modulename": "sqlglot.expressions", "qualname": "to_identifier", "kind": "function", "doc": "<p>Builds an identifier.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>name:</strong> The name to turn into an identifier.</li>\n<li><strong>quoted:</strong> Whether or not force quote the identifier.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The identifier ast node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">name</span>, </span><span class=\"param\"><span class=\"n\">quoted</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_interval": {"fullname": "sqlglot.expressions.to_interval", "modulename": "sqlglot.expressions", "qualname": "to_interval", "kind": "function", "doc": "<p>Builds an interval expression from a string like '1 day' or '5 months'.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">interval</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Interval</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_table": {"fullname": "sqlglot.expressions.to_table", "modulename": "sqlglot.expressions", "qualname": "to_table", "kind": "function", "doc": "<p>Create a table expression from a <code>[catalog].[schema].[table]</code> sql path. Catalog and schema are optional.\nIf a table is passed in then that table is returned.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql_path:</strong> a <code>[catalog].[schema].[table]</code> string.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A table expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql_path</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.to_column": {"fullname": "sqlglot.expressions.to_column", "modulename": "sqlglot.expressions", "qualname": "to_column", "kind": "function", "doc": "<p>Create a column from a <code>[table].[column]</code> sql path. Schema is optional.</p>\n\n<p>If a column is passed in then that column is returned.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>sql_path:</strong> <code>[table].[column]</code> string</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Table: A column expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">sql_path</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.alias_": {"fullname": "sqlglot.expressions.alias_", "modulename": "sqlglot.expressions", "qualname": "alias_", "kind": "function", "doc": "<p>Create an Alias expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">alias_</span><span class=\"p\">(</span><span class=\"s1\">'foo'</span><span class=\"p\">,</span> <span class=\"s1\">'bar'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'foo AS bar'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">alias_</span><span class=\"p\">(</span><span class=\"s1\">'(select 1, 2)'</span><span class=\"p\">,</span> <span class=\"s1\">'bar'</span><span class=\"p\">,</span> <span class=\"n\">table</span><span class=\"o\">=</span><span class=\"p\">[</span><span class=\"s1\">'a'</span><span class=\"p\">,</span> <span class=\"s1\">'b'</span><span class=\"p\">])</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'(SELECT 1, 2) AS bar(a, b)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>alias:</strong> the alias name to use. If the name has\nspecial characters it is quoted.</li>\n<li><strong>table:</strong> Whether or not to create a table alias, can also be a list of columns.</li>\n<li><strong>quoted:</strong> whether or not to quote the alias</li>\n<li><strong>dialect:</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Alias: the aliased expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">,</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.subquery": {"fullname": "sqlglot.expressions.subquery", "modulename": "sqlglot.expressions", "qualname": "subquery", "kind": "function", "doc": "<p>Build a subquery expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">subquery</span><span class=\"p\">(</span><span class=\"s1\">'select x from tbl'</span><span class=\"p\">,</span> <span class=\"s1\">'bar'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">select</span><span class=\"p\">(</span><span class=\"s1\">'x'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x FROM (SELECT x FROM tbl) AS bar'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (str | Expression):</strong> the SQL code strings to parse.\nIf an Expression instance is passed, this is used as-is.</li>\n<li><strong>alias (str | Expression):</strong> the alias name to use.</li>\n<li><strong>dialect (str):</strong> the dialect used to parse the input expression.</li>\n<li><strong>**opts:</strong> other options to use to parse the input expressions.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Select: a new select with the subquery expression included</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">dialect</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.column": {"fullname": "sqlglot.expressions.column", "modulename": "sqlglot.expressions", "qualname": "column", "kind": "function", "doc": "<p>Build a Column.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>col:</strong> column name</li>\n<li><strong>table:</strong> table name</li>\n<li><strong>schema:</strong> schema name</li>\n<li><strong>quoted:</strong> whether or not to force quote each part</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Column: column instance</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quoted</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">bool</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.cast": {"fullname": "sqlglot.expressions.cast", "modulename": "sqlglot.expressions", "qualname": "cast", "kind": "function", "doc": "<p>Cast an expression to a data type.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">cast</span><span class=\"p\">(</span><span class=\"s1\">'x + 1'</span><span class=\"p\">,</span> <span class=\"s1\">'int'</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'CAST(x + 1 AS INT)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> The expression to cast.</li>\n<li><strong>to:</strong> The datatype to cast to.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A cast node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">to</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.table_": {"fullname": "sqlglot.expressions.table_", "modulename": "sqlglot.expressions", "qualname": "table_", "kind": "function", "doc": "<p>Build a Table.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table (str | Expression):</strong> column name</li>\n<li><strong>db (str | Expression):</strong> db name</li>\n<li><strong>catalog (str | Expression):</strong> catalog name</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Table: table instance</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">table</span>,</span><span class=\"param\">\t<span class=\"n\">db</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">catalog</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quoted</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.values": {"fullname": "sqlglot.expressions.values", "modulename": "sqlglot.expressions", "qualname": "values", "kind": "function", "doc": "<p>Build VALUES statement.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">values</span><span class=\"p\">([(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"s1\">'2'</span><span class=\"p\">)])</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">"VALUES (1, '2')"</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>values:</strong> values statements that will be converted to SQL</li>\n<li><strong>alias:</strong> optional alias</li>\n<li><strong>columns:</strong> Optional list of ordered column names or ordered dictionary of column names to types.\nIf either are provided then an alias is also required.\nIf a dictionary is provided then the first column of the values will be casted to the expected type\nin order to help with type inference.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Values: the Values expression object</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">values</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">alias</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">columns</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">],</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.var": {"fullname": "sqlglot.expressions.var", "modulename": "sqlglot.expressions", "qualname": "var", "kind": "function", "doc": "<p>Build a SQL variable.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"nb\">repr</span><span class=\"p\">(</span><span class=\"n\">var</span><span class=\"p\">(</span><span class=\"s1\">'x'</span><span class=\"p\">))</span>\n<span class=\"go\">'(VAR this: x)'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"nb\">repr</span><span class=\"p\">(</span><span class=\"n\">var</span><span class=\"p\">(</span><span class=\"n\">column</span><span class=\"p\">(</span><span class=\"s1\">'x'</span><span class=\"p\">,</span> <span class=\"n\">table</span><span class=\"o\">=</span><span class=\"s1\">'y'</span><span class=\"p\">)))</span>\n<span class=\"go\">'(VAR this: x)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>name:</strong> The name of the var or an expression who's name will become the var.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The new variable node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Var</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.rename_table": {"fullname": "sqlglot.expressions.rename_table", "modulename": "sqlglot.expressions", "qualname": "rename_table", "kind": "function", "doc": "<p>Build ALTER TABLE... RENAME... expression</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>old_name:</strong> The old name of the table</li>\n<li><strong>new_name:</strong> The new name of the table</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Alter table expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">old_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>,</span><span class=\"param\">\t<span class=\"n\">new_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AlterTable</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.convert": {"fullname": "sqlglot.expressions.convert", "modulename": "sqlglot.expressions", "qualname": "convert", "kind": "function", "doc": "<p>Convert a python value into an expression object.</p>\n\n<p>Raises an error if a conversion is not possible.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value (Any):</strong> a python object</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Expression: the equivalent expression object</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.replace_children": {"fullname": "sqlglot.expressions.replace_children", "modulename": "sqlglot.expressions", "qualname": "replace_children", "kind": "function", "doc": "<p>Replace children of an expression with the result of a lambda fun(child) -> exp.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">fun</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.column_table_names": {"fullname": "sqlglot.expressions.column_table_names", "modulename": "sqlglot.expressions", "qualname": "column_table_names", "kind": "function", "doc": "<p>Return all table names referenced through columns in an expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">column_table_names</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"a.b AND c.d AND c.e"</span><span class=\"p\">))</span>\n<span class=\"go\">['c', 'a']</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to find table names</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list: A list of unique names</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.table_name": {"fullname": "sqlglot.expressions.table_name", "modulename": "sqlglot.expressions", "qualname": "table_name", "kind": "function", "doc": "<p>Get the full name of a table as a string.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table (exp.Table | str):</strong> table expression node or string.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">table_name</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from a.b.c"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">find</span><span class=\"p\">(</span><span class=\"n\">exp</span><span class=\"o\">.</span><span class=\"n\">Table</span><span class=\"p\">))</span>\n<span class=\"go\">'a.b.c'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The table name.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">table</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.replace_tables": {"fullname": "sqlglot.expressions.replace_tables", "modulename": "sqlglot.expressions", "qualname": "replace_tables", "kind": "function", "doc": "<p>Replace all tables in expression according to the mapping.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression node to be transformed and replaced.</li>\n<li><strong>mapping (Dict[str, str]):</strong> mapping of table names.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">replace_tables</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from a.b"</span><span class=\"p\">),</span> <span class=\"p\">{</span><span class=\"s2\">"a.b"</span><span class=\"p\">:</span> <span class=\"s2\">"c"</span><span class=\"p\">})</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM c'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The mapped expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">mapping</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.replace_placeholders": {"fullname": "sqlglot.expressions.replace_placeholders", "modulename": "sqlglot.expressions", "qualname": "replace_placeholders", "kind": "function", "doc": "<p>Replace placeholders in an expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression node to be transformed and replaced.</li>\n<li><strong>args:</strong> positional names that will substitute unnamed placeholders in the given order.</li>\n<li><strong>kwargs:</strong> keyword arguments that will substitute named placeholders.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">exp</span><span class=\"p\">,</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">replace_placeholders</span><span class=\"p\">(</span>\n<span class=\"gp\">... </span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from :tbl where ? = ?"</span><span class=\"p\">),</span> <span class=\"s2\">"a"</span><span class=\"p\">,</span> <span class=\"s2\">"b"</span><span class=\"p\">,</span> <span class=\"n\">tbl</span><span class=\"o\">=</span><span class=\"s2\">"foo"</span>\n<span class=\"gp\">... </span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM foo WHERE a = b'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The mapped expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.expand": {"fullname": "sqlglot.expressions.expand", "modulename": "sqlglot.expressions", "qualname": "expand", "kind": "function", "doc": "<p>Transforms an expression by expanding all referenced sources into subqueries.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expand</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from x AS z"</span><span class=\"p\">),</span> <span class=\"p\">{</span><span class=\"s2\">"x"</span><span class=\"p\">:</span> <span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"select * from y"</span><span class=\"p\">)})</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> The expression to expand.</li>\n<li><strong>sources:</strong> A dictionary of name to Subqueryables.</li>\n<li><strong>copy:</strong> Whether or not to copy the expression during transformation. Defaults to True.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">sources</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subqueryable</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">copy</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.func": {"fullname": "sqlglot.expressions.func", "modulename": "sqlglot.expressions", "qualname": "func", "kind": "function", "doc": "<p>Returns a Func expression.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">func</span><span class=\"p\">(</span><span class=\"s2\">"abs"</span><span class=\"p\">,</span> <span class=\"mi\">5</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'ABS(5)'</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">func</span><span class=\"p\">(</span><span class=\"s2\">"cast"</span><span class=\"p\">,</span> <span class=\"n\">this</span><span class=\"o\">=</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"n\">to</span><span class=\"o\">=</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">build</span><span class=\"p\">(</span><span class=\"s2\">"DOUBLE"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'CAST(5 AS DOUBLE)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>name:</strong> the name of the function to build.</li>\n<li><strong>args:</strong> the args used to instantiate the function of interest.</li>\n<li><strong>dialect:</strong> the source dialect.</li>\n<li><strong>kwargs:</strong> the kwargs used to instantiate the function of interest.</li>\n</ul>\n\n<h6 id=\"note\">Note:</h6>\n\n<blockquote>\n <p>The arguments <code>args</code> and <code>kwargs</code> are mutually exclusive.</p>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>An instance of the function of interest, or an anonymous function, if <code>name</code> doesn't\n correspond to an existing <code>sqlglot.expressions.Func</code> class.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">args</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Func</span>:</span></span>", "funcdef": "def"}, "sqlglot.expressions.true": {"fullname": "sqlglot.expressions.true", "modulename": "sqlglot.expressions", "qualname": "true", "kind": "function", "doc": "<p>Returns a true Boolean expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.false": {"fullname": "sqlglot.expressions.false", "modulename": "sqlglot.expressions", "qualname": "false", "kind": "function", "doc": "<p>Returns a false Boolean expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.expressions.null": {"fullname": "sqlglot.expressions.null", "modulename": "sqlglot.expressions", "qualname": "null", "kind": "function", "doc": "<p>Returns a Null expression.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.generator": {"fullname": "sqlglot.generator", "modulename": "sqlglot.generator", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.generator.Generator": {"fullname": "sqlglot.generator.Generator", "modulename": "sqlglot.generator", "qualname": "Generator", "kind": "class", "doc": "<p>Generator interprets the given syntax tree and produces a SQL string as an output.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>time_mapping (dict):</strong> the dictionary of custom time mappings in which the key\nrepresents a python time format and the output the target time format</li>\n<li><strong>time_trie (trie):</strong> a trie of the time_mapping keys</li>\n<li><strong>pretty (bool):</strong> if set to True the returned string will be formatted. Default: False.</li>\n<li><strong>quote_start (str):</strong> specifies which starting character to use to delimit quotes. Default: '.</li>\n<li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li>\n<li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: \".</li>\n<li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: \".</li>\n<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li>\n<li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li>\n<li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li>\n<li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: \".</li>\n<li><strong>pad (int):</strong> determines padding in a formatted string. Default: 2.</li>\n<li><strong>indent (int):</strong> determines the size of indentation in a formatted string. Default: 4.</li>\n<li><strong>unnest_column_only (bool):</strong> if true unnest table aliases are considered only as column aliases</li>\n<li><strong>normalize_functions (str):</strong> normalize function names, \"upper\", \"lower\", or None\nDefault: \"upper\"</li>\n<li><strong>alias_post_tablesample (bool):</strong> if the table alias comes after tablesample\nDefault: False</li>\n<li><strong>unsupported_level (ErrorLevel):</strong> determines the generator's behavior when it encounters\nunsupported expressions. Default ErrorLevel.WARN.</li>\n<li><strong>null_ordering (str):</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n<li><strong>max_unsupported (int):</strong> Maximum number of unsupported messages to include in a raised UnsupportedError.\nThis is only relevant if unsupported_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>leading_comma (bool):</strong> if the the comma is leading or trailing in select statements\nDefault: False</li>\n<li><strong>max_text_width:</strong> The max number of characters in a segment before creating new lines in pretty mode.\nThe default is on the smaller end because the length only represents a segment and not the true\nline length.\nDefault: 80</li>\n<li><strong>comments:</strong> Whether or not to preserve comments in the output SQL code.\nDefault: True</li>\n</ul>\n"}, "sqlglot.generator.Generator.__init__": {"fullname": "sqlglot.generator.Generator.__init__", "modulename": "sqlglot.generator", "qualname": "Generator.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">time_mapping</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">time_trie</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">pretty</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quote_start</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">quote_end</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identifier_start</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identifier_end</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identify</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">normalize</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">string_escape</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">identifier_escape</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">pad</span><span class=\"o\">=</span><span class=\"mi\">2</span>,</span><span class=\"param\">\t<span class=\"n\">indent</span><span class=\"o\">=</span><span class=\"mi\">2</span>,</span><span class=\"param\">\t<span class=\"n\">index_offset</span><span class=\"o\">=</span><span class=\"mi\">0</span>,</span><span class=\"param\">\t<span class=\"n\">unnest_column_only</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">alias_post_tablesample</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">normalize_functions</span><span class=\"o\">=</span><span class=\"s1\">'upper'</span>,</span><span class=\"param\">\t<span class=\"n\">unsupported_level</span><span class=\"o\">=<</span><span class=\"n\">ErrorLevel</span><span class=\"o\">.</span><span class=\"n\">WARN</span><span class=\"p\">:</span> <span class=\"s1\">'WARN'</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">null_ordering</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">max_unsupported</span><span class=\"o\">=</span><span class=\"mi\">3</span>,</span><span class=\"param\">\t<span class=\"n\">leading_comma</span><span class=\"o\">=</span><span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">max_text_width</span><span class=\"o\">=</span><span class=\"mi\">80</span>,</span><span class=\"param\">\t<span class=\"n\">comments</span><span class=\"o\">=</span><span class=\"kc\">True</span></span>)</span>"}, "sqlglot.generator.Generator.generate": {"fullname": "sqlglot.generator.Generator.generate", "modulename": "sqlglot.generator", "qualname": "Generator.generate", "kind": "function", "doc": "<p>Generates a SQL string by interpreting the given syntax tree.</p>\n\n<p>Args\n expression: the syntax tree.</p>\n\n<p>Returns\n the SQL string.</p>\n", "signature": "<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\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.unsupported": {"fullname": "sqlglot.generator.Generator.unsupported", "modulename": "sqlglot.generator", "qualname": "Generator.unsupported", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sep": {"fullname": "sqlglot.generator.Generator.sep", "modulename": "sqlglot.generator", "qualname": "Generator.sep", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.seg": {"fullname": "sqlglot.generator.Generator.seg", "modulename": "sqlglot.generator", "qualname": "Generator.seg", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.pad_comment": {"fullname": "sqlglot.generator.Generator.pad_comment", "modulename": "sqlglot.generator", "qualname": "Generator.pad_comment", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">comment</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.maybe_comment": {"fullname": "sqlglot.generator.Generator.maybe_comment", "modulename": "sqlglot.generator", "qualname": "Generator.maybe_comment", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.wrap": {"fullname": "sqlglot.generator.Generator.wrap", "modulename": "sqlglot.generator", "qualname": "Generator.wrap", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span> <span class=\"o\">|</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.no_identify": {"fullname": "sqlglot.generator.Generator.no_identify", "modulename": "sqlglot.generator", "qualname": "Generator.no_identify", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">func</span><span class=\"p\">:</span> <span class=\"n\">Callable</span><span class=\"p\">[</span><span class=\"o\">...</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.normalize_func": {"fullname": "sqlglot.generator.Generator.normalize_func", "modulename": "sqlglot.generator", "qualname": "Generator.normalize_func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.indent": {"fullname": "sqlglot.generator.Generator.indent", "modulename": "sqlglot.generator", "qualname": "Generator.indent", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">level</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>,</span><span class=\"param\">\t<span class=\"n\">pad</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">skip_first</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">skip_last</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sql": {"fullname": "sqlglot.generator.Generator.sql", "modulename": "sqlglot.generator", "qualname": "Generator.sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">key</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">comment</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.uncache_sql": {"fullname": "sqlglot.generator.Generator.uncache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uncache_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Uncache</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cache_sql": {"fullname": "sqlglot.generator.Generator.cache_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cache_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cache</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.characterset_sql": {"fullname": "sqlglot.generator.Generator.characterset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.characterset_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CharacterSet</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.column_sql": {"fullname": "sqlglot.generator.Generator.column_sql", "modulename": "sqlglot.generator", "qualname": "Generator.column_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.columndef_sql": {"fullname": "sqlglot.generator.Generator.columndef_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columndef_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ColumnDef</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.columnconstraint_sql": {"fullname": "sqlglot.generator.Generator.columnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.columnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.autoincrementcolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.compresscolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.compresscolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CompressColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.generatedasidentitycolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GeneratedAsIdentityColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.notnullcolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.notnullcolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NotNullColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.primarykeycolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykeycolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">PrimaryKeyColumnConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"fullname": "sqlglot.generator.Generator.uniquecolumnconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.uniquecolumnconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.create_sql": {"fullname": "sqlglot.generator.Generator.create_sql", "modulename": "sqlglot.generator", "qualname": "Generator.create_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Create</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.describe_sql": {"fullname": "sqlglot.generator.Generator.describe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.describe_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Describe</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.prepend_ctes": {"fullname": "sqlglot.generator.Generator.prepend_ctes", "modulename": "sqlglot.generator", "qualname": "Generator.prepend_ctes", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.with_sql": {"fullname": "sqlglot.generator.Generator.with_sql", "modulename": "sqlglot.generator", "qualname": "Generator.with_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">With</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cte_sql": {"fullname": "sqlglot.generator.Generator.cte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tablealias_sql": {"fullname": "sqlglot.generator.Generator.tablealias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablealias_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableAlias</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitstring_sql": {"fullname": "sqlglot.generator.Generator.bitstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitstring_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitString</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.hexstring_sql": {"fullname": "sqlglot.generator.Generator.hexstring_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hexstring_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">HexString</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.datatype_sql": {"fullname": "sqlglot.generator.Generator.datatype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datatype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.directory_sql": {"fullname": "sqlglot.generator.Generator.directory_sql", "modulename": "sqlglot.generator", "qualname": "Generator.directory_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Directory</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.delete_sql": {"fullname": "sqlglot.generator.Generator.delete_sql", "modulename": "sqlglot.generator", "qualname": "Generator.delete_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Delete</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.drop_sql": {"fullname": "sqlglot.generator.Generator.drop_sql", "modulename": "sqlglot.generator", "qualname": "Generator.drop_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Drop</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.except_sql": {"fullname": "sqlglot.generator.Generator.except_sql", "modulename": "sqlglot.generator", "qualname": "Generator.except_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Except</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.except_op": {"fullname": "sqlglot.generator.Generator.except_op", "modulename": "sqlglot.generator", "qualname": "Generator.except_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Except</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.fetch_sql": {"fullname": "sqlglot.generator.Generator.fetch_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fetch_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Fetch</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.filter_sql": {"fullname": "sqlglot.generator.Generator.filter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.filter_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Filter</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.hint_sql": {"fullname": "sqlglot.generator.Generator.hint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.hint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Hint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.index_sql": {"fullname": "sqlglot.generator.Generator.index_sql", "modulename": "sqlglot.generator", "qualname": "Generator.index_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Index</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.identifier_sql": {"fullname": "sqlglot.generator.Generator.identifier_sql", "modulename": "sqlglot.generator", "qualname": "Generator.identifier_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.national_sql": {"fullname": "sqlglot.generator.Generator.national_sql", "modulename": "sqlglot.generator", "qualname": "Generator.national_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">National</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.partition_sql": {"fullname": "sqlglot.generator.Generator.partition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.partition_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Partition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.properties_sql": {"fullname": "sqlglot.generator.Generator.properties_sql", "modulename": "sqlglot.generator", "qualname": "Generator.properties_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.root_properties": {"fullname": "sqlglot.generator.Generator.root_properties", "modulename": "sqlglot.generator", "qualname": "Generator.root_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.properties": {"fullname": "sqlglot.generator.Generator.properties", "modulename": "sqlglot.generator", "qualname": "Generator.properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span>,</span><span class=\"param\">\t<span class=\"n\">prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">''</span>,</span><span class=\"param\">\t<span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">', '</span>,</span><span class=\"param\">\t<span class=\"n\">suffix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">''</span>,</span><span class=\"param\">\t<span class=\"n\">wrapped</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.with_properties": {"fullname": "sqlglot.generator.Generator.with_properties", "modulename": "sqlglot.generator", "qualname": "Generator.with_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.locate_properties": {"fullname": "sqlglot.generator.Generator.locate_properties", "modulename": "sqlglot.generator", "qualname": "Generator.locate_properties", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">properties</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Properties</span><span class=\"o\">.</span><span class=\"n\">Location</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Property</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.property_sql": {"fullname": "sqlglot.generator.Generator.property_sql", "modulename": "sqlglot.generator", "qualname": "Generator.property_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Property</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.likeproperty_sql": {"fullname": "sqlglot.generator.Generator.likeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.likeproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LikeProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.fallbackproperty_sql": {"fullname": "sqlglot.generator.Generator.fallbackproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.fallbackproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">FallbackProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.journalproperty_sql": {"fullname": "sqlglot.generator.Generator.journalproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.journalproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JournalProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.freespaceproperty_sql": {"fullname": "sqlglot.generator.Generator.freespaceproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.freespaceproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">FreespaceProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"fullname": "sqlglot.generator.Generator.afterjournalproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.afterjournalproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AfterJournalProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.checksumproperty_sql": {"fullname": "sqlglot.generator.Generator.checksumproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.checksumproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ChecksumProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"fullname": "sqlglot.generator.Generator.mergeblockratioproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mergeblockratioproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">MergeBlockRatioProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"fullname": "sqlglot.generator.Generator.datablocksizeproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.datablocksizeproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataBlocksizeProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"fullname": "sqlglot.generator.Generator.blockcompressionproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.blockcompressionproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BlockCompressionProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"fullname": "sqlglot.generator.Generator.isolatedloadingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.isolatedloadingproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">IsolatedLoadingProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lockingproperty_sql": {"fullname": "sqlglot.generator.Generator.lockingproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lockingproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LockingProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.withdataproperty_sql": {"fullname": "sqlglot.generator.Generator.withdataproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withdataproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">WithDataProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.insert_sql": {"fullname": "sqlglot.generator.Generator.insert_sql", "modulename": "sqlglot.generator", "qualname": "Generator.insert_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Insert</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_sql": {"fullname": "sqlglot.generator.Generator.intersect_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Intersect</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.intersect_op": {"fullname": "sqlglot.generator.Generator.intersect_op", "modulename": "sqlglot.generator", "qualname": "Generator.intersect_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Intersect</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.introducer_sql": {"fullname": "sqlglot.generator.Generator.introducer_sql", "modulename": "sqlglot.generator", "qualname": "Generator.introducer_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Introducer</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.pseudotype_sql": {"fullname": "sqlglot.generator.Generator.pseudotype_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pseudotype_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">PseudoType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.returning_sql": {"fullname": "sqlglot.generator.Generator.returning_sql", "modulename": "sqlglot.generator", "qualname": "Generator.returning_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Returning</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"fullname": "sqlglot.generator.Generator.rowformatdelimitedproperty_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rowformatdelimitedproperty_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RowFormatDelimitedProperty</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.table_sql": {"fullname": "sqlglot.generator.Generator.table_sql", "modulename": "sqlglot.generator", "qualname": "Generator.table_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' AS '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tablesample_sql": {"fullname": "sqlglot.generator.Generator.tablesample_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tablesample_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TableSample</span>,</span><span class=\"param\">\t<span class=\"n\">seed_prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'SEED'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.pivot_sql": {"fullname": "sqlglot.generator.Generator.pivot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.pivot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Pivot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tuple_sql": {"fullname": "sqlglot.generator.Generator.tuple_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tuple_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Tuple</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.update_sql": {"fullname": "sqlglot.generator.Generator.update_sql", "modulename": "sqlglot.generator", "qualname": "Generator.update_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Update</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.values_sql": {"fullname": "sqlglot.generator.Generator.values_sql", "modulename": "sqlglot.generator", "qualname": "Generator.values_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Values</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.var_sql": {"fullname": "sqlglot.generator.Generator.var_sql", "modulename": "sqlglot.generator", "qualname": "Generator.var_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Var</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.into_sql": {"fullname": "sqlglot.generator.Generator.into_sql", "modulename": "sqlglot.generator", "qualname": "Generator.into_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Into</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.from_sql": {"fullname": "sqlglot.generator.Generator.from_sql", "modulename": "sqlglot.generator", "qualname": "Generator.from_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">From</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.group_sql": {"fullname": "sqlglot.generator.Generator.group_sql", "modulename": "sqlglot.generator", "qualname": "Generator.group_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Group</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.having_sql": {"fullname": "sqlglot.generator.Generator.having_sql", "modulename": "sqlglot.generator", "qualname": "Generator.having_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Having</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.join_sql": {"fullname": "sqlglot.generator.Generator.join_sql", "modulename": "sqlglot.generator", "qualname": "Generator.join_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Join</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lambda_sql": {"fullname": "sqlglot.generator.Generator.lambda_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lambda_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Lambda</span>,</span><span class=\"param\">\t<span class=\"n\">arrow_sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'->'</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lateral_sql": {"fullname": "sqlglot.generator.Generator.lateral_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lateral_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Lateral</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.limit_sql": {"fullname": "sqlglot.generator.Generator.limit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.limit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Limit</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.offset_sql": {"fullname": "sqlglot.generator.Generator.offset_sql", "modulename": "sqlglot.generator", "qualname": "Generator.offset_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Offset</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.setitem_sql": {"fullname": "sqlglot.generator.Generator.setitem_sql", "modulename": "sqlglot.generator", "qualname": "Generator.setitem_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SetItem</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.set_sql": {"fullname": "sqlglot.generator.Generator.set_sql", "modulename": "sqlglot.generator", "qualname": "Generator.set_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Set</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lock_sql": {"fullname": "sqlglot.generator.Generator.lock_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lock_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Lock</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.literal_sql": {"fullname": "sqlglot.generator.Generator.literal_sql", "modulename": "sqlglot.generator", "qualname": "Generator.literal_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Literal</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.loaddata_sql": {"fullname": "sqlglot.generator.Generator.loaddata_sql", "modulename": "sqlglot.generator", "qualname": "Generator.loaddata_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LoadData</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.null_sql": {"fullname": "sqlglot.generator.Generator.null_sql", "modulename": "sqlglot.generator", "qualname": "Generator.null_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">_</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.boolean_sql": {"fullname": "sqlglot.generator.Generator.boolean_sql", "modulename": "sqlglot.generator", "qualname": "Generator.boolean_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Boolean</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.order_sql": {"fullname": "sqlglot.generator.Generator.order_sql", "modulename": "sqlglot.generator", "qualname": "Generator.order_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Order</span>, </span><span class=\"param\"><span class=\"n\">flat</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cluster_sql": {"fullname": "sqlglot.generator.Generator.cluster_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cluster_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cluster</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.distribute_sql": {"fullname": "sqlglot.generator.Generator.distribute_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distribute_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Distribute</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sort_sql": {"fullname": "sqlglot.generator.Generator.sort_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sort_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Sort</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.ordered_sql": {"fullname": "sqlglot.generator.Generator.ordered_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ordered_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Ordered</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.matchrecognize_sql": {"fullname": "sqlglot.generator.Generator.matchrecognize_sql", "modulename": "sqlglot.generator", "qualname": "Generator.matchrecognize_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">MatchRecognize</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.query_modifiers": {"fullname": "sqlglot.generator.Generator.query_modifiers", "modulename": "sqlglot.generator", "qualname": "Generator.query_modifiers", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">sqls</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.select_sql": {"fullname": "sqlglot.generator.Generator.select_sql", "modulename": "sqlglot.generator", "qualname": "Generator.select_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Select</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.schema_sql": {"fullname": "sqlglot.generator.Generator.schema_sql", "modulename": "sqlglot.generator", "qualname": "Generator.schema_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Schema</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.star_sql": {"fullname": "sqlglot.generator.Generator.star_sql", "modulename": "sqlglot.generator", "qualname": "Generator.star_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Star</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.structkwarg_sql": {"fullname": "sqlglot.generator.Generator.structkwarg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.structkwarg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">StructKwarg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.parameter_sql": {"fullname": "sqlglot.generator.Generator.parameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.parameter_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Parameter</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sessionparameter_sql": {"fullname": "sqlglot.generator.Generator.sessionparameter_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sessionparameter_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SessionParameter</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.placeholder_sql": {"fullname": "sqlglot.generator.Generator.placeholder_sql", "modulename": "sqlglot.generator", "qualname": "Generator.placeholder_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Placeholder</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.subquery_sql": {"fullname": "sqlglot.generator.Generator.subquery_sql", "modulename": "sqlglot.generator", "qualname": "Generator.subquery_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subquery</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">' AS '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.qualify_sql": {"fullname": "sqlglot.generator.Generator.qualify_sql", "modulename": "sqlglot.generator", "qualname": "Generator.qualify_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Qualify</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.union_sql": {"fullname": "sqlglot.generator.Generator.union_sql", "modulename": "sqlglot.generator", "qualname": "Generator.union_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Union</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.union_op": {"fullname": "sqlglot.generator.Generator.union_op", "modulename": "sqlglot.generator", "qualname": "Generator.union_op", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Union</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.unnest_sql": {"fullname": "sqlglot.generator.Generator.unnest_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unnest_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unnest</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.where_sql": {"fullname": "sqlglot.generator.Generator.where_sql", "modulename": "sqlglot.generator", "qualname": "Generator.where_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Where</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.window_sql": {"fullname": "sqlglot.generator.Generator.window_sql", "modulename": "sqlglot.generator", "qualname": "Generator.window_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Window</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.partition_by_sql": {"fullname": "sqlglot.generator.Generator.partition_by_sql", "modulename": "sqlglot.generator", "qualname": "Generator.partition_by_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Window</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">MatchRecognize</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.window_spec_sql": {"fullname": "sqlglot.generator.Generator.window_spec_sql", "modulename": "sqlglot.generator", "qualname": "Generator.window_spec_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">WindowSpec</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.withingroup_sql": {"fullname": "sqlglot.generator.Generator.withingroup_sql", "modulename": "sqlglot.generator", "qualname": "Generator.withingroup_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">WithinGroup</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.between_sql": {"fullname": "sqlglot.generator.Generator.between_sql", "modulename": "sqlglot.generator", "qualname": "Generator.between_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Between</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bracket_sql": {"fullname": "sqlglot.generator.Generator.bracket_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bracket_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Bracket</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.all_sql": {"fullname": "sqlglot.generator.Generator.all_sql", "modulename": "sqlglot.generator", "qualname": "Generator.all_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">All</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.any_sql": {"fullname": "sqlglot.generator.Generator.any_sql", "modulename": "sqlglot.generator", "qualname": "Generator.any_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.exists_sql": {"fullname": "sqlglot.generator.Generator.exists_sql", "modulename": "sqlglot.generator", "qualname": "Generator.exists_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Exists</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.case_sql": {"fullname": "sqlglot.generator.Generator.case_sql", "modulename": "sqlglot.generator", "qualname": "Generator.case_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Case</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.constraint_sql": {"fullname": "sqlglot.generator.Generator.constraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.constraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Constraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.extract_sql": {"fullname": "sqlglot.generator.Generator.extract_sql", "modulename": "sqlglot.generator", "qualname": "Generator.extract_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Extract</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.trim_sql": {"fullname": "sqlglot.generator.Generator.trim_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trim_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Trim</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.concat_sql": {"fullname": "sqlglot.generator.Generator.concat_sql", "modulename": "sqlglot.generator", "qualname": "Generator.concat_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Concat</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.check_sql": {"fullname": "sqlglot.generator.Generator.check_sql", "modulename": "sqlglot.generator", "qualname": "Generator.check_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Check</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.foreignkey_sql": {"fullname": "sqlglot.generator.Generator.foreignkey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.foreignkey_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.primarykey_sql": {"fullname": "sqlglot.generator.Generator.primarykey_sql", "modulename": "sqlglot.generator", "qualname": "Generator.primarykey_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.unique_sql": {"fullname": "sqlglot.generator.Generator.unique_sql", "modulename": "sqlglot.generator", "qualname": "Generator.unique_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unique</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.if_sql": {"fullname": "sqlglot.generator.Generator.if_sql", "modulename": "sqlglot.generator", "qualname": "Generator.if_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">If</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.in_sql": {"fullname": "sqlglot.generator.Generator.in_sql", "modulename": "sqlglot.generator", "qualname": "Generator.in_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">In</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.in_unnest_op": {"fullname": "sqlglot.generator.Generator.in_unnest_op", "modulename": "sqlglot.generator", "qualname": "Generator.in_unnest_op", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">unnest</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Unnest</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.interval_sql": {"fullname": "sqlglot.generator.Generator.interval_sql", "modulename": "sqlglot.generator", "qualname": "Generator.interval_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Interval</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.return_sql": {"fullname": "sqlglot.generator.Generator.return_sql", "modulename": "sqlglot.generator", "qualname": "Generator.return_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Return</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.reference_sql": {"fullname": "sqlglot.generator.Generator.reference_sql", "modulename": "sqlglot.generator", "qualname": "Generator.reference_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Reference</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.anonymous_sql": {"fullname": "sqlglot.generator.Generator.anonymous_sql", "modulename": "sqlglot.generator", "qualname": "Generator.anonymous_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Anonymous</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.paren_sql": {"fullname": "sqlglot.generator.Generator.paren_sql", "modulename": "sqlglot.generator", "qualname": "Generator.paren_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Paren</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.neg_sql": {"fullname": "sqlglot.generator.Generator.neg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Neg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.not_sql": {"fullname": "sqlglot.generator.Generator.not_sql", "modulename": "sqlglot.generator", "qualname": "Generator.not_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Not</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.alias_sql": {"fullname": "sqlglot.generator.Generator.alias_sql", "modulename": "sqlglot.generator", "qualname": "Generator.alias_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Alias</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.aliases_sql": {"fullname": "sqlglot.generator.Generator.aliases_sql", "modulename": "sqlglot.generator", "qualname": "Generator.aliases_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Aliases</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.attimezone_sql": {"fullname": "sqlglot.generator.Generator.attimezone_sql", "modulename": "sqlglot.generator", "qualname": "Generator.attimezone_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AtTimeZone</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.add_sql": {"fullname": "sqlglot.generator.Generator.add_sql", "modulename": "sqlglot.generator", "qualname": "Generator.add_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Add</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.and_sql": {"fullname": "sqlglot.generator.Generator.and_sql", "modulename": "sqlglot.generator", "qualname": "Generator.and_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">And</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.connector_sql": {"fullname": "sqlglot.generator.Generator.connector_sql", "modulename": "sqlglot.generator", "qualname": "Generator.connector_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Connector</span>, </span><span class=\"param\"><span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseand_sql": {"fullname": "sqlglot.generator.Generator.bitwiseand_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseand_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseAnd</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiseleftshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseleftshift_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseLeftShift</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisenot_sql": {"fullname": "sqlglot.generator.Generator.bitwisenot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisenot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseNot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiseor_sql": {"fullname": "sqlglot.generator.Generator.bitwiseor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiseor_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseOr</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"fullname": "sqlglot.generator.Generator.bitwiserightshift_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwiserightshift_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseRightShift</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.bitwisexor_sql": {"fullname": "sqlglot.generator.Generator.bitwisexor_sql", "modulename": "sqlglot.generator", "qualname": "Generator.bitwisexor_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">BitwiseXor</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.cast_sql": {"fullname": "sqlglot.generator.Generator.cast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.cast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Cast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.currentdate_sql": {"fullname": "sqlglot.generator.Generator.currentdate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.currentdate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">CurrentDate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.collate_sql": {"fullname": "sqlglot.generator.Generator.collate_sql", "modulename": "sqlglot.generator", "qualname": "Generator.collate_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Collate</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.command_sql": {"fullname": "sqlglot.generator.Generator.command_sql", "modulename": "sqlglot.generator", "qualname": "Generator.command_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Command</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.comment_sql": {"fullname": "sqlglot.generator.Generator.comment_sql", "modulename": "sqlglot.generator", "qualname": "Generator.comment_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Comment</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.transaction_sql": {"fullname": "sqlglot.generator.Generator.transaction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.transaction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Transaction</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.commit_sql": {"fullname": "sqlglot.generator.Generator.commit_sql", "modulename": "sqlglot.generator", "qualname": "Generator.commit_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Commit</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.rollback_sql": {"fullname": "sqlglot.generator.Generator.rollback_sql", "modulename": "sqlglot.generator", "qualname": "Generator.rollback_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Rollback</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.altercolumn_sql": {"fullname": "sqlglot.generator.Generator.altercolumn_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altercolumn_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AlterColumn</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.renametable_sql": {"fullname": "sqlglot.generator.Generator.renametable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.renametable_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RenameTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.altertable_sql": {"fullname": "sqlglot.generator.Generator.altertable_sql", "modulename": "sqlglot.generator", "qualname": "Generator.altertable_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AlterTable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.droppartition_sql": {"fullname": "sqlglot.generator.Generator.droppartition_sql", "modulename": "sqlglot.generator", "qualname": "Generator.droppartition_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DropPartition</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.addconstraint_sql": {"fullname": "sqlglot.generator.Generator.addconstraint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.addconstraint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">AddConstraint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.distinct_sql": {"fullname": "sqlglot.generator.Generator.distinct_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distinct_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Distinct</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.ignorenulls_sql": {"fullname": "sqlglot.generator.Generator.ignorenulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ignorenulls_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">IgnoreNulls</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.respectnulls_sql": {"fullname": "sqlglot.generator.Generator.respectnulls_sql", "modulename": "sqlglot.generator", "qualname": "Generator.respectnulls_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">RespectNulls</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.intdiv_sql": {"fullname": "sqlglot.generator.Generator.intdiv_sql", "modulename": "sqlglot.generator", "qualname": "Generator.intdiv_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">IntDiv</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.dpipe_sql": {"fullname": "sqlglot.generator.Generator.dpipe_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dpipe_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DPipe</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.div_sql": {"fullname": "sqlglot.generator.Generator.div_sql", "modulename": "sqlglot.generator", "qualname": "Generator.div_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Div</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.overlaps_sql": {"fullname": "sqlglot.generator.Generator.overlaps_sql", "modulename": "sqlglot.generator", "qualname": "Generator.overlaps_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Overlaps</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.distance_sql": {"fullname": "sqlglot.generator.Generator.distance_sql", "modulename": "sqlglot.generator", "qualname": "Generator.distance_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Distance</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.dot_sql": {"fullname": "sqlglot.generator.Generator.dot_sql", "modulename": "sqlglot.generator", "qualname": "Generator.dot_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Dot</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.eq_sql": {"fullname": "sqlglot.generator.Generator.eq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.eq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">EQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.escape_sql": {"fullname": "sqlglot.generator.Generator.escape_sql", "modulename": "sqlglot.generator", "qualname": "Generator.escape_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Escape</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.glob_sql": {"fullname": "sqlglot.generator.Generator.glob_sql", "modulename": "sqlglot.generator", "qualname": "Generator.glob_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Glob</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.gt_sql": {"fullname": "sqlglot.generator.Generator.gt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gt_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GT</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.gte_sql": {"fullname": "sqlglot.generator.Generator.gte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.gte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">GTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.ilike_sql": {"fullname": "sqlglot.generator.Generator.ilike_sql", "modulename": "sqlglot.generator", "qualname": "Generator.ilike_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ILike</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.is_sql": {"fullname": "sqlglot.generator.Generator.is_sql", "modulename": "sqlglot.generator", "qualname": "Generator.is_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Is</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.like_sql": {"fullname": "sqlglot.generator.Generator.like_sql", "modulename": "sqlglot.generator", "qualname": "Generator.like_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Like</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.similarto_sql": {"fullname": "sqlglot.generator.Generator.similarto_sql", "modulename": "sqlglot.generator", "qualname": "Generator.similarto_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">SimilarTo</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lt_sql": {"fullname": "sqlglot.generator.Generator.lt_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lt_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LT</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.lte_sql": {"fullname": "sqlglot.generator.Generator.lte_sql", "modulename": "sqlglot.generator", "qualname": "Generator.lte_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">LTE</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.mod_sql": {"fullname": "sqlglot.generator.Generator.mod_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mod_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Mod</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.mul_sql": {"fullname": "sqlglot.generator.Generator.mul_sql", "modulename": "sqlglot.generator", "qualname": "Generator.mul_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Mul</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.neq_sql": {"fullname": "sqlglot.generator.Generator.neq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.neq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NEQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeeq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeeq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeeq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NullSafeEQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.nullsafeneq_sql": {"fullname": "sqlglot.generator.Generator.nullsafeneq_sql", "modulename": "sqlglot.generator", "qualname": "Generator.nullsafeneq_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">NullSafeNEQ</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.or_sql": {"fullname": "sqlglot.generator.Generator.or_sql", "modulename": "sqlglot.generator", "qualname": "Generator.or_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Or</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.slice_sql": {"fullname": "sqlglot.generator.Generator.slice_sql", "modulename": "sqlglot.generator", "qualname": "Generator.slice_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Slice</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.sub_sql": {"fullname": "sqlglot.generator.Generator.sub_sql", "modulename": "sqlglot.generator", "qualname": "Generator.sub_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Sub</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.trycast_sql": {"fullname": "sqlglot.generator.Generator.trycast_sql", "modulename": "sqlglot.generator", "qualname": "Generator.trycast_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">TryCast</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.use_sql": {"fullname": "sqlglot.generator.Generator.use_sql", "modulename": "sqlglot.generator", "qualname": "Generator.use_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Use</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.binary": {"fullname": "sqlglot.generator.Generator.binary", "modulename": "sqlglot.generator", "qualname": "Generator.binary", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Binary</span>, </span><span class=\"param\"><span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.function_fallback_sql": {"fullname": "sqlglot.generator.Generator.function_fallback_sql", "modulename": "sqlglot.generator", "qualname": "Generator.function_fallback_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Func</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.func": {"fullname": "sqlglot.generator.Generator.func", "modulename": "sqlglot.generator", "qualname": "Generator.func", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.format_args": {"fullname": "sqlglot.generator.Generator.format_args", "modulename": "sqlglot.generator", "qualname": "Generator.format_args", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.text_width": {"fullname": "sqlglot.generator.Generator.text_width", "modulename": "sqlglot.generator", "qualname": "Generator.text_width", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">int</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.format_time": {"fullname": "sqlglot.generator.Generator.format_time", "modulename": "sqlglot.generator", "qualname": "Generator.format_time", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.expressions": {"fullname": "sqlglot.generator.Generator.expressions", "modulename": "sqlglot.generator", "qualname": "Generator.expressions", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">key</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">flat</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">indent</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">', '</span>,</span><span class=\"param\">\t<span class=\"n\">prefix</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">''</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.op_expressions": {"fullname": "sqlglot.generator.Generator.op_expressions", "modulename": "sqlglot.generator", "qualname": "Generator.op_expressions", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">flat</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.naked_property": {"fullname": "sqlglot.generator.Generator.naked_property", "modulename": "sqlglot.generator", "qualname": "Generator.naked_property", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Property</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.set_operation": {"fullname": "sqlglot.generator.Generator.set_operation", "modulename": "sqlglot.generator", "qualname": "Generator.set_operation", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>, </span><span class=\"param\"><span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tag_sql": {"fullname": "sqlglot.generator.Generator.tag_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tag_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Tag</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.token_sql": {"fullname": "sqlglot.generator.Generator.token_sql", "modulename": "sqlglot.generator", "qualname": "Generator.token_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">token_type</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">TokenType</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"fullname": "sqlglot.generator.Generator.userdefinedfunction_sql", "modulename": "sqlglot.generator", "qualname": "Generator.userdefinedfunction_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">UserDefinedFunction</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.joinhint_sql": {"fullname": "sqlglot.generator.Generator.joinhint_sql", "modulename": "sqlglot.generator", "qualname": "Generator.joinhint_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">JoinHint</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.kwarg_sql": {"fullname": "sqlglot.generator.Generator.kwarg_sql", "modulename": "sqlglot.generator", "qualname": "Generator.kwarg_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Kwarg</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.when_sql": {"fullname": "sqlglot.generator.Generator.when_sql", "modulename": "sqlglot.generator", "qualname": "Generator.when_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">When</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.merge_sql": {"fullname": "sqlglot.generator.Generator.merge_sql", "modulename": "sqlglot.generator", "qualname": "Generator.merge_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Merge</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.generator.Generator.tochar_sql": {"fullname": "sqlglot.generator.Generator.tochar_sql", "modulename": "sqlglot.generator", "qualname": "Generator.tochar_sql", "kind": "function", "doc": "<p></p>\n", "signature": "<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\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ToChar</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper": {"fullname": "sqlglot.helper", "modulename": "sqlglot.helper", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.helper.AutoName": {"fullname": "sqlglot.helper.AutoName", "modulename": "sqlglot.helper", "qualname": "AutoName", "kind": "class", "doc": "<p>This is used for creating enum classes where <code>auto()</code> is the string form of the corresponding value's name.</p>\n", "bases": "enum.Enum"}, "sqlglot.helper.seq_get": {"fullname": "sqlglot.helper.seq_get", "modulename": "sqlglot.helper", "qualname": "seq_get", "kind": "function", "doc": "<p>Returns the value in <code>seq</code> at position <code>index</code>, or <code>None</code> if <code>index</code> is out of bounds.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">seq</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">index</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.ensure_list": {"fullname": "sqlglot.helper.ensure_list", "modulename": "sqlglot.helper", "qualname": "ensure_list", "kind": "function", "doc": "<p>Ensures that a value is a list, otherwise casts or wraps it into one.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value of interest.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The value cast as a list if it's a list or a tuple, or else the value wrapped in a list.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.helper.ensure_collection": {"fullname": "sqlglot.helper.ensure_collection", "modulename": "sqlglot.helper", "qualname": "ensure_collection", "kind": "function", "doc": "<p>Ensures that a value is a collection (excluding <code>str</code> and <code>bytes</code>), otherwise wraps it into a list.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value of interest.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The value if it's a collection, or else the value wrapped in a list.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.helper.csv": {"fullname": "sqlglot.helper.csv", "modulename": "sqlglot.helper", "qualname": "csv", "kind": "function", "doc": "<p>Formats any number of string arguments as CSV.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>args:</strong> the string arguments to format.</li>\n<li><strong>sep:</strong> the argument separator.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The arguments formatted as a CSV string.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"o\">*</span><span class=\"n\">args</span>, </span><span class=\"param\"><span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">', '</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.subclasses": {"fullname": "sqlglot.helper.subclasses", "modulename": "sqlglot.helper", "qualname": "subclasses", "kind": "function", "doc": "<p>Returns all subclasses for a collection of classes, possibly excluding some of them.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>module_name:</strong> the name of the module to search for subclasses in.</li>\n<li><strong>classes:</strong> class(es) we want to find the subclasses of.</li>\n<li><strong>exclude:</strong> class(es) we want to exclude from the returned list.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The target subclasses.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">module_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">classes</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">exclude</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"o\">...</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"p\">()</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Type</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.apply_index_offset": {"fullname": "sqlglot.helper.apply_index_offset", "modulename": "sqlglot.helper", "qualname": "apply_index_offset", "kind": "function", "doc": "<p>Applies an offset to a given integer literal expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expressions:</strong> the expression the offset will be applied to, wrapped in a list.</li>\n<li><strong>offset:</strong> the offset that will be applied.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The original expression with the offset applied to it, wrapped in a list. If the provided\n <code>expressions</code> argument contains more than one expressions, it's returned unaffected.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expressions</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]]</span>, </span><span class=\"param\"><span class=\"n\">offset</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.camel_to_snake_case": {"fullname": "sqlglot.helper.camel_to_snake_case", "modulename": "sqlglot.helper", "qualname": "camel_to_snake_case", "kind": "function", "doc": "<p>Converts <code>name</code> from camelCase to snake_case and returns the result.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.while_changing": {"fullname": "sqlglot.helper.while_changing", "modulename": "sqlglot.helper", "qualname": "while_changing", "kind": "function", "doc": "<p>Applies a transformation to a given expression until a fix point is reached.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to be transformed.</li>\n<li><strong>func:</strong> the transformation to be applied.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">func</span><span class=\"p\">:</span> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]],</span> <span class=\"o\">~</span><span class=\"n\">E</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"o\">~</span><span class=\"n\">E</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.tsort": {"fullname": "sqlglot.helper.tsort", "modulename": "sqlglot.helper", "qualname": "tsort", "kind": "function", "doc": "<p>Sorts a given directed acyclic graph in topological order.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>dag:</strong> the graph to be sorted.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A list that contains all of the graph's nodes in topological order.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">dag</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.open_file": {"fullname": "sqlglot.helper.open_file", "modulename": "sqlglot.helper", "qualname": "open_file", "kind": "function", "doc": "<p>Open a file that may be compressed as gzip and return it in universal newline mode.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">file_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <class 'TextIO'>:</span></span>", "funcdef": "def"}, "sqlglot.helper.csv_reader": {"fullname": "sqlglot.helper.csv_reader", "modulename": "sqlglot.helper", "qualname": "csv_reader", "kind": "function", "doc": "<p>Returns a csv reader given the expression <code>READ_CSV(name, ['delimiter', '|', ...])</code>.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>read_csv:</strong> a <code>ReadCSV</code> function call</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>A python csv reader.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">read_csv</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">ReadCSV</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Any</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.find_new_name": {"fullname": "sqlglot.helper.find_new_name", "modulename": "sqlglot.helper", "qualname": "find_new_name", "kind": "function", "doc": "<p>Searches for a new name.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>taken:</strong> a collection of taken names.</li>\n<li><strong>base:</strong> base name to alter.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The new, available name.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">taken</span><span class=\"p\">:</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>, </span><span class=\"param\"><span class=\"n\">base</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.object_to_dict": {"fullname": "sqlglot.helper.object_to_dict", "modulename": "sqlglot.helper", "qualname": "object_to_dict", "kind": "function", "doc": "<p>Returns a dictionary created from an object's attributes.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">obj</span><span class=\"p\">:</span> <span class=\"n\">Any</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Dict</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.split_num_words": {"fullname": "sqlglot.helper.split_num_words", "modulename": "sqlglot.helper", "qualname": "split_num_words", "kind": "function", "doc": "<p>Perform a split on a value and return N words as a result with <code>None</code> used for words that don't exist.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value to be split.</li>\n<li><strong>sep:</strong> the value to use to split on.</li>\n<li><strong>min_num_words:</strong> the minimum number of words that are going to be in the result.</li>\n<li><strong>fill_from_start:</strong> indicates that if <code>None</code> values should be inserted at the start or end of the list.</li>\n</ul>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">split_num_words</span><span class=\"p\">(</span><span class=\"s2\">"db.table"</span><span class=\"p\">,</span> <span class=\"s2\">"."</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">)</span>\n<span class=\"go\">[None, 'db', 'table']</span>\n<span class=\"gp\">>>> </span><span class=\"n\">split_num_words</span><span class=\"p\">(</span><span class=\"s2\">"db.table"</span><span class=\"p\">,</span> <span class=\"s2\">"."</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"n\">fill_from_start</span><span class=\"o\">=</span><span class=\"kc\">False</span><span class=\"p\">)</span>\n<span class=\"go\">['db', 'table', None]</span>\n<span class=\"gp\">>>> </span><span class=\"n\">split_num_words</span><span class=\"p\">(</span><span class=\"s2\">"db.table"</span><span class=\"p\">,</span> <span class=\"s2\">"."</span><span class=\"p\">,</span> <span class=\"mi\">1</span><span class=\"p\">)</span>\n<span class=\"go\">['db', 'table']</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of words returned by <code>split</code>, possibly augmented by a number of <code>None</code> values.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">sep</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">min_num_words</span><span class=\"p\">:</span> <span class=\"nb\">int</span>,</span><span class=\"param\">\t<span class=\"n\">fill_from_start</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.is_iterable": {"fullname": "sqlglot.helper.is_iterable", "modulename": "sqlglot.helper", "qualname": "is_iterable", "kind": "function", "doc": "<p>Checks if the value is an iterable, excluding the types <code>str</code> and <code>bytes</code>.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">is_iterable</span><span class=\"p\">([</span><span class=\"mi\">1</span><span class=\"p\">,</span><span class=\"mi\">2</span><span class=\"p\">])</span>\n<span class=\"go\">True</span>\n<span class=\"gp\">>>> </span><span class=\"n\">is_iterable</span><span class=\"p\">(</span><span class=\"s2\">"test"</span><span class=\"p\">)</span>\n<span class=\"go\">False</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>value:</strong> the value to check if it is an iterable.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A <code>bool</code> value indicating if it is an iterable.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">value</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.flatten": {"fullname": "sqlglot.helper.flatten", "modulename": "sqlglot.helper", "qualname": "flatten", "kind": "function", "doc": "<p>Flattens an iterable that can contain both iterable and non-iterable elements. Objects of\ntype <code>str</code> and <code>bytes</code> are not regarded as iterables.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">flatten</span><span class=\"p\">([[</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">],</span> <span class=\"mi\">3</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"mi\">4</span><span class=\"p\">},</span> <span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">,</span> <span class=\"s2\">"bla"</span><span class=\"p\">)]))</span>\n<span class=\"go\">[1, 2, 3, 4, 5, 'bla']</span>\n<span class=\"gp\">>>> </span><span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">flatten</span><span class=\"p\">([</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">2</span><span class=\"p\">,</span> <span class=\"mi\">3</span><span class=\"p\">]))</span>\n<span class=\"go\">[1, 2, 3]</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>values:</strong> the value to be flattened.</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>Non-iterable elements in <code>values</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">values</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">],</span> <span class=\"n\">Any</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"n\">Any</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.count_params": {"fullname": "sqlglot.helper.count_params", "modulename": "sqlglot.helper", "qualname": "count_params", "kind": "function", "doc": "<p>Returns the number of formal parameters expected by a function, without counting \"self\"\nand \"cls\", in case of instance and class methods, respectively.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">function</span><span class=\"p\">:</span> <span class=\"n\">Callable</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">int</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.dict_depth": {"fullname": "sqlglot.helper.dict_depth", "modulename": "sqlglot.helper", "qualname": "dict_depth", "kind": "function", "doc": "<p>Get the nesting depth of a dictionary.</p>\n\n<h6 id=\"for-example\">For example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">(</span><span class=\"kc\">None</span><span class=\"p\">)</span>\n<span class=\"go\">0</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({})</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"s2\">"b"</span><span class=\"p\">})</span>\n<span class=\"go\">1</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"p\">{}})</span>\n<span class=\"go\">2</span>\n<span class=\"gp\">>>> </span><span class=\"n\">dict_depth</span><span class=\"p\">({</span><span class=\"s2\">"a"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"b"</span><span class=\"p\">:</span> <span class=\"p\">{}}})</span>\n<span class=\"go\">3</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>d (dict):</strong> dictionary</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>int: depth</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">d</span><span class=\"p\">:</span> <span class=\"n\">Dict</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">int</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.first": {"fullname": "sqlglot.helper.first", "modulename": "sqlglot.helper", "qualname": "first", "kind": "function", "doc": "<p>Returns the first element from an iterable.</p>\n\n<p>Useful for sets.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">it</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"o\">~</span><span class=\"n\">T</span>:</span></span>", "funcdef": "def"}, "sqlglot.helper.should_identify": {"fullname": "sqlglot.helper.should_identify", "modulename": "sqlglot.helper", "qualname": "should_identify", "kind": "function", "doc": "<p>Checks if text should be identified given an identify option.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>text:</strong> the text to check.</li>\n<li><strong>identify:</strong> \"always\" | True - always returns true, \"safe\" - true if no upper case</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Whether or not a string should be identified.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">text</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">identify</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"nb\">bool</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">bool</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage": {"fullname": "sqlglot.lineage", "modulename": "sqlglot.lineage", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.lineage.Node": {"fullname": "sqlglot.lineage.Node", "modulename": "sqlglot.lineage", "qualname": "Node", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.lineage.Node.__init__": {"fullname": "sqlglot.lineage.Node.__init__", "modulename": "sqlglot.lineage", "qualname": "Node.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">name</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">source</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">downstream</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"o\"><</span><span class=\"n\">factory</span><span class=\"o\">></span></span>)</span>"}, "sqlglot.lineage.Node.walk": {"fullname": "sqlglot.lineage.Node.walk", "modulename": "sqlglot.lineage", "qualname": "Node.walk", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Iterator</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage.Node.to_html": {"fullname": "sqlglot.lineage.Node.to_html", "modulename": "sqlglot.lineage", "qualname": "Node.to_html", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">opts</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">LineageHTML</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage.lineage": {"fullname": "sqlglot.lineage.lineage", "modulename": "sqlglot.lineage", "qualname": "lineage", "kind": "function", "doc": "<p>Build the lineage graph for a column of a SQL query.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>column:</strong> The column to build the lineage for.</li>\n<li><strong>sql:</strong> The SQL string or expression.</li>\n<li><strong>schema:</strong> The schema of tables.</li>\n<li><strong>sources:</strong> A mapping of queries which will be used to continue building lineage.</li>\n<li><strong>rules:</strong> Optimizer rules to apply, by default only qualifying tables and columns.</li>\n<li><strong>dialect:</strong> The dialect of input SQL.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A lineage node.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span>,</span><span class=\"param\">\t<span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">sources</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Subqueryable</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">rules</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Callable</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_tables</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87be8c0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_columns</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bd7e0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">expand_laterals</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87afeb0</span><span class=\"o\">></span><span class=\"p\">)</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span>:</span></span>", "funcdef": "def"}, "sqlglot.lineage.LineageHTML": {"fullname": "sqlglot.lineage.LineageHTML", "modulename": "sqlglot.lineage", "qualname": "LineageHTML", "kind": "class", "doc": "<p>Node to HTML generator using vis.js.</p>\n\n<p><a href=\"https://visjs.github.io/vis-network/docs/network/\">https://visjs.github.io/vis-network/docs/network/</a></p>\n"}, "sqlglot.lineage.LineageHTML.__init__": {"fullname": "sqlglot.lineage.LineageHTML.__init__", "modulename": "sqlglot.lineage", "qualname": "LineageHTML.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">lineage</span><span class=\"o\">.</span><span class=\"n\">Node</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">imports</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">opts</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span>)</span>"}, "sqlglot.optimizer": {"fullname": "sqlglot.optimizer", "modulename": "sqlglot.optimizer", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.annotate_types": {"fullname": "sqlglot.optimizer.annotate_types", "modulename": "sqlglot.optimizer.annotate_types", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.annotate_types.annotate_types": {"fullname": "sqlglot.optimizer.annotate_types.annotate_types", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "annotate_types", "kind": "function", "doc": "<p>Recursively infer & annotate types in an expression syntax tree against a schema.\nAssumes that we've already executed the optimizer's qualify_columns step.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">"y"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"cola"</span><span class=\"p\">:</span> <span class=\"s2\">"SMALLINT"</span><span class=\"p\">}}</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT x.cola + 2.5 AS cola FROM (SELECT y.cola AS cola FROM y AS y) AS x"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">annotated_expr</span> <span class=\"o\">=</span> <span class=\"n\">annotate_types</span><span class=\"p\">(</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">),</span> <span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"n\">schema</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">annotated_expr</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">type</span><span class=\"o\">.</span><span class=\"n\">this</span> <span class=\"c1\"># Get the type of "x.cola + 2.5 AS cola"</span>\n<span class=\"go\"><Type.DOUBLE: 'DOUBLE'></span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> Expression to annotate.</li>\n<li><strong>schema (dict|sqlglot.optimizer.Schema):</strong> Database schema.</li>\n<li><strong>annotators (dict):</strong> Maps expression type to corresponding annotation function.</li>\n<li><strong>coerces_to (dict):</strong> Maps expression type to set of types that it can be coerced into.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: expression annotated with types</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">annotators</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">coerces_to</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">annotators</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">coerces_to</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"fullname": "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate", "modulename": "sqlglot.optimizer.annotate_types", "qualname": "TypeAnnotator.annotate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.canonicalize.canonicalize": {"fullname": "sqlglot.optimizer.canonicalize.canonicalize", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "canonicalize", "kind": "function", "doc": "<p>Converts a sql expression into a standard form.</p>\n\n<p>This method relies on annotate_types because many of the\nconversions rely on type inference.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> The expression to canonicalize.</li>\n<li><strong>identify:</strong> Whether or not to force identify identifier.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">identify</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">=</span> <span class=\"s1\">'safe'</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"fullname": "sqlglot.optimizer.canonicalize.add_text_to_concat", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "add_text_to_concat", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.coerce_type": {"fullname": "sqlglot.optimizer.canonicalize.coerce_type", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "coerce_type", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"fullname": "sqlglot.optimizer.canonicalize.remove_redundant_casts", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "remove_redundant_casts", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"fullname": "sqlglot.optimizer.canonicalize.ensure_bool_predicates", "modulename": "sqlglot.optimizer.canonicalize", "qualname": "ensure_bool_predicates", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_ctes": {"fullname": "sqlglot.optimizer.eliminate_ctes", "modulename": "sqlglot.optimizer.eliminate_ctes", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"fullname": "sqlglot.optimizer.eliminate_ctes.eliminate_ctes", "modulename": "sqlglot.optimizer.eliminate_ctes", "qualname": "eliminate_ctes", "kind": "function", "doc": "<p>Remove unused CTEs from an expression.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"WITH y AS (SELECT a FROM x) SELECT a FROM z"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_ctes</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT a FROM z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_joins": {"fullname": "sqlglot.optimizer.eliminate_joins", "modulename": "sqlglot.optimizer.eliminate_joins", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"fullname": "sqlglot.optimizer.eliminate_joins.eliminate_joins", "modulename": "sqlglot.optimizer.eliminate_joins", "qualname": "eliminate_joins", "kind": "function", "doc": "<p>Remove unused joins from an expression.</p>\n\n<p>This only removes joins when we know that the join condition doesn't produce duplicate rows.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT x.a FROM x LEFT JOIN (SELECT DISTINCT y.b FROM y) AS y ON x.b = y.b"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_joins</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x.a FROM x'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_joins.join_condition": {"fullname": "sqlglot.optimizer.eliminate_joins.join_condition", "modulename": "sqlglot.optimizer.eliminate_joins", "qualname": "join_condition", "kind": "function", "doc": "<p>Extract the join condition from a join expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li>join (exp.Join)</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>tuple[list[str], list[str], exp.Expression]:\n Tuple of (source key, join key, remaining predicate)</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">join</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.eliminate_subqueries": {"fullname": "sqlglot.optimizer.eliminate_subqueries", "modulename": "sqlglot.optimizer.eliminate_subqueries", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"fullname": "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries", "modulename": "sqlglot.optimizer.eliminate_subqueries", "qualname": "eliminate_subqueries", "kind": "function", "doc": "<p>Rewrite derived tables as CTES, deduplicating if possible.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT * FROM x) AS y"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"this-also-deduplicates-common-subqueries\">This also deduplicates common subqueries:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT * FROM x) AS y JOIN (SELECT * FROM x) AS z"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">eliminate_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'WITH y AS (SELECT * FROM x) SELECT a FROM y AS y JOIN y AS z'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.expand_laterals": {"fullname": "sqlglot.optimizer.expand_laterals", "modulename": "sqlglot.optimizer.expand_laterals", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"fullname": "sqlglot.optimizer.expand_laterals.expand_laterals", "modulename": "sqlglot.optimizer.expand_laterals", "qualname": "expand_laterals", "kind": "function", "doc": "<p>Expand lateral column alias references.</p>\n\n<p>This assumes <code>qualify_columns</code> as already run.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT x.a + 1 AS b, b + 1 AS c FROM x"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expand_laterals</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x.a + 1 AS b, x.a + 1 + 1 AS c FROM x'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.expand_multi_table_selects": {"fullname": "sqlglot.optimizer.expand_multi_table_selects", "modulename": "sqlglot.optimizer.expand_multi_table_selects", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"fullname": "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects", "modulename": "sqlglot.optimizer.expand_multi_table_selects", "qualname": "expand_multi_table_selects", "kind": "function", "doc": "<p>Replace multiple FROM expressions with JOINs.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expand_multi_table_selects</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x, y"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM x CROSS JOIN y'</span>\n</code></pre>\n </div>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.isolate_table_selects": {"fullname": "sqlglot.optimizer.isolate_table_selects", "modulename": "sqlglot.optimizer.isolate_table_selects", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"fullname": "sqlglot.optimizer.isolate_table_selects.isolate_table_selects", "modulename": "sqlglot.optimizer.isolate_table_selects", "qualname": "isolate_table_selects", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.lower_identities": {"fullname": "sqlglot.optimizer.lower_identities", "modulename": "sqlglot.optimizer.lower_identities", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.lower_identities.lower_identities": {"fullname": "sqlglot.optimizer.lower_identities.lower_identities", "modulename": "sqlglot.optimizer.lower_identities", "qualname": "lower_identities", "kind": "function", "doc": "<p>Convert all unquoted identifiers to lower case.</p>\n\n<p>Assuming the schema is all lower case, this essentially makes identifiers case-insensitive.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s1\">'SELECT Bar.A AS A FROM "Foo".Bar'</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">lower_identities</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT bar.a AS A FROM "Foo".bar'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to quote</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: quoted expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries": {"fullname": "sqlglot.optimizer.merge_subqueries", "modulename": "sqlglot.optimizer.merge_subqueries", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"fullname": "sqlglot.optimizer.merge_subqueries.merge_subqueries", "modulename": "sqlglot.optimizer.merge_subqueries", "qualname": "merge_subqueries", "kind": "function", "doc": "<p>Rewrite sqlglot AST to merge derived tables into the outer query.</p>\n\n<p>This also merges CTEs if they are selected from only once.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT x.a FROM x) JOIN y"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">merge_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT x.a FROM x JOIN y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<p>If <code>leave_tables_isolated</code> is True, this will not merge inner queries into outer\nqueries if it would result in multiple table selects in a single query:</p>\n\n<blockquote>\n <blockquote>\n <blockquote>\n <p>expression = sqlglot.parse_one(\"SELECT a FROM (SELECT x.a FROM x) JOIN y\")\n merge_subqueries(expression, leave_tables_isolated=True).sql()\n 'SELECT a FROM (SELECT x.a FROM x) JOIN y'</p>\n </blockquote>\n </blockquote>\n</blockquote>\n\n<p>Inspired by <a href=\"https://dev.mysql.com/doc/refman/8.0/en/derived-table-optimization.html\">https://dev.mysql.com/doc/refman/8.0/en/derived-table-optimization.html</a></p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n<li><strong>leave_tables_isolated (bool):</strong> </li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">leave_tables_isolated</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"fullname": "sqlglot.optimizer.merge_subqueries.merge_ctes", "modulename": "sqlglot.optimizer.merge_subqueries", "qualname": "merge_ctes", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">leave_tables_isolated</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"fullname": "sqlglot.optimizer.merge_subqueries.merge_derived_tables", "modulename": "sqlglot.optimizer.merge_subqueries", "qualname": "merge_derived_tables", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">leave_tables_isolated</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize": {"fullname": "sqlglot.optimizer.normalize", "modulename": "sqlglot.optimizer.normalize", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.normalize.normalize": {"fullname": "sqlglot.optimizer.normalize.normalize", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalize", "kind": "function", "doc": "<p>Rewrite sqlglot AST into conjunctive normal form.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"(x AND y) OR z"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">normalize</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'(x OR z) AND (y OR z)'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to normalize</li>\n<li><strong>dnf (bool):</strong> rewrite in disjunctive normal form instead</li>\n<li><strong>max_distance (int):</strong> the maximal estimated distance from cnf to attempt conversion</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: normalized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span><span class=\"o\">=</span><span class=\"kc\">False</span>, </span><span class=\"param\"><span class=\"n\">max_distance</span><span class=\"o\">=</span><span class=\"mi\">128</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalized": {"fullname": "sqlglot.optimizer.normalize.normalized", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalized", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize.normalization_distance": {"fullname": "sqlglot.optimizer.normalize.normalization_distance", "modulename": "sqlglot.optimizer.normalize", "qualname": "normalization_distance", "kind": "function", "doc": "<p>The difference in the number of predicates between the current expression and the normalized form.</p>\n\n<p>This is used as an estimate of the cost of the conversion which is exponential in complexity.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"(a AND b) OR (c AND d)"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">normalization_distance</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span>\n<span class=\"go\">4</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to compute distance</li>\n<li><strong>dnf (bool):</strong> compute to dnf distance instead</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>int: difference</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.normalize.distributive_law": {"fullname": "sqlglot.optimizer.normalize.distributive_law", "modulename": "sqlglot.optimizer.normalize", "qualname": "distributive_law", "kind": "function", "doc": "<p>x OR (y AND z) -> (x OR y) AND (x OR z)\n(x AND y) OR (y AND z) -> (x OR y) AND (x OR z) AND (y OR y) AND (y OR z)</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">dnf</span>, </span><span class=\"param\"><span class=\"n\">max_distance</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins": {"fullname": "sqlglot.optimizer.optimize_joins", "modulename": "sqlglot.optimizer.optimize_joins", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"fullname": "sqlglot.optimizer.optimize_joins.optimize_joins", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "optimize_joins", "kind": "function", "doc": "<p>Removes cross joins if possible and reorder joins based on predicate dependencies.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">from</span> <span class=\"nn\">sqlglot</span> <span class=\"kn\">import</span> <span class=\"n\">parse_one</span>\n<span class=\"gp\">>>> </span><span class=\"n\">optimize_joins</span><span class=\"p\">(</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x CROSS JOIN y JOIN z ON x.a = z.a AND y.a = z.a"</span><span class=\"p\">))</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM x JOIN z ON x.a = z.a AND TRUE JOIN y ON y.a = z.a'</span>\n</code></pre>\n </div>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"fullname": "sqlglot.optimizer.optimize_joins.reorder_joins", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "reorder_joins", "kind": "function", "doc": "<p>Reorder joins by topological sort order based on predicate references.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.normalize": {"fullname": "sqlglot.optimizer.optimize_joins.normalize", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "normalize", "kind": "function", "doc": "<p>Remove INNER and OUTER from joins as they are optional.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimize_joins.other_table_names": {"fullname": "sqlglot.optimizer.optimize_joins.other_table_names", "modulename": "sqlglot.optimizer.optimize_joins", "qualname": "other_table_names", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">join</span>, </span><span class=\"param\"><span class=\"n\">exclude</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.optimizer": {"fullname": "sqlglot.optimizer.optimizer", "modulename": "sqlglot.optimizer.optimizer", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.optimizer.optimize": {"fullname": "sqlglot.optimizer.optimizer.optimize", "modulename": "sqlglot.optimizer.optimizer", "qualname": "optimize", "kind": "function", "doc": "<p>Rewrite a sqlglot AST into an optimized form.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> expression to optimize</li>\n<li><strong>schema:</strong> database schema.\nThis can either be an instance of <code>sqlglot.optimizer.Schema</code> or a mapping in one of\nthe following forms:\n 1. {table: {col: type}}\n 2. {db: {table: {col: type}}}\n 3. {catalog: {db: {table: {col: type}}}}\nIf no schema is provided then the default schema defined at <code>sqlgot.schema</code> will be used</li>\n<li><strong>db:</strong> specify the default database, as might be set by a <code>USE DATABASE db</code> statement</li>\n<li><strong>catalog:</strong> specify the default catalog, as might be set by a <code>USE CATALOG c</code> statement</li>\n<li><strong>dialect:</strong> The dialect to parse the sql string.</li>\n<li><strong>rules:</strong> sequence of optimizer rules to use.\nMany of the rules require tables and columns to be qualified.\nDo not remove qualify_tables or qualify_columns from the sequence of rules unless you know\nwhat you're doing!</li>\n<li><strong><em>*kwargs:</strong> If a rule has a keyword argument with a same name in *</em>kwargs, it will be passed in.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">db</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">catalog</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">rules</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Callable</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">(</span><span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">lower_identities</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bc1f0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_tables</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87be8c0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">isolate_table_selects</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bc160</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">qualify_columns</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bd7e0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">expand_laterals</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87afeb0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">pushdown_projections</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87be290</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">validate_qualify_columns</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bd870</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">normalize</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87adea0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">unnest_subqueries</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87be9e0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">expand_multi_table_selects</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bc0d0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">pushdown_predicates</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bd2d0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">optimize_joins</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bd000</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">eliminate_subqueries</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87afac0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">merge_subqueries</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87bc4c0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">eliminate_joins</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87adcf0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">eliminate_ctes</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87adbd0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">annotate_types</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87465f0</span><span class=\"o\">></span><span class=\"p\">,</span> <span class=\"o\"><</span><span class=\"n\">function</span> <span class=\"n\">canonicalize</span> <span class=\"n\">at</span> <span class=\"mh\">0x7fb8b87ad6c0</span><span class=\"o\">></span><span class=\"p\">)</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates": {"fullname": "sqlglot.optimizer.pushdown_predicates", "modulename": "sqlglot.optimizer.pushdown_predicates", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown_predicates", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown_predicates", "kind": "function", "doc": "<p>Rewrite sqlglot AST to pushdown predicates in FROMS and JOINS</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT * FROM (SELECT * FROM x AS x) AS y WHERE y.a = 1"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">pushdown_predicates</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM (SELECT * FROM x AS x WHERE y.a = 1) AS y WHERE TRUE'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">condition</span>, </span><span class=\"param\"><span class=\"n\">sources</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown_cnf", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown_cnf", "kind": "function", "doc": "<p>If the predicates are in CNF like form, we can simply replace each block in the parent.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">predicates</span>, </span><span class=\"param\"><span class=\"n\">scope</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"fullname": "sqlglot.optimizer.pushdown_predicates.pushdown_dnf", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "pushdown_dnf", "kind": "function", "doc": "<p>If the predicates are in DNF form, we can only push down conditions that are in all blocks.\nAdditionally, we can't remove predicates from their original form.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">predicates</span>, </span><span class=\"param\"><span class=\"n\">scope</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"fullname": "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "nodes_for_predicate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">predicate</span>, </span><span class=\"param\"><span class=\"n\">sources</span>, </span><span class=\"param\"><span class=\"n\">scope_ref_count</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"fullname": "sqlglot.optimizer.pushdown_predicates.replace_aliases", "modulename": "sqlglot.optimizer.pushdown_predicates", "qualname": "replace_aliases", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">source</span>, </span><span class=\"param\"><span class=\"n\">predicate</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_projections": {"fullname": "sqlglot.optimizer.pushdown_projections", "modulename": "sqlglot.optimizer.pushdown_projections", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"fullname": "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION", "modulename": "sqlglot.optimizer.pushdown_projections", "qualname": "DEFAULT_SELECTION", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"fullname": "sqlglot.optimizer.pushdown_projections.pushdown_projections", "modulename": "sqlglot.optimizer.pushdown_projections", "qualname": "pushdown_projections", "kind": "function", "doc": "<p>Rewrite sqlglot AST to remove unused columns projections.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sql</span> <span class=\"o\">=</span> <span class=\"s2\">"SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"n\">sql</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">pushdown_projections</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to optimize</li>\n<li><strong>remove_unused_selections (bool):</strong> remove selects that are unused</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: optimized expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">remove_unused_selections</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns.qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "qualify_columns", "kind": "function", "doc": "<p>Rewrite sqlglot AST to have fully qualified columns.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">schema</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">"tbl"</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">"col"</span><span class=\"p\">:</span> <span class=\"s2\">"INT"</span><span class=\"p\">}}</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT col FROM tbl"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">qualify_columns</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">,</span> <span class=\"n\">schema</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT tbl.col AS col FROM tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to qualify</li>\n<li><strong>schema (dict|sqlglot.optimizer.Schema):</strong> Database schema</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: qualified expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">schema</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"fullname": "sqlglot.optimizer.qualify_columns.validate_qualify_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "validate_qualify_columns", "kind": "function", "doc": "<p>Raise an <code>OptimizeError</code> if any columns aren't qualified</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.Resolver": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver", "kind": "class", "doc": "<p>Helper for resolving columns.</p>\n\n<p>This is a class so we can lazily load some things and easily share them across functions.</p>\n"}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.__init__", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">scope</span>, </span><span class=\"param\"><span class=\"n\">schema</span></span>)</span>"}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.get_table", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.get_table", "kind": "function", "doc": "<p>Get the table for a column name.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>column_name:</strong> The column name to find the table for.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The table name if it can be found/inferred.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">column_name</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Identifier</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.all_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.all_columns", "kind": "variable", "doc": "<p>All available columns of all sources in this scope</p>\n"}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"fullname": "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns", "modulename": "sqlglot.optimizer.qualify_columns", "qualname": "Resolver.get_source_columns", "kind": "function", "doc": "<p>Resolve the source columns for a given source <code>name</code></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span>, </span><span class=\"param\"><span class=\"n\">only_visible</span><span class=\"o\">=</span><span class=\"kc\">False</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.qualify_tables": {"fullname": "sqlglot.optimizer.qualify_tables", "modulename": "sqlglot.optimizer.qualify_tables", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"fullname": "sqlglot.optimizer.qualify_tables.qualify_tables", "modulename": "sqlglot.optimizer.qualify_tables", "qualname": "qualify_tables", "kind": "function", "doc": "<p>Rewrite sqlglot AST to have fully qualified tables.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT 1 FROM tbl"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">qualify_tables</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">,</span> <span class=\"n\">db</span><span class=\"o\">=</span><span class=\"s2\">"db"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT 1 FROM db.tbl AS tbl'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to qualify</li>\n<li><strong>db (str):</strong> Database name</li>\n<li><strong>catalog (str):</strong> Catalog name</li>\n<li><strong>schema:</strong> A schema to populate</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: qualified expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">db</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">catalog</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"n\">schema</span><span class=\"o\">=</span><span class=\"kc\">None</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope": {"fullname": "sqlglot.optimizer.scope", "modulename": "sqlglot.optimizer.scope", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.scope.ScopeType": {"fullname": "sqlglot.optimizer.scope.ScopeType", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "enum.Enum"}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"fullname": "sqlglot.optimizer.scope.ScopeType.ROOT", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.ROOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.ROOT: 1>"}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"fullname": "sqlglot.optimizer.scope.ScopeType.SUBQUERY", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.SUBQUERY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.SUBQUERY: 2>"}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"fullname": "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.DERIVED_TABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.DERIVED_TABLE: 3>"}, "sqlglot.optimizer.scope.ScopeType.CTE": {"fullname": "sqlglot.optimizer.scope.ScopeType.CTE", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.CTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.CTE: 4>"}, "sqlglot.optimizer.scope.ScopeType.UNION": {"fullname": "sqlglot.optimizer.scope.ScopeType.UNION", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.UNION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.UNION: 5>"}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"fullname": "sqlglot.optimizer.scope.ScopeType.UDTF", "modulename": "sqlglot.optimizer.scope", "qualname": "ScopeType.UDTF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<ScopeType.UDTF: 6>"}, "sqlglot.optimizer.scope.Scope": {"fullname": "sqlglot.optimizer.scope.Scope", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope", "kind": "class", "doc": "<p>Selection scope.</p>\n\n<h6 id=\"attributes\">Attributes:</h6>\n\n<ul>\n<li><strong>expression (exp.Select|exp.Union):</strong> Root expression of this scope</li>\n<li><strong>sources (dict[str, exp.Table|Scope]):</strong> Mapping of source name to either\na Table expression or another Scope instance. For example:\n SELECT * FROM x {\"x\": Table(this=\"x\")}\n SELECT * FROM x AS y {\"y\": Table(this=\"x\")}\n SELECT * FROM (SELECT ...) AS y {\"y\": Scope(...)}</li>\n<li><strong>lateral_sources (dict[str, exp.Table|Scope]):</strong> Sources from laterals\nFor example:\n SELECT c FROM x LATERAL VIEW EXPLODE (a) AS c;\nThe LATERAL VIEW EXPLODE gets x as a source.</li>\n<li><strong>outer_column_list (list[str]):</strong> If this is a derived table or CTE, and the outer query\ndefines a column list of it's alias of this scope, this is that list of columns.\nFor example:\n SELECT * FROM (SELECT ...) AS y(col1, col2)\nThe inner query would have <code>[\"col1\", \"col2\"]</code> for its <code>outer_column_list</code></li>\n<li><strong>parent (Scope):</strong> Parent scope</li>\n<li><strong>scope_type (ScopeType):</strong> Type of this scope, relative to it's parent</li>\n<li><strong>subquery_scopes (list[Scope]):</strong> List of all child scopes for subqueries</li>\n<li><strong>cte_scopes (list[Scope]):</strong> List of all child scopes for CTEs</li>\n<li><strong>derived_table_scopes (list[Scope]):</strong> List of all child scopes for derived_tables</li>\n<li><strong>udtf_scopes (list[Scope]):</strong> List of all child scopes for user defined tabular functions</li>\n<li><strong>table_scopes (list[Scope]):</strong> derived_table_scopes + udtf_scopes, in the order that they're defined</li>\n<li><strong>union_scopes (list[Scope, Scope]):</strong> If this Scope is for a Union expression, this will be\na list of the left and right child scopes.</li>\n</ul>\n"}, "sqlglot.optimizer.scope.Scope.__init__": {"fullname": "sqlglot.optimizer.scope.Scope.__init__", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span>,</span><span class=\"param\">\t<span class=\"n\">sources</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">outer_column_list</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">parent</span><span class=\"o\">=</span><span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">scope_type</span><span class=\"o\">=<</span><span class=\"n\">ScopeType</span><span class=\"o\">.</span><span class=\"n\">ROOT</span><span class=\"p\">:</span> <span class=\"mi\">1</span><span class=\"o\">></span>,</span><span class=\"param\">\t<span class=\"n\">lateral_sources</span><span class=\"o\">=</span><span class=\"kc\">None</span></span>)</span>"}, "sqlglot.optimizer.scope.Scope.clear_cache": {"fullname": "sqlglot.optimizer.scope.Scope.clear_cache", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.clear_cache", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.branch": {"fullname": "sqlglot.optimizer.scope.Scope.branch", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.branch", "kind": "function", "doc": "<p>Branch from the current scope to a new, inner scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">scope_type</span>, </span><span class=\"param\"><span class=\"n\">chain_sources</span><span class=\"o\">=</span><span class=\"kc\">None</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.walk": {"fullname": "sqlglot.optimizer.scope.Scope.walk", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.walk", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.find": {"fullname": "sqlglot.optimizer.scope.Scope.find", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.find", "kind": "function", "doc": "<p>Returns the first node in this scope which matches at least one of the specified types.</p>\n\n<p>This does NOT traverse into subscopes.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n<li><strong>bfs (bool):</strong> True to use breadth-first search, False to use depth-first.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>exp.Expression: the node which matches the criteria or None if no node matching\n the criteria was found.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.find_all": {"fullname": "sqlglot.optimizer.scope.Scope.find_all", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.find_all", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in this scope and only yields those that\nmatch at least one of the specified expression types.</p>\n\n<p>This does NOT traverse into subscopes.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types (type):</strong> the expression type(s) to match.</li>\n<li><strong>bfs (bool):</strong> True to use breadth-first search, False to use depth-first.</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>exp.Expression: nodes</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">*</span><span class=\"n\">expression_types</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.replace": {"fullname": "sqlglot.optimizer.scope.Scope.replace", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.replace", "kind": "function", "doc": "<p>Replace <code>old</code> with <code>new</code>.</p>\n\n<p>This can be used instead of <code>exp.Expression.replace</code> to ensure the <code>Scope</code> is kept up-to-date.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>old (exp.Expression):</strong> old node</li>\n<li><strong>new (exp.Expression):</strong> new node</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">old</span>, </span><span class=\"param\"><span class=\"n\">new</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.tables": {"fullname": "sqlglot.optimizer.scope.Scope.tables", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.tables", "kind": "variable", "doc": "<p>List of tables in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Table]: tables</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.ctes": {"fullname": "sqlglot.optimizer.scope.Scope.ctes", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.ctes", "kind": "variable", "doc": "<p>List of CTEs in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.CTE]: ctes</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.derived_tables": {"fullname": "sqlglot.optimizer.scope.Scope.derived_tables", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.derived_tables", "kind": "variable", "doc": "<p>List of derived tables in this scope.</p>\n\n<h6 id=\"for-example\">For example:</h6>\n\n<blockquote>\n <p>SELECT * FROM (SELECT ...) <- that's a derived table</p>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Subquery]: derived tables</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.udtfs": {"fullname": "sqlglot.optimizer.scope.Scope.udtfs", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.udtfs", "kind": "variable", "doc": "<p>List of \"User Defined Tabular Functions\" in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.UDTF]: UDTFs</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.subqueries": {"fullname": "sqlglot.optimizer.scope.Scope.subqueries", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.subqueries", "kind": "variable", "doc": "<p>List of subqueries in this scope.</p>\n\n<h6 id=\"for-example\">For example:</h6>\n\n<blockquote>\n <p>SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery</p>\n</blockquote>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Subqueryable]: subqueries</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.columns": {"fullname": "sqlglot.optimizer.scope.Scope.columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.columns", "kind": "variable", "doc": "<p>List of columns in this scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Column instances in this scope, plus any\n Columns that reference this scope from correlated subqueries.</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.selected_sources": {"fullname": "sqlglot.optimizer.scope.Scope.selected_sources", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.selected_sources", "kind": "variable", "doc": "<p>Mapping of nodes and sources that are actually selected from in this scope.</p>\n\n<p>That is, all tables in a schema are selectable at any point. But a\ntable only becomes a selected source if it's included in a FROM or JOIN clause.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.cte_sources": {"fullname": "sqlglot.optimizer.scope.Scope.cte_sources", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.cte_sources", "kind": "variable", "doc": "<p>Sources that are CTEs.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>dict[str, Scope]: Mapping of source alias to Scope</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.selects": {"fullname": "sqlglot.optimizer.scope.Scope.selects", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.selects", "kind": "variable", "doc": "<p>Select expressions of this scope.</p>\n\n<p>For example, for the following expression:\n SELECT 1 as a, 2 as b FROM x</p>\n\n<p>The outputs are the \"1 as a\" and \"2 as b\" expressions.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Expression]: expressions</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.external_columns": {"fullname": "sqlglot.optimizer.scope.Scope.external_columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.external_columns", "kind": "variable", "doc": "<p>Columns that appear to reference sources in outer scopes.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Column instances that don't reference\n sources in the current scope.</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"fullname": "sqlglot.optimizer.scope.Scope.unqualified_columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.unqualified_columns", "kind": "variable", "doc": "<p>Unqualified columns in the current scope.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Unqualified columns</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.join_hints": {"fullname": "sqlglot.optimizer.scope.Scope.join_hints", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.join_hints", "kind": "variable", "doc": "<p>Hints that exist in the scope that reference tables</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.JoinHint]: Join hints that are referenced within the scope</p>\n</blockquote>\n"}, "sqlglot.optimizer.scope.Scope.source_columns": {"fullname": "sqlglot.optimizer.scope.Scope.source_columns", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.source_columns", "kind": "function", "doc": "<p>Get all columns in the current scope for a particular source.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>source_name (str):</strong> Name of the source</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[exp.Column]: Column instances that reference <code>source_name</code></p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">source_name</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.is_subquery": {"fullname": "sqlglot.optimizer.scope.Scope.is_subquery", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_subquery", "kind": "variable", "doc": "<p>Determine if this scope is a subquery</p>\n"}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"fullname": "sqlglot.optimizer.scope.Scope.is_derived_table", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_derived_table", "kind": "variable", "doc": "<p>Determine if this scope is a derived table</p>\n"}, "sqlglot.optimizer.scope.Scope.is_union": {"fullname": "sqlglot.optimizer.scope.Scope.is_union", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_union", "kind": "variable", "doc": "<p>Determine if this scope is a union</p>\n"}, "sqlglot.optimizer.scope.Scope.is_cte": {"fullname": "sqlglot.optimizer.scope.Scope.is_cte", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_cte", "kind": "variable", "doc": "<p>Determine if this scope is a common table expression</p>\n"}, "sqlglot.optimizer.scope.Scope.is_root": {"fullname": "sqlglot.optimizer.scope.Scope.is_root", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_root", "kind": "variable", "doc": "<p>Determine if this is the root scope</p>\n"}, "sqlglot.optimizer.scope.Scope.is_udtf": {"fullname": "sqlglot.optimizer.scope.Scope.is_udtf", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_udtf", "kind": "variable", "doc": "<p>Determine if this scope is a UDTF (User Defined Table Function)</p>\n"}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"fullname": "sqlglot.optimizer.scope.Scope.is_correlated_subquery", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.is_correlated_subquery", "kind": "variable", "doc": "<p>Determine if this scope is a correlated subquery</p>\n"}, "sqlglot.optimizer.scope.Scope.rename_source": {"fullname": "sqlglot.optimizer.scope.Scope.rename_source", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.rename_source", "kind": "function", "doc": "<p>Rename a source in this scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">old_name</span>, </span><span class=\"param\"><span class=\"n\">new_name</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.add_source": {"fullname": "sqlglot.optimizer.scope.Scope.add_source", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.add_source", "kind": "function", "doc": "<p>Add a source to this scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span>, </span><span class=\"param\"><span class=\"n\">source</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.remove_source": {"fullname": "sqlglot.optimizer.scope.Scope.remove_source", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.remove_source", "kind": "function", "doc": "<p>Remove a source from this scope</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">name</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.traverse": {"fullname": "sqlglot.optimizer.scope.Scope.traverse", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.traverse", "kind": "function", "doc": "<p>Traverse the scope tree from this node.</p>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>Scope: scope instances in depth-first-search post-order</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.Scope.ref_count": {"fullname": "sqlglot.optimizer.scope.Scope.ref_count", "modulename": "sqlglot.optimizer.scope", "qualname": "Scope.ref_count", "kind": "function", "doc": "<p>Count the number of times each scope in this tree is referenced.</p>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>dict[int, int]: Mapping of Scope instance ID to reference count</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.traverse_scope": {"fullname": "sqlglot.optimizer.scope.traverse_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "traverse_scope", "kind": "function", "doc": "<p>Traverse an expression by it's \"scopes\".</p>\n\n<p>\"Scope\" represents the current context of a Select statement.</p>\n\n<p>This is helpful for optimizing queries, where we need more information than\nthe expression tree itself. For example, we might care about the source\nnames within a subquery. Returns a list because a generator could result in\nincomplete properties which is confusing.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a FROM (SELECT a FROM x) AS y"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">scopes</span> <span class=\"o\">=</span> <span class=\"n\">traverse_scope</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">expression</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(),</span> <span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">0</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">sources</span><span class=\"p\">)</span>\n<span class=\"go\">('SELECT a FROM x', ['x'])</span>\n<span class=\"gp\">>>> </span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">expression</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">(),</span> <span class=\"nb\">list</span><span class=\"p\">(</span><span class=\"n\">scopes</span><span class=\"p\">[</span><span class=\"mi\">1</span><span class=\"p\">]</span><span class=\"o\">.</span><span class=\"n\">sources</span><span class=\"p\">)</span>\n<span class=\"go\">('SELECT a FROM (SELECT a FROM x) AS y', ['y'])</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (exp.Expression):</strong> expression to traverse</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>list[Scope]: scope instances</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.build_scope": {"fullname": "sqlglot.optimizer.scope.build_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "build_scope", "kind": "function", "doc": "<p>Build a scope tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (exp.Expression):</strong> expression to build the scope tree for</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Scope: root scope</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.scope.walk_in_scope": {"fullname": "sqlglot.optimizer.scope.walk_in_scope", "modulename": "sqlglot.optimizer.scope", "qualname": "walk_in_scope", "kind": "function", "doc": "<p>Returns a generator object which visits all nodes in the syntrax tree, stopping at\nnodes that start child scopes.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (exp.Expression):</strong> </li>\n<li><strong>bfs (bool):</strong> if set to True the BFS traversal order will be applied,\notherwise the DFS traversal will be used instead.</li>\n</ul>\n\n<h6 id=\"yields\">Yields:</h6>\n\n<blockquote>\n <p>tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">bfs</span><span class=\"o\">=</span><span class=\"kc\">True</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify": {"fullname": "sqlglot.optimizer.simplify", "modulename": "sqlglot.optimizer.simplify", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.simplify.simplify": {"fullname": "sqlglot.optimizer.simplify.simplify", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify", "kind": "function", "doc": "<p>Rewrite sqlglot AST to simplify expressions.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"TRUE AND TRUE"</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">simplify</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'TRUE'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to simplify</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: simplified expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.rewrite_between": {"fullname": "sqlglot.optimizer.simplify.rewrite_between", "modulename": "sqlglot.optimizer.simplify", "qualname": "rewrite_between", "kind": "function", "doc": "<p>Rewrite x between y and z to x >= y AND x <= z.</p>\n\n<p>This is done because comparison simplification is only done on lt/lte/gt/gte.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_not": {"fullname": "sqlglot.optimizer.simplify.simplify_not", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_not", "kind": "function", "doc": "<p>Demorgan's Law\nNOT (x OR y) -> NOT x AND NOT y\nNOT (x AND y) -> NOT x OR NOT y</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.flatten": {"fullname": "sqlglot.optimizer.simplify.flatten", "modulename": "sqlglot.optimizer.simplify", "qualname": "flatten", "kind": "function", "doc": "<p>A AND (B AND C) -> A AND B AND C\nA OR (B OR C) -> A OR B OR C</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_connectors": {"fullname": "sqlglot.optimizer.simplify.simplify_connectors", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_connectors", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.remove_compliments": {"fullname": "sqlglot.optimizer.simplify.remove_compliments", "modulename": "sqlglot.optimizer.simplify", "qualname": "remove_compliments", "kind": "function", "doc": "<p>Removing compliments.</p>\n\n<p>A AND NOT A -> FALSE\nA OR NOT A -> TRUE</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.uniq_sort": {"fullname": "sqlglot.optimizer.simplify.uniq_sort", "modulename": "sqlglot.optimizer.simplify", "qualname": "uniq_sort", "kind": "function", "doc": "<p>Uniq and sort a connector.</p>\n\n<p>C AND A AND B AND B -> A AND B AND C</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"fullname": "sqlglot.optimizer.simplify.absorb_and_eliminate", "modulename": "sqlglot.optimizer.simplify", "qualname": "absorb_and_eliminate", "kind": "function", "doc": "<p>absorption:\n A AND (A OR B) -> A\n A OR (A AND B) -> A\n A AND (NOT A OR B) -> A AND B\n A OR (NOT A AND B) -> A OR B\nelimination:\n (A AND B) OR (A AND NOT B) -> A\n (A OR B) AND (A OR NOT B) -> A</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_literals": {"fullname": "sqlglot.optimizer.simplify.simplify_literals", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_literals", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.simplify_parens": {"fullname": "sqlglot.optimizer.simplify.simplify_parens", "modulename": "sqlglot.optimizer.simplify", "qualname": "simplify_parens", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.remove_where_true": {"fullname": "sqlglot.optimizer.simplify.remove_where_true", "modulename": "sqlglot.optimizer.simplify", "qualname": "remove_where_true", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.always_true": {"fullname": "sqlglot.optimizer.simplify.always_true", "modulename": "sqlglot.optimizer.simplify", "qualname": "always_true", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.is_complement": {"fullname": "sqlglot.optimizer.simplify.is_complement", "modulename": "sqlglot.optimizer.simplify", "qualname": "is_complement", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">a</span>, </span><span class=\"param\"><span class=\"n\">b</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.eval_boolean": {"fullname": "sqlglot.optimizer.simplify.eval_boolean", "modulename": "sqlglot.optimizer.simplify", "qualname": "eval_boolean", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span>, </span><span class=\"param\"><span class=\"n\">a</span>, </span><span class=\"param\"><span class=\"n\">b</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_date": {"fullname": "sqlglot.optimizer.simplify.extract_date", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_date", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">cast</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.extract_interval": {"fullname": "sqlglot.optimizer.simplify.extract_interval", "modulename": "sqlglot.optimizer.simplify", "qualname": "extract_interval", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">interval</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.date_literal": {"fullname": "sqlglot.optimizer.simplify.date_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "date_literal", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">date</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.simplify.boolean_literal": {"fullname": "sqlglot.optimizer.simplify.boolean_literal", "modulename": "sqlglot.optimizer.simplify", "qualname": "boolean_literal", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">condition</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries": {"fullname": "sqlglot.optimizer.unnest_subqueries", "modulename": "sqlglot.optimizer.unnest_subqueries", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"fullname": "sqlglot.optimizer.unnest_subqueries.unnest_subqueries", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "unnest_subqueries", "kind": "function", "doc": "<p>Rewrite sqlglot AST to convert some predicates with subqueries into joins.</p>\n\n<p>Convert scalar subqueries into cross joins.\nConvert correlated or vectorized subqueries into a group by so it is not a many to many left join.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">expression</span> <span class=\"o\">=</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT * FROM x AS x WHERE (SELECT y.a AS a FROM y AS y WHERE x.a = y.a) = 1 "</span><span class=\"p\">)</span>\n<span class=\"gp\">>>> </span><span class=\"n\">unnest_subqueries</span><span class=\"p\">(</span><span class=\"n\">expression</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT * FROM x AS x LEFT JOIN (SELECT y.a AS a FROM y AS y WHERE TRUE GROUP BY y.a) AS _u_0 ON x.a = _u_0.a WHERE _u_0.a = 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression (sqlglot.Expression):</strong> expression to unnest</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>sqlglot.Expression: unnested expression</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.unnest": {"fullname": "sqlglot.optimizer.unnest_subqueries.unnest", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "unnest", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">select</span>, </span><span class=\"param\"><span class=\"n\">parent_select</span>, </span><span class=\"param\"><span class=\"n\">sequence</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"fullname": "sqlglot.optimizer.unnest_subqueries.decorrelate", "modulename": "sqlglot.optimizer.unnest_subqueries", "qualname": "decorrelate", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">select</span>, </span><span class=\"param\"><span class=\"n\">parent_select</span>, </span><span class=\"param\"><span class=\"n\">external_columns</span>, </span><span class=\"param\"><span class=\"n\">sequence</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.parser": {"fullname": "sqlglot.parser", "modulename": "sqlglot.parser", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.parser.parse_var_map": {"fullname": "sqlglot.parser.parse_var_map", "modulename": "sqlglot.parser", "qualname": "parse_var_map", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">args</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.parser.binary_range_parser": {"fullname": "sqlglot.parser.binary_range_parser", "modulename": "sqlglot.parser", "qualname": "binary_range_parser", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expr_type</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parser</span><span class=\"o\">.</span><span class=\"n\">Parser</span><span class=\"p\">,</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]],</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser": {"fullname": "sqlglot.parser.Parser", "modulename": "sqlglot.parser", "qualname": "Parser", "kind": "class", "doc": "<p>Parser consumes a list of tokens produced by the <code>sqlglot.tokens.Tokenizer</code> and produces\na parsed syntax tree.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>error_level:</strong> the desired error level.\nDefault: ErrorLevel.RAISE</li>\n<li><strong>error_message_context:</strong> determines the amount of context to capture from a\nquery string when displaying the error message (in number of characters).\nDefault: 50.</li>\n<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.\nDefault: 0</li>\n<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample.\nDefault: False</li>\n<li><strong>max_errors:</strong> Maximum number of error messages to include in a raised ParseError.\nThis is only relevant if error_level is ErrorLevel.RAISE.\nDefault: 3</li>\n<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set.\nOptions are \"nulls_are_small\", \"nulls_are_large\", \"nulls_are_last\".\nDefault: \"nulls_are_small\"</li>\n</ul>\n"}, "sqlglot.parser.Parser.__init__": {"fullname": "sqlglot.parser.Parser.__init__", "modulename": "sqlglot.parser", "qualname": "Parser.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">error_level</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">errors</span><span class=\"o\">.</span><span class=\"n\">ErrorLevel</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">error_message_context</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">100</span>,</span><span class=\"param\">\t<span class=\"n\">index_offset</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">0</span>,</span><span class=\"param\">\t<span class=\"n\">unnest_column_only</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">alias_post_tablesample</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span>,</span><span class=\"param\">\t<span class=\"n\">max_errors</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">3</span>,</span><span class=\"param\">\t<span class=\"n\">null_ordering</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>"}, "sqlglot.parser.Parser.reset": {"fullname": "sqlglot.parser.Parser.reset", "modulename": "sqlglot.parser", "qualname": "Parser.reset", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.parse": {"fullname": "sqlglot.parser.Parser.parse", "modulename": "sqlglot.parser", "qualname": "Parser.parse", "kind": "function", "doc": "<p>Parses a list of tokens and returns a list of syntax trees, one tree\nper parsed SQL statement.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>raw_tokens:</strong> the list of tokens.</li>\n<li><strong>sql:</strong> the original SQL string, used to produce helpful debug messages.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of syntax trees.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">raw_tokens</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">sql</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=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.parse_into": {"fullname": "sqlglot.parser.Parser.parse_into", "modulename": "sqlglot.parser", "qualname": "Parser.parse_into", "kind": "function", "doc": "<p>Parses a list of tokens into a given Expression type. If a collection of Expression\ntypes is given instead, this method will try to parse the token list into each one\nof them, stopping at the first for which the parsing succeeds.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression_types:</strong> the expression type(s) to try and parse the token list into.</li>\n<li><strong>raw_tokens:</strong> the list of tokens.</li>\n<li><strong>sql:</strong> the original SQL string, used to produce helpful debug messages.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The target Expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression_types</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">Collection</span><span class=\"p\">[</span><span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]]]</span>,</span><span class=\"param\">\t<span class=\"n\">raw_tokens</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">sql</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=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.check_errors": {"fullname": "sqlglot.parser.Parser.check_errors", "modulename": "sqlglot.parser", "qualname": "Parser.check_errors", "kind": "function", "doc": "<p>Logs or raises any found errors, depending on the chosen error level setting.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.raise_error": {"fullname": "sqlglot.parser.Parser.raise_error", "modulename": "sqlglot.parser", "qualname": "Parser.raise_error", "kind": "function", "doc": "<p>Appends an error in the list of recorded errors or raises it, depending on the chosen\nerror level setting.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">message</span><span class=\"p\">:</span> <span class=\"nb\">str</span>, </span><span class=\"param\"><span class=\"n\">token</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.expression": {"fullname": "sqlglot.parser.Parser.expression", "modulename": "sqlglot.parser", "qualname": "Parser.expression", "kind": "function", "doc": "<p>Creates a new, validated Expression.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>exp_class:</strong> the expression class to instantiate.</li>\n<li><strong>comments:</strong> an optional list of comments to attach to the expression.</li>\n<li><strong>kwargs:</strong> the arguments to set for the expression along with their respective values.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The target expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">exp_class</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">comments</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.parser.Parser.validate_expression": {"fullname": "sqlglot.parser.Parser.validate_expression", "modulename": "sqlglot.parser", "qualname": "Parser.validate_expression", "kind": "function", "doc": "<p>Validates an already instantiated expression, making sure that all its mandatory arguments\nare set.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to validate.</li>\n<li><strong>args:</strong> an optional list of items that was used to instantiate the expression, if it's a Func.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">args</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner": {"fullname": "sqlglot.planner", "modulename": "sqlglot.planner", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.planner.Plan": {"fullname": "sqlglot.planner.Plan", "modulename": "sqlglot.planner", "qualname": "Plan", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.planner.Plan.__init__": {"fullname": "sqlglot.planner.Plan.__init__", "modulename": "sqlglot.planner", "qualname": "Plan.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span>)</span>"}, "sqlglot.planner.Step": {"fullname": "sqlglot.planner.Step", "modulename": "sqlglot.planner", "qualname": "Step", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.planner.Step.from_expression": {"fullname": "sqlglot.planner.Step.from_expression", "modulename": "sqlglot.planner", "qualname": "Step.from_expression", "kind": "function", "doc": "<p>Builds a DAG of Steps from a SQL expression so that it's easier to execute in an engine.\nNote: the expression's tables and subqueries must be aliased for this method to work. For\nexample, given the following expression:</p>\n\n<p>SELECT\n x.a,\n SUM(x.b)\nFROM x AS x\nJOIN y AS y\n ON x.a = y.a\nGROUP BY x.a</p>\n\n<p>the following DAG is produced (the expression IDs might differ per execution):</p>\n\n<ul>\n<li>Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n<ul>\n<li>x.a</li>\n<li>\"x\".\"\"\nDependencies:\n<ul>\n<li>Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:</li>\n</ul></li>\n<li>Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:</li>\n<li>Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:</li>\n</ul></li>\n</ul>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to build the DAG from.</li>\n<li><strong>ctes:</strong> a dictionary that maps CTEs to their corresponding Step DAG by name.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A Step DAG corresponding to <code>expression</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Step.add_dependency": {"fullname": "sqlglot.planner.Step.add_dependency", "modulename": "sqlglot.planner", "qualname": "Step.add_dependency", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">dependency</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Step.to_s": {"fullname": "sqlglot.planner.Step.to_s", "modulename": "sqlglot.planner", "qualname": "Step.to_s", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">level</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">0</span></span><span class=\"return-annotation\">) -> <span class=\"nb\">str</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Scan": {"fullname": "sqlglot.planner.Scan", "modulename": "sqlglot.planner", "qualname": "Scan", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.Scan.from_expression": {"fullname": "sqlglot.planner.Scan.from_expression", "modulename": "sqlglot.planner", "qualname": "Scan.from_expression", "kind": "function", "doc": "<p>Builds a DAG of Steps from a SQL expression so that it's easier to execute in an engine.\nNote: the expression's tables and subqueries must be aliased for this method to work. For\nexample, given the following expression:</p>\n\n<p>SELECT\n x.a,\n SUM(x.b)\nFROM x AS x\nJOIN y AS y\n ON x.a = y.a\nGROUP BY x.a</p>\n\n<p>the following DAG is produced (the expression IDs might differ per execution):</p>\n\n<ul>\n<li>Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n<ul>\n<li>x.a</li>\n<li>\"x\".\"\"\nDependencies:\n<ul>\n<li>Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:</li>\n</ul></li>\n<li>Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:</li>\n<li>Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:</li>\n</ul></li>\n</ul>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to build the DAG from.</li>\n<li><strong>ctes:</strong> a dictionary that maps CTEs to their corresponding Step DAG by name.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A Step DAG corresponding to <code>expression</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Join": {"fullname": "sqlglot.planner.Join", "modulename": "sqlglot.planner", "qualname": "Join", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.Join.from_joins": {"fullname": "sqlglot.planner.Join.from_joins", "modulename": "sqlglot.planner", "qualname": "Join.from_joins", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">joins</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Join</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.planner.Aggregate": {"fullname": "sqlglot.planner.Aggregate", "modulename": "sqlglot.planner", "qualname": "Aggregate", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.Sort": {"fullname": "sqlglot.planner.Sort", "modulename": "sqlglot.planner", "qualname": "Sort", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.SetOperation": {"fullname": "sqlglot.planner.SetOperation", "modulename": "sqlglot.planner", "qualname": "SetOperation", "kind": "class", "doc": "<p></p>\n", "bases": "Step"}, "sqlglot.planner.SetOperation.__init__": {"fullname": "sqlglot.planner.SetOperation.__init__", "modulename": "sqlglot.planner", "qualname": "SetOperation.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">op</span><span class=\"p\">:</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">left</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">right</span><span class=\"p\">:</span> <span class=\"nb\">str</span> <span class=\"o\">|</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">distinct</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span>)</span>"}, "sqlglot.planner.SetOperation.from_expression": {"fullname": "sqlglot.planner.SetOperation.from_expression", "modulename": "sqlglot.planner", "qualname": "SetOperation.from_expression", "kind": "function", "doc": "<p>Builds a DAG of Steps from a SQL expression so that it's easier to execute in an engine.\nNote: the expression's tables and subqueries must be aliased for this method to work. For\nexample, given the following expression:</p>\n\n<p>SELECT\n x.a,\n SUM(x.b)\nFROM x AS x\nJOIN y AS y\n ON x.a = y.a\nGROUP BY x.a</p>\n\n<p>the following DAG is produced (the expression IDs might differ per execution):</p>\n\n<ul>\n<li>Aggregate: x (4347984624)\nContext:\n Aggregations:\n - SUM(x.b)\n Group:\n - x.a\nProjections:\n<ul>\n<li>x.a</li>\n<li>\"x\".\"\"\nDependencies:\n<ul>\n<li>Join: x (4347985296)\nContext:\ny:\nOn: x.a = y.a\nProjections:\nDependencies:</li>\n</ul></li>\n<li>Scan: x (4347983136)\nContext:\n Source: x AS x\nProjections:</li>\n<li>Scan: y (4343416624)\nContext:\n Source: y AS y\nProjections:</li>\n</ul></li>\n</ul>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression to build the DAG from.</li>\n<li><strong>ctes:</strong> a dictionary that maps CTEs to their corresponding Step DAG by name.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A Step DAG corresponding to <code>expression</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>,</span><span class=\"param\">\t<span class=\"n\">ctes</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">planner</span><span class=\"o\">.</span><span class=\"n\">Step</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema": {"fullname": "sqlglot.schema.Schema", "modulename": "sqlglot.schema", "qualname": "Schema", "kind": "class", "doc": "<p>Abstract base class for database schemas</p>\n", "bases": "abc.ABC"}, "sqlglot.schema.Schema.add_table": {"fullname": "sqlglot.schema.Schema.add_table", "modulename": "sqlglot.schema", "qualname": "Schema.add_table", "kind": "function", "doc": "<p>Register or update a table. Some implementing classes may require column information to also be provided.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> table expression instance or string representing the table.</li>\n<li><strong>column_mapping:</strong> a column mapping that describes the structure of the table.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column_mapping</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema.column_names": {"fullname": "sqlglot.schema.Schema.column_names", "modulename": "sqlglot.schema", "qualname": "Schema.column_names", "kind": "function", "doc": "<p>Get the column names for a table.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the <code>Table</code> expression instance.</li>\n<li><strong>only_visible:</strong> whether to include invisible columns.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of column names.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">only_visible</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema.get_column_type": {"fullname": "sqlglot.schema.Schema.get_column_type", "modulename": "sqlglot.schema", "qualname": "Schema.get_column_type", "kind": "function", "doc": "<p>Get the <code>sqlglot.exp.DataType</code> type of a column in the schema.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the source table.</li>\n<li><strong>column:</strong> the target column.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The resulting column type.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.Schema.supported_table_args": {"fullname": "sqlglot.schema.Schema.supported_table_args", "modulename": "sqlglot.schema", "qualname": "Schema.supported_table_args", "kind": "variable", "doc": "<p>Table arguments this schema support, e.g. <code>(\"this\", \"db\", \"catalog\")</code></p>\n", "annotation": ": Tuple[str, ...]"}, "sqlglot.schema.AbstractMappingSchema": {"fullname": "sqlglot.schema.AbstractMappingSchema", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema", "kind": "class", "doc": "<p>Abstract base class for generic types.</p>\n\n<p>A generic type is typically declared by inheriting from\nthis class parameterized with one or more type variables.\nFor example, a generic mapping type might be defined as::</p>\n\n<p>class Mapping(Generic[KT, VT]):\n def __getitem__(self, key: KT) -> VT:\n ...\n # Etc.</p>\n\n<p>This class can then be used as follows::</p>\n\n<p>def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:\n try:\n return mapping[key]\n except KeyError:\n return default</p>\n", "bases": "typing.Generic[~T]"}, "sqlglot.schema.AbstractMappingSchema.__init__": {"fullname": "sqlglot.schema.AbstractMappingSchema.__init__", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">mapping</span><span class=\"p\">:</span> <span class=\"nb\">dict</span> <span class=\"o\">|</span> <span class=\"kc\">None</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"fullname": "sqlglot.schema.AbstractMappingSchema.table_parts", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.table_parts", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.AbstractMappingSchema.find": {"fullname": "sqlglot.schema.AbstractMappingSchema.find", "modulename": "sqlglot.schema", "qualname": "AbstractMappingSchema.find", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span>,</span><span class=\"param\">\t<span class=\"n\">trie</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">raise_on_missing</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">True</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"o\">~</span><span class=\"n\">T</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema": {"fullname": "sqlglot.schema.MappingSchema", "modulename": "sqlglot.schema", "qualname": "MappingSchema", "kind": "class", "doc": "<p>Schema based on a nested mapping.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>schema (dict):</strong> Mapping in one of the following forms:\n<ol>\n<li>{table: {col: type}}</li>\n<li>{db: {table: {col: type}}}</li>\n<li>{catalog: {db: {table: {col: type}}}}</li>\n<li>None - Tables will be added later</li>\n</ol></li>\n<li><strong>visible (dict):</strong> Optional mapping of which columns in the schema are visible. If not provided, all columns\nare assumed to be visible. The nesting should mirror that of the schema:\n<ol>\n<li>{table: set(<em>cols)}}</li>\n<li>{db: {table: set(</em>cols)}}}</li>\n<li>{catalog: {db: {table: set(*cols)}}}}</li>\n</ol></li>\n<li><strong>dialect (str):</strong> The dialect to be used for custom type mappings.</li>\n</ul>\n", "bases": "sqlglot.schema.AbstractMappingSchema[typing.Dict[str, str]], Schema"}, "sqlglot.schema.MappingSchema.__init__": {"fullname": "sqlglot.schema.MappingSchema.__init__", "modulename": "sqlglot.schema", "qualname": "MappingSchema.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">visible</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span>,</span><span class=\"param\">\t<span class=\"n\">dialect</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">,</span> <span class=\"n\">Type</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dialects</span><span class=\"o\">.</span><span class=\"n\">dialect</span><span class=\"o\">.</span><span class=\"n\">Dialect</span><span class=\"p\">],</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span>)</span>"}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"fullname": "sqlglot.schema.MappingSchema.from_mapping_schema", "modulename": "sqlglot.schema", "qualname": "MappingSchema.from_mapping_schema", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">cls</span>,</span><span class=\"param\">\t<span class=\"n\">mapping_schema</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">MappingSchema</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">MappingSchema</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.copy": {"fullname": "sqlglot.schema.MappingSchema.copy", "modulename": "sqlglot.schema", "qualname": "MappingSchema.copy", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"o\">**</span><span class=\"n\">kwargs</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">MappingSchema</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.add_table": {"fullname": "sqlglot.schema.MappingSchema.add_table", "modulename": "sqlglot.schema", "qualname": "MappingSchema.add_table", "kind": "function", "doc": "<p>Register or update a table. Updates are only performed if a new column mapping is provided.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the <code>Table</code> expression instance or string representing the table.</li>\n<li><strong>column_mapping:</strong> a column mapping that describes the structure of the table.</li>\n</ul>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column_mapping</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.column_names": {"fullname": "sqlglot.schema.MappingSchema.column_names", "modulename": "sqlglot.schema", "qualname": "MappingSchema.column_names", "kind": "function", "doc": "<p>Get the column names for a table.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the <code>Table</code> expression instance.</li>\n<li><strong>only_visible:</strong> whether to include invisible columns.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The list of column names.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">only_visible</span><span class=\"p\">:</span> <span class=\"nb\">bool</span> <span class=\"o\">=</span> <span class=\"kc\">False</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.MappingSchema.get_column_type": {"fullname": "sqlglot.schema.MappingSchema.get_column_type", "modulename": "sqlglot.schema", "qualname": "MappingSchema.get_column_type", "kind": "function", "doc": "<p>Get the <code>sqlglot.exp.DataType</code> type of a column in the schema.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>table:</strong> the source table.</li>\n<li><strong>column:</strong> the target column.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The resulting column type.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"bp\">self</span>,</span><span class=\"param\">\t<span class=\"n\">table</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Table</span> <span class=\"o\">|</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">column</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Column</span> <span class=\"o\">|</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.ensure_schema": {"fullname": "sqlglot.schema.ensure_schema", "modulename": "sqlglot.schema", "qualname": "ensure_schema", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Any</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">schema</span><span class=\"o\">.</span><span class=\"n\">Schema</span>:</span></span>", "funcdef": "def"}, "sqlglot.schema.ensure_column_mapping": {"fullname": "sqlglot.schema.ensure_column_mapping", "modulename": "sqlglot.schema", "qualname": "ensure_column_mapping", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">mapping</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">dataframe</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"o\">.</span><span class=\"n\">types</span><span class=\"o\">.</span><span class=\"n\">StructType</span><span class=\"p\">,</span> <span class=\"n\">List</span><span class=\"p\">,</span> <span class=\"n\">NoneType</span><span class=\"p\">]</span></span><span class=\"return-annotation\">):</span></span>", "funcdef": "def"}, "sqlglot.schema.flatten_schema": {"fullname": "sqlglot.schema.flatten_schema", "modulename": "sqlglot.schema", "qualname": "flatten_schema", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">schema</span><span class=\"p\">:</span> <span class=\"n\">Dict</span>,</span><span class=\"param\">\t<span class=\"n\">depth</span><span class=\"p\">:</span> <span class=\"nb\">int</span>,</span><span class=\"param\">\t<span class=\"n\">keys</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]]</span>:</span></span>", "funcdef": "def"}, "sqlglot.serde": {"fullname": "sqlglot.serde", "modulename": "sqlglot.serde", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.serde.dump": {"fullname": "sqlglot.serde.dump", "modulename": "sqlglot.serde", "qualname": "dump", "kind": "function", "doc": "<p>Recursively dump an AST into a JSON-serializable dict.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">node</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">ForwardRef</span><span class=\"p\">(</span><span class=\"s1\">'Node'</span><span class=\"p\">)],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.serde.load": {"fullname": "sqlglot.serde.load", "modulename": "sqlglot.serde", "qualname": "load", "kind": "function", "doc": "<p>Recursively load a dict (as returned by <code>dump</code>) into an AST.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">obj</span><span class=\"p\">:</span> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Union</span><span class=\"p\">[</span><span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">ForwardRef</span><span class=\"p\">(</span><span class=\"s1\">'Node'</span><span class=\"p\">)],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">DataType</span><span class=\"o\">.</span><span class=\"n\">Type</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">,</span> <span class=\"nb\">dict</span><span class=\"p\">,</span> <span class=\"nb\">list</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">float</span><span class=\"p\">,</span> <span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"nb\">bool</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.time": {"fullname": "sqlglot.time", "modulename": "sqlglot.time", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.time.format_time": {"fullname": "sqlglot.time.format_time", "modulename": "sqlglot.time", "qualname": "format_time", "kind": "function", "doc": "<p>Converts a time string given a mapping.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">format_time</span><span class=\"p\">(</span><span class=\"s2\">"%Y"</span><span class=\"p\">,</span> <span class=\"p\">{</span><span class=\"s2\">"%Y"</span><span class=\"p\">:</span> <span class=\"s2\">"YYYY"</span><span class=\"p\">})</span>\n<span class=\"go\">'YYYY'</span>\n</code></pre>\n </div>\n \n <p>Args:\n mapping: dictionary of time format to target time format.\n trie: optional trie, can be passed in for performance.</p>\n \n <p>Returns:\n The converted time string.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">string</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">mapping</span><span class=\"p\">:</span> <span class=\"n\">Dict</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">,</span> <span class=\"nb\">str</span><span class=\"p\">]</span>,</span><span class=\"param\">\t<span class=\"n\">trie</span><span class=\"p\">:</span> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"n\">Dict</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"kc\">None</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Optional</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens": {"fullname": "sqlglot.tokens", "modulename": "sqlglot.tokens", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.tokens.TokenType": {"fullname": "sqlglot.tokens.TokenType", "modulename": "sqlglot.tokens", "qualname": "TokenType", "kind": "class", "doc": "<p>An enumeration.</p>\n", "bases": "sqlglot.helper.AutoName"}, "sqlglot.tokens.TokenType.L_PAREN": {"fullname": "sqlglot.tokens.TokenType.L_PAREN", "modulename": "sqlglot.tokens", "qualname": "TokenType.L_PAREN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.L_PAREN: 'L_PAREN'>"}, "sqlglot.tokens.TokenType.R_PAREN": {"fullname": "sqlglot.tokens.TokenType.R_PAREN", "modulename": "sqlglot.tokens", "qualname": "TokenType.R_PAREN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.R_PAREN: 'R_PAREN'>"}, "sqlglot.tokens.TokenType.L_BRACKET": {"fullname": "sqlglot.tokens.TokenType.L_BRACKET", "modulename": "sqlglot.tokens", "qualname": "TokenType.L_BRACKET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.L_BRACKET: 'L_BRACKET'>"}, "sqlglot.tokens.TokenType.R_BRACKET": {"fullname": "sqlglot.tokens.TokenType.R_BRACKET", "modulename": "sqlglot.tokens", "qualname": "TokenType.R_BRACKET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.R_BRACKET: 'R_BRACKET'>"}, "sqlglot.tokens.TokenType.L_BRACE": {"fullname": "sqlglot.tokens.TokenType.L_BRACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.L_BRACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.L_BRACE: 'L_BRACE'>"}, "sqlglot.tokens.TokenType.R_BRACE": {"fullname": "sqlglot.tokens.TokenType.R_BRACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.R_BRACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.R_BRACE: 'R_BRACE'>"}, "sqlglot.tokens.TokenType.COMMA": {"fullname": "sqlglot.tokens.TokenType.COMMA", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMA: 'COMMA'>"}, "sqlglot.tokens.TokenType.DOT": {"fullname": "sqlglot.tokens.TokenType.DOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DOT: 'DOT'>"}, "sqlglot.tokens.TokenType.DASH": {"fullname": "sqlglot.tokens.TokenType.DASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.DASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DASH: 'DASH'>"}, "sqlglot.tokens.TokenType.PLUS": {"fullname": "sqlglot.tokens.TokenType.PLUS", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLUS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PLUS: 'PLUS'>"}, "sqlglot.tokens.TokenType.COLON": {"fullname": "sqlglot.tokens.TokenType.COLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLON: 'COLON'>"}, "sqlglot.tokens.TokenType.DCOLON": {"fullname": "sqlglot.tokens.TokenType.DCOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.DCOLON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DCOLON: 'DCOLON'>"}, "sqlglot.tokens.TokenType.SEMICOLON": {"fullname": "sqlglot.tokens.TokenType.SEMICOLON", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMICOLON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEMICOLON: 'SEMICOLON'>"}, "sqlglot.tokens.TokenType.STAR": {"fullname": "sqlglot.tokens.TokenType.STAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.STAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.STAR: 'STAR'>"}, "sqlglot.tokens.TokenType.BACKSLASH": {"fullname": "sqlglot.tokens.TokenType.BACKSLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.BACKSLASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BACKSLASH: 'BACKSLASH'>"}, "sqlglot.tokens.TokenType.SLASH": {"fullname": "sqlglot.tokens.TokenType.SLASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.SLASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SLASH: 'SLASH'>"}, "sqlglot.tokens.TokenType.LT": {"fullname": "sqlglot.tokens.TokenType.LT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LT: 'LT'>"}, "sqlglot.tokens.TokenType.LTE": {"fullname": "sqlglot.tokens.TokenType.LTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LTE: 'LTE'>"}, "sqlglot.tokens.TokenType.GT": {"fullname": "sqlglot.tokens.TokenType.GT", "modulename": "sqlglot.tokens", "qualname": "TokenType.GT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GT: 'GT'>"}, "sqlglot.tokens.TokenType.GTE": {"fullname": "sqlglot.tokens.TokenType.GTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.GTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GTE: 'GTE'>"}, "sqlglot.tokens.TokenType.NOT": {"fullname": "sqlglot.tokens.TokenType.NOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NOT: 'NOT'>"}, "sqlglot.tokens.TokenType.EQ": {"fullname": "sqlglot.tokens.TokenType.EQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.EQ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EQ: 'EQ'>"}, "sqlglot.tokens.TokenType.NEQ": {"fullname": "sqlglot.tokens.TokenType.NEQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEQ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NEQ: 'NEQ'>"}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"fullname": "sqlglot.tokens.TokenType.NULLSAFE_EQ", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLSAFE_EQ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLSAFE_EQ: 'NULLSAFE_EQ'>"}, "sqlglot.tokens.TokenType.AND": {"fullname": "sqlglot.tokens.TokenType.AND", "modulename": "sqlglot.tokens", "qualname": "TokenType.AND", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AND: 'AND'>"}, "sqlglot.tokens.TokenType.OR": {"fullname": "sqlglot.tokens.TokenType.OR", "modulename": "sqlglot.tokens", "qualname": "TokenType.OR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OR: 'OR'>"}, "sqlglot.tokens.TokenType.AMP": {"fullname": "sqlglot.tokens.TokenType.AMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.AMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AMP: 'AMP'>"}, "sqlglot.tokens.TokenType.DPIPE": {"fullname": "sqlglot.tokens.TokenType.DPIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DPIPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DPIPE: 'DPIPE'>"}, "sqlglot.tokens.TokenType.PIPE": {"fullname": "sqlglot.tokens.TokenType.PIPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PIPE: 'PIPE'>"}, "sqlglot.tokens.TokenType.CARET": {"fullname": "sqlglot.tokens.TokenType.CARET", "modulename": "sqlglot.tokens", "qualname": "TokenType.CARET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CARET: 'CARET'>"}, "sqlglot.tokens.TokenType.TILDA": {"fullname": "sqlglot.tokens.TokenType.TILDA", "modulename": "sqlglot.tokens", "qualname": "TokenType.TILDA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TILDA: 'TILDA'>"}, "sqlglot.tokens.TokenType.ARROW": {"fullname": "sqlglot.tokens.TokenType.ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ARROW: 'ARROW'>"}, "sqlglot.tokens.TokenType.DARROW": {"fullname": "sqlglot.tokens.TokenType.DARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.DARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DARROW: 'DARROW'>"}, "sqlglot.tokens.TokenType.FARROW": {"fullname": "sqlglot.tokens.TokenType.FARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.FARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FARROW: 'FARROW'>"}, "sqlglot.tokens.TokenType.HASH": {"fullname": "sqlglot.tokens.TokenType.HASH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HASH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HASH: 'HASH'>"}, "sqlglot.tokens.TokenType.HASH_ARROW": {"fullname": "sqlglot.tokens.TokenType.HASH_ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.HASH_ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HASH_ARROW: 'HASH_ARROW'>"}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"fullname": "sqlglot.tokens.TokenType.DHASH_ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.DHASH_ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DHASH_ARROW: 'DHASH_ARROW'>"}, "sqlglot.tokens.TokenType.LR_ARROW": {"fullname": "sqlglot.tokens.TokenType.LR_ARROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.LR_ARROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LR_ARROW: 'LR_ARROW'>"}, "sqlglot.tokens.TokenType.LT_AT": {"fullname": "sqlglot.tokens.TokenType.LT_AT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LT_AT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LT_AT: 'LT_AT'>"}, "sqlglot.tokens.TokenType.AT_GT": {"fullname": "sqlglot.tokens.TokenType.AT_GT", "modulename": "sqlglot.tokens", "qualname": "TokenType.AT_GT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AT_GT: 'AT_GT'>"}, "sqlglot.tokens.TokenType.DOLLAR": {"fullname": "sqlglot.tokens.TokenType.DOLLAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOLLAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DOLLAR: 'DOLLAR'>"}, "sqlglot.tokens.TokenType.PARAMETER": {"fullname": "sqlglot.tokens.TokenType.PARAMETER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARAMETER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PARAMETER: 'PARAMETER'>"}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"fullname": "sqlglot.tokens.TokenType.SESSION_PARAMETER", "modulename": "sqlglot.tokens", "qualname": "TokenType.SESSION_PARAMETER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SESSION_PARAMETER: 'SESSION_PARAMETER'>"}, "sqlglot.tokens.TokenType.NATIONAL": {"fullname": "sqlglot.tokens.TokenType.NATIONAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATIONAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NATIONAL: 'NATIONAL'>"}, "sqlglot.tokens.TokenType.DAMP": {"fullname": "sqlglot.tokens.TokenType.DAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DAMP: 'DAMP'>"}, "sqlglot.tokens.TokenType.BLOCK_START": {"fullname": "sqlglot.tokens.TokenType.BLOCK_START", "modulename": "sqlglot.tokens", "qualname": "TokenType.BLOCK_START", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BLOCK_START: 'BLOCK_START'>"}, "sqlglot.tokens.TokenType.BLOCK_END": {"fullname": "sqlglot.tokens.TokenType.BLOCK_END", "modulename": "sqlglot.tokens", "qualname": "TokenType.BLOCK_END", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BLOCK_END: 'BLOCK_END'>"}, "sqlglot.tokens.TokenType.SPACE": {"fullname": "sqlglot.tokens.TokenType.SPACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.SPACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SPACE: 'SPACE'>"}, "sqlglot.tokens.TokenType.BREAK": {"fullname": "sqlglot.tokens.TokenType.BREAK", "modulename": "sqlglot.tokens", "qualname": "TokenType.BREAK", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BREAK: 'BREAK'>"}, "sqlglot.tokens.TokenType.STRING": {"fullname": "sqlglot.tokens.TokenType.STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.STRING: 'STRING'>"}, "sqlglot.tokens.TokenType.NUMBER": {"fullname": "sqlglot.tokens.TokenType.NUMBER", "modulename": "sqlglot.tokens", "qualname": "TokenType.NUMBER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NUMBER: 'NUMBER'>"}, "sqlglot.tokens.TokenType.IDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.IDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.IDENTIFIER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IDENTIFIER: 'IDENTIFIER'>"}, "sqlglot.tokens.TokenType.DATABASE": {"fullname": "sqlglot.tokens.TokenType.DATABASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATABASE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DATABASE: 'DATABASE'>"}, "sqlglot.tokens.TokenType.COLUMN": {"fullname": "sqlglot.tokens.TokenType.COLUMN", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLUMN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLUMN: 'COLUMN'>"}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"fullname": "sqlglot.tokens.TokenType.COLUMN_DEF", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLUMN_DEF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLUMN_DEF: 'COLUMN_DEF'>"}, "sqlglot.tokens.TokenType.SCHEMA": {"fullname": "sqlglot.tokens.TokenType.SCHEMA", "modulename": "sqlglot.tokens", "qualname": "TokenType.SCHEMA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SCHEMA: 'SCHEMA'>"}, "sqlglot.tokens.TokenType.TABLE": {"fullname": "sqlglot.tokens.TokenType.TABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TABLE: 'TABLE'>"}, "sqlglot.tokens.TokenType.VAR": {"fullname": "sqlglot.tokens.TokenType.VAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VAR: 'VAR'>"}, "sqlglot.tokens.TokenType.BIT_STRING": {"fullname": "sqlglot.tokens.TokenType.BIT_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIT_STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIT_STRING: 'BIT_STRING'>"}, "sqlglot.tokens.TokenType.HEX_STRING": {"fullname": "sqlglot.tokens.TokenType.HEX_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.HEX_STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HEX_STRING: 'HEX_STRING'>"}, "sqlglot.tokens.TokenType.BYTE_STRING": {"fullname": "sqlglot.tokens.TokenType.BYTE_STRING", "modulename": "sqlglot.tokens", "qualname": "TokenType.BYTE_STRING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BYTE_STRING: 'BYTE_STRING'>"}, "sqlglot.tokens.TokenType.BIT": {"fullname": "sqlglot.tokens.TokenType.BIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIT: 'BIT'>"}, "sqlglot.tokens.TokenType.BOOLEAN": {"fullname": "sqlglot.tokens.TokenType.BOOLEAN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BOOLEAN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BOOLEAN: 'BOOLEAN'>"}, "sqlglot.tokens.TokenType.TINYINT": {"fullname": "sqlglot.tokens.TokenType.TINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TINYINT: 'TINYINT'>"}, "sqlglot.tokens.TokenType.UTINYINT": {"fullname": "sqlglot.tokens.TokenType.UTINYINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UTINYINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UTINYINT: 'UTINYINT'>"}, "sqlglot.tokens.TokenType.SMALLINT": {"fullname": "sqlglot.tokens.TokenType.SMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SMALLINT: 'SMALLINT'>"}, "sqlglot.tokens.TokenType.USMALLINT": {"fullname": "sqlglot.tokens.TokenType.USMALLINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.USMALLINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.USMALLINT: 'USMALLINT'>"}, "sqlglot.tokens.TokenType.INT": {"fullname": "sqlglot.tokens.TokenType.INT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INT: 'INT'>"}, "sqlglot.tokens.TokenType.UINT": {"fullname": "sqlglot.tokens.TokenType.UINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UINT: 'UINT'>"}, "sqlglot.tokens.TokenType.BIGINT": {"fullname": "sqlglot.tokens.TokenType.BIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIGINT: 'BIGINT'>"}, "sqlglot.tokens.TokenType.UBIGINT": {"fullname": "sqlglot.tokens.TokenType.UBIGINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UBIGINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UBIGINT: 'UBIGINT'>"}, "sqlglot.tokens.TokenType.FLOAT": {"fullname": "sqlglot.tokens.TokenType.FLOAT", "modulename": "sqlglot.tokens", "qualname": "TokenType.FLOAT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FLOAT: 'FLOAT'>"}, "sqlglot.tokens.TokenType.DOUBLE": {"fullname": "sqlglot.tokens.TokenType.DOUBLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DOUBLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DOUBLE: 'DOUBLE'>"}, "sqlglot.tokens.TokenType.DECIMAL": {"fullname": "sqlglot.tokens.TokenType.DECIMAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.DECIMAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DECIMAL: 'DECIMAL'>"}, "sqlglot.tokens.TokenType.CHAR": {"fullname": "sqlglot.tokens.TokenType.CHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.CHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CHAR: 'CHAR'>"}, "sqlglot.tokens.TokenType.NCHAR": {"fullname": "sqlglot.tokens.TokenType.NCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NCHAR: 'NCHAR'>"}, "sqlglot.tokens.TokenType.VARCHAR": {"fullname": "sqlglot.tokens.TokenType.VARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VARCHAR: 'VARCHAR'>"}, "sqlglot.tokens.TokenType.NVARCHAR": {"fullname": "sqlglot.tokens.TokenType.NVARCHAR", "modulename": "sqlglot.tokens", "qualname": "TokenType.NVARCHAR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NVARCHAR: 'NVARCHAR'>"}, "sqlglot.tokens.TokenType.TEXT": {"fullname": "sqlglot.tokens.TokenType.TEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.TEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TEXT: 'TEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"fullname": "sqlglot.tokens.TokenType.MEDIUMTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MEDIUMTEXT: 'MEDIUMTEXT'>"}, "sqlglot.tokens.TokenType.LONGTEXT": {"fullname": "sqlglot.tokens.TokenType.LONGTEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGTEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LONGTEXT: 'LONGTEXT'>"}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"fullname": "sqlglot.tokens.TokenType.MEDIUMBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.MEDIUMBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MEDIUMBLOB: 'MEDIUMBLOB'>"}, "sqlglot.tokens.TokenType.LONGBLOB": {"fullname": "sqlglot.tokens.TokenType.LONGBLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.LONGBLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LONGBLOB: 'LONGBLOB'>"}, "sqlglot.tokens.TokenType.BINARY": {"fullname": "sqlglot.tokens.TokenType.BINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.BINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BINARY: 'BINARY'>"}, "sqlglot.tokens.TokenType.VARBINARY": {"fullname": "sqlglot.tokens.TokenType.VARBINARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARBINARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VARBINARY: 'VARBINARY'>"}, "sqlglot.tokens.TokenType.JSON": {"fullname": "sqlglot.tokens.TokenType.JSON", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JSON: 'JSON'>"}, "sqlglot.tokens.TokenType.JSONB": {"fullname": "sqlglot.tokens.TokenType.JSONB", "modulename": "sqlglot.tokens", "qualname": "TokenType.JSONB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JSONB: 'JSONB'>"}, "sqlglot.tokens.TokenType.TIME": {"fullname": "sqlglot.tokens.TokenType.TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIME: 'TIME'>"}, "sqlglot.tokens.TokenType.TIMESTAMP": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIMESTAMP: 'TIMESTAMP'>"}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIMESTAMPTZ: 'TIMESTAMPTZ'>"}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"fullname": "sqlglot.tokens.TokenType.TIMESTAMPLTZ", "modulename": "sqlglot.tokens", "qualname": "TokenType.TIMESTAMPLTZ", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TIMESTAMPLTZ: 'TIMESTAMPLTZ'>"}, "sqlglot.tokens.TokenType.DATETIME": {"fullname": "sqlglot.tokens.TokenType.DATETIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATETIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DATETIME: 'DATETIME'>"}, "sqlglot.tokens.TokenType.DATE": {"fullname": "sqlglot.tokens.TokenType.DATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DATE: 'DATE'>"}, "sqlglot.tokens.TokenType.UUID": {"fullname": "sqlglot.tokens.TokenType.UUID", "modulename": "sqlglot.tokens", "qualname": "TokenType.UUID", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UUID: 'UUID'>"}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"fullname": "sqlglot.tokens.TokenType.GEOGRAPHY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOGRAPHY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GEOGRAPHY: 'GEOGRAPHY'>"}, "sqlglot.tokens.TokenType.NULLABLE": {"fullname": "sqlglot.tokens.TokenType.NULLABLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLABLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLABLE: 'NULLABLE'>"}, "sqlglot.tokens.TokenType.GEOMETRY": {"fullname": "sqlglot.tokens.TokenType.GEOMETRY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GEOMETRY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GEOMETRY: 'GEOMETRY'>"}, "sqlglot.tokens.TokenType.HLLSKETCH": {"fullname": "sqlglot.tokens.TokenType.HLLSKETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.HLLSKETCH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HLLSKETCH: 'HLLSKETCH'>"}, "sqlglot.tokens.TokenType.HSTORE": {"fullname": "sqlglot.tokens.TokenType.HSTORE", "modulename": "sqlglot.tokens", "qualname": "TokenType.HSTORE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HSTORE: 'HSTORE'>"}, "sqlglot.tokens.TokenType.SUPER": {"fullname": "sqlglot.tokens.TokenType.SUPER", "modulename": "sqlglot.tokens", "qualname": "TokenType.SUPER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SUPER: 'SUPER'>"}, "sqlglot.tokens.TokenType.SERIAL": {"fullname": "sqlglot.tokens.TokenType.SERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SERIAL: 'SERIAL'>"}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"fullname": "sqlglot.tokens.TokenType.SMALLSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SMALLSERIAL: 'SMALLSERIAL'>"}, "sqlglot.tokens.TokenType.BIGSERIAL": {"fullname": "sqlglot.tokens.TokenType.BIGSERIAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.BIGSERIAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BIGSERIAL: 'BIGSERIAL'>"}, "sqlglot.tokens.TokenType.XML": {"fullname": "sqlglot.tokens.TokenType.XML", "modulename": "sqlglot.tokens", "qualname": "TokenType.XML", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.XML: 'XML'>"}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"fullname": "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUEIDENTIFIER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNIQUEIDENTIFIER: 'UNIQUEIDENTIFIER'>"}, "sqlglot.tokens.TokenType.MONEY": {"fullname": "sqlglot.tokens.TokenType.MONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.MONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MONEY: 'MONEY'>"}, "sqlglot.tokens.TokenType.SMALLMONEY": {"fullname": "sqlglot.tokens.TokenType.SMALLMONEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SMALLMONEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SMALLMONEY: 'SMALLMONEY'>"}, "sqlglot.tokens.TokenType.ROWVERSION": {"fullname": "sqlglot.tokens.TokenType.ROWVERSION", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWVERSION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROWVERSION: 'ROWVERSION'>"}, "sqlglot.tokens.TokenType.IMAGE": {"fullname": "sqlglot.tokens.TokenType.IMAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IMAGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IMAGE: 'IMAGE'>"}, "sqlglot.tokens.TokenType.VARIANT": {"fullname": "sqlglot.tokens.TokenType.VARIANT", "modulename": "sqlglot.tokens", "qualname": "TokenType.VARIANT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VARIANT: 'VARIANT'>"}, "sqlglot.tokens.TokenType.OBJECT": {"fullname": "sqlglot.tokens.TokenType.OBJECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.OBJECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OBJECT: 'OBJECT'>"}, "sqlglot.tokens.TokenType.INET": {"fullname": "sqlglot.tokens.TokenType.INET", "modulename": "sqlglot.tokens", "qualname": "TokenType.INET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INET: 'INET'>"}, "sqlglot.tokens.TokenType.ALIAS": {"fullname": "sqlglot.tokens.TokenType.ALIAS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALIAS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALIAS: 'ALIAS'>"}, "sqlglot.tokens.TokenType.ALTER": {"fullname": "sqlglot.tokens.TokenType.ALTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALTER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALTER: 'ALTER'>"}, "sqlglot.tokens.TokenType.ALWAYS": {"fullname": "sqlglot.tokens.TokenType.ALWAYS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALWAYS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALWAYS: 'ALWAYS'>"}, "sqlglot.tokens.TokenType.ALL": {"fullname": "sqlglot.tokens.TokenType.ALL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ALL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ALL: 'ALL'>"}, "sqlglot.tokens.TokenType.ANTI": {"fullname": "sqlglot.tokens.TokenType.ANTI", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANTI", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ANTI: 'ANTI'>"}, "sqlglot.tokens.TokenType.ANY": {"fullname": "sqlglot.tokens.TokenType.ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ANY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ANY: 'ANY'>"}, "sqlglot.tokens.TokenType.APPLY": {"fullname": "sqlglot.tokens.TokenType.APPLY", "modulename": "sqlglot.tokens", "qualname": "TokenType.APPLY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.APPLY: 'APPLY'>"}, "sqlglot.tokens.TokenType.ARRAY": {"fullname": "sqlglot.tokens.TokenType.ARRAY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ARRAY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ARRAY: 'ARRAY'>"}, "sqlglot.tokens.TokenType.ASC": {"fullname": "sqlglot.tokens.TokenType.ASC", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASC", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ASC: 'ASC'>"}, "sqlglot.tokens.TokenType.ASOF": {"fullname": "sqlglot.tokens.TokenType.ASOF", "modulename": "sqlglot.tokens", "qualname": "TokenType.ASOF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ASOF: 'ASOF'>"}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.AT_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.AT_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AT_TIME_ZONE: 'AT_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"fullname": "sqlglot.tokens.TokenType.AUTO_INCREMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.AUTO_INCREMENT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.AUTO_INCREMENT: 'AUTO_INCREMENT'>"}, "sqlglot.tokens.TokenType.BEGIN": {"fullname": "sqlglot.tokens.TokenType.BEGIN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BEGIN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BEGIN: 'BEGIN'>"}, "sqlglot.tokens.TokenType.BETWEEN": {"fullname": "sqlglot.tokens.TokenType.BETWEEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.BETWEEN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BETWEEN: 'BETWEEN'>"}, "sqlglot.tokens.TokenType.BOTH": {"fullname": "sqlglot.tokens.TokenType.BOTH", "modulename": "sqlglot.tokens", "qualname": "TokenType.BOTH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BOTH: 'BOTH'>"}, "sqlglot.tokens.TokenType.BUCKET": {"fullname": "sqlglot.tokens.TokenType.BUCKET", "modulename": "sqlglot.tokens", "qualname": "TokenType.BUCKET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BUCKET: 'BUCKET'>"}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"fullname": "sqlglot.tokens.TokenType.BY_DEFAULT", "modulename": "sqlglot.tokens", "qualname": "TokenType.BY_DEFAULT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.BY_DEFAULT: 'BY_DEFAULT'>"}, "sqlglot.tokens.TokenType.CACHE": {"fullname": "sqlglot.tokens.TokenType.CACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CACHE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CACHE: 'CACHE'>"}, "sqlglot.tokens.TokenType.CASCADE": {"fullname": "sqlglot.tokens.TokenType.CASCADE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CASCADE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CASCADE: 'CASCADE'>"}, "sqlglot.tokens.TokenType.CASE": {"fullname": "sqlglot.tokens.TokenType.CASE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CASE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CASE: 'CASE'>"}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"fullname": "sqlglot.tokens.TokenType.CHARACTER_SET", "modulename": "sqlglot.tokens", "qualname": "TokenType.CHARACTER_SET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CHARACTER_SET: 'CHARACTER_SET'>"}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"fullname": "sqlglot.tokens.TokenType.CLUSTER_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.CLUSTER_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CLUSTER_BY: 'CLUSTER_BY'>"}, "sqlglot.tokens.TokenType.COLLATE": {"fullname": "sqlglot.tokens.TokenType.COLLATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.COLLATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COLLATE: 'COLLATE'>"}, "sqlglot.tokens.TokenType.COMMAND": {"fullname": "sqlglot.tokens.TokenType.COMMAND", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMAND", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMAND: 'COMMAND'>"}, "sqlglot.tokens.TokenType.COMMENT": {"fullname": "sqlglot.tokens.TokenType.COMMENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMENT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMENT: 'COMMENT'>"}, "sqlglot.tokens.TokenType.COMMIT": {"fullname": "sqlglot.tokens.TokenType.COMMIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMMIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMMIT: 'COMMIT'>"}, "sqlglot.tokens.TokenType.COMPOUND": {"fullname": "sqlglot.tokens.TokenType.COMPOUND", "modulename": "sqlglot.tokens", "qualname": "TokenType.COMPOUND", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.COMPOUND: 'COMPOUND'>"}, "sqlglot.tokens.TokenType.CONSTRAINT": {"fullname": "sqlglot.tokens.TokenType.CONSTRAINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.CONSTRAINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CONSTRAINT: 'CONSTRAINT'>"}, "sqlglot.tokens.TokenType.CREATE": {"fullname": "sqlglot.tokens.TokenType.CREATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CREATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CREATE: 'CREATE'>"}, "sqlglot.tokens.TokenType.CROSS": {"fullname": "sqlglot.tokens.TokenType.CROSS", "modulename": "sqlglot.tokens", "qualname": "TokenType.CROSS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CROSS: 'CROSS'>"}, "sqlglot.tokens.TokenType.CUBE": {"fullname": "sqlglot.tokens.TokenType.CUBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CUBE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CUBE: 'CUBE'>"}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"fullname": "sqlglot.tokens.TokenType.CURRENT_DATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_DATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_DATE: 'CURRENT_DATE'>"}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"fullname": "sqlglot.tokens.TokenType.CURRENT_DATETIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_DATETIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_DATETIME: 'CURRENT_DATETIME'>"}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"fullname": "sqlglot.tokens.TokenType.CURRENT_ROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_ROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_ROW: 'CURRENT_ROW'>"}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"fullname": "sqlglot.tokens.TokenType.CURRENT_TIME", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_TIME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_TIME: 'CURRENT_TIME'>"}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"fullname": "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP", "modulename": "sqlglot.tokens", "qualname": "TokenType.CURRENT_TIMESTAMP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP'>"}, "sqlglot.tokens.TokenType.DEFAULT": {"fullname": "sqlglot.tokens.TokenType.DEFAULT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DEFAULT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DEFAULT: 'DEFAULT'>"}, "sqlglot.tokens.TokenType.DELETE": {"fullname": "sqlglot.tokens.TokenType.DELETE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DELETE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DELETE: 'DELETE'>"}, "sqlglot.tokens.TokenType.DESC": {"fullname": "sqlglot.tokens.TokenType.DESC", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESC", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DESC: 'DESC'>"}, "sqlglot.tokens.TokenType.DESCRIBE": {"fullname": "sqlglot.tokens.TokenType.DESCRIBE", "modulename": "sqlglot.tokens", "qualname": "TokenType.DESCRIBE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DESCRIBE: 'DESCRIBE'>"}, "sqlglot.tokens.TokenType.DISTINCT": {"fullname": "sqlglot.tokens.TokenType.DISTINCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTINCT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DISTINCT: 'DISTINCT'>"}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"fullname": "sqlglot.tokens.TokenType.DISTINCT_FROM", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTINCT_FROM", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DISTINCT_FROM: 'DISTINCT_FROM'>"}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"fullname": "sqlglot.tokens.TokenType.DISTRIBUTE_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.DISTRIBUTE_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DISTRIBUTE_BY: 'DISTRIBUTE_BY'>"}, "sqlglot.tokens.TokenType.DIV": {"fullname": "sqlglot.tokens.TokenType.DIV", "modulename": "sqlglot.tokens", "qualname": "TokenType.DIV", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DIV: 'DIV'>"}, "sqlglot.tokens.TokenType.DROP": {"fullname": "sqlglot.tokens.TokenType.DROP", "modulename": "sqlglot.tokens", "qualname": "TokenType.DROP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.DROP: 'DROP'>"}, "sqlglot.tokens.TokenType.ELSE": {"fullname": "sqlglot.tokens.TokenType.ELSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ELSE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ELSE: 'ELSE'>"}, "sqlglot.tokens.TokenType.END": {"fullname": "sqlglot.tokens.TokenType.END", "modulename": "sqlglot.tokens", "qualname": "TokenType.END", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.END: 'END'>"}, "sqlglot.tokens.TokenType.ESCAPE": {"fullname": "sqlglot.tokens.TokenType.ESCAPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ESCAPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ESCAPE: 'ESCAPE'>"}, "sqlglot.tokens.TokenType.EXCEPT": {"fullname": "sqlglot.tokens.TokenType.EXCEPT", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXCEPT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EXCEPT: 'EXCEPT'>"}, "sqlglot.tokens.TokenType.EXECUTE": {"fullname": "sqlglot.tokens.TokenType.EXECUTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXECUTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EXECUTE: 'EXECUTE'>"}, "sqlglot.tokens.TokenType.EXISTS": {"fullname": "sqlglot.tokens.TokenType.EXISTS", "modulename": "sqlglot.tokens", "qualname": "TokenType.EXISTS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.EXISTS: 'EXISTS'>"}, "sqlglot.tokens.TokenType.FALSE": {"fullname": "sqlglot.tokens.TokenType.FALSE", "modulename": "sqlglot.tokens", "qualname": "TokenType.FALSE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FALSE: 'FALSE'>"}, "sqlglot.tokens.TokenType.FETCH": {"fullname": "sqlglot.tokens.TokenType.FETCH", "modulename": "sqlglot.tokens", "qualname": "TokenType.FETCH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FETCH: 'FETCH'>"}, "sqlglot.tokens.TokenType.FILTER": {"fullname": "sqlglot.tokens.TokenType.FILTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.FILTER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FILTER: 'FILTER'>"}, "sqlglot.tokens.TokenType.FINAL": {"fullname": "sqlglot.tokens.TokenType.FINAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FINAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FINAL: 'FINAL'>"}, "sqlglot.tokens.TokenType.FIRST": {"fullname": "sqlglot.tokens.TokenType.FIRST", "modulename": "sqlglot.tokens", "qualname": "TokenType.FIRST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FIRST: 'FIRST'>"}, "sqlglot.tokens.TokenType.FOLLOWING": {"fullname": "sqlglot.tokens.TokenType.FOLLOWING", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOLLOWING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FOLLOWING: 'FOLLOWING'>"}, "sqlglot.tokens.TokenType.FOR": {"fullname": "sqlglot.tokens.TokenType.FOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FOR: 'FOR'>"}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"fullname": "sqlglot.tokens.TokenType.FOREIGN_KEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.FOREIGN_KEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FOREIGN_KEY: 'FOREIGN_KEY'>"}, "sqlglot.tokens.TokenType.FORMAT": {"fullname": "sqlglot.tokens.TokenType.FORMAT", "modulename": "sqlglot.tokens", "qualname": "TokenType.FORMAT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FORMAT: 'FORMAT'>"}, "sqlglot.tokens.TokenType.FROM": {"fullname": "sqlglot.tokens.TokenType.FROM", "modulename": "sqlglot.tokens", "qualname": "TokenType.FROM", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FROM: 'FROM'>"}, "sqlglot.tokens.TokenType.FULL": {"fullname": "sqlglot.tokens.TokenType.FULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.FULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FULL: 'FULL'>"}, "sqlglot.tokens.TokenType.FUNCTION": {"fullname": "sqlglot.tokens.TokenType.FUNCTION", "modulename": "sqlglot.tokens", "qualname": "TokenType.FUNCTION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.FUNCTION: 'FUNCTION'>"}, "sqlglot.tokens.TokenType.GLOB": {"fullname": "sqlglot.tokens.TokenType.GLOB", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOB", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GLOB: 'GLOB'>"}, "sqlglot.tokens.TokenType.GLOBAL": {"fullname": "sqlglot.tokens.TokenType.GLOBAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.GLOBAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GLOBAL: 'GLOBAL'>"}, "sqlglot.tokens.TokenType.GROUP_BY": {"fullname": "sqlglot.tokens.TokenType.GROUP_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.GROUP_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GROUP_BY: 'GROUP_BY'>"}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"fullname": "sqlglot.tokens.TokenType.GROUPING_SETS", "modulename": "sqlglot.tokens", "qualname": "TokenType.GROUPING_SETS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.GROUPING_SETS: 'GROUPING_SETS'>"}, "sqlglot.tokens.TokenType.HAVING": {"fullname": "sqlglot.tokens.TokenType.HAVING", "modulename": "sqlglot.tokens", "qualname": "TokenType.HAVING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HAVING: 'HAVING'>"}, "sqlglot.tokens.TokenType.HINT": {"fullname": "sqlglot.tokens.TokenType.HINT", "modulename": "sqlglot.tokens", "qualname": "TokenType.HINT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.HINT: 'HINT'>"}, "sqlglot.tokens.TokenType.IF": {"fullname": "sqlglot.tokens.TokenType.IF", "modulename": "sqlglot.tokens", "qualname": "TokenType.IF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IF: 'IF'>"}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"fullname": "sqlglot.tokens.TokenType.IGNORE_NULLS", "modulename": "sqlglot.tokens", "qualname": "TokenType.IGNORE_NULLS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IGNORE_NULLS: 'IGNORE_NULLS'>"}, "sqlglot.tokens.TokenType.ILIKE": {"fullname": "sqlglot.tokens.TokenType.ILIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.ILIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ILIKE: 'ILIKE'>"}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"fullname": "sqlglot.tokens.TokenType.ILIKE_ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ILIKE_ANY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ILIKE_ANY: 'ILIKE_ANY'>"}, "sqlglot.tokens.TokenType.IN": {"fullname": "sqlglot.tokens.TokenType.IN", "modulename": "sqlglot.tokens", "qualname": "TokenType.IN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IN: 'IN'>"}, "sqlglot.tokens.TokenType.INDEX": {"fullname": "sqlglot.tokens.TokenType.INDEX", "modulename": "sqlglot.tokens", "qualname": "TokenType.INDEX", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INDEX: 'INDEX'>"}, "sqlglot.tokens.TokenType.INNER": {"fullname": "sqlglot.tokens.TokenType.INNER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INNER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INNER: 'INNER'>"}, "sqlglot.tokens.TokenType.INSERT": {"fullname": "sqlglot.tokens.TokenType.INSERT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INSERT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INSERT: 'INSERT'>"}, "sqlglot.tokens.TokenType.INTERSECT": {"fullname": "sqlglot.tokens.TokenType.INTERSECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERSECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTERSECT: 'INTERSECT'>"}, "sqlglot.tokens.TokenType.INTERVAL": {"fullname": "sqlglot.tokens.TokenType.INTERVAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTERVAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTERVAL: 'INTERVAL'>"}, "sqlglot.tokens.TokenType.INTO": {"fullname": "sqlglot.tokens.TokenType.INTO", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTO: 'INTO'>"}, "sqlglot.tokens.TokenType.INTRODUCER": {"fullname": "sqlglot.tokens.TokenType.INTRODUCER", "modulename": "sqlglot.tokens", "qualname": "TokenType.INTRODUCER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.INTRODUCER: 'INTRODUCER'>"}, "sqlglot.tokens.TokenType.IRLIKE": {"fullname": "sqlglot.tokens.TokenType.IRLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.IRLIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IRLIKE: 'IRLIKE'>"}, "sqlglot.tokens.TokenType.IS": {"fullname": "sqlglot.tokens.TokenType.IS", "modulename": "sqlglot.tokens", "qualname": "TokenType.IS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.IS: 'IS'>"}, "sqlglot.tokens.TokenType.ISNULL": {"fullname": "sqlglot.tokens.TokenType.ISNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.ISNULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ISNULL: 'ISNULL'>"}, "sqlglot.tokens.TokenType.JOIN": {"fullname": "sqlglot.tokens.TokenType.JOIN", "modulename": "sqlglot.tokens", "qualname": "TokenType.JOIN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JOIN: 'JOIN'>"}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"fullname": "sqlglot.tokens.TokenType.JOIN_MARKER", "modulename": "sqlglot.tokens", "qualname": "TokenType.JOIN_MARKER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.JOIN_MARKER: 'JOIN_MARKER'>"}, "sqlglot.tokens.TokenType.LANGUAGE": {"fullname": "sqlglot.tokens.TokenType.LANGUAGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LANGUAGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LANGUAGE: 'LANGUAGE'>"}, "sqlglot.tokens.TokenType.LATERAL": {"fullname": "sqlglot.tokens.TokenType.LATERAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.LATERAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LATERAL: 'LATERAL'>"}, "sqlglot.tokens.TokenType.LAZY": {"fullname": "sqlglot.tokens.TokenType.LAZY", "modulename": "sqlglot.tokens", "qualname": "TokenType.LAZY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LAZY: 'LAZY'>"}, "sqlglot.tokens.TokenType.LEADING": {"fullname": "sqlglot.tokens.TokenType.LEADING", "modulename": "sqlglot.tokens", "qualname": "TokenType.LEADING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LEADING: 'LEADING'>"}, "sqlglot.tokens.TokenType.LEFT": {"fullname": "sqlglot.tokens.TokenType.LEFT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LEFT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LEFT: 'LEFT'>"}, "sqlglot.tokens.TokenType.LIKE": {"fullname": "sqlglot.tokens.TokenType.LIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LIKE: 'LIKE'>"}, "sqlglot.tokens.TokenType.LIKE_ANY": {"fullname": "sqlglot.tokens.TokenType.LIKE_ANY", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIKE_ANY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LIKE_ANY: 'LIKE_ANY'>"}, "sqlglot.tokens.TokenType.LIMIT": {"fullname": "sqlglot.tokens.TokenType.LIMIT", "modulename": "sqlglot.tokens", "qualname": "TokenType.LIMIT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LIMIT: 'LIMIT'>"}, "sqlglot.tokens.TokenType.LOAD_DATA": {"fullname": "sqlglot.tokens.TokenType.LOAD_DATA", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOAD_DATA", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LOAD_DATA: 'LOAD_DATA'>"}, "sqlglot.tokens.TokenType.LOCAL": {"fullname": "sqlglot.tokens.TokenType.LOCAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.LOCAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.LOCAL: 'LOCAL'>"}, "sqlglot.tokens.TokenType.MAP": {"fullname": "sqlglot.tokens.TokenType.MAP", "modulename": "sqlglot.tokens", "qualname": "TokenType.MAP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MAP: 'MAP'>"}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"fullname": "sqlglot.tokens.TokenType.MATCH_RECOGNIZE", "modulename": "sqlglot.tokens", "qualname": "TokenType.MATCH_RECOGNIZE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MATCH_RECOGNIZE: 'MATCH_RECOGNIZE'>"}, "sqlglot.tokens.TokenType.MATERIALIZED": {"fullname": "sqlglot.tokens.TokenType.MATERIALIZED", "modulename": "sqlglot.tokens", "qualname": "TokenType.MATERIALIZED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MATERIALIZED: 'MATERIALIZED'>"}, "sqlglot.tokens.TokenType.MERGE": {"fullname": "sqlglot.tokens.TokenType.MERGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.MERGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MERGE: 'MERGE'>"}, "sqlglot.tokens.TokenType.MOD": {"fullname": "sqlglot.tokens.TokenType.MOD", "modulename": "sqlglot.tokens", "qualname": "TokenType.MOD", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.MOD: 'MOD'>"}, "sqlglot.tokens.TokenType.NATURAL": {"fullname": "sqlglot.tokens.TokenType.NATURAL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NATURAL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NATURAL: 'NATURAL'>"}, "sqlglot.tokens.TokenType.NEXT": {"fullname": "sqlglot.tokens.TokenType.NEXT", "modulename": "sqlglot.tokens", "qualname": "TokenType.NEXT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NEXT: 'NEXT'>"}, "sqlglot.tokens.TokenType.NO_ACTION": {"fullname": "sqlglot.tokens.TokenType.NO_ACTION", "modulename": "sqlglot.tokens", "qualname": "TokenType.NO_ACTION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NO_ACTION: 'NO_ACTION'>"}, "sqlglot.tokens.TokenType.NOTNULL": {"fullname": "sqlglot.tokens.TokenType.NOTNULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NOTNULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NOTNULL: 'NOTNULL'>"}, "sqlglot.tokens.TokenType.NULL": {"fullname": "sqlglot.tokens.TokenType.NULL", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULL", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULL: 'NULL'>"}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"fullname": "sqlglot.tokens.TokenType.NULLS_FIRST", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLS_FIRST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLS_FIRST: 'NULLS_FIRST'>"}, "sqlglot.tokens.TokenType.NULLS_LAST": {"fullname": "sqlglot.tokens.TokenType.NULLS_LAST", "modulename": "sqlglot.tokens", "qualname": "TokenType.NULLS_LAST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.NULLS_LAST: 'NULLS_LAST'>"}, "sqlglot.tokens.TokenType.OFFSET": {"fullname": "sqlglot.tokens.TokenType.OFFSET", "modulename": "sqlglot.tokens", "qualname": "TokenType.OFFSET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OFFSET: 'OFFSET'>"}, "sqlglot.tokens.TokenType.ON": {"fullname": "sqlglot.tokens.TokenType.ON", "modulename": "sqlglot.tokens", "qualname": "TokenType.ON", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ON: 'ON'>"}, "sqlglot.tokens.TokenType.ONLY": {"fullname": "sqlglot.tokens.TokenType.ONLY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ONLY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ONLY: 'ONLY'>"}, "sqlglot.tokens.TokenType.OPTIONS": {"fullname": "sqlglot.tokens.TokenType.OPTIONS", "modulename": "sqlglot.tokens", "qualname": "TokenType.OPTIONS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OPTIONS: 'OPTIONS'>"}, "sqlglot.tokens.TokenType.ORDER_BY": {"fullname": "sqlglot.tokens.TokenType.ORDER_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDER_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ORDER_BY: 'ORDER_BY'>"}, "sqlglot.tokens.TokenType.ORDERED": {"fullname": "sqlglot.tokens.TokenType.ORDERED", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDERED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ORDERED: 'ORDERED'>"}, "sqlglot.tokens.TokenType.ORDINALITY": {"fullname": "sqlglot.tokens.TokenType.ORDINALITY", "modulename": "sqlglot.tokens", "qualname": "TokenType.ORDINALITY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ORDINALITY: 'ORDINALITY'>"}, "sqlglot.tokens.TokenType.OUTER": {"fullname": "sqlglot.tokens.TokenType.OUTER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OUTER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OUTER: 'OUTER'>"}, "sqlglot.tokens.TokenType.OUT_OF": {"fullname": "sqlglot.tokens.TokenType.OUT_OF", "modulename": "sqlglot.tokens", "qualname": "TokenType.OUT_OF", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OUT_OF: 'OUT_OF'>"}, "sqlglot.tokens.TokenType.OVER": {"fullname": "sqlglot.tokens.TokenType.OVER", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OVER: 'OVER'>"}, "sqlglot.tokens.TokenType.OVERLAPS": {"fullname": "sqlglot.tokens.TokenType.OVERLAPS", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERLAPS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OVERLAPS: 'OVERLAPS'>"}, "sqlglot.tokens.TokenType.OVERWRITE": {"fullname": "sqlglot.tokens.TokenType.OVERWRITE", "modulename": "sqlglot.tokens", "qualname": "TokenType.OVERWRITE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.OVERWRITE: 'OVERWRITE'>"}, "sqlglot.tokens.TokenType.PARTITION": {"fullname": "sqlglot.tokens.TokenType.PARTITION", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARTITION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PARTITION: 'PARTITION'>"}, "sqlglot.tokens.TokenType.PARTITION_BY": {"fullname": "sqlglot.tokens.TokenType.PARTITION_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.PARTITION_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PARTITION_BY: 'PARTITION_BY'>"}, "sqlglot.tokens.TokenType.PERCENT": {"fullname": "sqlglot.tokens.TokenType.PERCENT", "modulename": "sqlglot.tokens", "qualname": "TokenType.PERCENT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PERCENT: 'PERCENT'>"}, "sqlglot.tokens.TokenType.PIVOT": {"fullname": "sqlglot.tokens.TokenType.PIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.PIVOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PIVOT: 'PIVOT'>"}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"fullname": "sqlglot.tokens.TokenType.PLACEHOLDER", "modulename": "sqlglot.tokens", "qualname": "TokenType.PLACEHOLDER", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PLACEHOLDER: 'PLACEHOLDER'>"}, "sqlglot.tokens.TokenType.PRECEDING": {"fullname": "sqlglot.tokens.TokenType.PRECEDING", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRECEDING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PRECEDING: 'PRECEDING'>"}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"fullname": "sqlglot.tokens.TokenType.PRIMARY_KEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.PRIMARY_KEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PRIMARY_KEY: 'PRIMARY_KEY'>"}, "sqlglot.tokens.TokenType.PROCEDURE": {"fullname": "sqlglot.tokens.TokenType.PROCEDURE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PROCEDURE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PROCEDURE: 'PROCEDURE'>"}, "sqlglot.tokens.TokenType.PROPERTIES": {"fullname": "sqlglot.tokens.TokenType.PROPERTIES", "modulename": "sqlglot.tokens", "qualname": "TokenType.PROPERTIES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PROPERTIES: 'PROPERTIES'>"}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"fullname": "sqlglot.tokens.TokenType.PSEUDO_TYPE", "modulename": "sqlglot.tokens", "qualname": "TokenType.PSEUDO_TYPE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.PSEUDO_TYPE: 'PSEUDO_TYPE'>"}, "sqlglot.tokens.TokenType.QUALIFY": {"fullname": "sqlglot.tokens.TokenType.QUALIFY", "modulename": "sqlglot.tokens", "qualname": "TokenType.QUALIFY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.QUALIFY: 'QUALIFY'>"}, "sqlglot.tokens.TokenType.QUOTE": {"fullname": "sqlglot.tokens.TokenType.QUOTE", "modulename": "sqlglot.tokens", "qualname": "TokenType.QUOTE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.QUOTE: 'QUOTE'>"}, "sqlglot.tokens.TokenType.RANGE": {"fullname": "sqlglot.tokens.TokenType.RANGE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RANGE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RANGE: 'RANGE'>"}, "sqlglot.tokens.TokenType.RECURSIVE": {"fullname": "sqlglot.tokens.TokenType.RECURSIVE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RECURSIVE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RECURSIVE: 'RECURSIVE'>"}, "sqlglot.tokens.TokenType.REPLACE": {"fullname": "sqlglot.tokens.TokenType.REPLACE", "modulename": "sqlglot.tokens", "qualname": "TokenType.REPLACE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.REPLACE: 'REPLACE'>"}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"fullname": "sqlglot.tokens.TokenType.RESPECT_NULLS", "modulename": "sqlglot.tokens", "qualname": "TokenType.RESPECT_NULLS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RESPECT_NULLS: 'RESPECT_NULLS'>"}, "sqlglot.tokens.TokenType.RETURNING": {"fullname": "sqlglot.tokens.TokenType.RETURNING", "modulename": "sqlglot.tokens", "qualname": "TokenType.RETURNING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RETURNING: 'RETURNING'>"}, "sqlglot.tokens.TokenType.REFERENCES": {"fullname": "sqlglot.tokens.TokenType.REFERENCES", "modulename": "sqlglot.tokens", "qualname": "TokenType.REFERENCES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.REFERENCES: 'REFERENCES'>"}, "sqlglot.tokens.TokenType.RIGHT": {"fullname": "sqlglot.tokens.TokenType.RIGHT", "modulename": "sqlglot.tokens", "qualname": "TokenType.RIGHT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RIGHT: 'RIGHT'>"}, "sqlglot.tokens.TokenType.RLIKE": {"fullname": "sqlglot.tokens.TokenType.RLIKE", "modulename": "sqlglot.tokens", "qualname": "TokenType.RLIKE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.RLIKE: 'RLIKE'>"}, "sqlglot.tokens.TokenType.ROLLBACK": {"fullname": "sqlglot.tokens.TokenType.ROLLBACK", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLBACK", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROLLBACK: 'ROLLBACK'>"}, "sqlglot.tokens.TokenType.ROLLUP": {"fullname": "sqlglot.tokens.TokenType.ROLLUP", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROLLUP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROLLUP: 'ROLLUP'>"}, "sqlglot.tokens.TokenType.ROW": {"fullname": "sqlglot.tokens.TokenType.ROW", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROW: 'ROW'>"}, "sqlglot.tokens.TokenType.ROWS": {"fullname": "sqlglot.tokens.TokenType.ROWS", "modulename": "sqlglot.tokens", "qualname": "TokenType.ROWS", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.ROWS: 'ROWS'>"}, "sqlglot.tokens.TokenType.SEED": {"fullname": "sqlglot.tokens.TokenType.SEED", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEED: 'SEED'>"}, "sqlglot.tokens.TokenType.SELECT": {"fullname": "sqlglot.tokens.TokenType.SELECT", "modulename": "sqlglot.tokens", "qualname": "TokenType.SELECT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SELECT: 'SELECT'>"}, "sqlglot.tokens.TokenType.SEMI": {"fullname": "sqlglot.tokens.TokenType.SEMI", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEMI", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEMI: 'SEMI'>"}, "sqlglot.tokens.TokenType.SEPARATOR": {"fullname": "sqlglot.tokens.TokenType.SEPARATOR", "modulename": "sqlglot.tokens", "qualname": "TokenType.SEPARATOR", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SEPARATOR: 'SEPARATOR'>"}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"fullname": "sqlglot.tokens.TokenType.SERDE_PROPERTIES", "modulename": "sqlglot.tokens", "qualname": "TokenType.SERDE_PROPERTIES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SERDE_PROPERTIES: 'SERDE_PROPERTIES'>"}, "sqlglot.tokens.TokenType.SET": {"fullname": "sqlglot.tokens.TokenType.SET", "modulename": "sqlglot.tokens", "qualname": "TokenType.SET", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SET: 'SET'>"}, "sqlglot.tokens.TokenType.SHOW": {"fullname": "sqlglot.tokens.TokenType.SHOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.SHOW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SHOW: 'SHOW'>"}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"fullname": "sqlglot.tokens.TokenType.SIMILAR_TO", "modulename": "sqlglot.tokens", "qualname": "TokenType.SIMILAR_TO", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SIMILAR_TO: 'SIMILAR_TO'>"}, "sqlglot.tokens.TokenType.SOME": {"fullname": "sqlglot.tokens.TokenType.SOME", "modulename": "sqlglot.tokens", "qualname": "TokenType.SOME", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SOME: 'SOME'>"}, "sqlglot.tokens.TokenType.SORTKEY": {"fullname": "sqlglot.tokens.TokenType.SORTKEY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SORTKEY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SORTKEY: 'SORTKEY'>"}, "sqlglot.tokens.TokenType.SORT_BY": {"fullname": "sqlglot.tokens.TokenType.SORT_BY", "modulename": "sqlglot.tokens", "qualname": "TokenType.SORT_BY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.SORT_BY: 'SORT_BY'>"}, "sqlglot.tokens.TokenType.STRUCT": {"fullname": "sqlglot.tokens.TokenType.STRUCT", "modulename": "sqlglot.tokens", "qualname": "TokenType.STRUCT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.STRUCT: 'STRUCT'>"}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"fullname": "sqlglot.tokens.TokenType.TABLE_SAMPLE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TABLE_SAMPLE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TABLE_SAMPLE: 'TABLE_SAMPLE'>"}, "sqlglot.tokens.TokenType.TEMPORARY": {"fullname": "sqlglot.tokens.TokenType.TEMPORARY", "modulename": "sqlglot.tokens", "qualname": "TokenType.TEMPORARY", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TEMPORARY: 'TEMPORARY'>"}, "sqlglot.tokens.TokenType.TOP": {"fullname": "sqlglot.tokens.TokenType.TOP", "modulename": "sqlglot.tokens", "qualname": "TokenType.TOP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TOP: 'TOP'>"}, "sqlglot.tokens.TokenType.THEN": {"fullname": "sqlglot.tokens.TokenType.THEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.THEN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.THEN: 'THEN'>"}, "sqlglot.tokens.TokenType.TRAILING": {"fullname": "sqlglot.tokens.TokenType.TRAILING", "modulename": "sqlglot.tokens", "qualname": "TokenType.TRAILING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TRAILING: 'TRAILING'>"}, "sqlglot.tokens.TokenType.TRUE": {"fullname": "sqlglot.tokens.TokenType.TRUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.TRUE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.TRUE: 'TRUE'>"}, "sqlglot.tokens.TokenType.UNBOUNDED": {"fullname": "sqlglot.tokens.TokenType.UNBOUNDED", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNBOUNDED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNBOUNDED: 'UNBOUNDED'>"}, "sqlglot.tokens.TokenType.UNCACHE": {"fullname": "sqlglot.tokens.TokenType.UNCACHE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNCACHE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNCACHE: 'UNCACHE'>"}, "sqlglot.tokens.TokenType.UNION": {"fullname": "sqlglot.tokens.TokenType.UNION", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNION", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNION: 'UNION'>"}, "sqlglot.tokens.TokenType.UNLOGGED": {"fullname": "sqlglot.tokens.TokenType.UNLOGGED", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNLOGGED", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNLOGGED: 'UNLOGGED'>"}, "sqlglot.tokens.TokenType.UNNEST": {"fullname": "sqlglot.tokens.TokenType.UNNEST", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNNEST", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNNEST: 'UNNEST'>"}, "sqlglot.tokens.TokenType.UNPIVOT": {"fullname": "sqlglot.tokens.TokenType.UNPIVOT", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNPIVOT", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNPIVOT: 'UNPIVOT'>"}, "sqlglot.tokens.TokenType.UPDATE": {"fullname": "sqlglot.tokens.TokenType.UPDATE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UPDATE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UPDATE: 'UPDATE'>"}, "sqlglot.tokens.TokenType.USE": {"fullname": "sqlglot.tokens.TokenType.USE", "modulename": "sqlglot.tokens", "qualname": "TokenType.USE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.USE: 'USE'>"}, "sqlglot.tokens.TokenType.USING": {"fullname": "sqlglot.tokens.TokenType.USING", "modulename": "sqlglot.tokens", "qualname": "TokenType.USING", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.USING: 'USING'>"}, "sqlglot.tokens.TokenType.VALUES": {"fullname": "sqlglot.tokens.TokenType.VALUES", "modulename": "sqlglot.tokens", "qualname": "TokenType.VALUES", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VALUES: 'VALUES'>"}, "sqlglot.tokens.TokenType.VIEW": {"fullname": "sqlglot.tokens.TokenType.VIEW", "modulename": "sqlglot.tokens", "qualname": "TokenType.VIEW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VIEW: 'VIEW'>"}, "sqlglot.tokens.TokenType.VOLATILE": {"fullname": "sqlglot.tokens.TokenType.VOLATILE", "modulename": "sqlglot.tokens", "qualname": "TokenType.VOLATILE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.VOLATILE: 'VOLATILE'>"}, "sqlglot.tokens.TokenType.WHEN": {"fullname": "sqlglot.tokens.TokenType.WHEN", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHEN", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WHEN: 'WHEN'>"}, "sqlglot.tokens.TokenType.WHERE": {"fullname": "sqlglot.tokens.TokenType.WHERE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WHERE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WHERE: 'WHERE'>"}, "sqlglot.tokens.TokenType.WINDOW": {"fullname": "sqlglot.tokens.TokenType.WINDOW", "modulename": "sqlglot.tokens", "qualname": "TokenType.WINDOW", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WINDOW: 'WINDOW'>"}, "sqlglot.tokens.TokenType.WITH": {"fullname": "sqlglot.tokens.TokenType.WITH", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITH: 'WITH'>"}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.WITH_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITH_TIME_ZONE: 'WITH_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITH_LOCAL_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITH_LOCAL_TIME_ZONE: 'WITH_LOCAL_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"fullname": "sqlglot.tokens.TokenType.WITHIN_GROUP", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITHIN_GROUP", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITHIN_GROUP: 'WITHIN_GROUP'>"}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"fullname": "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE", "modulename": "sqlglot.tokens", "qualname": "TokenType.WITHOUT_TIME_ZONE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.WITHOUT_TIME_ZONE: 'WITHOUT_TIME_ZONE'>"}, "sqlglot.tokens.TokenType.UNIQUE": {"fullname": "sqlglot.tokens.TokenType.UNIQUE", "modulename": "sqlglot.tokens", "qualname": "TokenType.UNIQUE", "kind": "variable", "doc": "<p></p>\n", "default_value": "<TokenType.UNIQUE: 'UNIQUE'>"}, "sqlglot.tokens.Token": {"fullname": "sqlglot.tokens.Token", "modulename": "sqlglot.tokens", "qualname": "Token", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.tokens.Token.__init__": {"fullname": "sqlglot.tokens.Token.__init__", "modulename": "sqlglot.tokens", "qualname": "Token.__init__", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">token_type</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">TokenType</span>,</span><span class=\"param\">\t<span class=\"n\">text</span><span class=\"p\">:</span> <span class=\"nb\">str</span>,</span><span class=\"param\">\t<span class=\"n\">line</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>,</span><span class=\"param\">\t<span class=\"n\">col</span><span class=\"p\">:</span> <span class=\"nb\">int</span> <span class=\"o\">=</span> <span class=\"mi\">1</span>,</span><span class=\"param\">\t<span class=\"n\">comments</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"nb\">str</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"p\">[]</span></span>)</span>"}, "sqlglot.tokens.Token.number": {"fullname": "sqlglot.tokens.Token.number", "modulename": "sqlglot.tokens", "qualname": "Token.number", "kind": "function", "doc": "<p>Returns a NUMBER token with <code>number</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">number</span><span class=\"p\">:</span> <span class=\"nb\">int</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Token.string": {"fullname": "sqlglot.tokens.Token.string", "modulename": "sqlglot.tokens", "qualname": "Token.string", "kind": "function", "doc": "<p>Returns a STRING token with <code>string</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">string</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Token.identifier": {"fullname": "sqlglot.tokens.Token.identifier", "modulename": "sqlglot.tokens", "qualname": "Token.identifier", "kind": "function", "doc": "<p>Returns an IDENTIFIER token with <code>identifier</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">identifier</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Token.var": {"fullname": "sqlglot.tokens.Token.var", "modulename": "sqlglot.tokens", "qualname": "Token.var", "kind": "function", "doc": "<p>Returns an VAR token with <code>var</code> as its text.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">cls</span>, </span><span class=\"param\"><span class=\"n\">var</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Tokenizer": {"fullname": "sqlglot.tokens.Tokenizer", "modulename": "sqlglot.tokens", "qualname": "Tokenizer", "kind": "class", "doc": "<p></p>\n"}, "sqlglot.tokens.Tokenizer.reset": {"fullname": "sqlglot.tokens.Tokenizer.reset", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.reset", "kind": "function", "doc": "<p></p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span></span><span class=\"return-annotation\">) -> <span class=\"kc\">None</span>:</span></span>", "funcdef": "def"}, "sqlglot.tokens.Tokenizer.tokenize": {"fullname": "sqlglot.tokens.Tokenizer.tokenize", "modulename": "sqlglot.tokens", "qualname": "Tokenizer.tokenize", "kind": "function", "doc": "<p>Returns a list of tokens corresponding to the SQL string <code>sql</code>.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"bp\">self</span>, </span><span class=\"param\"><span class=\"n\">sql</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">tokens</span><span class=\"o\">.</span><span class=\"n\">Token</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms": {"fullname": "sqlglot.transforms", "modulename": "sqlglot.transforms", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.transforms.unalias_group": {"fullname": "sqlglot.transforms.unalias_group", "modulename": "sqlglot.transforms", "qualname": "unalias_group", "kind": "function", "doc": "<p>Replace references to select aliases in GROUP BY clauses.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"kn\">import</span> <span class=\"nn\">sqlglot</span>\n<span class=\"gp\">>>> </span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">parse_one</span><span class=\"p\">(</span><span class=\"s2\">"SELECT a AS b FROM x GROUP BY b"</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">transform</span><span class=\"p\">(</span><span class=\"n\">unalias_group</span><span class=\"p\">)</span><span class=\"o\">.</span><span class=\"n\">sql</span><span class=\"p\">()</span>\n<span class=\"go\">'SELECT a AS b FROM x GROUP BY 1'</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression that will be transformed.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.eliminate_distinct_on": {"fullname": "sqlglot.transforms.eliminate_distinct_on", "modulename": "sqlglot.transforms", "qualname": "eliminate_distinct_on", "kind": "function", "doc": "<p>Convert SELECT DISTINCT ON statements to a subquery with a window function.</p>\n\n<p>This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>expression:</strong> the expression that will be transformed.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The transformed expression.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.eliminate_qualify": {"fullname": "sqlglot.transforms.eliminate_qualify", "modulename": "sqlglot.transforms", "qualname": "eliminate_qualify", "kind": "function", "doc": "<p>Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.</p>\n\n<p>The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:\n<a href=\"https://docs.snowflake.com/en/sql-reference/constructs/qualify\">https://docs.snowflake.com/en/sql-reference/constructs/qualify</a></p>\n\n<p>Some dialects don't support window functions in the WHERE clause, so we need to include them as\nprojections in the subquery, in order to refer to them in the outer filter using aliases. Also,\nif a column is referenced in the QUALIFY clause but is not selected, we need to include it too,\notherwise we won't be able to refer to it in the outer query's WHERE clause.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.remove_precision_parameterized_types": {"fullname": "sqlglot.transforms.remove_precision_parameterized_types", "modulename": "sqlglot.transforms", "qualname": "remove_precision_parameterized_types", "kind": "function", "doc": "<p>Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions.\nThis transforms removes the precision from parameterized types in expressions.</p>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">expression</span><span class=\"p\">:</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span></span><span class=\"return-annotation\">) -> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.preprocess": {"fullname": "sqlglot.transforms.preprocess", "modulename": "sqlglot.transforms", "qualname": "preprocess", "kind": "function", "doc": "<p>Creates a new transform by chaining a sequence of transformations and converts the resulting\nexpression to SQL, using an appropriate <code>Generator.TRANSFORMS</code> function.</p>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>transforms:</strong> sequence of transform functions. These will be called in order.</li>\n<li><strong>to_sql:</strong> final transform that converts the resulting expression to a SQL string.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>Function that can be used as a generator transform.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code multiline\">(<span class=\"param\">\t<span class=\"n\">transforms</span><span class=\"p\">:</span> <span class=\"n\">List</span><span class=\"p\">[</span><span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">]]</span>,</span><span class=\"param\">\t<span class=\"n\">to_sql</span><span class=\"p\">:</span> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"nb\">str</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span><span class=\"p\">[[</span><span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">generator</span><span class=\"o\">.</span><span class=\"n\">Generator</span><span class=\"p\">,</span> <span class=\"n\">sqlglot</span><span class=\"o\">.</span><span class=\"n\">expressions</span><span class=\"o\">.</span><span class=\"n\">Expression</span><span class=\"p\">],</span> <span class=\"nb\">str</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}, "sqlglot.transforms.delegate": {"fullname": "sqlglot.transforms.delegate", "modulename": "sqlglot.transforms", "qualname": "delegate", "kind": "function", "doc": "<p>Create a new method that delegates to <code>attr</code>. This is useful for creating <code>Generator.TRANSFORMS</code>\nfunctions that delegate to existing generator methods.</p>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">attr</span><span class=\"p\">:</span> <span class=\"nb\">str</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Callable</span>:</span></span>", "funcdef": "def"}, "sqlglot.trie": {"fullname": "sqlglot.trie", "modulename": "sqlglot.trie", "kind": "module", "doc": "<p></p>\n"}, "sqlglot.trie.new_trie": {"fullname": "sqlglot.trie.new_trie", "modulename": "sqlglot.trie", "qualname": "new_trie", "kind": "function", "doc": "<p>Creates a new trie out of a collection of keywords.</p>\n\n<p>The trie is represented as a sequence of nested dictionaries keyed by either single character\nstrings, or by 0, which is used to designate that a keyword is in the trie.</p>\n\n<h6 id=\"example\">Example:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"bla"</span><span class=\"p\">,</span> <span class=\"s2\">"foo"</span><span class=\"p\">,</span> <span class=\"s2\">"blab"</span><span class=\"p\">])</span>\n<span class=\"go\">{'b': {'l': {'a': {0: True, 'b': {0: True}}}}, 'f': {'o': {'o': {0: True}}}}</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>keywords:</strong> the keywords to create the trie from.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>The trie corresponding to <code>keywords</code>.</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">keywords</span><span class=\"p\">:</span> <span class=\"n\">Iterable</span><span class=\"p\">[</span><span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Hashable</span><span class=\"p\">]]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Dict</span>:</span></span>", "funcdef": "def"}, "sqlglot.trie.in_trie": {"fullname": "sqlglot.trie.in_trie", "modulename": "sqlglot.trie", "qualname": "in_trie", "kind": "function", "doc": "<p>Checks whether a key is in a trie.</p>\n\n<h6 id=\"examples\">Examples:</h6>\n\n<blockquote>\n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">in_trie</span><span class=\"p\">(</span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"cat"</span><span class=\"p\">]),</span> <span class=\"s2\">"bob"</span><span class=\"p\">)</span>\n<span class=\"go\">(0, {'c': {'a': {'t': {0: True}}}})</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">in_trie</span><span class=\"p\">(</span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"cat"</span><span class=\"p\">]),</span> <span class=\"s2\">"ca"</span><span class=\"p\">)</span>\n<span class=\"go\">(1, {'t': {0: True}})</span>\n</code></pre>\n </div>\n \n <div class=\"pdoc-code codehilite\">\n<pre><span></span><code><span class=\"gp\">>>> </span><span class=\"n\">in_trie</span><span class=\"p\">(</span><span class=\"n\">new_trie</span><span class=\"p\">([</span><span class=\"s2\">"cat"</span><span class=\"p\">]),</span> <span class=\"s2\">"cat"</span><span class=\"p\">)</span>\n<span class=\"go\">(2, {0: True})</span>\n</code></pre>\n </div>\n</blockquote>\n\n<h6 id=\"arguments\">Arguments:</h6>\n\n<ul>\n<li><strong>trie:</strong> the trie to be searched.</li>\n<li><strong>key:</strong> the target key.</li>\n</ul>\n\n<h6 id=\"returns\">Returns:</h6>\n\n<blockquote>\n <p>A pair <code>(value, subtrie)</code>, where <code>subtrie</code> is the sub-trie we get at the point where the search stops, and <code>value</code>\n is either 0 (search was unsuccessful), 1 (<code>value</code> is a prefix of a keyword in <code>trie</code>) or 2 (<code>key is in</code>trie`).</p>\n</blockquote>\n", "signature": "<span class=\"signature pdoc-code condensed\">(<span class=\"param\"><span class=\"n\">trie</span><span class=\"p\">:</span> <span class=\"n\">Dict</span>, </span><span class=\"param\"><span class=\"n\">key</span><span class=\"p\">:</span> <span class=\"n\">Sequence</span><span class=\"p\">[</span><span class=\"n\">Hashable</span><span class=\"p\">]</span></span><span class=\"return-annotation\">) -> <span class=\"n\">Tuple</span><span class=\"p\">[</span><span class=\"nb\">int</span><span class=\"p\">,</span> <span class=\"n\">Dict</span><span class=\"p\">]</span>:</span></span>", "funcdef": "def"}}, "docInfo": {"sqlglot": {"qualname": 0, "fullname": 1, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 5685}, "sqlglot.pretty": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 1, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.schema": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.parse": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 124, "bases": 0, "doc": 84}, "sqlglot.parse_one": {"qualname": 2, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 198, "bases": 0, "doc": 99}, "sqlglot.transpile": {"qualname": 1, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 239, "bases": 0, "doc": 177}, "sqlglot.dataframe": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3543}, "sqlglot.dataframe.sql": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession.table": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 208, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.SparkSession.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 259, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.select": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.alias": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.where": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.filter": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 86, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.agg": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.join": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 180, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 120, "bases": 0, "doc": 44}, "sqlglot.dataframe.sql.DataFrame.sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 120, "bases": 0, "doc": 44}, "sqlglot.dataframe.sql.DataFrame.union": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.intersect": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.distinct": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.dropna": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.fillna": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 123, "bases": 0, "doc": 100}, "sqlglot.dataframe.sql.DataFrame.replace": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 217, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.drop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 80, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.limit": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.hint": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.repartition": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.cache": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrame.persist": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 20}, "sqlglot.dataframe.sql.GroupedData": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 106, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.agg": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.count": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.mean": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.avg": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.max": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.min": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.sum": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.GroupedData.pivot": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 63, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ensure_col": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ensure_cols": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 98, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 123, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 92, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.binary_op": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 85, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 85, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.unary_op": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ensure_literal": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.set_table_name": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.alias": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.asc": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.desc": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.when": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.otherwise": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.isNull": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.isNotNull": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.cast": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 27}, "sqlglot.dataframe.sql.Column.startswith": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 78, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.endswith": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 78, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.rlike": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.like": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.ilike": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.substr": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 121, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.isin": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 81, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.between": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 97, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Column.over": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 143, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 177, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.partitionBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.orderBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.rowsBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.Window.rangeBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 104, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameReader.table": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 122, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 71, "bases": 0, "doc": 3}, "sqlglot.dialects": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 764}, "sqlglot.dialects.bigquery": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "sqlglot.dialects.bigquery.BigQuery": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.databricks": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.databricks.Databricks": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.databricks.Databricks.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.databricks.Databricks.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 503}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.dialect": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 5}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 8, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.HIVE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.SPARK": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TRINO": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TSQL": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.DRILL": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 105, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.format_time": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 70, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.parse": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.parse_into": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 126, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.generate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 50, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.transpile": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 37, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.tokenize": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.Dialect.generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.rename_func": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.if_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.inline_array_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_ilike_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"qualname": 5, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_tablesample_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_pivot_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_trycast_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.no_properties_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.str_position_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.struct_extract_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.var_map_sql": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 91, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.format_time_lambda": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 71}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 46}, "sqlglot.dialects.dialect.parse_date_delta": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 78, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.date_trunc_to_time": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.locate_to_strposition": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.timestrtotime_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.datestrtodate_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.min_or_least": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.count_if_to_sum": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.trim_sql": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.str_to_time_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "sqlglot.dialects.drill": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.drill.Drill": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.drill.Drill.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.drill.Drill.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.drill.Drill.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.dialects.duckdb": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.duckdb.DuckDB": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "sqlglot.dialects.hive": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.hive.Hive": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.hive.Hive.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.hive.Hive.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.hive.Hive.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.mysql": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.mysql.MySQL": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.mysql.MySQL.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.mysql.MySQL.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.oracle.Oracle.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.postgres": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.postgres.Postgres": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.postgres.Postgres.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.postgres.Postgres.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.presto": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.presto.Presto": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.presto.Presto.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.presto.Presto.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.presto.Presto.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.redshift": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.redshift.Redshift": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.redshift.Redshift.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.redshift.Redshift.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 503}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 58}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 19}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 16}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 75}, "sqlglot.dialects.snowflake": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 66}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 125}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "sqlglot.dialects.spark": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.spark.Spark": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.spark.Spark.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.spark.Spark.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 503}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.spark.Spark.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.sqlite": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.sqlite.SQLite.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.starrocks": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.starrocks.StarRocks": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 174}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 503}, "sqlglot.dialects.tableau": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.tableau.Tableau": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.tableau.Tableau.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.tableau.Tableau.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.teradata": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.teradata.Teradata.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.trino": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.trino.Trino": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.trino.Trino.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 503}, "sqlglot.dialects.trino.Trino.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 5, "doc": 3}, "sqlglot.dialects.tsql": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"qualname": 6, "fullname": 9, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.dialects.tsql.TSQL": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.dialects.tsql.TSQL.Parser": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 174}, "sqlglot.dialects.tsql.TSQL.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.diff": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 6444}, "sqlglot.diff.Insert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.diff.Insert.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.diff.Remove": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.diff.Remove.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.diff.Move": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "sqlglot.diff.Move.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.diff.Update": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.diff.Update.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.diff.Keep": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.diff.Keep.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.diff.diff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 206, "bases": 0, "doc": 306}, "sqlglot.diff.ChangeDistiller": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 46}, "sqlglot.diff.ChangeDistiller.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.diff.ChangeDistiller.diff": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 199, "bases": 0, "doc": 3}, "sqlglot.errors": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.errors.ErrorLevel": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.errors.ErrorLevel.IGNORE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 6}, "sqlglot.errors.ErrorLevel.WARN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 6}, "sqlglot.errors.ErrorLevel.RAISE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 12}, "sqlglot.errors.SqlglotError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 11}, "sqlglot.errors.UnsupportedError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.ParseError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.ParseError.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.errors.ParseError.new": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 207, "bases": 0, "doc": 3}, "sqlglot.errors.TokenError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.OptimizeError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.SchemaError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.ExecuteError": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 11}, "sqlglot.errors.concat_messages": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "sqlglot.errors.merge_errors": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.executor": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 2950}, "sqlglot.executor.execute": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 197, "bases": 0, "doc": 115}, "sqlglot.executor.context": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 64}, "sqlglot.executor.context.Context.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 66, "bases": 0, "doc": 21}, "sqlglot.executor.context.Context.eval": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.eval_tuple": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.add_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.table_iter": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.filter": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.set_row": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.set_index": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.executor.context.Context.set_range": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.executor.env": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.env.reverse_key": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.env.reverse_key.__init__": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "sqlglot.executor.env.filter_nulls": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.executor.env.null_if_any": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 13, "bases": 0, "doc": 59}, "sqlglot.executor.env.str_position": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "sqlglot.executor.env.substring": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.executor.env.cast": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.env.ordered": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.executor.env.interval": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.execute": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.generate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 16}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 15}, "sqlglot.executor.python.PythonExecutor.context": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.table": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.scan": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.static": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.scan_table": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.join": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.hash_join": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.aggregate": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.PythonExecutor.set_operation": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.executor.python.Python": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 4, "doc": 3}, "sqlglot.executor.python.Python.Tokenizer": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 3}, "sqlglot.executor.python.Python.Generator": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 503}, "sqlglot.executor.table": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.add_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.append": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.executor.table.Table.pop": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.executor.table.TableIter": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.TableIter.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "sqlglot.executor.table.RangeReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.RangeReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 9, "bases": 0, "doc": 3}, "sqlglot.executor.table.RowReader": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.executor.table.RowReader.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "sqlglot.executor.table.Tables": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 87}, "sqlglot.executor.table.ensure_tables": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.expressions": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 61}, "sqlglot.expressions.Expression": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 346}, "sqlglot.expressions.Expression.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.expressions.Expression.this": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.expression": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.expressions": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.text": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 32}, "sqlglot.expressions.Expression.is_string": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.is_number": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.is_int": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Expression.alias": {"qualname": 2, "fullname": 4, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 18}, "sqlglot.expressions.Expression.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Expression.copy": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 10}, "sqlglot.expressions.Expression.append": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 54}, "sqlglot.expressions.Expression.set": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 45}, "sqlglot.expressions.Expression.depth": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.find": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 65}, "sqlglot.expressions.Expression.find_all": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 63}, "sqlglot.expressions.Expression.find_ancestor": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 45}, "sqlglot.expressions.Expression.parent_select": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "sqlglot.expressions.Expression.root": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 10}, "sqlglot.expressions.Expression.walk": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 89}, "sqlglot.expressions.Expression.dfs": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 33}, "sqlglot.expressions.Expression.bfs": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 33}, "sqlglot.expressions.Expression.unnest": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.unalias": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 12}, "sqlglot.expressions.Expression.unnest_operands": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 9}, "sqlglot.expressions.Expression.flatten": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 28}, "sqlglot.expressions.Expression.sql": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 99, "bases": 0, "doc": 61}, "sqlglot.expressions.Expression.transform": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 111}, "sqlglot.expressions.Expression.replace": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 83}, "sqlglot.expressions.Expression.pop": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 22}, "sqlglot.expressions.Expression.assert_is": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 162}, "sqlglot.expressions.Expression.error_messages": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 79}, "sqlglot.expressions.Expression.dump": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 11}, "sqlglot.expressions.Expression.load": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 17}, "sqlglot.expressions.Condition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Condition.and_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 173}, "sqlglot.expressions.Condition.or_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 173}, "sqlglot.expressions.Condition.not_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 88}, "sqlglot.expressions.Predicate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 13}, "sqlglot.expressions.DerivedTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unionable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unionable.union": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 211}, "sqlglot.expressions.Unionable.intersect": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 210}, "sqlglot.expressions.Unionable.except_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 211}, "sqlglot.expressions.UDTF": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Cache": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Uncache": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Create": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Describe": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Set": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetItem": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Show": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UserDefinedFunction": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CharacterSet": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.With": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WithinGroup": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CTE": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TableAlias": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitString": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.HexString": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ByteString": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Column": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Column.output_name": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.ColumnDef": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AlterColumn": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RenameTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetTag": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Comment": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ColumnConstraintKind": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CharacterSetColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CheckColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CollateColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CommentColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CompressColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateFormatColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DefaultColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.EncodeColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.InlineLengthColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NotNullColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TitleColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UniqueColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UppercaseColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PathColumnConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Constraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Delete": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Delete.delete": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 160, "bases": 0, "doc": 150}, "sqlglot.expressions.Delete.where": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 180, "bases": 0, "doc": 226}, "sqlglot.expressions.Delete.returning": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 160, "bases": 0, "doc": 194}, "sqlglot.expressions.Drop": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Filter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Check": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Directory": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ForeignKey": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PrimaryKey": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unique": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Into": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.From": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Having": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Hint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JoinHint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Identifier": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Identifier.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Index": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Insert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Returning": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Introducer": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.National": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LoadData": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Partition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Fetch": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Group": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Lambda": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Limit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Literal": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Literal.number": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.expressions.Literal.string": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.expressions.Literal.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Join": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Join.on": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 252}, "sqlglot.expressions.Join.using": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 254}, "sqlglot.expressions.Lateral": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MatchRecognize": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Final": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Offset": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Order": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Cluster": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Distribute": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Ordered": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Property": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AfterJournalProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AlgorithmProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AutoIncrementProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BlockCompressionProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CharacterSetProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ChecksumProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CollateProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DataBlocksizeProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DefinerProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DistKeyProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DistStyleProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.EngineProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ExecuteAsProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ExternalProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FallbackProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FileFormatProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.FreespaceProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.IsolatedLoadingProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JournalProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LanguageProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LikeProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LocationProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LockingProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LogProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MaterializedProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.MergeBlockRatioProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NoPrimaryIndexProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.OnCommitProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PartitionedByProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ReturnsProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RowFormatDelimitedProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RowFormatSerdeProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SchemaCommentProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SerdeProperties": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SortKeyProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SqlSecurityProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TableFormatProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TemporaryProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TransientProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.VolatilityProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WithDataProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WithJournalTableProperty": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Properties": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Properties.Location": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_NAME": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_WITH": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.Properties.from_dict": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 3}, "sqlglot.expressions.Qualify": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Return": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Reference": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Tuple": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Subqueryable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Subqueryable.subquery": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 213}, "sqlglot.expressions.Subqueryable.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 3}, "sqlglot.expressions.Subqueryable.with_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 319}, "sqlglot.expressions.Table": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SystemTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Union": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Union.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 234}, "sqlglot.expressions.Union.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 180, "bases": 0, "doc": 245}, "sqlglot.expressions.Union.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Except": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Intersect": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unnest": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Update": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Values": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Var": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Schema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Lock": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Select": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Select.from_": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 238}, "sqlglot.expressions.Select.group_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 287}, "sqlglot.expressions.Select.order_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 262}, "sqlglot.expressions.Select.sort_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 262}, "sqlglot.expressions.Select.cluster_by": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 262}, "sqlglot.expressions.Select.limit": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 231}, "sqlglot.expressions.Select.offset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 231}, "sqlglot.expressions.Select.select": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 180, "bases": 0, "doc": 196}, "sqlglot.expressions.Select.lateral": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 247}, "sqlglot.expressions.Select.join": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 118, "bases": 0, "doc": 628}, "sqlglot.expressions.Select.where": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 265}, "sqlglot.expressions.Select.having": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 287}, "sqlglot.expressions.Select.window": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.qualify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 3}, "sqlglot.expressions.Select.distinct": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 151}, "sqlglot.expressions.Select.ctas": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 72, "bases": 0, "doc": 236}, "sqlglot.expressions.Select.lock": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 61, "bases": 0, "doc": 331}, "sqlglot.expressions.Select.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Subquery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Subquery.unnest": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 8}, "sqlglot.expressions.Subquery.is_star": {"qualname": 3, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.expressions.Subquery.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.TableSample": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Tag": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 15}, "sqlglot.expressions.Pivot": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Window": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WindowSpec": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Where": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Star": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Star.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Parameter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SessionParameter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Placeholder": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Null": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Boolean": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DataType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DataType.Type": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.expressions.DataType.Type.CHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NCHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.VARCHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TEXT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BINARY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.VARBINARY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TINYINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UTINYINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SMALLINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.USMALLINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIGINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UBIGINT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.FLOAT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DOUBLE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DECIMAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.JSON": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.JSONB": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INTERVAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DATE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.DATETIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.ARRAY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MAP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UUID": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.STRUCT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NULLABLE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.HSTORE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SUPER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SERIAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.XML": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.MONEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.IMAGE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.VARIANT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.OBJECT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.INET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.NULL": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.build": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 157, "bases": 0, "doc": 3}, "sqlglot.expressions.DataType.is_type": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.expressions.PseudoType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StructKwarg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SubqueryPredicate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.All": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Any": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Exists": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Command": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Transaction": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Commit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Rollback": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AlterTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AddConstraint": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DropPartition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Binary": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Add": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Connector": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.And": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Or": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseAnd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseLeftShift": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseOr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseRightShift": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseXor": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Div": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Overlaps": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Dot": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DPipe": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.EQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.NullSafeEQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.NullSafeNEQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Distance": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Escape": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Glob": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.GT": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.GTE": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.ILike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.ILikeAny": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.IntDiv": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Is": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Kwarg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 12}, "sqlglot.expressions.Like": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.LikeAny": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.LT": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.LTE": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Mod": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Mul": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NEQ": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.SimilarTo": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Slice": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayOverlaps": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unary": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.BitwiseNot": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Not": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.Neg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Alias": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Alias.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Aliases": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AtTimeZone": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Between": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Bracket": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Distinct": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.In": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeUnit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 10}, "sqlglot.expressions.TimeUnit.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.Interval": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.IgnoreNulls": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RespectNulls": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Func": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 128}, "sqlglot.expressions.Func.from_arg_list": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.expressions.Func.sql_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.Func.sql_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.Func.default_parser_mappings": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.expressions.AggFunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Abs": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Anonymous": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ApproxDistinct": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Array": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ToChar": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.GenerateSeries": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayAgg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayAll": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayAny": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayConcat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayContains": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.ArrayContained": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayFilter": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayJoin": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArraySize": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArraySort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArraySum": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ArrayUnionAgg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Avg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.AnyValue": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Case": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Cast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Cast.output_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 210}, "sqlglot.expressions.Cast.is_type": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.expressions.Collate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TryCast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Ceil": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Coalesce": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Concat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ConcatWs": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Count": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CountIf": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentDatetime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.CurrentTimestamp": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DatetimeAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DatetimeSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DatetimeDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DatetimeTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DayOfWeek": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DayOfMonth": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DayOfYear": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.WeekOfYear": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LastDateOfMonth": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Extract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimestampAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimestampSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimestampDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimestampTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeSub": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeDiff": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TimeTrunc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.DateFromParts": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateStrToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateToDateStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DateToDi": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Day": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Decode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.DiToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Encode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Exp": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Explode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Floor": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Greatest": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.GroupConcat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Hex": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.If": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.IfNull": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Initcap": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONBContains": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.JSONExtractScalar": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONBExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.JSONBExtractScalar": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Least": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Length": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Levenshtein": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Ln": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Log": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Log2": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Log10": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LogicalOr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.LogicalAnd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Lower": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Map": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.VarMap": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Matches": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 22}, "sqlglot.expressions.Max": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Min": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Month": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Nvl2": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Posexplode": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Pow": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.PercentileCont": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.PercentileDisc": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Quantile": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Quantiles": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.QuantileIf": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ApproxQuantile": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RangeN": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.ReadCSV": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Reduce": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpLike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpILike": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RegexpSplit": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Repeat": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Round": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.RowNumber": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SafeDivide": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SetAgg": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.SortArray": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Split": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Substring": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrPosition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrToTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StrToUnix": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.NumberToStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Struct": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StructExtract": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sum": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Sqrt": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Stddev": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StddevPop": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.StddevSamp": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeToStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeToTimeStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeToUnix": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeStrToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeStrToTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TimeStrToUnix": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Trim": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TsOrDsAdd": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "sqlglot.expressions.TsOrDsToDateStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TsOrDsToDate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.TsOrDiToDi": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Unhex": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UnixToStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UnixToTime": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.UnixToTimeStr": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Upper": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Variance": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.VariancePop": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Week": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.XMLTable": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Year": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Use": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.Merge": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.When": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.expressions.maybe_parse": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 270, "bases": 0, "doc": 231}, "sqlglot.expressions.union": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 234}, "sqlglot.expressions.intersect": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 234}, "sqlglot.expressions.except_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 235}, "sqlglot.expressions.select": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 206}, "sqlglot.expressions.from_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 211}, "sqlglot.expressions.update": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 234, "bases": 0, "doc": 263}, "sqlglot.expressions.delete": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 228, "bases": 0, "doc": 164}, "sqlglot.expressions.condition": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 334}, "sqlglot.expressions.and_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 180}, "sqlglot.expressions.or_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 43, "bases": 0, "doc": 180}, "sqlglot.expressions.not_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 152}, "sqlglot.expressions.paren": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.expressions.to_identifier": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 53}, "sqlglot.expressions.to_interval": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 16}, "sqlglot.expressions.to_table": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 66}, "sqlglot.expressions.to_column": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 62}, "sqlglot.expressions.alias_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 224, "bases": 0, "doc": 292}, "sqlglot.expressions.subquery": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 38, "bases": 0, "doc": 197}, "sqlglot.expressions.column": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 59}, "sqlglot.expressions.cast": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 108, "bases": 0, "doc": 122}, "sqlglot.expressions.table_": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 58}, "sqlglot.expressions.values": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 131, "bases": 0, "doc": 169}, "sqlglot.expressions.var": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 58, "bases": 0, "doc": 168}, "sqlglot.expressions.rename_table": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 50}, "sqlglot.expressions.convert": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 54}, "sqlglot.expressions.replace_children": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 18}, "sqlglot.expressions.column_table_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 129}, "sqlglot.expressions.table_name": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 152}, "sqlglot.expressions.replace_tables": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 176}, "sqlglot.expressions.replace_placeholders": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 25, "bases": 0, "doc": 216}, "sqlglot.expressions.expand": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 84, "bases": 0, "doc": 200}, "sqlglot.expressions.func": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 122, "bases": 0, "doc": 272}, "sqlglot.expressions.true": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 8}, "sqlglot.expressions.false": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 8}, "sqlglot.expressions.null": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 7}, "sqlglot.generator": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.generator.Generator": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 503}, "sqlglot.generator.Generator.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 300, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.generate": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 28}, "sqlglot.generator.Generator.unsupported": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sep": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.seg": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.pad_comment": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.maybe_comment": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.wrap": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.no_identify": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.normalize_func": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.indent": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 106, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sql": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 96, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.uncache_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cache_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.characterset_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.column_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.columndef_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.columnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 20, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.create_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.describe_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.prepend_ctes": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.with_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cte_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tablealias_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitstring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.hexstring_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.datatype_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.directory_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.delete_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.drop_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.except_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.except_op": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.fetch_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.filter_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.hint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.index_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.identifier_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.national_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.partition_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.properties_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.root_properties": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.properties": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 117, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.with_properties": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.locate_properties": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.property_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.likeproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.fallbackproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.journalproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.freespaceproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.checksumproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lockingproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.withdataproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.insert_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.intersect_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.intersect_op": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.introducer_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.pseudotype_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.returning_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.table_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tablesample_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.pivot_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tuple_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.update_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.values_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.var_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.into_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.from_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.group_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.having_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.join_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lambda_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 59, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lateral_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.limit_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.offset_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.setitem_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.set_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lock_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.literal_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.loaddata_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.null_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.boolean_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.order_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 51, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cluster_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.distribute_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sort_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.ordered_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.matchrecognize_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.query_modifiers": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 46, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.select_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.schema_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.star_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.structkwarg_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.parameter_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sessionparameter_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.placeholder_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.subquery_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 55, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.qualify_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.union_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.union_op": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.unnest_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.where_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.window_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.partition_by_sql": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 52, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.window_spec_sql": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.withingroup_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.between_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bracket_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.all_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.any_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.exists_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.case_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.constraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.extract_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.trim_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.concat_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.check_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.foreignkey_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.primarykey_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.unique_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.if_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.in_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.in_unnest_op": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.interval_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.return_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.reference_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.anonymous_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.paren_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.neg_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.not_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.alias_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.aliases_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.attimezone_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.add_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.and_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.connector_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiseand_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwisenot_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiseor_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.bitwisexor_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.cast_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.currentdate_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.collate_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.command_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.comment_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.transaction_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.commit_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.rollback_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.altercolumn_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.renametable_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.altertable_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.droppartition_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.addconstraint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.distinct_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.ignorenulls_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.respectnulls_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.intdiv_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.dpipe_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.div_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.overlaps_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.distance_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.dot_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.eq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.escape_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.glob_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.gt_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.gte_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.ilike_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.is_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.like_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.similarto_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lt_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.lte_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mod_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.mul_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.neq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.nullsafeeq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.nullsafeneq_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.or_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.slice_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.sub_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.trycast_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.use_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.binary": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.function_fallback_sql": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.func": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.format_args": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 54, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.text_width": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.format_time": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.expressions": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 138, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.op_expressions": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 65, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.naked_property": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.set_operation": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 44, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tag_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.token_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.joinhint_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.kwarg_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.when_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.merge_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.generator.Generator.tochar_sql": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.helper": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.helper.AutoName": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 25}, "sqlglot.helper.seq_get": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 27}, "sqlglot.helper.ensure_list": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 66}, "sqlglot.helper.ensure_collection": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 66}, "sqlglot.helper.csv": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 36, "bases": 0, "doc": 55}, "sqlglot.helper.subclasses": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 103, "bases": 0, "doc": 84}, "sqlglot.helper.apply_index_offset": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 53, "bases": 0, "doc": 88}, "sqlglot.helper.camel_to_snake_case": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 16}, "sqlglot.helper.while_changing": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 77, "bases": 0, "doc": 58}, "sqlglot.helper.tsort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 53}, "sqlglot.helper.open_file": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 19}, "sqlglot.helper.csv_reader": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 53}, "sqlglot.helper.find_new_name": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 50}, "sqlglot.helper.object_to_dict": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 26, "bases": 0, "doc": 12}, "sqlglot.helper.split_num_words": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 74, "bases": 0, "doc": 312}, "sqlglot.helper.is_iterable": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 132}, "sqlglot.helper.flatten": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 195}, "sqlglot.helper.count_params": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 26}, "sqlglot.helper.dict_depth": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 194}, "sqlglot.helper.first": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 16}, "sqlglot.helper.should_identify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 65}, "sqlglot.lineage": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.lineage.Node": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.lineage.Node.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 99, "bases": 0, "doc": 3}, "sqlglot.lineage.Node.walk": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 30, "bases": 0, "doc": 3}, "sqlglot.lineage.Node.to_html": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.lineage.lineage": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 341, "bases": 0, "doc": 114}, "sqlglot.lineage.LineageHTML": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 18}, "sqlglot.lineage.LineageHTML.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 132, "bases": 0, "doc": 3}, "sqlglot.optimizer": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types.annotate_types": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 42, "bases": 0, "doc": 331}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 35, "bases": 0, "doc": 3}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.canonicalize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 62, "bases": 0, "doc": 59}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.coerce_type": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 39, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_ctes": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 166}, "sqlglot.optimizer.eliminate_joins": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 195}, "sqlglot.optimizer.eliminate_joins.join_condition": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 46}, "sqlglot.optimizer.eliminate_subqueries": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 276}, "sqlglot.optimizer.expand_laterals": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 188}, "sqlglot.optimizer.expand_multi_table_selects": {"qualname": 0, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"qualname": 4, "fullname": 10, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 101}, "sqlglot.optimizer.isolate_table_selects": {"qualname": 0, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"qualname": 3, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.lower_identities": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.lower_identities.lower_identities": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 172}, "sqlglot.optimizer.merge_subqueries": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 272}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize.normalize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 32, "bases": 0, "doc": 177}, "sqlglot.optimizer.normalize.normalized": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.normalize.normalization_distance": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 171}, "sqlglot.optimizer.normalize.distributive_law": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 39}, "sqlglot.optimizer.optimize_joins": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 132}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 13}, "sqlglot.optimizer.optimize_joins.normalize": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 13}, "sqlglot.optimizer.optimize_joins.other_table_names": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.optimizer": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.optimizer.optimize": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 669, "bases": 0, "doc": 223}, "sqlglot.optimizer.pushdown_predicates": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 186}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 20}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 31}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_projections": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 7, "bases": 0, "doc": 3}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 33, "bases": 0, "doc": 201}, "sqlglot.optimizer.qualify_columns": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 209}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 13}, "sqlglot.optimizer.qualify_columns.Resolver": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 27}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 50}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"qualname": 3, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"qualname": 4, "fullname": 8, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 13}, "sqlglot.optimizer.qualify_tables": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 41, "bases": 0, "doc": 190}, "sqlglot.optimizer.scope": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 5}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 8, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.CTE": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.UNION": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 7, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 328}, "sqlglot.optimizer.scope.Scope.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 84, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope.clear_cache": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope.branch": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 12}, "sqlglot.optimizer.scope.Scope.walk": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.scope.Scope.find": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 97}, "sqlglot.optimizer.scope.Scope.find_all": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 90}, "sqlglot.optimizer.scope.Scope.replace": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 63}, "sqlglot.optimizer.scope.Scope.tables": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "sqlglot.optimizer.scope.Scope.ctes": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 21}, "sqlglot.optimizer.scope.Scope.derived_tables": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 43}, "sqlglot.optimizer.scope.Scope.udtfs": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 24}, "sqlglot.optimizer.scope.Scope.subqueries": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 44}, "sqlglot.optimizer.scope.Scope.columns": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 36}, "sqlglot.optimizer.scope.Scope.selected_sources": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 69}, "sqlglot.optimizer.scope.Scope.cte_sources": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 24}, "sqlglot.optimizer.scope.Scope.selects": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 52}, "sqlglot.optimizer.scope.Scope.external_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 35}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 22}, "sqlglot.optimizer.scope.Scope.join_hints": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 30}, "sqlglot.optimizer.scope.Scope.source_columns": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 17, "bases": 0, "doc": 52}, "sqlglot.optimizer.scope.Scope.is_subquery": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.optimizer.scope.Scope.is_union": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.optimizer.scope.Scope.is_cte": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 11}, "sqlglot.optimizer.scope.Scope.is_root": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "sqlglot.optimizer.scope.Scope.is_udtf": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 14}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"qualname": 4, "fullname": 7, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "sqlglot.optimizer.scope.Scope.rename_source": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 23, "bases": 0, "doc": 8}, "sqlglot.optimizer.scope.Scope.add_source": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 8}, "sqlglot.optimizer.scope.Scope.remove_source": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 8}, "sqlglot.optimizer.scope.Scope.traverse": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 28}, "sqlglot.optimizer.scope.Scope.ref_count": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 34}, "sqlglot.optimizer.scope.traverse_scope": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 330}, "sqlglot.optimizer.scope.build_scope": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 41}, "sqlglot.optimizer.scope.walk_in_scope": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 83}, "sqlglot.optimizer.simplify": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.simplify": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 138}, "sqlglot.optimizer.simplify.rewrite_between": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 31}, "sqlglot.optimizer.simplify.simplify_not": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 25}, "sqlglot.optimizer.simplify.flatten": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 24}, "sqlglot.optimizer.simplify.simplify_connectors": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.remove_compliments": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 19}, "sqlglot.optimizer.simplify.uniq_sort": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 23}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 58}, "sqlglot.optimizer.simplify.simplify_literals": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.simplify_parens": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.remove_where_true": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.always_true": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.is_complement": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 16, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.eval_boolean": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 21, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.extract_date": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.extract_interval": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.date_literal": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.simplify.boolean_literal": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries": {"qualname": 0, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"qualname": 2, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 227}, "sqlglot.optimizer.unnest_subqueries.unnest": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 22, "bases": 0, "doc": 3}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"qualname": 1, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 28, "bases": 0, "doc": 3}, "sqlglot.parser": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.parser.parse_var_map": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.parser.binary_range_parser": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 93, "bases": 0, "doc": 3}, "sqlglot.parser.Parser": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 174}, "sqlglot.parser.Parser.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 162, "bases": 0, "doc": 3}, "sqlglot.parser.Parser.reset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 11, "bases": 0, "doc": 3}, "sqlglot.parser.Parser.parse": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 87, "bases": 0, "doc": 70}, "sqlglot.parser.Parser.parse_into": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 159, "bases": 0, "doc": 111}, "sqlglot.parser.Parser.check_errors": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 16}, "sqlglot.parser.Parser.raise_error": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 57, "bases": 0, "doc": 22}, "sqlglot.parser.Parser.expression": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 89, "bases": 0, "doc": 74}, "sqlglot.parser.Parser.validate_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 60, "bases": 0, "doc": 57}, "sqlglot.planner": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.planner.Plan": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.planner.Plan.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 24, "bases": 0, "doc": 3}, "sqlglot.planner.Step": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.planner.Step.from_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 209}, "sqlglot.planner.Step.add_dependency": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 3}, "sqlglot.planner.Step.to_s": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.planner.Scan": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.Scan.from_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 209}, "sqlglot.planner.Join": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.Join.from_joins": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 96, "bases": 0, "doc": 3}, "sqlglot.planner.Aggregate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.Sort": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.SetOperation": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 1, "doc": 3}, "sqlglot.planner.SetOperation.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 83, "bases": 0, "doc": 3}, "sqlglot.planner.SetOperation.from_expression": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 90, "bases": 0, "doc": 209}, "sqlglot.schema.Schema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 8}, "sqlglot.schema.Schema.add_table": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 57}, "sqlglot.schema.Schema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 56}, "sqlglot.schema.Schema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 56}, "sqlglot.schema.Schema.supported_table_args": {"qualname": 4, "fullname": 6, "annotation": 3, "default_value": 0, "signature": 0, "bases": 0, "doc": 16}, "sqlglot.schema.AbstractMappingSchema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 87}, "sqlglot.schema.AbstractMappingSchema.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 3}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 3}, "sqlglot.schema.AbstractMappingSchema.find": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 88, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 6, "doc": 139}, "sqlglot.schema.MappingSchema.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 128, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema.copy": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 31, "bases": 0, "doc": 3}, "sqlglot.schema.MappingSchema.add_table": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 111, "bases": 0, "doc": 60}, "sqlglot.schema.MappingSchema.column_names": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 56}, "sqlglot.schema.MappingSchema.get_column_type": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 79, "bases": 0, "doc": 56}, "sqlglot.schema.ensure_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 3}, "sqlglot.schema.ensure_column_mapping": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 67, "bases": 0, "doc": 3}, "sqlglot.schema.flatten_schema": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 69, "bases": 0, "doc": 3}, "sqlglot.serde": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.serde.dump": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 12}, "sqlglot.serde.load": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 149, "bases": 0, "doc": 16}, "sqlglot.time": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.time.format_time": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 73, "bases": 0, "doc": 108}, "sqlglot.tokens": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 3, "doc": 5}, "sqlglot.tokens.TokenType.L_PAREN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.R_PAREN": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.L_BRACKET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.R_BRACKET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.L_BRACE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.R_BRACE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMA": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PLUS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DCOLON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEMICOLON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.STAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BACKSLASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SLASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EQ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NEQ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AND": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AMP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DPIPE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PIPE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CARET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TILDA": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ARROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DARROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FARROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HASH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HASH_ARROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LR_ARROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LT_AT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AT_GT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DOLLAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PARAMETER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NATIONAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DAMP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BLOCK_START": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BLOCK_END": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SPACE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BREAK": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.STRING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NUMBER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IDENTIFIER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATABASE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLUMN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SCHEMA": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TABLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIT_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HEX_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BYTE_STRING": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BOOLEAN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TINYINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UTINYINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SMALLINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.USMALLINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIGINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UBIGINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FLOAT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DOUBLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DECIMAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NCHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VARCHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NVARCHAR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LONGTEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LONGBLOB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BINARY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VARBINARY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JSON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JSONB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIME": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIMESTAMP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATETIME": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UUID": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLABLE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GEOMETRY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HLLSKETCH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HSTORE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SUPER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SERIAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BIGSERIAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.XML": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MONEY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SMALLMONEY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROWVERSION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IMAGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VARIANT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OBJECT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALIAS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALTER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALWAYS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ALL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ANTI": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ANY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.APPLY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ARRAY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ASC": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ASOF": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BEGIN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BETWEEN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BOTH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BUCKET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CACHE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CASCADE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CASE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COLLATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMAND": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMENT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMMIT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.COMPOUND": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CONSTRAINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CREATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CROSS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CUBE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DEFAULT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DELETE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DESC": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DESCRIBE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DISTINCT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DIV": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.DROP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ELSE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.END": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ESCAPE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EXCEPT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EXECUTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.EXISTS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FALSE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FETCH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FILTER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FINAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FIRST": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FOLLOWING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FOR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FORMAT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FROM": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.FUNCTION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GLOB": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GLOBAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GROUP_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HAVING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.HINT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IF": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ILIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INDEX": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INNER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INSERT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTERSECT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTERVAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTO": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.INTRODUCER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IRLIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.IS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ISNULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JOIN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LANGUAGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LATERAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LAZY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LEADING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LEFT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LIKE_ANY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LIMIT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LOAD_DATA": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.LOCAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MAP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MATERIALIZED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MERGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.MOD": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NATURAL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NEXT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NO_ACTION": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NOTNULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULL": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.NULLS_LAST": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OFFSET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ON": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ONLY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OPTIONS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ORDER_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ORDERED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ORDINALITY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OUTER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OUT_OF": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OVER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OVERLAPS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.OVERWRITE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PARTITION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PARTITION_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PERCENT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PIVOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PRECEDING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PROCEDURE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PROPERTIES": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.QUALIFY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.QUOTE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RANGE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RECURSIVE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.REPLACE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RETURNING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.REFERENCES": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RIGHT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.RLIKE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROLLBACK": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROLLUP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.ROWS": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SELECT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEMI": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SEPARATOR": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SET": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SHOW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SOME": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SORTKEY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.SORT_BY": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.STRUCT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TEMPORARY": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TOP": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.THEN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TRAILING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.TRUE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNBOUNDED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNCACHE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNION": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNLOGGED": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNNEST": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNPIVOT": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UPDATE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.USE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.USING": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VALUES": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VIEW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.VOLATILE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WHEN": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WHERE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WINDOW": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITH": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"qualname": 5, "fullname": 7, "annotation": 0, "default_value": 15, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 11, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 13, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.TokenType.UNIQUE": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 9, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.Token": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.Token.__init__": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 97, "bases": 0, "doc": 3}, "sqlglot.tokens.Token.number": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Token.string": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Token.identifier": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Token.var": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 34, "bases": 0, "doc": 14}, "sqlglot.tokens.Tokenizer": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.tokens.Tokenizer.reset": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 3}, "sqlglot.tokens.Tokenizer.tokenize": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 16}, "sqlglot.transforms": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.transforms.unalias_group": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 146}, "sqlglot.transforms.eliminate_distinct_on": {"qualname": 3, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 66}, "sqlglot.transforms.eliminate_qualify": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 111}, "sqlglot.transforms.remove_precision_parameterized_types": {"qualname": 4, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 40, "bases": 0, "doc": 33}, "sqlglot.transforms.preprocess": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 144, "bases": 0, "doc": 88}, "sqlglot.transforms.delegate": {"qualname": 1, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 19, "bases": 0, "doc": 29}, "sqlglot.trie": {"qualname": 0, "fullname": 2, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "sqlglot.trie.new_trie": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 29, "bases": 0, "doc": 185}, "sqlglot.trie.in_trie": {"qualname": 2, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 47, "bases": 0, "doc": 299}}, "length": 1733, "save": true}, "index": {"qualname": {"root": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 48, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.pretty": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}}, "df": 6}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 21}}}, "y": {"docs": {"sqlglot.expressions.Property": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 3}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 9, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 30}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 3}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}}, "df": 2}}, "s": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}}, "df": 6, "t": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PathColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "d": {"docs": {"sqlglot.generator.Generator.pad_comment": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PERCENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PercentileCont": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.PercentileDisc": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 5}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}}, "df": 7, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}}, "df": 5}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Posexplode": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}}, "df": 2}, "w": {"docs": {"sqlglot.expressions.Pow": {"tf": 1}}, "df": 1}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}}, "df": 17}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {"sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PLUS": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 5}}}}}}}}, "s": {"docs": {"sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}}, "df": 13, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SchemaError": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SchemaCommentProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 36, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 7}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}}, "df": 4}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SPACE": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Split": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.generator.Generator.window_spec_sql": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}}, "df": 254, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}}, "df": 11}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 1}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SqlSecurityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Sqrt": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}}, "df": 26, "s": {"docs": {"sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SetProperty": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.SetAgg": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}}}}}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.SerdeProperties": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "p": {"docs": {"sqlglot.generator.Generator.sep": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {"sqlglot.generator.Generator.seg": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.SEMI": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.SEED": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 9, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortArray": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SOME": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}}, "df": 3}, "b": {"docs": {"sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}}, "df": 2}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SubqueryPredicate": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 4}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}}, "df": 8, "t": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.startswith": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}}, "df": 4}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 3, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}}, "df": 4, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.StructExtract": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToDate": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToTime": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.StrToUnix": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.Stddev": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevPop": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevSamp": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SafeDivide": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 14}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.should_identify": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}}, "df": 5}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.SLASH": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 3, "e": {"docs": {"sqlglot.parse_one": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.OnCommitProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ONLY": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}}, "df": 8, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}}, "df": 4, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}}, "df": 9}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.OptimizeError": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}}, "df": 6}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}}, "df": 8}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OUTER": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 5}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TransientProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.TRAILING": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}}, "df": 4}}, "m": {"docs": {"sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}}, "df": 3}, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.true": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 30, "a": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}}, "df": 4}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}}, "df": 7, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TableFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}}, "o": {"docs": {"sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 16, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 2, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 21}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.TokenError": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 296}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.ToChar": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 7}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TsOrDsAdd": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TsOrDsToDate": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.expressions.TsOrDiToDi": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}}, "df": 10}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}}, "df": 5}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TemporaryProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 13, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}}, "df": 2}}}}, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimestampAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimestampSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimestampDiff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TimeStrToDate": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeStrToUnix": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimeSub": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimeAdd": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.TimeTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToTimeStr": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeToUnix": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TitleColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.TILDA": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 4}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.this": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.THEN": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.CROSS": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 6}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.CountIf": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 48, "s": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 10}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}}, "df": 2, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ColumnConstraintKind": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CollateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CollateProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLON": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CommentColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {"sqlglot.tokens.TokenType.COMMA": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Command": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}}, "df": 4, "w": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ConcatWs": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}}, "df": 12}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 6}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 3}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.convert": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}}, "df": 5}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}}, "df": 9, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CASCADE": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CARET": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 6}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Select.ctas": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDatetime": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.CurrentTimestamp": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CUBE": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 3}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CharacterSetProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Check": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CheckColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.replace_children": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Ceil": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 33, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 5}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}}, "df": 3}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 7}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}}, "df": 5}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DATABASE": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 65}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DateSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.DateFromParts": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DatetimeAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DatetimeSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.DatetimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DatetimeTrunc": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DateTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DateToDateStr": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot.expressions.DateToDi": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DateAdd": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"sqlglot.expressions.Day": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.DayOfWeek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DayOfMonth": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DayOfYear": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DASH": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.DARROW": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DAMP": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 8}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistStyleProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}}, "df": 11, "s": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}}, "df": 21}}}}}}, "v": {"docs": {"sqlglot.expressions.Div": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DiToDate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}}, "df": 6}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}}, "df": 4, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}}, "df": 4}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}}, "df": 7}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.planner.Step.add_dependency": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DerivedTable": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DefinerProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Decode": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}}, "df": 6}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.dfs": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {"sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.DCOLON": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 35, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Initcap": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}}, "df": 7}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}}, "df": 5}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}}, "df": 3}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INNER": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 22, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.IfNull": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.is_iterable": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {"sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}}, "df": 6}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ALTER": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AlgorithmProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.AggFunc": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 3}}}}}}}, "y": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 6, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AnyValue": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.find_ancestor": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.ANTI": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.tokens.TokenType.ASOF": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.ArrayAll": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ArrayAny": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayOverlaps": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArrayConcat": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayContains": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ArrayContained": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.ArrayFilter": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.ArrayJoin": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ArraySize": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArraySort": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.ArraySum": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ArrayUnionAgg": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 6}}}, "g": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ApproxDistinct": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ApproxQuantile": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 9, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AutoIncrementProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.AutoName": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Abs": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}}, "df": 7}}, "n": {"docs": {"sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 12, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}}, "df": 9}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.text_width": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ErrorLevel.WARN": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Week": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.WeekOfYear": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.wrap": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}}, "df": 6}}}, "l": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FileFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}}, "df": 5}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Final": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FULL": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Floor": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}}, "df": 13}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.FARROW": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}}, "df": 10}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Greatest": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}}, "df": 282}}, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 6}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.GT": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}}, "df": 3}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 15, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 4}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}}, "df": 4, "b": {"docs": {"sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.JSONBContains": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONBExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONBExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}}, "df": 4}}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {"sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UnixToTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToTimeStr": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}}, "df": 10}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.UnsupportedError": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}}, "df": 3}}}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Unhex": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}}, "df": 7}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Upper": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Use": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"sqlglot.expressions.Exp": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 43, "s": {"docs": {"sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 3}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExternalProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExecuteAsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}}, "df": 3}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 9}}}}, "d": {"docs": {"sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.endswith": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Encode": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.EngineProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 5}}}}}, "s": {"docs": {"sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 2}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 3}}}, "q": {"docs": {"sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 6}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}}, "df": 9}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Repeat": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 9}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reduce": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 3}}}}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Return": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}}, "df": 4}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 7}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}}, "df": 2}}}}}, "f": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}}, "df": 5}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.ReadCSV": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpExtract": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpLike": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpILike": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpSplit": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.tokens.TokenType.ROWS": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.RowNumber": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}}, "df": 4}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Round": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}}, "df": 3, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RIGHT": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}}, "df": 1, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.LastDateOfMonth": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LanguageProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "w": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.LAZY": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LocationProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 2}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}}, "df": 2}}}}}}, "g": {"1": {"0": {"docs": {"sqlglot.expressions.Log10": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"docs": {"sqlglot.expressions.Log2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.Log": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LogProperty": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.LogicalOr": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.LogicalAnd": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}}, "df": 3}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.LEADING": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Length": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Levenshtein": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LEFT": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"sqlglot.expressions.LT": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot.expressions.Ln": {"tf": 1}}, "df": 1}, "r": {"docs": {"sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}}, "df": 8}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}}, "df": 3}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}}, "df": 7, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 2}, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 7}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MaterializedProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}}, "df": 3}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Month": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}}, "df": 6}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}}, "df": 7}}}}, "g": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 12}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "x": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}}, "df": 5}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BEGIN": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.bfs": {"tf": 1}}, "df": 1}}, "y": {"docs": {"sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 12, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ByteString": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}}, "df": 6}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BOTH": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BUCKET": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}}, "df": 4}}}, "e": {"docs": {"sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BREAK": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}}, "df": 13, "s": {"docs": {"sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 5}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.National": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATURAL": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NumberToStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 10, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}}, "df": 4, "d": {"docs": {"sqlglot.optimizer.normalize.normalized": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 3}, "g": {"docs": {"sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}}, "df": 2}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NEXT": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}}, "df": 2}}}}}}, "l": {"2": {"docs": {"sqlglot.expressions.Nvl2": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}}, "df": 2}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Variance": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VariancePop": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VarMap": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.VolatilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 8}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Quantile": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Quantiles": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.QuantileIf": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}}, "df": 2}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}}, "df": 2}}, "y": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 4}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Year": {"tf": 1}}, "df": 1}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 4}}}}}}, "fullname": {"root": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 48, "s": {"docs": {"sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}}, "df": 359, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.pretty": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.dialect.Dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.drill": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.errors": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env": {"tf": 1}, "sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.executor.python": {"tf": 1}, "sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.DerivedTable": {"tf": 1}, "sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.expressions.ByteString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}, "sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.expressions.Check": {"tf": 1}, "sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.expressions.National": {"tf": 1}, "sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.expressions.Final": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.expressions.Property": {"tf": 1}, "sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1}, "sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.expressions.CollateProperty": {"tf": 1}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.expressions.DefinerProperty": {"tf": 1}, "sqlglot.expressions.DistKeyProperty": {"tf": 1}, "sqlglot.expressions.DistStyleProperty": {"tf": 1}, "sqlglot.expressions.EngineProperty": {"tf": 1}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1}, "sqlglot.expressions.ExternalProperty": {"tf": 1}, "sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.expressions.FileFormatProperty": {"tf": 1}, "sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.expressions.LocationProperty": {"tf": 1}, "sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.expressions.LogProperty": {"tf": 1}, "sqlglot.expressions.MaterializedProperty": {"tf": 1}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}, "sqlglot.expressions.OnCommitProperty": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1}, "sqlglot.expressions.SerdeProperties": {"tf": 1}, "sqlglot.expressions.SetProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.TableFormatProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatilityProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Return": {"tf": 1}, "sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.expressions.SubqueryPredicate": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.expressions.Command": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.expressions.Div": {"tf": 1}, "sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}, "sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.AggFunc": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.ApproxDistinct": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.expressions.ToChar": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}, "sqlglot.expressions.ArrayAll": {"tf": 1}, "sqlglot.expressions.ArrayAny": {"tf": 1}, "sqlglot.expressions.ArrayConcat": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayContained": {"tf": 1}, "sqlglot.expressions.ArrayFilter": {"tf": 1}, "sqlglot.expressions.ArrayJoin": {"tf": 1}, "sqlglot.expressions.ArraySize": {"tf": 1}, "sqlglot.expressions.ArraySort": {"tf": 1}, "sqlglot.expressions.ArraySum": {"tf": 1}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}, "sqlglot.expressions.AnyValue": {"tf": 1}, "sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.expressions.Ceil": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.expressions.ConcatWs": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.expressions.CountIf": {"tf": 1}, "sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.expressions.CurrentDatetime": {"tf": 1}, "sqlglot.expressions.CurrentTime": {"tf": 1}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DateTrunc": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.DayOfWeek": {"tf": 1}, "sqlglot.expressions.DayOfMonth": {"tf": 1}, "sqlglot.expressions.DayOfYear": {"tf": 1}, "sqlglot.expressions.WeekOfYear": {"tf": 1}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.DateFromParts": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}, "sqlglot.expressions.DateToDateStr": {"tf": 1}, "sqlglot.expressions.DateToDi": {"tf": 1}, "sqlglot.expressions.Day": {"tf": 1}, "sqlglot.expressions.Decode": {"tf": 1}, "sqlglot.expressions.DiToDate": {"tf": 1}, "sqlglot.expressions.Encode": {"tf": 1}, "sqlglot.expressions.Exp": {"tf": 1}, "sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.expressions.Floor": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}, "sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.expressions.IfNull": {"tf": 1}, "sqlglot.expressions.Initcap": {"tf": 1}, "sqlglot.expressions.JSONBContains": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.JSONExtractScalar": {"tf": 1}, "sqlglot.expressions.JSONBExtract": {"tf": 1}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Length": {"tf": 1}, "sqlglot.expressions.Levenshtein": {"tf": 1}, "sqlglot.expressions.Ln": {"tf": 1}, "sqlglot.expressions.Log": {"tf": 1}, "sqlglot.expressions.Log2": {"tf": 1}, "sqlglot.expressions.Log10": {"tf": 1}, "sqlglot.expressions.LogicalOr": {"tf": 1}, "sqlglot.expressions.LogicalAnd": {"tf": 1}, "sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}, "sqlglot.expressions.Month": {"tf": 1}, "sqlglot.expressions.Nvl2": {"tf": 1}, "sqlglot.expressions.Posexplode": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}, "sqlglot.expressions.PercentileCont": {"tf": 1}, "sqlglot.expressions.PercentileDisc": {"tf": 1}, "sqlglot.expressions.Quantile": {"tf": 1}, "sqlglot.expressions.Quantiles": {"tf": 1}, "sqlglot.expressions.QuantileIf": {"tf": 1}, "sqlglot.expressions.ApproxQuantile": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}, "sqlglot.expressions.ReadCSV": {"tf": 1}, "sqlglot.expressions.Reduce": {"tf": 1}, "sqlglot.expressions.RegexpExtract": {"tf": 1}, "sqlglot.expressions.RegexpLike": {"tf": 1}, "sqlglot.expressions.RegexpILike": {"tf": 1}, "sqlglot.expressions.RegexpSplit": {"tf": 1}, "sqlglot.expressions.Repeat": {"tf": 1}, "sqlglot.expressions.Round": {"tf": 1}, "sqlglot.expressions.RowNumber": {"tf": 1}, "sqlglot.expressions.SafeDivide": {"tf": 1}, "sqlglot.expressions.SetAgg": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}, "sqlglot.expressions.StrToDate": {"tf": 1}, "sqlglot.expressions.StrToTime": {"tf": 1}, "sqlglot.expressions.StrToUnix": {"tf": 1}, "sqlglot.expressions.NumberToStr": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.expressions.StructExtract": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}, "sqlglot.expressions.Sqrt": {"tf": 1}, "sqlglot.expressions.Stddev": {"tf": 1}, "sqlglot.expressions.StddevPop": {"tf": 1}, "sqlglot.expressions.StddevSamp": {"tf": 1}, "sqlglot.expressions.TimeToStr": {"tf": 1}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1}, "sqlglot.expressions.TimeToUnix": {"tf": 1}, "sqlglot.expressions.TimeStrToDate": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1}, "sqlglot.expressions.Unhex": {"tf": 1}, "sqlglot.expressions.UnixToStr": {"tf": 1}, "sqlglot.expressions.UnixToTime": {"tf": 1}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1}, "sqlglot.expressions.Upper": {"tf": 1}, "sqlglot.expressions.Variance": {"tf": 1}, "sqlglot.expressions.VariancePop": {"tf": 1}, "sqlglot.expressions.Week": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}, "sqlglot.expressions.Year": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}, "sqlglot.helper": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage": {"tf": 1}, "sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer": {"tf": 1}, "sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.optimizer": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.parser": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner": {"tf": 1}, "sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.serde": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 1733, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.sqlite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1.4142135623730951}}, "df": 12}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SqlSecurityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Sqrt": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}}, "df": 24, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.SchemaError": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SchemaCommentProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 44, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 7}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.spark": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}}, "df": 4}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SPACE": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Split": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.generator.Generator.window_spec_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}}, "df": 26, "s": {"docs": {"sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}}, "df": 11, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SetProperty": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.SetAgg": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}}}}}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.serde": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 4, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.SerdeProperties": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "p": {"docs": {"sqlglot.generator.Generator.sep": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {"sqlglot.generator.Generator.seg": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1}, "m": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.SEMI": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.SEED": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 9, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.SortArray": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SOME": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}}, "df": 3}, "b": {"docs": {"sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}}, "df": 2}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 4}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SubqueryPredicate": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 11}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}}, "df": 8, "t": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.startswith": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.starrocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}}, "df": 5}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.python.PythonExecutor.static": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 3, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}}, "df": 4, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.StructExtract": {"tf": 1}}, "df": 1}}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToDate": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.StrToTime": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.StrToUnix": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.Stddev": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevPop": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.StddevSamp": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SafeDivide": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.4142135623730951}}, "df": 15}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}}, "df": 3}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.should_identify": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}}, "df": 2}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 19}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.SLASH": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.pretty": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.presto": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.4142135623730951}}, "df": 7}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 8}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}}, "df": 21}}}, "y": {"docs": {"sqlglot.expressions.Property": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 3}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 9, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.parser": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.reset": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.check_errors": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}}, "df": 32}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 3}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}}, "df": 5, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}}, "df": 2}}, "s": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}}, "df": 6, "t": {"docs": {"sqlglot.expressions.Expression.parent_select": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PathColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "d": {"docs": {"sqlglot.generator.Generator.pad_comment": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PERCENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.PercentileCont": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.PercentileDisc": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}}, "df": 5}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}}, "df": 7, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}}, "df": 6}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Posexplode": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}}, "df": 2}, "w": {"docs": {"sqlglot.expressions.Pow": {"tf": 1}}, "df": 1}}, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python": {"tf": 1}, "sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}}, "df": 21, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}}, "df": 17}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {"sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.planner": {"tf": 1}, "sqlglot.planner.Plan": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.planner.SetOperation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 16}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PLUS": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}}, "df": 10}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 3, "e": {"docs": {"sqlglot.parse_one": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.OnCommitProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ONLY": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}}, "df": 8, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}}, "df": 4, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1.4142135623730951}}, "df": 10}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.OptimizeError": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.optimizer": {"tf": 1}, "sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.optimizer": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 130}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}}, "df": 1, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}}, "df": 6}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}}, "df": 8}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OUTER": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 5}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.transforms": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 7}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TransientProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.TRAILING": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.trino": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1.4142135623730951}}, "df": 5}}, "m": {"docs": {"sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}}, "df": 3}, "e": {"docs": {"sqlglot.trie": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 3}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.true": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.add_columns": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.append": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.pop": {"tf": 1.4142135623730951}, "sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}}, "df": 41, "a": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}}, "df": 5}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}}, "df": 4}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TableFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "g": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 2}}, "o": {"docs": {"sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}}, "df": 16, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 2, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 21}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.TokenError": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.tokens": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}, "sqlglot.tokens.Token": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 306}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 296}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.ToChar": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.tsql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1.4142135623730951}}, "df": 9}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TsOrDsAdd": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TsOrDsToDate": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.expressions.TsOrDiToDi": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1.4142135623730951}}, "df": 11}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}}, "df": 5}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.TemporaryProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 14, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}}, "df": 2}}}}, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimestampAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimestampSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimestampDiff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.TimeStrToDate": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeStrToUnix": {"tf": 1}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.TimeSub": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.TimeAdd": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.TimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.TimeTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeToTimeStr": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.TimeToUnix": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TitleColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.TILDA": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}}, "df": 4}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.this": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.THEN": {"tf": 1}}, "df": 1}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 6}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}}, "df": 3}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 111, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 5}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameReader": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}}, "df": 3}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 7}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}}, "df": 6}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DATABASE": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}}, "df": 65}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DateSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.DateFromParts": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DatetimeAdd": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DatetimeSub": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.DatetimeDiff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DatetimeTrunc": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.DateTrunc": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DateToDateStr": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot.expressions.DateToDi": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DateAdd": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {"sqlglot.expressions.Day": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.DayOfWeek": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DayOfMonth": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DayOfYear": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DASH": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.DARROW": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DAMP": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 8}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistKeyProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DistStyleProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 3}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.dialects.dialect.Dialect": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 63, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.drill": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 203}}}}}}, "v": {"docs": {"sqlglot.expressions.Div": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1.4142135623730951}}, "df": 15}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DiToDate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.drill": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.4142135623730951}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}}, "df": 4, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}}, "df": 4}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}}, "df": 7}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.planner.Step.add_dependency": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DerivedTable": {"tf": 1}}, "df": 1}}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DefinerProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Decode": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.duckdb": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}}, "df": 7}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.dfs": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {"sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}}, "df": 3}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.DCOLON": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.CROSS": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 6}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.CountIf": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}}, "df": 48, "s": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 14}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}}, "df": 2, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ColumnConstraintKind": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CollateColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CollateProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLON": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CommentColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "a": {"docs": {"sqlglot.tokens.TokenType.COMMA": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Command": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}}, "df": 3}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}}, "df": 4, "w": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ConcatWs": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.eval": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.add_columns": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.filter": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.sort": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.set_row": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.set_index": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.set_range": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}}, "df": 13}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 6}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}}, "df": 3}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.convert": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}}, "df": 5}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}}, "df": 9, "s": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.expressions.Case": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CASCADE": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}}, "df": 6}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CARET": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}}, "df": 7}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 5}}, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Select.ctas": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}}, "df": 6, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentDatetime": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.CurrentTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.CurrentTimestamp": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CUBE": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 3}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.CharacterSetProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Check": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.CheckColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.replace_children": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Ceil": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 7, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 35, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Initcap": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}}, "df": 7}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}}, "df": 5}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}}, "df": 3}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INNER": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}}, "df": 22, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.4142135623730951}}, "df": 2, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}}, "df": 6, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.IfNull": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.is_iterable": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}}, "df": 9, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {"sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}}, "df": 6}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ALTER": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AlgorithmProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.AggFunc": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 3}}}}}}}, "y": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 6, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AnyValue": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.find_ancestor": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}}, "df": 6}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1.4142135623730951}}, "df": 5}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.ANTI": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.tokens.TokenType.ASOF": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.ArrayAll": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ArrayAny": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayOverlaps": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArrayConcat": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.ArrayContains": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.ArrayContained": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.ArrayFilter": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.ArrayJoin": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ArraySize": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ArraySort": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.ArraySum": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ArrayUnionAgg": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 6}}}, "g": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ApproxDistinct": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ApproxQuantile": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 9, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AutoIncrementProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.AutoName": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Abs": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 4}}}}}}}}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}}, "df": 7}}, "n": {"docs": {"sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 12, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}}, "df": 1, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.Window": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}}, "df": 10, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.WindowSpec": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}}, "df": 9}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.text_width": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ErrorLevel.WARN": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.Week": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.WeekOfYear": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.wrap": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}}, "df": 6}}}, "l": {"docs": {"sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FileFormatProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}}, "df": 5}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Final": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}}, "df": 10, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}}, "df": 3}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FULL": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}}, "df": 6}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}}, "df": 4}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 4}}}}}, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Floor": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}}, "df": 13}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.false": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.FARROW": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 6, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.GroupedData": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}}, "df": 10}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Greatest": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.unsupported": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sep": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.seg": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pad_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.wrap": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.no_identify": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cache_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.column_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.create_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.describe_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cte_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.directory_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.delete_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.drop_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.except_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.except_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.filter_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.hint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.index_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.national_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.partition_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.root_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.property_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.insert_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.returning_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.update_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.var_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.into_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.from_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.group_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.having_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.join_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.limit_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.offset_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.set_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lock_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.literal_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.null_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.order_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sort_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.schema_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.star_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.union_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.union_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.where_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.between_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.all_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.any_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.exists_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.case_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.extract_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.trim_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.concat_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.check_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.unique_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.if_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.in_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.interval_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.return_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.reference_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.paren_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.neg_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.not_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.alias_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.add_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.and_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.connector_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.cast_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.collate_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.command_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.comment_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.commit_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.div_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.distance_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.dot_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.eq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.escape_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.glob_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.gt_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.gte_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.is_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.like_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lt_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lte_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mod_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.mul_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.neq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.or_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.slice_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sub_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.use_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.binary": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.format_args": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.format_time": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.naked_property": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.set_operation": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tag_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.token_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.when_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.merge_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1.4142135623730951}}, "df": 283}}, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 5, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.GenerateSeries": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "t": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 6}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.expressions.GT": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}}, "df": 3}}}, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 15, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 9}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}}, "df": 4, "b": {"docs": {"sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.JSONBContains": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONBExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONBExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONExtract": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.JSONExtractScalar": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}}, "df": 4}}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {"sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToStr": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UnixToTime": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.UnixToTimeStr": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 2}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}}, "df": 12}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.UnsupportedError": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}}, "df": 3}}}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Unhex": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}}, "df": 1}}}}}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}}, "df": 7}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Upper": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Use": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}}, "df": 2}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}}, "df": 2}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}}, "df": 2}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {"sqlglot.expressions.Exp": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 43, "s": {"docs": {"sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.DerivedTable": {"tf": 1}, "sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.expressions.ByteString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}, "sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.expressions.Check": {"tf": 1}, "sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.expressions.National": {"tf": 1}, "sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.expressions.Final": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.expressions.Property": {"tf": 1}, "sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1}, "sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.expressions.CollateProperty": {"tf": 1}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.expressions.DefinerProperty": {"tf": 1}, "sqlglot.expressions.DistKeyProperty": {"tf": 1}, "sqlglot.expressions.DistStyleProperty": {"tf": 1}, "sqlglot.expressions.EngineProperty": {"tf": 1}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1}, "sqlglot.expressions.ExternalProperty": {"tf": 1}, "sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.expressions.FileFormatProperty": {"tf": 1}, "sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.expressions.LocationProperty": {"tf": 1}, "sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.expressions.LogProperty": {"tf": 1}, "sqlglot.expressions.MaterializedProperty": {"tf": 1}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}, "sqlglot.expressions.OnCommitProperty": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1}, "sqlglot.expressions.SerdeProperties": {"tf": 1}, "sqlglot.expressions.SetProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.TableFormatProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatilityProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Return": {"tf": 1}, "sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}, "sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.expressions.SubqueryPredicate": {"tf": 1}, "sqlglot.expressions.All": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.expressions.Command": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Add": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}, "sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.expressions.Div": {"tf": 1}, "sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}, "sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.expressions.AggFunc": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.ApproxDistinct": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.expressions.ToChar": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}, "sqlglot.expressions.ArrayAll": {"tf": 1}, "sqlglot.expressions.ArrayAny": {"tf": 1}, "sqlglot.expressions.ArrayConcat": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayContained": {"tf": 1}, "sqlglot.expressions.ArrayFilter": {"tf": 1}, "sqlglot.expressions.ArrayJoin": {"tf": 1}, "sqlglot.expressions.ArraySize": {"tf": 1}, "sqlglot.expressions.ArraySort": {"tf": 1}, "sqlglot.expressions.ArraySum": {"tf": 1}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}, "sqlglot.expressions.AnyValue": {"tf": 1}, "sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.expressions.TryCast": {"tf": 1}, "sqlglot.expressions.Ceil": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.expressions.ConcatWs": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.expressions.CountIf": {"tf": 1}, "sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.expressions.CurrentDatetime": {"tf": 1}, "sqlglot.expressions.CurrentTime": {"tf": 1}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DateTrunc": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.DayOfWeek": {"tf": 1}, "sqlglot.expressions.DayOfMonth": {"tf": 1}, "sqlglot.expressions.DayOfYear": {"tf": 1}, "sqlglot.expressions.WeekOfYear": {"tf": 1}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.DateFromParts": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}, "sqlglot.expressions.DateToDateStr": {"tf": 1}, "sqlglot.expressions.DateToDi": {"tf": 1}, "sqlglot.expressions.Day": {"tf": 1}, "sqlglot.expressions.Decode": {"tf": 1}, "sqlglot.expressions.DiToDate": {"tf": 1}, "sqlglot.expressions.Encode": {"tf": 1}, "sqlglot.expressions.Exp": {"tf": 1}, "sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.expressions.Floor": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}, "sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.expressions.IfNull": {"tf": 1}, "sqlglot.expressions.Initcap": {"tf": 1}, "sqlglot.expressions.JSONBContains": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.JSONExtractScalar": {"tf": 1}, "sqlglot.expressions.JSONBExtract": {"tf": 1}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Length": {"tf": 1}, "sqlglot.expressions.Levenshtein": {"tf": 1}, "sqlglot.expressions.Ln": {"tf": 1}, "sqlglot.expressions.Log": {"tf": 1}, "sqlglot.expressions.Log2": {"tf": 1}, "sqlglot.expressions.Log10": {"tf": 1}, "sqlglot.expressions.LogicalOr": {"tf": 1}, "sqlglot.expressions.LogicalAnd": {"tf": 1}, "sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}, "sqlglot.expressions.Month": {"tf": 1}, "sqlglot.expressions.Nvl2": {"tf": 1}, "sqlglot.expressions.Posexplode": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}, "sqlglot.expressions.PercentileCont": {"tf": 1}, "sqlglot.expressions.PercentileDisc": {"tf": 1}, "sqlglot.expressions.Quantile": {"tf": 1}, "sqlglot.expressions.Quantiles": {"tf": 1}, "sqlglot.expressions.QuantileIf": {"tf": 1}, "sqlglot.expressions.ApproxQuantile": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}, "sqlglot.expressions.ReadCSV": {"tf": 1}, "sqlglot.expressions.Reduce": {"tf": 1}, "sqlglot.expressions.RegexpExtract": {"tf": 1}, "sqlglot.expressions.RegexpLike": {"tf": 1}, "sqlglot.expressions.RegexpILike": {"tf": 1}, "sqlglot.expressions.RegexpSplit": {"tf": 1}, "sqlglot.expressions.Repeat": {"tf": 1}, "sqlglot.expressions.Round": {"tf": 1}, "sqlglot.expressions.RowNumber": {"tf": 1}, "sqlglot.expressions.SafeDivide": {"tf": 1}, "sqlglot.expressions.SetAgg": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}, "sqlglot.expressions.StrToDate": {"tf": 1}, "sqlglot.expressions.StrToTime": {"tf": 1}, "sqlglot.expressions.StrToUnix": {"tf": 1}, "sqlglot.expressions.NumberToStr": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.expressions.StructExtract": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}, "sqlglot.expressions.Sqrt": {"tf": 1}, "sqlglot.expressions.Stddev": {"tf": 1}, "sqlglot.expressions.StddevPop": {"tf": 1}, "sqlglot.expressions.StddevSamp": {"tf": 1}, "sqlglot.expressions.TimeToStr": {"tf": 1}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1}, "sqlglot.expressions.TimeToUnix": {"tf": 1}, "sqlglot.expressions.TimeStrToDate": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1}, "sqlglot.expressions.Unhex": {"tf": 1}, "sqlglot.expressions.UnixToStr": {"tf": 1}, "sqlglot.expressions.UnixToTime": {"tf": 1}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1}, "sqlglot.expressions.Upper": {"tf": 1}, "sqlglot.expressions.Variance": {"tf": 1}, "sqlglot.expressions.VariancePop": {"tf": 1}, "sqlglot.expressions.Week": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}, "sqlglot.expressions.Year": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 580}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Explode": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}}, "df": 5}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 7}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExternalProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.ExecuteAsProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env": {"tf": 1}, "sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}, "sqlglot.executor.python": {"tf": 1}, "sqlglot.executor.python.PythonExecutor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table": {"tf": 1}, "sqlglot.executor.table.Table": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.executor.table.TableIter": {"tf": 1}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}}, "df": 59}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Exists": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}}, "df": 3}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 9}}}}, "d": {"docs": {"sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.endswith": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {"sqlglot.executor.env": {"tf": 1}, "sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}}, "df": 10}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Encode": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.EngineProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.errors": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 18}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 5}}}}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 3}}}, "q": {"docs": {"sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 4}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 10}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ELSE": {"tf": 1}}, "df": 1}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}}, "df": 9}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Repeat": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}}, "df": 10}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reduce": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 3, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 3}}}}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Return": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}}, "df": 4}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 7}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}}, "df": 2}}}}}, "f": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}}, "df": 5}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.expressions.ReadCSV": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpExtract": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpLike": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.RegexpILike": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.RegexpSplit": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.tokens.TokenType.ROWS": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RowReader": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.RowNumber": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}}, "df": 4}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Round": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}}, "df": 3, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}}, "df": 2}}}}}}}, "n": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.RangeReader": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RIGHT": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}}, "df": 5, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage": {"tf": 1}, "sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 8, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.LastDateOfMonth": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LanguageProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "w": {"docs": {"sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 1}, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.LAZY": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LocationProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}}, "df": 2}}, "k": {"docs": {"sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}}, "df": 2}}}}}}, "g": {"1": {"0": {"docs": {"sqlglot.expressions.Log10": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"docs": {"sqlglot.expressions.Log2": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.expressions.Log": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.LogProperty": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.LogicalOr": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.LogicalAnd": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.optimizer.lower_identities": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}}, "df": 3}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.LEADING": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Length": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Levenshtein": {"tf": 1}}, "df": 1}}}}}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LEFT": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"sqlglot.expressions.LT": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot.expressions.Ln": {"tf": 1}}, "df": 1}, "r": {"docs": {"sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.hive": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1.4142135623730951}}, "df": 9}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}}, "df": 3}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 22}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.optimizer.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}}, "df": 8, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}}, "df": 2}, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 7}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.MaterializedProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}}, "df": 3}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}}, "df": 4, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Month": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.mysql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1.4142135623730951}}, "df": 7}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.optimizer.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}}, "df": 7}}}}, "g": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}}, "df": 13}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}}, "df": 2}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "x": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}}, "df": 5}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BEGIN": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.bfs": {"tf": 1}}, "df": 1}}, "y": {"docs": {"sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}}, "df": 12, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.ByteString": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}}, "df": 2, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}}, "df": 6}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BOTH": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 2}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BUCKET": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}}, "df": 4}}}, "e": {"docs": {"sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BREAK": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}}, "df": 13, "s": {"docs": {"sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 5}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.National": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATURAL": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}}, "df": 9, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}}, "df": 2}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}}, "df": 2}}}}}}, "m": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}}, "df": 4, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.NumberToStr": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}}, "df": 10, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.optimizer.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}}, "df": 8, "d": {"docs": {"sqlglot.optimizer.normalize.normalized": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}}, "df": 3}, "g": {"docs": {"sqlglot.expressions.Neg": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}}, "df": 2}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NEXT": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}}, "df": 2}}}}}}, "l": {"2": {"docs": {"sqlglot.expressions.Nvl2": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 7, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}}, "df": 2}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Variance": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VariancePop": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.VarMap": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.VolatilityProperty": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 15}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Quantile": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Quantiles": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.QuantileIf": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}}, "df": 2}}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}}, "df": 2}}, "y": {"docs": {"sqlglot.executor.env.reverse_key": {"tf": 1}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}}, "df": 4}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}}, "df": 2}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Year": {"tf": 1}}, "df": 1}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}}, "df": 4}}}}}}, "annotation": {"root": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}}, "df": 10, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}}, "df": 7}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 1}}}}}}}}}}}, "default_value": {"root": {"1": {"docs": {"sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}}, "df": 1}, "2": {"docs": {"sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}}, "df": 1}, "3": {"docs": {"sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}}, "df": 1}, "4": {"docs": {"sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}}, "df": 1}, "5": {"docs": {"sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}}, "df": 1}, "6": {"docs": {"sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.schema": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CARET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.XML": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DIV": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DROP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INNER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MOD": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SOME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TOP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.THEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.4142135623730951}}, "df": 391, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.4142135623730951}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.FARROW": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.FETCH": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.FILTER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FINAL": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.FORMAT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.FULL": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 391, "e": {"docs": {"sqlglot.tokens.TokenType.LTE": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}}, "df": 8}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.LOCAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {"sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}}, "df": 1}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.LATERAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.LAZY": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.LEADING": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LEFT": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.LIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}}, "df": 2}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.LIMIT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.4142135623730951}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 6}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SPACE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.STAR": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.4142135623730951}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.4142135623730951}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.SEMI": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SET": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.SEED": {"tf": 1.4142135623730951}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.SELECT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.SLASH": {"tf": 1.4142135623730951}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.SHOW": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.SOME": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}}, "df": 2, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MERGE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {"sqlglot.tokens.TokenType.MOD": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.OR": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.ORDERED": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}}, "df": 1, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.tokens.TokenType.ON": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.ONLY": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OUTER": {"tf": 1.4142135623730951}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.OVER": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.4142135623730951}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 391, "e": {"docs": {"sqlglot.tokens.TokenType.GTE": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.tokens.TokenType.GLOB": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1}}, "df": 20}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "v": {"docs": {"sqlglot.tokens.TokenType.DIV": {"tf": 1.4142135623730951}}, "df": 1}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}}, "df": 1, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DATABASE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DASH": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.DARROW": {"tf": 1.4142135623730951}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DAMP": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.DROP": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "t": {"docs": {"sqlglot.tokens.TokenType.DOT": {"tf": 1.4142135623730951}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}}, "df": 1, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DELETE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.tokens.TokenType.DESC": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.DCOLON": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.DPIPE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "x": {"2": {"7": {"docs": {"sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CARET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.XML": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESC": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DIV": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DROP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INNER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.MOD": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SOME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TOP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.THEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.4142135623730951}}, "df": 384}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.XML": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.XML": {"tf": 1.4142135623730951}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.4142135623730951}}, "df": 2}}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.BIT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.4142135623730951}}, "df": 3}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BOTH": {"tf": 1.4142135623730951}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {"sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BREAK": {"tf": 1.4142135623730951}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}}, "df": 2}}}}, "y": {"docs": {"sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.4142135623730951}}, "df": 7, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BEGIN": {"tf": 1.4142135623730951}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.BUCKET": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.CROSS": {"tf": 1.4142135623730951}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.4142135623730951}}, "df": 2, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1}}, "df": 1}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.COMMA": {"tf": 1.4142135623730951}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMMAND": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.COMMENT": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.COMMIT": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLON": {"tf": 1.4142135623730951}}, "df": 1}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.COLUMN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.4142135623730951}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.COLLATE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CARET": {"tf": 1.4142135623730951}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CACHE": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CASCADE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.CASE": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.CUBE": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}}, "df": 5}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.4142135623730951}}, "df": 1}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.HINT": {"tf": 1.4142135623730951}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.tokens.TokenType.HASH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}}, "df": 2}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.HAVING": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.4142135623730951}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}}, "df": 7, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.4142135623730951}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}}, "df": 2}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.PARTITION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.PLUS": {"tf": 1.4142135623730951}}, "df": 1}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.PIPE": {"tf": 1.4142135623730951}}, "df": 1}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PIVOT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.PERCENT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {"sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.REPLACE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.RETURNING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.RANGE": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.4142135623730951}}, "df": 2, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.ROWS": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.4142135623730951}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.RIGHT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.RLIKE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.4142135623730951}}, "df": 3, "a": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.TRAILING": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.TRUE": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.4142135623730951}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.CHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.4142135623730951}}, "df": 58}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.4142135623730951}}, "df": 2}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.tokens.TokenType.TILDA": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {"sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.4142135623730951}}, "df": 1, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.L_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1}, "sqlglot.tokens.TokenType.DOT": {"tf": 1}, "sqlglot.tokens.TokenType.DASH": {"tf": 1}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1}, "sqlglot.tokens.TokenType.COLON": {"tf": 1}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1}, "sqlglot.tokens.TokenType.STAR": {"tf": 1}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1}, "sqlglot.tokens.TokenType.LT": {"tf": 1}, "sqlglot.tokens.TokenType.LTE": {"tf": 1}, "sqlglot.tokens.TokenType.GT": {"tf": 1}, "sqlglot.tokens.TokenType.GTE": {"tf": 1}, "sqlglot.tokens.TokenType.NOT": {"tf": 1}, "sqlglot.tokens.TokenType.EQ": {"tf": 1}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1}, "sqlglot.tokens.TokenType.AND": {"tf": 1}, "sqlglot.tokens.TokenType.OR": {"tf": 1}, "sqlglot.tokens.TokenType.AMP": {"tf": 1}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1}, "sqlglot.tokens.TokenType.CARET": {"tf": 1}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1}, "sqlglot.tokens.TokenType.HASH": {"tf": 1}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1}, "sqlglot.tokens.TokenType.STRING": {"tf": 1}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1}, "sqlglot.tokens.TokenType.VAR": {"tf": 1}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1}, "sqlglot.tokens.TokenType.BIT": {"tf": 1}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1}, "sqlglot.tokens.TokenType.INT": {"tf": 1}, "sqlglot.tokens.TokenType.UINT": {"tf": 1}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1}, "sqlglot.tokens.TokenType.JSON": {"tf": 1}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1}, "sqlglot.tokens.TokenType.TIME": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.DATE": {"tf": 1}, "sqlglot.tokens.TokenType.UUID": {"tf": 1}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1}, "sqlglot.tokens.TokenType.XML": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1}, "sqlglot.tokens.TokenType.INET": {"tf": 1}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1}, "sqlglot.tokens.TokenType.ALL": {"tf": 1}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1}, "sqlglot.tokens.TokenType.ANY": {"tf": 1}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1}, "sqlglot.tokens.TokenType.ASC": {"tf": 1}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1}, "sqlglot.tokens.TokenType.CASE": {"tf": 1}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1}, "sqlglot.tokens.TokenType.DESC": {"tf": 1}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1}, "sqlglot.tokens.TokenType.DIV": {"tf": 1}, "sqlglot.tokens.TokenType.DROP": {"tf": 1}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1}, "sqlglot.tokens.TokenType.END": {"tf": 1}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1}, "sqlglot.tokens.TokenType.FOR": {"tf": 1}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1}, "sqlglot.tokens.TokenType.FROM": {"tf": 1}, "sqlglot.tokens.TokenType.FULL": {"tf": 1}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1}, "sqlglot.tokens.TokenType.HINT": {"tf": 1}, "sqlglot.tokens.TokenType.IF": {"tf": 1}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.IN": {"tf": 1}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1}, "sqlglot.tokens.TokenType.INNER": {"tf": 1}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1}, "sqlglot.tokens.TokenType.INTO": {"tf": 1}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.IS": {"tf": 1}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1}, "sqlglot.tokens.TokenType.MAP": {"tf": 1}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1}, "sqlglot.tokens.TokenType.MOD": {"tf": 1}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULL": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1}, "sqlglot.tokens.TokenType.ON": {"tf": 1}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1}, "sqlglot.tokens.TokenType.OVER": {"tf": 1}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1}, "sqlglot.tokens.TokenType.ROW": {"tf": 1}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1}, "sqlglot.tokens.TokenType.SEED": {"tf": 1}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1}, "sqlglot.tokens.TokenType.SET": {"tf": 1}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1}, "sqlglot.tokens.TokenType.SOME": {"tf": 1}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1}, "sqlglot.tokens.TokenType.TOP": {"tf": 1}, "sqlglot.tokens.TokenType.THEN": {"tf": 1}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1}, "sqlglot.tokens.TokenType.USE": {"tf": 1}, "sqlglot.tokens.TokenType.USING": {"tf": 1}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1}, "sqlglot.tokens.TokenType.WITH": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1}}, "df": 295}}}}}}}, "p": {"docs": {"sqlglot.tokens.TokenType.TOP": {"tf": 1.4142135623730951}}, "df": 1}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.THEN": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 4}}}}}}}}}, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.EXISTS": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "q": {"docs": {"sqlglot.tokens.TokenType.EQ": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}}, "df": 2}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.END": {"tf": 1.4142135623730951}}, "df": 2}}, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ELSE": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "n": {"docs": {"sqlglot.tokens.TokenType.IN": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {"sqlglot.expressions.DataType.Type.INT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INT": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.4142135623730951}}, "df": 2}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "o": {"docs": {"sqlglot.tokens.TokenType.INTO": {"tf": 1.4142135623730951}}, "df": 1}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.INET": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.INET": {"tf": 1.4142135623730951}}, "df": 2}}, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.INNER": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.INSERT": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "f": {"docs": {"sqlglot.tokens.TokenType.IF": {"tf": 1.4142135623730951}}, "df": 1}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.ILIKE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.IS": {"tf": 1.4142135623730951}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.ISNULL": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ErrorLevel.WARN": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.4142135623730951}}, "df": 1}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.WINDOW": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.WHEN": {"tf": 1.4142135623730951}}, "df": 1}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.WHERE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.4142135623730951}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NATURAL": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.4142135623730951}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.DataType.Type.NULL": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.4142135623730951}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.4142135623730951}}, "df": 2}}}}, "s": {"docs": {"sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.4142135623730951}}, "df": 4, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.NUMBER": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}}, "df": 1, "t": {"docs": {"sqlglot.tokens.TokenType.NOT": {"tf": 1.4142135623730951}}, "df": 1, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.tokens.TokenType.NEQ": {"tf": 1.4142135623730951}}, "df": 1}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.NEXT": {"tf": 1.4142135623730951}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.ALTER": {"tf": 1.4142135623730951}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {"sqlglot.tokens.TokenType.ALL": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.4142135623730951}}, "df": 2}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.4142135623730951}}, "df": 4}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.AND": {"tf": 1.4142135623730951}}, "df": 1}, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.tokens.TokenType.ANTI": {"tf": 1.4142135623730951}}, "df": 1}}, "y": {"docs": {"sqlglot.tokens.TokenType.ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.4142135623730951}}, "df": 3}}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.tokens.TokenType.AMP": {"tf": 1.4142135623730951}}, "df": 1}}, "t": {"docs": {"sqlglot.tokens.TokenType.LT_AT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 3}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.APPLY": {"tf": 1.4142135623730951}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.tokens.TokenType.ASC": {"tf": 1.4142135623730951}}, "df": 1}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.tokens.TokenType.ASOF": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.4142135623730951}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.4142135623730951}}, "df": 2}}}, "k": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNNEST": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.4142135623730951}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "e": {"docs": {"sqlglot.tokens.TokenType.USE": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.tokens.TokenType.USING": {"tf": 1.4142135623730951}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.DataType.Type.UUID": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.4142135623730951}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.UPDATE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.tokens.TokenType.VAR": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.4142135623730951}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.tokens.TokenType.VALUES": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.tokens.TokenType.VIEW": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.DataType.Type.JSON": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.4142135623730951}}, "df": 2, "b": {"docs": {"sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.4142135623730951}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.tokens.TokenType.JOIN": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.4142135623730951}}, "df": 2}}}}, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.4142135623730951}}, "df": 4}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.4142135623730951}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.4142135623730951}}, "df": 2}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.tokens.TokenType.QUOTE": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "signature": {"root": {"0": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 5, "x": {"7": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "b": {"8": {"docs": {}, "df": 0, "b": {"8": {"7": {"4": {"6": {"5": {"docs": {}, "df": 0, "f": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"2": {"9": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"docs": {}, "df": 0, "c": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}, "9": {"docs": {}, "df": 0, "e": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "d": {"0": {"0": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"docs": {}, "df": 0, "d": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "7": {"docs": {}, "df": 0, "e": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}, "8": {"7": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "c": {"0": {"docs": {}, "df": 0, "d": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "1": {"6": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "f": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "4": {"docs": {}, "df": 0, "c": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"0": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}}, "a": {"docs": {}, "df": 0, "c": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}, "d": {"6": {"docs": {}, "df": 0, "c": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "c": {"docs": {}, "df": 0, "f": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "b": {"docs": {}, "df": 0, "d": {"0": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}}, "docs": {}, "df": 0}}, "1": {"0": {"0": {"docs": {"sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"8": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "4": {"0": {"4": {"3": {"1": {"3": {"2": {"0": {"1": {"8": {"5": {"4": {"4": {"0": {"docs": {"sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"0": {"7": {"4": {"3": {"2": {"0": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"7": {"2": {"9": {"4": {"4": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"6": {"8": {"8": {"9": {"6": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"8": {"9": {"7": {"6": {"docs": {"sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"5": {"2": {"0": {"6": {"4": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"7": {"9": {"6": {"8": {"0": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"6": {"7": {"1": {"2": {"0": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"0": {"5": {"2": {"1": {"6": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"2": {"9": {"2": {"8": {"docs": {"sqlglot.dataframe.sql.Column.over": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"5": {"4": {"9": {"7": {"6": {"docs": {"sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"0": {"0": {"0": {"0": {"3": {"2": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"0": {"4": {"6": {"4": {"docs": {"sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"7": {"8": {"9": {"9": {"2": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"7": {"2": {"7": {"3": {"6": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"4": {"9": {"0": {"8": {"8": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"7": {"7": {"7": {"2": {"8": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "8": {"7": {"5": {"4": {"5": {"6": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"3": {"6": {"8": {"0": {"0": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"0": {"6": {"6": {"8": {"1": {"6": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"9": {"9": {"6": {"4": {"8": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"9": {"3": {"6": {"5": {"6": {"0": {"docs": {"sqlglot.dataframe.sql.Column.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"0": {"3": {"2": {"6": {"5": {"6": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"2": {"5": {"1": {"0": {"4": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}}, "df": 3}, "2": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1}, "3": {"9": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 2}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isin": {"tf": 2}, "sqlglot.dataframe.sql.Column.between": {"tf": 2}, "sqlglot.dataframe.sql.Column.over": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 2}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 2}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 2}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 2}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 2}, "sqlglot.generator.Generator.sep": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.seg": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 2.449489742783178}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.expressions": {"tf": 2}, "sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 39}, "docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 2}, "6": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.4142135623730951}}, "df": 1}, "8": {"0": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot.parse": {"tf": 10.099504938362077}, "sqlglot.parse_one": {"tf": 12.727922061357855}, "sqlglot.transpile": {"tf": 14}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 6}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 12.806248474865697}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 6}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 14.2828568570857}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 6.4031242374328485}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 5.830951894845301}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 6.324555320336759}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 6.48074069840786}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 8.426149773176359}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 8.426149773176359}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 6.324555320336759}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 6.324555320336759}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 12.041594578792296}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 9.9498743710662}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 9.9498743710662}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 7.14142842854285}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 7.3484692283495345}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 5.656854249492381}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 10.677078252031311}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 10}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 13.19090595827292}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 7.937253933193772}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 5.0990195135927845}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 8.12403840463596}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 6}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 8}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 9.327379053088816}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 6}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 6.782329983125268}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 9.16515138991168}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 8.602325267042627}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 6.164414002968976}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 7.0710678118654755}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 7.54983443527075}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 8.831760866327848}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 9.797958971132712}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 8.54400374531753}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 8.246211251235321}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 8.246211251235321}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 6.48074069840786}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 5.656854249492381}, "sqlglot.dataframe.sql.Column.copy": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.Column.sql": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.Column.alias": {"tf": 6}, "sqlglot.dataframe.sql.Column.asc": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.desc": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.when": {"tf": 7.937253933193772}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 6}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.Column.cast": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 8}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 8}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 6}, "sqlglot.dataframe.sql.Column.like": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.Column.substr": {"tf": 9.9498743710662}, "sqlglot.dataframe.sql.Column.isin": {"tf": 7.937253933193772}, "sqlglot.dataframe.sql.Column.between": {"tf": 8.660254037844387}, "sqlglot.dataframe.sql.Column.over": {"tf": 7.211102550927978}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 10.677078252031311}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 10.908712114635714}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 12.083045973594572}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 9}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 9}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 5.744562646538029}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 4.242640687119285}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 9}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 9}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 6.6332495807108}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 5.291502622129181}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 6}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 10}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 5.830951894845301}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 4.795831523312719}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 6.557438524302}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 7.615773105863909}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 7.745966692414834}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 5.291502622129181}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 5.291502622129181}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 5.291502622129181}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 9.273618495495704}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 7.615773105863909}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 10.099504938362077}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 5.5677643628300215}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 5.744562646538029}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 5.0990195135927845}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 5.0990195135927845}, "sqlglot.dialects.dialect.rename_func": {"tf": 6.928203230275509}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.if_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 7.416198487095663}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 7.416198487095663}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 8.48528137423857}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 8.660254037844387}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 8}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 6.164414002968976}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 4.898979485566356}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.min_or_least": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.trim_sql": {"tf": 6.48074069840786}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 4}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 4.47213595499958}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 6.855654600401044}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 6.164414002968976}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 5.477225575051661}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 5.291502622129181}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 5.291502622129181}, "sqlglot.diff.Insert.__init__": {"tf": 4.47213595499958}, "sqlglot.diff.Remove.__init__": {"tf": 4.47213595499958}, "sqlglot.diff.Move.__init__": {"tf": 4.47213595499958}, "sqlglot.diff.Update.__init__": {"tf": 6.164414002968976}, "sqlglot.diff.Keep.__init__": {"tf": 6.164414002968976}, "sqlglot.diff.diff": {"tf": 12.96148139681572}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 5.656854249492381}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 12.727922061357855}, "sqlglot.errors.ParseError.__init__": {"tf": 6.48074069840786}, "sqlglot.errors.ParseError.new": {"tf": 13.038404810405298}, "sqlglot.errors.concat_messages": {"tf": 5.385164807134504}, "sqlglot.errors.merge_errors": {"tf": 6.48074069840786}, "sqlglot.executor.execute": {"tf": 12.727922061357855}, "sqlglot.executor.context.Context.__init__": {"tf": 7.416198487095663}, "sqlglot.executor.context.Context.eval": {"tf": 3.7416573867739413}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 3.7416573867739413}, "sqlglot.executor.context.Context.add_columns": {"tf": 4.69041575982343}, "sqlglot.executor.context.Context.table_iter": {"tf": 7.681145747868608}, "sqlglot.executor.context.Context.filter": {"tf": 4}, "sqlglot.executor.context.Context.sort": {"tf": 4}, "sqlglot.executor.context.Context.set_row": {"tf": 4.47213595499958}, "sqlglot.executor.context.Context.set_index": {"tf": 4.47213595499958}, "sqlglot.executor.context.Context.set_range": {"tf": 5.291502622129181}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 2.8284271247461903}, "sqlglot.executor.env.filter_nulls": {"tf": 4.242640687119285}, "sqlglot.executor.env.null_if_any": {"tf": 3.4641016151377544}, "sqlglot.executor.env.str_position": {"tf": 4.69041575982343}, "sqlglot.executor.env.substring": {"tf": 5.0990195135927845}, "sqlglot.executor.env.cast": {"tf": 3.7416573867739413}, "sqlglot.executor.env.ordered": {"tf": 4.242640687119285}, "sqlglot.executor.env.interval": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 4.47213595499958}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 3.1622776601683795}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 3.7416573867739413}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 4.795831523312719}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 4.69041575982343}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 4.242640687119285}, "sqlglot.executor.table.Table.__init__": {"tf": 4.898979485566356}, "sqlglot.executor.table.Table.add_columns": {"tf": 4.69041575982343}, "sqlglot.executor.table.Table.append": {"tf": 3.7416573867739413}, "sqlglot.executor.table.Table.pop": {"tf": 3.1622776601683795}, "sqlglot.executor.table.TableIter.__init__": {"tf": 2.8284271247461903}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 2.8284271247461903}, "sqlglot.executor.table.RowReader.__init__": {"tf": 4}, "sqlglot.executor.table.ensure_tables": {"tf": 5.744562646538029}, "sqlglot.expressions.Expression.__init__": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.text": {"tf": 4}, "sqlglot.expressions.Expression.copy": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.append": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.set": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.find": {"tf": 6.6332495807108}, "sqlglot.expressions.Expression.find_all": {"tf": 6.6332495807108}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 6}, "sqlglot.expressions.Expression.root": {"tf": 4.47213595499958}, "sqlglot.expressions.Expression.walk": {"tf": 5.0990195135927845}, "sqlglot.expressions.Expression.dfs": {"tf": 5.830951894845301}, "sqlglot.expressions.Expression.bfs": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.unnest": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.unalias": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.flatten": {"tf": 4.242640687119285}, "sqlglot.expressions.Expression.sql": {"tf": 9.055385138137417}, "sqlglot.expressions.Expression.transform": {"tf": 5.830951894845301}, "sqlglot.expressions.Expression.replace": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.pop": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.assert_is": {"tf": 3.872983346207417}, "sqlglot.expressions.Expression.error_messages": {"tf": 6}, "sqlglot.expressions.Expression.dump": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.load": {"tf": 3.7416573867739413}, "sqlglot.expressions.Condition.and_": {"tf": 5.477225575051661}, "sqlglot.expressions.Condition.or_": {"tf": 5.477225575051661}, "sqlglot.expressions.Condition.not_": {"tf": 3.1622776601683795}, "sqlglot.expressions.Unionable.union": {"tf": 6}, "sqlglot.expressions.Unionable.intersect": {"tf": 6}, "sqlglot.expressions.Unionable.except_": {"tf": 6}, "sqlglot.expressions.Delete.delete": {"tf": 11.489125293076057}, "sqlglot.expressions.Delete.where": {"tf": 12.206555615733702}, "sqlglot.expressions.Delete.returning": {"tf": 11.489125293076057}, "sqlglot.expressions.Literal.number": {"tf": 4.898979485566356}, "sqlglot.expressions.Literal.string": {"tf": 4.898979485566356}, "sqlglot.expressions.Join.on": {"tf": 6.782329983125268}, "sqlglot.expressions.Join.using": {"tf": 6.782329983125268}, "sqlglot.expressions.Properties.from_dict": {"tf": 4.898979485566356}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 6}, "sqlglot.expressions.Subqueryable.limit": {"tf": 7.14142842854285}, "sqlglot.expressions.Subqueryable.with_": {"tf": 8.06225774829855}, "sqlglot.expressions.Union.limit": {"tf": 7.14142842854285}, "sqlglot.expressions.Union.select": {"tf": 12.206555615733702}, "sqlglot.expressions.Select.from_": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.group_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.order_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.sort_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.cluster_by": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.limit": {"tf": 7.14142842854285}, "sqlglot.expressions.Select.offset": {"tf": 7.14142842854285}, "sqlglot.expressions.Select.select": {"tf": 12.206555615733702}, "sqlglot.expressions.Select.lateral": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.join": {"tf": 9.797958971132712}, "sqlglot.expressions.Select.where": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.having": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.window": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.qualify": {"tf": 7.874007874011811}, "sqlglot.expressions.Select.distinct": {"tf": 6}, "sqlglot.expressions.Select.ctas": {"tf": 7.745966692414834}, "sqlglot.expressions.Select.lock": {"tf": 7.14142842854285}, "sqlglot.expressions.Subquery.unnest": {"tf": 3.1622776601683795}, "sqlglot.expressions.DataType.build": {"tf": 11.357816691600547}, "sqlglot.expressions.DataType.is_type": {"tf": 5.656854249492381}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func.from_arg_list": {"tf": 3.7416573867739413}, "sqlglot.expressions.Func.sql_names": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func.sql_name": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 3.1622776601683795}, "sqlglot.expressions.Cast.is_type": {"tf": 5.656854249492381}, "sqlglot.expressions.maybe_parse": {"tf": 14.866068747318506}, "sqlglot.expressions.union": {"tf": 6}, "sqlglot.expressions.intersect": {"tf": 6}, "sqlglot.expressions.except_": {"tf": 6}, "sqlglot.expressions.select": {"tf": 10.677078252031311}, "sqlglot.expressions.from_": {"tf": 6}, "sqlglot.expressions.update": {"tf": 13.892443989449804}, "sqlglot.expressions.delete": {"tf": 13.711309200802088}, "sqlglot.expressions.condition": {"tf": 5.830951894845301}, "sqlglot.expressions.and_": {"tf": 6}, "sqlglot.expressions.or_": {"tf": 6}, "sqlglot.expressions.not_": {"tf": 5.830951894845301}, "sqlglot.expressions.paren": {"tf": 4.47213595499958}, "sqlglot.expressions.to_identifier": {"tf": 4.242640687119285}, "sqlglot.expressions.to_interval": {"tf": 6.164414002968976}, "sqlglot.expressions.to_table": {"tf": 7.745966692414834}, "sqlglot.expressions.to_column": {"tf": 6.708203932499369}, "sqlglot.expressions.alias_": {"tf": 13.601470508735444}, "sqlglot.expressions.subquery": {"tf": 5.656854249492381}, "sqlglot.expressions.column": {"tf": 11.575836902790225}, "sqlglot.expressions.cast": {"tf": 9.433981132056603}, "sqlglot.expressions.table_": {"tf": 7.54983443527075}, "sqlglot.expressions.values": {"tf": 10.44030650891055}, "sqlglot.expressions.var": {"tf": 6.928203230275509}, "sqlglot.expressions.rename_table": {"tf": 7.745966692414834}, "sqlglot.expressions.convert": {"tf": 4.47213595499958}, "sqlglot.expressions.replace_children": {"tf": 5.0990195135927845}, "sqlglot.expressions.column_table_names": {"tf": 3.1622776601683795}, "sqlglot.expressions.table_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.replace_tables": {"tf": 3.7416573867739413}, "sqlglot.expressions.replace_placeholders": {"tf": 4.69041575982343}, "sqlglot.expressions.expand": {"tf": 8.306623862918075}, "sqlglot.expressions.func": {"tf": 10.04987562112089}, "sqlglot.expressions.true": {"tf": 2.6457513110645907}, "sqlglot.expressions.false": {"tf": 2.6457513110645907}, "sqlglot.expressions.null": {"tf": 2.6457513110645907}, "sqlglot.generator.Generator.__init__": {"tf": 15.033296378372908}, "sqlglot.generator.Generator.generate": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.unsupported": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.sep": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.seg": {"tf": 6}, "sqlglot.generator.Generator.pad_comment": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.maybe_comment": {"tf": 6}, "sqlglot.generator.Generator.wrap": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.no_identify": {"tf": 6.6332495807108}, "sqlglot.generator.Generator.normalize_func": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.indent": {"tf": 9.327379053088816}, "sqlglot.generator.Generator.sql": {"tf": 8.94427190999916}, "sqlglot.generator.Generator.uncache_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.cache_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.characterset_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.column_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.columndef_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 4.242640687119285}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 5.477225575051661}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 4.242640687119285}, "sqlglot.generator.Generator.create_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.describe_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 6}, "sqlglot.generator.Generator.with_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.cte_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.datatype_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.directory_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.delete_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.drop_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.except_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.except_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.fetch_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.filter_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.hint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.index_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.identifier_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.national_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.partition_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.properties_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.root_properties": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.properties": {"tf": 9.797958971132712}, "sqlglot.generator.Generator.with_properties": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.locate_properties": {"tf": 7.937253933193772}, "sqlglot.generator.Generator.property_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.insert_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.intersect_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.intersect_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.introducer_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.returning_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.table_sql": {"tf": 6.6332495807108}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 6.855654600401044}, "sqlglot.generator.Generator.pivot_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.tuple_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.update_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.values_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.var_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.into_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.from_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.group_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.having_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.join_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lambda_sql": {"tf": 6.855654600401044}, "sqlglot.generator.Generator.lateral_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.limit_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.offset_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.setitem_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.set_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lock_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.literal_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.null_sql": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.boolean_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.order_sql": {"tf": 6.48074069840786}, "sqlglot.generator.Generator.cluster_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.distribute_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.sort_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.ordered_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.query_modifiers": {"tf": 6.164414002968976}, "sqlglot.generator.Generator.select_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.schema_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.star_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.parameter_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.subquery_sql": {"tf": 6.6332495807108}, "sqlglot.generator.Generator.qualify_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.union_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.union_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.unnest_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.where_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.window_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 6.557438524302}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.between_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bracket_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.all_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.any_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.exists_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.case_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.constraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.extract_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.trim_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.concat_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.check_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.unique_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.if_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.in_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.interval_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.return_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.reference_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.paren_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.neg_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.not_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.alias_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.aliases_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.add_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.and_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.connector_sql": {"tf": 6}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.cast_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.collate_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.command_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.comment_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.transaction_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.commit_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.rollback_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.renametable_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.altertable_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.distinct_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.div_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.distance_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.dot_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.eq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.escape_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.glob_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.gt_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.gte_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.ilike_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.is_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.like_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.similarto_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lt_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.lte_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mod_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.mul_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.neq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.or_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.slice_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.sub_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.trycast_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.use_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.binary": {"tf": 6}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.func": {"tf": 7.483314773547883}, "sqlglot.generator.Generator.format_args": {"tf": 6.708203932499369}, "sqlglot.generator.Generator.text_width": {"tf": 4.47213595499958}, "sqlglot.generator.Generator.format_time": {"tf": 5.744562646538029}, "sqlglot.generator.Generator.expressions": {"tf": 10.677078252031311}, "sqlglot.generator.Generator.op_expressions": {"tf": 7.3484692283495345}, "sqlglot.generator.Generator.naked_property": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.set_operation": {"tf": 6}, "sqlglot.generator.Generator.tag_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.token_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.when_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.merge_sql": {"tf": 5.291502622129181}, "sqlglot.generator.Generator.tochar_sql": {"tf": 5.291502622129181}, "sqlglot.helper.seq_get": {"tf": 6.164414002968976}, "sqlglot.helper.ensure_list": {"tf": 3.1622776601683795}, "sqlglot.helper.ensure_collection": {"tf": 3.1622776601683795}, "sqlglot.helper.csv": {"tf": 5.477225575051661}, "sqlglot.helper.subclasses": {"tf": 9.38083151964686}, "sqlglot.helper.apply_index_offset": {"tf": 6.6332495807108}, "sqlglot.helper.camel_to_snake_case": {"tf": 4}, "sqlglot.helper.while_changing": {"tf": 8}, "sqlglot.helper.tsort": {"tf": 6.324555320336759}, "sqlglot.helper.open_file": {"tf": 3.872983346207417}, "sqlglot.helper.csv_reader": {"tf": 4.898979485566356}, "sqlglot.helper.find_new_name": {"tf": 5.385164807134504}, "sqlglot.helper.object_to_dict": {"tf": 4.69041575982343}, "sqlglot.helper.split_num_words": {"tf": 7.615773105863909}, "sqlglot.helper.is_iterable": {"tf": 4}, "sqlglot.helper.flatten": {"tf": 6.082762530298219}, "sqlglot.helper.count_params": {"tf": 4}, "sqlglot.helper.dict_depth": {"tf": 4}, "sqlglot.helper.first": {"tf": 5}, "sqlglot.helper.should_identify": {"tf": 5.385164807134504}, "sqlglot.lineage.Node.__init__": {"tf": 9}, "sqlglot.lineage.Node.walk": {"tf": 5}, "sqlglot.lineage.Node.to_html": {"tf": 5.0990195135927845}, "sqlglot.lineage.lineage": {"tf": 16.522711641858304}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 10.44030650891055}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 5.830951894845301}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 5.291502622129181}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 3.7416573867739413}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 7.0710678118654755}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 5.656854249492381}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 5.656854249492381}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 5.744562646538029}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 5.744562646538029}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3.1622776601683795}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 5.744562646538029}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 3.1622776601683795}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 4.242640687119285}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 3.1622776601683795}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 4.242640687119285}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 4.242640687119285}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.normalize": {"tf": 5.0990195135927845}, "sqlglot.optimizer.normalize.normalized": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 4.242640687119285}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 4.242640687119285}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 3.1622776601683795}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 3.1622776601683795}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 3.1622776601683795}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 3.7416573867739413}, "sqlglot.optimizer.optimizer.optimize": {"tf": 22.40535650240808}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 3.1622776601683795}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 4.242640687119285}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 3.7416573867739413}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 5.0990195135927845}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 3.7416573867739413}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 3.1622776601683795}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 5.744562646538029}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 4.69041575982343}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 5.830951894845301}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 8.06225774829855}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 5.656854249492381}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.find": {"tf": 4.898979485566356}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 4.898979485566356}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 3.7416573867739413}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 3.7416573867739413}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.build_scope": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.simplify": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 5.744562646538029}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.flatten": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.always_true": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.is_complement": {"tf": 3.7416573867739413}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 4.242640687119285}, "sqlglot.optimizer.simplify.extract_date": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.date_literal": {"tf": 3.1622776601683795}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 3.1622776601683795}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 3.1622776601683795}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 4.242640687119285}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 4.69041575982343}, "sqlglot.parser.parse_var_map": {"tf": 3.1622776601683795}, "sqlglot.parser.binary_range_parser": {"tf": 8.660254037844387}, "sqlglot.parser.Parser.__init__": {"tf": 11.269427669584644}, "sqlglot.parser.Parser.reset": {"tf": 3.1622776601683795}, "sqlglot.parser.Parser.parse": {"tf": 8.426149773176359}, "sqlglot.parser.Parser.parse_into": {"tf": 11.313708498984761}, "sqlglot.parser.Parser.check_errors": {"tf": 3.4641016151377544}, "sqlglot.parser.Parser.raise_error": {"tf": 6.855654600401044}, "sqlglot.parser.Parser.expression": {"tf": 8.54400374531753}, "sqlglot.parser.Parser.validate_expression": {"tf": 7.0710678118654755}, "sqlglot.planner.Plan.__init__": {"tf": 4.47213595499958}, "sqlglot.planner.Step.from_expression": {"tf": 8.602325267042627}, "sqlglot.planner.Step.add_dependency": {"tf": 5.291502622129181}, "sqlglot.planner.Step.to_s": {"tf": 5.0990195135927845}, "sqlglot.planner.Scan.from_expression": {"tf": 8.602325267042627}, "sqlglot.planner.Join.from_joins": {"tf": 8.888194417315589}, "sqlglot.planner.SetOperation.__init__": {"tf": 8.306623862918075}, "sqlglot.planner.SetOperation.from_expression": {"tf": 8.602325267042627}, "sqlglot.schema.Schema.add_table": {"tf": 9.539392014169456}, "sqlglot.schema.Schema.column_names": {"tf": 7.416198487095663}, "sqlglot.schema.Schema.get_column_type": {"tf": 7.745966692414834}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 4.795831523312719}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 5.744562646538029}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 8.48528137423857}, "sqlglot.schema.MappingSchema.__init__": {"tf": 10.295630140987}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 6.164414002968976}, "sqlglot.schema.MappingSchema.copy": {"tf": 5.0990195135927845}, "sqlglot.schema.MappingSchema.add_table": {"tf": 9.539392014169456}, "sqlglot.schema.MappingSchema.column_names": {"tf": 7.416198487095663}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 8.06225774829855}, "sqlglot.schema.ensure_schema": {"tf": 4.898979485566356}, "sqlglot.schema.ensure_column_mapping": {"tf": 7.483314773547883}, "sqlglot.schema.flatten_schema": {"tf": 7.54983443527075}, "sqlglot.serde.dump": {"tf": 11.045361017187261}, "sqlglot.serde.load": {"tf": 11.045361017187261}, "sqlglot.time.format_time": {"tf": 7.810249675906654}, "sqlglot.tokens.Token.__init__": {"tf": 9}, "sqlglot.tokens.Token.number": {"tf": 5.291502622129181}, "sqlglot.tokens.Token.string": {"tf": 5.291502622129181}, "sqlglot.tokens.Token.identifier": {"tf": 5.291502622129181}, "sqlglot.tokens.Token.var": {"tf": 5.291502622129181}, "sqlglot.tokens.Tokenizer.reset": {"tf": 3.4641016151377544}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 5.744562646538029}, "sqlglot.transforms.unalias_group": {"tf": 5.744562646538029}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 5.744562646538029}, "sqlglot.transforms.eliminate_qualify": {"tf": 5.744562646538029}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 5.744562646538029}, "sqlglot.transforms.preprocess": {"tf": 10.816653826391969}, "sqlglot.transforms.delegate": {"tf": 4}, "sqlglot.trie.new_trie": {"tf": 4.898979485566356}, "sqlglot.trie.in_trie": {"tf": 6.244997998398398}}, "df": 719, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 109, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 1.7320508075688772}, "sqlglot.parse_one": {"tf": 2.23606797749979}, "sqlglot.transpile": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.if_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 3}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 3}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor.execute": {"tf": 2.23606797749979}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 2}, "sqlglot.expressions.Delete.where": {"tf": 2}, "sqlglot.expressions.Delete.returning": {"tf": 2}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 2.449489742783178}, "sqlglot.expressions.delete": {"tf": 2.449489742783178}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}, "sqlglot.expressions.rename_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2.6457513110645907}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.parser.binary_range_parser": {"tf": 2}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.Join.from_joins": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.ensure_schema": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2.449489742783178}}, "df": 491}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 2}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 2}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 2}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1.4142135623730951}, "sqlglot.errors.ParseError.new": {"tf": 2.449489742783178}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.seg": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pad_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.wrap": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.no_identify": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.normalize_func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 2}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.format_args": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 2}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2.23606797749979}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 2}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 414, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}}, "df": 2}}}}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}}, "df": 1}}}}}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 3}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}}, "df": 4}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.star_sql": {"tf": 1}}, "df": 1, "t": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 9, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Join.from_joins": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 12}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.context.Context.eval": {"tf": 1}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}, "sqlglot.executor.table.Table.pop": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.null_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.parser.Parser.reset": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 499}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1.4142135623730951}}, "df": 25, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 17}}}}}}, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"docs": {"sqlglot.generator.Generator.set_sql": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.generator.Generator.setitem_sql": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.generator.Generator.sep": {"tf": 1}, "sqlglot.generator.Generator.seg": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 9}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 18}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 2}}}}}}}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.generator.Generator.sub_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 7}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.env.str_position": {"tf": 1}}, "df": 1}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.generator.Generator.properties": {"tf": 1}}, "df": 1}}}}}, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.expressions.expand": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 6}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.sort_sql": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.generator.Generator.similarto_sql": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.slice_sql": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 5, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 3}}}}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.Column.rlike": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}}, "df": 2}}}}}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.return_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}}, "df": 2}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 3}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.reference_sql": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}}, "df": 2, "n": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.table.Table.append": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.executor.table.Table.__init__": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.rollback_sql": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 4}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 73}}, "t": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}}, "df": 2}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.unique_sql": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 7}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.uncache_sql": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}}, "df": 6}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Select.join": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.generator.Generator.use_sql": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "d": {"docs": {"sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 2}, "sqlglot.parse_one": {"tf": 2}, "sqlglot.transpile": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 2.6457513110645907}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.executor.execute": {"tf": 2}, "sqlglot.expressions.Expression.sql": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.returning": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 2.23606797749979}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 2.23606797749979}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 2.23606797749979}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.__init__": {"tf": 2.23606797749979}}, "df": 58, "s": {"docs": {"sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.7320508075688772}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}}, "df": 22}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 37}}, "s": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 9}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.distribute_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 3}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 2.23606797749979}}, "df": 2}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.directory_sql": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {"sqlglot.generator.Generator.div_sql": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 2}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 89, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 3}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 14}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {"sqlglot.optimizer.simplify.date_literal": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}, "f": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}}, "df": 2}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}}, "df": 5}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.planner.Step.add_dependency": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}}, "df": 3}}}}, "b": {"docs": {"sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 3}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.drop_sql": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.droppartition_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.dpipe_sql": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.dot_sql": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}}, "df": 4}}}, "t": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1.7320508075688772}, "sqlglot.helper.first": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 5, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 44, "s": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 11}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 54}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}}, "df": 2}, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 4}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 27, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 10, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 5}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.tablealias_sql": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.Update.__init__": {"tf": 1}, "sqlglot.diff.Keep.__init__": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 4}}}}, "g": {"docs": {"sqlglot.generator.Generator.tag_sql": {"tf": 1}}, "df": 1}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 13}}}}, "h": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.executor.env.interval": {"tf": 1}}, "df": 5}}}, "o": {"docs": {"sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.executor.env.cast": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 7, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 11, "s": {"docs": {"sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 11}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.token_sql": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.tochar_sql": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.executor.context.Context.set_row": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.executor.env.str_position": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 3.1622776601683795}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 2}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1}}, "df": 128, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}}, "df": 45}}}}}}, "t": {"docs": {"sqlglot.expressions.not_": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1}}, "df": 8}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.normalize_func": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 26}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.national_sql": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 4}, "g": {"docs": {"sqlglot.generator.Generator.neg_sql": {"tf": 1}}, "df": 1}, "q": {"docs": {"sqlglot.generator.Generator.neq_sql": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}}, "df": 2}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {"sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 56}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.table.ensure_tables": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.4142135623730951}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 60}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}}, "df": 2}}}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.like": {"tf": 1}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1}}, "df": 11}}}}, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 5}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.overlaps_sql": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 5}}}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {"sqlglot.executor.env.reverse_key.__init__": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 4}}, "r": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.order_sql": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.ordered_sql": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1.4142135623730951}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1.7320508075688772}, "sqlglot.serde.load": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 54}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.like_sql": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}, "sqlglot.lineage.Node.to_html": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 5, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.lineage.Node.to_html": {"tf": 1}}, "df": 1}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}}, "df": 4}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.limit_sql": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.planner.Step.to_s": {"tf": 1}}, "df": 5}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.Column.substr": {"tf": 1}, "sqlglot.executor.env.substring": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}}, "df": 3}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}}, "df": 4}}}, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 26, "e": {"docs": {"sqlglot.generator.Generator.lte_sql": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 3}}, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.Column.between": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.locate_properties": {"tf": 1}}, "df": 1}}}}}, "k": {"docs": {"sqlglot.generator.Generator.lock_sql": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.loaddata_sql": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}}, "df": 8, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 3, "r": {"docs": {"sqlglot.parser.binary_range_parser": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 2}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Remove.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Move.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Update.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 2}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.wrap": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.__init__": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1}, "sqlglot.optimizer.simplify.always_true": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Plan.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.7320508075688772}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 391, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}, "sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1}, "sqlglot.diff.Insert.__init__": {"tf": 1}, "sqlglot.diff.Remove.__init__": {"tf": 1}, "sqlglot.diff.Move.__init__": {"tf": 1}, "sqlglot.diff.Update.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 2}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.window": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.qualify": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.paren": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}, "sqlglot.expressions.rename_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1}, "sqlglot.generator.Generator.wrap": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1}, "sqlglot.generator.Generator.cache_sql": {"tf": 1}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}, "sqlglot.generator.Generator.describe_sql": {"tf": 1}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1}, "sqlglot.generator.Generator.directory_sql": {"tf": 1}, "sqlglot.generator.Generator.delete_sql": {"tf": 1}, "sqlglot.generator.Generator.drop_sql": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.filter_sql": {"tf": 1}, "sqlglot.generator.Generator.hint_sql": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.generator.Generator.national_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_sql": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.with_properties": {"tf": 1}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}, "sqlglot.generator.Generator.returning_sql": {"tf": 1}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1}, "sqlglot.generator.Generator.update_sql": {"tf": 1}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}, "sqlglot.generator.Generator.having_sql": {"tf": 1}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1}, "sqlglot.generator.Generator.limit_sql": {"tf": 1}, "sqlglot.generator.Generator.offset_sql": {"tf": 1}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1}, "sqlglot.generator.Generator.set_sql": {"tf": 1}, "sqlglot.generator.Generator.lock_sql": {"tf": 1}, "sqlglot.generator.Generator.literal_sql": {"tf": 1}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1}, "sqlglot.generator.Generator.sort_sql": {"tf": 1}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1}, "sqlglot.generator.Generator.select_sql": {"tf": 1}, "sqlglot.generator.Generator.schema_sql": {"tf": 1}, "sqlglot.generator.Generator.star_sql": {"tf": 1}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.generator.Generator.union_sql": {"tf": 1}, "sqlglot.generator.Generator.union_op": {"tf": 1}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1}, "sqlglot.generator.Generator.between_sql": {"tf": 1}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1}, "sqlglot.generator.Generator.all_sql": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.generator.Generator.exists_sql": {"tf": 1}, "sqlglot.generator.Generator.case_sql": {"tf": 1}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1}, "sqlglot.generator.Generator.extract_sql": {"tf": 1}, "sqlglot.generator.Generator.trim_sql": {"tf": 1}, "sqlglot.generator.Generator.concat_sql": {"tf": 1}, "sqlglot.generator.Generator.check_sql": {"tf": 1}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}, "sqlglot.generator.Generator.unique_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}, "sqlglot.generator.Generator.in_sql": {"tf": 1}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.generator.Generator.return_sql": {"tf": 1}, "sqlglot.generator.Generator.reference_sql": {"tf": 1}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}, "sqlglot.generator.Generator.neg_sql": {"tf": 1}, "sqlglot.generator.Generator.not_sql": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1}, "sqlglot.generator.Generator.add_sql": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}, "sqlglot.generator.Generator.connector_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}, "sqlglot.generator.Generator.collate_sql": {"tf": 1}, "sqlglot.generator.Generator.command_sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1}, "sqlglot.generator.Generator.commit_sql": {"tf": 1}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1}, "sqlglot.generator.Generator.div_sql": {"tf": 1}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1}, "sqlglot.generator.Generator.distance_sql": {"tf": 1}, "sqlglot.generator.Generator.dot_sql": {"tf": 1}, "sqlglot.generator.Generator.eq_sql": {"tf": 1}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}, "sqlglot.generator.Generator.glob_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.generator.Generator.gte_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.is_sql": {"tf": 1}, "sqlglot.generator.Generator.like_sql": {"tf": 1}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1}, "sqlglot.generator.Generator.lt_sql": {"tf": 1}, "sqlglot.generator.Generator.lte_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mul_sql": {"tf": 1}, "sqlglot.generator.Generator.neq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1}, "sqlglot.generator.Generator.or_sql": {"tf": 1}, "sqlglot.generator.Generator.slice_sql": {"tf": 1}, "sqlglot.generator.Generator.sub_sql": {"tf": 1}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1}, "sqlglot.generator.Generator.use_sql": {"tf": 1}, "sqlglot.generator.Generator.binary": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.format_time": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}, "sqlglot.generator.Generator.set_operation": {"tf": 1}, "sqlglot.generator.Generator.tag_sql": {"tf": 1}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1}, "sqlglot.generator.Generator.when_sql": {"tf": 1}, "sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.parser.binary_range_parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Plan.__init__": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 385}}}}}}}, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"sqlglot.generator.Generator.exists_sql": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1}, "sqlglot.generator.Generator.except_sql": {"tf": 1}, "sqlglot.generator.Generator.except_op": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.table.ensure_tables": {"tf": 1}}, "df": 4}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.extract_sql": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}}, "df": 6}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 3}}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 7}, "v": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor.env.filter_nulls": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.escape_sql": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {"sqlglot.generator.Generator.eq_sql": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.in_sql": {"tf": 1}}, "df": 1, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1.4142135623730951}, "sqlglot.errors.ParseError.new": {"tf": 1.4142135623730951}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.executor.context.Context.set_range": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.to_s": {"tf": 1}, "sqlglot.schema.flatten_schema": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.__init__": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 33, "o": {"docs": {"sqlglot.parse_one": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.into_sql": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1}, "sqlglot.generator.Generator.intersect_op": {"tf": 1}}, "df": 3}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.to_interval": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.interval_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1}}, "df": 3}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.introducer_sql": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.generator.Generator.intdiv_sql": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}, "sqlglot.generator.Generator.insert_sql": {"tf": 1}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor.context.Context.set_index": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.index_sql": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 5}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}}, "df": 19, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.__init__": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}}, "df": 6}}}, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 3}}}}}}}, "t": {"docs": {"sqlglot.helper.first": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 7}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.context.Context.table_iter": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.lineage.Node.walk": {"tf": 1}}, "df": 4}}}}}}}, "f": {"docs": {"sqlglot.dialects.dialect.if_sql": {"tf": 1}, "sqlglot.generator.Generator.if_sql": {"tf": 1}}, "df": 2}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"sqlglot.generator.Generator.is_sql": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML.__init__": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 4, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse_one": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 6}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.collate_sql": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}}, "df": 18}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.when": {"tf": 2}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 2}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 2}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.substr": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.column_sql": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 50, "s": {"docs": {"sqlglot.executor.context.Context.add_columns": {"tf": 1}, "sqlglot.executor.table.Table.__init__": {"tf": 1}, "sqlglot.executor.table.Table.add_columns": {"tf": 1}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 8}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.generator.Generator.columndef_sql": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 10}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.executor.context.Context.filter": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1}}, "df": 5}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.constraint_sql": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.concat_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.connector_sql": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 31}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.context.Context.eval": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor.context.Context.eval_tuple": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.command_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.pad_comment": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.comment_sql": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.tokens.Token.__init__": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.commit_sql": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}}, "df": 2}}}}}}, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Literal.number": {"tf": 1}, "sqlglot.expressions.Literal.string": {"tf": 1}, "sqlglot.expressions.Properties.from_dict": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.Func.sql_names": {"tf": 1}, "sqlglot.expressions.Func.sql_name": {"tf": 1}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 30}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.cluster_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dialects.dialect.rename_func": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.binary_range_parser": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 16}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.generator.Generator.cast_sql": {"tf": 1}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1}}, "df": 5}, "e": {"docs": {"sqlglot.generator.Generator.case_sql": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.table_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.cache_sql": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1}, "sqlglot.generator.Generator.cte_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.generator.Generator.create_sql": {"tf": 1}}, "df": 3}}}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.characterset_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.generator.Generator.check_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.properties": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.generator.Generator.window_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}}, "df": 12, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1}}, "df": 9}}}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1}, "sqlglot.generator.Generator.with_sql": {"tf": 1}}, "df": 2, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.generator.Generator.withingroup_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator.where_sql": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot.generator.Generator.when_sql": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 2, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.DataType.is_type": {"tf": 1}, "sqlglot.expressions.Cast.is_type": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 39, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.boolean_sql": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bracket_sql": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}}, "df": 2}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.bitstring_sql": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "x": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.binary": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.between_sql": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}}, "df": 19}}}}}}}, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1.7320508075688772}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.dialect.parse_date_delta": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.ensure_column_mapping": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 2}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}, "x": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.errors.concat_messages": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.generator.Generator.unsupported": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 5}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.merge_sql": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 2, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1}, "sqlglot.generator.Generator.mod_sql": {"tf": 1}}, "df": 2, "e": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 2}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.min_or_least": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.AbstractMappingSchema.find": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.mul_sql": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.over": {"tf": 1}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1}, "sqlglot.generator.Generator.gt_sql": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.lineage.Node.__init__": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}}, "df": 27, "e": {"docs": {"sqlglot.generator.Generator.gte_sql": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1}, "sqlglot.generator.Generator.group_sql": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}}, "df": 1}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.if_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 27}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1}}, "df": 2}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.generator.Generator.glob_sql": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"sqlglot.diff.ChangeDistiller.__init__": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1.4142135623730951}}, "df": 7}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 2.23606797749979}, "sqlglot.generator.Generator.indent": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.order_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.generator.Generator.op_expressions": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalized": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.__init__": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 22}}, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.lineage.Node.__init__": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 2, "c": {"docs": {"sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1}, "sqlglot.executor.env.filter_nulls": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.count_params": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}}, "df": 3, "s": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.foreignkey_sql": {"tf": 1}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1}}, "df": 2}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.env.ordered": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.filter_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}, "l": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.from_sql": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1}}, "df": 1}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 17, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.values_sql": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator.var_sql": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 3, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dialects.dialect.var_map_sql": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 4}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.parameter_sql": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.Dialect.parser": {"tf": 1.4142135623730951}, "sqlglot.parser.binary_range_parser": {"tf": 1.4142135623730951}}, "df": 2}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.partition_sql": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.paren": {"tf": 1}, "sqlglot.generator.Generator.paren_sql": {"tf": 1}}, "df": 2, "t": {"docs": {"sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}}, "df": 2}}, "d": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.indent": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.no_properties_sql": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.expressions.Properties.from_dict": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator.properties_sql": {"tf": 1}, "sqlglot.generator.Generator.root_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}}, "df": 11}}}, "y": {"docs": {"sqlglot.generator.Generator.locate_properties": {"tf": 1}, "sqlglot.generator.Generator.property_sql": {"tf": 1}, "sqlglot.generator.Generator.naked_property": {"tf": 1}}, "df": 3}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator.properties": {"tf": 1}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}}, "df": 5}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 3}}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.env.str_position": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.execute": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.add_dependency": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Join.from_joins": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 5}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.generator.Generator.placeholder_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.pseudotype_sql": {"tf": 1}}, "df": 1}}}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.hint_sql": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.ParseError.new": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}}, "df": 3}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.hexstring_sql": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.having_sql": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2}}}}}}}}, "k": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.kwarg_sql": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.DataType.build": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.MappingSchema.copy": {"tf": 1}}, "df": 32}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1}}, "df": 3}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1}}, "df": 2}}, "y": {"docs": {"sqlglot.executor.context.Context.sort": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.generator.Generator.sql": {"tf": 1}, "sqlglot.generator.Generator.expressions": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.schema.flatten_schema": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {"sqlglot.optimizer.simplify.is_complement": {"tf": 1}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.generator.Generator.table_sql": {"tf": 1}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1}, "sqlglot.dataframe.sql.Column.when": {"tf": 1}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.errors.ParseError.__init__": {"tf": 1}, "sqlglot.errors.concat_messages": {"tf": 1}, "sqlglot.errors.merge_errors": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.any_sql": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.7320508075688772}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1}, "sqlglot.schema.ensure_schema": {"tf": 1}}, "df": 20}, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.generator.Generator.and_sql": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.anonymous_sql": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.generator.Generator.all_sql": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator.__init__": {"tf": 1}, "sqlglot.generator.Generator.alias_sql": {"tf": 1}, "sqlglot.parser.Parser.__init__": {"tf": 1}}, "df": 10, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.generator.Generator.aliases_sql": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.generator.Generator.altercolumn_sql": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1}, "sqlglot.expressions.Expression.__init__": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator.no_identify": {"tf": 1}, "sqlglot.generator.Generator.func": {"tf": 1}, "sqlglot.generator.Generator.format_args": {"tf": 1}, "sqlglot.generator.Generator.text_width": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.parser.parse_var_map": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 19}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.generator.Generator.lambda_sql": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.window": {"tf": 1}, "sqlglot.expressions.Select.qualify": {"tf": 1}}, "df": 17}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 4.242640687119285}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.attimezone_sql": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.generator.Generator.add_sql": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.addconstraint_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.join_sql": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 7, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.generator.Generator.joinhint_sql": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.planner.Join.from_joins": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.journalproperty_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "x": {"2": {"7": {"docs": {"sqlglot.helper.open_file": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.generator.Generator.__init__": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}}, "df": 4}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.generator.Generator.qualify_sql": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}}, "df": 3}}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 82, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 6}}}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects.databricks.Databricks": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.4142135623730951}}, "df": 4}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.planner.Scan": {"tf": 1}, "sqlglot.planner.Join": {"tf": 1}, "sqlglot.planner.Aggregate": {"tf": 1}, "sqlglot.planner.Sort": {"tf": 1}, "sqlglot.planner.SetOperation": {"tf": 1}}, "df": 5}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Union": {"tf": 1}, "sqlglot.expressions.Select": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.All": {"tf": 1}, "sqlglot.expressions.Any": {"tf": 1}, "sqlglot.expressions.Exists": {"tf": 1}}, "df": 3}}}}}}}}}}}}}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python": {"tf": 1.4142135623730951}}, "df": 15, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1}, "sqlglot.dialects.databricks.Databricks": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1}, "sqlglot.dialects.hive.Hive": {"tf": 1}, "sqlglot.dialects.mysql.MySQL": {"tf": 1}, "sqlglot.dialects.oracle.Oracle": {"tf": 1}, "sqlglot.dialects.postgres.Postgres": {"tf": 1}, "sqlglot.dialects.presto.Presto": {"tf": 1}, "sqlglot.dialects.redshift.Redshift": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1}, "sqlglot.dialects.spark.Spark": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau": {"tf": 1}, "sqlglot.dialects.teradata.Teradata": {"tf": 1}, "sqlglot.dialects.trino.Trino": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL": {"tf": 1}, "sqlglot.executor.python.Python": {"tf": 1}}, "df": 33}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.CTE": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}}, "df": 3}}}}}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}}, "df": 14}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1}}, "df": 18}}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Interval": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}}, "df": 17}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}}, "df": 18}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dialects.trino.Trino": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1.4142135623730951}}, "df": 3}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.SubqueryPredicate": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Between": {"tf": 1}, "sqlglot.expressions.In": {"tf": 1}}, "df": 18}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.AfterJournalProperty": {"tf": 1}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1}, "sqlglot.expressions.ChecksumProperty": {"tf": 1}, "sqlglot.expressions.CollateProperty": {"tf": 1}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1}, "sqlglot.expressions.DefinerProperty": {"tf": 1}, "sqlglot.expressions.DistKeyProperty": {"tf": 1}, "sqlglot.expressions.DistStyleProperty": {"tf": 1}, "sqlglot.expressions.EngineProperty": {"tf": 1}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1}, "sqlglot.expressions.ExternalProperty": {"tf": 1}, "sqlglot.expressions.FallbackProperty": {"tf": 1}, "sqlglot.expressions.FileFormatProperty": {"tf": 1}, "sqlglot.expressions.FreespaceProperty": {"tf": 1}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1}, "sqlglot.expressions.JournalProperty": {"tf": 1}, "sqlglot.expressions.LanguageProperty": {"tf": 1}, "sqlglot.expressions.LikeProperty": {"tf": 1}, "sqlglot.expressions.LocationProperty": {"tf": 1}, "sqlglot.expressions.LockingProperty": {"tf": 1}, "sqlglot.expressions.LogProperty": {"tf": 1}, "sqlglot.expressions.MaterializedProperty": {"tf": 1}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1}, "sqlglot.expressions.OnCommitProperty": {"tf": 1}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1}, "sqlglot.expressions.ReturnsProperty": {"tf": 1}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1}, "sqlglot.expressions.SerdeProperties": {"tf": 1}, "sqlglot.expressions.SetProperty": {"tf": 1}, "sqlglot.expressions.SortKeyProperty": {"tf": 1}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1}, "sqlglot.expressions.TableFormatProperty": {"tf": 1}, "sqlglot.expressions.TemporaryProperty": {"tf": 1}, "sqlglot.expressions.TransientProperty": {"tf": 1}, "sqlglot.expressions.VolatilityProperty": {"tf": 1}, "sqlglot.expressions.WithDataProperty": {"tf": 1}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1}}, "df": 43}}}}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}}, "df": 20}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "~": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 2}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Add": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.BitwiseAnd": {"tf": 1}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1}, "sqlglot.expressions.BitwiseOr": {"tf": 1}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1}, "sqlglot.expressions.BitwiseXor": {"tf": 1}, "sqlglot.expressions.Div": {"tf": 1}, "sqlglot.expressions.Overlaps": {"tf": 1}, "sqlglot.expressions.Dot": {"tf": 1}, "sqlglot.expressions.DPipe": {"tf": 1}, "sqlglot.expressions.EQ": {"tf": 1}, "sqlglot.expressions.NullSafeEQ": {"tf": 1}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1}, "sqlglot.expressions.Distance": {"tf": 1}, "sqlglot.expressions.Escape": {"tf": 1}, "sqlglot.expressions.Glob": {"tf": 1}, "sqlglot.expressions.GT": {"tf": 1}, "sqlglot.expressions.GTE": {"tf": 1}, "sqlglot.expressions.ILike": {"tf": 1}, "sqlglot.expressions.ILikeAny": {"tf": 1}, "sqlglot.expressions.IntDiv": {"tf": 1}, "sqlglot.expressions.Is": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Like": {"tf": 1}, "sqlglot.expressions.LikeAny": {"tf": 1}, "sqlglot.expressions.LT": {"tf": 1}, "sqlglot.expressions.LTE": {"tf": 1}, "sqlglot.expressions.Mod": {"tf": 1}, "sqlglot.expressions.Mul": {"tf": 1}, "sqlglot.expressions.NEQ": {"tf": 1}, "sqlglot.expressions.SimilarTo": {"tf": 1}, "sqlglot.expressions.Slice": {"tf": 1}, "sqlglot.expressions.Sub": {"tf": 1}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayContained": {"tf": 1}, "sqlglot.expressions.Collate": {"tf": 1}, "sqlglot.expressions.JSONBContains": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}}, "df": 41}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1.4142135623730951}}, "df": 3}}}, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Condition": {"tf": 1}, "sqlglot.expressions.DerivedTable": {"tf": 1}, "sqlglot.expressions.Unionable": {"tf": 1}, "sqlglot.expressions.Cache": {"tf": 1}, "sqlglot.expressions.Uncache": {"tf": 1}, "sqlglot.expressions.Create": {"tf": 1}, "sqlglot.expressions.Describe": {"tf": 1}, "sqlglot.expressions.Set": {"tf": 1}, "sqlglot.expressions.SetItem": {"tf": 1}, "sqlglot.expressions.Show": {"tf": 1}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1}, "sqlglot.expressions.CharacterSet": {"tf": 1}, "sqlglot.expressions.With": {"tf": 1}, "sqlglot.expressions.WithinGroup": {"tf": 1}, "sqlglot.expressions.TableAlias": {"tf": 1}, "sqlglot.expressions.ColumnDef": {"tf": 1}, "sqlglot.expressions.AlterColumn": {"tf": 1}, "sqlglot.expressions.RenameTable": {"tf": 1}, "sqlglot.expressions.SetTag": {"tf": 1}, "sqlglot.expressions.Comment": {"tf": 1}, "sqlglot.expressions.ColumnConstraint": {"tf": 1}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1}, "sqlglot.expressions.Constraint": {"tf": 1}, "sqlglot.expressions.Delete": {"tf": 1}, "sqlglot.expressions.Drop": {"tf": 1}, "sqlglot.expressions.Filter": {"tf": 1}, "sqlglot.expressions.Check": {"tf": 1}, "sqlglot.expressions.Directory": {"tf": 1}, "sqlglot.expressions.ForeignKey": {"tf": 1}, "sqlglot.expressions.PrimaryKey": {"tf": 1}, "sqlglot.expressions.Unique": {"tf": 1}, "sqlglot.expressions.Into": {"tf": 1}, "sqlglot.expressions.From": {"tf": 1}, "sqlglot.expressions.Having": {"tf": 1}, "sqlglot.expressions.Hint": {"tf": 1}, "sqlglot.expressions.JoinHint": {"tf": 1}, "sqlglot.expressions.Identifier": {"tf": 1}, "sqlglot.expressions.Index": {"tf": 1}, "sqlglot.expressions.Insert": {"tf": 1}, "sqlglot.expressions.Returning": {"tf": 1}, "sqlglot.expressions.Introducer": {"tf": 1}, "sqlglot.expressions.National": {"tf": 1}, "sqlglot.expressions.LoadData": {"tf": 1}, "sqlglot.expressions.Partition": {"tf": 1}, "sqlglot.expressions.Fetch": {"tf": 1}, "sqlglot.expressions.Group": {"tf": 1}, "sqlglot.expressions.Lambda": {"tf": 1}, "sqlglot.expressions.Limit": {"tf": 1}, "sqlglot.expressions.Join": {"tf": 1}, "sqlglot.expressions.MatchRecognize": {"tf": 1}, "sqlglot.expressions.Final": {"tf": 1}, "sqlglot.expressions.Offset": {"tf": 1}, "sqlglot.expressions.Order": {"tf": 1}, "sqlglot.expressions.Ordered": {"tf": 1}, "sqlglot.expressions.Property": {"tf": 1}, "sqlglot.expressions.Properties": {"tf": 1}, "sqlglot.expressions.Qualify": {"tf": 1}, "sqlglot.expressions.Return": {"tf": 1}, "sqlglot.expressions.Reference": {"tf": 1}, "sqlglot.expressions.Tuple": {"tf": 1}, "sqlglot.expressions.Table": {"tf": 1}, "sqlglot.expressions.SystemTime": {"tf": 1}, "sqlglot.expressions.Update": {"tf": 1}, "sqlglot.expressions.Var": {"tf": 1}, "sqlglot.expressions.Schema": {"tf": 1}, "sqlglot.expressions.Lock": {"tf": 1}, "sqlglot.expressions.TableSample": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Pivot": {"tf": 1}, "sqlglot.expressions.Window": {"tf": 1}, "sqlglot.expressions.WindowSpec": {"tf": 1}, "sqlglot.expressions.Where": {"tf": 1}, "sqlglot.expressions.Star": {"tf": 1}, "sqlglot.expressions.Parameter": {"tf": 1}, "sqlglot.expressions.SessionParameter": {"tf": 1}, "sqlglot.expressions.Placeholder": {"tf": 1}, "sqlglot.expressions.DataType": {"tf": 1}, "sqlglot.expressions.PseudoType": {"tf": 1}, "sqlglot.expressions.StructKwarg": {"tf": 1}, "sqlglot.expressions.Command": {"tf": 1}, "sqlglot.expressions.Transaction": {"tf": 1}, "sqlglot.expressions.Commit": {"tf": 1}, "sqlglot.expressions.Rollback": {"tf": 1}, "sqlglot.expressions.AlterTable": {"tf": 1}, "sqlglot.expressions.AddConstraint": {"tf": 1}, "sqlglot.expressions.DropPartition": {"tf": 1}, "sqlglot.expressions.Binary": {"tf": 1}, "sqlglot.expressions.Unary": {"tf": 1}, "sqlglot.expressions.Alias": {"tf": 1}, "sqlglot.expressions.Aliases": {"tf": 1}, "sqlglot.expressions.AtTimeZone": {"tf": 1}, "sqlglot.expressions.Distinct": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.IgnoreNulls": {"tf": 1}, "sqlglot.expressions.RespectNulls": {"tf": 1}, "sqlglot.expressions.Use": {"tf": 1}, "sqlglot.expressions.Merge": {"tf": 1}}, "df": 97}}}}}}}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.spark.Spark": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1.4142135623730951}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 4}}}}}}, "m": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.starrocks.StarRocks": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 4}}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}}, "c": {"docs": {"sqlglot.schema.Schema": {"tf": 1.4142135623730951}}, "df": 1}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.ApproxDistinct": {"tf": 1}, "sqlglot.expressions.ArrayAgg": {"tf": 1}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1}, "sqlglot.expressions.Avg": {"tf": 1}, "sqlglot.expressions.AnyValue": {"tf": 1}, "sqlglot.expressions.Count": {"tf": 1}, "sqlglot.expressions.CountIf": {"tf": 1}, "sqlglot.expressions.LogicalOr": {"tf": 1}, "sqlglot.expressions.LogicalAnd": {"tf": 1}, "sqlglot.expressions.Max": {"tf": 1}, "sqlglot.expressions.Min": {"tf": 1}, "sqlglot.expressions.PercentileCont": {"tf": 1}, "sqlglot.expressions.PercentileDisc": {"tf": 1}, "sqlglot.expressions.Quantile": {"tf": 1}, "sqlglot.expressions.Quantiles": {"tf": 1}, "sqlglot.expressions.QuantileIf": {"tf": 1}, "sqlglot.expressions.SetAgg": {"tf": 1}, "sqlglot.expressions.Sum": {"tf": 1}, "sqlglot.expressions.Stddev": {"tf": 1}, "sqlglot.expressions.StddevPop": {"tf": 1}, "sqlglot.expressions.StddevSamp": {"tf": 1}, "sqlglot.expressions.Variance": {"tf": 1}, "sqlglot.expressions.VariancePop": {"tf": 1}}, "df": 23}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.BitString": {"tf": 1}, "sqlglot.expressions.HexString": {"tf": 1}, "sqlglot.expressions.ByteString": {"tf": 1}, "sqlglot.expressions.Column": {"tf": 1}, "sqlglot.expressions.Literal": {"tf": 1}, "sqlglot.expressions.Null": {"tf": 1}, "sqlglot.expressions.Boolean": {"tf": 1}, "sqlglot.expressions.Connector": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Bracket": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 13}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.And": {"tf": 1}, "sqlglot.expressions.Or": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.ConcatWs": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1}}, "df": 18}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.TryCast": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Except": {"tf": 1}, "sqlglot.expressions.Intersect": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.UDTF": {"tf": 1}, "sqlglot.expressions.Subqueryable": {"tf": 1}, "sqlglot.expressions.Subquery": {"tf": 1}}, "df": 3}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.BitwiseNot": {"tf": 1}, "sqlglot.expressions.Not": {"tf": 1}, "sqlglot.expressions.Paren": {"tf": 1}, "sqlglot.expressions.Neg": {"tf": 1}}, "df": 4}}}}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.expressions.Lateral": {"tf": 1}, "sqlglot.expressions.Unnest": {"tf": 1}, "sqlglot.expressions.Values": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Cluster": {"tf": 1}, "sqlglot.expressions.Distribute": {"tf": 1}, "sqlglot.expressions.Sort": {"tf": 1}}, "df": 3}}}}}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.AggFunc": {"tf": 1}, "sqlglot.expressions.Abs": {"tf": 1}, "sqlglot.expressions.Anonymous": {"tf": 1}, "sqlglot.expressions.Array": {"tf": 1}, "sqlglot.expressions.ToChar": {"tf": 1}, "sqlglot.expressions.GenerateSeries": {"tf": 1}, "sqlglot.expressions.ArrayAll": {"tf": 1}, "sqlglot.expressions.ArrayAny": {"tf": 1}, "sqlglot.expressions.ArrayConcat": {"tf": 1}, "sqlglot.expressions.ArrayContains": {"tf": 1}, "sqlglot.expressions.ArrayFilter": {"tf": 1}, "sqlglot.expressions.ArrayJoin": {"tf": 1}, "sqlglot.expressions.ArraySize": {"tf": 1}, "sqlglot.expressions.ArraySort": {"tf": 1}, "sqlglot.expressions.ArraySum": {"tf": 1}, "sqlglot.expressions.Case": {"tf": 1}, "sqlglot.expressions.Cast": {"tf": 1}, "sqlglot.expressions.Ceil": {"tf": 1}, "sqlglot.expressions.Coalesce": {"tf": 1}, "sqlglot.expressions.Concat": {"tf": 1}, "sqlglot.expressions.CurrentDate": {"tf": 1}, "sqlglot.expressions.CurrentDatetime": {"tf": 1}, "sqlglot.expressions.CurrentTime": {"tf": 1}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1}, "sqlglot.expressions.DateAdd": {"tf": 1}, "sqlglot.expressions.DateSub": {"tf": 1}, "sqlglot.expressions.DateDiff": {"tf": 1}, "sqlglot.expressions.DateTrunc": {"tf": 1}, "sqlglot.expressions.DatetimeAdd": {"tf": 1}, "sqlglot.expressions.DatetimeSub": {"tf": 1}, "sqlglot.expressions.DatetimeDiff": {"tf": 1}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1}, "sqlglot.expressions.DayOfWeek": {"tf": 1}, "sqlglot.expressions.DayOfMonth": {"tf": 1}, "sqlglot.expressions.DayOfYear": {"tf": 1}, "sqlglot.expressions.WeekOfYear": {"tf": 1}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1}, "sqlglot.expressions.Extract": {"tf": 1}, "sqlglot.expressions.TimestampAdd": {"tf": 1}, "sqlglot.expressions.TimestampSub": {"tf": 1}, "sqlglot.expressions.TimestampDiff": {"tf": 1}, "sqlglot.expressions.TimestampTrunc": {"tf": 1}, "sqlglot.expressions.TimeAdd": {"tf": 1}, "sqlglot.expressions.TimeSub": {"tf": 1}, "sqlglot.expressions.TimeDiff": {"tf": 1}, "sqlglot.expressions.TimeTrunc": {"tf": 1}, "sqlglot.expressions.DateFromParts": {"tf": 1}, "sqlglot.expressions.DateStrToDate": {"tf": 1}, "sqlglot.expressions.DateToDateStr": {"tf": 1}, "sqlglot.expressions.DateToDi": {"tf": 1}, "sqlglot.expressions.Day": {"tf": 1}, "sqlglot.expressions.Decode": {"tf": 1}, "sqlglot.expressions.DiToDate": {"tf": 1}, "sqlglot.expressions.Encode": {"tf": 1}, "sqlglot.expressions.Exp": {"tf": 1}, "sqlglot.expressions.Explode": {"tf": 1}, "sqlglot.expressions.Floor": {"tf": 1}, "sqlglot.expressions.Greatest": {"tf": 1}, "sqlglot.expressions.GroupConcat": {"tf": 1}, "sqlglot.expressions.Hex": {"tf": 1}, "sqlglot.expressions.If": {"tf": 1}, "sqlglot.expressions.IfNull": {"tf": 1}, "sqlglot.expressions.Initcap": {"tf": 1}, "sqlglot.expressions.JSONExtract": {"tf": 1}, "sqlglot.expressions.Least": {"tf": 1}, "sqlglot.expressions.Length": {"tf": 1}, "sqlglot.expressions.Levenshtein": {"tf": 1}, "sqlglot.expressions.Ln": {"tf": 1}, "sqlglot.expressions.Log": {"tf": 1}, "sqlglot.expressions.Log2": {"tf": 1}, "sqlglot.expressions.Log10": {"tf": 1}, "sqlglot.expressions.Lower": {"tf": 1}, "sqlglot.expressions.Map": {"tf": 1}, "sqlglot.expressions.VarMap": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.Month": {"tf": 1}, "sqlglot.expressions.Nvl2": {"tf": 1}, "sqlglot.expressions.Posexplode": {"tf": 1}, "sqlglot.expressions.Pow": {"tf": 1}, "sqlglot.expressions.RangeN": {"tf": 1}, "sqlglot.expressions.ReadCSV": {"tf": 1}, "sqlglot.expressions.Reduce": {"tf": 1}, "sqlglot.expressions.RegexpExtract": {"tf": 1}, "sqlglot.expressions.RegexpLike": {"tf": 1}, "sqlglot.expressions.RegexpILike": {"tf": 1}, "sqlglot.expressions.RegexpSplit": {"tf": 1}, "sqlglot.expressions.Repeat": {"tf": 1}, "sqlglot.expressions.Round": {"tf": 1}, "sqlglot.expressions.RowNumber": {"tf": 1}, "sqlglot.expressions.SafeDivide": {"tf": 1}, "sqlglot.expressions.SortArray": {"tf": 1}, "sqlglot.expressions.Split": {"tf": 1}, "sqlglot.expressions.Substring": {"tf": 1}, "sqlglot.expressions.StrPosition": {"tf": 1}, "sqlglot.expressions.StrToDate": {"tf": 1}, "sqlglot.expressions.StrToTime": {"tf": 1}, "sqlglot.expressions.StrToUnix": {"tf": 1}, "sqlglot.expressions.NumberToStr": {"tf": 1}, "sqlglot.expressions.Struct": {"tf": 1}, "sqlglot.expressions.StructExtract": {"tf": 1}, "sqlglot.expressions.Sqrt": {"tf": 1}, "sqlglot.expressions.TimeToStr": {"tf": 1}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1}, "sqlglot.expressions.TimeToUnix": {"tf": 1}, "sqlglot.expressions.TimeStrToDate": {"tf": 1}, "sqlglot.expressions.TimeStrToTime": {"tf": 1}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1}, "sqlglot.expressions.Trim": {"tf": 1}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1}, "sqlglot.expressions.Unhex": {"tf": 1}, "sqlglot.expressions.UnixToStr": {"tf": 1}, "sqlglot.expressions.UnixToTime": {"tf": 1}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1}, "sqlglot.expressions.Upper": {"tf": 1}, "sqlglot.expressions.Week": {"tf": 1}, "sqlglot.expressions.XMLTable": {"tf": 1}, "sqlglot.expressions.Year": {"tf": 1}, "sqlglot.expressions.When": {"tf": 1}}, "df": 121}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.JSONExtractScalar": {"tf": 1}, "sqlglot.expressions.JSONBExtract": {"tf": 1}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1}}, "df": 3}}}}}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.ApproxQuantile": {"tf": 1}}, "df": 1}}}}}}}}}}, "doc": {"root": {"0": {"0": {"0": {"9": {"9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"0": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "3": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"4": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"2": {"5": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "5": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"0": {"5": {"4": {"5": {"5": {"2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"2": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"8": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "3": {"0": {"8": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}}}}}, "2": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "3": {"2": {"8": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"1": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"4": {"1": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"5": {"8": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"6": {"7": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "5": {"4": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 6.48074069840786}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 4.47213595499958}, "sqlglot.executor": {"tf": 2}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 2}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 39, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "1": {"0": {"0": {"0": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "2": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"1": {"4": {"2": {"0": {"0": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"0": {"4": {"0": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}}, "df": 4, "^": {"1": {"2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "1": {"4": {"5": {"docs": {}, "df": 0, "/": {"2": {"6": {"4": {"2": {"9": {"3": {"7": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "2": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "3": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "6": {"3": {"2": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "3": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "4": {"1": {"3": {"4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"1": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"1": {"8": {"0": {"8": {"8": {"0": {"2": {"8": {"2": {"9": {"5": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "8": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "9": {"8": {"6": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "9": {"6": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 6}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.diff": {"tf": 4}, "sqlglot.executor": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.dict_depth": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 43, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2}}}, "2": {"0": {"0": {"7": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "1": {"4": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"1": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "4": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "5": {"1": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "5": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "6": {"4": {"2": {"9": {"8": {"2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 2}, "9": {"4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 3.3166247903554}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 4.358898943540674}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 43}, "3": {"1": {"3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "2": {"4": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "4": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}}, "df": 1}, "7": {"7": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "9": {"docs": {"sqlglot": {"tf": 6.855654600401044}, "sqlglot.dataframe": {"tf": 7.0710678118654755}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Literal.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2.8284271247461903}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Star.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Alias.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Cast.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 4}, "sqlglot.expressions.subquery": {"tf": 2.8284271247461903}, "sqlglot.expressions.cast": {"tf": 2.449489742783178}, "sqlglot.expressions.values": {"tf": 2}, "sqlglot.expressions.var": {"tf": 3.1622776601683795}, "sqlglot.expressions.column_table_names": {"tf": 2}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 2}, "sqlglot.helper.split_num_words": {"tf": 3.4641016151377544}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.8284271247461903}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 3.7416573867739413}, "sqlglot.trie.in_trie": {"tf": 2.8284271247461903}}, "df": 87}, "docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 49}, "4": {"0": {"0": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "3": {"4": {"3": {"4": {"1": {"6": {"6": {"2": {"4": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "7": {"9": {"8": {"3": {"1": {"3": {"6": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "4": {"6": {"2": {"4": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "5": {"2": {"9": {"6": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "6": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}, "8": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "9": {"3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 26}, "5": {"0": {"4": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}, "3": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}}, "df": 7}, "6": {"0": {"6": {"2": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "1": {"4": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.23606797749979}}, "df": 2, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "7": {"0": {"4": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "2": {"5": {"docs": {}, "df": 0, "\u2013": {"7": {"4": {"3": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "6": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "9": {"1": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "2": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}}, "df": 1}, "8": {"0": {"5": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}, "9": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}, "9": {"0": {"6": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "7": {"0": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"7": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {"sqlglot": {"tf": 61.318838867023565}, "sqlglot.pretty": {"tf": 1.7320508075688772}, "sqlglot.schema": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 5.916079783099616}, "sqlglot.parse_one": {"tf": 6.324555320336759}, "sqlglot.transpile": {"tf": 7.211102550927978}, "sqlglot.dataframe": {"tf": 48.86716689148246}, "sqlglot.dataframe.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.createDataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.SparkSession.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.select": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.alias": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.where": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.filter": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.groupBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.agg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.join": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrame.union": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.unionAll": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.unionByName": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.intersect": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.intersectAll": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.exceptAll": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.distinct": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.dropDuplicates": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.dropna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 2.6457513110645907}, "sqlglot.dataframe.sql.DataFrame.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.withColumn": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.withColumnRenamed": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.drop": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.limit": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.hint": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.repartition": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.coalesce": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.cache": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 2}, "sqlglot.dataframe.sql.GroupedData": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.agg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.count": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.mean": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.avg": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.max": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.min": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.sum": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.GroupedData.pivot": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_col": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_cols": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.invoke_anonymous_function": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.invoke_expression_over_column": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.binary_op": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.inverse_binary_op": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.unary_op": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ensure_literal": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.set_table_name": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.alias": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.asc": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.desc": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.asc_nulls_first": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.asc_nulls_last": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.desc_nulls_first": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.desc_nulls_last": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.when": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.otherwise": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.isNull": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.isNotNull": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.startswith": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.endswith": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.rlike": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.like": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.ilike": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.substr": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.isin": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.between": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.over": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.drop": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.fill": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameNaFunctions.replace": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.partitionBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.orderBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.rowsBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Window.rangeBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.partitionBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.orderBy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.rowsBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.WindowSpec.rangeBetween": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameReader": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameReader.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameReader.table": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.__init__": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.copy": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.sql": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.mode": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.insertInto": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrameWriter.saveAsTable": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 21.817424229271428}, "sqlglot.dialects.bigquery": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.bigquery.BigQuery.Generator.array_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.commit_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.rollback_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.in_unnest_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.except_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator.intersect_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.clickhouse.ClickHouse.Generator.cte_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.databricks.Databricks.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DIALECT": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.BIGQUERY": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.CLICKHOUSE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DUCKDB": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.HIVE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.MYSQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.ORACLE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.POSTGRES": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.PRESTO": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.REDSHIFT": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.SNOWFLAKE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.SPARK": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.SQLITE": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.STARROCKS": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TABLEAU": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TRINO": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TSQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DATABRICKS": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.DRILL": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects.TERADATA": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.get_or_raise": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.format_time": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parse": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parse_into": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generate": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.transpile": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.tokenize": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialect.generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.rename_func": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.approx_count_distinct_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.if_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.arrow_json_extract_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.arrow_json_extract_scalar_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.inline_array_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_ilike_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_paren_current_date_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_recursive_cte_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_safe_divide_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_tablesample_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_pivot_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_trycast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.no_properties_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.str_position_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.struct_extract_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.var_map_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 5.744562646538029}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.parse_date_delta": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.date_trunc_to_time": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.timestamptrunc_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.locate_to_strposition": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.strposition_to_locate_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.timestrtotime_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.datestrtodate_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.min_or_least": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.count_if_to_sum": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.trim_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.str_to_time_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.ts_or_ds_to_date_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.drill.Drill.Generator.normalize_func": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.duckdb.DuckDB.Generator.tablesample_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.hive.Hive.Generator.arrayagg_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator.with_properties": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.mysql.MySQL.Generator.show_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.oracle.Oracle.Generator.query_modifiers": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator.offset_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator.column_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator.xmltable_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.presto": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.presto.Presto.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.redshift.Redshift.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 3.3166247903554}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 4.47213595499958}, "sqlglot.dialects.snowflake": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.snowflake.Snowflake.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.snowflake.Snowflake.Generator.ilikeany_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.likeany_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.except_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.intersect_op": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.settag_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.describe_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.spark.Spark.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.sqlite.SQLite.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.datediff_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.fetch_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.groupconcat_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.least_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.teradata": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.teradata.Teradata.Generator.partitionedbyproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.update_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.mod_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator.rangen_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.trino.Trino.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.generate_date_delta_with_unit_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 6.082762530298219}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 11.532562594670797}, "sqlglot.dialects.tsql.TSQL.Generator.systemtime_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator.returnsproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 50.556898639058154}, "sqlglot.diff.Insert": {"tf": 1.4142135623730951}, "sqlglot.diff.Insert.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Remove": {"tf": 1.4142135623730951}, "sqlglot.diff.Remove.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Move": {"tf": 1.4142135623730951}, "sqlglot.diff.Move.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Update": {"tf": 1.4142135623730951}, "sqlglot.diff.Update.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.Keep": {"tf": 1.4142135623730951}, "sqlglot.diff.Keep.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 11.313708498984761}, "sqlglot.diff.ChangeDistiller": {"tf": 2.6457513110645907}, "sqlglot.diff.ChangeDistiller.__init__": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller.diff": {"tf": 1.7320508075688772}, "sqlglot.errors": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1.7320508075688772}, "sqlglot.errors.SqlglotError": {"tf": 1.7320508075688772}, "sqlglot.errors.UnsupportedError": {"tf": 1.7320508075688772}, "sqlglot.errors.ParseError": {"tf": 1.7320508075688772}, "sqlglot.errors.ParseError.__init__": {"tf": 1.7320508075688772}, "sqlglot.errors.ParseError.new": {"tf": 1.7320508075688772}, "sqlglot.errors.TokenError": {"tf": 1.7320508075688772}, "sqlglot.errors.OptimizeError": {"tf": 1.7320508075688772}, "sqlglot.errors.SchemaError": {"tf": 1.7320508075688772}, "sqlglot.errors.ExecuteError": {"tf": 1.7320508075688772}, "sqlglot.errors.concat_messages": {"tf": 1.7320508075688772}, "sqlglot.errors.merge_errors": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 35.11409973215888}, "sqlglot.executor.execute": {"tf": 7}, "sqlglot.executor.context": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context": {"tf": 3}, "sqlglot.executor.context.Context.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.eval": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.eval_tuple": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.add_columns": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.table_iter": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.filter": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.sort": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.set_row": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.set_index": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context.set_range": {"tf": 1.7320508075688772}, "sqlglot.executor.env": {"tf": 1.7320508075688772}, "sqlglot.executor.env.reverse_key": {"tf": 1.7320508075688772}, "sqlglot.executor.env.reverse_key.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.env.filter_nulls": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 4.58257569495584}, "sqlglot.executor.env.str_position": {"tf": 1.7320508075688772}, "sqlglot.executor.env.substring": {"tf": 1.7320508075688772}, "sqlglot.executor.env.cast": {"tf": 1.7320508075688772}, "sqlglot.executor.env.ordered": {"tf": 1.7320508075688772}, "sqlglot.executor.env.interval": {"tf": 1.7320508075688772}, "sqlglot.executor.python": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.context": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.table": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.scan": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.static": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.scan_table": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.scan_csv": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.join": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.nested_loop_join": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.hash_join": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.aggregate": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.sort": {"tf": 1.7320508075688772}, "sqlglot.executor.python.PythonExecutor.set_operation": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 11.532562594670797}, "sqlglot.executor.table": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.add_columns": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.append": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Table.pop": {"tf": 1.7320508075688772}, "sqlglot.executor.table.TableIter": {"tf": 1.7320508075688772}, "sqlglot.executor.table.TableIter.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RangeReader": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RangeReader.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RowReader": {"tf": 1.7320508075688772}, "sqlglot.executor.table.RowReader.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 4}, "sqlglot.executor.table.ensure_tables": {"tf": 1.7320508075688772}, "sqlglot.expressions": {"tf": 4}, "sqlglot.expressions.Expression": {"tf": 10.954451150103322}, "sqlglot.expressions.Expression.__init__": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.this": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.text": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_string": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_number": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_int": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.alias": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Expression.copy": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 4.358898943540674}, "sqlglot.expressions.Expression.set": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.depth": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.find_all": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 4.898979485566356}, "sqlglot.expressions.Expression.parent_select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.root": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.walk": {"tf": 5.5677643628300215}, "sqlglot.expressions.Expression.dfs": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.bfs": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.unnest": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.unalias": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.flatten": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.sql": {"tf": 5.477225575051661}, "sqlglot.expressions.Expression.transform": {"tf": 5.477225575051661}, "sqlglot.expressions.Expression.replace": {"tf": 5.5677643628300215}, "sqlglot.expressions.Expression.pop": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.assert_is": {"tf": 9.643650760992955}, "sqlglot.expressions.Expression.error_messages": {"tf": 4.795831523312719}, "sqlglot.expressions.Expression.dump": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.load": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.and_": {"tf": 9.746794344808963}, "sqlglot.expressions.Condition.or_": {"tf": 9.746794344808963}, "sqlglot.expressions.Condition.not_": {"tf": 7.874007874011811}, "sqlglot.expressions.Predicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.DerivedTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 10.723805294763608}, "sqlglot.expressions.Unionable.intersect": {"tf": 10.677078252031311}, "sqlglot.expressions.Unionable.except_": {"tf": 10.723805294763608}, "sqlglot.expressions.UDTF": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cache": {"tf": 1.7320508075688772}, "sqlglot.expressions.Uncache": {"tf": 1.7320508075688772}, "sqlglot.expressions.Create": {"tf": 1.7320508075688772}, "sqlglot.expressions.Describe": {"tf": 1.7320508075688772}, "sqlglot.expressions.Set": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetItem": {"tf": 1.7320508075688772}, "sqlglot.expressions.Show": {"tf": 1.7320508075688772}, "sqlglot.expressions.UserDefinedFunction": {"tf": 1.7320508075688772}, "sqlglot.expressions.CharacterSet": {"tf": 1.7320508075688772}, "sqlglot.expressions.With": {"tf": 1.7320508075688772}, "sqlglot.expressions.WithinGroup": {"tf": 1.7320508075688772}, "sqlglot.expressions.CTE": {"tf": 1.7320508075688772}, "sqlglot.expressions.TableAlias": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitString": {"tf": 1.7320508075688772}, "sqlglot.expressions.HexString": {"tf": 1.7320508075688772}, "sqlglot.expressions.ByteString": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.ColumnDef": {"tf": 1.7320508075688772}, "sqlglot.expressions.AlterColumn": {"tf": 1.7320508075688772}, "sqlglot.expressions.RenameTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetTag": {"tf": 1.7320508075688772}, "sqlglot.expressions.Comment": {"tf": 1.7320508075688772}, "sqlglot.expressions.ColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.ColumnConstraintKind": {"tf": 1.7320508075688772}, "sqlglot.expressions.AutoIncrementColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CaseSpecificColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CharacterSetColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CheckColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CollateColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CommentColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.CompressColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateFormatColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.DefaultColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.EncodeColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.GeneratedAsIdentityColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.InlineLengthColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.NotNullColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.PrimaryKeyColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.TitleColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.UniqueColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.UppercaseColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.PathColumnConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.Constraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.delete": {"tf": 9.055385138137417}, "sqlglot.expressions.Delete.where": {"tf": 10.198039027185569}, "sqlglot.expressions.Delete.returning": {"tf": 10.488088481701515}, "sqlglot.expressions.Drop": {"tf": 1.7320508075688772}, "sqlglot.expressions.Filter": {"tf": 1.7320508075688772}, "sqlglot.expressions.Check": {"tf": 1.7320508075688772}, "sqlglot.expressions.Directory": {"tf": 1.7320508075688772}, "sqlglot.expressions.ForeignKey": {"tf": 1.7320508075688772}, "sqlglot.expressions.PrimaryKey": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unique": {"tf": 1.7320508075688772}, "sqlglot.expressions.Into": {"tf": 1.7320508075688772}, "sqlglot.expressions.From": {"tf": 1.7320508075688772}, "sqlglot.expressions.Having": {"tf": 1.7320508075688772}, "sqlglot.expressions.Hint": {"tf": 1.7320508075688772}, "sqlglot.expressions.JoinHint": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Index": {"tf": 1.7320508075688772}, "sqlglot.expressions.Insert": {"tf": 1.7320508075688772}, "sqlglot.expressions.Returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.Introducer": {"tf": 1.7320508075688772}, "sqlglot.expressions.National": {"tf": 1.7320508075688772}, "sqlglot.expressions.LoadData": {"tf": 1.7320508075688772}, "sqlglot.expressions.Partition": {"tf": 1.7320508075688772}, "sqlglot.expressions.Fetch": {"tf": 1.7320508075688772}, "sqlglot.expressions.Group": {"tf": 1.7320508075688772}, "sqlglot.expressions.Lambda": {"tf": 1.7320508075688772}, "sqlglot.expressions.Limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.number": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.string": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 11.40175425099138}, "sqlglot.expressions.Join.using": {"tf": 11.704699910719626}, "sqlglot.expressions.Lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.MatchRecognize": {"tf": 1.7320508075688772}, "sqlglot.expressions.Final": {"tf": 1.7320508075688772}, "sqlglot.expressions.Offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Order": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cluster": {"tf": 1.7320508075688772}, "sqlglot.expressions.Distribute": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sort": {"tf": 1.7320508075688772}, "sqlglot.expressions.Ordered": {"tf": 1.7320508075688772}, "sqlglot.expressions.Property": {"tf": 1.7320508075688772}, "sqlglot.expressions.AfterJournalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.AlgorithmProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.AutoIncrementProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.BlockCompressionProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.CharacterSetProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ChecksumProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.CollateProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataBlocksizeProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DefinerProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DistKeyProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.DistStyleProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.EngineProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ExecuteAsProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ExternalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.FallbackProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.FileFormatProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.FreespaceProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.IsolatedLoadingProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.JournalProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LanguageProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LikeProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LocationProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LockingProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.LogProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.MaterializedProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.MergeBlockRatioProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.NoPrimaryIndexProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.OnCommitProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.PartitionedByProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.ReturnsProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.RowFormatDelimitedProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.RowFormatSerdeProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SchemaCommentProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SerdeProperties": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortKeyProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.SqlSecurityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TableFormatProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TemporaryProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.TransientProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.VolatilityProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.WithDataProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.WithJournalTableProperty": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_CREATE": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_NAME": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_SCHEMA": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_WITH": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_ALIAS": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_EXPRESSION": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.POST_INDEX": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.Location.UNSUPPORTED": {"tf": 1.7320508075688772}, "sqlglot.expressions.Properties.from_dict": {"tf": 1.7320508075688772}, "sqlglot.expressions.Qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Return": {"tf": 1.7320508075688772}, "sqlglot.expressions.Reference": {"tf": 1.7320508075688772}, "sqlglot.expressions.Tuple": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 11.832159566199232}, "sqlglot.expressions.Subqueryable.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 12.767145334803704}, "sqlglot.expressions.Table": {"tf": 1.7320508075688772}, "sqlglot.expressions.SystemTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 11.090536506409418}, "sqlglot.expressions.Union.select": {"tf": 10.723805294763608}, "sqlglot.expressions.Union.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Except": {"tf": 1.7320508075688772}, "sqlglot.expressions.Intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unnest": {"tf": 1.7320508075688772}, "sqlglot.expressions.Update": {"tf": 1.7320508075688772}, "sqlglot.expressions.Values": {"tf": 1.7320508075688772}, "sqlglot.expressions.Var": {"tf": 1.7320508075688772}, "sqlglot.expressions.Schema": {"tf": 1.7320508075688772}, "sqlglot.expressions.Lock": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 11.135528725660043}, "sqlglot.expressions.Select.group_by": {"tf": 11.958260743101398}, "sqlglot.expressions.Select.order_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.sort_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.cluster_by": {"tf": 11.704699910719626}, "sqlglot.expressions.Select.limit": {"tf": 11.224972160321824}, "sqlglot.expressions.Select.offset": {"tf": 11.224972160321824}, "sqlglot.expressions.Select.select": {"tf": 10.246950765959598}, "sqlglot.expressions.Select.lateral": {"tf": 11.445523142259598}, "sqlglot.expressions.Select.join": {"tf": 19.026297590440446}, "sqlglot.expressions.Select.where": {"tf": 11.445523142259598}, "sqlglot.expressions.Select.having": {"tf": 12.288205727444508}, "sqlglot.expressions.Select.window": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.qualify": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 10.04987562112089}, "sqlglot.expressions.Select.ctas": {"tf": 11.357816691600547}, "sqlglot.expressions.Select.lock": {"tf": 14.696938456699069}, "sqlglot.expressions.Select.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.unnest": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.is_star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.TableSample": {"tf": 1.7320508075688772}, "sqlglot.expressions.Tag": {"tf": 2.23606797749979}, "sqlglot.expressions.Pivot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Window": {"tf": 1.7320508075688772}, "sqlglot.expressions.WindowSpec": {"tf": 1.7320508075688772}, "sqlglot.expressions.Where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Parameter": {"tf": 1.7320508075688772}, "sqlglot.expressions.SessionParameter": {"tf": 1.7320508075688772}, "sqlglot.expressions.Placeholder": {"tf": 1.7320508075688772}, "sqlglot.expressions.Null": {"tf": 1.7320508075688772}, "sqlglot.expressions.Boolean": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.CHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NVARCHAR": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGTEXT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MEDIUMBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.LONGBLOB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARBINARY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UTINYINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.USMALLINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UBIGINT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.FLOAT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DOUBLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DECIMAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BOOLEAN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSON": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.JSONB": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INTERVAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIME": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIMESTAMPTZ": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.TIMESTAMPLTZ": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.DATETIME": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ARRAY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MAP": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UUID": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOGRAPHY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.GEOMETRY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.STRUCT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULLABLE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HLLSKETCH": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.HSTORE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SUPER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.BIGSERIAL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.XML": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNIQUEIDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.MONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.SMALLMONEY": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.ROWVERSION": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.IMAGE": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.VARIANT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.OBJECT": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.INET": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.NULL": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.Type.UNKNOWN": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.build": {"tf": 1.7320508075688772}, "sqlglot.expressions.DataType.is_type": {"tf": 1.7320508075688772}, "sqlglot.expressions.PseudoType": {"tf": 1.7320508075688772}, "sqlglot.expressions.StructKwarg": {"tf": 1.7320508075688772}, "sqlglot.expressions.SubqueryPredicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.All": {"tf": 1.7320508075688772}, "sqlglot.expressions.Any": {"tf": 1.7320508075688772}, "sqlglot.expressions.Exists": {"tf": 1.7320508075688772}, "sqlglot.expressions.Command": {"tf": 1.7320508075688772}, "sqlglot.expressions.Transaction": {"tf": 1.7320508075688772}, "sqlglot.expressions.Commit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Rollback": {"tf": 1.7320508075688772}, "sqlglot.expressions.AlterTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.AddConstraint": {"tf": 1.7320508075688772}, "sqlglot.expressions.DropPartition": {"tf": 1.7320508075688772}, "sqlglot.expressions.Binary": {"tf": 1.7320508075688772}, "sqlglot.expressions.Add": {"tf": 1.7320508075688772}, "sqlglot.expressions.Connector": {"tf": 1.7320508075688772}, "sqlglot.expressions.And": {"tf": 1.7320508075688772}, "sqlglot.expressions.Or": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseAnd": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseLeftShift": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseOr": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseRightShift": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseXor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Div": {"tf": 1.7320508075688772}, "sqlglot.expressions.Overlaps": {"tf": 1.7320508075688772}, "sqlglot.expressions.Dot": {"tf": 1.7320508075688772}, "sqlglot.expressions.DPipe": {"tf": 1.7320508075688772}, "sqlglot.expressions.EQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.NullSafeEQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.NullSafeNEQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.Distance": {"tf": 1.7320508075688772}, "sqlglot.expressions.Escape": {"tf": 1.7320508075688772}, "sqlglot.expressions.Glob": {"tf": 1.7320508075688772}, "sqlglot.expressions.GT": {"tf": 1.7320508075688772}, "sqlglot.expressions.GTE": {"tf": 1.7320508075688772}, "sqlglot.expressions.ILike": {"tf": 1.7320508075688772}, "sqlglot.expressions.ILikeAny": {"tf": 1.7320508075688772}, "sqlglot.expressions.IntDiv": {"tf": 1.7320508075688772}, "sqlglot.expressions.Is": {"tf": 1.7320508075688772}, "sqlglot.expressions.Kwarg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Like": {"tf": 1.7320508075688772}, "sqlglot.expressions.LikeAny": {"tf": 1.7320508075688772}, "sqlglot.expressions.LT": {"tf": 1.7320508075688772}, "sqlglot.expressions.LTE": {"tf": 1.7320508075688772}, "sqlglot.expressions.Mod": {"tf": 1.7320508075688772}, "sqlglot.expressions.Mul": {"tf": 1.7320508075688772}, "sqlglot.expressions.NEQ": {"tf": 1.7320508075688772}, "sqlglot.expressions.SimilarTo": {"tf": 1.7320508075688772}, "sqlglot.expressions.Slice": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sub": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayOverlaps": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unary": {"tf": 1.7320508075688772}, "sqlglot.expressions.BitwiseNot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Not": {"tf": 1.7320508075688772}, "sqlglot.expressions.Paren": {"tf": 1.7320508075688772}, "sqlglot.expressions.Neg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Aliases": {"tf": 1.7320508075688772}, "sqlglot.expressions.AtTimeZone": {"tf": 1.7320508075688772}, "sqlglot.expressions.Between": {"tf": 1.7320508075688772}, "sqlglot.expressions.Bracket": {"tf": 1.7320508075688772}, "sqlglot.expressions.Distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.In": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeUnit": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeUnit.__init__": {"tf": 1.7320508075688772}, "sqlglot.expressions.Interval": {"tf": 1.7320508075688772}, "sqlglot.expressions.IgnoreNulls": {"tf": 1.7320508075688772}, "sqlglot.expressions.RespectNulls": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 4.69041575982343}, "sqlglot.expressions.Func.from_arg_list": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func.sql_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func.sql_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func.default_parser_mappings": {"tf": 1.7320508075688772}, "sqlglot.expressions.AggFunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.Abs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Anonymous": {"tf": 1.7320508075688772}, "sqlglot.expressions.ApproxDistinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Array": {"tf": 1.7320508075688772}, "sqlglot.expressions.ToChar": {"tf": 1.7320508075688772}, "sqlglot.expressions.GenerateSeries": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayAll": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayAny": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayConcat": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayContains": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayContained": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayFilter": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayJoin": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArraySize": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArraySort": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArraySum": {"tf": 1.7320508075688772}, "sqlglot.expressions.ArrayUnionAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.Avg": {"tf": 1.7320508075688772}, "sqlglot.expressions.AnyValue": {"tf": 1.7320508075688772}, "sqlglot.expressions.Case": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 11.313708498984761}, "sqlglot.expressions.Cast.is_type": {"tf": 1.7320508075688772}, "sqlglot.expressions.Collate": {"tf": 1.7320508075688772}, "sqlglot.expressions.TryCast": {"tf": 1.7320508075688772}, "sqlglot.expressions.Ceil": {"tf": 1.7320508075688772}, "sqlglot.expressions.Coalesce": {"tf": 1.7320508075688772}, "sqlglot.expressions.Concat": {"tf": 1.7320508075688772}, "sqlglot.expressions.ConcatWs": {"tf": 1.7320508075688772}, "sqlglot.expressions.Count": {"tf": 1.7320508075688772}, "sqlglot.expressions.CountIf": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentDatetime": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.CurrentTimestamp": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.DatetimeTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.DayOfWeek": {"tf": 1.7320508075688772}, "sqlglot.expressions.DayOfMonth": {"tf": 1.7320508075688772}, "sqlglot.expressions.DayOfYear": {"tf": 1.7320508075688772}, "sqlglot.expressions.WeekOfYear": {"tf": 1.7320508075688772}, "sqlglot.expressions.LastDateOfMonth": {"tf": 1.7320508075688772}, "sqlglot.expressions.Extract": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimestampTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeSub": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeDiff": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeTrunc": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateFromParts": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateStrToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateToDateStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.DateToDi": {"tf": 1.7320508075688772}, "sqlglot.expressions.Day": {"tf": 1.7320508075688772}, "sqlglot.expressions.Decode": {"tf": 1.7320508075688772}, "sqlglot.expressions.DiToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.Encode": {"tf": 1.7320508075688772}, "sqlglot.expressions.Exp": {"tf": 1.7320508075688772}, "sqlglot.expressions.Explode": {"tf": 1.7320508075688772}, "sqlglot.expressions.Floor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Greatest": {"tf": 1.7320508075688772}, "sqlglot.expressions.GroupConcat": {"tf": 1.7320508075688772}, "sqlglot.expressions.Hex": {"tf": 1.7320508075688772}, "sqlglot.expressions.If": {"tf": 1.7320508075688772}, "sqlglot.expressions.IfNull": {"tf": 1.7320508075688772}, "sqlglot.expressions.Initcap": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONBContains": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONExtractScalar": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONBExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.JSONBExtractScalar": {"tf": 1.7320508075688772}, "sqlglot.expressions.Least": {"tf": 1.7320508075688772}, "sqlglot.expressions.Length": {"tf": 1.7320508075688772}, "sqlglot.expressions.Levenshtein": {"tf": 1.7320508075688772}, "sqlglot.expressions.Ln": {"tf": 1.7320508075688772}, "sqlglot.expressions.Log": {"tf": 1.7320508075688772}, "sqlglot.expressions.Log2": {"tf": 1.7320508075688772}, "sqlglot.expressions.Log10": {"tf": 1.7320508075688772}, "sqlglot.expressions.LogicalOr": {"tf": 1.7320508075688772}, "sqlglot.expressions.LogicalAnd": {"tf": 1.7320508075688772}, "sqlglot.expressions.Lower": {"tf": 1.7320508075688772}, "sqlglot.expressions.Map": {"tf": 1.7320508075688772}, "sqlglot.expressions.VarMap": {"tf": 1.7320508075688772}, "sqlglot.expressions.Matches": {"tf": 2.23606797749979}, "sqlglot.expressions.Max": {"tf": 1.7320508075688772}, "sqlglot.expressions.Min": {"tf": 1.7320508075688772}, "sqlglot.expressions.Month": {"tf": 1.7320508075688772}, "sqlglot.expressions.Nvl2": {"tf": 1.7320508075688772}, "sqlglot.expressions.Posexplode": {"tf": 1.7320508075688772}, "sqlglot.expressions.Pow": {"tf": 1.7320508075688772}, "sqlglot.expressions.PercentileCont": {"tf": 1.7320508075688772}, "sqlglot.expressions.PercentileDisc": {"tf": 1.7320508075688772}, "sqlglot.expressions.Quantile": {"tf": 1.7320508075688772}, "sqlglot.expressions.Quantiles": {"tf": 1.7320508075688772}, "sqlglot.expressions.QuantileIf": {"tf": 1.7320508075688772}, "sqlglot.expressions.ApproxQuantile": {"tf": 1.7320508075688772}, "sqlglot.expressions.RangeN": {"tf": 1.7320508075688772}, "sqlglot.expressions.ReadCSV": {"tf": 1.7320508075688772}, "sqlglot.expressions.Reduce": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpLike": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpILike": {"tf": 1.7320508075688772}, "sqlglot.expressions.RegexpSplit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Repeat": {"tf": 1.7320508075688772}, "sqlglot.expressions.Round": {"tf": 1.7320508075688772}, "sqlglot.expressions.RowNumber": {"tf": 1.7320508075688772}, "sqlglot.expressions.SafeDivide": {"tf": 1.7320508075688772}, "sqlglot.expressions.SetAgg": {"tf": 1.7320508075688772}, "sqlglot.expressions.SortArray": {"tf": 1.7320508075688772}, "sqlglot.expressions.Split": {"tf": 1.7320508075688772}, "sqlglot.expressions.Substring": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrPosition": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrToTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.StrToUnix": {"tf": 1.7320508075688772}, "sqlglot.expressions.NumberToStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.Struct": {"tf": 1.7320508075688772}, "sqlglot.expressions.StructExtract": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sum": {"tf": 1.7320508075688772}, "sqlglot.expressions.Sqrt": {"tf": 1.7320508075688772}, "sqlglot.expressions.Stddev": {"tf": 1.7320508075688772}, "sqlglot.expressions.StddevPop": {"tf": 1.7320508075688772}, "sqlglot.expressions.StddevSamp": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeToStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeToTimeStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeToUnix": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeStrToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeStrToTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeStrToUnix": {"tf": 1.7320508075688772}, "sqlglot.expressions.Trim": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDsAdd": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDsToDateStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDsToDate": {"tf": 1.7320508075688772}, "sqlglot.expressions.TsOrDiToDi": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unhex": {"tf": 1.7320508075688772}, "sqlglot.expressions.UnixToStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.UnixToTime": {"tf": 1.7320508075688772}, "sqlglot.expressions.UnixToTimeStr": {"tf": 1.7320508075688772}, "sqlglot.expressions.Upper": {"tf": 1.7320508075688772}, "sqlglot.expressions.Variance": {"tf": 1.7320508075688772}, "sqlglot.expressions.VariancePop": {"tf": 1.7320508075688772}, "sqlglot.expressions.Week": {"tf": 1.7320508075688772}, "sqlglot.expressions.XMLTable": {"tf": 1.7320508075688772}, "sqlglot.expressions.Year": {"tf": 1.7320508075688772}, "sqlglot.expressions.Use": {"tf": 1.7320508075688772}, "sqlglot.expressions.Merge": {"tf": 1.7320508075688772}, "sqlglot.expressions.When": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 10.14889156509222}, "sqlglot.expressions.union": {"tf": 10.344080432788601}, "sqlglot.expressions.intersect": {"tf": 10.344080432788601}, "sqlglot.expressions.except_": {"tf": 10.392304845413264}, "sqlglot.expressions.select": {"tf": 9.797958971132712}, "sqlglot.expressions.from_": {"tf": 9.9498743710662}, "sqlglot.expressions.update": {"tf": 12}, "sqlglot.expressions.delete": {"tf": 9.433981132056603}, "sqlglot.expressions.condition": {"tf": 13.92838827718412}, "sqlglot.expressions.and_": {"tf": 9.848857801796104}, "sqlglot.expressions.or_": {"tf": 9.848857801796104}, "sqlglot.expressions.not_": {"tf": 8.831760866327848}, "sqlglot.expressions.paren": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_identifier": {"tf": 5.291502622129181}, "sqlglot.expressions.to_interval": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 5.196152422706632}, "sqlglot.expressions.to_column": {"tf": 5.291502622129181}, "sqlglot.expressions.alias_": {"tf": 12.649110640673518}, "sqlglot.expressions.subquery": {"tf": 10.198039027185569}, "sqlglot.expressions.column": {"tf": 5.744562646538029}, "sqlglot.expressions.cast": {"tf": 8.888194417315589}, "sqlglot.expressions.table_": {"tf": 5.916079783099616}, "sqlglot.expressions.values": {"tf": 8.888194417315589}, "sqlglot.expressions.var": {"tf": 10.488088481701515}, "sqlglot.expressions.rename_table": {"tf": 4.898979485566356}, "sqlglot.expressions.convert": {"tf": 5}, "sqlglot.expressions.replace_children": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 8.48528137423857}, "sqlglot.expressions.table_name": {"tf": 9.797958971132712}, "sqlglot.expressions.replace_tables": {"tf": 10.44030650891055}, "sqlglot.expressions.replace_placeholders": {"tf": 11.575836902790225}, "sqlglot.expressions.expand": {"tf": 10.770329614269007}, "sqlglot.expressions.func": {"tf": 12.884098726725126}, "sqlglot.expressions.true": {"tf": 1.7320508075688772}, "sqlglot.expressions.false": {"tf": 1.7320508075688772}, "sqlglot.expressions.null": {"tf": 1.7320508075688772}, "sqlglot.generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 11.532562594670797}, "sqlglot.generator.Generator.__init__": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 3}, "sqlglot.generator.Generator.unsupported": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sep": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.seg": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pad_comment": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.maybe_comment": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.wrap": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.no_identify": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.normalize_func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.indent": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.uncache_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cache_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.characterset_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.column_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.columndef_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.columnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.autoincrementcolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.compresscolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generatedasidentitycolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.notnullcolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.primarykeycolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.uniquecolumnconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.create_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.describe_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.prepend_ctes": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.with_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cte_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tablealias_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitstring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.hexstring_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.directory_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.delete_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.drop_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.except_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.except_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.fetch_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.filter_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.hint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.index_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.identifier_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.national_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.partition_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.properties_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.root_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.with_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.locate_properties": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.property_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.likeproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.fallbackproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.journalproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.freespaceproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.afterjournalproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.checksumproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mergeblockratioproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.datablocksizeproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.blockcompressionproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.isolatedloadingproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lockingproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.withdataproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.insert_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.intersect_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.intersect_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.introducer_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pseudotype_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.returning_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.rowformatdelimitedproperty_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.table_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tablesample_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.pivot_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tuple_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.update_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.var_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.into_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.from_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.group_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.having_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.join_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lambda_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lateral_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.limit_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.offset_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.setitem_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.set_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lock_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.literal_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.loaddata_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.null_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.boolean_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.order_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cluster_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.distribute_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sort_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.ordered_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.matchrecognize_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.query_modifiers": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.schema_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.star_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.structkwarg_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.parameter_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sessionparameter_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.placeholder_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.subquery_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.qualify_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.union_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.union_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.unnest_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.where_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.window_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.partition_by_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.window_spec_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.withingroup_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.between_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bracket_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.all_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.any_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.exists_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.case_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.constraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.extract_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.trim_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.concat_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.check_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.foreignkey_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.primarykey_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.unique_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.if_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.in_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.in_unnest_op": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.interval_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.return_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.reference_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.anonymous_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.paren_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.neg_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.not_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.alias_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.aliases_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.attimezone_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.add_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.and_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.connector_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiseand_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiseleftshift_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwisenot_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiseor_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwiserightshift_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.bitwisexor_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.cast_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.currentdate_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.collate_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.command_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.comment_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.transaction_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.commit_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.rollback_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.altercolumn_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.renametable_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.altertable_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.droppartition_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.addconstraint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.distinct_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.ignorenulls_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.respectnulls_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.intdiv_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.dpipe_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.div_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.overlaps_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.distance_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.dot_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.eq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.escape_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.glob_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.gt_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.gte_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.ilike_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.is_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.like_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.similarto_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lt_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.lte_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mod_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.mul_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.neq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.nullsafeeq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.nullsafeneq_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.or_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.slice_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.sub_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.trycast_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.use_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.binary": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.function_fallback_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.format_args": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.text_width": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.format_time": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.expressions": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.op_expressions": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.naked_property": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.set_operation": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tag_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.token_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.userdefinedfunction_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.joinhint_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.kwarg_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.when_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.merge_sql": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.tochar_sql": {"tf": 1.7320508075688772}, "sqlglot.helper": {"tf": 1.7320508075688772}, "sqlglot.helper.AutoName": {"tf": 2.449489742783178}, "sqlglot.helper.seq_get": {"tf": 3.3166247903554}, "sqlglot.helper.ensure_list": {"tf": 4.795831523312719}, "sqlglot.helper.ensure_collection": {"tf": 5.196152422706632}, "sqlglot.helper.csv": {"tf": 5.291502622129181}, "sqlglot.helper.subclasses": {"tf": 5.744562646538029}, "sqlglot.helper.apply_index_offset": {"tf": 5.477225575051661}, "sqlglot.helper.camel_to_snake_case": {"tf": 2.23606797749979}, "sqlglot.helper.while_changing": {"tf": 5.291502622129181}, "sqlglot.helper.tsort": {"tf": 4.795831523312719}, "sqlglot.helper.open_file": {"tf": 1.7320508075688772}, "sqlglot.helper.csv_reader": {"tf": 5.477225575051661}, "sqlglot.helper.find_new_name": {"tf": 5.291502622129181}, "sqlglot.helper.object_to_dict": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 12.649110640673518}, "sqlglot.helper.is_iterable": {"tf": 8.94427190999916}, "sqlglot.helper.flatten": {"tf": 11.224972160321824}, "sqlglot.helper.count_params": {"tf": 1.7320508075688772}, "sqlglot.helper.dict_depth": {"tf": 11.489125293076057}, "sqlglot.helper.first": {"tf": 2.449489742783178}, "sqlglot.helper.should_identify": {"tf": 5.291502622129181}, "sqlglot.lineage": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.__init__": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.walk": {"tf": 1.7320508075688772}, "sqlglot.lineage.Node.to_html": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 6.928203230275509}, "sqlglot.lineage.LineageHTML": {"tf": 2.6457513110645907}, "sqlglot.lineage.LineageHTML.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 13.2664991614216}, "sqlglot.optimizer.annotate_types.TypeAnnotator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.TypeAnnotator.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.TypeAnnotator.annotate": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 4.69041575982343}, "sqlglot.optimizer.canonicalize.add_text_to_concat": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.coerce_type": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.remove_redundant_casts": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.ensure_bool_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 10.198039027185569}, "sqlglot.optimizer.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 10.344080432788601}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 4.58257569495584}, "sqlglot.optimizer.eliminate_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 12.727922061357855}, "sqlglot.optimizer.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 10.63014581273465}, "sqlglot.optimizer.expand_multi_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 7.874007874011811}, "sqlglot.optimizer.isolate_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.isolate_table_selects.isolate_table_selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 9.797958971132712}, "sqlglot.optimizer.merge_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 11.180339887498949}, "sqlglot.optimizer.merge_subqueries.merge_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_derived_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalize": {"tf": 10.14889156509222}, "sqlglot.optimizer.normalize.normalized": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 9.591663046625438}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 7.874007874011811}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.other_table_names": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 7.54983443527075}, "sqlglot.optimizer.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 10.344080432788601}, "sqlglot.optimizer.pushdown_predicates.pushdown": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.nodes_for_predicate": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.replace_aliases": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.DEFAULT_SELECTION": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 10.44030650891055}, "sqlglot.optimizer.qualify_columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 11.575836902790225}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.Resolver.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 4.795831523312719}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 2}, "sqlglot.optimizer.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 10.862780491200215}, "sqlglot.optimizer.scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.ROOT": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.SUBQUERY": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.DERIVED_TABLE": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.CTE": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.UNION": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.ScopeType.UDTF": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 9.539392014169456}, "sqlglot.optimizer.scope.Scope.__init__": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.clear_cache": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.walk": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find": {"tf": 5.744562646538029}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 5.656854249492381}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 5.477225575051661}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 4.47213595499958}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 4.47213595499958}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 3.872983346207417}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 4}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 3.1622776601683795}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 4.898979485566356}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 13.601470508735444}, "sqlglot.optimizer.scope.build_scope": {"tf": 4.69041575982343}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 5.385164807134504}, "sqlglot.optimizer.simplify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify": {"tf": 9.643650760992955}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.simplify_connectors": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 2.6457513110645907}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2.8284271247461903}, "sqlglot.optimizer.simplify.simplify_literals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify_parens": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.remove_where_true": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.always_true": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.is_complement": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.eval_boolean": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.extract_date": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.extract_interval": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.date_literal": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.boolean_literal": {"tf": 1.7320508075688772}, "sqlglot.optimizer.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 9.899494936611665}, "sqlglot.optimizer.unnest_subqueries.unnest": {"tf": 1.7320508075688772}, "sqlglot.optimizer.unnest_subqueries.decorrelate": {"tf": 1.7320508075688772}, "sqlglot.parser": {"tf": 1.7320508075688772}, "sqlglot.parser.parse_var_map": {"tf": 1.7320508075688772}, "sqlglot.parser.binary_range_parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 6.082762530298219}, "sqlglot.parser.Parser.__init__": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.reset": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 5.291502622129181}, "sqlglot.parser.Parser.parse_into": {"tf": 5.744562646538029}, "sqlglot.parser.Parser.check_errors": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.raise_error": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 5.744562646538029}, "sqlglot.parser.Parser.validate_expression": {"tf": 4.358898943540674}, "sqlglot.planner": {"tf": 1.7320508075688772}, "sqlglot.planner.Plan": {"tf": 1.7320508075688772}, "sqlglot.planner.Plan.__init__": {"tf": 1.7320508075688772}, "sqlglot.planner.Step": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.from_expression": {"tf": 7.681145747868608}, "sqlglot.planner.Step.add_dependency": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.to_s": {"tf": 1.7320508075688772}, "sqlglot.planner.Scan": {"tf": 1.7320508075688772}, "sqlglot.planner.Scan.from_expression": {"tf": 7.681145747868608}, "sqlglot.planner.Join": {"tf": 1.7320508075688772}, "sqlglot.planner.Join.from_joins": {"tf": 1.7320508075688772}, "sqlglot.planner.Aggregate": {"tf": 1.7320508075688772}, "sqlglot.planner.Sort": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.__init__": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.from_expression": {"tf": 7.681145747868608}, "sqlglot.schema.Schema": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 4.358898943540674}, "sqlglot.schema.Schema.column_names": {"tf": 5.477225575051661}, "sqlglot.schema.Schema.get_column_type": {"tf": 5.477225575051661}, "sqlglot.schema.Schema.supported_table_args": {"tf": 2.449489742783178}, "sqlglot.schema.AbstractMappingSchema": {"tf": 4}, "sqlglot.schema.AbstractMappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.table_parts": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema.find": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 7.211102550927978}, "sqlglot.schema.MappingSchema.__init__": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.from_mapping_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.copy": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 4.58257569495584}, "sqlglot.schema.MappingSchema.column_names": {"tf": 5.477225575051661}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 5.477225575051661}, "sqlglot.schema.ensure_schema": {"tf": 1.7320508075688772}, "sqlglot.schema.ensure_column_mapping": {"tf": 1.7320508075688772}, "sqlglot.schema.flatten_schema": {"tf": 1.7320508075688772}, "sqlglot.serde": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1.7320508075688772}, "sqlglot.serde.load": {"tf": 2.23606797749979}, "sqlglot.time": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 7.681145747868608}, "sqlglot.tokens": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.L_PAREN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.R_PAREN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.L_BRACKET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.R_BRACKET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.L_BRACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.R_BRACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PLUS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DCOLON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEMICOLON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.STAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BACKSLASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SLASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EQ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NEQ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLSAFE_EQ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AND": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DPIPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PIPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CARET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TILDA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HASH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HASH_ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DHASH_ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LR_ARROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LT_AT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AT_GT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOLLAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PARAMETER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SESSION_PARAMETER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NATIONAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BLOCK_START": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BLOCK_END": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SPACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BREAK": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NUMBER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATABASE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLUMN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLUMN_DEF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SCHEMA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TABLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIT_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HEX_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BYTE_STRING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BOOLEAN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TINYINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UTINYINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SMALLINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.USMALLINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIGINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UBIGINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FLOAT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DOUBLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DECIMAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NCHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VARCHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NVARCHAR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MEDIUMTEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LONGTEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MEDIUMBLOB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LONGBLOB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BINARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VARBINARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JSON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JSONB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIMESTAMPTZ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TIMESTAMPLTZ": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATETIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UUID": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GEOGRAPHY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLABLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GEOMETRY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HLLSKETCH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HSTORE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SUPER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SERIAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SMALLSERIAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BIGSERIAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.XML": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNIQUEIDENTIFIER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MONEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SMALLMONEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROWVERSION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IMAGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VARIANT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OBJECT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALIAS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALTER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALWAYS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ALL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ANTI": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ANY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.APPLY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ARRAY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ASC": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ASOF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AT_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.AUTO_INCREMENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BEGIN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BETWEEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BOTH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BUCKET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.BY_DEFAULT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CASCADE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CASE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CHARACTER_SET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CLUSTER_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COLLATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMAND": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMMIT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.COMPOUND": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CONSTRAINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CREATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CROSS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CUBE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_DATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_DATETIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_ROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_TIME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.CURRENT_TIMESTAMP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DEFAULT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DELETE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DESC": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DESCRIBE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTINCT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTINCT_FROM": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DISTRIBUTE_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DIV": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.DROP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ELSE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.END": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ESCAPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EXCEPT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EXECUTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.EXISTS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FALSE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FETCH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FILTER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FINAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FIRST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FOLLOWING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FOR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FOREIGN_KEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FORMAT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FROM": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.FUNCTION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GLOB": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GLOBAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GROUP_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.GROUPING_SETS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HAVING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.HINT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IGNORE_NULLS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ILIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ILIKE_ANY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INDEX": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INNER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INSERT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTERSECT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTERVAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTO": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.INTRODUCER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IRLIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.IS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ISNULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JOIN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.JOIN_MARKER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LANGUAGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LATERAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LAZY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LEADING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LEFT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LIKE_ANY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LIMIT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LOAD_DATA": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.LOCAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MAP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MATCH_RECOGNIZE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MATERIALIZED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MERGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.MOD": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NATURAL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NEXT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NO_ACTION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NOTNULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULL": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLS_FIRST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.NULLS_LAST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OFFSET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ON": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ONLY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OPTIONS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ORDER_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ORDERED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ORDINALITY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OUTER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OUT_OF": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OVER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OVERLAPS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.OVERWRITE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PARTITION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PARTITION_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PERCENT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PIVOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PLACEHOLDER": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PRECEDING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PRIMARY_KEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PROCEDURE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PROPERTIES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.PSEUDO_TYPE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.QUALIFY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.QUOTE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RANGE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RECURSIVE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.REPLACE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RESPECT_NULLS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RETURNING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.REFERENCES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RIGHT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.RLIKE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROLLBACK": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROLLUP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.ROWS": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SELECT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEMI": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SEPARATOR": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SERDE_PROPERTIES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SET": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SHOW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SIMILAR_TO": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SOME": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SORTKEY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.SORT_BY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.STRUCT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TABLE_SAMPLE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TEMPORARY": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TOP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.THEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TRAILING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.TRUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNBOUNDED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNCACHE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNION": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNLOGGED": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNNEST": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNPIVOT": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UPDATE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.USE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.USING": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VALUES": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VIEW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.VOLATILE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WHEN": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WHERE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WINDOW": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITH": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITH_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITH_LOCAL_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITHIN_GROUP": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.WITHOUT_TIME_ZONE": {"tf": 1.7320508075688772}, "sqlglot.tokens.TokenType.UNIQUE": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.__init__": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.number": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.string": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.identifier": {"tf": 2.23606797749979}, "sqlglot.tokens.Token.var": {"tf": 2.23606797749979}, "sqlglot.tokens.Tokenizer": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.reset": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 2.23606797749979}, "sqlglot.transforms": {"tf": 1.7320508075688772}, "sqlglot.transforms.unalias_group": {"tf": 9.327379053088816}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 5.0990195135927845}, "sqlglot.transforms.eliminate_qualify": {"tf": 3.1622776601683795}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 5.477225575051661}, "sqlglot.transforms.delegate": {"tf": 2.6457513110645907}, "sqlglot.trie": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 9.327379053088816}, "sqlglot.trie.in_trie": {"tf": 13.228756555322953}}, "df": 1733, "s": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 57, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 5.5677643628300215}, "sqlglot.pretty": {"tf": 1}, "sqlglot.parse": {"tf": 2.23606797749979}, "sqlglot.parse_one": {"tf": 2.23606797749979}, "sqlglot.transpile": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 6.48074069840786}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.executor": {"tf": 6.324555320336759}, "sqlglot.executor.execute": {"tf": 2}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 2}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2.23606797749979}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}}, "df": 127, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 6.4031242374328485}, "sqlglot.schema": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 5}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 3}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 4.242640687119285}, "sqlglot.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2.23606797749979}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.449489742783178}, "sqlglot.optimizer.normalize.normalize": {"tf": 2.23606797749979}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.23606797749979}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify": {"tf": 2.23606797749979}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.23606797749979}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}}, "df": 76, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3.4641016151377544}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 11, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 3.3166247903554}}, "df": 1}}}}}}, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 3}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "t": {"docs": {"sqlglot.helper.split_num_words": {"tf": 2.6457513110645907}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 5}, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}}, "df": 21}}, "c": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 3}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}}, "df": 3}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 6}}}}}}}, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Func": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 2}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}, "x": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}}, "df": 58}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.not_": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}}, "df": 7}}}}}}}, "b": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 3, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.expressions": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 2}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"sqlglot.expressions.Func": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 12}}}, "y": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 12, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot": {"tf": 2.6457513110645907}}, "df": 1}}}, "m": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 5, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 6}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 3}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}}, "df": 6}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 11, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}, "w": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 14, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 12, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "w": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.diff": {"tf": 7.937253933193772}, "sqlglot.diff.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 2}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 22, "d": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}}, "df": 8}}}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}}, "df": 4, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 25, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 18, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 28}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}, "b": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3}, "sqlglot.executor.python.Python.Generator": {"tf": 3}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 3}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 64, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 5, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 3.7416573867739413}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dataframe": {"tf": 2.6457513110645907}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1.7320508075688772}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.string": {"tf": 1.4142135623730951}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 95, "s": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 26}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.6457513110645907}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 7, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 6.164414002968976}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.assert_is": {"tf": 2}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lateral": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 3.1622776601683795}, "sqlglot.expressions.Select.where": {"tf": 2}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Select.distinct": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.ctas": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lock": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 2}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 2.449489742783178}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.6457513110645907}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 99, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 4}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 9, "s": {"docs": {"sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 3}}, "|": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 7}}, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 3, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}}}}, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}}}}}}}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 5.916079783099616}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}}, "df": 84, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}}, "df": 4}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"1": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 6, "n": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {"sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.dataframe": {"tf": 4.242640687119285}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.6457513110645907}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 21, "s": {"docs": {"sqlglot.schema.Schema": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 3.605551275463989}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 4.242640687119285}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.build_scope": {"tf": 2}}, "df": 35, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 3.605551275463989}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "r": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 4}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 42, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.7320508075688772}}, "df": 3}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 2}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.simplify.simplify": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.executor.execute": {"tf": 1}}, "df": 3}, "y": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 4.242640687119285}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 11}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}}}, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}}, "df": 4}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 8}}, "f": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 22}}, "w": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.replace": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 4.795831523312719}, "sqlglot.executor": {"tf": 4.69041575982343}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 3.4641016151377544}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 7.54983443527075}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 4.58257569495584}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 2}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 2.23606797749979}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.helper.AutoName": {"tf": 1.4142135623730951}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 2.23606797749979}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 154, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.7416573867739413}, "sqlglot.executor": {"tf": 4.898979485566356}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_collection": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 87, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 3}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.is_iterable": {"tf": 2.23606797749979}, "sqlglot.helper.flatten": {"tf": 2}, "sqlglot.helper.first": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 12, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3}}}}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "n": {"docs": {"sqlglot": {"tf": 4.123105625617661}, "sqlglot.schema": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3.605551275463989}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.diff": {"tf": 8.12403840463596}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 2.6457513110645907}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 156, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 43, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 43, "s": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 2}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1}}, "df": 2}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 56, "s": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 6}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5, "d": {"docs": {"sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 10}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}}, "df": 3, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 3}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 2}}}}}}, "t": {"6": {"4": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 2.23606797749979}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 34, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 4.242640687119285}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 40}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Unionable.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}}, "df": 2}}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.6457513110645907}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "\u2019": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 2}}}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 6}}}}}, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 2}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.helper.seq_get": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 20}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 46}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.is_iterable": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.condition": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}}, "df": 5}}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 6, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 4.358898943540674}, "sqlglot.dataframe": {"tf": 4.47213595499958}, "sqlglot.dialects": {"tf": 2}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 43, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 3}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {"sqlglot": {"tf": 4.69041575982343}, "sqlglot.dataframe": {"tf": 3}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_identifier": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1.4142135623730951}}, "df": 30, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}}, "df": 26}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}}, "df": 2}}}, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}}, "df": 26, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2}}, "s": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3}}, "f": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.8284271247461903}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.8284271247461903}, "sqlglot.diff": {"tf": 4.69041575982343}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.using": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 2}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.8284271247461903}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 142}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "\u2019": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "m": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {"sqlglot": {"tf": 7.615773105863909}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 2.449489742783178}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 3}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3}, "sqlglot.diff": {"tf": 8.94427190999916}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.diff": {"tf": 2.449489742783178}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.executor": {"tf": 8.660254037844387}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 3}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.is_number": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 2}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 2.23606797749979}, "sqlglot.expressions.to_column": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 2}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 3}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 2.449489742783178}, "sqlglot.helper.ensure_collection": {"tf": 2.23606797749979}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1.7320508075688772}, "sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 2}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 2}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 4.242640687119285}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 3.4641016151377544}, "sqlglot.parser.Parser": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 3.4641016151377544}, "sqlglot.planner.Scan.from_expression": {"tf": 3.4641016151377544}, "sqlglot.planner.SetOperation.from_expression": {"tf": 3.4641016151377544}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 2}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 2.23606797749979}, "sqlglot.trie.in_trie": {"tf": 2.449489742783178}}, "df": 234, "n": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 3}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 130, "d": {"docs": {"sqlglot": {"tf": 5.196152422706632}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 7.0710678118654755}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.executor": {"tf": 7.0710678118654755}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.6457513110645907}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2.8284271247461903}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 118}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 14}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.func": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 29, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 3, "d": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "l": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2, "s": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 18}}, "l": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 2}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 69, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "/": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 55, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 24}, "d": {"docs": {"sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.helper.find_new_name": {"tf": 1}}, "df": 3, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}}, "df": 24}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "g": {"docs": {"sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 5}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 4.47213595499958}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 79, "n": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}}, "df": 1}}, "g": {"docs": {"sqlglot.expressions.Expression": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.append": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 2}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 14, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 2}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 179}}}}}}, "s": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 11}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}, "[": {"0": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}, "1": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}, "docs": {}, "df": 0}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 4.47213595499958}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 3}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4}, "sqlglot.executor": {"tf": 4.242640687119285}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 2}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.23606797749979}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 2}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 2}, "sqlglot.planner.Scan.from_expression": {"tf": 2}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 142, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 17, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.replace_tables": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot": {"tf": 2}}, "df": 1, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7}, "s": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}}, "df": 4}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}}, "df": 17, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}}, "df": 3}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}}, "df": 15, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 4}}}}}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 4}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 4}, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 4}}}}}}}, "e": {"docs": {"sqlglot.dataframe": {"tf": 3.872983346207417}}, "df": 1}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}}, "df": 4, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 3}}}}}}, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.func": {"tf": 1.4142135623730951}}, "df": 1, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 5}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}, "x": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}}, "df": 2, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 3}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 44}}}, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 13, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 4}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}}, "df": 3}}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}}, "df": 15, "t": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.executor": {"tf": 3}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 2}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 75, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 8, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Select.group_by": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 7.745966692414834}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 28, "s": {"docs": {"sqlglot.diff": {"tf": 8.12403840463596}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 12}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}}, "df": 10, "e": {"docs": {"sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2.23606797749979}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 32}}, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}}, "df": 2, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}}, "df": 23, "d": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}}}, "w": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Literal.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Star.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Alias.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Func": {"tf": 2.23606797749979}, "sqlglot.expressions.Cast.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.to_identifier": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1.7320508075688772}, "sqlglot.expressions.rename_table": {"tf": 2}, "sqlglot.expressions.table_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 45, "s": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 2}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}}, "df": 33}, "d": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "\u00ef": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 52, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 8, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.find_ancestor": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dataframe": {"tf": 3}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 2}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1.4142135623730951}}, "df": 50}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 45, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 2}}, "df": 40}}}}, "^": {"2": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}, "docs": {}, "df": 0}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 6}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 3}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}}, "df": 6}}}, "v": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3}}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}}, "df": 3, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller": {"tf": 1.4142135623730951}}, "df": 2}, "s": {"docs": {"sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 21}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 5, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 4.358898943540674}, "sqlglot.executor.python.Python.Generator": {"tf": 4.358898943540674}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 4.358898943540674}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 2.6457513110645907}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 50, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 23}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 9}, "s": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.env.null_if_any": {"tf": 1}}, "df": 1}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}}, "df": 21, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"sqlglot.expressions.Delete.delete": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}}, "df": 4}}, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.transforms.delegate": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "d": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}}, "df": 5}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}}, "df": 1}}}}}}}}}}, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.copy": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.simplify_not": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}}, "df": 3, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 2.6457513110645907}, "sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dialects": {"tf": 3.1622776601683795}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 54, "s": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 2}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 9}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 2}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 11, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 2.449489742783178}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 29, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 2}}}, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 32}}}}}}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}}, "df": 4}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1}}}}, "|": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 2}}}}}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.tsort": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1}}, "df": 6}}}}, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 3}, "m": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 4}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 4, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2}}}}}}}}}}, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 6, "n": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}}, "df": 5, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}}, "df": 4}}}}, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 27, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}}, "df": 5}, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}}, "df": 7, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 3}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 8}}}}, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 4.58257569495584}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.schema.Schema": {"tf": 1}}, "df": 6}}}}}}, "g": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.Scan.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.23606797749979}}, "df": 5}, "y": {"docs": {"sqlglot.expressions.to_interval": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {"sqlglot.dataframe": {"tf": 2.8284271247461903}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 3}}, "b": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2}}, "df": 9, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "y": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 4}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "d": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3.872983346207417}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 2}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 2}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 2}, "sqlglot.expressions.Literal.output_name": {"tf": 2}, "sqlglot.expressions.Join.on": {"tf": 2}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.output_name": {"tf": 2}, "sqlglot.expressions.Star.output_name": {"tf": 2}, "sqlglot.expressions.Alias.output_name": {"tf": 2}, "sqlglot.expressions.Cast.output_name": {"tf": 2}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.7320508075688772}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 82, "r": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 25, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 20}}}}}, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 27}, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 6}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 7, "/": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 8, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 3}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "/": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 40}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "e": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 8}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 24}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 2}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 6}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "x": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 2}}}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions": {"tf": 1}}, "df": 3}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2}, "sqlglot.planner.Scan.from_expression": {"tf": 2}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 7}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 3, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 11}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 4}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 5, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 23}, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42}}, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 2}}, "df": 2}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.449489742783178}}, "df": 1}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 1}}, "df": 3}}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 3, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 3}}}}}}}, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 4.898979485566356}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}}, "df": 28, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "k": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}}, "df": 3, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "p": {"3": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "f": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}}, "df": 27, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 2}}, "df": 1}}}}}}}}}, "n": {"docs": {"sqlglot.executor": {"tf": 2.8284271247461903}}, "df": 1, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}}, "df": 7}, "y": {"docs": {"sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 43, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Delete.returning": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.pop": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "h": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 40, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.transpile": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 3}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 2}}, "df": 6, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 11}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 7}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 3}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}}, "df": 5, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.872983346207417}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}}, "df": 72, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}}, "df": 6}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Func": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 68}}, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 7}, "i": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2.449489742783178}, "sqlglot.trie.in_trie": {"tf": 3.4641016151377544}}, "df": 24, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 4.358898943540674}, "sqlglot.pretty": {"tf": 1}, "sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.parse_one": {"tf": 1.7320508075688772}, "sqlglot.transpile": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 3.7416573867739413}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 3.7416573867739413}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 3.7416573867739413}, "sqlglot.diff": {"tf": 8.48528137423857}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 6.708203932499369}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 3.7416573867739413}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Unionable.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.delete": {"tf": 2}, "sqlglot.expressions.Delete.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.returning": {"tf": 2}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.8284271247461903}, "sqlglot.expressions.Union.limit": {"tf": 2}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.group_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.order_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.sort_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lateral": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.join": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.Func": {"tf": 2.449489742783178}, "sqlglot.expressions.maybe_parse": {"tf": 2.6457513110645907}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 2}, "sqlglot.expressions.from_": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 2}, "sqlglot.expressions.or_": {"tf": 2}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.6457513110645907}, "sqlglot.expressions.subquery": {"tf": 2.23606797749979}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 2.23606797749979}, "sqlglot.expressions.values": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 2}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 3.7416573867739413}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.7320508075688772}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 2}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.Scan.from_expression": {"tf": 2.23606797749979}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 2.449489742783178}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.7320508075688772}, "sqlglot.transforms.delegate": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 187, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 1.7320508075688772}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 25}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 22}, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1.7320508075688772}}, "df": 2}}}}}}}, "o": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 3}}}}}}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 4.242640687119285}, "sqlglot.schema": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 2}, "sqlglot.parse_one": {"tf": 2.6457513110645907}, "sqlglot.transpile": {"tf": 4}, "sqlglot.dataframe": {"tf": 4.358898943540674}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 3}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 4.358898943540674}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.6457513110645907}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 4.358898943540674}, "sqlglot.diff": {"tf": 15.066519173319364}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.diff": {"tf": 3.7416573867739413}, "sqlglot.diff.ChangeDistiller": {"tf": 1.7320508075688772}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 8.48528137423857}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.7320508075688772}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 4.358898943540674}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 3.1622776601683795}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.set": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.find_all": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Delete.returning": {"tf": 2.449489742783178}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 2.8284271247461903}, "sqlglot.expressions.Join.using": {"tf": 3}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 3.4641016151377544}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.from_": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.group_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.order_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.sort_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.offset": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.select": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.lateral": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.join": {"tf": 3.3166247903554}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lock": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 2.8284271247461903}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 3.1622776601683795}, "sqlglot.expressions.union": {"tf": 3.1622776601683795}, "sqlglot.expressions.intersect": {"tf": 3.1622776601683795}, "sqlglot.expressions.except_": {"tf": 3.1622776601683795}, "sqlglot.expressions.select": {"tf": 3}, "sqlglot.expressions.from_": {"tf": 3.3166247903554}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 3}, "sqlglot.expressions.and_": {"tf": 2.23606797749979}, "sqlglot.expressions.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.not_": {"tf": 2.23606797749979}, "sqlglot.expressions.to_identifier": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 2.8284271247461903}, "sqlglot.expressions.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 2}, "sqlglot.expressions.var": {"tf": 2}, "sqlglot.expressions.rename_table": {"tf": 2}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 3}, "sqlglot.generator.Generator": {"tf": 4.358898943540674}, "sqlglot.generator.Generator.generate": {"tf": 1.7320508075688772}, "sqlglot.helper.AutoName": {"tf": 1.4142135623730951}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_collection": {"tf": 1.7320508075688772}, "sqlglot.helper.csv": {"tf": 1.7320508075688772}, "sqlglot.helper.subclasses": {"tf": 2.23606797749979}, "sqlglot.helper.apply_index_offset": {"tf": 2.449489742783178}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1.7320508075688772}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2.6457513110645907}, "sqlglot.helper.is_iterable": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2.449489742783178}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.8284271247461903}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 2}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser.parse": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.parse_into": {"tf": 2.8284271247461903}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2.449489742783178}, "sqlglot.planner.Scan.from_expression": {"tf": 2.449489742783178}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.449489742783178}, "sqlglot.schema.Schema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2.23606797749979}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 2.6457513110645907}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2.23606797749979}, "sqlglot.trie.in_trie": {"tf": 2.23606797749979}}, "df": 235, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 16}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 2}}, "df": 4, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 6}, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 29}, "i": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 9}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 4}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 5.744562646538029}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 3.605551275463989}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 66}, "n": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 4}}, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot": {"tf": 4.58257569495584}, "sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 6.244997998398398}, "sqlglot.diff.diff": {"tf": 3.4641016151377544}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.add_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 175}, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 4}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}}, "df": 3, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 7.280109889280518}, "sqlglot.diff.diff": {"tf": 2.8284271247461903}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 33, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 3.3166247903554}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2.8284271247461903}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_table": {"tf": 2.449489742783178}, "sqlglot.expressions.to_column": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_": {"tf": 2}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 2}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 2.6457513110645907}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 2.449489742783178}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_derived_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 2.449489742783178}, "sqlglot.schema.MappingSchema.add_table": {"tf": 2.23606797749979}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 85, "s": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 22, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 40}}}}}}, "|": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 2}}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 3}, "n": {"docs": {"sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "g": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Tag": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.7320508075688772}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}}, "df": 30, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Expression.text": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.time.format_time": {"tf": 2.23606797749979}}, "df": 27, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "b": {"docs": {}, "df": 0, "l": {"1": {"docs": {"sqlglot.expressions.Select.join": {"tf": 2}}, "df": 1}, "2": {"docs": {"sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.8284271247461903}}, "df": 3}, "docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.replace": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.7320508075688772}}, "df": 28}}, "w": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 5}, "sqlglot.executor": {"tf": 1}}, "df": 5}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 2.23606797749979}, "sqlglot.dialects": {"tf": 3.1622776601683795}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.23606797749979}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 2}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1.4142135623730951}}, "df": 30, "s": {"docs": {"sqlglot.dataframe": {"tf": 5.656854249492381}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 21}, "o": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}}}, "p": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1, "h": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}}, "df": 3}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 4, "[": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}}, "df": 3, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 11, "r": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.schema": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}}, "df": 9, "/": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}}, "df": 10}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 12, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}}, "df": 2}}, "[": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 86}}}}, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}}, "df": 44}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}}, "df": 7, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 3}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {"sqlglot": {"tf": 3.605551275463989}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 3.7416573867739413}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 2.8284271247461903}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 87, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 19, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 40}}}}}}, "g": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"3": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"4": {"3": {"3": {"9": {"2": {"3": {"0": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 5}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "f": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.parse": {"tf": 1}, "sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 10.488088481701515}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 4.69041575982343}, "sqlglot.executor.execute": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_children": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 2}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1.4142135623730951}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.23606797749979}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3.3166247903554}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.parse": {"tf": 2}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 155, "f": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 2.23606797749979}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 22}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Literal.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Star.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Alias.output_name": {"tf": 2.23606797749979}, "sqlglot.expressions.Cast.output_name": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}}, "df": 34, "s": {"docs": {"sqlglot.optimizer.scope.Scope.selects": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 7}}}, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}}, "df": 3}}, "n": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 4.795831523312719}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 3}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}}, "df": 45, "e": {"docs": {"sqlglot": {"tf": 4.242640687119285}, "sqlglot.parse": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 2}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 2}, "sqlglot.expressions.Identifier.output_name": {"tf": 2}, "sqlglot.expressions.Literal.output_name": {"tf": 2}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 2}, "sqlglot.expressions.Star.output_name": {"tf": 2}, "sqlglot.expressions.Alias.output_name": {"tf": 2}, "sqlglot.expressions.Cast.output_name": {"tf": 2}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 64, "s": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 2}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 64}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 3}}, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "b": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.7320508075688772}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 11, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 6}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 48, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 22}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 5, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 2}}, "df": 1}, "w": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}}, "df": 2}}}, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.schema": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 10, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 4}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 2}}, "df": 3}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 24, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}, "v": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}}, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.helper.AutoName": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.Dialects": {"tf": 1}, "sqlglot.errors.ErrorLevel": {"tf": 1}, "sqlglot.expressions.Properties.Location": {"tf": 1}, "sqlglot.expressions.DataType.Type": {"tf": 1}, "sqlglot.optimizer.scope.ScopeType": {"tf": 1}, "sqlglot.tokens.TokenType": {"tf": 1}}, "df": 6}}}}}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 4}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 4}}}, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 12}}, "r": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1, "p": {"docs": {"sqlglot": {"tf": 4.123105625617661}, "sqlglot.dialects": {"tf": 3.3166247903554}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}}, "df": 19, "r": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 3.4641016151377544}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.expressions": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1}, "sqlglot.expressions.Expression.set": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 2}, "sqlglot.expressions.Expression.pop": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.where": {"tf": 2.23606797749979}, "sqlglot.expressions.Delete.returning": {"tf": 2.23606797749979}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.Subqueryable.with_": {"tf": 3}, "sqlglot.expressions.Union.limit": {"tf": 2.449489742783178}, "sqlglot.expressions.Union.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.group_by": {"tf": 3}, "sqlglot.expressions.Select.order_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.sort_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.limit": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.offset": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 3}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.lock": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 3}, "sqlglot.expressions.union": {"tf": 2.6457513110645907}, "sqlglot.expressions.intersect": {"tf": 2.6457513110645907}, "sqlglot.expressions.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.condition": {"tf": 2.8284271247461903}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 2.23606797749979}, "sqlglot.expressions.subquery": {"tf": 2.6457513110645907}, "sqlglot.expressions.cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 2}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 2.23606797749979}, "sqlglot.expressions.replace_placeholders": {"tf": 2.23606797749979}, "sqlglot.expressions.expand": {"tf": 2.23606797749979}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.helper.while_changing": {"tf": 2}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.8284271247461903}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 2.8284271247461903}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2.8284271247461903}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2.6457513110645907}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 2.6457513110645907}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2.6457513110645907}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.6457513110645907}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope": {"tf": 2}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 2}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 2}, "sqlglot.optimizer.simplify.simplify": {"tf": 2.6457513110645907}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.6457513110645907}, "sqlglot.parser.Parser.parse_into": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.expression": {"tf": 2.23606797749979}, "sqlglot.parser.Parser.validate_expression": {"tf": 2}, "sqlglot.planner.Step.from_expression": {"tf": 2.6457513110645907}, "sqlglot.planner.Scan.from_expression": {"tf": 2.6457513110645907}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.6457513110645907}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 150, "s": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Literal.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lateral": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.join": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Star.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Alias.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1.7320508075688772}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 2.23606797749979}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1.4142135623730951}}, "df": 89}, "|": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression.replace": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 40}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.values": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.expand": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1}}}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 92, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 16}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 7}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 5, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 7}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 2}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 2}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 22}}}}}, "t": {"docs": {"sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}}, "df": 7}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 2.449489742783178}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 2.449489742783178}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1.4142135623730951}}, "df": 28, "s": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.errors.ErrorLevel.IGNORE": {"tf": 1}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 28}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 40}}}}}}}}}, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 25}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 4.123105625617661}}, "df": 1, "s": {"docs": {"sqlglot.dataframe": {"tf": 3}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}}, "df": 9}}}, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 1, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.generator.Generator": {"tf": 2}}, "df": 22}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 2}}}}}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.helper.first": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}}, "df": 2}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}}, "df": 3}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 1}}, "df": 1}}}}}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 9}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 3.872983346207417}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 3}}, "df": 1}}}, "u": {"docs": {}, "df": 0, ":": {"8": {"0": {"9": {"0": {"docs": {}, "df": 0, "/": {"1": {"1": {"5": {"docs": {}, "df": 0, "/": {"1": {"docs": {}, "df": 0, "/": {"1": {"9": {"9": {"5": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.convert": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}}}}}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2, "c": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 3}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}}, "c": {"docs": {"sqlglot": {"tf": 3.605551275463989}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.flatten": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Literal.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Star.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Alias.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.Cast.output_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 23, "a": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot": {"tf": 3.872983346207417}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4.242640687119285}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 30, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 2.449489742783178}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.values": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.7320508075688772}}, "df": 14, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 5}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 4}, "r": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}}, "df": 2}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}, "t": {"docs": {"sqlglot.trie.in_trie": {"tf": 2}}, "df": 1, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}}, "df": 7}}}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.helper.camel_to_snake_case": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.func": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 15}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_correlated_subquery": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}}, "df": 4, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}}, "df": 1}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 2}}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}}, "df": 2}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}}, "df": 1, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 3.7416573867739413}}, "df": 1, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}}, "df": 25}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_cte": {"tf": 1}}, "df": 13, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}}, "df": 5}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 3, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 41}}, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "b": {"1": {"9": {"3": {"0": {"6": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "docs": {}, "df": 0}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "/": {"8": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}}}}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}}}}}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.transpile": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "x": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context.__init__": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 2}, "sqlglot.planner.Scan.from_expression": {"tf": 2}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2}}, "df": 28}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 23, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}}, "df": 5}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 2}}}}}, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 10, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 4}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}}, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 2}}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Join.using": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 20}}}}, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 1}}}}}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 11, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 4}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.convert": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}}}}}, "j": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 2}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 69}}, "l": {"1": {"docs": {"sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 3}, "2": {"docs": {"sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 3}, "docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 3.1622776601683795}, "sqlglot.executor.execute": {"tf": 1.7320508075688772}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}}, "df": 7, "a": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2.6457513110645907}}, "df": 3}, "b": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2}}, "df": 2}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 3.3166247903554}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 2.449489742783178}, "sqlglot.expressions.column": {"tf": 2}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.Schema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.get_column_type": {"tf": 2}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 2}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 61, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.all_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 29}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.execute": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.parse": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_collection": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1.4142135623730951}}, "df": 6, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 3, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}}, "df": 29}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 26, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 8, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3}}}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 7, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 13}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.diff.diff": {"tf": 1}}, "df": 3}, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 23, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 41}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.assert_is": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.transforms.preprocess": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 2}}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 9}}, "x": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Select.ctas": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 2}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 10, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.object_to_dict": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}}}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 24}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "a": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "f": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 3.3166247903554}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}}, "df": 4}}}}}}, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 2}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 2}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 2}}, "df": 23, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 4}}}}, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 2}}, "df": 2, "s": {"docs": {"sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.Select.cluster_by": {"tf": 2}}, "df": 1}}}}}, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 2}}, "df": 1, "v": {"docs": {"sqlglot.helper.csv": {"tf": 1.4142135623730951}, "sqlglot.helper.csv_reader": {"tf": 2}}, "df": 2}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 3}}}, "b": {"docs": {"sqlglot": {"tf": 4.795831523312719}, "sqlglot.diff": {"tf": 3.7416573867739413}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1.4142135623730951}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.helper.dict_depth": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.flatten": {"tf": 2}, "sqlglot.optimizer.simplify.uniq_sort": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.absorb_and_eliminate": {"tf": 3.1622776601683795}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}}, "df": 37, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 3}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 4.242640687119285}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.while_changing": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.7320508075688772}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2.449489742783178}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 103, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 6}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 3}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 23}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 23}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 26}}}, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}}, "df": 6}}, "y": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.dialects.bigquery": {"tf": 1}}, "df": 3}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 3.872983346207417}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 15, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 4}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "s": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 9}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2}}, "df": 2}}}, "g": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2}, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 6}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.pretty": {"tf": 1}, "sqlglot.schema": {"tf": 1}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 4.47213595499958}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.7320508075688772}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1.4142135623730951}}, "df": 61, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate_tuple": {"tf": 1}}, "df": 1, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {"sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}}, "df": 3}, "r": {"docs": {"sqlglot": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 2}, "sqlglot.expressions.alias_": {"tf": 2}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}}, "df": 5, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 15, "d": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 6}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.449489742783178}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.449489742783178}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 58, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 4}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.seq_get": {"tf": 1}}, "df": 1}}}}, "b": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 3}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}}, "df": 2}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 9, "n": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.expressions.not_": {"tf": 1.4142135623730951}}, "df": 1}}, "b": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}}, "df": 5}}}, "u": {"docs": {"sqlglot.executor": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.7320508075688772}}, "df": 2, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 89, "d": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.schema": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.returning": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 1.4142135623730951}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 73}, "s": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 4}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 7}}}, "r": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 5}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 2}, "sqlglot.expressions.Select.join": {"tf": 2}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 11}}}, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 23, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}}, "df": 22, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}}, "r": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.trie.in_trie": {"tf": 1}}, "df": 1}}}}}}}}}}, "i": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.TimeUnit": {"tf": 1}}, "df": 3}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 3}}}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 2.23606797749979}, "sqlglot.expressions.Union.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.is_union": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}}, "df": 1}, "/": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "q": {"docs": {"sqlglot.optimizer.simplify.uniq_sort": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 3}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 4}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 1}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.7320508075688772}}, "df": 3}}}}}, "p": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 5, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.should_identify": {"tf": 1}}, "df": 22}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.Update": {"tf": 1}}, "df": 2}}}}}}, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "d": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe": {"tf": 4.69041575982343}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 5, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 3.4641016151377544}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 2.8284271247461903}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 6.855654600401044}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.errors.SqlglotError": {"tf": 1}, "sqlglot.errors.UnsupportedError": {"tf": 1}, "sqlglot.errors.ParseError": {"tf": 1}, "sqlglot.errors.TokenError": {"tf": 1}, "sqlglot.errors.OptimizeError": {"tf": 1}, "sqlglot.errors.SchemaError": {"tf": 1}, "sqlglot.errors.ExecuteError": {"tf": 1}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 2.23606797749979}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 3}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.Schema": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 86, "m": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}}, "df": 10, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.pretty": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1.7320508075688772}}, "df": 26, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.csv": {"tf": 1}}, "df": 23}}}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}}, "df": 2}}, "l": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 3}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 14}, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 8, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 12}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 3}}}}, "k": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot": {"tf": 6.557438524302}, "sqlglot.dataframe": {"tf": 4.58257569495584}, "sqlglot.dialects": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 4.358898943540674}, "sqlglot.executor": {"tf": 4}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.group_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.order_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.sort_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.union": {"tf": 2.23606797749979}, "sqlglot.expressions.intersect": {"tf": 2.23606797749979}, "sqlglot.expressions.except_": {"tf": 2.23606797749979}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 2.23606797749979}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 1.7320508075688772}, "sqlglot.expressions.replace_placeholders": {"tf": 1.7320508075688772}, "sqlglot.expressions.expand": {"tf": 2.23606797749979}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 2}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.Scope.branch": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.Scan.from_expression": {"tf": 1.7320508075688772}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 121, "s": {"docs": {"sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 4, "c": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.func": {"tf": 2}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 5, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.func": {"tf": 2.23606797749979}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_udtf": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 35, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 34}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dataframe.sql.Column.cast": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}}}}}}}}}}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}}, "df": 3, "y": {"docs": {"sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"6": {"4": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1.7320508075688772}}, "df": 2}, "docs": {}, "df": 0}, "docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects": {"tf": 1}}, "df": 2}}, "r": {"docs": {}, "df": 0, "\u00e9": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.helper.flatten": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "s": {"docs": {"sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}}, "df": 6}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1}}}}}}, "g": {"docs": {"sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}}, "df": 6}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 2.449489742783178}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}}, "df": 10, "/": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 15}}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}}, "df": 1}}, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "x": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3.1622776601683795}, "sqlglot.dataframe": {"tf": 3.4641016151377544}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 77}}, "l": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 2, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2}}, "df": 1}}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3, "i": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.Predicate": {"tf": 1}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.to_interval": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}}, "df": 9}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22}, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.lineage.lineage": {"tf": 2}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.PythonExecutor.generate": {"tf": 1}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}}, "df": 8, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}}, "df": 2}}}}}, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.transpile": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 2}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.helper.ensure_list": {"tf": 2}, "sqlglot.helper.ensure_collection": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 3}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse": {"tf": 2}, "sqlglot.parser.Parser.parse_into": {"tf": 2}, "sqlglot.parser.Parser.raise_error": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}}, "df": 55, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "[": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 2}}, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 2.449489742783178}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}}, "df": 11}}}}}}, "b": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}}, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.limit": {"tf": 2.23606797749979}}, "df": 4, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Union.limit": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "o": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {"sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}}, "df": 1, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.errors.ErrorLevel.WARN": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.dialects": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}}, "df": 4}}}}, "s": {"docs": {"sqlglot.parser.Parser.check_errors": {"tf": 1}}, "df": 1}}, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1.7320508075688772}}, "df": 22}}}, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1}}, "df": 3}, "o": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}, "p": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 3}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 10}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 45}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 21}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.7320508075688772}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 5.196152422706632}}, "df": 1}}}, "f": {"docs": {"sqlglot.diff": {"tf": 6.324555320336759}, "sqlglot.expressions.Expression.text": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}}, "df": 4}}}, "n": {"docs": {"sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 2, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 24}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "s": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "x": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}}, "df": 4}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 43, "r": {"docs": {"sqlglot.expressions.condition": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 42}}, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 2, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.7320508075688772}}, "df": 3, "s": {"docs": {"sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 2}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"sqlglot.optimizer.simplify.simplify_not": {"tf": 1}}, "df": 1}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 9, "/": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}}, "df": 1}}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2, "e": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 3, "a": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1.4142135623730951}}, "df": 8, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1.4142135623730951}}, "df": 1}}, "c": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.helper.csv_reader": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"sqlglot": {"tf": 1.7320508075688772}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "d": {"docs": {"sqlglot.helper.while_changing": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 4, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.env.null_if_any": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1}}, "df": 4}, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}}, "df": 2}}}}}}, "f": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 7}, "d": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 7}, "/": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}}, "df": 4, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 6}}}}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 1}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 10, "s": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.alias": {"tf": 1}, "sqlglot.expressions.Expression.copy": {"tf": 1}, "sqlglot.expressions.Expression.depth": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.parent_select": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.unnest": {"tf": 1}, "sqlglot.expressions.Expression.unalias": {"tf": 1}, "sqlglot.expressions.Expression.unnest_operands": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.expressions.Subquery.unnest": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.from_": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.expressions.delete": {"tf": 1}, "sqlglot.expressions.condition": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.cast": {"tf": 1}, "sqlglot.expressions.table_": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.expressions.column_table_names": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.4142135623730951}, "sqlglot.expressions.true": {"tf": 1}, "sqlglot.expressions.false": {"tf": 1}, "sqlglot.expressions.null": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.csv": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.find_new_name": {"tf": 1}, "sqlglot.helper.object_to_dict": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.helper.is_iterable": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.helper.first": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.Scope.tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ctes": {"tf": 1}, "sqlglot.optimizer.scope.Scope.derived_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope.udtfs": {"tf": 1}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.Scope.external_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.unqualified_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.tokens.Tokenizer.tokenize": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 170}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Expression.load": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.to_table": {"tf": 1}, "sqlglot.expressions.to_column": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.serde.load": {"tf": 1}}, "df": 38}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Delete.returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}}, "df": 2}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}}, "df": 3}}}}}}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.simplify.simplify": {"tf": 1}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 12}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}}, "df": 2, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 3}}, "s": {"docs": {"sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 25}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 4, "s": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 4}}}}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 1}}, "df": 11, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}}, "df": 2}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 3}}}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.Column.cast": {"tf": 1}}, "df": 1}}}}}}}, "m": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.pop": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.remove_source": {"tf": 1}}, "df": 12, "d": {"docs": {"sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 4}, "s": {"docs": {"sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.transforms.remove_precision_parameterized_types": {"tf": 1}}, "df": 3}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.simplify.remove_compliments": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 2}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Predicate": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 43}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"1": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}, "docs": {"sqlglot.dataframe": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.helper.camel_to_snake_case": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 10, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}}, "df": 5}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "n": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.helper.count_params": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}}, "df": 10}}}, "o": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1}}, "df": 4, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.helper.flatten": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.4142135623730951}}, "df": 3}}}}}, "u": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.expressions.rename_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.rename_source": {"tf": 1}}, "df": 2}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "o": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {"sqlglot.dataframe": {"tf": 2.449489742783178}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2, "s": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "t": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Expression.root": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.is_root": {"tf": 1}, "sqlglot.optimizer.scope.build_scope": {"tf": 1}}, "df": 5}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.errors.ErrorLevel.RAISE": {"tf": 1}, "sqlglot.errors.ErrorLevel.IMMEDIATE": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 44, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1}, "sqlglot.parser.Parser.check_errors": {"tf": 1}, "sqlglot.parser.Parser.raise_error": {"tf": 1}}, "df": 5}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 40}}}}, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 2}}, "k": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "j": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "w": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 3}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}}, "df": 6, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 2}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}}, "df": 3}}}}, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimizer.optimize": {"tf": 2}}, "df": 3}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "\u00e9": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 4}}}}}, "w": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 21}}, "o": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 2.6457513110645907}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 4.58257569495584}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}, "sqlglot.expressions.subquery": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}, "sqlglot.expressions.replace_children": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope.replace": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}, "sqlglot.parser.Parser.expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}, "sqlglot.tokens.Token.number": {"tf": 1}, "sqlglot.tokens.Token.string": {"tf": 1}, "sqlglot.tokens.Token.identifier": {"tf": 1}, "sqlglot.tokens.Token.var": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}}, "df": 47, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.helper.count_params": {"tf": 1}}, "df": 6}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.executor.context.Context.__init__": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 5}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 2}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.expressions.Func": {"tf": 1.4142135623730951}, "sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.transforms.unalias_group": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1}}, "df": 74}}, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.transforms.eliminate_distinct_on": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 3}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.8284271247461903}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.context.Context": {"tf": 1}}, "df": 5}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2.23606797749979}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2.23606797749979}, "sqlglot.diff": {"tf": 4}, "sqlglot.diff.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.ChangeDistiller": {"tf": 1}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 2.23606797749979}, "sqlglot.expressions": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2.23606797749979}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}}, "df": 50}}, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 3}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lock": {"tf": 2}, "sqlglot.expressions.update": {"tf": 2}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_placeholders": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.7320508075688772}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 1.4142135623730951}}, "df": 20}}, "n": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.renametable_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 3.4641016151377544}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.context.Context": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 52}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.is_string": {"tf": 1}, "sqlglot.expressions.Expression.is_number": {"tf": 1}, "sqlglot.expressions.Expression.is_int": {"tf": 1}, "sqlglot.expressions.Expression.is_star": {"tf": 1}, "sqlglot.expressions.Union.is_star": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.is_star": {"tf": 1}, "sqlglot.expressions.Subquery.is_star": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 42}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}}}, "o": {"docs": {"sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot.executor": {"tf": 2}}, "df": 1}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 5}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2}}, "df": 4}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {"sqlglot.expressions.Condition.not_": {"tf": 1}, "sqlglot.expressions.not_": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1.4142135623730951}}, "df": 11}}}, "s": {"docs": {"sqlglot.helper.ensure_list": {"tf": 1}, "sqlglot.helper.ensure_collection": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 22}, "e": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2.6457513110645907}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 6, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "l": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 2.23606797749979}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 2.449489742783178}, "sqlglot.diff": {"tf": 5.5677643628300215}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_cnf": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_dnf": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 17, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 3}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1.4142135623730951}}, "df": 3}}, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "\u2019": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 5, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2}, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}, "k": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.helper.split_num_words": {"tf": 2.8284271247461903}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.expressions.TimeUnit": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.var": {"tf": 2.449489742783178}, "sqlglot.tokens.Token.var": {"tf": 1.4142135623730951}}, "df": 4, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}}}}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.var": {"tf": 1.4142135623730951}}, "df": 2, "s": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 2.23606797749979}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 1}, "s": {"docs": {"sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 1}}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.append": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.set": {"tf": 1.7320508075688772}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.expressions.convert": {"tf": 1.4142135623730951}, "sqlglot.helper.AutoName": {"tf": 1}, "sqlglot.helper.seq_get": {"tf": 1}, "sqlglot.helper.ensure_list": {"tf": 2.23606797749979}, "sqlglot.helper.ensure_collection": {"tf": 2.23606797749979}, "sqlglot.helper.split_num_words": {"tf": 2}, "sqlglot.helper.is_iterable": {"tf": 2}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1.7320508075688772}}, "df": 16, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}, "sqlglot.expressions.values": {"tf": 2.8284271247461903}, "sqlglot.helper.split_num_words": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 11}}}}}, "e": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}}, "df": 2, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4}, "s": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1}}, "df": 2}}}}, "s": {"docs": {"sqlglot.executor.context.Context": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}, "i": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.expressions.Expression.dfs": {"tf": 1}, "sqlglot.expressions.Expression.bfs": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 7}}, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}}, "df": 3}}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}}, "df": 2}}}, "\u00e4": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 2.23606797749979}, "sqlglot.schema.AbstractMappingSchema": {"tf": 2.23606797749979}}, "df": 2}}, "g": {"docs": {"sqlglot.schema": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.schema.Schema.supported_table_args": {"tf": 1}}, "df": 6, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.7320508075688772}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.7320508075688772}}, "df": 5, "[": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 2.23606797749979}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.dfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.bfs": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.transforms.preprocess": {"tf": 1.4142135623730951}, "sqlglot.transforms.delegate": {"tf": 1.4142135623730951}}, "df": 38}}, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3, "d": {"docs": {"sqlglot.pretty": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "s": {"docs": {"sqlglot.generator.Generator.generate": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.expressions.Tag": {"tf": 1}}, "df": 5}}, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Func": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1}}}}}}}, "t": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.table_name": {"tf": 1}, "sqlglot.helper.dict_depth": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_table": {"tf": 1}, "sqlglot.optimizer.scope.Scope.source_columns": {"tf": 1}, "sqlglot.schema.Schema.column_names": {"tf": 1}, "sqlglot.schema.Schema.get_column_type": {"tf": 1}, "sqlglot.schema.MappingSchema.column_names": {"tf": 1}, "sqlglot.schema.MappingSchema.get_column_type": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 15, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 3}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "o": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2}}}}, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "m": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "t": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 5.656854249492381}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.replace": {"tf": 3}, "sqlglot.expressions.Expression.assert_is": {"tf": 2.449489742783178}, "sqlglot.expressions.Condition.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Predicate": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.intersect": {"tf": 2.449489742783178}, "sqlglot.expressions.Unionable.except_": {"tf": 2.449489742783178}, "sqlglot.expressions.Column.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Delete.delete": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.returning": {"tf": 1.7320508075688772}, "sqlglot.expressions.Identifier.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Literal.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Join.on": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.using": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Union.select": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.group_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.order_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.sort_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.cluster_by": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.limit": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.offset": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lateral": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.join": {"tf": 3}, "sqlglot.expressions.Select.where": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.having": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.distinct": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.ctas": {"tf": 1.7320508075688772}, "sqlglot.expressions.Select.lock": {"tf": 2.449489742783178}, "sqlglot.expressions.Subquery.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Star.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.Cast.output_name": {"tf": 3.4641016151377544}, "sqlglot.expressions.maybe_parse": {"tf": 2.449489742783178}, "sqlglot.expressions.union": {"tf": 1.7320508075688772}, "sqlglot.expressions.intersect": {"tf": 1.7320508075688772}, "sqlglot.expressions.except_": {"tf": 1.7320508075688772}, "sqlglot.expressions.select": {"tf": 1.7320508075688772}, "sqlglot.expressions.from_": {"tf": 1.7320508075688772}, "sqlglot.expressions.update": {"tf": 2.23606797749979}, "sqlglot.expressions.delete": {"tf": 2.23606797749979}, "sqlglot.expressions.condition": {"tf": 3.4641016151377544}, "sqlglot.expressions.and_": {"tf": 1.7320508075688772}, "sqlglot.expressions.or_": {"tf": 1.7320508075688772}, "sqlglot.expressions.not_": {"tf": 1.7320508075688772}, "sqlglot.expressions.alias_": {"tf": 2.449489742783178}, "sqlglot.expressions.subquery": {"tf": 1.7320508075688772}, "sqlglot.expressions.cast": {"tf": 1.7320508075688772}, "sqlglot.expressions.values": {"tf": 1.7320508075688772}, "sqlglot.expressions.var": {"tf": 2.449489742783178}, "sqlglot.expressions.column_table_names": {"tf": 2.449489742783178}, "sqlglot.expressions.table_name": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_tables": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_placeholders": {"tf": 2.449489742783178}, "sqlglot.expressions.expand": {"tf": 2.449489742783178}, "sqlglot.expressions.func": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 3}, "sqlglot.helper.is_iterable": {"tf": 2.449489742783178}, "sqlglot.helper.flatten": {"tf": 2.449489742783178}, "sqlglot.helper.dict_depth": {"tf": 3.872983346207417}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 4}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 3.4641016151377544}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 3.4641016151377544}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3.872983346207417}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 3.4641016151377544}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 2.449489742783178}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 3}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 3}, "sqlglot.optimizer.normalize.normalize": {"tf": 3}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 3}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.449489742783178}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 3.4641016151377544}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 3.4641016151377544}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 3}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 3.872983346207417}, "sqlglot.optimizer.simplify.simplify": {"tf": 3}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 3}, "sqlglot.time.format_time": {"tf": 1.7320508075688772}, "sqlglot.transforms.unalias_group": {"tf": 2.449489742783178}, "sqlglot.trie.new_trie": {"tf": 1.7320508075688772}, "sqlglot.trie.in_trie": {"tf": 3}}, "df": 98}, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 2.6457513110645907}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}, "sqlglot.transforms.unalias_group": {"tf": 2}}, "df": 13, "b": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 2.23606797749979}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1.7320508075688772}, "sqlglot.lineage.lineage": {"tf": 1}}, "df": 3}}, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}}, "df": 1}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "n": {"docs": {"sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.generator.Generator.generate": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.helper.while_changing": {"tf": 1}, "sqlglot.helper.tsort": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.should_identify": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver.get_source_columns": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.time.format_time": {"tf": 1}}, "df": 42}}}, "t": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "z": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.helper.open_file": {"tf": 1}}, "df": 1}}}}, "q": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}, "c": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 2.8284271247461903}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}}, "df": 6}, "d": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}, "y": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 3.7416573867739413}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 28, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "u": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 14.594519519326424}, "sqlglot.dataframe": {"tf": 10.392304845413264}, "sqlglot.dialects": {"tf": 5.385164807134504}, "sqlglot.diff": {"tf": 5.830951894845301}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.executor": {"tf": 3.7416573867739413}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.assert_is": {"tf": 2}, "sqlglot.expressions.Condition.and_": {"tf": 2}, "sqlglot.expressions.Condition.or_": {"tf": 2}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Unionable.union": {"tf": 2}, "sqlglot.expressions.Unionable.intersect": {"tf": 2}, "sqlglot.expressions.Unionable.except_": {"tf": 2}, "sqlglot.expressions.Column.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.delete": {"tf": 1.4142135623730951}, "sqlglot.expressions.Delete.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Delete.returning": {"tf": 2.449489742783178}, "sqlglot.expressions.Identifier.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Literal.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.on": {"tf": 2}, "sqlglot.expressions.Join.using": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2.449489742783178}, "sqlglot.expressions.Subqueryable.with_": {"tf": 2.8284271247461903}, "sqlglot.expressions.Union.limit": {"tf": 2}, "sqlglot.expressions.Union.select": {"tf": 2}, "sqlglot.expressions.Select.from_": {"tf": 2}, "sqlglot.expressions.Select.group_by": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.order_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.sort_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.cluster_by": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.limit": {"tf": 2}, "sqlglot.expressions.Select.offset": {"tf": 2}, "sqlglot.expressions.Select.select": {"tf": 2}, "sqlglot.expressions.Select.lateral": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.join": {"tf": 5.477225575051661}, "sqlglot.expressions.Select.where": {"tf": 2.8284271247461903}, "sqlglot.expressions.Select.having": {"tf": 3.1622776601683795}, "sqlglot.expressions.Select.distinct": {"tf": 2}, "sqlglot.expressions.Select.ctas": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.lock": {"tf": 4.47213595499958}, "sqlglot.expressions.Subquery.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Star.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Alias.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.Cast.output_name": {"tf": 2.449489742783178}, "sqlglot.expressions.maybe_parse": {"tf": 2}, "sqlglot.expressions.union": {"tf": 2}, "sqlglot.expressions.intersect": {"tf": 2}, "sqlglot.expressions.except_": {"tf": 2}, "sqlglot.expressions.select": {"tf": 2.449489742783178}, "sqlglot.expressions.from_": {"tf": 2.449489742783178}, "sqlglot.expressions.update": {"tf": 4}, "sqlglot.expressions.delete": {"tf": 2}, "sqlglot.expressions.condition": {"tf": 3.1622776601683795}, "sqlglot.expressions.and_": {"tf": 2.449489742783178}, "sqlglot.expressions.or_": {"tf": 2.449489742783178}, "sqlglot.expressions.not_": {"tf": 2}, "sqlglot.expressions.values": {"tf": 1.4142135623730951}, "sqlglot.expressions.column_table_names": {"tf": 1.4142135623730951}, "sqlglot.expressions.table_name": {"tf": 1.4142135623730951}, "sqlglot.expressions.replace_tables": {"tf": 2.449489742783178}, "sqlglot.expressions.replace_placeholders": {"tf": 2.8284271247461903}, "sqlglot.expressions.expand": {"tf": 2.449489742783178}, "sqlglot.expressions.func": {"tf": 2.449489742783178}, "sqlglot.helper.split_num_words": {"tf": 3.4641016151377544}, "sqlglot.helper.is_iterable": {"tf": 1.4142135623730951}, "sqlglot.helper.flatten": {"tf": 1.4142135623730951}, "sqlglot.helper.dict_depth": {"tf": 3.1622776601683795}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 3.1622776601683795}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 2}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalization_distance": {"tf": 1.4142135623730951}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1.4142135623730951}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 2.8284271247461903}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 2}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify": {"tf": 1.4142135623730951}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.time.format_time": {"tf": 2.449489742783178}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2.449489742783178}, "sqlglot.trie.in_trie": {"tf": 3.4641016151377544}}, "df": 91, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 2}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 2}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 2}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 2}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 2}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 2}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 2}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 2}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 2}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 2}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 2}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 2}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 2}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 2}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 2}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 2}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 2}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 2}, "sqlglot.executor.python.Python.Generator": {"tf": 2}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 2}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 26, "d": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.diff.diff": {"tf": 2}, "sqlglot.expressions.maybe_parse": {"tf": 1}, "sqlglot.expressions.to_identifier": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1.4142135623730951}, "sqlglot.expressions.column": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 7}, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}}, "df": 25}}}, "k": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}, "sqlglot.transforms.eliminate_qualify": {"tf": 1.7320508075688772}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.lineage.lineage": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1.4142135623730951}, "sqlglot.optimizer.qualify_columns.validate_qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1.4142135623730951}}, "df": 4}}}}}}}}}, "y": {"docs": {"sqlglot": {"tf": 3.3166247903554}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 3.4641016151377544}, "sqlglot.expressions.Expression.replace": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Predicate": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 3.1622776601683795}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Kwarg": {"tf": 1}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 1}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 2}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 3}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.8284271247461903}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2}, "sqlglot.optimizer.scope.Scope": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.8284271247461903}, "sqlglot.planner.Step.from_expression": {"tf": 2.8284271247461903}, "sqlglot.planner.Scan.from_expression": {"tf": 2.8284271247461903}, "sqlglot.planner.SetOperation.from_expression": {"tf": 2.8284271247461903}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 41, "o": {"docs": {}, "df": 0, "u": {"docs": {"sqlglot": {"tf": 2.23606797749979}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 2}, "sqlglot.executor": {"tf": 2}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}}, "df": 7, "r": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 4}}}, "y": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "y": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1}, "sqlglot.expressions.Expression.flatten": {"tf": 1}, "sqlglot.helper.csv_reader": {"tf": 1}, "sqlglot.helper.flatten": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.Scope.traverse": {"tf": 1}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}}, "df": 8}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot": {"tf": 1}}, "df": 1, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.dialects.dialect.create_with_partitions_sql": {"tf": 1}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}}, "df": 7}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "y": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.diff": {"tf": 3.7416573867739413}}, "df": 1, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}}, "df": 1}}}}}}}}, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1.4142135623730951}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 4, "e": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor.context.Context": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}}, "df": 2}, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 19}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "q": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.values": {"tf": 1}}, "df": 4, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dialects.dialect.format_time_lambda": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.optimizer.qualify_columns.Resolver": {"tf": 1}}, "df": 3, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "f": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.expressions.condition": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 4}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.with_properties": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 4.69041575982343}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.qualify_columns.qualify_columns": {"tf": 1}, "sqlglot.optimizer.qualify_tables.qualify_tables": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}}, "df": 9, "n": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.executor": {"tf": 2}, "sqlglot.expressions.Select.having": {"tf": 1.7320508075688772}}, "df": 2}}}}, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.Insert": {"tf": 1}, "sqlglot.diff.Remove": {"tf": 1}, "sqlglot.diff.Move": {"tf": 1}, "sqlglot.diff.Update": {"tf": 1}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.expressions.Expression.output_name": {"tf": 1}, "sqlglot.expressions.Column.output_name": {"tf": 1}, "sqlglot.expressions.Identifier.output_name": {"tf": 1}, "sqlglot.expressions.Literal.output_name": {"tf": 1}, "sqlglot.expressions.Subquery.output_name": {"tf": 1}, "sqlglot.expressions.Star.output_name": {"tf": 1}, "sqlglot.expressions.Alias.output_name": {"tf": 1}, "sqlglot.expressions.Cast.output_name": {"tf": 1}, "sqlglot.expressions.alias_": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 19, "n": {"docs": {"sqlglot.diff.Keep": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2, "\u2019": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "h": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 2}, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.union": {"tf": 1.4142135623730951}, "sqlglot.expressions.intersect": {"tf": 1.4142135623730951}, "sqlglot.expressions.except_": {"tf": 1.4142135623730951}}, "df": 3, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1}}, "df": 2}}, "w": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "f": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "u": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "\u2019": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.transforms.eliminate_qualify": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "v": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "j": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1}}}}}}}}}, ":": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 1}}}}}}}}}}}, "m": {"docs": {"sqlglot.expressions.Matches": {"tf": 1}}, "df": 1, "l": {"docs": {"sqlglot.dataframe.sql.DataFrame.persist": {"tf": 1}, "sqlglot.lineage.LineageHTML": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 3}}}}, "m": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 3, "a": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.values_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1}}, "df": 9, "b": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}}, "df": 1}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 2}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 1}}, "df": 6, "s": {"docs": {"sqlglot.dialects": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.env.null_if_any": {"tf": 1}, "sqlglot.optimizer.lower_identities.lower_identities": {"tf": 1}}, "df": 4}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}, "p": {"docs": {"sqlglot.expressions.Func": {"tf": 1}}, "df": 1, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1.4142135623730951}, "sqlglot.executor.table.Tables": {"tf": 1.7320508075688772}, "sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.replace_tables": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.4142135623730951}, "sqlglot.lineage.lineage": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.scope.Scope": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.cte_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.ref_count": {"tf": 1}, "sqlglot.schema.Schema.add_table": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema": {"tf": 1.7320508075688772}, "sqlglot.schema.MappingSchema.add_table": {"tf": 1.7320508075688772}, "sqlglot.time.format_time": {"tf": 1.4142135623730951}}, "df": 39, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 22}, "[": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.replace_tables": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}}, "df": 2}}}, "s": {"docs": {"sqlglot.expressions.Expression": {"tf": 1}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 3, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 6}, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.parser.Parser.validate_expression": {"tf": 1}}, "df": 2}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.diff": {"tf": 2}, "sqlglot.expressions.Expression.find": {"tf": 1}, "sqlglot.expressions.Expression.find_all": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find_all": {"tf": 1.4142135623730951}}, "df": 7, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.values_sql": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.expressions.Expression.find": {"tf": 1.4142135623730951}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1.4142135623730951}}, "df": 6}, "d": {"docs": {"sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.diff": {"tf": 7.14142842854285}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.expressions.Expression.find_ancestor": {"tf": 1}, "sqlglot.expressions.Matches": {"tf": 1}, "sqlglot.optimizer.scope.Scope.find": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot.diff": {"tf": 3}, "sqlglot.diff.diff": {"tf": 1}}, "df": 2}}}}}}, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "h": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "x": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1.7320508075688772}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1.7320508075688772}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1.7320508075688772}, "sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor.python.Python.Generator": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.normalize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 43, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}}, "df": 40}}, "a": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot.optimizer.normalize.normalize": {"tf": 1}}, "df": 1}}}}}, "r": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.diff.ChangeDistiller": {"tf": 1}}, "df": 2, "e": {"docs": {}, "df": 0, "z": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "o": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "e": {"docs": {"sqlglot.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 2, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "a": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dataframe": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}, "l": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.canonicalize.canonicalize": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 46, "s": {"docs": {"sqlglot.helper.count_params": {"tf": 1}, "sqlglot.transforms.delegate": {"tf": 1}}, "df": 2}}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}}, "df": 1}}}}}, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1.4142135623730951}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser": {"tf": 1.4142135623730951}}, "df": 19, "s": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Parser": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Parser": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Parser": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Parser": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Parser": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Parser": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Parser": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Parser": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Parser": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Parser": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Parser": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Parser": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Parser": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Parser": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Parser": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Parser": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Parser": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression.error_messages": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.parser.Parser": {"tf": 1}, "sqlglot.parser.Parser.parse": {"tf": 1}, "sqlglot.parser.Parser.parse_into": {"tf": 1}}, "df": 44}}}}}}, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}}, "df": 1, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}}, "df": 1, "s": {"docs": {"sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}}, "df": 25}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.Expression.transform": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.expressions.Expression.transform": {"tf": 1}, "sqlglot.expressions.Delete.delete": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Delete.returning": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.select": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.select": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.distinct": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}}, "df": 22}}}}}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.expressions": {"tf": 1}, "sqlglot.helper.subclasses": {"tf": 1.4142135623730951}}, "df": 4}}}, "e": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.helper.open_file": {"tf": 1}}, "df": 23, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.dataframe": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.expressions.to_interval": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 3.1622776601683795}, "sqlglot.diff.diff": {"tf": 1}}, "df": 3, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2}}, "df": 1}}}}}, "d": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}}, "df": 1}}}, "z": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "r": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.6457513110645907}, "sqlglot.executor": {"tf": 2}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.helper.apply_index_offset": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 8}, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 5, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1}}, "df": 3}}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 1}}}, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}}, "df": 2, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "e": {"docs": {"sqlglot.executor": {"tf": 1.7320508075688772}, "sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Delete.where": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.select": {"tf": 1}, "sqlglot.expressions.and_": {"tf": 1}, "sqlglot.expressions.or_": {"tf": 1}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 12}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.diff.diff": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}}, "df": 5}}, "c": {"docs": {}, "df": 0, "h": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}}, "df": 2}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1}}, "df": 2}}}}}}}, "y": {"docs": {"sqlglot.diff": {"tf": 2.449489742783178}, "sqlglot.executor": {"tf": 2.23606797749979}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.delete": {"tf": 1.4142135623730951}}, "df": 4, "s": {"docs": {}, "df": 0, "q": {"docs": {}, "df": 0, "l": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.parse": {"tf": 1}, "sqlglot.parse_one": {"tf": 1}, "sqlglot.transpile": {"tf": 1.4142135623730951}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.executor.execute": {"tf": 1}, "sqlglot.expressions.Expression.sql": {"tf": 1}, "sqlglot.expressions.Select.lock": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 1}}, "df": 9}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 2.6457513110645907}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "x": {"docs": {"sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.dataframe.sql.DataFrame.orderBy": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.sort": {"tf": 1}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dialects.snowflake.Snowflake.Generator.select_sql": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 1}, "sqlglot.planner.Step.from_expression": {"tf": 1}, "sqlglot.planner.Scan.from_expression": {"tf": 1}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 8}}}, "n": {"docs": {"sqlglot.diff": {"tf": 1.4142135623730951}, "sqlglot.helper.split_num_words": {"tf": 1}}, "df": 2, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.helper.split_num_words": {"tf": 1}}, "df": 1}}}}}, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}}, "l": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.schema.MappingSchema": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.executor": {"tf": 2.449489742783178}, "sqlglot.expressions.Join.on": {"tf": 2.23606797749979}, "sqlglot.expressions.Join.using": {"tf": 2.23606797749979}, "sqlglot.expressions.Select.join": {"tf": 3.7416573867739413}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 2.23606797749979}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.scope.Scope.selected_sources": {"tf": 1}, "sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}, "sqlglot.planner.Step.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.Scan.from_expression": {"tf": 1.4142135623730951}, "sqlglot.planner.SetOperation.from_expression": {"tf": 1.4142135623730951}}, "df": 17, "s": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.executor": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimize_joins.reorder_joins": {"tf": 1}, "sqlglot.optimizer.optimize_joins.normalize": {"tf": 1}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 1}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 1.4142135623730951}}, "df": 9}, "h": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.join_hints": {"tf": 1}}, "df": 1}}}}}}, "h": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "y": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "b": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}, "u": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dataframe.sql.DataFrame.fillna": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator.datatype_sql": {"tf": 1}, "sqlglot.diff": {"tf": 2.23606797749979}, "sqlglot.executor": {"tf": 2.23606797749979}}, "df": 5}}, "n": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "k": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "a": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}, "v": {"docs": {}, "df": 0, "m": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"sqlglot.lineage.LineageHTML": {"tf": 1}}, "df": 1, "o": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.expressions.Expression.dump": {"tf": 1}, "sqlglot.serde.dump": {"tf": 1}}, "df": 2}}}}, "x": {"docs": {"sqlglot": {"tf": 4.898979485566356}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor": {"tf": 4.358898943540674}, "sqlglot.expressions.Expression.replace": {"tf": 1}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Condition.not_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Predicate": {"tf": 1.7320508075688772}, "sqlglot.expressions.Delete.where": {"tf": 2}, "sqlglot.expressions.Join.on": {"tf": 1.4142135623730951}, "sqlglot.expressions.Join.using": {"tf": 1.4142135623730951}, "sqlglot.expressions.Subqueryable.subquery": {"tf": 2}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.from_": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.group_by": {"tf": 2}, "sqlglot.expressions.Select.order_by": {"tf": 2}, "sqlglot.expressions.Select.sort_by": {"tf": 2}, "sqlglot.expressions.Select.cluster_by": {"tf": 2}, "sqlglot.expressions.Select.limit": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.offset": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.where": {"tf": 2.449489742783178}, "sqlglot.expressions.Select.having": {"tf": 2}, "sqlglot.expressions.Select.distinct": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.ctas": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lock": {"tf": 2.8284271247461903}, "sqlglot.expressions.Tag": {"tf": 1}, "sqlglot.expressions.maybe_parse": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.condition": {"tf": 2}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.subquery": {"tf": 2}, "sqlglot.expressions.cast": {"tf": 1.4142135623730951}, "sqlglot.expressions.var": {"tf": 2}, "sqlglot.expressions.expand": {"tf": 1.7320508075688772}, "sqlglot.optimizer.annotate_types.annotate_types": {"tf": 1.7320508075688772}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 2.23606797749979}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 2.23606797749979}, "sqlglot.optimizer.expand_laterals.expand_laterals": {"tf": 2.23606797749979}, "sqlglot.optimizer.expand_multi_table_selects.expand_multi_table_selects": {"tf": 1.4142135623730951}, "sqlglot.optimizer.merge_subqueries.merge_subqueries": {"tf": 2.8284271247461903}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.449489742783178}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2}, "sqlglot.optimizer.pushdown_predicates.pushdown_predicates": {"tf": 2}, "sqlglot.optimizer.pushdown_projections.pushdown_projections": {"tf": 2.23606797749979}, "sqlglot.optimizer.scope.Scope": {"tf": 2.6457513110645907}, "sqlglot.optimizer.scope.Scope.subqueries": {"tf": 1}, "sqlglot.optimizer.scope.Scope.selects": {"tf": 1}, "sqlglot.optimizer.scope.traverse_scope": {"tf": 2}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.7320508075688772}, "sqlglot.optimizer.simplify.simplify_not": {"tf": 2}, "sqlglot.optimizer.unnest_subqueries.unnest_subqueries": {"tf": 2.449489742783178}, "sqlglot.planner.Step.from_expression": {"tf": 4}, "sqlglot.planner.Scan.from_expression": {"tf": 4}, "sqlglot.planner.SetOperation.from_expression": {"tf": 4}, "sqlglot.transforms.unalias_group": {"tf": 1.4142135623730951}}, "df": 63, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}, "z": {"docs": {"sqlglot": {"tf": 3}, "sqlglot.expressions.Expression.assert_is": {"tf": 1.4142135623730951}, "sqlglot.expressions.Union.select": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.lateral": {"tf": 1.4142135623730951}, "sqlglot.expressions.Select.join": {"tf": 1.4142135623730951}, "sqlglot.expressions.update": {"tf": 1.4142135623730951}, "sqlglot.expressions.and_": {"tf": 1.4142135623730951}, "sqlglot.expressions.or_": {"tf": 1.4142135623730951}, "sqlglot.expressions.expand": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_ctes.eliminate_ctes": {"tf": 1.4142135623730951}, "sqlglot.optimizer.eliminate_subqueries.eliminate_subqueries": {"tf": 1.4142135623730951}, "sqlglot.optimizer.normalize.normalize": {"tf": 1.7320508075688772}, "sqlglot.optimizer.normalize.distributive_law": {"tf": 2.23606797749979}, "sqlglot.optimizer.optimize_joins.optimize_joins": {"tf": 2.449489742783178}, "sqlglot.optimizer.simplify.rewrite_between": {"tf": 1.4142135623730951}}, "df": 15, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "o": {"docs": {"sqlglot.executor": {"tf": 1}}, "df": 1}}}}, "k": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "p": {"docs": {"sqlglot": {"tf": 1}, "sqlglot.diff": {"tf": 3.605551275463989}, "sqlglot.diff.diff": {"tf": 1.7320508075688772}, "sqlglot.executor": {"tf": 1}}, "df": 4}}, "y": {"docs": {"sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression": {"tf": 2}, "sqlglot.expressions.Expression.this": {"tf": 1}, "sqlglot.expressions.Expression.expression": {"tf": 1}, "sqlglot.expressions.Expression.expressions": {"tf": 1}, "sqlglot.expressions.Expression.text": {"tf": 1}, "sqlglot.expressions.Expression.append": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.set": {"tf": 1.4142135623730951}, "sqlglot.expressions.Expression.walk": {"tf": 1}, "sqlglot.generator.Generator": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.join_condition": {"tf": 1.4142135623730951}, "sqlglot.optimizer.scope.walk_in_scope": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}, "sqlglot.trie.in_trie": {"tf": 2}}, "df": 34, "w": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.executor": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}, "sqlglot.trie.new_trie": {"tf": 1}, "sqlglot.trie.in_trie": {"tf": 1}}, "df": 5, "s": {"docs": {"sqlglot": {"tf": 1.4142135623730951}, "sqlglot.dialects": {"tf": 1.4142135623730951}, "sqlglot.trie.new_trie": {"tf": 2}}, "df": 3}}}}}, "s": {"docs": {"sqlglot.dataframe": {"tf": 1}, "sqlglot.dialects.bigquery.BigQuery.Generator": {"tf": 1}, "sqlglot.dialects.clickhouse.ClickHouse.Generator": {"tf": 1}, "sqlglot.dialects.databricks.Databricks.Generator": {"tf": 1}, "sqlglot.dialects.drill.Drill.Generator": {"tf": 1}, "sqlglot.dialects.duckdb.DuckDB.Generator": {"tf": 1}, "sqlglot.dialects.hive.Hive.Generator": {"tf": 1}, "sqlglot.dialects.mysql.MySQL.Generator": {"tf": 1}, "sqlglot.dialects.oracle.Oracle.Generator": {"tf": 1}, "sqlglot.dialects.postgres.Postgres.Generator": {"tf": 1}, "sqlglot.dialects.presto.Presto.Generator": {"tf": 1}, "sqlglot.dialects.redshift.Redshift.Generator": {"tf": 1}, "sqlglot.dialects.snowflake.Snowflake.Generator": {"tf": 1}, "sqlglot.dialects.spark.Spark.Generator": {"tf": 1}, "sqlglot.dialects.sqlite.SQLite.Generator": {"tf": 1}, "sqlglot.dialects.starrocks.StarRocks.Generator": {"tf": 1}, "sqlglot.dialects.tableau.Tableau.Generator": {"tf": 1}, "sqlglot.dialects.teradata.Teradata.Generator": {"tf": 1}, "sqlglot.dialects.trino.Trino.Generator": {"tf": 1}, "sqlglot.dialects.tsql.TSQL.Generator": {"tf": 1}, "sqlglot.diff": {"tf": 1}, "sqlglot.executor.python.Python.Generator": {"tf": 1}, "sqlglot.expressions.Expression": {"tf": 1.7320508075688772}, "sqlglot.generator.Generator": {"tf": 1}}, "df": 24}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1}}, "df": 2}}}}, "d": {"docs": {"sqlglot.trie.new_trie": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {"sqlglot": {"tf": 1}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "t": {"docs": {"sqlglot.optimizer.scope.Scope.replace": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.dataframe": {"tf": 1.7320508075688772}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1, "s": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "w": {"docs": {"sqlglot.diff": {"tf": 1}, "sqlglot.optimizer.eliminate_joins.eliminate_joins": {"tf": 1}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1}}, "df": 3, "l": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"sqlglot.diff": {"tf": 1}}, "df": 1}}}}}, "n": {"docs": {"sqlglot.diff.diff": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {"sqlglot.executor.table.Tables": {"tf": 1.4142135623730951}, "sqlglot.schema.AbstractMappingSchema": {"tf": 1.4142135623730951}}, "df": 2}, "w": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "g": {"docs": {"sqlglot.expressions.Kwarg": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {"sqlglot.expressions.Condition.and_": {"tf": 1}, "sqlglot.expressions.Condition.or_": {"tf": 1}, "sqlglot.expressions.Unionable.union": {"tf": 1}, "sqlglot.expressions.Unionable.intersect": {"tf": 1}, "sqlglot.expressions.Unionable.except_": {"tf": 1}, "sqlglot.expressions.Join.on": {"tf": 1}, "sqlglot.expressions.Join.using": {"tf": 1}, "sqlglot.expressions.Subqueryable.with_": {"tf": 1}, "sqlglot.expressions.Union.limit": {"tf": 1}, "sqlglot.expressions.Select.from_": {"tf": 1}, "sqlglot.expressions.Select.group_by": {"tf": 1}, "sqlglot.expressions.Select.order_by": {"tf": 1}, "sqlglot.expressions.Select.sort_by": {"tf": 1}, "sqlglot.expressions.Select.cluster_by": {"tf": 1}, "sqlglot.expressions.Select.limit": {"tf": 1}, "sqlglot.expressions.Select.offset": {"tf": 1}, "sqlglot.expressions.Select.lateral": {"tf": 1}, "sqlglot.expressions.Select.join": {"tf": 1}, "sqlglot.expressions.Select.where": {"tf": 1}, "sqlglot.expressions.Select.having": {"tf": 1}, "sqlglot.expressions.Select.ctas": {"tf": 1}, "sqlglot.expressions.union": {"tf": 1}, "sqlglot.expressions.intersect": {"tf": 1}, "sqlglot.expressions.except_": {"tf": 1}, "sqlglot.expressions.replace_placeholders": {"tf": 1}, "sqlglot.expressions.func": {"tf": 1.7320508075688772}, "sqlglot.optimizer.optimizer.optimize": {"tf": 1.4142135623730951}, "sqlglot.parser.Parser.expression": {"tf": 1}}, "df": 28}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/docs/sqlglot.html b/docs/sqlglot.html index 7b69afa..d579823 100644 --- a/docs/sqlglot.html +++ b/docs/sqlglot.html @@ -701,7 +701,7 @@ </span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="n">T</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"T"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="n">Expression</span><span class="p">)</span> </span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> </span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="n">__version__</span> <span class="o">=</span> <span class="s2">"11.3.5"</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="n">__version__</span> <span class="o">=</span> <span class="s2">"11.4.0"</span> </span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> </span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="n">pretty</span> <span class="o">=</span> <span class="kc">False</span> </span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd">"""Whether to format generated SQL by default."""</span> diff --git a/docs/sqlglot/dataframe/sql.html b/docs/sqlglot/dataframe/sql.html index a95f247..765bcb7 100644 --- a/docs/sqlglot/dataframe/sql.html +++ b/docs/sqlglot/dataframe/sql.html @@ -608,7 +608,7 @@ <div class="attr function"> <span class="def">def</span> - <span class="name">createDataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040242697968'</span><span class="o">></span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040242697968'</span><span class="o">></span><span class="p">],</span> <span class="n">Tuple</span><span class="p">]]</span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040242889392'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">samplingRatio</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">verifySchema</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> + <span class="name">createDataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">data</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431323699648'</span><span class="o">></span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431323699648'</span><span class="o">></span><span class="p">],</span> <span class="n">Tuple</span><span class="p">]]</span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322449088'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">samplingRatio</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">float</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">verifySchema</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> <label class="view-source-button" for="SparkSession.createDataFrame-view-source"><span>View Source</span></label> @@ -988,7 +988,7 @@ </span><span id="DataFrame-300"><a href="#DataFrame-300"><span class="linenos">300</span></a> <span class="k">for</span> <span class="n">expression_type</span><span class="p">,</span> <span class="n">select_expression</span> <span class="ow">in</span> <span class="n">select_expressions</span><span class="p">:</span> </span><span id="DataFrame-301"><a href="#DataFrame-301"><span class="linenos">301</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">select_expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">replace_id_value</span><span class="p">,</span> <span class="n">replacement_mapping</span><span class="p">)</span> </span><span id="DataFrame-302"><a href="#DataFrame-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="n">optimize</span><span class="p">:</span> -</span><span id="DataFrame-303"><a href="#DataFrame-303"><span class="linenos">303</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">optimize_func</span><span class="p">(</span><span class="n">select_expression</span><span class="p">)</span> +</span><span id="DataFrame-303"><a href="#DataFrame-303"><span class="linenos">303</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">optimize_func</span><span class="p">(</span><span class="n">select_expression</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="s2">"always"</span><span class="p">)</span> </span><span id="DataFrame-304"><a href="#DataFrame-304"><span class="linenos">304</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">_replace_cte_names_with_hashes</span><span class="p">(</span><span class="n">select_expression</span><span class="p">)</span> </span><span id="DataFrame-305"><a href="#DataFrame-305"><span class="linenos">305</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="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">Cache</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Drop</span><span class="p">]</span> </span><span id="DataFrame-306"><a href="#DataFrame-306"><span class="linenos">306</span></a> <span class="k">if</span> <span class="n">expression_type</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cache</span><span class="p">:</span> @@ -1476,7 +1476,7 @@ <input id="DataFrame.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> - <span class="name">DataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">spark</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040247404352'</span><span class="o">></span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Select">sqlglot.expressions.Select</a></span>,</span><span class="param"> <span class="n">branch_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sequence_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">last_op</span><span class="p">:</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">dataframe</span><span class="o">.</span><span class="n">sql</span><span class="o">.</span><span class="n">operations</span><span class="o">.</span><span class="n">Operation</span> <span class="o">=</span> <span class="o"><</span><span class="n">Operation</span><span class="o">.</span><span class="n">INIT</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="o">></span>,</span><span class="param"> <span class="n">pending_hints</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">output_expression_container</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040245654720'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span>)</span> + <span class="name">DataFrame</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">spark</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431327125104'</span><span class="o">></span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Select">sqlglot.expressions.Select</a></span>,</span><span class="param"> <span class="n">branch_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sequence_id</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">last_op</span><span class="p">:</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">dataframe</span><span class="o">.</span><span class="n">sql</span><span class="o">.</span><span class="n">operations</span><span class="o">.</span><span class="n">Operation</span> <span class="o">=</span> <span class="o"><</span><span class="n">Operation</span><span class="o">.</span><span class="n">INIT</span><span class="p">:</span> <span class="o">-</span><span class="mi">1</span><span class="o">></span>,</span><span class="param"> <span class="n">pending_hints</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">output_expression_container</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431327032656'</span><span class="o">></span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span>)</span> <label class="view-source-button" for="DataFrame.__init__-view-source"><span>View Source</span></label> @@ -1525,7 +1525,7 @@ </span><span id="DataFrame.sql-300"><a href="#DataFrame.sql-300"><span class="linenos">300</span></a> <span class="k">for</span> <span class="n">expression_type</span><span class="p">,</span> <span class="n">select_expression</span> <span class="ow">in</span> <span class="n">select_expressions</span><span class="p">:</span> </span><span id="DataFrame.sql-301"><a href="#DataFrame.sql-301"><span class="linenos">301</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">select_expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">replace_id_value</span><span class="p">,</span> <span class="n">replacement_mapping</span><span class="p">)</span> </span><span id="DataFrame.sql-302"><a href="#DataFrame.sql-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="n">optimize</span><span class="p">:</span> -</span><span id="DataFrame.sql-303"><a href="#DataFrame.sql-303"><span class="linenos">303</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">optimize_func</span><span class="p">(</span><span class="n">select_expression</span><span class="p">)</span> +</span><span id="DataFrame.sql-303"><a href="#DataFrame.sql-303"><span class="linenos">303</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">optimize_func</span><span class="p">(</span><span class="n">select_expression</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="s2">"always"</span><span class="p">)</span> </span><span id="DataFrame.sql-304"><a href="#DataFrame.sql-304"><span class="linenos">304</span></a> <span class="n">select_expression</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">_replace_cte_names_with_hashes</span><span class="p">(</span><span class="n">select_expression</span><span class="p">)</span> </span><span id="DataFrame.sql-305"><a href="#DataFrame.sql-305"><span class="linenos">305</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="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">Cache</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Drop</span><span class="p">]</span> </span><span id="DataFrame.sql-306"><a href="#DataFrame.sql-306"><span class="linenos">306</span></a> <span class="k">if</span> <span class="n">expression_type</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cache</span><span class="p">:</span> @@ -2214,7 +2214,7 @@ is unlikely to come up.</p> <div class="decorator">@operation(Operation.FROM)</div> <span class="def">def</span> - <span class="name">fillna</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241487424'</span><span class="o">></span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> + <span class="name">fillna</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322372736'</span><span class="o">></span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="o">...</span><span class="p">],</span> <span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> <label class="view-source-button" for="DataFrame.fillna-view-source"><span>View Source</span></label> @@ -2283,7 +2283,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="decorator">@operation(Operation.FROM)</div> <span class="def">def</span> - <span class="name">replace</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">to_replace</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">]</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Collection</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241373216'</span><span class="o">></span><span class="p">],</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241373216'</span><span class="o">></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> + <span class="name">replace</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">to_replace</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Dict</span><span class="p">]</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">,</span> <span class="nb">str</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">subset</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Collection</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322278992'</span><span class="o">></span><span class="p">],</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322278992'</span><span class="o">></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> <label class="view-source-button" for="DataFrame.replace-view-source"><span>View Source</span></label> @@ -2488,7 +2488,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="decorator">@operation(Operation.NO_OP)</div> <span class="def">def</span> - <span class="name">repartition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">numPartitions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241254496'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241463696'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> + <span class="name">repartition</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">numPartitions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322875456'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322936800'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#DataFrame">sqlglot.dataframe.sql.DataFrame</a></span>:</span></span> <label class="view-source-button" for="DataFrame.repartition-view-source"><span>View Source</span></label> @@ -2893,10 +2893,10 @@ and check if it matches the type of the value provided. If not then make it null </span><span id="Column-68"><a href="#Column-68"><span class="linenos"> 68</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> </span><span id="Column-69"><a href="#Column-69"><span class="linenos"> 69</span></a> </span><span id="Column-70"><a href="#Column-70"><span class="linenos"> 70</span></a> <span class="k">def</span> <span class="fm">__truediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ColumnOrLiteral</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="Column-71"><a href="#Column-71"><span class="linenos"> 71</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FloatDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> +</span><span id="Column-71"><a href="#Column-71"><span class="linenos"> 71</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> </span><span id="Column-72"><a href="#Column-72"><span class="linenos"> 72</span></a> </span><span id="Column-73"><a href="#Column-73"><span class="linenos"> 73</span></a> <span class="k">def</span> <span class="nf">__div__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ColumnOrLiteral</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="Column-74"><a href="#Column-74"><span class="linenos"> 74</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FloatDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> +</span><span id="Column-74"><a href="#Column-74"><span class="linenos"> 74</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> </span><span id="Column-75"><a href="#Column-75"><span class="linenos"> 75</span></a> </span><span id="Column-76"><a href="#Column-76"><span class="linenos"> 76</span></a> <span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> </span><span id="Column-77"><a href="#Column-77"><span class="linenos"> 77</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">unary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Neg</span><span class="p">)</span> @@ -2911,10 +2911,10 @@ and check if it matches the type of the value provided. If not then make it null </span><span id="Column-86"><a href="#Column-86"><span class="linenos"> 86</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> </span><span id="Column-87"><a href="#Column-87"><span class="linenos"> 87</span></a> </span><span id="Column-88"><a href="#Column-88"><span class="linenos"> 88</span></a> <span class="k">def</span> <span class="nf">__rdiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ColumnOrLiteral</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="Column-89"><a href="#Column-89"><span class="linenos"> 89</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FloatDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> +</span><span id="Column-89"><a href="#Column-89"><span class="linenos"> 89</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> </span><span id="Column-90"><a href="#Column-90"><span class="linenos"> 90</span></a> </span><span id="Column-91"><a href="#Column-91"><span class="linenos"> 91</span></a> <span class="k">def</span> <span class="fm">__rtruediv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ColumnOrLiteral</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="Column-92"><a href="#Column-92"><span class="linenos"> 92</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FloatDiv</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> +</span><span id="Column-92"><a href="#Column-92"><span class="linenos"> 92</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> </span><span id="Column-93"><a href="#Column-93"><span class="linenos"> 93</span></a> </span><span id="Column-94"><a href="#Column-94"><span class="linenos"> 94</span></a> <span class="k">def</span> <span class="fm">__rmod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="n">ColumnOrLiteral</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> </span><span id="Column-95"><a href="#Column-95"><span class="linenos"> 95</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_binary_op</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Mod</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span> @@ -3156,7 +3156,7 @@ and check if it matches the type of the value provided. If not then make it null <input id="Column.__init__-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> - <span class="name">Column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040243591008'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span>)</span> + <span class="name">Column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431324936560'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span>)</span> <label class="view-source-button" for="Column.__init__-view-source"><span>View Source</span></label> @@ -3184,7 +3184,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="decorator">@classmethod</div> <span class="def">def</span> - <span class="name">ensure_col</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241631040'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span><span class="return-annotation">):</span></span> + <span class="name">ensure_col</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">value</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431323066816'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="Column.ensure_col-view-source"><span>View Source</span></label> @@ -3205,7 +3205,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="decorator">@classmethod</div> <span class="def">def</span> - <span class="name">ensure_cols</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">args</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040242102912'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span><span class="p">]</span>:</span></span> + <span class="name">ensure_cols</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">args</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322777728'</span><span class="o">></span><span class="p">,</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span><span class="p">]</span>:</span></span> <label class="view-source-button" for="Column.ensure_cols-view-source"><span>View Source</span></label> @@ -3226,7 +3226,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="decorator">@classmethod</div> <span class="def">def</span> - <span class="name">invoke_anonymous_function</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241905232'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241781424'</span><span class="o">></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> + <span class="name">invoke_anonymous_function</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321452064'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span>,</span><span class="param"> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321074320'</span><span class="o">></span><span class="p">]</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> <label class="view-source-button" for="Column.invoke_anonymous_function-view-source"><span>View Source</span></label> @@ -3253,7 +3253,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="decorator">@classmethod</div> <span class="def">def</span> - <span class="name">invoke_expression_over_column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241714256'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">callable_expression</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> + <span class="name">invoke_expression_over_column</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="n">column</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321272944'</span><span class="o">></span><span class="p">]</span>,</span><span class="param"> <span class="n">callable_expression</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> <label class="view-source-button" for="Column.invoke_expression_over_column-view-source"><span>View Source</span></label> @@ -3290,7 +3290,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="attr function"> <span class="def">def</span> - <span class="name">binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241710320'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> + <span class="name">binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321368896'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> <label class="view-source-button" for="Column.binary_op-view-source"><span>View Source</span></label> @@ -3311,7 +3311,7 @@ and check if it matches the type of the value provided. If not then make it null <div class="attr function"> <span class="def">def</span> - <span class="name">inverse_binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040241702144'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> + <span class="name">inverse_binary_op</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">klass</span><span class="p">:</span> <span class="n">Callable</span>,</span><span class="param"> <span class="n">other</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321378976'</span><span class="o">></span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> <label class="view-source-button" for="Column.inverse_binary_op-view-source"><span>View Source</span></label> @@ -3821,7 +3821,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="attr function"> <span class="def">def</span> - <span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240205968'</span><span class="o">></span><span class="p">,</span> <span class="n">Iterable</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240205968'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">):</span></span> + <span class="name">isin</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321579680'</span><span class="o">></span><span class="p">,</span> <span class="n">Iterable</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321579680'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="Column.isin-view-source"><span>View Source</span></label> @@ -3842,7 +3842,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="attr function"> <span class="def">def</span> - <span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">lowerBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240263232'</span><span class="o">></span>,</span><span class="param"> <span class="n">upperBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240323392'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> + <span class="name">between</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">lowerBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321667120'</span><span class="o">></span>,</span><span class="param"> <span class="n">upperBound</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321705216'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> <label class="view-source-button" for="Column.between-view-source"><span>View Source</span></label> @@ -3877,7 +3877,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="attr function"> <span class="def">def</span> - <span class="name">over</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">window</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240382832'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> + <span class="name">over</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">window</span><span class="p">:</span> <span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321762928'</span><span class="o">></span></span><span class="return-annotation">) -> <span class="n"><a href="#Column">sqlglot.dataframe.sql.Column</a></span>:</span></span> <label class="view-source-button" for="Column.over-view-source"><span>View Source</span></label> @@ -4075,7 +4075,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="decorator">@classmethod</div> <span class="def">def</span> - <span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240671344'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240671344'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> + <span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322000032'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322000032'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> <label class="view-source-button" for="Window.partitionBy-view-source"><span>View Source</span></label> @@ -4096,7 +4096,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="decorator">@classmethod</div> <span class="def">def</span> - <span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240499728'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240499728'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> + <span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">cls</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322080464'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431322080464'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> <label class="view-source-button" for="Window.orderBy-view-source"><span>View Source</span></label> @@ -4321,7 +4321,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="attr function"> <span class="def">def</span> - <span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240799488'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240799488'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> + <span class="name">partitionBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321854976'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431321854976'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> <label class="view-source-button" for="WindowSpec.partitionBy-view-source"><span>View Source</span></label> @@ -4348,7 +4348,7 @@ Sqlglot doesn't currently replicate this class so it only accepts a string</p> <div class="attr function"> <span class="def">def</span> - <span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240728288'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140040240728288'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> + <span class="name">orderBy</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">cols</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431320185440'</span><span class="o">></span><span class="p">,</span> <span class="n">List</span><span class="p">[</span><span class="o"><</span><span class="n">MagicMock</span> <span class="nb">id</span><span class="o">=</span><span class="s1">'140431320185440'</span><span class="o">></span><span class="p">]]</span></span><span class="return-annotation">) -> <span class="n"><a href="#WindowSpec">sqlglot.dataframe.sql.WindowSpec</a></span>:</span></span> <label class="view-source-button" for="WindowSpec.orderBy-view-source"><span>View Source</span></label> diff --git a/docs/sqlglot/dialects/bigquery.html b/docs/sqlglot/dialects/bigquery.html index 32ba09f..bdfea69 100644 --- a/docs/sqlglot/dialects/bigquery.html +++ b/docs/sqlglot/dialects/bigquery.html @@ -244,168 +244,162 @@ </span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="s2">"BEGIN"</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-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="s2">"BEGIN TRANSACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> </span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"CURRENT_DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"CURRENT_TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"DECLARE"</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-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"FLOAT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"INT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"UNKNOWN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="p">}</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">)</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</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-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="p">),</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">),</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"DATETIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">),</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"DIV"</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">IntDiv</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">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><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"REGEXP_CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="s2">"REGEXP_EXTRACT"</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">RegexpExtract</span><span class="p">(</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</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-170"><a href="#L-170"><span class="linenos">170</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-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">position</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-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="n">occurrence</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">3</span><span class="p">),</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="n">group</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="nb">str</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">1</span><span class="p">)))</span><span class="o">.</span><span class="n">groups</span> <span class="o">==</span> <span class="mi">1</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="p">),</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"TIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">),</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="s2">"TIMESTAMP_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">),</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="s2">"DATE_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">),</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="s2">"DATETIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">),</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="s2">"TIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">),</span> -</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="s2">"TIMESTAMP_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">),</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"PARSE_TIMESTAMP"</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">StrToTime</span><span class="p">(</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</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">1</span><span class="p">),</span> <span class="nb">format</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-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="p">),</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="p">}</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> -</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="s2">"ARRAY"</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()]),</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="p">}</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDatetime</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="p">}</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><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><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="p">}</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="s2">"NOT DETERMINISTIC"</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><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</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 class="p">}</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</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="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</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="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATE_DIFF(</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="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">'expression'</span><span class="p">)</span><span class="si">}</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">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'unit'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DAY'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</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">"DATE_TRUNC"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</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">"STRING_AGG"</span><span class="p">),</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">),</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</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-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="p">[</span><span class="n">_unqualify_unnest</span><span class="p">],</span> <span class="n">transforms</span><span class="o">.</span><span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">)</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="p">),</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"PARSE_TIMESTAMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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="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-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"bigquery"</span><span class="p">),</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">:</span> <span class="n">_derived_table_values_to_unnest</span><span class="p">,</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">_returnsproperty_sql</span><span class="p">,</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">_create_sql</span><span class="p">,</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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="sa">f</span><span class="s2">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="sa">f</span><span class="s2">"DETERMINISTIC"</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"IMMUTABLE"</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="k">else</span> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">,</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_CONTAINS"</span><span class="p">),</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="p">}</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</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">TINYINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</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">"INT64"</span><span class="p">,</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</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">BIGINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</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">FLOAT</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</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">DOUBLE</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"BOOL"</span><span class="p">,</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</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">VARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="p">}</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="p">}</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</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-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="k">return</span> <span class="n">inline_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><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"DECLARE"</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-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"FLOAT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"INT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"UNKNOWN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="p">}</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">)</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</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-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="p">),</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">),</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"DATETIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">),</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"DIV"</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">IntDiv</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">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><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"REGEXP_CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"REGEXP_EXTRACT"</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">RegexpExtract</span><span class="p">(</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</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-169"><a href="#L-169"><span class="linenos">169</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-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">position</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-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">occurrence</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">3</span><span class="p">),</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="n">group</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="nb">str</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">1</span><span class="p">)))</span><span class="o">.</span><span class="n">groups</span> <span class="o">==</span> <span class="mi">1</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="p">),</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"TIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">),</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"TIMESTAMP_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">),</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="s2">"DATE_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">),</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="s2">"DATETIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">),</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="s2">"TIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">),</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="s2">"TIMESTAMP_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">),</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="s2">"PARSE_TIMESTAMP"</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">StrToTime</span><span class="p">(</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</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">1</span><span class="p">),</span> <span class="nb">format</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-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="p">}</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="s2">"ARRAY"</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()]),</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="p">}</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDatetime</span><span class="p">,</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="p">}</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="p">}</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> +</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="p">}</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="s2">"NOT DETERMINISTIC"</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><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">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="p">),</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="p">}</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> +</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATE_DIFF(</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="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">'expression'</span><span class="p">)</span><span class="si">}</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">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'unit'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DAY'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</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">"DATE_TRUNC"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</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">"STRING_AGG"</span><span class="p">),</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">),</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</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-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="p">[</span><span class="n">_unqualify_unnest</span><span class="p">],</span> <span class="n">transforms</span><span class="o">.</span><span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">)</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="p">),</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"PARSE_TIMESTAMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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="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-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"bigquery"</span><span class="p">),</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">:</span> <span class="n">_derived_table_values_to_unnest</span><span class="p">,</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">_returnsproperty_sql</span><span class="p">,</span> +</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">_create_sql</span><span class="p">,</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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="sa">f</span><span class="s2">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="sa">f</span><span class="s2">"DETERMINISTIC"</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"IMMUTABLE"</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="k">else</span> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">,</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_CONTAINS"</span><span class="p">),</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="p">}</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</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">TINYINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</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">"INT64"</span><span class="p">,</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</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">BIGINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</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">FLOAT</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</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">DOUBLE</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"BOOL"</span><span class="p">,</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</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">VARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="p">}</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="p">}</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</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-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="k">return</span> <span class="n">inline_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><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> </span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> </span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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-292"><a href="#L-292"><span class="linenos">292</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><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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-298"><a href="#L-298"><span class="linenos">298</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><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -450,168 +444,162 @@ </span><span id="BigQuery-145"><a href="#BigQuery-145"><span class="linenos">145</span></a> <span class="s2">"BEGIN"</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="BigQuery-146"><a href="#BigQuery-146"><span class="linenos">146</span></a> <span class="s2">"BEGIN TRANSACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> </span><span id="BigQuery-147"><a href="#BigQuery-147"><span class="linenos">147</span></a> <span class="s2">"CURRENT_DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> -</span><span id="BigQuery-148"><a href="#BigQuery-148"><span class="linenos">148</span></a> <span class="s2">"CURRENT_TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="BigQuery-149"><a href="#BigQuery-149"><span class="linenos">149</span></a> <span class="s2">"DECLARE"</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="BigQuery-150"><a href="#BigQuery-150"><span class="linenos">150</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="BigQuery-151"><a href="#BigQuery-151"><span class="linenos">151</span></a> <span class="s2">"FLOAT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="BigQuery-152"><a href="#BigQuery-152"><span class="linenos">152</span></a> <span class="s2">"INT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="BigQuery-153"><a href="#BigQuery-153"><span class="linenos">153</span></a> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="BigQuery-154"><a href="#BigQuery-154"><span class="linenos">154</span></a> <span class="s2">"UNKNOWN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> -</span><span id="BigQuery-155"><a href="#BigQuery-155"><span class="linenos">155</span></a> <span class="p">}</span> -</span><span id="BigQuery-156"><a href="#BigQuery-156"><span class="linenos">156</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">)</span> -</span><span id="BigQuery-157"><a href="#BigQuery-157"><span class="linenos">157</span></a> -</span><span id="BigQuery-158"><a href="#BigQuery-158"><span class="linenos">158</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="BigQuery-159"><a href="#BigQuery-159"><span class="linenos">159</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-160"><a href="#BigQuery-160"><span class="linenos">160</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-161"><a href="#BigQuery-161"><span class="linenos">161</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> -</span><span id="BigQuery-162"><a href="#BigQuery-162"><span class="linenos">162</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-163"><a href="#BigQuery-163"><span class="linenos">163</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="BigQuery-164"><a href="#BigQuery-164"><span class="linenos">164</span></a> <span class="p">),</span> -</span><span id="BigQuery-165"><a href="#BigQuery-165"><span class="linenos">165</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">),</span> -</span><span id="BigQuery-166"><a href="#BigQuery-166"><span class="linenos">166</span></a> <span class="s2">"DATETIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">),</span> -</span><span id="BigQuery-167"><a href="#BigQuery-167"><span class="linenos">167</span></a> <span class="s2">"DIV"</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">IntDiv</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">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><span id="BigQuery-168"><a href="#BigQuery-168"><span class="linenos">168</span></a> <span class="s2">"REGEXP_CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="BigQuery-169"><a href="#BigQuery-169"><span class="linenos">169</span></a> <span class="s2">"REGEXP_EXTRACT"</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">RegexpExtract</span><span class="p">(</span> -</span><span id="BigQuery-170"><a href="#BigQuery-170"><span class="linenos">170</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="BigQuery-171"><a href="#BigQuery-171"><span class="linenos">171</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="BigQuery-172"><a href="#BigQuery-172"><span class="linenos">172</span></a> <span class="n">position</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="BigQuery-173"><a href="#BigQuery-173"><span class="linenos">173</span></a> <span class="n">occurrence</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">3</span><span class="p">),</span> -</span><span id="BigQuery-174"><a href="#BigQuery-174"><span class="linenos">174</span></a> <span class="n">group</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> -</span><span id="BigQuery-175"><a href="#BigQuery-175"><span class="linenos">175</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="nb">str</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">1</span><span class="p">)))</span><span class="o">.</span><span class="n">groups</span> <span class="o">==</span> <span class="mi">1</span> -</span><span id="BigQuery-176"><a href="#BigQuery-176"><span class="linenos">176</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="BigQuery-177"><a href="#BigQuery-177"><span class="linenos">177</span></a> <span class="p">),</span> -</span><span id="BigQuery-178"><a href="#BigQuery-178"><span class="linenos">178</span></a> <span class="s2">"TIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">),</span> -</span><span id="BigQuery-179"><a href="#BigQuery-179"><span class="linenos">179</span></a> <span class="s2">"TIMESTAMP_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">),</span> -</span><span id="BigQuery-180"><a href="#BigQuery-180"><span class="linenos">180</span></a> <span class="s2">"DATE_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">),</span> -</span><span id="BigQuery-181"><a href="#BigQuery-181"><span class="linenos">181</span></a> <span class="s2">"DATETIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">),</span> -</span><span id="BigQuery-182"><a href="#BigQuery-182"><span class="linenos">182</span></a> <span class="s2">"TIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">),</span> -</span><span id="BigQuery-183"><a href="#BigQuery-183"><span class="linenos">183</span></a> <span class="s2">"TIMESTAMP_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">),</span> -</span><span id="BigQuery-184"><a href="#BigQuery-184"><span class="linenos">184</span></a> <span class="s2">"PARSE_TIMESTAMP"</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">StrToTime</span><span class="p">(</span> -</span><span id="BigQuery-185"><a href="#BigQuery-185"><span class="linenos">185</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">1</span><span class="p">),</span> <span class="nb">format</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="BigQuery-186"><a href="#BigQuery-186"><span class="linenos">186</span></a> <span class="p">),</span> -</span><span id="BigQuery-187"><a href="#BigQuery-187"><span class="linenos">187</span></a> <span class="p">}</span> -</span><span id="BigQuery-188"><a href="#BigQuery-188"><span class="linenos">188</span></a> -</span><span id="BigQuery-189"><a href="#BigQuery-189"><span class="linenos">189</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-190"><a href="#BigQuery-190"><span class="linenos">190</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-191"><a href="#BigQuery-191"><span class="linenos">191</span></a> <span class="s2">"ARRAY"</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()]),</span> -</span><span id="BigQuery-192"><a href="#BigQuery-192"><span class="linenos">192</span></a> <span class="p">}</span> -</span><span id="BigQuery-193"><a href="#BigQuery-193"><span class="linenos">193</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="BigQuery-194"><a href="#BigQuery-194"><span class="linenos">194</span></a> -</span><span id="BigQuery-195"><a href="#BigQuery-195"><span class="linenos">195</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-196"><a href="#BigQuery-196"><span class="linenos">196</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-197"><a href="#BigQuery-197"><span class="linenos">197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDatetime</span><span class="p">,</span> -</span><span id="BigQuery-198"><a href="#BigQuery-198"><span class="linenos">198</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">,</span> -</span><span id="BigQuery-199"><a href="#BigQuery-199"><span class="linenos">199</span></a> <span class="p">}</span> -</span><span id="BigQuery-200"><a href="#BigQuery-200"><span class="linenos">200</span></a> -</span><span id="BigQuery-201"><a href="#BigQuery-201"><span class="linenos">201</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-202"><a href="#BigQuery-202"><span class="linenos">202</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-203"><a href="#BigQuery-203"><span class="linenos">203</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="BigQuery-204"><a href="#BigQuery-204"><span class="linenos">204</span></a> <span class="p">}</span> -</span><span id="BigQuery-205"><a href="#BigQuery-205"><span class="linenos">205</span></a> -</span><span id="BigQuery-206"><a href="#BigQuery-206"><span class="linenos">206</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-207"><a href="#BigQuery-207"><span class="linenos">207</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-208"><a href="#BigQuery-208"><span class="linenos">208</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> -</span><span id="BigQuery-209"><a href="#BigQuery-209"><span class="linenos">209</span></a> <span class="p">}</span> -</span><span id="BigQuery-210"><a href="#BigQuery-210"><span class="linenos">210</span></a> -</span><span id="BigQuery-211"><a href="#BigQuery-211"><span class="linenos">211</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-212"><a href="#BigQuery-212"><span class="linenos">212</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-213"><a href="#BigQuery-213"><span class="linenos">213</span></a> <span class="s2">"NOT DETERMINISTIC"</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><span id="BigQuery-214"><a href="#BigQuery-214"><span class="linenos">214</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> -</span><span id="BigQuery-215"><a href="#BigQuery-215"><span class="linenos">215</span></a> <span class="p">),</span> -</span><span id="BigQuery-216"><a href="#BigQuery-216"><span class="linenos">216</span></a> <span class="p">}</span> -</span><span id="BigQuery-217"><a href="#BigQuery-217"><span class="linenos">217</span></a> -</span><span id="BigQuery-218"><a href="#BigQuery-218"><span class="linenos">218</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="BigQuery-219"><a href="#BigQuery-219"><span class="linenos">219</span></a> -</span><span id="BigQuery-220"><a href="#BigQuery-220"><span class="linenos">220</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="BigQuery-221"><a href="#BigQuery-221"><span class="linenos">221</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="BigQuery-222"><a href="#BigQuery-222"><span class="linenos">222</span></a> -</span><span id="BigQuery-223"><a href="#BigQuery-223"><span class="linenos">223</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-224"><a href="#BigQuery-224"><span class="linenos">224</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-225"><a href="#BigQuery-225"><span class="linenos">225</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-226"><a href="#BigQuery-226"><span class="linenos">226</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> -</span><span id="BigQuery-227"><a href="#BigQuery-227"><span class="linenos">227</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery-228"><a href="#BigQuery-228"><span class="linenos">228</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery-229"><a href="#BigQuery-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery-230"><a href="#BigQuery-230"><span class="linenos">230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery-231"><a href="#BigQuery-231"><span class="linenos">231</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATE_DIFF(</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="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">'expression'</span><span class="p">)</span><span class="si">}</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">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'unit'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DAY'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="BigQuery-232"><a href="#BigQuery-232"><span class="linenos">232</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="BigQuery-233"><a href="#BigQuery-233"><span class="linenos">233</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</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">"DATE_TRUNC"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> -</span><span id="BigQuery-234"><a href="#BigQuery-234"><span class="linenos">234</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">"STRING_AGG"</span><span class="p">),</span> -</span><span id="BigQuery-235"><a href="#BigQuery-235"><span class="linenos">235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="BigQuery-236"><a href="#BigQuery-236"><span class="linenos">236</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">),</span> -</span><span id="BigQuery-237"><a href="#BigQuery-237"><span class="linenos">237</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="BigQuery-238"><a href="#BigQuery-238"><span class="linenos">238</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="BigQuery-239"><a href="#BigQuery-239"><span class="linenos">239</span></a> <span class="p">[</span><span class="n">_unqualify_unnest</span><span class="p">],</span> <span class="n">transforms</span><span class="o">.</span><span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">)</span> -</span><span id="BigQuery-240"><a href="#BigQuery-240"><span class="linenos">240</span></a> <span class="p">),</span> -</span><span id="BigQuery-241"><a href="#BigQuery-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"PARSE_TIMESTAMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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="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="BigQuery-242"><a href="#BigQuery-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery-243"><a href="#BigQuery-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery-244"><a href="#BigQuery-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery-245"><a href="#BigQuery-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery-246"><a href="#BigQuery-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="BigQuery-247"><a href="#BigQuery-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"bigquery"</span><span class="p">),</span> -</span><span id="BigQuery-248"><a href="#BigQuery-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery-249"><a href="#BigQuery-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="BigQuery-250"><a href="#BigQuery-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> -</span><span id="BigQuery-251"><a href="#BigQuery-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">:</span> <span class="n">_derived_table_values_to_unnest</span><span class="p">,</span> -</span><span id="BigQuery-252"><a href="#BigQuery-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">_returnsproperty_sql</span><span class="p">,</span> -</span><span id="BigQuery-253"><a href="#BigQuery-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">_create_sql</span><span class="p">,</span> -</span><span id="BigQuery-254"><a href="#BigQuery-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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="sa">f</span><span class="s2">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> -</span><span id="BigQuery-255"><a href="#BigQuery-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="sa">f</span><span class="s2">"DETERMINISTIC"</span> -</span><span id="BigQuery-256"><a href="#BigQuery-256"><span class="linenos">256</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"IMMUTABLE"</span> -</span><span id="BigQuery-257"><a href="#BigQuery-257"><span class="linenos">257</span></a> <span class="k">else</span> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">,</span> -</span><span id="BigQuery-258"><a href="#BigQuery-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_CONTAINS"</span><span class="p">),</span> -</span><span id="BigQuery-259"><a href="#BigQuery-259"><span class="linenos">259</span></a> <span class="p">}</span> -</span><span id="BigQuery-260"><a href="#BigQuery-260"><span class="linenos">260</span></a> -</span><span id="BigQuery-261"><a href="#BigQuery-261"><span class="linenos">261</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-262"><a href="#BigQuery-262"><span class="linenos">262</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="BigQuery-263"><a href="#BigQuery-263"><span class="linenos">263</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">TINYINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery-264"><a href="#BigQuery-264"><span class="linenos">264</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery-265"><a href="#BigQuery-265"><span class="linenos">265</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">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery-266"><a href="#BigQuery-266"><span class="linenos">266</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">BIGINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery-267"><a href="#BigQuery-267"><span class="linenos">267</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> -</span><span id="BigQuery-268"><a href="#BigQuery-268"><span class="linenos">268</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">FLOAT</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> -</span><span id="BigQuery-269"><a href="#BigQuery-269"><span class="linenos">269</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">DOUBLE</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> -</span><span id="BigQuery-270"><a href="#BigQuery-270"><span class="linenos">270</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"BOOL"</span><span class="p">,</span> -</span><span id="BigQuery-271"><a href="#BigQuery-271"><span class="linenos">271</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="BigQuery-272"><a href="#BigQuery-272"><span class="linenos">272</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">VARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="BigQuery-273"><a href="#BigQuery-273"><span class="linenos">273</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="BigQuery-274"><a href="#BigQuery-274"><span class="linenos">274</span></a> <span class="p">}</span> -</span><span id="BigQuery-275"><a href="#BigQuery-275"><span class="linenos">275</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery-276"><a href="#BigQuery-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery-277"><a href="#BigQuery-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="BigQuery-278"><a href="#BigQuery-278"><span class="linenos">278</span></a> <span class="p">}</span> -</span><span id="BigQuery-279"><a href="#BigQuery-279"><span class="linenos">279</span></a> -</span><span id="BigQuery-280"><a href="#BigQuery-280"><span class="linenos">280</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="BigQuery-281"><a href="#BigQuery-281"><span class="linenos">281</span></a> -</span><span id="BigQuery-282"><a href="#BigQuery-282"><span class="linenos">282</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="BigQuery-283"><a href="#BigQuery-283"><span class="linenos">283</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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="BigQuery-284"><a href="#BigQuery-284"><span class="linenos">284</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="BigQuery-285"><a href="#BigQuery-285"><span class="linenos">285</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="BigQuery-286"><a href="#BigQuery-286"><span class="linenos">286</span></a> -</span><span id="BigQuery-287"><a href="#BigQuery-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="n">inline_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><span id="BigQuery-148"><a href="#BigQuery-148"><span class="linenos">148</span></a> <span class="s2">"DECLARE"</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="BigQuery-149"><a href="#BigQuery-149"><span class="linenos">149</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="BigQuery-150"><a href="#BigQuery-150"><span class="linenos">150</span></a> <span class="s2">"FLOAT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="BigQuery-151"><a href="#BigQuery-151"><span class="linenos">151</span></a> <span class="s2">"INT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="BigQuery-152"><a href="#BigQuery-152"><span class="linenos">152</span></a> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="BigQuery-153"><a href="#BigQuery-153"><span class="linenos">153</span></a> <span class="s2">"UNKNOWN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> +</span><span id="BigQuery-154"><a href="#BigQuery-154"><span class="linenos">154</span></a> <span class="p">}</span> +</span><span id="BigQuery-155"><a href="#BigQuery-155"><span class="linenos">155</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">)</span> +</span><span id="BigQuery-156"><a href="#BigQuery-156"><span class="linenos">156</span></a> +</span><span id="BigQuery-157"><a href="#BigQuery-157"><span class="linenos">157</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="BigQuery-158"><a href="#BigQuery-158"><span class="linenos">158</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-159"><a href="#BigQuery-159"><span class="linenos">159</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-160"><a href="#BigQuery-160"><span class="linenos">160</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> +</span><span id="BigQuery-161"><a href="#BigQuery-161"><span class="linenos">161</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-162"><a href="#BigQuery-162"><span class="linenos">162</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="BigQuery-163"><a href="#BigQuery-163"><span class="linenos">163</span></a> <span class="p">),</span> +</span><span id="BigQuery-164"><a href="#BigQuery-164"><span class="linenos">164</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">),</span> +</span><span id="BigQuery-165"><a href="#BigQuery-165"><span class="linenos">165</span></a> <span class="s2">"DATETIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">),</span> +</span><span id="BigQuery-166"><a href="#BigQuery-166"><span class="linenos">166</span></a> <span class="s2">"DIV"</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">IntDiv</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">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><span id="BigQuery-167"><a href="#BigQuery-167"><span class="linenos">167</span></a> <span class="s2">"REGEXP_CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="BigQuery-168"><a href="#BigQuery-168"><span class="linenos">168</span></a> <span class="s2">"REGEXP_EXTRACT"</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">RegexpExtract</span><span class="p">(</span> +</span><span id="BigQuery-169"><a href="#BigQuery-169"><span class="linenos">169</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="BigQuery-170"><a href="#BigQuery-170"><span class="linenos">170</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="BigQuery-171"><a href="#BigQuery-171"><span class="linenos">171</span></a> <span class="n">position</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="BigQuery-172"><a href="#BigQuery-172"><span class="linenos">172</span></a> <span class="n">occurrence</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">3</span><span class="p">),</span> +</span><span id="BigQuery-173"><a href="#BigQuery-173"><span class="linenos">173</span></a> <span class="n">group</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</span><span id="BigQuery-174"><a href="#BigQuery-174"><span class="linenos">174</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="nb">str</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">1</span><span class="p">)))</span><span class="o">.</span><span class="n">groups</span> <span class="o">==</span> <span class="mi">1</span> +</span><span id="BigQuery-175"><a href="#BigQuery-175"><span class="linenos">175</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="BigQuery-176"><a href="#BigQuery-176"><span class="linenos">176</span></a> <span class="p">),</span> +</span><span id="BigQuery-177"><a href="#BigQuery-177"><span class="linenos">177</span></a> <span class="s2">"TIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">),</span> +</span><span id="BigQuery-178"><a href="#BigQuery-178"><span class="linenos">178</span></a> <span class="s2">"TIMESTAMP_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">),</span> +</span><span id="BigQuery-179"><a href="#BigQuery-179"><span class="linenos">179</span></a> <span class="s2">"DATE_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">),</span> +</span><span id="BigQuery-180"><a href="#BigQuery-180"><span class="linenos">180</span></a> <span class="s2">"DATETIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">),</span> +</span><span id="BigQuery-181"><a href="#BigQuery-181"><span class="linenos">181</span></a> <span class="s2">"TIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">),</span> +</span><span id="BigQuery-182"><a href="#BigQuery-182"><span class="linenos">182</span></a> <span class="s2">"TIMESTAMP_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">),</span> +</span><span id="BigQuery-183"><a href="#BigQuery-183"><span class="linenos">183</span></a> <span class="s2">"PARSE_TIMESTAMP"</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">StrToTime</span><span class="p">(</span> +</span><span id="BigQuery-184"><a href="#BigQuery-184"><span class="linenos">184</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">1</span><span class="p">),</span> <span class="nb">format</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="BigQuery-185"><a href="#BigQuery-185"><span class="linenos">185</span></a> <span class="p">),</span> +</span><span id="BigQuery-186"><a href="#BigQuery-186"><span class="linenos">186</span></a> <span class="p">}</span> +</span><span id="BigQuery-187"><a href="#BigQuery-187"><span class="linenos">187</span></a> +</span><span id="BigQuery-188"><a href="#BigQuery-188"><span class="linenos">188</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-189"><a href="#BigQuery-189"><span class="linenos">189</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-190"><a href="#BigQuery-190"><span class="linenos">190</span></a> <span class="s2">"ARRAY"</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()]),</span> +</span><span id="BigQuery-191"><a href="#BigQuery-191"><span class="linenos">191</span></a> <span class="p">}</span> +</span><span id="BigQuery-192"><a href="#BigQuery-192"><span class="linenos">192</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="BigQuery-193"><a href="#BigQuery-193"><span class="linenos">193</span></a> +</span><span id="BigQuery-194"><a href="#BigQuery-194"><span class="linenos">194</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-195"><a href="#BigQuery-195"><span class="linenos">195</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-196"><a href="#BigQuery-196"><span class="linenos">196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDatetime</span><span class="p">,</span> +</span><span id="BigQuery-197"><a href="#BigQuery-197"><span class="linenos">197</span></a> <span class="p">}</span> +</span><span id="BigQuery-198"><a href="#BigQuery-198"><span class="linenos">198</span></a> +</span><span id="BigQuery-199"><a href="#BigQuery-199"><span class="linenos">199</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-200"><a href="#BigQuery-200"><span class="linenos">200</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-201"><a href="#BigQuery-201"><span class="linenos">201</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="BigQuery-202"><a href="#BigQuery-202"><span class="linenos">202</span></a> <span class="p">}</span> +</span><span id="BigQuery-203"><a href="#BigQuery-203"><span class="linenos">203</span></a> +</span><span id="BigQuery-204"><a href="#BigQuery-204"><span class="linenos">204</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-205"><a href="#BigQuery-205"><span class="linenos">205</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-206"><a href="#BigQuery-206"><span class="linenos">206</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> +</span><span id="BigQuery-207"><a href="#BigQuery-207"><span class="linenos">207</span></a> <span class="p">}</span> +</span><span id="BigQuery-208"><a href="#BigQuery-208"><span class="linenos">208</span></a> +</span><span id="BigQuery-209"><a href="#BigQuery-209"><span class="linenos">209</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-210"><a href="#BigQuery-210"><span class="linenos">210</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-211"><a href="#BigQuery-211"><span class="linenos">211</span></a> <span class="s2">"NOT DETERMINISTIC"</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><span id="BigQuery-212"><a href="#BigQuery-212"><span class="linenos">212</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> +</span><span id="BigQuery-213"><a href="#BigQuery-213"><span class="linenos">213</span></a> <span class="p">),</span> +</span><span id="BigQuery-214"><a href="#BigQuery-214"><span class="linenos">214</span></a> <span class="p">}</span> +</span><span id="BigQuery-215"><a href="#BigQuery-215"><span class="linenos">215</span></a> +</span><span id="BigQuery-216"><a href="#BigQuery-216"><span class="linenos">216</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="BigQuery-217"><a href="#BigQuery-217"><span class="linenos">217</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-218"><a href="#BigQuery-218"><span class="linenos">218</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-219"><a href="#BigQuery-219"><span class="linenos">219</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-220"><a href="#BigQuery-220"><span class="linenos">220</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> +</span><span id="BigQuery-221"><a href="#BigQuery-221"><span class="linenos">221</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery-222"><a href="#BigQuery-222"><span class="linenos">222</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery-223"><a href="#BigQuery-223"><span class="linenos">223</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery-224"><a href="#BigQuery-224"><span class="linenos">224</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery-225"><a href="#BigQuery-225"><span class="linenos">225</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATE_DIFF(</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="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">'expression'</span><span class="p">)</span><span class="si">}</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">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'unit'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DAY'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="BigQuery-226"><a href="#BigQuery-226"><span class="linenos">226</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="BigQuery-227"><a href="#BigQuery-227"><span class="linenos">227</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</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">"DATE_TRUNC"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> +</span><span id="BigQuery-228"><a href="#BigQuery-228"><span class="linenos">228</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">"STRING_AGG"</span><span class="p">),</span> +</span><span id="BigQuery-229"><a href="#BigQuery-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="BigQuery-230"><a href="#BigQuery-230"><span class="linenos">230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">),</span> +</span><span id="BigQuery-231"><a href="#BigQuery-231"><span class="linenos">231</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="BigQuery-232"><a href="#BigQuery-232"><span class="linenos">232</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="BigQuery-233"><a href="#BigQuery-233"><span class="linenos">233</span></a> <span class="p">[</span><span class="n">_unqualify_unnest</span><span class="p">],</span> <span class="n">transforms</span><span class="o">.</span><span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">)</span> +</span><span id="BigQuery-234"><a href="#BigQuery-234"><span class="linenos">234</span></a> <span class="p">),</span> +</span><span id="BigQuery-235"><a href="#BigQuery-235"><span class="linenos">235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"PARSE_TIMESTAMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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="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="BigQuery-236"><a href="#BigQuery-236"><span class="linenos">236</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery-237"><a href="#BigQuery-237"><span class="linenos">237</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery-238"><a href="#BigQuery-238"><span class="linenos">238</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery-239"><a href="#BigQuery-239"><span class="linenos">239</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery-240"><a href="#BigQuery-240"><span class="linenos">240</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="BigQuery-241"><a href="#BigQuery-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"bigquery"</span><span class="p">),</span> +</span><span id="BigQuery-242"><a href="#BigQuery-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery-243"><a href="#BigQuery-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="BigQuery-244"><a href="#BigQuery-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> +</span><span id="BigQuery-245"><a href="#BigQuery-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">:</span> <span class="n">_derived_table_values_to_unnest</span><span class="p">,</span> +</span><span id="BigQuery-246"><a href="#BigQuery-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">_returnsproperty_sql</span><span class="p">,</span> +</span><span id="BigQuery-247"><a href="#BigQuery-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">_create_sql</span><span class="p">,</span> +</span><span id="BigQuery-248"><a href="#BigQuery-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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="sa">f</span><span class="s2">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="BigQuery-249"><a href="#BigQuery-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="sa">f</span><span class="s2">"DETERMINISTIC"</span> +</span><span id="BigQuery-250"><a href="#BigQuery-250"><span class="linenos">250</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"IMMUTABLE"</span> +</span><span id="BigQuery-251"><a href="#BigQuery-251"><span class="linenos">251</span></a> <span class="k">else</span> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">,</span> +</span><span id="BigQuery-252"><a href="#BigQuery-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_CONTAINS"</span><span class="p">),</span> +</span><span id="BigQuery-253"><a href="#BigQuery-253"><span class="linenos">253</span></a> <span class="p">}</span> +</span><span id="BigQuery-254"><a href="#BigQuery-254"><span class="linenos">254</span></a> +</span><span id="BigQuery-255"><a href="#BigQuery-255"><span class="linenos">255</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-256"><a href="#BigQuery-256"><span class="linenos">256</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="BigQuery-257"><a href="#BigQuery-257"><span class="linenos">257</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">TINYINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery-258"><a href="#BigQuery-258"><span class="linenos">258</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery-259"><a href="#BigQuery-259"><span class="linenos">259</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">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery-260"><a href="#BigQuery-260"><span class="linenos">260</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">BIGINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery-261"><a href="#BigQuery-261"><span class="linenos">261</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> +</span><span id="BigQuery-262"><a href="#BigQuery-262"><span class="linenos">262</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">FLOAT</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> +</span><span id="BigQuery-263"><a href="#BigQuery-263"><span class="linenos">263</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">DOUBLE</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> +</span><span id="BigQuery-264"><a href="#BigQuery-264"><span class="linenos">264</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"BOOL"</span><span class="p">,</span> +</span><span id="BigQuery-265"><a href="#BigQuery-265"><span class="linenos">265</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="BigQuery-266"><a href="#BigQuery-266"><span class="linenos">266</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">VARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="BigQuery-267"><a href="#BigQuery-267"><span class="linenos">267</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="BigQuery-268"><a href="#BigQuery-268"><span class="linenos">268</span></a> <span class="p">}</span> +</span><span id="BigQuery-269"><a href="#BigQuery-269"><span class="linenos">269</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery-270"><a href="#BigQuery-270"><span class="linenos">270</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery-271"><a href="#BigQuery-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="BigQuery-272"><a href="#BigQuery-272"><span class="linenos">272</span></a> <span class="p">}</span> +</span><span id="BigQuery-273"><a href="#BigQuery-273"><span class="linenos">273</span></a> +</span><span id="BigQuery-274"><a href="#BigQuery-274"><span class="linenos">274</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="BigQuery-275"><a href="#BigQuery-275"><span class="linenos">275</span></a> +</span><span id="BigQuery-276"><a href="#BigQuery-276"><span class="linenos">276</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="BigQuery-277"><a href="#BigQuery-277"><span class="linenos">277</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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="BigQuery-278"><a href="#BigQuery-278"><span class="linenos">278</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="BigQuery-279"><a href="#BigQuery-279"><span class="linenos">279</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery-280"><a href="#BigQuery-280"><span class="linenos">280</span></a> +</span><span id="BigQuery-281"><a href="#BigQuery-281"><span class="linenos">281</span></a> <span class="k">return</span> <span class="n">inline_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><span id="BigQuery-282"><a href="#BigQuery-282"><span class="linenos">282</span></a> +</span><span id="BigQuery-283"><a href="#BigQuery-283"><span class="linenos">283</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery-284"><a href="#BigQuery-284"><span class="linenos">284</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> +</span><span id="BigQuery-285"><a href="#BigQuery-285"><span class="linenos">285</span></a> +</span><span id="BigQuery-286"><a href="#BigQuery-286"><span class="linenos">286</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery-287"><a href="#BigQuery-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> </span><span id="BigQuery-288"><a href="#BigQuery-288"><span class="linenos">288</span></a> -</span><span id="BigQuery-289"><a href="#BigQuery-289"><span class="linenos">289</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery-290"><a href="#BigQuery-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> +</span><span id="BigQuery-289"><a href="#BigQuery-289"><span class="linenos">289</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery-290"><a href="#BigQuery-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> </span><span id="BigQuery-291"><a href="#BigQuery-291"><span class="linenos">291</span></a> -</span><span id="BigQuery-292"><a href="#BigQuery-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery-293"><a href="#BigQuery-293"><span class="linenos">293</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> +</span><span id="BigQuery-292"><a href="#BigQuery-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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="BigQuery-293"><a href="#BigQuery-293"><span class="linenos">293</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><span id="BigQuery-294"><a href="#BigQuery-294"><span class="linenos">294</span></a> -</span><span id="BigQuery-295"><a href="#BigQuery-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery-296"><a href="#BigQuery-296"><span class="linenos">296</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> -</span><span id="BigQuery-297"><a href="#BigQuery-297"><span class="linenos">297</span></a> -</span><span id="BigQuery-298"><a href="#BigQuery-298"><span class="linenos">298</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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="BigQuery-299"><a href="#BigQuery-299"><span class="linenos">299</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><span id="BigQuery-300"><a href="#BigQuery-300"><span class="linenos">300</span></a> -</span><span id="BigQuery-301"><a href="#BigQuery-301"><span class="linenos">301</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery-302"><a href="#BigQuery-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="BigQuery-303"><a href="#BigQuery-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="BigQuery-304"><a href="#BigQuery-304"><span class="linenos">304</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="BigQuery-305"><a href="#BigQuery-305"><span class="linenos">305</span></a> -</span><span id="BigQuery-306"><a href="#BigQuery-306"><span class="linenos">306</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery-307"><a href="#BigQuery-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="BigQuery-308"><a href="#BigQuery-308"><span class="linenos">308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="BigQuery-309"><a href="#BigQuery-309"><span class="linenos">309</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery-295"><a href="#BigQuery-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery-296"><a href="#BigQuery-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="BigQuery-297"><a href="#BigQuery-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="BigQuery-298"><a href="#BigQuery-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery-299"><a href="#BigQuery-299"><span class="linenos">299</span></a> +</span><span id="BigQuery-300"><a href="#BigQuery-300"><span class="linenos">300</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery-301"><a href="#BigQuery-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="BigQuery-302"><a href="#BigQuery-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="BigQuery-303"><a href="#BigQuery-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -627,6 +615,7 @@ <dd id="BigQuery.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="BigQuery.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="BigQuery.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="BigQuery.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="BigQuery.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="BigQuery.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -661,15 +650,14 @@ </span><span id="BigQuery.Tokenizer-145"><a href="#BigQuery.Tokenizer-145"><span class="linenos">145</span></a> <span class="s2">"BEGIN"</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="BigQuery.Tokenizer-146"><a href="#BigQuery.Tokenizer-146"><span class="linenos">146</span></a> <span class="s2">"BEGIN TRANSACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> </span><span id="BigQuery.Tokenizer-147"><a href="#BigQuery.Tokenizer-147"><span class="linenos">147</span></a> <span class="s2">"CURRENT_DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-148"><a href="#BigQuery.Tokenizer-148"><span class="linenos">148</span></a> <span class="s2">"CURRENT_TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-149"><a href="#BigQuery.Tokenizer-149"><span class="linenos">149</span></a> <span class="s2">"DECLARE"</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="BigQuery.Tokenizer-150"><a href="#BigQuery.Tokenizer-150"><span class="linenos">150</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-151"><a href="#BigQuery.Tokenizer-151"><span class="linenos">151</span></a> <span class="s2">"FLOAT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-152"><a href="#BigQuery.Tokenizer-152"><span class="linenos">152</span></a> <span class="s2">"INT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-153"><a href="#BigQuery.Tokenizer-153"><span class="linenos">153</span></a> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-154"><a href="#BigQuery.Tokenizer-154"><span class="linenos">154</span></a> <span class="s2">"UNKNOWN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> -</span><span id="BigQuery.Tokenizer-155"><a href="#BigQuery.Tokenizer-155"><span class="linenos">155</span></a> <span class="p">}</span> -</span><span id="BigQuery.Tokenizer-156"><a href="#BigQuery.Tokenizer-156"><span class="linenos">156</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">)</span> +</span><span id="BigQuery.Tokenizer-148"><a href="#BigQuery.Tokenizer-148"><span class="linenos">148</span></a> <span class="s2">"DECLARE"</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="BigQuery.Tokenizer-149"><a href="#BigQuery.Tokenizer-149"><span class="linenos">149</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="BigQuery.Tokenizer-150"><a href="#BigQuery.Tokenizer-150"><span class="linenos">150</span></a> <span class="s2">"FLOAT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="BigQuery.Tokenizer-151"><a href="#BigQuery.Tokenizer-151"><span class="linenos">151</span></a> <span class="s2">"INT64"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="BigQuery.Tokenizer-152"><a href="#BigQuery.Tokenizer-152"><span class="linenos">152</span></a> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="BigQuery.Tokenizer-153"><a href="#BigQuery.Tokenizer-153"><span class="linenos">153</span></a> <span class="s2">"UNKNOWN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> +</span><span id="BigQuery.Tokenizer-154"><a href="#BigQuery.Tokenizer-154"><span class="linenos">154</span></a> <span class="p">}</span> +</span><span id="BigQuery.Tokenizer-155"><a href="#BigQuery.Tokenizer-155"><span class="linenos">155</span></a> <span class="n">KEYWORDS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">)</span> </span></pre></div> @@ -697,67 +685,64 @@ </div> <a class="headerlink" href="#BigQuery.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Parser-158"><a href="#BigQuery.Parser-158"><span class="linenos">158</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="BigQuery.Parser-159"><a href="#BigQuery.Parser-159"><span class="linenos">159</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Parser-160"><a href="#BigQuery.Parser-160"><span class="linenos">160</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-161"><a href="#BigQuery.Parser-161"><span class="linenos">161</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> -</span><span id="BigQuery.Parser-162"><a href="#BigQuery.Parser-162"><span class="linenos">162</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-163"><a href="#BigQuery.Parser-163"><span class="linenos">163</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="BigQuery.Parser-164"><a href="#BigQuery.Parser-164"><span class="linenos">164</span></a> <span class="p">),</span> -</span><span id="BigQuery.Parser-165"><a href="#BigQuery.Parser-165"><span class="linenos">165</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">),</span> -</span><span id="BigQuery.Parser-166"><a href="#BigQuery.Parser-166"><span class="linenos">166</span></a> <span class="s2">"DATETIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">),</span> -</span><span id="BigQuery.Parser-167"><a href="#BigQuery.Parser-167"><span class="linenos">167</span></a> <span class="s2">"DIV"</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">IntDiv</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">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><span id="BigQuery.Parser-168"><a href="#BigQuery.Parser-168"><span class="linenos">168</span></a> <span class="s2">"REGEXP_CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="BigQuery.Parser-169"><a href="#BigQuery.Parser-169"><span class="linenos">169</span></a> <span class="s2">"REGEXP_EXTRACT"</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">RegexpExtract</span><span class="p">(</span> -</span><span id="BigQuery.Parser-170"><a href="#BigQuery.Parser-170"><span class="linenos">170</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="BigQuery.Parser-171"><a href="#BigQuery.Parser-171"><span class="linenos">171</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="BigQuery.Parser-172"><a href="#BigQuery.Parser-172"><span class="linenos">172</span></a> <span class="n">position</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="BigQuery.Parser-173"><a href="#BigQuery.Parser-173"><span class="linenos">173</span></a> <span class="n">occurrence</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">3</span><span class="p">),</span> -</span><span id="BigQuery.Parser-174"><a href="#BigQuery.Parser-174"><span class="linenos">174</span></a> <span class="n">group</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> -</span><span id="BigQuery.Parser-175"><a href="#BigQuery.Parser-175"><span class="linenos">175</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="nb">str</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">1</span><span class="p">)))</span><span class="o">.</span><span class="n">groups</span> <span class="o">==</span> <span class="mi">1</span> -</span><span id="BigQuery.Parser-176"><a href="#BigQuery.Parser-176"><span class="linenos">176</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="BigQuery.Parser-177"><a href="#BigQuery.Parser-177"><span class="linenos">177</span></a> <span class="p">),</span> -</span><span id="BigQuery.Parser-178"><a href="#BigQuery.Parser-178"><span class="linenos">178</span></a> <span class="s2">"TIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">),</span> -</span><span id="BigQuery.Parser-179"><a href="#BigQuery.Parser-179"><span class="linenos">179</span></a> <span class="s2">"TIMESTAMP_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">),</span> -</span><span id="BigQuery.Parser-180"><a href="#BigQuery.Parser-180"><span class="linenos">180</span></a> <span class="s2">"DATE_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">),</span> -</span><span id="BigQuery.Parser-181"><a href="#BigQuery.Parser-181"><span class="linenos">181</span></a> <span class="s2">"DATETIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">),</span> -</span><span id="BigQuery.Parser-182"><a href="#BigQuery.Parser-182"><span class="linenos">182</span></a> <span class="s2">"TIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">),</span> -</span><span id="BigQuery.Parser-183"><a href="#BigQuery.Parser-183"><span class="linenos">183</span></a> <span class="s2">"TIMESTAMP_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">),</span> -</span><span id="BigQuery.Parser-184"><a href="#BigQuery.Parser-184"><span class="linenos">184</span></a> <span class="s2">"PARSE_TIMESTAMP"</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">StrToTime</span><span class="p">(</span> -</span><span id="BigQuery.Parser-185"><a href="#BigQuery.Parser-185"><span class="linenos">185</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">1</span><span class="p">),</span> <span class="nb">format</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="BigQuery.Parser-186"><a href="#BigQuery.Parser-186"><span class="linenos">186</span></a> <span class="p">),</span> -</span><span id="BigQuery.Parser-187"><a href="#BigQuery.Parser-187"><span class="linenos">187</span></a> <span class="p">}</span> -</span><span id="BigQuery.Parser-188"><a href="#BigQuery.Parser-188"><span class="linenos">188</span></a> -</span><span id="BigQuery.Parser-189"><a href="#BigQuery.Parser-189"><span class="linenos">189</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Parser-190"><a href="#BigQuery.Parser-190"><span class="linenos">190</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-191"><a href="#BigQuery.Parser-191"><span class="linenos">191</span></a> <span class="s2">"ARRAY"</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()]),</span> -</span><span id="BigQuery.Parser-192"><a href="#BigQuery.Parser-192"><span class="linenos">192</span></a> <span class="p">}</span> -</span><span id="BigQuery.Parser-193"><a href="#BigQuery.Parser-193"><span class="linenos">193</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="BigQuery.Parser-194"><a href="#BigQuery.Parser-194"><span class="linenos">194</span></a> -</span><span id="BigQuery.Parser-195"><a href="#BigQuery.Parser-195"><span class="linenos">195</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Parser-196"><a href="#BigQuery.Parser-196"><span class="linenos">196</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-197"><a href="#BigQuery.Parser-197"><span class="linenos">197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDatetime</span><span class="p">,</span> -</span><span id="BigQuery.Parser-198"><a href="#BigQuery.Parser-198"><span class="linenos">198</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">,</span> -</span><span id="BigQuery.Parser-199"><a href="#BigQuery.Parser-199"><span class="linenos">199</span></a> <span class="p">}</span> -</span><span id="BigQuery.Parser-200"><a href="#BigQuery.Parser-200"><span class="linenos">200</span></a> -</span><span id="BigQuery.Parser-201"><a href="#BigQuery.Parser-201"><span class="linenos">201</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Parser-202"><a href="#BigQuery.Parser-202"><span class="linenos">202</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-203"><a href="#BigQuery.Parser-203"><span class="linenos">203</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="BigQuery.Parser-204"><a href="#BigQuery.Parser-204"><span class="linenos">204</span></a> <span class="p">}</span> -</span><span id="BigQuery.Parser-205"><a href="#BigQuery.Parser-205"><span class="linenos">205</span></a> -</span><span id="BigQuery.Parser-206"><a href="#BigQuery.Parser-206"><span class="linenos">206</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Parser-207"><a href="#BigQuery.Parser-207"><span class="linenos">207</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-208"><a href="#BigQuery.Parser-208"><span class="linenos">208</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> -</span><span id="BigQuery.Parser-209"><a href="#BigQuery.Parser-209"><span class="linenos">209</span></a> <span class="p">}</span> -</span><span id="BigQuery.Parser-210"><a href="#BigQuery.Parser-210"><span class="linenos">210</span></a> -</span><span id="BigQuery.Parser-211"><a href="#BigQuery.Parser-211"><span class="linenos">211</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Parser-212"><a href="#BigQuery.Parser-212"><span class="linenos">212</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Parser-213"><a href="#BigQuery.Parser-213"><span class="linenos">213</span></a> <span class="s2">"NOT DETERMINISTIC"</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><span id="BigQuery.Parser-214"><a href="#BigQuery.Parser-214"><span class="linenos">214</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> -</span><span id="BigQuery.Parser-215"><a href="#BigQuery.Parser-215"><span class="linenos">215</span></a> <span class="p">),</span> -</span><span id="BigQuery.Parser-216"><a href="#BigQuery.Parser-216"><span class="linenos">216</span></a> <span class="p">}</span> -</span><span id="BigQuery.Parser-217"><a href="#BigQuery.Parser-217"><span class="linenos">217</span></a> -</span><span id="BigQuery.Parser-218"><a href="#BigQuery.Parser-218"><span class="linenos">218</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Parser-157"><a href="#BigQuery.Parser-157"><span class="linenos">157</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="BigQuery.Parser-158"><a href="#BigQuery.Parser-158"><span class="linenos">158</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Parser-159"><a href="#BigQuery.Parser-159"><span class="linenos">159</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-160"><a href="#BigQuery.Parser-160"><span class="linenos">160</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> +</span><span id="BigQuery.Parser-161"><a href="#BigQuery.Parser-161"><span class="linenos">161</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-162"><a href="#BigQuery.Parser-162"><span class="linenos">162</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="BigQuery.Parser-163"><a href="#BigQuery.Parser-163"><span class="linenos">163</span></a> <span class="p">),</span> +</span><span id="BigQuery.Parser-164"><a href="#BigQuery.Parser-164"><span class="linenos">164</span></a> <span class="s2">"DATE_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">),</span> +</span><span id="BigQuery.Parser-165"><a href="#BigQuery.Parser-165"><span class="linenos">165</span></a> <span class="s2">"DATETIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">),</span> +</span><span id="BigQuery.Parser-166"><a href="#BigQuery.Parser-166"><span class="linenos">166</span></a> <span class="s2">"DIV"</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">IntDiv</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">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><span id="BigQuery.Parser-167"><a href="#BigQuery.Parser-167"><span class="linenos">167</span></a> <span class="s2">"REGEXP_CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="BigQuery.Parser-168"><a href="#BigQuery.Parser-168"><span class="linenos">168</span></a> <span class="s2">"REGEXP_EXTRACT"</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">RegexpExtract</span><span class="p">(</span> +</span><span id="BigQuery.Parser-169"><a href="#BigQuery.Parser-169"><span class="linenos">169</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="BigQuery.Parser-170"><a href="#BigQuery.Parser-170"><span class="linenos">170</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="BigQuery.Parser-171"><a href="#BigQuery.Parser-171"><span class="linenos">171</span></a> <span class="n">position</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="BigQuery.Parser-172"><a href="#BigQuery.Parser-172"><span class="linenos">172</span></a> <span class="n">occurrence</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">3</span><span class="p">),</span> +</span><span id="BigQuery.Parser-173"><a href="#BigQuery.Parser-173"><span class="linenos">173</span></a> <span class="n">group</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> +</span><span id="BigQuery.Parser-174"><a href="#BigQuery.Parser-174"><span class="linenos">174</span></a> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="nb">str</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">1</span><span class="p">)))</span><span class="o">.</span><span class="n">groups</span> <span class="o">==</span> <span class="mi">1</span> +</span><span id="BigQuery.Parser-175"><a href="#BigQuery.Parser-175"><span class="linenos">175</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="BigQuery.Parser-176"><a href="#BigQuery.Parser-176"><span class="linenos">176</span></a> <span class="p">),</span> +</span><span id="BigQuery.Parser-177"><a href="#BigQuery.Parser-177"><span class="linenos">177</span></a> <span class="s2">"TIME_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">),</span> +</span><span id="BigQuery.Parser-178"><a href="#BigQuery.Parser-178"><span class="linenos">178</span></a> <span class="s2">"TIMESTAMP_ADD"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">),</span> +</span><span id="BigQuery.Parser-179"><a href="#BigQuery.Parser-179"><span class="linenos">179</span></a> <span class="s2">"DATE_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">),</span> +</span><span id="BigQuery.Parser-180"><a href="#BigQuery.Parser-180"><span class="linenos">180</span></a> <span class="s2">"DATETIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">),</span> +</span><span id="BigQuery.Parser-181"><a href="#BigQuery.Parser-181"><span class="linenos">181</span></a> <span class="s2">"TIME_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">),</span> +</span><span id="BigQuery.Parser-182"><a href="#BigQuery.Parser-182"><span class="linenos">182</span></a> <span class="s2">"TIMESTAMP_SUB"</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">),</span> +</span><span id="BigQuery.Parser-183"><a href="#BigQuery.Parser-183"><span class="linenos">183</span></a> <span class="s2">"PARSE_TIMESTAMP"</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">StrToTime</span><span class="p">(</span> +</span><span id="BigQuery.Parser-184"><a href="#BigQuery.Parser-184"><span class="linenos">184</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">1</span><span class="p">),</span> <span class="nb">format</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="BigQuery.Parser-185"><a href="#BigQuery.Parser-185"><span class="linenos">185</span></a> <span class="p">),</span> +</span><span id="BigQuery.Parser-186"><a href="#BigQuery.Parser-186"><span class="linenos">186</span></a> <span class="p">}</span> +</span><span id="BigQuery.Parser-187"><a href="#BigQuery.Parser-187"><span class="linenos">187</span></a> +</span><span id="BigQuery.Parser-188"><a href="#BigQuery.Parser-188"><span class="linenos">188</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Parser-189"><a href="#BigQuery.Parser-189"><span class="linenos">189</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-190"><a href="#BigQuery.Parser-190"><span class="linenos">190</span></a> <span class="s2">"ARRAY"</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()]),</span> +</span><span id="BigQuery.Parser-191"><a href="#BigQuery.Parser-191"><span class="linenos">191</span></a> <span class="p">}</span> +</span><span id="BigQuery.Parser-192"><a href="#BigQuery.Parser-192"><span class="linenos">192</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="BigQuery.Parser-193"><a href="#BigQuery.Parser-193"><span class="linenos">193</span></a> +</span><span id="BigQuery.Parser-194"><a href="#BigQuery.Parser-194"><span class="linenos">194</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Parser-195"><a href="#BigQuery.Parser-195"><span class="linenos">195</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-196"><a href="#BigQuery.Parser-196"><span class="linenos">196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDatetime</span><span class="p">,</span> +</span><span id="BigQuery.Parser-197"><a href="#BigQuery.Parser-197"><span class="linenos">197</span></a> <span class="p">}</span> +</span><span id="BigQuery.Parser-198"><a href="#BigQuery.Parser-198"><span class="linenos">198</span></a> +</span><span id="BigQuery.Parser-199"><a href="#BigQuery.Parser-199"><span class="linenos">199</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Parser-200"><a href="#BigQuery.Parser-200"><span class="linenos">200</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-201"><a href="#BigQuery.Parser-201"><span class="linenos">201</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="BigQuery.Parser-202"><a href="#BigQuery.Parser-202"><span class="linenos">202</span></a> <span class="p">}</span> +</span><span id="BigQuery.Parser-203"><a href="#BigQuery.Parser-203"><span class="linenos">203</span></a> +</span><span id="BigQuery.Parser-204"><a href="#BigQuery.Parser-204"><span class="linenos">204</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Parser-205"><a href="#BigQuery.Parser-205"><span class="linenos">205</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-206"><a href="#BigQuery.Parser-206"><span class="linenos">206</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> +</span><span id="BigQuery.Parser-207"><a href="#BigQuery.Parser-207"><span class="linenos">207</span></a> <span class="p">}</span> +</span><span id="BigQuery.Parser-208"><a href="#BigQuery.Parser-208"><span class="linenos">208</span></a> +</span><span id="BigQuery.Parser-209"><a href="#BigQuery.Parser-209"><span class="linenos">209</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Parser-210"><a href="#BigQuery.Parser-210"><span class="linenos">210</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Parser-211"><a href="#BigQuery.Parser-211"><span class="linenos">211</span></a> <span class="s2">"NOT DETERMINISTIC"</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><span id="BigQuery.Parser-212"><a href="#BigQuery.Parser-212"><span class="linenos">212</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> +</span><span id="BigQuery.Parser-213"><a href="#BigQuery.Parser-213"><span class="linenos">213</span></a> <span class="p">),</span> +</span><span id="BigQuery.Parser-214"><a href="#BigQuery.Parser-214"><span class="linenos">214</span></a> <span class="p">}</span> </span></pre></div> @@ -814,96 +799,94 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#BigQuery.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator-220"><a href="#BigQuery.Generator-220"><span class="linenos">220</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="BigQuery.Generator-221"><a href="#BigQuery.Generator-221"><span class="linenos">221</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="BigQuery.Generator-222"><a href="#BigQuery.Generator-222"><span class="linenos">222</span></a> -</span><span id="BigQuery.Generator-223"><a href="#BigQuery.Generator-223"><span class="linenos">223</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Generator-224"><a href="#BigQuery.Generator-224"><span class="linenos">224</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Generator-225"><a href="#BigQuery.Generator-225"><span class="linenos">225</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Generator-226"><a href="#BigQuery.Generator-226"><span class="linenos">226</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-227"><a href="#BigQuery.Generator-227"><span class="linenos">227</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-228"><a href="#BigQuery.Generator-228"><span class="linenos">228</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-229"><a href="#BigQuery.Generator-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-230"><a href="#BigQuery.Generator-230"><span class="linenos">230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-231"><a href="#BigQuery.Generator-231"><span class="linenos">231</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATE_DIFF(</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="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">'expression'</span><span class="p">)</span><span class="si">}</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">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'unit'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DAY'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-232"><a href="#BigQuery.Generator-232"><span class="linenos">232</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="BigQuery.Generator-233"><a href="#BigQuery.Generator-233"><span class="linenos">233</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</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">"DATE_TRUNC"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> -</span><span id="BigQuery.Generator-234"><a href="#BigQuery.Generator-234"><span class="linenos">234</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">"STRING_AGG"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-235"><a href="#BigQuery.Generator-235"><span class="linenos">235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="BigQuery.Generator-236"><a href="#BigQuery.Generator-236"><span class="linenos">236</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-237"><a href="#BigQuery.Generator-237"><span class="linenos">237</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="BigQuery.Generator-238"><a href="#BigQuery.Generator-238"><span class="linenos">238</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="BigQuery.Generator-239"><a href="#BigQuery.Generator-239"><span class="linenos">239</span></a> <span class="p">[</span><span class="n">_unqualify_unnest</span><span class="p">],</span> <span class="n">transforms</span><span class="o">.</span><span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">)</span> -</span><span id="BigQuery.Generator-240"><a href="#BigQuery.Generator-240"><span class="linenos">240</span></a> <span class="p">),</span> -</span><span id="BigQuery.Generator-241"><a href="#BigQuery.Generator-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"PARSE_TIMESTAMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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="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="BigQuery.Generator-242"><a href="#BigQuery.Generator-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-243"><a href="#BigQuery.Generator-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-244"><a href="#BigQuery.Generator-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-245"><a href="#BigQuery.Generator-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-246"><a href="#BigQuery.Generator-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="BigQuery.Generator-247"><a href="#BigQuery.Generator-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"bigquery"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-248"><a href="#BigQuery.Generator-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-249"><a href="#BigQuery.Generator-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="BigQuery.Generator-250"><a href="#BigQuery.Generator-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-251"><a href="#BigQuery.Generator-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">:</span> <span class="n">_derived_table_values_to_unnest</span><span class="p">,</span> -</span><span id="BigQuery.Generator-252"><a href="#BigQuery.Generator-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">_returnsproperty_sql</span><span class="p">,</span> -</span><span id="BigQuery.Generator-253"><a href="#BigQuery.Generator-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">_create_sql</span><span class="p">,</span> -</span><span id="BigQuery.Generator-254"><a href="#BigQuery.Generator-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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="sa">f</span><span class="s2">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> -</span><span id="BigQuery.Generator-255"><a href="#BigQuery.Generator-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="sa">f</span><span class="s2">"DETERMINISTIC"</span> -</span><span id="BigQuery.Generator-256"><a href="#BigQuery.Generator-256"><span class="linenos">256</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"IMMUTABLE"</span> -</span><span id="BigQuery.Generator-257"><a href="#BigQuery.Generator-257"><span class="linenos">257</span></a> <span class="k">else</span> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-258"><a href="#BigQuery.Generator-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_CONTAINS"</span><span class="p">),</span> -</span><span id="BigQuery.Generator-259"><a href="#BigQuery.Generator-259"><span class="linenos">259</span></a> <span class="p">}</span> -</span><span id="BigQuery.Generator-260"><a href="#BigQuery.Generator-260"><span class="linenos">260</span></a> -</span><span id="BigQuery.Generator-261"><a href="#BigQuery.Generator-261"><span class="linenos">261</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Generator-262"><a href="#BigQuery.Generator-262"><span class="linenos">262</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="BigQuery.Generator-263"><a href="#BigQuery.Generator-263"><span class="linenos">263</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">TINYINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-264"><a href="#BigQuery.Generator-264"><span class="linenos">264</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-265"><a href="#BigQuery.Generator-265"><span class="linenos">265</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">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-266"><a href="#BigQuery.Generator-266"><span class="linenos">266</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">BIGINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-267"><a href="#BigQuery.Generator-267"><span class="linenos">267</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-268"><a href="#BigQuery.Generator-268"><span class="linenos">268</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">FLOAT</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-269"><a href="#BigQuery.Generator-269"><span class="linenos">269</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">DOUBLE</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-270"><a href="#BigQuery.Generator-270"><span class="linenos">270</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"BOOL"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-271"><a href="#BigQuery.Generator-271"><span class="linenos">271</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-272"><a href="#BigQuery.Generator-272"><span class="linenos">272</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">VARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-273"><a href="#BigQuery.Generator-273"><span class="linenos">273</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="BigQuery.Generator-274"><a href="#BigQuery.Generator-274"><span class="linenos">274</span></a> <span class="p">}</span> -</span><span id="BigQuery.Generator-275"><a href="#BigQuery.Generator-275"><span class="linenos">275</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="BigQuery.Generator-276"><a href="#BigQuery.Generator-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="BigQuery.Generator-277"><a href="#BigQuery.Generator-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="BigQuery.Generator-278"><a href="#BigQuery.Generator-278"><span class="linenos">278</span></a> <span class="p">}</span> -</span><span id="BigQuery.Generator-279"><a href="#BigQuery.Generator-279"><span class="linenos">279</span></a> -</span><span id="BigQuery.Generator-280"><a href="#BigQuery.Generator-280"><span class="linenos">280</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="BigQuery.Generator-281"><a href="#BigQuery.Generator-281"><span class="linenos">281</span></a> -</span><span id="BigQuery.Generator-282"><a href="#BigQuery.Generator-282"><span class="linenos">282</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="BigQuery.Generator-283"><a href="#BigQuery.Generator-283"><span class="linenos">283</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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="BigQuery.Generator-284"><a href="#BigQuery.Generator-284"><span class="linenos">284</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="BigQuery.Generator-285"><a href="#BigQuery.Generator-285"><span class="linenos">285</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="BigQuery.Generator-286"><a href="#BigQuery.Generator-286"><span class="linenos">286</span></a> -</span><span id="BigQuery.Generator-287"><a href="#BigQuery.Generator-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="n">inline_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> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator-216"><a href="#BigQuery.Generator-216"><span class="linenos">216</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="BigQuery.Generator-217"><a href="#BigQuery.Generator-217"><span class="linenos">217</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Generator-218"><a href="#BigQuery.Generator-218"><span class="linenos">218</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Generator-219"><a href="#BigQuery.Generator-219"><span class="linenos">219</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Generator-220"><a href="#BigQuery.Generator-220"><span class="linenos">220</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-221"><a href="#BigQuery.Generator-221"><span class="linenos">221</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-222"><a href="#BigQuery.Generator-222"><span class="linenos">222</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-223"><a href="#BigQuery.Generator-223"><span class="linenos">223</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-224"><a href="#BigQuery.Generator-224"><span class="linenos">224</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DatetimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATETIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-225"><a href="#BigQuery.Generator-225"><span class="linenos">225</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATE_DIFF(</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="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">'expression'</span><span class="p">)</span><span class="si">}</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">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'unit'</span><span class="p">,</span><span class="w"> </span><span class="s1">'DAY'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-226"><a href="#BigQuery.Generator-226"><span class="linenos">226</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="BigQuery.Generator-227"><a href="#BigQuery.Generator-227"><span class="linenos">227</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</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">"DATE_TRUNC"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> +</span><span id="BigQuery.Generator-228"><a href="#BigQuery.Generator-228"><span class="linenos">228</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">"STRING_AGG"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-229"><a href="#BigQuery.Generator-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="BigQuery.Generator-230"><a href="#BigQuery.Generator-230"><span class="linenos">230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DIV"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-231"><a href="#BigQuery.Generator-231"><span class="linenos">231</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="BigQuery.Generator-232"><a href="#BigQuery.Generator-232"><span class="linenos">232</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="BigQuery.Generator-233"><a href="#BigQuery.Generator-233"><span class="linenos">233</span></a> <span class="p">[</span><span class="n">_unqualify_unnest</span><span class="p">],</span> <span class="n">transforms</span><span class="o">.</span><span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">)</span> +</span><span id="BigQuery.Generator-234"><a href="#BigQuery.Generator-234"><span class="linenos">234</span></a> <span class="p">),</span> +</span><span id="BigQuery.Generator-235"><a href="#BigQuery.Generator-235"><span class="linenos">235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"PARSE_TIMESTAMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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="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="BigQuery.Generator-236"><a href="#BigQuery.Generator-236"><span class="linenos">236</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-237"><a href="#BigQuery.Generator-237"><span class="linenos">237</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIME"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-238"><a href="#BigQuery.Generator-238"><span class="linenos">238</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-239"><a href="#BigQuery.Generator-239"><span class="linenos">239</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"TIMESTAMP"</span><span class="p">,</span> <span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-240"><a href="#BigQuery.Generator-240"><span class="linenos">240</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="BigQuery.Generator-241"><a href="#BigQuery.Generator-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"bigquery"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-242"><a href="#BigQuery.Generator-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-243"><a href="#BigQuery.Generator-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="BigQuery.Generator-244"><a href="#BigQuery.Generator-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-245"><a href="#BigQuery.Generator-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">:</span> <span class="n">_derived_table_values_to_unnest</span><span class="p">,</span> +</span><span id="BigQuery.Generator-246"><a href="#BigQuery.Generator-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">_returnsproperty_sql</span><span class="p">,</span> +</span><span id="BigQuery.Generator-247"><a href="#BigQuery.Generator-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">_create_sql</span><span class="p">,</span> +</span><span id="BigQuery.Generator-248"><a href="#BigQuery.Generator-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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="sa">f</span><span class="s2">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="BigQuery.Generator-249"><a href="#BigQuery.Generator-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="sa">f</span><span class="s2">"DETERMINISTIC"</span> +</span><span id="BigQuery.Generator-250"><a href="#BigQuery.Generator-250"><span class="linenos">250</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"IMMUTABLE"</span> +</span><span id="BigQuery.Generator-251"><a href="#BigQuery.Generator-251"><span class="linenos">251</span></a> <span class="k">else</span> <span class="s2">"NOT DETERMINISTIC"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-252"><a href="#BigQuery.Generator-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_CONTAINS"</span><span class="p">),</span> +</span><span id="BigQuery.Generator-253"><a href="#BigQuery.Generator-253"><span class="linenos">253</span></a> <span class="p">}</span> +</span><span id="BigQuery.Generator-254"><a href="#BigQuery.Generator-254"><span class="linenos">254</span></a> +</span><span id="BigQuery.Generator-255"><a href="#BigQuery.Generator-255"><span class="linenos">255</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Generator-256"><a href="#BigQuery.Generator-256"><span class="linenos">256</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="BigQuery.Generator-257"><a href="#BigQuery.Generator-257"><span class="linenos">257</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">TINYINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-258"><a href="#BigQuery.Generator-258"><span class="linenos">258</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-259"><a href="#BigQuery.Generator-259"><span class="linenos">259</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">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-260"><a href="#BigQuery.Generator-260"><span class="linenos">260</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">BIGINT</span><span class="p">:</span> <span class="s2">"INT64"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-261"><a href="#BigQuery.Generator-261"><span class="linenos">261</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-262"><a href="#BigQuery.Generator-262"><span class="linenos">262</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">FLOAT</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-263"><a href="#BigQuery.Generator-263"><span class="linenos">263</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">DOUBLE</span><span class="p">:</span> <span class="s2">"FLOAT64"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-264"><a href="#BigQuery.Generator-264"><span class="linenos">264</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"BOOL"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-265"><a href="#BigQuery.Generator-265"><span class="linenos">265</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-266"><a href="#BigQuery.Generator-266"><span class="linenos">266</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">VARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-267"><a href="#BigQuery.Generator-267"><span class="linenos">267</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="BigQuery.Generator-268"><a href="#BigQuery.Generator-268"><span class="linenos">268</span></a> <span class="p">}</span> +</span><span id="BigQuery.Generator-269"><a href="#BigQuery.Generator-269"><span class="linenos">269</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="BigQuery.Generator-270"><a href="#BigQuery.Generator-270"><span class="linenos">270</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="BigQuery.Generator-271"><a href="#BigQuery.Generator-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="BigQuery.Generator-272"><a href="#BigQuery.Generator-272"><span class="linenos">272</span></a> <span class="p">}</span> +</span><span id="BigQuery.Generator-273"><a href="#BigQuery.Generator-273"><span class="linenos">273</span></a> +</span><span id="BigQuery.Generator-274"><a href="#BigQuery.Generator-274"><span class="linenos">274</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="BigQuery.Generator-275"><a href="#BigQuery.Generator-275"><span class="linenos">275</span></a> +</span><span id="BigQuery.Generator-276"><a href="#BigQuery.Generator-276"><span class="linenos">276</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="BigQuery.Generator-277"><a href="#BigQuery.Generator-277"><span class="linenos">277</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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="BigQuery.Generator-278"><a href="#BigQuery.Generator-278"><span class="linenos">278</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="BigQuery.Generator-279"><a href="#BigQuery.Generator-279"><span class="linenos">279</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery.Generator-280"><a href="#BigQuery.Generator-280"><span class="linenos">280</span></a> +</span><span id="BigQuery.Generator-281"><a href="#BigQuery.Generator-281"><span class="linenos">281</span></a> <span class="k">return</span> <span class="n">inline_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><span id="BigQuery.Generator-282"><a href="#BigQuery.Generator-282"><span class="linenos">282</span></a> +</span><span id="BigQuery.Generator-283"><a href="#BigQuery.Generator-283"><span class="linenos">283</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator-284"><a href="#BigQuery.Generator-284"><span class="linenos">284</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> +</span><span id="BigQuery.Generator-285"><a href="#BigQuery.Generator-285"><span class="linenos">285</span></a> +</span><span id="BigQuery.Generator-286"><a href="#BigQuery.Generator-286"><span class="linenos">286</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator-287"><a href="#BigQuery.Generator-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> </span><span id="BigQuery.Generator-288"><a href="#BigQuery.Generator-288"><span class="linenos">288</span></a> -</span><span id="BigQuery.Generator-289"><a href="#BigQuery.Generator-289"><span class="linenos">289</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator-290"><a href="#BigQuery.Generator-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> +</span><span id="BigQuery.Generator-289"><a href="#BigQuery.Generator-289"><span class="linenos">289</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator-290"><a href="#BigQuery.Generator-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> </span><span id="BigQuery.Generator-291"><a href="#BigQuery.Generator-291"><span class="linenos">291</span></a> -</span><span id="BigQuery.Generator-292"><a href="#BigQuery.Generator-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator-293"><a href="#BigQuery.Generator-293"><span class="linenos">293</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> +</span><span id="BigQuery.Generator-292"><a href="#BigQuery.Generator-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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="BigQuery.Generator-293"><a href="#BigQuery.Generator-293"><span class="linenos">293</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><span id="BigQuery.Generator-294"><a href="#BigQuery.Generator-294"><span class="linenos">294</span></a> -</span><span id="BigQuery.Generator-295"><a href="#BigQuery.Generator-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator-296"><a href="#BigQuery.Generator-296"><span class="linenos">296</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> -</span><span id="BigQuery.Generator-297"><a href="#BigQuery.Generator-297"><span class="linenos">297</span></a> -</span><span id="BigQuery.Generator-298"><a href="#BigQuery.Generator-298"><span class="linenos">298</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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="BigQuery.Generator-299"><a href="#BigQuery.Generator-299"><span class="linenos">299</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><span id="BigQuery.Generator-300"><a href="#BigQuery.Generator-300"><span class="linenos">300</span></a> -</span><span id="BigQuery.Generator-301"><a href="#BigQuery.Generator-301"><span class="linenos">301</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator-302"><a href="#BigQuery.Generator-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="BigQuery.Generator-303"><a href="#BigQuery.Generator-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="BigQuery.Generator-304"><a href="#BigQuery.Generator-304"><span class="linenos">304</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="BigQuery.Generator-305"><a href="#BigQuery.Generator-305"><span class="linenos">305</span></a> -</span><span id="BigQuery.Generator-306"><a href="#BigQuery.Generator-306"><span class="linenos">306</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator-307"><a href="#BigQuery.Generator-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="BigQuery.Generator-308"><a href="#BigQuery.Generator-308"><span class="linenos">308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="BigQuery.Generator-309"><a href="#BigQuery.Generator-309"><span class="linenos">309</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery.Generator-295"><a href="#BigQuery.Generator-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator-296"><a href="#BigQuery.Generator-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="BigQuery.Generator-297"><a href="#BigQuery.Generator-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="BigQuery.Generator-298"><a href="#BigQuery.Generator-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery.Generator-299"><a href="#BigQuery.Generator-299"><span class="linenos">299</span></a> +</span><span id="BigQuery.Generator-300"><a href="#BigQuery.Generator-300"><span class="linenos">300</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator-301"><a href="#BigQuery.Generator-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="BigQuery.Generator-302"><a href="#BigQuery.Generator-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="BigQuery.Generator-303"><a href="#BigQuery.Generator-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -920,8 +903,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -963,12 +945,12 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.array_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.array_sql-282"><a href="#BigQuery.Generator.array_sql-282"><span class="linenos">282</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="BigQuery.Generator.array_sql-283"><a href="#BigQuery.Generator.array_sql-283"><span class="linenos">283</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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="BigQuery.Generator.array_sql-284"><a href="#BigQuery.Generator.array_sql-284"><span class="linenos">284</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="BigQuery.Generator.array_sql-285"><a href="#BigQuery.Generator.array_sql-285"><span class="linenos">285</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="BigQuery.Generator.array_sql-286"><a href="#BigQuery.Generator.array_sql-286"><span class="linenos">286</span></a> -</span><span id="BigQuery.Generator.array_sql-287"><a href="#BigQuery.Generator.array_sql-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="n">inline_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> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.array_sql-276"><a href="#BigQuery.Generator.array_sql-276"><span class="linenos">276</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="BigQuery.Generator.array_sql-277"><a href="#BigQuery.Generator.array_sql-277"><span class="linenos">277</span></a> <span class="n">first_arg</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expression</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="BigQuery.Generator.array_sql-278"><a href="#BigQuery.Generator.array_sql-278"><span class="linenos">278</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="BigQuery.Generator.array_sql-279"><a href="#BigQuery.Generator.array_sql-279"><span class="linenos">279</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">first_arg</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> +</span><span id="BigQuery.Generator.array_sql-280"><a href="#BigQuery.Generator.array_sql-280"><span class="linenos">280</span></a> +</span><span id="BigQuery.Generator.array_sql-281"><a href="#BigQuery.Generator.array_sql-281"><span class="linenos">281</span></a> <span class="k">return</span> <span class="n">inline_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></pre></div> @@ -986,8 +968,8 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.transaction_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.transaction_sql-289"><a href="#BigQuery.Generator.transaction_sql-289"><span class="linenos">289</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator.transaction_sql-290"><a href="#BigQuery.Generator.transaction_sql-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.transaction_sql-283"><a href="#BigQuery.Generator.transaction_sql-283"><span class="linenos">283</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator.transaction_sql-284"><a href="#BigQuery.Generator.transaction_sql-284"><span class="linenos">284</span></a> <span class="k">return</span> <span class="s2">"BEGIN TRANSACTION"</span> </span></pre></div> @@ -1005,8 +987,8 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.commit_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.commit_sql-292"><a href="#BigQuery.Generator.commit_sql-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator.commit_sql-293"><a href="#BigQuery.Generator.commit_sql-293"><span class="linenos">293</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.commit_sql-286"><a href="#BigQuery.Generator.commit_sql-286"><span class="linenos">286</span></a> <span class="k">def</span> <span class="nf">commit_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator.commit_sql-287"><a href="#BigQuery.Generator.commit_sql-287"><span class="linenos">287</span></a> <span class="k">return</span> <span class="s2">"COMMIT TRANSACTION"</span> </span></pre></div> @@ -1024,8 +1006,8 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.rollback_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.rollback_sql-295"><a href="#BigQuery.Generator.rollback_sql-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator.rollback_sql-296"><a href="#BigQuery.Generator.rollback_sql-296"><span class="linenos">296</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.rollback_sql-289"><a href="#BigQuery.Generator.rollback_sql-289"><span class="linenos">289</span></a> <span class="k">def</span> <span class="nf">rollback_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator.rollback_sql-290"><a href="#BigQuery.Generator.rollback_sql-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">"ROLLBACK TRANSACTION"</span> </span></pre></div> @@ -1043,8 +1025,8 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.in_unnest_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.in_unnest_op-298"><a href="#BigQuery.Generator.in_unnest_op-298"><span class="linenos">298</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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="BigQuery.Generator.in_unnest_op-299"><a href="#BigQuery.Generator.in_unnest_op-299"><span class="linenos">299</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.in_unnest_op-292"><a href="#BigQuery.Generator.in_unnest_op-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</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="BigQuery.Generator.in_unnest_op-293"><a href="#BigQuery.Generator.in_unnest_op-293"><span class="linenos">293</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></pre></div> @@ -1062,10 +1044,10 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.except_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.except_op-301"><a href="#BigQuery.Generator.except_op-301"><span class="linenos">301</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator.except_op-302"><a href="#BigQuery.Generator.except_op-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="BigQuery.Generator.except_op-303"><a href="#BigQuery.Generator.except_op-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="BigQuery.Generator.except_op-304"><a href="#BigQuery.Generator.except_op-304"><span class="linenos">304</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.except_op-295"><a href="#BigQuery.Generator.except_op-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator.except_op-296"><a href="#BigQuery.Generator.except_op-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="BigQuery.Generator.except_op-297"><a href="#BigQuery.Generator.except_op-297"><span class="linenos">297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="BigQuery.Generator.except_op-298"><a href="#BigQuery.Generator.except_op-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1083,10 +1065,10 @@ Default: True</li> </div> <a class="headerlink" href="#BigQuery.Generator.intersect_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.intersect_op-306"><a href="#BigQuery.Generator.intersect_op-306"><span class="linenos">306</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="BigQuery.Generator.intersect_op-307"><a href="#BigQuery.Generator.intersect_op-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="BigQuery.Generator.intersect_op-308"><a href="#BigQuery.Generator.intersect_op-308"><span class="linenos">308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> -</span><span id="BigQuery.Generator.intersect_op-309"><a href="#BigQuery.Generator.intersect_op-309"><span class="linenos">309</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BigQuery.Generator.intersect_op-300"><a href="#BigQuery.Generator.intersect_op-300"><span class="linenos">300</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="BigQuery.Generator.intersect_op-301"><a href="#BigQuery.Generator.intersect_op-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="BigQuery.Generator.intersect_op-302"><a href="#BigQuery.Generator.intersect_op-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT without DISTINCT is not supported in BigQuery"</span><span class="p">)</span> +</span><span id="BigQuery.Generator.intersect_op-303"><a href="#BigQuery.Generator.intersect_op-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">' DISTINCT'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1181,6 +1163,8 @@ Default: True</li> <dd id="BigQuery.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="BigQuery.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="BigQuery.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="BigQuery.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="BigQuery.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="BigQuery.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="BigQuery.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="BigQuery.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1261,7 +1245,6 @@ Default: True</li> <dd id="BigQuery.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="BigQuery.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="BigQuery.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="BigQuery.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="BigQuery.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="BigQuery.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="BigQuery.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1303,6 +1286,7 @@ Default: True</li> <dd id="BigQuery.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="BigQuery.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="BigQuery.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="BigQuery.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/clickhouse.html b/docs/sqlglot/dialects/clickhouse.html index 36f93b2..309d5db 100644 --- a/docs/sqlglot/dialects/clickhouse.html +++ b/docs/sqlglot/dialects/clickhouse.html @@ -138,89 +138,86 @@ </span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> </span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">}</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">}</span> <span class="c1"># type: ignore</span> </span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">is_global</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">,</span> <span class="n">is_global</span><span class="p">)</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="L-70"><a href="#L-70"><span class="linenos"> 70</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-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">this</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 class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">)</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">if</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">FINAL</span><span class="p">):</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">this</span> <span class="o">=</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">Final</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">is_global</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">,</span> <span class="n">is_global</span><span class="p">)</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="L-68"><a href="#L-68"><span class="linenos"> 68</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-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">this</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 class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">)</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">if</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">FINAL</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="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">Final</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_position</span><span class="p">(</span><span class="n">haystack_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with/</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</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><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="c1"># WITH <identifier> AS <subquery expression></span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">()</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="c1"># WITH <expression> AS <identifier></span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">statement</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">if</span> <span class="n">statement</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">statement</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">Alias</span><span class="p">):</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_position</span><span class="p">(</span><span class="n">haystack_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with/</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</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><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="c1"># WITH <identifier> AS <subquery expression></span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">()</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="c1"># WITH <expression> AS <identifier></span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</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-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">statement</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">if</span> <span class="n">statement</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">statement</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">Alias</span><span class="p">):</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</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">CTE</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">statement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">statement</span> <span class="ow">and</span> <span class="n">statement</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> </span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</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">CTE</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">statement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">statement</span> <span class="ow">and</span> <span class="n">statement</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</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">NULLABLE</span><span class="p">:</span> <span class="s2">"Nullable"</span><span class="p">,</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</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">DATETIME</span><span class="p">:</span> <span class="s2">"DateTime64"</span><span class="p">,</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</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">MAP</span><span class="p">:</span> <span class="s2">"Map"</span><span class="p">,</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</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">ARRAY</span><span class="p">:</span> <span class="s2">"Array"</span><span class="p">,</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</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">STRUCT</span><span class="p">:</span> <span class="s2">"Tuple"</span><span class="p">,</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</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">TINYINT</span><span class="p">:</span> <span class="s2">"Int8"</span><span class="p">,</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</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">SMALLINT</span><span class="p">:</span> <span class="s2">"Int16"</span><span class="p">,</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</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">"Int32"</span><span class="p">,</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</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">BIGINT</span><span class="p">:</span> <span class="s2">"Int64"</span><span class="p">,</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</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">FLOAT</span><span class="p">:</span> <span class="s2">"Float32"</span><span class="p">,</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</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">DOUBLE</span><span class="p">:</span> <span class="s2">"Float64"</span><span class="p">,</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="p">}</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</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="sa">f</span><span class="s2">"position(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'substr'</span><span class="p">),</span><span class="w"> </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="s1">'position'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Final</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> FINAL"</span><span class="p">,</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</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="sa">f</span><span class="s2">"quantile</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'quantile'</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-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantiles</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="sa">f</span><span class="s2">"quantiles</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">QuantileIf</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="sa">f</span><span class="s2">"quantileIf</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <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">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">def</span> <span class="nf">_param_args_sql</span><span class="p">(</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <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">Expression</span><span class="p">,</span> <span class="n">params_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">args_name</span><span class="p">:</span> <span class="nb">str</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">params_name</span><span class="p">))</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">args_name</span><span class="p">))</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">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-140"><a href="#L-140"><span class="linenos">140</span></a> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</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">NULLABLE</span><span class="p">:</span> <span class="s2">"Nullable"</span><span class="p">,</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</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">DATETIME</span><span class="p">:</span> <span class="s2">"DateTime64"</span><span class="p">,</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</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">MAP</span><span class="p">:</span> <span class="s2">"Map"</span><span class="p">,</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</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">ARRAY</span><span class="p">:</span> <span class="s2">"Array"</span><span class="p">,</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</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">STRUCT</span><span class="p">:</span> <span class="s2">"Tuple"</span><span class="p">,</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</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">TINYINT</span><span class="p">:</span> <span class="s2">"Int8"</span><span class="p">,</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</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">SMALLINT</span><span class="p">:</span> <span class="s2">"Int16"</span><span class="p">,</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</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">"Int32"</span><span class="p">,</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</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">BIGINT</span><span class="p">:</span> <span class="s2">"Int64"</span><span class="p">,</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</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">FLOAT</span><span class="p">:</span> <span class="s2">"Float32"</span><span class="p">,</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</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">DOUBLE</span><span class="p">:</span> <span class="s2">"Float64"</span><span class="p">,</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="p">}</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</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="sa">f</span><span class="s2">"position(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'substr'</span><span class="p">),</span><span class="w"> </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="s1">'position'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Final</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> FINAL"</span><span class="p">,</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</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="sa">f</span><span class="s2">"quantile</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'quantile'</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-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantiles</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="sa">f</span><span class="s2">"quantiles</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">QuantileIf</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="sa">f</span><span class="s2">"quantileIf</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="p">}</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">def</span> <span class="nf">_param_args_sql</span><span class="p">(</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <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">Expression</span><span class="p">,</span> <span class="n">params_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">args_name</span><span class="p">:</span> <span class="nb">str</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">params_name</span><span class="p">))</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">args_name</span><span class="p">))</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</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-137"><a href="#L-137"><span class="linenos">137</span></a> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -278,89 +275,86 @@ </span><span id="ClickHouse-57"><a href="#ClickHouse-57"><span class="linenos"> 57</span></a> </span><span id="ClickHouse-58"><a href="#ClickHouse-58"><span class="linenos"> 58</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">}</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">}</span> <span class="c1"># type: ignore</span> </span><span id="ClickHouse-59"><a href="#ClickHouse-59"><span class="linenos"> 59</span></a> -</span><span id="ClickHouse-60"><a href="#ClickHouse-60"><span class="linenos"> 60</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="ClickHouse-61"><a href="#ClickHouse-61"><span class="linenos"> 61</span></a> -</span><span id="ClickHouse-62"><a href="#ClickHouse-62"><span class="linenos"> 62</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span> -</span><span id="ClickHouse-63"><a href="#ClickHouse-63"><span class="linenos"> 63</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">is_global</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="ClickHouse-64"><a href="#ClickHouse-64"><span class="linenos"> 64</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="ClickHouse-65"><a href="#ClickHouse-65"><span class="linenos"> 65</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="ClickHouse-66"><a href="#ClickHouse-66"><span class="linenos"> 66</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">,</span> <span class="n">is_global</span><span class="p">)</span> -</span><span id="ClickHouse-67"><a href="#ClickHouse-67"><span class="linenos"> 67</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="ClickHouse-68"><a href="#ClickHouse-68"><span class="linenos"> 68</span></a> -</span><span id="ClickHouse-69"><a href="#ClickHouse-69"><span class="linenos"> 69</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> -</span><span id="ClickHouse-70"><a href="#ClickHouse-70"><span class="linenos"> 70</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="ClickHouse-71"><a href="#ClickHouse-71"><span class="linenos"> 71</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="ClickHouse-72"><a href="#ClickHouse-72"><span class="linenos"> 72</span></a> <span class="n">this</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 class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">)</span> -</span><span id="ClickHouse-73"><a href="#ClickHouse-73"><span class="linenos"> 73</span></a> -</span><span id="ClickHouse-74"><a href="#ClickHouse-74"><span class="linenos"> 74</span></a> <span class="k">if</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">FINAL</span><span class="p">):</span> -</span><span id="ClickHouse-75"><a href="#ClickHouse-75"><span class="linenos"> 75</span></a> <span class="n">this</span> <span class="o">=</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">Final</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse-60"><a href="#ClickHouse-60"><span class="linenos"> 60</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span> +</span><span id="ClickHouse-61"><a href="#ClickHouse-61"><span class="linenos"> 61</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">is_global</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="ClickHouse-62"><a href="#ClickHouse-62"><span class="linenos"> 62</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ClickHouse-63"><a href="#ClickHouse-63"><span class="linenos"> 63</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse-64"><a href="#ClickHouse-64"><span class="linenos"> 64</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">,</span> <span class="n">is_global</span><span class="p">)</span> +</span><span id="ClickHouse-65"><a href="#ClickHouse-65"><span class="linenos"> 65</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="ClickHouse-66"><a href="#ClickHouse-66"><span class="linenos"> 66</span></a> +</span><span id="ClickHouse-67"><a href="#ClickHouse-67"><span class="linenos"> 67</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> +</span><span id="ClickHouse-68"><a href="#ClickHouse-68"><span class="linenos"> 68</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="ClickHouse-69"><a href="#ClickHouse-69"><span class="linenos"> 69</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="ClickHouse-70"><a href="#ClickHouse-70"><span class="linenos"> 70</span></a> <span class="n">this</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 class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">)</span> +</span><span id="ClickHouse-71"><a href="#ClickHouse-71"><span class="linenos"> 71</span></a> +</span><span id="ClickHouse-72"><a href="#ClickHouse-72"><span class="linenos"> 72</span></a> <span class="k">if</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">FINAL</span><span class="p">):</span> +</span><span id="ClickHouse-73"><a href="#ClickHouse-73"><span class="linenos"> 73</span></a> <span class="n">this</span> <span class="o">=</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">Final</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse-74"><a href="#ClickHouse-74"><span class="linenos"> 74</span></a> +</span><span id="ClickHouse-75"><a href="#ClickHouse-75"><span class="linenos"> 75</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="ClickHouse-76"><a href="#ClickHouse-76"><span class="linenos"> 76</span></a> -</span><span id="ClickHouse-77"><a href="#ClickHouse-77"><span class="linenos"> 77</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="ClickHouse-78"><a href="#ClickHouse-78"><span class="linenos"> 78</span></a> -</span><span id="ClickHouse-79"><a href="#ClickHouse-79"><span class="linenos"> 79</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="ClickHouse-80"><a href="#ClickHouse-80"><span class="linenos"> 80</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_position</span><span class="p">(</span><span class="n">haystack_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="ClickHouse-81"><a href="#ClickHouse-81"><span class="linenos"> 81</span></a> -</span><span id="ClickHouse-82"><a href="#ClickHouse-82"><span class="linenos"> 82</span></a> <span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with/</span> -</span><span id="ClickHouse-83"><a href="#ClickHouse-83"><span class="linenos"> 83</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="ClickHouse-84"><a href="#ClickHouse-84"><span class="linenos"> 84</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><span id="ClickHouse-85"><a href="#ClickHouse-85"><span class="linenos"> 85</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="ClickHouse-86"><a href="#ClickHouse-86"><span class="linenos"> 86</span></a> <span class="c1"># WITH <identifier> AS <subquery expression></span> -</span><span id="ClickHouse-87"><a href="#ClickHouse-87"><span class="linenos"> 87</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">()</span> -</span><span id="ClickHouse-88"><a href="#ClickHouse-88"><span class="linenos"> 88</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> -</span><span id="ClickHouse-89"><a href="#ClickHouse-89"><span class="linenos"> 89</span></a> <span class="c1"># WITH <expression> AS <identifier></span> -</span><span id="ClickHouse-90"><a href="#ClickHouse-90"><span class="linenos"> 90</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="ClickHouse-91"><a href="#ClickHouse-91"><span class="linenos"> 91</span></a> <span class="n">statement</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="ClickHouse-92"><a href="#ClickHouse-92"><span class="linenos"> 92</span></a> -</span><span id="ClickHouse-93"><a href="#ClickHouse-93"><span class="linenos"> 93</span></a> <span class="k">if</span> <span class="n">statement</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">statement</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">Alias</span><span class="p">):</span> -</span><span id="ClickHouse-94"><a href="#ClickHouse-94"><span class="linenos"> 94</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="ClickHouse-77"><a href="#ClickHouse-77"><span class="linenos"> 77</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ClickHouse-78"><a href="#ClickHouse-78"><span class="linenos"> 78</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_position</span><span class="p">(</span><span class="n">haystack_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="ClickHouse-79"><a href="#ClickHouse-79"><span class="linenos"> 79</span></a> +</span><span id="ClickHouse-80"><a href="#ClickHouse-80"><span class="linenos"> 80</span></a> <span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with/</span> +</span><span id="ClickHouse-81"><a href="#ClickHouse-81"><span class="linenos"> 81</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ClickHouse-82"><a href="#ClickHouse-82"><span class="linenos"> 82</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><span id="ClickHouse-83"><a href="#ClickHouse-83"><span class="linenos"> 83</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="ClickHouse-84"><a href="#ClickHouse-84"><span class="linenos"> 84</span></a> <span class="c1"># WITH <identifier> AS <subquery expression></span> +</span><span id="ClickHouse-85"><a href="#ClickHouse-85"><span class="linenos"> 85</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">()</span> +</span><span id="ClickHouse-86"><a href="#ClickHouse-86"><span class="linenos"> 86</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> +</span><span id="ClickHouse-87"><a href="#ClickHouse-87"><span class="linenos"> 87</span></a> <span class="c1"># WITH <expression> AS <identifier></span> +</span><span id="ClickHouse-88"><a href="#ClickHouse-88"><span class="linenos"> 88</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="ClickHouse-89"><a href="#ClickHouse-89"><span class="linenos"> 89</span></a> <span class="n">statement</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> +</span><span id="ClickHouse-90"><a href="#ClickHouse-90"><span class="linenos"> 90</span></a> +</span><span id="ClickHouse-91"><a href="#ClickHouse-91"><span class="linenos"> 91</span></a> <span class="k">if</span> <span class="n">statement</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">statement</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">Alias</span><span class="p">):</span> +</span><span id="ClickHouse-92"><a href="#ClickHouse-92"><span class="linenos"> 92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="ClickHouse-93"><a href="#ClickHouse-93"><span class="linenos"> 93</span></a> +</span><span id="ClickHouse-94"><a href="#ClickHouse-94"><span class="linenos"> 94</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">CTE</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">statement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">statement</span> <span class="ow">and</span> <span class="n">statement</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> </span><span id="ClickHouse-95"><a href="#ClickHouse-95"><span class="linenos"> 95</span></a> -</span><span id="ClickHouse-96"><a href="#ClickHouse-96"><span class="linenos"> 96</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">CTE</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">statement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">statement</span> <span class="ow">and</span> <span class="n">statement</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="ClickHouse-97"><a href="#ClickHouse-97"><span class="linenos"> 97</span></a> -</span><span id="ClickHouse-98"><a href="#ClickHouse-98"><span class="linenos"> 98</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="ClickHouse-99"><a href="#ClickHouse-99"><span class="linenos"> 99</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="ClickHouse-100"><a href="#ClickHouse-100"><span class="linenos">100</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="ClickHouse-101"><a href="#ClickHouse-101"><span class="linenos">101</span></a> -</span><span id="ClickHouse-102"><a href="#ClickHouse-102"><span class="linenos">102</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="ClickHouse-103"><a href="#ClickHouse-103"><span class="linenos">103</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="ClickHouse-104"><a href="#ClickHouse-104"><span class="linenos">104</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">NULLABLE</span><span class="p">:</span> <span class="s2">"Nullable"</span><span class="p">,</span> -</span><span id="ClickHouse-105"><a href="#ClickHouse-105"><span class="linenos">105</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">DATETIME</span><span class="p">:</span> <span class="s2">"DateTime64"</span><span class="p">,</span> -</span><span id="ClickHouse-106"><a href="#ClickHouse-106"><span class="linenos">106</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">MAP</span><span class="p">:</span> <span class="s2">"Map"</span><span class="p">,</span> -</span><span id="ClickHouse-107"><a href="#ClickHouse-107"><span class="linenos">107</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">ARRAY</span><span class="p">:</span> <span class="s2">"Array"</span><span class="p">,</span> -</span><span id="ClickHouse-108"><a href="#ClickHouse-108"><span class="linenos">108</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">STRUCT</span><span class="p">:</span> <span class="s2">"Tuple"</span><span class="p">,</span> -</span><span id="ClickHouse-109"><a href="#ClickHouse-109"><span class="linenos">109</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">TINYINT</span><span class="p">:</span> <span class="s2">"Int8"</span><span class="p">,</span> -</span><span id="ClickHouse-110"><a href="#ClickHouse-110"><span class="linenos">110</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">SMALLINT</span><span class="p">:</span> <span class="s2">"Int16"</span><span class="p">,</span> -</span><span id="ClickHouse-111"><a href="#ClickHouse-111"><span class="linenos">111</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">"Int32"</span><span class="p">,</span> -</span><span id="ClickHouse-112"><a href="#ClickHouse-112"><span class="linenos">112</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">BIGINT</span><span class="p">:</span> <span class="s2">"Int64"</span><span class="p">,</span> -</span><span id="ClickHouse-113"><a href="#ClickHouse-113"><span class="linenos">113</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">FLOAT</span><span class="p">:</span> <span class="s2">"Float32"</span><span class="p">,</span> -</span><span id="ClickHouse-114"><a href="#ClickHouse-114"><span class="linenos">114</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">DOUBLE</span><span class="p">:</span> <span class="s2">"Float64"</span><span class="p">,</span> -</span><span id="ClickHouse-115"><a href="#ClickHouse-115"><span class="linenos">115</span></a> <span class="p">}</span> -</span><span id="ClickHouse-116"><a href="#ClickHouse-116"><span class="linenos">116</span></a> -</span><span id="ClickHouse-117"><a href="#ClickHouse-117"><span class="linenos">117</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="ClickHouse-118"><a href="#ClickHouse-118"><span class="linenos">118</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="ClickHouse-119"><a href="#ClickHouse-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="ClickHouse-120"><a href="#ClickHouse-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</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="sa">f</span><span class="s2">"position(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'substr'</span><span class="p">),</span><span class="w"> </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="s1">'position'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="ClickHouse-121"><a href="#ClickHouse-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Final</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> FINAL"</span><span class="p">,</span> -</span><span id="ClickHouse-122"><a href="#ClickHouse-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> -</span><span id="ClickHouse-123"><a href="#ClickHouse-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> -</span><span id="ClickHouse-124"><a href="#ClickHouse-124"><span class="linenos">124</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</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="sa">f</span><span class="s2">"quantile</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'quantile'</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="ClickHouse-125"><a href="#ClickHouse-125"><span class="linenos">125</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantiles</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="sa">f</span><span class="s2">"quantiles</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="ClickHouse-126"><a href="#ClickHouse-126"><span class="linenos">126</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">QuantileIf</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="sa">f</span><span class="s2">"quantileIf</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="ClickHouse-127"><a href="#ClickHouse-127"><span class="linenos">127</span></a> <span class="p">}</span> -</span><span id="ClickHouse-128"><a href="#ClickHouse-128"><span class="linenos">128</span></a> -</span><span id="ClickHouse-129"><a href="#ClickHouse-129"><span class="linenos">129</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="ClickHouse-130"><a href="#ClickHouse-130"><span class="linenos">130</span></a> -</span><span id="ClickHouse-131"><a href="#ClickHouse-131"><span class="linenos">131</span></a> <span class="k">def</span> <span class="nf">_param_args_sql</span><span class="p">(</span> -</span><span id="ClickHouse-132"><a href="#ClickHouse-132"><span class="linenos">132</span></a> <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">Expression</span><span class="p">,</span> <span class="n">params_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">args_name</span><span class="p">:</span> <span class="nb">str</span> -</span><span id="ClickHouse-133"><a href="#ClickHouse-133"><span class="linenos">133</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="ClickHouse-134"><a href="#ClickHouse-134"><span class="linenos">134</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">params_name</span><span class="p">))</span> -</span><span id="ClickHouse-135"><a href="#ClickHouse-135"><span class="linenos">135</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">args_name</span><span class="p">))</span> -</span><span id="ClickHouse-136"><a href="#ClickHouse-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="ClickHouse-137"><a href="#ClickHouse-137"><span class="linenos">137</span></a> -</span><span id="ClickHouse-138"><a href="#ClickHouse-138"><span class="linenos">138</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="ClickHouse-139"><a href="#ClickHouse-139"><span class="linenos">139</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> -</span><span id="ClickHouse-140"><a href="#ClickHouse-140"><span class="linenos">140</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="ClickHouse-141"><a href="#ClickHouse-141"><span class="linenos">141</span></a> -</span><span id="ClickHouse-142"><a href="#ClickHouse-142"><span class="linenos">142</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="ClickHouse-96"><a href="#ClickHouse-96"><span class="linenos"> 96</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="ClickHouse-97"><a href="#ClickHouse-97"><span class="linenos"> 97</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="ClickHouse-98"><a href="#ClickHouse-98"><span class="linenos"> 98</span></a> +</span><span id="ClickHouse-99"><a href="#ClickHouse-99"><span class="linenos"> 99</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="ClickHouse-100"><a href="#ClickHouse-100"><span class="linenos">100</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="ClickHouse-101"><a href="#ClickHouse-101"><span class="linenos">101</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">NULLABLE</span><span class="p">:</span> <span class="s2">"Nullable"</span><span class="p">,</span> +</span><span id="ClickHouse-102"><a href="#ClickHouse-102"><span class="linenos">102</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">DATETIME</span><span class="p">:</span> <span class="s2">"DateTime64"</span><span class="p">,</span> +</span><span id="ClickHouse-103"><a href="#ClickHouse-103"><span class="linenos">103</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">MAP</span><span class="p">:</span> <span class="s2">"Map"</span><span class="p">,</span> +</span><span id="ClickHouse-104"><a href="#ClickHouse-104"><span class="linenos">104</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">ARRAY</span><span class="p">:</span> <span class="s2">"Array"</span><span class="p">,</span> +</span><span id="ClickHouse-105"><a href="#ClickHouse-105"><span class="linenos">105</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">STRUCT</span><span class="p">:</span> <span class="s2">"Tuple"</span><span class="p">,</span> +</span><span id="ClickHouse-106"><a href="#ClickHouse-106"><span class="linenos">106</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">TINYINT</span><span class="p">:</span> <span class="s2">"Int8"</span><span class="p">,</span> +</span><span id="ClickHouse-107"><a href="#ClickHouse-107"><span class="linenos">107</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">SMALLINT</span><span class="p">:</span> <span class="s2">"Int16"</span><span class="p">,</span> +</span><span id="ClickHouse-108"><a href="#ClickHouse-108"><span class="linenos">108</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">"Int32"</span><span class="p">,</span> +</span><span id="ClickHouse-109"><a href="#ClickHouse-109"><span class="linenos">109</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">BIGINT</span><span class="p">:</span> <span class="s2">"Int64"</span><span class="p">,</span> +</span><span id="ClickHouse-110"><a href="#ClickHouse-110"><span class="linenos">110</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">FLOAT</span><span class="p">:</span> <span class="s2">"Float32"</span><span class="p">,</span> +</span><span id="ClickHouse-111"><a href="#ClickHouse-111"><span class="linenos">111</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">DOUBLE</span><span class="p">:</span> <span class="s2">"Float64"</span><span class="p">,</span> +</span><span id="ClickHouse-112"><a href="#ClickHouse-112"><span class="linenos">112</span></a> <span class="p">}</span> +</span><span id="ClickHouse-113"><a href="#ClickHouse-113"><span class="linenos">113</span></a> +</span><span id="ClickHouse-114"><a href="#ClickHouse-114"><span class="linenos">114</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="ClickHouse-115"><a href="#ClickHouse-115"><span class="linenos">115</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="ClickHouse-116"><a href="#ClickHouse-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="ClickHouse-117"><a href="#ClickHouse-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</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="sa">f</span><span class="s2">"position(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'substr'</span><span class="p">),</span><span class="w"> </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="s1">'position'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="ClickHouse-118"><a href="#ClickHouse-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Final</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> FINAL"</span><span class="p">,</span> +</span><span id="ClickHouse-119"><a href="#ClickHouse-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> +</span><span id="ClickHouse-120"><a href="#ClickHouse-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> +</span><span id="ClickHouse-121"><a href="#ClickHouse-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</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="sa">f</span><span class="s2">"quantile</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'quantile'</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="ClickHouse-122"><a href="#ClickHouse-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantiles</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="sa">f</span><span class="s2">"quantiles</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="ClickHouse-123"><a href="#ClickHouse-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">QuantileIf</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="sa">f</span><span class="s2">"quantileIf</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="ClickHouse-124"><a href="#ClickHouse-124"><span class="linenos">124</span></a> <span class="p">}</span> +</span><span id="ClickHouse-125"><a href="#ClickHouse-125"><span class="linenos">125</span></a> +</span><span id="ClickHouse-126"><a href="#ClickHouse-126"><span class="linenos">126</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="ClickHouse-127"><a href="#ClickHouse-127"><span class="linenos">127</span></a> +</span><span id="ClickHouse-128"><a href="#ClickHouse-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">_param_args_sql</span><span class="p">(</span> +</span><span id="ClickHouse-129"><a href="#ClickHouse-129"><span class="linenos">129</span></a> <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">Expression</span><span class="p">,</span> <span class="n">params_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">args_name</span><span class="p">:</span> <span class="nb">str</span> +</span><span id="ClickHouse-130"><a href="#ClickHouse-130"><span class="linenos">130</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="ClickHouse-131"><a href="#ClickHouse-131"><span class="linenos">131</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">params_name</span><span class="p">))</span> +</span><span id="ClickHouse-132"><a href="#ClickHouse-132"><span class="linenos">132</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">args_name</span><span class="p">))</span> +</span><span id="ClickHouse-133"><a href="#ClickHouse-133"><span class="linenos">133</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="ClickHouse-134"><a href="#ClickHouse-134"><span class="linenos">134</span></a> +</span><span id="ClickHouse-135"><a href="#ClickHouse-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="ClickHouse-136"><a href="#ClickHouse-136"><span class="linenos">136</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> +</span><span id="ClickHouse-137"><a href="#ClickHouse-137"><span class="linenos">137</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="ClickHouse-138"><a href="#ClickHouse-138"><span class="linenos">138</span></a> +</span><span id="ClickHouse-139"><a href="#ClickHouse-139"><span class="linenos">139</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -376,6 +370,7 @@ <dd id="ClickHouse.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="ClickHouse.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="ClickHouse.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="ClickHouse.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="ClickHouse.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="ClickHouse.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -458,43 +453,41 @@ </span><span id="ClickHouse.Parser-57"><a href="#ClickHouse.Parser-57"><span class="linenos">57</span></a> </span><span id="ClickHouse.Parser-58"><a href="#ClickHouse.Parser-58"><span class="linenos">58</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">}</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">}</span> <span class="c1"># type: ignore</span> </span><span id="ClickHouse.Parser-59"><a href="#ClickHouse.Parser-59"><span class="linenos">59</span></a> -</span><span id="ClickHouse.Parser-60"><a href="#ClickHouse.Parser-60"><span class="linenos">60</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="ClickHouse.Parser-61"><a href="#ClickHouse.Parser-61"><span class="linenos">61</span></a> -</span><span id="ClickHouse.Parser-62"><a href="#ClickHouse.Parser-62"><span class="linenos">62</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span> -</span><span id="ClickHouse.Parser-63"><a href="#ClickHouse.Parser-63"><span class="linenos">63</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">is_global</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="ClickHouse.Parser-64"><a href="#ClickHouse.Parser-64"><span class="linenos">64</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="ClickHouse.Parser-65"><a href="#ClickHouse.Parser-65"><span class="linenos">65</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="ClickHouse.Parser-66"><a href="#ClickHouse.Parser-66"><span class="linenos">66</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">,</span> <span class="n">is_global</span><span class="p">)</span> -</span><span id="ClickHouse.Parser-67"><a href="#ClickHouse.Parser-67"><span class="linenos">67</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="ClickHouse.Parser-68"><a href="#ClickHouse.Parser-68"><span class="linenos">68</span></a> -</span><span id="ClickHouse.Parser-69"><a href="#ClickHouse.Parser-69"><span class="linenos">69</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> -</span><span id="ClickHouse.Parser-70"><a href="#ClickHouse.Parser-70"><span class="linenos">70</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="ClickHouse.Parser-71"><a href="#ClickHouse.Parser-71"><span class="linenos">71</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="ClickHouse.Parser-72"><a href="#ClickHouse.Parser-72"><span class="linenos">72</span></a> <span class="n">this</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 class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">)</span> -</span><span id="ClickHouse.Parser-73"><a href="#ClickHouse.Parser-73"><span class="linenos">73</span></a> -</span><span id="ClickHouse.Parser-74"><a href="#ClickHouse.Parser-74"><span class="linenos">74</span></a> <span class="k">if</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">FINAL</span><span class="p">):</span> -</span><span id="ClickHouse.Parser-75"><a href="#ClickHouse.Parser-75"><span class="linenos">75</span></a> <span class="n">this</span> <span class="o">=</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">Final</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-60"><a href="#ClickHouse.Parser-60"><span class="linenos">60</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span> +</span><span id="ClickHouse.Parser-61"><a href="#ClickHouse.Parser-61"><span class="linenos">61</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">is_global</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="ClickHouse.Parser-62"><a href="#ClickHouse.Parser-62"><span class="linenos">62</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ClickHouse.Parser-63"><a href="#ClickHouse.Parser-63"><span class="linenos">63</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-64"><a href="#ClickHouse.Parser-64"><span class="linenos">64</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">,</span> <span class="n">is_global</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-65"><a href="#ClickHouse.Parser-65"><span class="linenos">65</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="ClickHouse.Parser-66"><a href="#ClickHouse.Parser-66"><span class="linenos">66</span></a> +</span><span id="ClickHouse.Parser-67"><a href="#ClickHouse.Parser-67"><span class="linenos">67</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> +</span><span id="ClickHouse.Parser-68"><a href="#ClickHouse.Parser-68"><span class="linenos">68</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="ClickHouse.Parser-69"><a href="#ClickHouse.Parser-69"><span class="linenos">69</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="ClickHouse.Parser-70"><a href="#ClickHouse.Parser-70"><span class="linenos">70</span></a> <span class="n">this</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 class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">,</span> <span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-71"><a href="#ClickHouse.Parser-71"><span class="linenos">71</span></a> +</span><span id="ClickHouse.Parser-72"><a href="#ClickHouse.Parser-72"><span class="linenos">72</span></a> <span class="k">if</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">FINAL</span><span class="p">):</span> +</span><span id="ClickHouse.Parser-73"><a href="#ClickHouse.Parser-73"><span class="linenos">73</span></a> <span class="n">this</span> <span class="o">=</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">Final</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-74"><a href="#ClickHouse.Parser-74"><span class="linenos">74</span></a> +</span><span id="ClickHouse.Parser-75"><a href="#ClickHouse.Parser-75"><span class="linenos">75</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="ClickHouse.Parser-76"><a href="#ClickHouse.Parser-76"><span class="linenos">76</span></a> -</span><span id="ClickHouse.Parser-77"><a href="#ClickHouse.Parser-77"><span class="linenos">77</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="ClickHouse.Parser-78"><a href="#ClickHouse.Parser-78"><span class="linenos">78</span></a> -</span><span id="ClickHouse.Parser-79"><a href="#ClickHouse.Parser-79"><span class="linenos">79</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="ClickHouse.Parser-80"><a href="#ClickHouse.Parser-80"><span class="linenos">80</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_position</span><span class="p">(</span><span class="n">haystack_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="ClickHouse.Parser-81"><a href="#ClickHouse.Parser-81"><span class="linenos">81</span></a> -</span><span id="ClickHouse.Parser-82"><a href="#ClickHouse.Parser-82"><span class="linenos">82</span></a> <span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with/</span> -</span><span id="ClickHouse.Parser-83"><a href="#ClickHouse.Parser-83"><span class="linenos">83</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="ClickHouse.Parser-84"><a href="#ClickHouse.Parser-84"><span class="linenos">84</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><span id="ClickHouse.Parser-85"><a href="#ClickHouse.Parser-85"><span class="linenos">85</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="ClickHouse.Parser-86"><a href="#ClickHouse.Parser-86"><span class="linenos">86</span></a> <span class="c1"># WITH <identifier> AS <subquery expression></span> -</span><span id="ClickHouse.Parser-87"><a href="#ClickHouse.Parser-87"><span class="linenos">87</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">()</span> -</span><span id="ClickHouse.Parser-88"><a href="#ClickHouse.Parser-88"><span class="linenos">88</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> -</span><span id="ClickHouse.Parser-89"><a href="#ClickHouse.Parser-89"><span class="linenos">89</span></a> <span class="c1"># WITH <expression> AS <identifier></span> -</span><span id="ClickHouse.Parser-90"><a href="#ClickHouse.Parser-90"><span class="linenos">90</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="ClickHouse.Parser-91"><a href="#ClickHouse.Parser-91"><span class="linenos">91</span></a> <span class="n">statement</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="ClickHouse.Parser-92"><a href="#ClickHouse.Parser-92"><span class="linenos">92</span></a> -</span><span id="ClickHouse.Parser-93"><a href="#ClickHouse.Parser-93"><span class="linenos">93</span></a> <span class="k">if</span> <span class="n">statement</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">statement</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">Alias</span><span class="p">):</span> -</span><span id="ClickHouse.Parser-94"><a href="#ClickHouse.Parser-94"><span class="linenos">94</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> -</span><span id="ClickHouse.Parser-95"><a href="#ClickHouse.Parser-95"><span class="linenos">95</span></a> -</span><span id="ClickHouse.Parser-96"><a href="#ClickHouse.Parser-96"><span class="linenos">96</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">CTE</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">statement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">statement</span> <span class="ow">and</span> <span class="n">statement</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-77"><a href="#ClickHouse.Parser-77"><span class="linenos">77</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ClickHouse.Parser-78"><a href="#ClickHouse.Parser-78"><span class="linenos">78</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_position</span><span class="p">(</span><span class="n">haystack_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-79"><a href="#ClickHouse.Parser-79"><span class="linenos">79</span></a> +</span><span id="ClickHouse.Parser-80"><a href="#ClickHouse.Parser-80"><span class="linenos">80</span></a> <span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/with/</span> +</span><span id="ClickHouse.Parser-81"><a href="#ClickHouse.Parser-81"><span class="linenos">81</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ClickHouse.Parser-82"><a href="#ClickHouse.Parser-82"><span class="linenos">82</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><span id="ClickHouse.Parser-83"><a href="#ClickHouse.Parser-83"><span class="linenos">83</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="ClickHouse.Parser-84"><a href="#ClickHouse.Parser-84"><span class="linenos">84</span></a> <span class="c1"># WITH <identifier> AS <subquery expression></span> +</span><span id="ClickHouse.Parser-85"><a href="#ClickHouse.Parser-85"><span class="linenos">85</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">()</span> +</span><span id="ClickHouse.Parser-86"><a href="#ClickHouse.Parser-86"><span class="linenos">86</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> +</span><span id="ClickHouse.Parser-87"><a href="#ClickHouse.Parser-87"><span class="linenos">87</span></a> <span class="c1"># WITH <expression> AS <identifier></span> +</span><span id="ClickHouse.Parser-88"><a href="#ClickHouse.Parser-88"><span class="linenos">88</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="ClickHouse.Parser-89"><a href="#ClickHouse.Parser-89"><span class="linenos">89</span></a> <span class="n">statement</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> +</span><span id="ClickHouse.Parser-90"><a href="#ClickHouse.Parser-90"><span class="linenos">90</span></a> +</span><span id="ClickHouse.Parser-91"><a href="#ClickHouse.Parser-91"><span class="linenos">91</span></a> <span class="k">if</span> <span class="n">statement</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">statement</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">Alias</span><span class="p">):</span> +</span><span id="ClickHouse.Parser-92"><a href="#ClickHouse.Parser-92"><span class="linenos">92</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="ClickHouse.Parser-93"><a href="#ClickHouse.Parser-93"><span class="linenos">93</span></a> +</span><span id="ClickHouse.Parser-94"><a href="#ClickHouse.Parser-94"><span class="linenos">94</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">CTE</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">statement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">statement</span> <span class="ow">and</span> <span class="n">statement</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> </span></pre></div> @@ -551,51 +544,50 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#ClickHouse.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ClickHouse.Generator-98"><a href="#ClickHouse.Generator-98"><span class="linenos"> 98</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="ClickHouse.Generator-99"><a href="#ClickHouse.Generator-99"><span class="linenos"> 99</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="ClickHouse.Generator-100"><a href="#ClickHouse.Generator-100"><span class="linenos">100</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="ClickHouse.Generator-101"><a href="#ClickHouse.Generator-101"><span class="linenos">101</span></a> -</span><span id="ClickHouse.Generator-102"><a href="#ClickHouse.Generator-102"><span class="linenos">102</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="ClickHouse.Generator-103"><a href="#ClickHouse.Generator-103"><span class="linenos">103</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="ClickHouse.Generator-104"><a href="#ClickHouse.Generator-104"><span class="linenos">104</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">NULLABLE</span><span class="p">:</span> <span class="s2">"Nullable"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-105"><a href="#ClickHouse.Generator-105"><span class="linenos">105</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">DATETIME</span><span class="p">:</span> <span class="s2">"DateTime64"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-106"><a href="#ClickHouse.Generator-106"><span class="linenos">106</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">MAP</span><span class="p">:</span> <span class="s2">"Map"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-107"><a href="#ClickHouse.Generator-107"><span class="linenos">107</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">ARRAY</span><span class="p">:</span> <span class="s2">"Array"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-108"><a href="#ClickHouse.Generator-108"><span class="linenos">108</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">STRUCT</span><span class="p">:</span> <span class="s2">"Tuple"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-109"><a href="#ClickHouse.Generator-109"><span class="linenos">109</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">TINYINT</span><span class="p">:</span> <span class="s2">"Int8"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-110"><a href="#ClickHouse.Generator-110"><span class="linenos">110</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">SMALLINT</span><span class="p">:</span> <span class="s2">"Int16"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-111"><a href="#ClickHouse.Generator-111"><span class="linenos">111</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">"Int32"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-112"><a href="#ClickHouse.Generator-112"><span class="linenos">112</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">BIGINT</span><span class="p">:</span> <span class="s2">"Int64"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-113"><a href="#ClickHouse.Generator-113"><span class="linenos">113</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">FLOAT</span><span class="p">:</span> <span class="s2">"Float32"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-114"><a href="#ClickHouse.Generator-114"><span class="linenos">114</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">DOUBLE</span><span class="p">:</span> <span class="s2">"Float64"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-115"><a href="#ClickHouse.Generator-115"><span class="linenos">115</span></a> <span class="p">}</span> -</span><span id="ClickHouse.Generator-116"><a href="#ClickHouse.Generator-116"><span class="linenos">116</span></a> -</span><span id="ClickHouse.Generator-117"><a href="#ClickHouse.Generator-117"><span class="linenos">117</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="ClickHouse.Generator-118"><a href="#ClickHouse.Generator-118"><span class="linenos">118</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="ClickHouse.Generator-119"><a href="#ClickHouse.Generator-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-120"><a href="#ClickHouse.Generator-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</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="sa">f</span><span class="s2">"position(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'substr'</span><span class="p">),</span><span class="w"> </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="s1">'position'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-121"><a href="#ClickHouse.Generator-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Final</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> FINAL"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-122"><a href="#ClickHouse.Generator-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> -</span><span id="ClickHouse.Generator-123"><a href="#ClickHouse.Generator-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> -</span><span id="ClickHouse.Generator-124"><a href="#ClickHouse.Generator-124"><span class="linenos">124</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</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="sa">f</span><span class="s2">"quantile</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'quantile'</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="ClickHouse.Generator-125"><a href="#ClickHouse.Generator-125"><span class="linenos">125</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantiles</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="sa">f</span><span class="s2">"quantiles</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-126"><a href="#ClickHouse.Generator-126"><span class="linenos">126</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">QuantileIf</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="sa">f</span><span class="s2">"quantileIf</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="ClickHouse.Generator-127"><a href="#ClickHouse.Generator-127"><span class="linenos">127</span></a> <span class="p">}</span> -</span><span id="ClickHouse.Generator-128"><a href="#ClickHouse.Generator-128"><span class="linenos">128</span></a> -</span><span id="ClickHouse.Generator-129"><a href="#ClickHouse.Generator-129"><span class="linenos">129</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="ClickHouse.Generator-130"><a href="#ClickHouse.Generator-130"><span class="linenos">130</span></a> -</span><span id="ClickHouse.Generator-131"><a href="#ClickHouse.Generator-131"><span class="linenos">131</span></a> <span class="k">def</span> <span class="nf">_param_args_sql</span><span class="p">(</span> -</span><span id="ClickHouse.Generator-132"><a href="#ClickHouse.Generator-132"><span class="linenos">132</span></a> <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">Expression</span><span class="p">,</span> <span class="n">params_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">args_name</span><span class="p">:</span> <span class="nb">str</span> -</span><span id="ClickHouse.Generator-133"><a href="#ClickHouse.Generator-133"><span class="linenos">133</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="ClickHouse.Generator-134"><a href="#ClickHouse.Generator-134"><span class="linenos">134</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">params_name</span><span class="p">))</span> -</span><span id="ClickHouse.Generator-135"><a href="#ClickHouse.Generator-135"><span class="linenos">135</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">args_name</span><span class="p">))</span> -</span><span id="ClickHouse.Generator-136"><a href="#ClickHouse.Generator-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="ClickHouse.Generator-137"><a href="#ClickHouse.Generator-137"><span class="linenos">137</span></a> -</span><span id="ClickHouse.Generator-138"><a href="#ClickHouse.Generator-138"><span class="linenos">138</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="ClickHouse.Generator-139"><a href="#ClickHouse.Generator-139"><span class="linenos">139</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> -</span><span id="ClickHouse.Generator-140"><a href="#ClickHouse.Generator-140"><span class="linenos">140</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="ClickHouse.Generator-141"><a href="#ClickHouse.Generator-141"><span class="linenos">141</span></a> -</span><span id="ClickHouse.Generator-142"><a href="#ClickHouse.Generator-142"><span class="linenos">142</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ClickHouse.Generator-96"><a href="#ClickHouse.Generator-96"><span class="linenos"> 96</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="ClickHouse.Generator-97"><a href="#ClickHouse.Generator-97"><span class="linenos"> 97</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="ClickHouse.Generator-98"><a href="#ClickHouse.Generator-98"><span class="linenos"> 98</span></a> +</span><span id="ClickHouse.Generator-99"><a href="#ClickHouse.Generator-99"><span class="linenos"> 99</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="ClickHouse.Generator-100"><a href="#ClickHouse.Generator-100"><span class="linenos">100</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="ClickHouse.Generator-101"><a href="#ClickHouse.Generator-101"><span class="linenos">101</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">NULLABLE</span><span class="p">:</span> <span class="s2">"Nullable"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-102"><a href="#ClickHouse.Generator-102"><span class="linenos">102</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">DATETIME</span><span class="p">:</span> <span class="s2">"DateTime64"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-103"><a href="#ClickHouse.Generator-103"><span class="linenos">103</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">MAP</span><span class="p">:</span> <span class="s2">"Map"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-104"><a href="#ClickHouse.Generator-104"><span class="linenos">104</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">ARRAY</span><span class="p">:</span> <span class="s2">"Array"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-105"><a href="#ClickHouse.Generator-105"><span class="linenos">105</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">STRUCT</span><span class="p">:</span> <span class="s2">"Tuple"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-106"><a href="#ClickHouse.Generator-106"><span class="linenos">106</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">TINYINT</span><span class="p">:</span> <span class="s2">"Int8"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-107"><a href="#ClickHouse.Generator-107"><span class="linenos">107</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">SMALLINT</span><span class="p">:</span> <span class="s2">"Int16"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-108"><a href="#ClickHouse.Generator-108"><span class="linenos">108</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">"Int32"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-109"><a href="#ClickHouse.Generator-109"><span class="linenos">109</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">BIGINT</span><span class="p">:</span> <span class="s2">"Int64"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-110"><a href="#ClickHouse.Generator-110"><span class="linenos">110</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">FLOAT</span><span class="p">:</span> <span class="s2">"Float32"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-111"><a href="#ClickHouse.Generator-111"><span class="linenos">111</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">DOUBLE</span><span class="p">:</span> <span class="s2">"Float64"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-112"><a href="#ClickHouse.Generator-112"><span class="linenos">112</span></a> <span class="p">}</span> +</span><span id="ClickHouse.Generator-113"><a href="#ClickHouse.Generator-113"><span class="linenos">113</span></a> +</span><span id="ClickHouse.Generator-114"><a href="#ClickHouse.Generator-114"><span class="linenos">114</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="ClickHouse.Generator-115"><a href="#ClickHouse.Generator-115"><span class="linenos">115</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="ClickHouse.Generator-116"><a href="#ClickHouse.Generator-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-117"><a href="#ClickHouse.Generator-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</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="sa">f</span><span class="s2">"position(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'substr'</span><span class="p">),</span><span class="w"> </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="s1">'position'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-118"><a href="#ClickHouse.Generator-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Final</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> FINAL"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-119"><a href="#ClickHouse.Generator-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> +</span><span id="ClickHouse.Generator-120"><a href="#ClickHouse.Generator-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">_lower_func</span><span class="p">(</span><span class="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)),</span> +</span><span id="ClickHouse.Generator-121"><a href="#ClickHouse.Generator-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</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="sa">f</span><span class="s2">"quantile</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'quantile'</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="ClickHouse.Generator-122"><a href="#ClickHouse.Generator-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantiles</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="sa">f</span><span class="s2">"quantiles</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-123"><a href="#ClickHouse.Generator-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">QuantileIf</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="sa">f</span><span class="s2">"quantileIf</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_param_args_sql</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="s1">'parameters'</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="ClickHouse.Generator-124"><a href="#ClickHouse.Generator-124"><span class="linenos">124</span></a> <span class="p">}</span> +</span><span id="ClickHouse.Generator-125"><a href="#ClickHouse.Generator-125"><span class="linenos">125</span></a> +</span><span id="ClickHouse.Generator-126"><a href="#ClickHouse.Generator-126"><span class="linenos">126</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="ClickHouse.Generator-127"><a href="#ClickHouse.Generator-127"><span class="linenos">127</span></a> +</span><span id="ClickHouse.Generator-128"><a href="#ClickHouse.Generator-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">_param_args_sql</span><span class="p">(</span> +</span><span id="ClickHouse.Generator-129"><a href="#ClickHouse.Generator-129"><span class="linenos">129</span></a> <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">Expression</span><span class="p">,</span> <span class="n">params_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">args_name</span><span class="p">:</span> <span class="nb">str</span> +</span><span id="ClickHouse.Generator-130"><a href="#ClickHouse.Generator-130"><span class="linenos">130</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="ClickHouse.Generator-131"><a href="#ClickHouse.Generator-131"><span class="linenos">131</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">params_name</span><span class="p">))</span> +</span><span id="ClickHouse.Generator-132"><a href="#ClickHouse.Generator-132"><span class="linenos">132</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_args</span><span class="p">(</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">args_name</span><span class="p">))</span> +</span><span id="ClickHouse.Generator-133"><a href="#ClickHouse.Generator-133"><span class="linenos">133</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">params</span><span class="si">}</span><span class="s2">)(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="ClickHouse.Generator-134"><a href="#ClickHouse.Generator-134"><span class="linenos">134</span></a> +</span><span id="ClickHouse.Generator-135"><a href="#ClickHouse.Generator-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="ClickHouse.Generator-136"><a href="#ClickHouse.Generator-136"><span class="linenos">136</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> +</span><span id="ClickHouse.Generator-137"><a href="#ClickHouse.Generator-137"><span class="linenos">137</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="ClickHouse.Generator-138"><a href="#ClickHouse.Generator-138"><span class="linenos">138</span></a> +</span><span id="ClickHouse.Generator-139"><a href="#ClickHouse.Generator-139"><span class="linenos">139</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -612,8 +604,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -655,11 +646,11 @@ Default: True</li> </div> <a class="headerlink" href="#ClickHouse.Generator.cte_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ClickHouse.Generator.cte_sql-138"><a href="#ClickHouse.Generator.cte_sql-138"><span class="linenos">138</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="ClickHouse.Generator.cte_sql-139"><a href="#ClickHouse.Generator.cte_sql-139"><span class="linenos">139</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> -</span><span id="ClickHouse.Generator.cte_sql-140"><a href="#ClickHouse.Generator.cte_sql-140"><span class="linenos">140</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="ClickHouse.Generator.cte_sql-141"><a href="#ClickHouse.Generator.cte_sql-141"><span class="linenos">141</span></a> -</span><span id="ClickHouse.Generator.cte_sql-142"><a href="#ClickHouse.Generator.cte_sql-142"><span class="linenos">142</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ClickHouse.Generator.cte_sql-135"><a href="#ClickHouse.Generator.cte_sql-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="ClickHouse.Generator.cte_sql-136"><a href="#ClickHouse.Generator.cte_sql-136"><span class="linenos">136</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> +</span><span id="ClickHouse.Generator.cte_sql-137"><a href="#ClickHouse.Generator.cte_sql-137"><span class="linenos">137</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="ClickHouse.Generator.cte_sql-138"><a href="#ClickHouse.Generator.cte_sql-138"><span class="linenos">138</span></a> +</span><span id="ClickHouse.Generator.cte_sql-139"><a href="#ClickHouse.Generator.cte_sql-139"><span class="linenos">139</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">cte_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -755,6 +746,8 @@ Default: True</li> <dd id="ClickHouse.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="ClickHouse.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="ClickHouse.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="ClickHouse.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="ClickHouse.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="ClickHouse.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="ClickHouse.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="ClickHouse.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -839,7 +832,6 @@ Default: True</li> <dd id="ClickHouse.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="ClickHouse.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="ClickHouse.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="ClickHouse.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="ClickHouse.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="ClickHouse.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="ClickHouse.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -881,6 +873,7 @@ Default: True</li> <dd id="ClickHouse.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="ClickHouse.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="ClickHouse.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="ClickHouse.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/databricks.html b/docs/sqlglot/dialects/databricks.html index b22aa76..b10aa9a 100644 --- a/docs/sqlglot/dialects/databricks.html +++ b/docs/sqlglot/dialects/databricks.html @@ -100,15 +100,17 @@ </span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> </span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="p">}</span> -</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="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="p">}</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos">26</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">Select</span><span class="p">)</span> <span class="c1"># Remove the ELIMINATE_QUALIFY transformation</span> </span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> -</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</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-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> +</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="p">}</span> </span></pre></div> @@ -138,15 +140,17 @@ </span><span id="Databricks-22"><a href="#Databricks-22"><span class="linenos">22</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="Databricks-23"><a href="#Databricks-23"><span class="linenos">23</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> </span><span id="Databricks-24"><a href="#Databricks-24"><span class="linenos">24</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="Databricks-25"><a href="#Databricks-25"><span class="linenos">25</span></a> <span class="p">}</span> -</span><span id="Databricks-26"><a href="#Databricks-26"><span class="linenos">26</span></a> -</span><span id="Databricks-27"><a href="#Databricks-27"><span class="linenos">27</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Databricks-25"><a href="#Databricks-25"><span class="linenos">25</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Databricks-26"><a href="#Databricks-26"><span class="linenos">26</span></a> <span class="p">}</span> +</span><span id="Databricks-27"><a href="#Databricks-27"><span class="linenos">27</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">Select</span><span class="p">)</span> <span class="c1"># Remove the ELIMINATE_QUALIFY transformation</span> </span><span id="Databricks-28"><a href="#Databricks-28"><span class="linenos">28</span></a> -</span><span id="Databricks-29"><a href="#Databricks-29"><span class="linenos">29</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Databricks-30"><a href="#Databricks-30"><span class="linenos">30</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Databricks-31"><a href="#Databricks-31"><span class="linenos">31</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> -</span><span id="Databricks-32"><a href="#Databricks-32"><span class="linenos">32</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> -</span><span id="Databricks-33"><a href="#Databricks-33"><span class="linenos">33</span></a> <span class="p">}</span> +</span><span id="Databricks-29"><a href="#Databricks-29"><span class="linenos">29</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Databricks-30"><a href="#Databricks-30"><span class="linenos">30</span></a> +</span><span id="Databricks-31"><a href="#Databricks-31"><span class="linenos">31</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Databricks-32"><a href="#Databricks-32"><span class="linenos">32</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Databricks-33"><a href="#Databricks-33"><span class="linenos">33</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> +</span><span id="Databricks-34"><a href="#Databricks-34"><span class="linenos">34</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> +</span><span id="Databricks-35"><a href="#Databricks-35"><span class="linenos">35</span></a> <span class="p">}</span> </span></pre></div> @@ -162,6 +166,7 @@ <dd id="Databricks.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Databricks.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Databricks.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Databricks.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Databricks.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Databricks.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -248,9 +253,11 @@ Default: "nulls_are_small"</li> </span><span id="Databricks.Generator-22"><a href="#Databricks.Generator-22"><span class="linenos">22</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="Databricks.Generator-23"><a href="#Databricks.Generator-23"><span class="linenos">23</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> </span><span id="Databricks.Generator-24"><a href="#Databricks.Generator-24"><span class="linenos">24</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="Databricks.Generator-25"><a href="#Databricks.Generator-25"><span class="linenos">25</span></a> <span class="p">}</span> -</span><span id="Databricks.Generator-26"><a href="#Databricks.Generator-26"><span class="linenos">26</span></a> -</span><span id="Databricks.Generator-27"><a href="#Databricks.Generator-27"><span class="linenos">27</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Databricks.Generator-25"><a href="#Databricks.Generator-25"><span class="linenos">25</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Databricks.Generator-26"><a href="#Databricks.Generator-26"><span class="linenos">26</span></a> <span class="p">}</span> +</span><span id="Databricks.Generator-27"><a href="#Databricks.Generator-27"><span class="linenos">27</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">Select</span><span class="p">)</span> <span class="c1"># Remove the ELIMINATE_QUALIFY transformation</span> +</span><span id="Databricks.Generator-28"><a href="#Databricks.Generator-28"><span class="linenos">28</span></a> +</span><span id="Databricks.Generator-29"><a href="#Databricks.Generator-29"><span class="linenos">29</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> </span></pre></div> @@ -267,8 +274,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -387,6 +393,8 @@ Default: True</li> <dd id="Databricks.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Databricks.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Databricks.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Databricks.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Databricks.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Databricks.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Databricks.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Databricks.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -470,7 +478,6 @@ Default: True</li> <dd id="Databricks.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Databricks.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Databricks.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Databricks.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Databricks.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Databricks.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Databricks.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -512,6 +519,7 @@ Default: True</li> <dd id="Databricks.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Databricks.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Databricks.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Databricks.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> <div><dt><a href="spark.html#Spark.Generator">sqlglot.dialects.spark.Spark.Generator</a></dt> @@ -519,7 +527,8 @@ Default: True</li> </div> <div><dt><a href="hive.html#Hive.Generator">sqlglot.dialects.hive.Hive.Generator</a></dt> - <dd id="Databricks.Generator.with_properties" class="function"><a href="hive.html#Hive.Generator.with_properties">with_properties</a></dd> + <dd id="Databricks.Generator.arrayagg_sql" class="function"><a href="hive.html#Hive.Generator.arrayagg_sql">arrayagg_sql</a></dd> + <dd id="Databricks.Generator.with_properties" class="function"><a href="hive.html#Hive.Generator.with_properties">with_properties</a></dd> <dd id="Databricks.Generator.datatype_sql" class="function"><a href="hive.html#Hive.Generator.datatype_sql">datatype_sql</a></dd> </div> @@ -537,11 +546,11 @@ Default: True</li> </div> <a class="headerlink" href="#Databricks.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Databricks.Tokenizer-29"><a href="#Databricks.Tokenizer-29"><span class="linenos">29</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Databricks.Tokenizer-30"><a href="#Databricks.Tokenizer-30"><span class="linenos">30</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Databricks.Tokenizer-31"><a href="#Databricks.Tokenizer-31"><span class="linenos">31</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> -</span><span id="Databricks.Tokenizer-32"><a href="#Databricks.Tokenizer-32"><span class="linenos">32</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> -</span><span id="Databricks.Tokenizer-33"><a href="#Databricks.Tokenizer-33"><span class="linenos">33</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Databricks.Tokenizer-31"><a href="#Databricks.Tokenizer-31"><span class="linenos">31</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Databricks.Tokenizer-32"><a href="#Databricks.Tokenizer-32"><span class="linenos">32</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Databricks.Tokenizer-33"><a href="#Databricks.Tokenizer-33"><span class="linenos">33</span></a> <span class="o">**</span><span class="n">Spark</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> +</span><span id="Databricks.Tokenizer-34"><a href="#Databricks.Tokenizer-34"><span class="linenos">34</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> +</span><span id="Databricks.Tokenizer-35"><a href="#Databricks.Tokenizer-35"><span class="linenos">35</span></a> <span class="p">}</span> </span></pre></div> diff --git a/docs/sqlglot/dialects/dialect.html b/docs/sqlglot/dialects/dialect.html index 5a9a0ce..76c8403 100644 --- a/docs/sqlglot/dialects/dialect.html +++ b/docs/sqlglot/dialects/dialect.html @@ -118,6 +118,9 @@ <a class="function" href="#Dialect.transpile">transpile</a> </li> <li> + <a class="function" href="#Dialect.tokenize">tokenize</a> + </li> + <li> <a class="function" href="#Dialect.parser">parser</a> </li> <li> @@ -187,6 +190,12 @@ <a class="function" href="#parse_date_delta">parse_date_delta</a> </li> <li> + <a class="function" href="#date_trunc_to_time">date_trunc_to_time</a> + </li> + <li> + <a class="function" href="#timestamptrunc_sql">timestamptrunc_sql</a> + </li> + <li> <a class="function" href="#locate_to_strposition">locate_to_strposition</a> </li> <li> @@ -202,6 +211,9 @@ <a class="function" href="#min_or_least">min_or_least</a> </li> <li> + <a class="function" href="#count_if_to_sum">count_if_to_sum</a> + </li> + <li> <a class="function" href="#trim_sql">trim_sql</a> </li> <li> @@ -243,7 +255,7 @@ </span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">flatten</span><span class="p">,</span> <span class="n">seq_get</span> </span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">sqlglot.parser</span> <span class="kn">import</span> <span class="n">Parser</span> </span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">sqlglot.time</span> <span class="kn">import</span> <span class="n">format_time</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">Tokenizer</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">Token</span><span class="p">,</span> <span class="n">Tokenizer</span> </span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="kn">from</span> <span class="nn">sqlglot.trie</span> <span class="kn">import</span> <span class="n">new_trie</span> </span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> </span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="n">E</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">TypeVar</span><span class="p">(</span><span class="s2">"E"</span><span class="p">,</span> <span class="n">bound</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> @@ -395,12 +407,12 @@ </span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">return</span> <span class="n">expression</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="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</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="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> </span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression_type</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> </span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse_into</span><span class="p">(</span><span class="n">expression_type</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse_into</span><span class="p">(</span><span class="n">expression_type</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> </span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> </span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> </span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> @@ -408,275 +420,303 @@ </span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="k">def</span> <span class="nf">transpile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> </span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="k">return</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">sql</span><span class="p">)]</span> </span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="nd">@property</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="k">def</span> <span class="nf">tokenizer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tokenizer</span><span class="p">:</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"_tokenizer"</span><span class="p">):</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> -</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="k">def</span> <span class="nf">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Parser</span><span class="p">:</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> -</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="p">},</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="p">)</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">:</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"quote_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"quote_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"identifier_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"identifier_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"string_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">STRING_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"identifier_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">IDENTIFIER_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="s2">"time_mapping"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_mapping</span><span class="p">,</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="s2">"time_trie"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_trie</span><span class="p">,</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"normalize_functions"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="p">}</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="p">)</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> -</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a><span class="n">DialectType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Dialect</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">Dialect</span><span class="p">],</span> <span class="kc">None</span><span class="p">]</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="k">def</span> <span class="nf">tokenize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]:</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">)</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="nd">@property</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">def</span> <span class="nf">tokenizer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tokenizer</span><span class="p">:</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"_tokenizer"</span><span class="p">):</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> +</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="k">def</span> <span class="nf">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Parser</span><span class="p">:</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="p">},</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="p">)</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">:</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"quote_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span><span class="p">,</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"quote_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"identifier_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span><span class="p">,</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="s2">"identifier_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="s2">"string_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">STRING_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="s2">"identifier_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">IDENTIFIER_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"time_mapping"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_mapping</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"time_trie"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_trie</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="s2">"normalize_functions"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span><span class="p">,</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <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><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a><span class="k">def</span> <span class="nf">rename_func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="k">return</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</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="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">flatten</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">values</span><span class="p">()))</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a><span class="n">DialectType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Dialect</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">Dialect</span><span class="p">],</span> <span class="kc">None</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><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a><span class="k">def</span> <span class="nf">approx_count_distinct_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ApproxDistinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</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">"accuracy"</span><span class="p">):</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT does not support accuracy"</span><span class="p">)</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a><span class="k">def</span> <span class="nf">if_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="s2">"IF"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"true"</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">"false"</span><span class="p">)</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="p">)</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtract</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->"</span><span class="p">)</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a><span class="k">def</span> <span class="nf">rename_func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="k">return</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</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="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">flatten</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">values</span><span class="p">()))</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a><span class="k">def</span> <span class="nf">approx_count_distinct_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ApproxDistinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</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">"accuracy"</span><span class="p">):</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT does not support accuracy"</span><span class="p">)</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> +</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="k">def</span> <span class="nf">if_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"IF"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"true"</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">"false"</span><span class="p">)</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="p">)</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> </span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_scalar_sql</span><span class="p">(</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtractScalar</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->>"</span><span class="p">)</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a><span class="k">def</span> <span class="nf">inline_array_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtract</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->"</span><span class="p">)</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_scalar_sql</span><span class="p">(</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtractScalar</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->>"</span><span class="p">)</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> </span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a><span class="k">def</span> <span class="nf">no_ilike_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">like_sql</span><span class="p">(</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">(</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Lower</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"expression"</span><span class="p">],</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="p">)</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="p">)</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a><span class="k">def</span> <span class="nf">no_paren_current_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a><span class="k">def</span> <span class="nf">no_recursive_cte_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="k">if</span> <span class="n">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">"recursive"</span><span class="p">):</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Recursive CTEs are unsupported"</span><span class="p">)</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"recursive"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a><span class="k">def</span> <span class="nf">no_safe_divide_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">SafeDivide</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="n">n</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">"this"</span><span class="p">)</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">d</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">"expression"</span><span class="p">)</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"IF(</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2"> <> 0, </span><span class="si">{</span><span class="n">n</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">, NULL)"</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a><span class="k">def</span> <span class="nf">no_tablesample_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TableSample</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"TABLESAMPLE unsupported"</span><span class="p">)</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</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="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a><span class="k">def</span> <span class="nf">no_pivot_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"PIVOT unsupported"</span><span class="p">)</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</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><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a><span class="k">def</span> <span class="nf">no_trycast_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="k">return</span> <span class="bp">self</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><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a><span class="k">def</span> <span class="nf">inline_array_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a><span class="k">def</span> <span class="nf">no_ilike_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">like_sql</span><span class="p">(</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">(</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Lower</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"expression"</span><span class="p">],</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="p">)</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="p">)</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a><span class="k">def</span> <span class="nf">no_paren_current_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a><span class="k">def</span> <span class="nf">no_recursive_cte_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</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">"recursive"</span><span class="p">):</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Recursive CTEs are unsupported"</span><span class="p">)</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"recursive"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a><span class="k">def</span> <span class="nf">no_safe_divide_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">SafeDivide</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="n">n</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">"this"</span><span class="p">)</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">d</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">"expression"</span><span class="p">)</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"IF(</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2"> <> 0, </span><span class="si">{</span><span class="n">n</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">, NULL)"</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a><span class="k">def</span> <span class="nf">no_tablesample_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TableSample</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"TABLESAMPLE unsupported"</span><span class="p">)</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</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="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a><span class="k">def</span> <span class="nf">no_pivot_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"PIVOT unsupported"</span><span class="p">)</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</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><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> </span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a><span class="k">def</span> <span class="nf">no_properties_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Properties unsupported"</span><span class="p">)</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a><span class="k">def</span> <span class="nf">str_position_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">substr</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">"substr"</span><span class="p">)</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">position</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">"position"</span><span class="p">)</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">if</span> <span class="n">position</span><span class="p">:</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(SUBSTR(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2">), </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">) + </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2"> - 1"</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a><span class="k">def</span> <span class="nf">struct_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StructExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">struct_key</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">.</span><span class="si">{</span><span class="n">struct_key</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a><span class="k">def</span> <span class="nf">var_map_sql</span><span class="p">(</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Map</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">,</span> <span class="n">map_func_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"MAP"</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">]</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">values</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">keys</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="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">):</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Cannot convert array columns into map."</span><span class="p">)</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="n">keys</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">keys</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">key</span><span class="p">))</span> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">value</span><span class="p">))</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a><span class="k">def</span> <span class="nf">format_time_lambda</span><span class="p">(</span> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">default</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="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> -</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a><span class="w"> </span><span class="sd">"""Helper used for time expressions.</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a><span class="sd"> Args:</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a><span class="sd"> dialect: target sql dialect.</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a><span class="sd"> default: the default format, True being time.</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a><span class="sd"> Returns:</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a><span class="sd"> A callable that can be used to return the appropriately formatted time expression.</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a><span class="sd"> """</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="k">def</span> <span class="nf">_format_time</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">Sequence</span><span class="p">):</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos">341</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-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="nb">format</span><span class="o">=</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <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-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">time_format</span> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">default</span> <span class="ow">or</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="p">),</span> -</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="p">)</span> -</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="n">_format_time</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a><span class="k">def</span> <span class="nf">no_trycast_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="k">return</span> <span class="bp">self</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><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a><span class="k">def</span> <span class="nf">no_properties_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Properties unsupported"</span><span class="p">)</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a><span class="k">def</span> <span class="nf">str_position_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">substr</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">"substr"</span><span class="p">)</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">position</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">"position"</span><span class="p">)</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="k">if</span> <span class="n">position</span><span class="p">:</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(SUBSTR(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2">), </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">) + </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2"> - 1"</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a><span class="k">def</span> <span class="nf">struct_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StructExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">struct_key</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">.</span><span class="si">{</span><span class="n">struct_key</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a><span class="k">def</span> <span class="nf">var_map_sql</span><span class="p">(</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Map</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">,</span> <span class="n">map_func_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"MAP"</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">]</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">values</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">keys</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="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">):</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Cannot convert array columns into map."</span><span class="p">)</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="n">keys</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">keys</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">key</span><span class="p">))</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">value</span><span class="p">))</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> +</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a><span class="k">def</span> <span class="nf">format_time_lambda</span><span class="p">(</span> +</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">default</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="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a><span class="w"> </span><span class="sd">"""Helper used for time expressions.</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a><span class="sd"> Args:</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a><span class="sd"> dialect: target sql dialect.</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a><span class="sd"> default: the default format, True being time.</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a><span class="sd"> Returns:</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a><span class="sd"> A callable that can be used to return the appropriately formatted time expression.</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a><span class="sd"> """</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">def</span> <span class="nf">_format_time</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">Sequence</span><span class="p">):</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</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-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="nb">format</span><span class="o">=</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <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-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">time_format</span> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">default</span> <span class="ow">or</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="p">),</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="p">)</span> </span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a><span class="k">def</span> <span class="nf">create_with_partitions_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a><span class="sd"> In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a><span class="sd"> PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a><span class="sd"> columns are removed from the create statement.</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a><span class="sd"> """</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="n">has_schema</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Schema</span><span class="p">)</span> -</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="n">is_partitionable</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">"kind"</span><span class="p">)</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">)</span> -</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> -</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="k">if</span> <span class="n">has_schema</span> <span class="ow">and</span> <span class="n">is_partitionable</span><span class="p">:</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="n">prop</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">)</span> -</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="k">if</span> <span class="n">prop</span> <span class="ow">and</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</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">Schema</span><span class="p">):</span> -</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">}</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">partitions</span> <span class="o">=</span> <span class="p">[</span><span class="n">col</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">]</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="p">[</span><span class="n">e</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">partitions</span><span class="p">])</span> -</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="n">prop</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">partitions</span><span class="p">)))</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos">369</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">schema</span><span class="p">)</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> -</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">return</span> <span class="n">_format_time</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> +</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a><span class="k">def</span> <span class="nf">create_with_partitions_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a><span class="sd"> In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a><span class="sd"> PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a><span class="sd"> columns are removed from the create statement.</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a><span class="sd"> """</span> +</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="n">has_schema</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Schema</span><span class="p">)</span> +</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="n">is_partitionable</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">"kind"</span><span class="p">)</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">)</span> +</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> +</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="k">if</span> <span class="n">has_schema</span> <span class="ow">and</span> <span class="n">is_partitionable</span><span class="p">:</span> +</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="n">prop</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">)</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="k">if</span> <span class="n">prop</span> <span class="ow">and</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</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">Schema</span><span class="p">):</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">}</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="n">partitions</span> <span class="o">=</span> <span class="p">[</span><span class="n">col</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">]</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="p">[</span><span class="n">e</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">partitions</span><span class="p">])</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">prop</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">partitions</span><span class="p">)))</span> +</span><span id="L-372"><a href="#L-372"><span class="linenos">372</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">schema</span><span class="p">)</span> </span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> -</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a><span class="k">def</span> <span class="nf">parse_date_delta</span><span class="p">(</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">unit_mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> -</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">def</span> <span class="nf">inner_func</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">E</span><span class="p">:</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="n">unit_based</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos">379</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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-380"><a href="#L-380"><span class="linenos">380</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="n">unit</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="k">if</span> <span class="n">unit_based</span> <span class="k">else</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">"DAY"</span><span class="p">)</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit_mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="n">unit</span><span class="p">)</span> <span class="k">if</span> <span class="n">unit_mapping</span> <span class="k">else</span> <span class="n">unit</span> <span class="c1"># type: ignore</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> -</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> -</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">return</span> <span class="n">inner_func</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> +</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> +</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> +</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a><span class="k">def</span> <span class="nf">parse_date_delta</span><span class="p">(</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">unit_mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="k">def</span> <span class="nf">inner_func</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">E</span><span class="p">:</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="n">unit_based</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos">382</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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-383"><a href="#L-383"><span class="linenos">383</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="n">unit</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="k">if</span> <span class="n">unit_based</span> <span class="k">else</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">"DAY"</span><span class="p">)</span> +</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit_mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="n">unit</span><span class="p">)</span> <span class="k">if</span> <span class="n">unit_mapping</span> <span class="k">else</span> <span class="n">unit</span> <span class="c1"># type: ignore</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> </span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> -</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a><span class="k">def</span> <span class="nf">locate_to_strposition</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos">390</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">1</span><span class="p">),</span> -</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">substr</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-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">position</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-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="p">)</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="k">return</span> <span class="n">inner_func</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><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a><span class="k">def</span> <span class="nf">date_trunc_to_time</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> +</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">unit</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-393"><a href="#L-393"><span class="linenos">393</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">1</span><span class="p">)</span> </span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> -</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> -</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a><span class="k">def</span> <span class="nf">strposition_to_locate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> -</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> <span class="s2">"LOCATE"</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">"substr"</span><span class="p">),</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"position"</span><span class="p">)</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="p">)</span> -</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> -</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="k">def</span> <span class="nf">timestrtotime_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TimeStrToTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS TIMESTAMP)"</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</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="ow">and</span> <span class="n">this</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">DATE</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="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">(</span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</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">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> +</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> +</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a><span class="k">def</span> <span class="nf">timestamptrunc_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TimestampTrunc</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">,</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="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</span><span class="p">),</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="p">)</span> </span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a> </span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> -</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a><span class="k">def</span> <span class="nf">datestrtodate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">DateStrToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> -</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> -</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> -</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a><span class="k">def</span> <span class="nf">min_or_least</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Min</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">"LEAST"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">"MIN"</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="n">name</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-406"><a href="#L-406"><span class="linenos">406</span></a><span class="k">def</span> <span class="nf">locate_to_strposition</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos">408</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">1</span><span class="p">),</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="n">substr</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-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="n">position</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-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="p">)</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> </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><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a><span class="k">def</span> <span class="nf">trim_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="n">target</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">"this"</span><span class="p">)</span> -</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> -</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">remove_chars</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">"expression"</span><span class="p">)</span> -</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="n">collation</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">"collation"</span><span class="p">)</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> -</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="c1"># Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific</span> -</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">remove_chars</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">collation</span><span class="p">:</span> -</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">trim_sql</span><span class="p">(</span><span class="n">expression</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="n">trim_type</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="n">remove_chars</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">remove_chars</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="n">from_part</span> <span class="o">=</span> <span class="s2">"FROM "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="ow">or</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collation</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collation</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRIM(</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}{</span><span class="n">remove_chars</span><span class="si">}{</span><span class="n">from_part</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">collation</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos">430</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">strposition_to_locate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</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="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="s2">"LOCATE"</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">"substr"</span><span class="p">),</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"position"</span><span class="p">)</span> +</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="p">)</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> +</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> +</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a><span class="k">def</span> <span class="nf">timestrtotime_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TimeStrToTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS TIMESTAMP)"</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> +</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> +</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a><span class="k">def</span> <span class="nf">datestrtodate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">DateStrToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> +</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> +</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">def</span> <span class="nf">min_or_least</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Min</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">"LEAST"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">"MIN"</span> +</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="n">name</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-431"><a href="#L-431"><span class="linenos">431</span></a> -</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a><span class="k">def</span> <span class="nf">str_to_time_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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"STRPTIME"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> +</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> +</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a><span class="k">def</span> <span class="nf">count_if_to_sum</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">CountIf</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> </span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> -</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a><span class="k">def</span> <span class="nf">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> -</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="k">def</span> <span class="nf">_ts_or_ds_to_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TsOrDsToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="n">_dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span> -</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">_dialect</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">_dialect</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span> -</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</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">_ts_or_ds_to_date_sql</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos">436</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">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-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">expression</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-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DISTINCT is not supported when converting COUNT_IF to SUM"</span><span class="p">)</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">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"sum"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"if"</span><span class="p">,</span> <span class="n">cond</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> +</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> +</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> +</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a><span class="k">def</span> <span class="nf">trim_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="n">target</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">"this"</span><span class="p">)</span> +</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> +</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="n">remove_chars</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">"expression"</span><span class="p">)</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="n">collation</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">"collation"</span><span class="p">)</span> +</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> +</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a> <span class="c1"># Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific</span> +</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">remove_chars</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">collation</span><span class="p">:</span> +</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">trim_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a> +</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a> <span class="n">trim_type</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="n">remove_chars</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">remove_chars</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> <span class="n">from_part</span> <span class="o">=</span> <span class="s2">"FROM "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="ow">or</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collation</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collation</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRIM(</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}{</span><span class="n">remove_chars</span><span class="si">}{</span><span class="n">from_part</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">collation</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> +</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> +</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a><span class="k">def</span> <span class="nf">str_to_time_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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"STRPTIME"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> +</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> +</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a><span class="k">def</span> <span class="nf">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> +</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> <span class="k">def</span> <span class="nf">_ts_or_ds_to_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TsOrDsToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> <span class="n">_dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span> +</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">_dialect</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">_dialect</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> +</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span> +</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> +</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a> +</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="k">return</span> <span class="n">_ts_or_ds_to_date_sql</span> </span></pre></div> @@ -1096,12 +1136,12 @@ </span><span id="Dialect-161"><a href="#Dialect-161"><span class="linenos">161</span></a> <span class="k">return</span> <span class="n">expression</span> </span><span id="Dialect-162"><a href="#Dialect-162"><span class="linenos">162</span></a> </span><span id="Dialect-163"><a href="#Dialect-163"><span class="linenos">163</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Dialect-164"><a href="#Dialect-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Dialect-164"><a href="#Dialect-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> </span><span id="Dialect-165"><a href="#Dialect-165"><span class="linenos">165</span></a> </span><span id="Dialect-166"><a href="#Dialect-166"><span class="linenos">166</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> </span><span id="Dialect-167"><a href="#Dialect-167"><span class="linenos">167</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression_type</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> </span><span id="Dialect-168"><a href="#Dialect-168"><span class="linenos">168</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Dialect-169"><a href="#Dialect-169"><span class="linenos">169</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse_into</span><span class="p">(</span><span class="n">expression_type</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Dialect-169"><a href="#Dialect-169"><span class="linenos">169</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse_into</span><span class="p">(</span><span class="n">expression_type</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> </span><span id="Dialect-170"><a href="#Dialect-170"><span class="linenos">170</span></a> </span><span id="Dialect-171"><a href="#Dialect-171"><span class="linenos">171</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> </span><span id="Dialect-172"><a href="#Dialect-172"><span class="linenos">172</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> @@ -1109,42 +1149,45 @@ </span><span id="Dialect-174"><a href="#Dialect-174"><span class="linenos">174</span></a> <span class="k">def</span> <span class="nf">transpile</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> </span><span id="Dialect-175"><a href="#Dialect-175"><span class="linenos">175</span></a> <span class="k">return</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">generate</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">sql</span><span class="p">)]</span> </span><span id="Dialect-176"><a href="#Dialect-176"><span class="linenos">176</span></a> -</span><span id="Dialect-177"><a href="#Dialect-177"><span class="linenos">177</span></a> <span class="nd">@property</span> -</span><span id="Dialect-178"><a href="#Dialect-178"><span class="linenos">178</span></a> <span class="k">def</span> <span class="nf">tokenizer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tokenizer</span><span class="p">:</span> -</span><span id="Dialect-179"><a href="#Dialect-179"><span class="linenos">179</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"_tokenizer"</span><span class="p">):</span> -</span><span id="Dialect-180"><a href="#Dialect-180"><span class="linenos">180</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="Dialect-181"><a href="#Dialect-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> -</span><span id="Dialect-182"><a href="#Dialect-182"><span class="linenos">182</span></a> -</span><span id="Dialect-183"><a href="#Dialect-183"><span class="linenos">183</span></a> <span class="k">def</span> <span class="nf">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Parser</span><span class="p">:</span> -</span><span id="Dialect-184"><a href="#Dialect-184"><span class="linenos">184</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="Dialect-185"><a href="#Dialect-185"><span class="linenos">185</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="Dialect-186"><a href="#Dialect-186"><span class="linenos">186</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> -</span><span id="Dialect-187"><a href="#Dialect-187"><span class="linenos">187</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> -</span><span id="Dialect-188"><a href="#Dialect-188"><span class="linenos">188</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> -</span><span id="Dialect-189"><a href="#Dialect-189"><span class="linenos">189</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> -</span><span id="Dialect-190"><a href="#Dialect-190"><span class="linenos">190</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Dialect-191"><a href="#Dialect-191"><span class="linenos">191</span></a> <span class="p">},</span> -</span><span id="Dialect-192"><a href="#Dialect-192"><span class="linenos">192</span></a> <span class="p">)</span> -</span><span id="Dialect-193"><a href="#Dialect-193"><span class="linenos">193</span></a> -</span><span id="Dialect-194"><a href="#Dialect-194"><span class="linenos">194</span></a> <span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">:</span> -</span><span id="Dialect-195"><a href="#Dialect-195"><span class="linenos">195</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="Dialect-196"><a href="#Dialect-196"><span class="linenos">196</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="Dialect-197"><a href="#Dialect-197"><span class="linenos">197</span></a> <span class="s2">"quote_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span><span class="p">,</span> -</span><span id="Dialect-198"><a href="#Dialect-198"><span class="linenos">198</span></a> <span class="s2">"quote_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> -</span><span id="Dialect-199"><a href="#Dialect-199"><span class="linenos">199</span></a> <span class="s2">"identifier_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span><span class="p">,</span> -</span><span id="Dialect-200"><a href="#Dialect-200"><span class="linenos">200</span></a> <span class="s2">"identifier_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> -</span><span id="Dialect-201"><a href="#Dialect-201"><span class="linenos">201</span></a> <span class="s2">"string_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">STRING_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> -</span><span id="Dialect-202"><a href="#Dialect-202"><span class="linenos">202</span></a> <span class="s2">"identifier_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">IDENTIFIER_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> -</span><span id="Dialect-203"><a href="#Dialect-203"><span class="linenos">203</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> -</span><span id="Dialect-204"><a href="#Dialect-204"><span class="linenos">204</span></a> <span class="s2">"time_mapping"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_mapping</span><span class="p">,</span> -</span><span id="Dialect-205"><a href="#Dialect-205"><span class="linenos">205</span></a> <span class="s2">"time_trie"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_trie</span><span class="p">,</span> -</span><span id="Dialect-206"><a href="#Dialect-206"><span class="linenos">206</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> -</span><span id="Dialect-207"><a href="#Dialect-207"><span class="linenos">207</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> -</span><span id="Dialect-208"><a href="#Dialect-208"><span class="linenos">208</span></a> <span class="s2">"normalize_functions"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span><span class="p">,</span> -</span><span id="Dialect-209"><a href="#Dialect-209"><span class="linenos">209</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> -</span><span id="Dialect-210"><a href="#Dialect-210"><span class="linenos">210</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Dialect-211"><a href="#Dialect-211"><span class="linenos">211</span></a> <span class="p">}</span> -</span><span id="Dialect-212"><a href="#Dialect-212"><span class="linenos">212</span></a> <span class="p">)</span> +</span><span id="Dialect-177"><a href="#Dialect-177"><span class="linenos">177</span></a> <span class="k">def</span> <span class="nf">tokenize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]:</span> +</span><span id="Dialect-178"><a href="#Dialect-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">)</span> +</span><span id="Dialect-179"><a href="#Dialect-179"><span class="linenos">179</span></a> +</span><span id="Dialect-180"><a href="#Dialect-180"><span class="linenos">180</span></a> <span class="nd">@property</span> +</span><span id="Dialect-181"><a href="#Dialect-181"><span class="linenos">181</span></a> <span class="k">def</span> <span class="nf">tokenizer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tokenizer</span><span class="p">:</span> +</span><span id="Dialect-182"><a href="#Dialect-182"><span class="linenos">182</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="s2">"_tokenizer"</span><span class="p">):</span> +</span><span id="Dialect-183"><a href="#Dialect-183"><span class="linenos">183</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="Dialect-184"><a href="#Dialect-184"><span class="linenos">184</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokenizer</span> +</span><span id="Dialect-185"><a href="#Dialect-185"><span class="linenos">185</span></a> +</span><span id="Dialect-186"><a href="#Dialect-186"><span class="linenos">186</span></a> <span class="k">def</span> <span class="nf">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Parser</span><span class="p">:</span> +</span><span id="Dialect-187"><a href="#Dialect-187"><span class="linenos">187</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="Dialect-188"><a href="#Dialect-188"><span class="linenos">188</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="Dialect-189"><a href="#Dialect-189"><span class="linenos">189</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> +</span><span id="Dialect-190"><a href="#Dialect-190"><span class="linenos">190</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> +</span><span id="Dialect-191"><a href="#Dialect-191"><span class="linenos">191</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> +</span><span id="Dialect-192"><a href="#Dialect-192"><span class="linenos">192</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> +</span><span id="Dialect-193"><a href="#Dialect-193"><span class="linenos">193</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Dialect-194"><a href="#Dialect-194"><span class="linenos">194</span></a> <span class="p">},</span> +</span><span id="Dialect-195"><a href="#Dialect-195"><span class="linenos">195</span></a> <span class="p">)</span> +</span><span id="Dialect-196"><a href="#Dialect-196"><span class="linenos">196</span></a> +</span><span id="Dialect-197"><a href="#Dialect-197"><span class="linenos">197</span></a> <span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">:</span> +</span><span id="Dialect-198"><a href="#Dialect-198"><span class="linenos">198</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="Dialect-199"><a href="#Dialect-199"><span class="linenos">199</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="Dialect-200"><a href="#Dialect-200"><span class="linenos">200</span></a> <span class="s2">"quote_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span><span class="p">,</span> +</span><span id="Dialect-201"><a href="#Dialect-201"><span class="linenos">201</span></a> <span class="s2">"quote_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> +</span><span id="Dialect-202"><a href="#Dialect-202"><span class="linenos">202</span></a> <span class="s2">"identifier_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span><span class="p">,</span> +</span><span id="Dialect-203"><a href="#Dialect-203"><span class="linenos">203</span></a> <span class="s2">"identifier_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> +</span><span id="Dialect-204"><a href="#Dialect-204"><span class="linenos">204</span></a> <span class="s2">"string_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">STRING_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> +</span><span id="Dialect-205"><a href="#Dialect-205"><span class="linenos">205</span></a> <span class="s2">"identifier_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">IDENTIFIER_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> +</span><span id="Dialect-206"><a href="#Dialect-206"><span class="linenos">206</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> +</span><span id="Dialect-207"><a href="#Dialect-207"><span class="linenos">207</span></a> <span class="s2">"time_mapping"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_mapping</span><span class="p">,</span> +</span><span id="Dialect-208"><a href="#Dialect-208"><span class="linenos">208</span></a> <span class="s2">"time_trie"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_trie</span><span class="p">,</span> +</span><span id="Dialect-209"><a href="#Dialect-209"><span class="linenos">209</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> +</span><span id="Dialect-210"><a href="#Dialect-210"><span class="linenos">210</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> +</span><span id="Dialect-211"><a href="#Dialect-211"><span class="linenos">211</span></a> <span class="s2">"normalize_functions"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span><span class="p">,</span> +</span><span id="Dialect-212"><a href="#Dialect-212"><span class="linenos">212</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> +</span><span id="Dialect-213"><a href="#Dialect-213"><span class="linenos">213</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Dialect-214"><a href="#Dialect-214"><span class="linenos">214</span></a> <span class="p">}</span> +</span><span id="Dialect-215"><a href="#Dialect-215"><span class="linenos">215</span></a> <span class="p">)</span> </span></pre></div> @@ -1233,7 +1276,7 @@ </div> <a class="headerlink" href="#Dialect.parse"></a> <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.parse-163"><a href="#Dialect.parse-163"><span class="linenos">163</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Dialect.parse-164"><a href="#Dialect.parse-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Dialect.parse-164"><a href="#Dialect.parse-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -1254,7 +1297,7 @@ <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.parse_into-166"><a href="#Dialect.parse_into-166"><span class="linenos">166</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> </span><span id="Dialect.parse_into-167"><a href="#Dialect.parse_into-167"><span class="linenos">167</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">expression_type</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> </span><span id="Dialect.parse_into-168"><a href="#Dialect.parse_into-168"><span class="linenos">168</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Dialect.parse_into-169"><a href="#Dialect.parse_into-169"><span class="linenos">169</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse_into</span><span class="p">(</span><span class="n">expression_type</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Dialect.parse_into-169"><a href="#Dialect.parse_into-169"><span class="linenos">169</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser</span><span class="p">(</span><span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">parse_into</span><span class="p">(</span><span class="n">expression_type</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">),</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -1299,6 +1342,25 @@ </div> + <div id="Dialect.tokenize" class="classattr"> + <input id="Dialect.tokenize-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">tokenize</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">sql</span><span class="p">:</span> <span class="nb">str</span></span><span class="return-annotation">) -> <span class="n">List</span><span class="p">[</span><span class="n"><a href="../tokens.html#Token">sqlglot.tokens.Token</a></span><span class="p">]</span>:</span></span> + + <label class="view-source-button" for="Dialect.tokenize-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Dialect.tokenize"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.tokenize-177"><a href="#Dialect.tokenize-177"><span class="linenos">177</span></a> <span class="k">def</span> <span class="nf">tokenize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]:</span> +</span><span id="Dialect.tokenize-178"><a href="#Dialect.tokenize-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer</span><span class="o">.</span><span class="n">tokenize</span><span class="p">(</span><span class="n">sql</span><span class="p">)</span> +</span></pre></div> + + + + + </div> <div id="Dialect.parser" class="classattr"> <input id="Dialect.parser-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> @@ -1310,16 +1372,16 @@ </div> <a class="headerlink" href="#Dialect.parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.parser-183"><a href="#Dialect.parser-183"><span class="linenos">183</span></a> <span class="k">def</span> <span class="nf">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Parser</span><span class="p">:</span> -</span><span id="Dialect.parser-184"><a href="#Dialect.parser-184"><span class="linenos">184</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="Dialect.parser-185"><a href="#Dialect.parser-185"><span class="linenos">185</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="Dialect.parser-186"><a href="#Dialect.parser-186"><span class="linenos">186</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> -</span><span id="Dialect.parser-187"><a href="#Dialect.parser-187"><span class="linenos">187</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> -</span><span id="Dialect.parser-188"><a href="#Dialect.parser-188"><span class="linenos">188</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> -</span><span id="Dialect.parser-189"><a href="#Dialect.parser-189"><span class="linenos">189</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> -</span><span id="Dialect.parser-190"><a href="#Dialect.parser-190"><span class="linenos">190</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Dialect.parser-191"><a href="#Dialect.parser-191"><span class="linenos">191</span></a> <span class="p">},</span> -</span><span id="Dialect.parser-192"><a href="#Dialect.parser-192"><span class="linenos">192</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.parser-186"><a href="#Dialect.parser-186"><span class="linenos">186</span></a> <span class="k">def</span> <span class="nf">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Parser</span><span class="p">:</span> +</span><span id="Dialect.parser-187"><a href="#Dialect.parser-187"><span class="linenos">187</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">parser_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="Dialect.parser-188"><a href="#Dialect.parser-188"><span class="linenos">188</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="Dialect.parser-189"><a href="#Dialect.parser-189"><span class="linenos">189</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> +</span><span id="Dialect.parser-190"><a href="#Dialect.parser-190"><span class="linenos">190</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> +</span><span id="Dialect.parser-191"><a href="#Dialect.parser-191"><span class="linenos">191</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> +</span><span id="Dialect.parser-192"><a href="#Dialect.parser-192"><span class="linenos">192</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> +</span><span id="Dialect.parser-193"><a href="#Dialect.parser-193"><span class="linenos">193</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Dialect.parser-194"><a href="#Dialect.parser-194"><span class="linenos">194</span></a> <span class="p">},</span> +</span><span id="Dialect.parser-195"><a href="#Dialect.parser-195"><span class="linenos">195</span></a> <span class="p">)</span> </span></pre></div> @@ -1337,25 +1399,25 @@ </div> <a class="headerlink" href="#Dialect.generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.generator-194"><a href="#Dialect.generator-194"><span class="linenos">194</span></a> <span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">:</span> -</span><span id="Dialect.generator-195"><a href="#Dialect.generator-195"><span class="linenos">195</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="Dialect.generator-196"><a href="#Dialect.generator-196"><span class="linenos">196</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="Dialect.generator-197"><a href="#Dialect.generator-197"><span class="linenos">197</span></a> <span class="s2">"quote_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span><span class="p">,</span> -</span><span id="Dialect.generator-198"><a href="#Dialect.generator-198"><span class="linenos">198</span></a> <span class="s2">"quote_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> -</span><span id="Dialect.generator-199"><a href="#Dialect.generator-199"><span class="linenos">199</span></a> <span class="s2">"identifier_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span><span class="p">,</span> -</span><span id="Dialect.generator-200"><a href="#Dialect.generator-200"><span class="linenos">200</span></a> <span class="s2">"identifier_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> -</span><span id="Dialect.generator-201"><a href="#Dialect.generator-201"><span class="linenos">201</span></a> <span class="s2">"string_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">STRING_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> -</span><span id="Dialect.generator-202"><a href="#Dialect.generator-202"><span class="linenos">202</span></a> <span class="s2">"identifier_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">IDENTIFIER_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> -</span><span id="Dialect.generator-203"><a href="#Dialect.generator-203"><span class="linenos">203</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> -</span><span id="Dialect.generator-204"><a href="#Dialect.generator-204"><span class="linenos">204</span></a> <span class="s2">"time_mapping"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_mapping</span><span class="p">,</span> -</span><span id="Dialect.generator-205"><a href="#Dialect.generator-205"><span class="linenos">205</span></a> <span class="s2">"time_trie"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_trie</span><span class="p">,</span> -</span><span id="Dialect.generator-206"><a href="#Dialect.generator-206"><span class="linenos">206</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> -</span><span id="Dialect.generator-207"><a href="#Dialect.generator-207"><span class="linenos">207</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> -</span><span id="Dialect.generator-208"><a href="#Dialect.generator-208"><span class="linenos">208</span></a> <span class="s2">"normalize_functions"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span><span class="p">,</span> -</span><span id="Dialect.generator-209"><a href="#Dialect.generator-209"><span class="linenos">209</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> -</span><span id="Dialect.generator-210"><a href="#Dialect.generator-210"><span class="linenos">210</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Dialect.generator-211"><a href="#Dialect.generator-211"><span class="linenos">211</span></a> <span class="p">}</span> -</span><span id="Dialect.generator-212"><a href="#Dialect.generator-212"><span class="linenos">212</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Dialect.generator-197"><a href="#Dialect.generator-197"><span class="linenos">197</span></a> <span class="k">def</span> <span class="nf">generator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Generator</span><span class="p">:</span> +</span><span id="Dialect.generator-198"><a href="#Dialect.generator-198"><span class="linenos">198</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">generator_class</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="Dialect.generator-199"><a href="#Dialect.generator-199"><span class="linenos">199</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="Dialect.generator-200"><a href="#Dialect.generator-200"><span class="linenos">200</span></a> <span class="s2">"quote_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span><span class="p">,</span> +</span><span id="Dialect.generator-201"><a href="#Dialect.generator-201"><span class="linenos">201</span></a> <span class="s2">"quote_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> +</span><span id="Dialect.generator-202"><a href="#Dialect.generator-202"><span class="linenos">202</span></a> <span class="s2">"identifier_start"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span><span class="p">,</span> +</span><span id="Dialect.generator-203"><a href="#Dialect.generator-203"><span class="linenos">203</span></a> <span class="s2">"identifier_end"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> +</span><span id="Dialect.generator-204"><a href="#Dialect.generator-204"><span class="linenos">204</span></a> <span class="s2">"string_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">STRING_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> +</span><span id="Dialect.generator-205"><a href="#Dialect.generator-205"><span class="linenos">205</span></a> <span class="s2">"identifier_escape"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokenizer_class</span><span class="o">.</span><span class="n">IDENTIFIER_ESCAPES</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> +</span><span id="Dialect.generator-206"><a href="#Dialect.generator-206"><span class="linenos">206</span></a> <span class="s2">"index_offset"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">,</span> +</span><span id="Dialect.generator-207"><a href="#Dialect.generator-207"><span class="linenos">207</span></a> <span class="s2">"time_mapping"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_mapping</span><span class="p">,</span> +</span><span id="Dialect.generator-208"><a href="#Dialect.generator-208"><span class="linenos">208</span></a> <span class="s2">"time_trie"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">inverse_time_trie</span><span class="p">,</span> +</span><span id="Dialect.generator-209"><a href="#Dialect.generator-209"><span class="linenos">209</span></a> <span class="s2">"unnest_column_only"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">,</span> +</span><span id="Dialect.generator-210"><a href="#Dialect.generator-210"><span class="linenos">210</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">,</span> +</span><span id="Dialect.generator-211"><a href="#Dialect.generator-211"><span class="linenos">211</span></a> <span class="s2">"normalize_functions"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span><span class="p">,</span> +</span><span id="Dialect.generator-212"><a href="#Dialect.generator-212"><span class="linenos">212</span></a> <span class="s2">"null_ordering"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span><span class="p">,</span> +</span><span id="Dialect.generator-213"><a href="#Dialect.generator-213"><span class="linenos">213</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Dialect.generator-214"><a href="#Dialect.generator-214"><span class="linenos">214</span></a> <span class="p">}</span> +</span><span id="Dialect.generator-215"><a href="#Dialect.generator-215"><span class="linenos">215</span></a> <span class="p">)</span> </span></pre></div> @@ -1374,8 +1436,8 @@ </div> <a class="headerlink" href="#rename_func"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="rename_func-218"><a href="#rename_func-218"><span class="linenos">218</span></a><span class="k">def</span> <span class="nf">rename_func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> -</span><span id="rename_func-219"><a href="#rename_func-219"><span class="linenos">219</span></a> <span class="k">return</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</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="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">flatten</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">values</span><span class="p">()))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="rename_func-221"><a href="#rename_func-221"><span class="linenos">221</span></a><span class="k">def</span> <span class="nf">rename_func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> +</span><span id="rename_func-222"><a href="#rename_func-222"><span class="linenos">222</span></a> <span class="k">return</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expression</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="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">flatten</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">values</span><span class="p">()))</span> </span></pre></div> @@ -1393,10 +1455,10 @@ </div> <a class="headerlink" href="#approx_count_distinct_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="approx_count_distinct_sql-222"><a href="#approx_count_distinct_sql-222"><span class="linenos">222</span></a><span class="k">def</span> <span class="nf">approx_count_distinct_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ApproxDistinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="approx_count_distinct_sql-223"><a href="#approx_count_distinct_sql-223"><span class="linenos">223</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">"accuracy"</span><span class="p">):</span> -</span><span id="approx_count_distinct_sql-224"><a href="#approx_count_distinct_sql-224"><span class="linenos">224</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT does not support accuracy"</span><span class="p">)</span> -</span><span id="approx_count_distinct_sql-225"><a href="#approx_count_distinct_sql-225"><span class="linenos">225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="approx_count_distinct_sql-225"><a href="#approx_count_distinct_sql-225"><span class="linenos">225</span></a><span class="k">def</span> <span class="nf">approx_count_distinct_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ApproxDistinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="approx_count_distinct_sql-226"><a href="#approx_count_distinct_sql-226"><span class="linenos">226</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">"accuracy"</span><span class="p">):</span> +</span><span id="approx_count_distinct_sql-227"><a href="#approx_count_distinct_sql-227"><span class="linenos">227</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT does not support accuracy"</span><span class="p">)</span> +</span><span id="approx_count_distinct_sql-228"><a href="#approx_count_distinct_sql-228"><span class="linenos">228</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> </span></pre></div> @@ -1414,10 +1476,10 @@ </div> <a class="headerlink" href="#if_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="if_sql-228"><a href="#if_sql-228"><span class="linenos">228</span></a><span class="k">def</span> <span class="nf">if_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="if_sql-229"><a href="#if_sql-229"><span class="linenos">229</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> -</span><span id="if_sql-230"><a href="#if_sql-230"><span class="linenos">230</span></a> <span class="s2">"IF"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"true"</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">"false"</span><span class="p">)</span> -</span><span id="if_sql-231"><a href="#if_sql-231"><span class="linenos">231</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="if_sql-231"><a href="#if_sql-231"><span class="linenos">231</span></a><span class="k">def</span> <span class="nf">if_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="if_sql-232"><a href="#if_sql-232"><span class="linenos">232</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="if_sql-233"><a href="#if_sql-233"><span class="linenos">233</span></a> <span class="s2">"IF"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"true"</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">"false"</span><span class="p">)</span> +</span><span id="if_sql-234"><a href="#if_sql-234"><span class="linenos">234</span></a> <span class="p">)</span> </span></pre></div> @@ -1435,8 +1497,8 @@ </div> <a class="headerlink" href="#arrow_json_extract_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="arrow_json_extract_sql-234"><a href="#arrow_json_extract_sql-234"><span class="linenos">234</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtract</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="arrow_json_extract_sql-235"><a href="#arrow_json_extract_sql-235"><span class="linenos">235</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="arrow_json_extract_sql-237"><a href="#arrow_json_extract_sql-237"><span class="linenos">237</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtract</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="arrow_json_extract_sql-238"><a href="#arrow_json_extract_sql-238"><span class="linenos">238</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->"</span><span class="p">)</span> </span></pre></div> @@ -1454,10 +1516,10 @@ </div> <a class="headerlink" href="#arrow_json_extract_scalar_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="arrow_json_extract_scalar_sql-238"><a href="#arrow_json_extract_scalar_sql-238"><span class="linenos">238</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_scalar_sql</span><span class="p">(</span> -</span><span id="arrow_json_extract_scalar_sql-239"><a href="#arrow_json_extract_scalar_sql-239"><span class="linenos">239</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtractScalar</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span> -</span><span id="arrow_json_extract_scalar_sql-240"><a href="#arrow_json_extract_scalar_sql-240"><span class="linenos">240</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="arrow_json_extract_scalar_sql-241"><a href="#arrow_json_extract_scalar_sql-241"><span class="linenos">241</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->>"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="arrow_json_extract_scalar_sql-241"><a href="#arrow_json_extract_scalar_sql-241"><span class="linenos">241</span></a><span class="k">def</span> <span class="nf">arrow_json_extract_scalar_sql</span><span class="p">(</span> +</span><span id="arrow_json_extract_scalar_sql-242"><a href="#arrow_json_extract_scalar_sql-242"><span class="linenos">242</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">JSONExtractScalar</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span> +</span><span id="arrow_json_extract_scalar_sql-243"><a href="#arrow_json_extract_scalar_sql-243"><span class="linenos">243</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="arrow_json_extract_scalar_sql-244"><a href="#arrow_json_extract_scalar_sql-244"><span class="linenos">244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"->>"</span><span class="p">)</span> </span></pre></div> @@ -1475,8 +1537,8 @@ </div> <a class="headerlink" href="#inline_array_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="inline_array_sql-244"><a href="#inline_array_sql-244"><span class="linenos">244</span></a><span class="k">def</span> <span class="nf">inline_array_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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="inline_array_sql-245"><a href="#inline_array_sql-245"><span class="linenos">245</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="inline_array_sql-247"><a href="#inline_array_sql-247"><span class="linenos">247</span></a><span class="k">def</span> <span class="nf">inline_array_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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="inline_array_sql-248"><a href="#inline_array_sql-248"><span class="linenos">248</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span> </span></pre></div> @@ -1494,13 +1556,13 @@ </div> <a class="headerlink" href="#no_ilike_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_ilike_sql-248"><a href="#no_ilike_sql-248"><span class="linenos">248</span></a><span class="k">def</span> <span class="nf">no_ilike_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_ilike_sql-249"><a href="#no_ilike_sql-249"><span class="linenos">249</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">like_sql</span><span class="p">(</span> -</span><span id="no_ilike_sql-250"><a href="#no_ilike_sql-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">(</span> -</span><span id="no_ilike_sql-251"><a href="#no_ilike_sql-251"><span class="linenos">251</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Lower</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> -</span><span id="no_ilike_sql-252"><a href="#no_ilike_sql-252"><span class="linenos">252</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"expression"</span><span class="p">],</span> -</span><span id="no_ilike_sql-253"><a href="#no_ilike_sql-253"><span class="linenos">253</span></a> <span class="p">)</span> -</span><span id="no_ilike_sql-254"><a href="#no_ilike_sql-254"><span class="linenos">254</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_ilike_sql-251"><a href="#no_ilike_sql-251"><span class="linenos">251</span></a><span class="k">def</span> <span class="nf">no_ilike_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_ilike_sql-252"><a href="#no_ilike_sql-252"><span class="linenos">252</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">like_sql</span><span class="p">(</span> +</span><span id="no_ilike_sql-253"><a href="#no_ilike_sql-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">(</span> +</span><span id="no_ilike_sql-254"><a href="#no_ilike_sql-254"><span class="linenos">254</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Lower</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> +</span><span id="no_ilike_sql-255"><a href="#no_ilike_sql-255"><span class="linenos">255</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"expression"</span><span class="p">],</span> +</span><span id="no_ilike_sql-256"><a href="#no_ilike_sql-256"><span class="linenos">256</span></a> <span class="p">)</span> +</span><span id="no_ilike_sql-257"><a href="#no_ilike_sql-257"><span class="linenos">257</span></a> <span class="p">)</span> </span></pre></div> @@ -1518,9 +1580,9 @@ </div> <a class="headerlink" href="#no_paren_current_date_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_paren_current_date_sql-257"><a href="#no_paren_current_date_sql-257"><span class="linenos">257</span></a><span class="k">def</span> <span class="nf">no_paren_current_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_paren_current_date_sql-258"><a href="#no_paren_current_date_sql-258"><span class="linenos">258</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> -</span><span id="no_paren_current_date_sql-259"><a href="#no_paren_current_date_sql-259"><span class="linenos">259</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_paren_current_date_sql-260"><a href="#no_paren_current_date_sql-260"><span class="linenos">260</span></a><span class="k">def</span> <span class="nf">no_paren_current_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_paren_current_date_sql-261"><a href="#no_paren_current_date_sql-261"><span class="linenos">261</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> +</span><span id="no_paren_current_date_sql-262"><a href="#no_paren_current_date_sql-262"><span class="linenos">262</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> </span></pre></div> @@ -1538,11 +1600,11 @@ </div> <a class="headerlink" href="#no_recursive_cte_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_recursive_cte_sql-262"><a href="#no_recursive_cte_sql-262"><span class="linenos">262</span></a><span class="k">def</span> <span class="nf">no_recursive_cte_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_recursive_cte_sql-263"><a href="#no_recursive_cte_sql-263"><span class="linenos">263</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">"recursive"</span><span class="p">):</span> -</span><span id="no_recursive_cte_sql-264"><a href="#no_recursive_cte_sql-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Recursive CTEs are unsupported"</span><span class="p">)</span> -</span><span id="no_recursive_cte_sql-265"><a href="#no_recursive_cte_sql-265"><span class="linenos">265</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"recursive"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="no_recursive_cte_sql-266"><a href="#no_recursive_cte_sql-266"><span class="linenos">266</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_recursive_cte_sql-265"><a href="#no_recursive_cte_sql-265"><span class="linenos">265</span></a><span class="k">def</span> <span class="nf">no_recursive_cte_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_recursive_cte_sql-266"><a href="#no_recursive_cte_sql-266"><span class="linenos">266</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">"recursive"</span><span class="p">):</span> +</span><span id="no_recursive_cte_sql-267"><a href="#no_recursive_cte_sql-267"><span class="linenos">267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Recursive CTEs are unsupported"</span><span class="p">)</span> +</span><span id="no_recursive_cte_sql-268"><a href="#no_recursive_cte_sql-268"><span class="linenos">268</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"recursive"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="no_recursive_cte_sql-269"><a href="#no_recursive_cte_sql-269"><span class="linenos">269</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -1560,10 +1622,10 @@ </div> <a class="headerlink" href="#no_safe_divide_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_safe_divide_sql-269"><a href="#no_safe_divide_sql-269"><span class="linenos">269</span></a><span class="k">def</span> <span class="nf">no_safe_divide_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">SafeDivide</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_safe_divide_sql-270"><a href="#no_safe_divide_sql-270"><span class="linenos">270</span></a> <span class="n">n</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">"this"</span><span class="p">)</span> -</span><span id="no_safe_divide_sql-271"><a href="#no_safe_divide_sql-271"><span class="linenos">271</span></a> <span class="n">d</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">"expression"</span><span class="p">)</span> -</span><span id="no_safe_divide_sql-272"><a href="#no_safe_divide_sql-272"><span class="linenos">272</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"IF(</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2"> <> 0, </span><span class="si">{</span><span class="n">n</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">, NULL)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_safe_divide_sql-272"><a href="#no_safe_divide_sql-272"><span class="linenos">272</span></a><span class="k">def</span> <span class="nf">no_safe_divide_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">SafeDivide</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_safe_divide_sql-273"><a href="#no_safe_divide_sql-273"><span class="linenos">273</span></a> <span class="n">n</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">"this"</span><span class="p">)</span> +</span><span id="no_safe_divide_sql-274"><a href="#no_safe_divide_sql-274"><span class="linenos">274</span></a> <span class="n">d</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">"expression"</span><span class="p">)</span> +</span><span id="no_safe_divide_sql-275"><a href="#no_safe_divide_sql-275"><span class="linenos">275</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"IF(</span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2"> <> 0, </span><span class="si">{</span><span class="n">n</span><span class="si">}</span><span class="s2"> / </span><span class="si">{</span><span class="n">d</span><span class="si">}</span><span class="s2">, NULL)"</span> </span></pre></div> @@ -1581,9 +1643,9 @@ </div> <a class="headerlink" href="#no_tablesample_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_tablesample_sql-275"><a href="#no_tablesample_sql-275"><span class="linenos">275</span></a><span class="k">def</span> <span class="nf">no_tablesample_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TableSample</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_tablesample_sql-276"><a href="#no_tablesample_sql-276"><span class="linenos">276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"TABLESAMPLE unsupported"</span><span class="p">)</span> -</span><span id="no_tablesample_sql-277"><a href="#no_tablesample_sql-277"><span class="linenos">277</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="o">.</span><span class="n">this</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_tablesample_sql-278"><a href="#no_tablesample_sql-278"><span class="linenos">278</span></a><span class="k">def</span> <span class="nf">no_tablesample_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TableSample</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_tablesample_sql-279"><a href="#no_tablesample_sql-279"><span class="linenos">279</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"TABLESAMPLE unsupported"</span><span class="p">)</span> +</span><span id="no_tablesample_sql-280"><a href="#no_tablesample_sql-280"><span class="linenos">280</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="o">.</span><span class="n">this</span><span class="p">)</span> </span></pre></div> @@ -1601,9 +1663,9 @@ </div> <a class="headerlink" href="#no_pivot_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_pivot_sql-280"><a href="#no_pivot_sql-280"><span class="linenos">280</span></a><span class="k">def</span> <span class="nf">no_pivot_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_pivot_sql-281"><a href="#no_pivot_sql-281"><span class="linenos">281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"PIVOT unsupported"</span><span class="p">)</span> -</span><span id="no_pivot_sql-282"><a href="#no_pivot_sql-282"><span class="linenos">282</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_pivot_sql-283"><a href="#no_pivot_sql-283"><span class="linenos">283</span></a><span class="k">def</span> <span class="nf">no_pivot_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_pivot_sql-284"><a href="#no_pivot_sql-284"><span class="linenos">284</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"PIVOT unsupported"</span><span class="p">)</span> +</span><span id="no_pivot_sql-285"><a href="#no_pivot_sql-285"><span class="linenos">285</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></pre></div> @@ -1621,8 +1683,8 @@ </div> <a class="headerlink" href="#no_trycast_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_trycast_sql-285"><a href="#no_trycast_sql-285"><span class="linenos">285</span></a><span class="k">def</span> <span class="nf">no_trycast_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_trycast_sql-286"><a href="#no_trycast_sql-286"><span class="linenos">286</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">cast_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_trycast_sql-288"><a href="#no_trycast_sql-288"><span class="linenos">288</span></a><span class="k">def</span> <span class="nf">no_trycast_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_trycast_sql-289"><a href="#no_trycast_sql-289"><span class="linenos">289</span></a> <span class="k">return</span> <span class="bp">self</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></pre></div> @@ -1640,9 +1702,9 @@ </div> <a class="headerlink" href="#no_properties_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="no_properties_sql-289"><a href="#no_properties_sql-289"><span class="linenos">289</span></a><span class="k">def</span> <span class="nf">no_properties_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="no_properties_sql-290"><a href="#no_properties_sql-290"><span class="linenos">290</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Properties unsupported"</span><span class="p">)</span> -</span><span id="no_properties_sql-291"><a href="#no_properties_sql-291"><span class="linenos">291</span></a> <span class="k">return</span> <span class="s2">""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="no_properties_sql-292"><a href="#no_properties_sql-292"><span class="linenos">292</span></a><span class="k">def</span> <span class="nf">no_properties_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="no_properties_sql-293"><a href="#no_properties_sql-293"><span class="linenos">293</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Properties unsupported"</span><span class="p">)</span> +</span><span id="no_properties_sql-294"><a href="#no_properties_sql-294"><span class="linenos">294</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -1660,13 +1722,13 @@ </div> <a class="headerlink" href="#str_position_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="str_position_sql-294"><a href="#str_position_sql-294"><span class="linenos">294</span></a><span class="k">def</span> <span class="nf">str_position_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="str_position_sql-295"><a href="#str_position_sql-295"><span class="linenos">295</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="str_position_sql-296"><a href="#str_position_sql-296"><span class="linenos">296</span></a> <span class="n">substr</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">"substr"</span><span class="p">)</span> -</span><span id="str_position_sql-297"><a href="#str_position_sql-297"><span class="linenos">297</span></a> <span class="n">position</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">"position"</span><span class="p">)</span> -</span><span id="str_position_sql-298"><a href="#str_position_sql-298"><span class="linenos">298</span></a> <span class="k">if</span> <span class="n">position</span><span class="p">:</span> -</span><span id="str_position_sql-299"><a href="#str_position_sql-299"><span class="linenos">299</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(SUBSTR(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2">), </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">) + </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2"> - 1"</span> -</span><span id="str_position_sql-300"><a href="#str_position_sql-300"><span class="linenos">300</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="str_position_sql-297"><a href="#str_position_sql-297"><span class="linenos">297</span></a><span class="k">def</span> <span class="nf">str_position_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="str_position_sql-298"><a href="#str_position_sql-298"><span class="linenos">298</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="str_position_sql-299"><a href="#str_position_sql-299"><span class="linenos">299</span></a> <span class="n">substr</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">"substr"</span><span class="p">)</span> +</span><span id="str_position_sql-300"><a href="#str_position_sql-300"><span class="linenos">300</span></a> <span class="n">position</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">"position"</span><span class="p">)</span> +</span><span id="str_position_sql-301"><a href="#str_position_sql-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="n">position</span><span class="p">:</span> +</span><span id="str_position_sql-302"><a href="#str_position_sql-302"><span class="linenos">302</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(SUBSTR(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2">), </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">) + </span><span class="si">{</span><span class="n">position</span><span class="si">}</span><span class="s2"> - 1"</span> +</span><span id="str_position_sql-303"><a href="#str_position_sql-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRPOS(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">substr</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -1684,10 +1746,10 @@ </div> <a class="headerlink" href="#struct_extract_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="struct_extract_sql-303"><a href="#struct_extract_sql-303"><span class="linenos">303</span></a><span class="k">def</span> <span class="nf">struct_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StructExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="struct_extract_sql-304"><a href="#struct_extract_sql-304"><span class="linenos">304</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="struct_extract_sql-305"><a href="#struct_extract_sql-305"><span class="linenos">305</span></a> <span class="n">struct_key</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="struct_extract_sql-306"><a href="#struct_extract_sql-306"><span class="linenos">306</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">.</span><span class="si">{</span><span class="n">struct_key</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="struct_extract_sql-306"><a href="#struct_extract_sql-306"><span class="linenos">306</span></a><span class="k">def</span> <span class="nf">struct_extract_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StructExtract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="struct_extract_sql-307"><a href="#struct_extract_sql-307"><span class="linenos">307</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="struct_extract_sql-308"><a href="#struct_extract_sql-308"><span class="linenos">308</span></a> <span class="n">struct_key</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">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="struct_extract_sql-309"><a href="#struct_extract_sql-309"><span class="linenos">309</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">.</span><span class="si">{</span><span class="n">struct_key</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1705,21 +1767,21 @@ </div> <a class="headerlink" href="#var_map_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="var_map_sql-309"><a href="#var_map_sql-309"><span class="linenos">309</span></a><span class="k">def</span> <span class="nf">var_map_sql</span><span class="p">(</span> -</span><span id="var_map_sql-310"><a href="#var_map_sql-310"><span class="linenos">310</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Map</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">,</span> <span class="n">map_func_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"MAP"</span> -</span><span id="var_map_sql-311"><a href="#var_map_sql-311"><span class="linenos">311</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="var_map_sql-312"><a href="#var_map_sql-312"><span class="linenos">312</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">]</span> -</span><span id="var_map_sql-313"><a href="#var_map_sql-313"><span class="linenos">313</span></a> <span class="n">values</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]</span> -</span><span id="var_map_sql-314"><a href="#var_map_sql-314"><span class="linenos">314</span></a> -</span><span id="var_map_sql-315"><a href="#var_map_sql-315"><span class="linenos">315</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">keys</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="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">):</span> -</span><span id="var_map_sql-316"><a href="#var_map_sql-316"><span class="linenos">316</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Cannot convert array columns into map."</span><span class="p">)</span> -</span><span id="var_map_sql-317"><a href="#var_map_sql-317"><span class="linenos">317</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="n">keys</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span> -</span><span id="var_map_sql-318"><a href="#var_map_sql-318"><span class="linenos">318</span></a> -</span><span id="var_map_sql-319"><a href="#var_map_sql-319"><span class="linenos">319</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="var_map_sql-320"><a href="#var_map_sql-320"><span class="linenos">320</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">keys</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="var_map_sql-321"><a href="#var_map_sql-321"><span class="linenos">321</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">key</span><span class="p">))</span> -</span><span id="var_map_sql-322"><a href="#var_map_sql-322"><span class="linenos">322</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">value</span><span class="p">))</span> -</span><span id="var_map_sql-323"><a href="#var_map_sql-323"><span class="linenos">323</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="var_map_sql-312"><a href="#var_map_sql-312"><span class="linenos">312</span></a><span class="k">def</span> <span class="nf">var_map_sql</span><span class="p">(</span> +</span><span id="var_map_sql-313"><a href="#var_map_sql-313"><span class="linenos">313</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Map</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">,</span> <span class="n">map_func_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"MAP"</span> +</span><span id="var_map_sql-314"><a href="#var_map_sql-314"><span class="linenos">314</span></a><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="var_map_sql-315"><a href="#var_map_sql-315"><span class="linenos">315</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">]</span> +</span><span id="var_map_sql-316"><a href="#var_map_sql-316"><span class="linenos">316</span></a> <span class="n">values</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]</span> +</span><span id="var_map_sql-317"><a href="#var_map_sql-317"><span class="linenos">317</span></a> +</span><span id="var_map_sql-318"><a href="#var_map_sql-318"><span class="linenos">318</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">keys</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="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">values</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">):</span> +</span><span id="var_map_sql-319"><a href="#var_map_sql-319"><span class="linenos">319</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Cannot convert array columns into map."</span><span class="p">)</span> +</span><span id="var_map_sql-320"><a href="#var_map_sql-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="n">keys</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span> +</span><span id="var_map_sql-321"><a href="#var_map_sql-321"><span class="linenos">321</span></a> +</span><span id="var_map_sql-322"><a href="#var_map_sql-322"><span class="linenos">322</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="var_map_sql-323"><a href="#var_map_sql-323"><span class="linenos">323</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">keys</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">values</span><span class="o">.</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="var_map_sql-324"><a href="#var_map_sql-324"><span class="linenos">324</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">key</span><span class="p">))</span> +</span><span id="var_map_sql-325"><a href="#var_map_sql-325"><span class="linenos">325</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</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">value</span><span class="p">))</span> +</span><span id="var_map_sql-326"><a href="#var_map_sql-326"><span class="linenos">326</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">map_func_name</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> </span></pre></div> @@ -1737,30 +1799,30 @@ </div> <a class="headerlink" href="#format_time_lambda"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="format_time_lambda-326"><a href="#format_time_lambda-326"><span class="linenos">326</span></a><span class="k">def</span> <span class="nf">format_time_lambda</span><span class="p">(</span> -</span><span id="format_time_lambda-327"><a href="#format_time_lambda-327"><span class="linenos">327</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">default</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="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="format_time_lambda-328"><a href="#format_time_lambda-328"><span class="linenos">328</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> -</span><span id="format_time_lambda-329"><a href="#format_time_lambda-329"><span class="linenos">329</span></a><span class="w"> </span><span class="sd">"""Helper used for time expressions.</span> -</span><span id="format_time_lambda-330"><a href="#format_time_lambda-330"><span class="linenos">330</span></a> -</span><span id="format_time_lambda-331"><a href="#format_time_lambda-331"><span class="linenos">331</span></a><span class="sd"> Args:</span> -</span><span id="format_time_lambda-332"><a href="#format_time_lambda-332"><span class="linenos">332</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> -</span><span id="format_time_lambda-333"><a href="#format_time_lambda-333"><span class="linenos">333</span></a><span class="sd"> dialect: target sql dialect.</span> -</span><span id="format_time_lambda-334"><a href="#format_time_lambda-334"><span class="linenos">334</span></a><span class="sd"> default: the default format, True being time.</span> -</span><span id="format_time_lambda-335"><a href="#format_time_lambda-335"><span class="linenos">335</span></a> -</span><span id="format_time_lambda-336"><a href="#format_time_lambda-336"><span class="linenos">336</span></a><span class="sd"> Returns:</span> -</span><span id="format_time_lambda-337"><a href="#format_time_lambda-337"><span class="linenos">337</span></a><span class="sd"> A callable that can be used to return the appropriately formatted time expression.</span> -</span><span id="format_time_lambda-338"><a href="#format_time_lambda-338"><span class="linenos">338</span></a><span class="sd"> """</span> -</span><span id="format_time_lambda-339"><a href="#format_time_lambda-339"><span class="linenos">339</span></a> -</span><span id="format_time_lambda-340"><a href="#format_time_lambda-340"><span class="linenos">340</span></a> <span class="k">def</span> <span class="nf">_format_time</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">Sequence</span><span class="p">):</span> -</span><span id="format_time_lambda-341"><a href="#format_time_lambda-341"><span class="linenos">341</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span> -</span><span id="format_time_lambda-342"><a href="#format_time_lambda-342"><span class="linenos">342</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="format_time_lambda-343"><a href="#format_time_lambda-343"><span class="linenos">343</span></a> <span class="nb">format</span><span class="o">=</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span> -</span><span id="format_time_lambda-344"><a href="#format_time_lambda-344"><span class="linenos">344</span></a> <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="format_time_lambda-345"><a href="#format_time_lambda-345"><span class="linenos">345</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">time_format</span> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">default</span> <span class="ow">or</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="format_time_lambda-346"><a href="#format_time_lambda-346"><span class="linenos">346</span></a> <span class="p">),</span> -</span><span id="format_time_lambda-347"><a href="#format_time_lambda-347"><span class="linenos">347</span></a> <span class="p">)</span> -</span><span id="format_time_lambda-348"><a href="#format_time_lambda-348"><span class="linenos">348</span></a> -</span><span id="format_time_lambda-349"><a href="#format_time_lambda-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="n">_format_time</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="format_time_lambda-329"><a href="#format_time_lambda-329"><span class="linenos">329</span></a><span class="k">def</span> <span class="nf">format_time_lambda</span><span class="p">(</span> +</span><span id="format_time_lambda-330"><a href="#format_time_lambda-330"><span class="linenos">330</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">default</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="o">|</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="format_time_lambda-331"><a href="#format_time_lambda-331"><span class="linenos">331</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> +</span><span id="format_time_lambda-332"><a href="#format_time_lambda-332"><span class="linenos">332</span></a><span class="w"> </span><span class="sd">"""Helper used for time expressions.</span> +</span><span id="format_time_lambda-333"><a href="#format_time_lambda-333"><span class="linenos">333</span></a> +</span><span id="format_time_lambda-334"><a href="#format_time_lambda-334"><span class="linenos">334</span></a><span class="sd"> Args:</span> +</span><span id="format_time_lambda-335"><a href="#format_time_lambda-335"><span class="linenos">335</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> +</span><span id="format_time_lambda-336"><a href="#format_time_lambda-336"><span class="linenos">336</span></a><span class="sd"> dialect: target sql dialect.</span> +</span><span id="format_time_lambda-337"><a href="#format_time_lambda-337"><span class="linenos">337</span></a><span class="sd"> default: the default format, True being time.</span> +</span><span id="format_time_lambda-338"><a href="#format_time_lambda-338"><span class="linenos">338</span></a> +</span><span id="format_time_lambda-339"><a href="#format_time_lambda-339"><span class="linenos">339</span></a><span class="sd"> Returns:</span> +</span><span id="format_time_lambda-340"><a href="#format_time_lambda-340"><span class="linenos">340</span></a><span class="sd"> A callable that can be used to return the appropriately formatted time expression.</span> +</span><span id="format_time_lambda-341"><a href="#format_time_lambda-341"><span class="linenos">341</span></a><span class="sd"> """</span> +</span><span id="format_time_lambda-342"><a href="#format_time_lambda-342"><span class="linenos">342</span></a> +</span><span id="format_time_lambda-343"><a href="#format_time_lambda-343"><span class="linenos">343</span></a> <span class="k">def</span> <span class="nf">_format_time</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">Sequence</span><span class="p">):</span> +</span><span id="format_time_lambda-344"><a href="#format_time_lambda-344"><span class="linenos">344</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span> +</span><span id="format_time_lambda-345"><a href="#format_time_lambda-345"><span class="linenos">345</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="format_time_lambda-346"><a href="#format_time_lambda-346"><span class="linenos">346</span></a> <span class="nb">format</span><span class="o">=</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span> +</span><span id="format_time_lambda-347"><a href="#format_time_lambda-347"><span class="linenos">347</span></a> <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="format_time_lambda-348"><a href="#format_time_lambda-348"><span class="linenos">348</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">Dialect</span><span class="p">[</span><span class="n">dialect</span><span class="p">]</span><span class="o">.</span><span class="n">time_format</span> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="kc">True</span> <span class="k">else</span> <span class="n">default</span> <span class="ow">or</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="format_time_lambda-349"><a href="#format_time_lambda-349"><span class="linenos">349</span></a> <span class="p">),</span> +</span><span id="format_time_lambda-350"><a href="#format_time_lambda-350"><span class="linenos">350</span></a> <span class="p">)</span> +</span><span id="format_time_lambda-351"><a href="#format_time_lambda-351"><span class="linenos">351</span></a> +</span><span id="format_time_lambda-352"><a href="#format_time_lambda-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="n">_format_time</span> </span></pre></div> @@ -1794,27 +1856,27 @@ </div> <a class="headerlink" href="#create_with_partitions_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="create_with_partitions_sql-352"><a href="#create_with_partitions_sql-352"><span class="linenos">352</span></a><span class="k">def</span> <span class="nf">create_with_partitions_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="create_with_partitions_sql-353"><a href="#create_with_partitions_sql-353"><span class="linenos">353</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="create_with_partitions_sql-354"><a href="#create_with_partitions_sql-354"><span class="linenos">354</span></a><span class="sd"> In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the</span> -</span><span id="create_with_partitions_sql-355"><a href="#create_with_partitions_sql-355"><span class="linenos">355</span></a><span class="sd"> PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding</span> -</span><span id="create_with_partitions_sql-356"><a href="#create_with_partitions_sql-356"><span class="linenos">356</span></a><span class="sd"> columns are removed from the create statement.</span> -</span><span id="create_with_partitions_sql-357"><a href="#create_with_partitions_sql-357"><span class="linenos">357</span></a><span class="sd"> """</span> -</span><span id="create_with_partitions_sql-358"><a href="#create_with_partitions_sql-358"><span class="linenos">358</span></a> <span class="n">has_schema</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Schema</span><span class="p">)</span> -</span><span id="create_with_partitions_sql-359"><a href="#create_with_partitions_sql-359"><span class="linenos">359</span></a> <span class="n">is_partitionable</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">"kind"</span><span class="p">)</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">)</span> -</span><span id="create_with_partitions_sql-360"><a href="#create_with_partitions_sql-360"><span class="linenos">360</span></a> -</span><span id="create_with_partitions_sql-361"><a href="#create_with_partitions_sql-361"><span class="linenos">361</span></a> <span class="k">if</span> <span class="n">has_schema</span> <span class="ow">and</span> <span class="n">is_partitionable</span><span class="p">:</span> -</span><span id="create_with_partitions_sql-362"><a href="#create_with_partitions_sql-362"><span class="linenos">362</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="create_with_partitions_sql-363"><a href="#create_with_partitions_sql-363"><span class="linenos">363</span></a> <span class="n">prop</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">)</span> -</span><span id="create_with_partitions_sql-364"><a href="#create_with_partitions_sql-364"><span class="linenos">364</span></a> <span class="k">if</span> <span class="n">prop</span> <span class="ow">and</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</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">Schema</span><span class="p">):</span> -</span><span id="create_with_partitions_sql-365"><a href="#create_with_partitions_sql-365"><span class="linenos">365</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="create_with_partitions_sql-366"><a href="#create_with_partitions_sql-366"><span class="linenos">366</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">}</span> -</span><span id="create_with_partitions_sql-367"><a href="#create_with_partitions_sql-367"><span class="linenos">367</span></a> <span class="n">partitions</span> <span class="o">=</span> <span class="p">[</span><span class="n">col</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">]</span> -</span><span id="create_with_partitions_sql-368"><a href="#create_with_partitions_sql-368"><span class="linenos">368</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="p">[</span><span class="n">e</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">partitions</span><span class="p">])</span> -</span><span id="create_with_partitions_sql-369"><a href="#create_with_partitions_sql-369"><span class="linenos">369</span></a> <span class="n">prop</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">partitions</span><span class="p">)))</span> -</span><span id="create_with_partitions_sql-370"><a href="#create_with_partitions_sql-370"><span class="linenos">370</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">schema</span><span class="p">)</span> -</span><span id="create_with_partitions_sql-371"><a href="#create_with_partitions_sql-371"><span class="linenos">371</span></a> -</span><span id="create_with_partitions_sql-372"><a href="#create_with_partitions_sql-372"><span class="linenos">372</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="create_with_partitions_sql-355"><a href="#create_with_partitions_sql-355"><span class="linenos">355</span></a><span class="k">def</span> <span class="nf">create_with_partitions_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="create_with_partitions_sql-356"><a href="#create_with_partitions_sql-356"><span class="linenos">356</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="create_with_partitions_sql-357"><a href="#create_with_partitions_sql-357"><span class="linenos">357</span></a><span class="sd"> In Hive and Spark, the PARTITIONED BY property acts as an extension of a table's schema. When the</span> +</span><span id="create_with_partitions_sql-358"><a href="#create_with_partitions_sql-358"><span class="linenos">358</span></a><span class="sd"> PARTITIONED BY value is an array of column names, they are transformed into a schema. The corresponding</span> +</span><span id="create_with_partitions_sql-359"><a href="#create_with_partitions_sql-359"><span class="linenos">359</span></a><span class="sd"> columns are removed from the create statement.</span> +</span><span id="create_with_partitions_sql-360"><a href="#create_with_partitions_sql-360"><span class="linenos">360</span></a><span class="sd"> """</span> +</span><span id="create_with_partitions_sql-361"><a href="#create_with_partitions_sql-361"><span class="linenos">361</span></a> <span class="n">has_schema</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Schema</span><span class="p">)</span> +</span><span id="create_with_partitions_sql-362"><a href="#create_with_partitions_sql-362"><span class="linenos">362</span></a> <span class="n">is_partitionable</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">"kind"</span><span class="p">)</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">)</span> +</span><span id="create_with_partitions_sql-363"><a href="#create_with_partitions_sql-363"><span class="linenos">363</span></a> +</span><span id="create_with_partitions_sql-364"><a href="#create_with_partitions_sql-364"><span class="linenos">364</span></a> <span class="k">if</span> <span class="n">has_schema</span> <span class="ow">and</span> <span class="n">is_partitionable</span><span class="p">:</span> +</span><span id="create_with_partitions_sql-365"><a href="#create_with_partitions_sql-365"><span class="linenos">365</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="create_with_partitions_sql-366"><a href="#create_with_partitions_sql-366"><span class="linenos">366</span></a> <span class="n">prop</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">)</span> +</span><span id="create_with_partitions_sql-367"><a href="#create_with_partitions_sql-367"><span class="linenos">367</span></a> <span class="k">if</span> <span class="n">prop</span> <span class="ow">and</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">prop</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">Schema</span><span class="p">):</span> +</span><span id="create_with_partitions_sql-368"><a href="#create_with_partitions_sql-368"><span class="linenos">368</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="create_with_partitions_sql-369"><a href="#create_with_partitions_sql-369"><span class="linenos">369</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">prop</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">expressions</span><span class="p">}</span> +</span><span id="create_with_partitions_sql-370"><a href="#create_with_partitions_sql-370"><span class="linenos">370</span></a> <span class="n">partitions</span> <span class="o">=</span> <span class="p">[</span><span class="n">col</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">]</span> +</span><span id="create_with_partitions_sql-371"><a href="#create_with_partitions_sql-371"><span class="linenos">371</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="p">[</span><span class="n">e</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">schema</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">partitions</span><span class="p">])</span> +</span><span id="create_with_partitions_sql-372"><a href="#create_with_partitions_sql-372"><span class="linenos">372</span></a> <span class="n">prop</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">partitions</span><span class="p">)))</span> +</span><span id="create_with_partitions_sql-373"><a href="#create_with_partitions_sql-373"><span class="linenos">373</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">schema</span><span class="p">)</span> +</span><span id="create_with_partitions_sql-374"><a href="#create_with_partitions_sql-374"><span class="linenos">374</span></a> +</span><span id="create_with_partitions_sql-375"><a href="#create_with_partitions_sql-375"><span class="linenos">375</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">create_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -1836,18 +1898,63 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#parse_date_delta"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="parse_date_delta-375"><a href="#parse_date_delta-375"><span class="linenos">375</span></a><span class="k">def</span> <span class="nf">parse_date_delta</span><span class="p">(</span> -</span><span id="parse_date_delta-376"><a href="#parse_date_delta-376"><span class="linenos">376</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">unit_mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="parse_date_delta-377"><a href="#parse_date_delta-377"><span class="linenos">377</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> -</span><span id="parse_date_delta-378"><a href="#parse_date_delta-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">inner_func</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">E</span><span class="p">:</span> -</span><span id="parse_date_delta-379"><a href="#parse_date_delta-379"><span class="linenos">379</span></a> <span class="n">unit_based</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span> -</span><span id="parse_date_delta-380"><a href="#parse_date_delta-380"><span class="linenos">380</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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="parse_date_delta-381"><a href="#parse_date_delta-381"><span class="linenos">381</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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="parse_date_delta-382"><a href="#parse_date_delta-382"><span class="linenos">382</span></a> <span class="n">unit</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="k">if</span> <span class="n">unit_based</span> <span class="k">else</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">"DAY"</span><span class="p">)</span> -</span><span id="parse_date_delta-383"><a href="#parse_date_delta-383"><span class="linenos">383</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit_mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="n">unit</span><span class="p">)</span> <span class="k">if</span> <span class="n">unit_mapping</span> <span class="k">else</span> <span class="n">unit</span> <span class="c1"># type: ignore</span> -</span><span id="parse_date_delta-384"><a href="#parse_date_delta-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> -</span><span id="parse_date_delta-385"><a href="#parse_date_delta-385"><span class="linenos">385</span></a> -</span><span id="parse_date_delta-386"><a href="#parse_date_delta-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="n">inner_func</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="parse_date_delta-378"><a href="#parse_date_delta-378"><span class="linenos">378</span></a><span class="k">def</span> <span class="nf">parse_date_delta</span><span class="p">(</span> +</span><span id="parse_date_delta-379"><a href="#parse_date_delta-379"><span class="linenos">379</span></a> <span class="n">exp_class</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">E</span><span class="p">],</span> <span class="n">unit_mapping</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="parse_date_delta-380"><a href="#parse_date_delta-380"><span class="linenos">380</span></a><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">Sequence</span><span class="p">],</span> <span class="n">E</span><span class="p">]:</span> +</span><span id="parse_date_delta-381"><a href="#parse_date_delta-381"><span class="linenos">381</span></a> <span class="k">def</span> <span class="nf">inner_func</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">E</span><span class="p">:</span> +</span><span id="parse_date_delta-382"><a href="#parse_date_delta-382"><span class="linenos">382</span></a> <span class="n">unit_based</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span> +</span><span id="parse_date_delta-383"><a href="#parse_date_delta-383"><span class="linenos">383</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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="parse_date_delta-384"><a href="#parse_date_delta-384"><span class="linenos">384</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 class="k">if</span> <span class="n">unit_based</span> <span class="k">else</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="parse_date_delta-385"><a href="#parse_date_delta-385"><span class="linenos">385</span></a> <span class="n">unit</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="k">if</span> <span class="n">unit_based</span> <span class="k">else</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">"DAY"</span><span class="p">)</span> +</span><span id="parse_date_delta-386"><a href="#parse_date_delta-386"><span class="linenos">386</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit_mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">(),</span> <span class="n">unit</span><span class="p">)</span> <span class="k">if</span> <span class="n">unit_mapping</span> <span class="k">else</span> <span class="n">unit</span> <span class="c1"># type: ignore</span> +</span><span id="parse_date_delta-387"><a href="#parse_date_delta-387"><span class="linenos">387</span></a> <span class="k">return</span> <span class="n">exp_class</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> +</span><span id="parse_date_delta-388"><a href="#parse_date_delta-388"><span class="linenos">388</span></a> +</span><span id="parse_date_delta-389"><a href="#parse_date_delta-389"><span class="linenos">389</span></a> <span class="k">return</span> <span class="n">inner_func</span> +</span></pre></div> + + + + + </section> + <section id="date_trunc_to_time"> + <input id="date_trunc_to_time-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">date_trunc_to_time</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">args</span><span class="p">:</span> <span class="n">Sequence</span></span><span class="return-annotation">) -> <span class="n"><a href="../expressions.html#DateTrunc">sqlglot.expressions.DateTrunc</a></span> <span class="o">|</span> <span class="n"><a href="../expressions.html#TimestampTrunc">sqlglot.expressions.TimestampTrunc</a></span>:</span></span> + + <label class="view-source-button" for="date_trunc_to_time-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#date_trunc_to_time"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="date_trunc_to_time-392"><a href="#date_trunc_to_time-392"><span class="linenos">392</span></a><span class="k">def</span> <span class="nf">date_trunc_to_time</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> +</span><span id="date_trunc_to_time-393"><a href="#date_trunc_to_time-393"><span class="linenos">393</span></a> <span class="n">unit</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="date_trunc_to_time-394"><a href="#date_trunc_to_time-394"><span class="linenos">394</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">1</span><span class="p">)</span> +</span><span id="date_trunc_to_time-395"><a href="#date_trunc_to_time-395"><span class="linenos">395</span></a> +</span><span id="date_trunc_to_time-396"><a href="#date_trunc_to_time-396"><span class="linenos">396</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</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="ow">and</span> <span class="n">this</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">DATE</span><span class="p">):</span> +</span><span id="date_trunc_to_time-397"><a href="#date_trunc_to_time-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">(</span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="date_trunc_to_time-398"><a href="#date_trunc_to_time-398"><span class="linenos">398</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</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">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> +</span></pre></div> + + + + + </section> + <section id="timestamptrunc_sql"> + <input id="timestamptrunc_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">timestamptrunc_sql</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span><span class="p">:</span> <span class="n"><a href="../generator.html#Generator">sqlglot.generator.Generator</a></span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#TimestampTrunc">sqlglot.expressions.TimestampTrunc</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="timestamptrunc_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#timestamptrunc_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="timestamptrunc_sql-401"><a href="#timestamptrunc_sql-401"><span class="linenos">401</span></a><span class="k">def</span> <span class="nf">timestamptrunc_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TimestampTrunc</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="timestamptrunc_sql-402"><a href="#timestamptrunc_sql-402"><span class="linenos">402</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="timestamptrunc_sql-403"><a href="#timestamptrunc_sql-403"><span class="linenos">403</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">,</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="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</span><span class="p">),</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="timestamptrunc_sql-404"><a href="#timestamptrunc_sql-404"><span class="linenos">404</span></a> <span class="p">)</span> </span></pre></div> @@ -1865,12 +1972,12 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#locate_to_strposition"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="locate_to_strposition-389"><a href="#locate_to_strposition-389"><span class="linenos">389</span></a><span class="k">def</span> <span class="nf">locate_to_strposition</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="locate_to_strposition-390"><a href="#locate_to_strposition-390"><span class="linenos">390</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span> -</span><span id="locate_to_strposition-391"><a href="#locate_to_strposition-391"><span class="linenos">391</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">1</span><span class="p">),</span> -</span><span id="locate_to_strposition-392"><a href="#locate_to_strposition-392"><span class="linenos">392</span></a> <span class="n">substr</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="locate_to_strposition-393"><a href="#locate_to_strposition-393"><span class="linenos">393</span></a> <span class="n">position</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="locate_to_strposition-394"><a href="#locate_to_strposition-394"><span class="linenos">394</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="locate_to_strposition-407"><a href="#locate_to_strposition-407"><span class="linenos">407</span></a><span class="k">def</span> <span class="nf">locate_to_strposition</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">Sequence</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="locate_to_strposition-408"><a href="#locate_to_strposition-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span> +</span><span id="locate_to_strposition-409"><a href="#locate_to_strposition-409"><span class="linenos">409</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">1</span><span class="p">),</span> +</span><span id="locate_to_strposition-410"><a href="#locate_to_strposition-410"><span class="linenos">410</span></a> <span class="n">substr</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="locate_to_strposition-411"><a href="#locate_to_strposition-411"><span class="linenos">411</span></a> <span class="n">position</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="locate_to_strposition-412"><a href="#locate_to_strposition-412"><span class="linenos">412</span></a> <span class="p">)</span> </span></pre></div> @@ -1888,10 +1995,10 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#strposition_to_locate_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="strposition_to_locate_sql-397"><a href="#strposition_to_locate_sql-397"><span class="linenos">397</span></a><span class="k">def</span> <span class="nf">strposition_to_locate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="strposition_to_locate_sql-398"><a href="#strposition_to_locate_sql-398"><span class="linenos">398</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> -</span><span id="strposition_to_locate_sql-399"><a href="#strposition_to_locate_sql-399"><span class="linenos">399</span></a> <span class="s2">"LOCATE"</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">"substr"</span><span class="p">),</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"position"</span><span class="p">)</span> -</span><span id="strposition_to_locate_sql-400"><a href="#strposition_to_locate_sql-400"><span class="linenos">400</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="strposition_to_locate_sql-415"><a href="#strposition_to_locate_sql-415"><span class="linenos">415</span></a><span class="k">def</span> <span class="nf">strposition_to_locate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">StrPosition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="strposition_to_locate_sql-416"><a href="#strposition_to_locate_sql-416"><span class="linenos">416</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="strposition_to_locate_sql-417"><a href="#strposition_to_locate_sql-417"><span class="linenos">417</span></a> <span class="s2">"LOCATE"</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">"substr"</span><span class="p">),</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"position"</span><span class="p">)</span> +</span><span id="strposition_to_locate_sql-418"><a href="#strposition_to_locate_sql-418"><span class="linenos">418</span></a> <span class="p">)</span> </span></pre></div> @@ -1909,8 +2016,8 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#timestrtotime_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="timestrtotime_sql-403"><a href="#timestrtotime_sql-403"><span class="linenos">403</span></a><span class="k">def</span> <span class="nf">timestrtotime_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TimeStrToTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="timestrtotime_sql-404"><a href="#timestrtotime_sql-404"><span class="linenos">404</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS TIMESTAMP)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="timestrtotime_sql-421"><a href="#timestrtotime_sql-421"><span class="linenos">421</span></a><span class="k">def</span> <span class="nf">timestrtotime_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TimeStrToTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="timestrtotime_sql-422"><a href="#timestrtotime_sql-422"><span class="linenos">422</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS TIMESTAMP)"</span> </span></pre></div> @@ -1928,8 +2035,8 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#datestrtodate_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="datestrtodate_sql-407"><a href="#datestrtodate_sql-407"><span class="linenos">407</span></a><span class="k">def</span> <span class="nf">datestrtodate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">DateStrToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="datestrtodate_sql-408"><a href="#datestrtodate_sql-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="datestrtodate_sql-425"><a href="#datestrtodate_sql-425"><span class="linenos">425</span></a><span class="k">def</span> <span class="nf">datestrtodate_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">DateStrToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="datestrtodate_sql-426"><a href="#datestrtodate_sql-426"><span class="linenos">426</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> </span></pre></div> @@ -1947,9 +2054,34 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#min_or_least"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="min_or_least-411"><a href="#min_or_least-411"><span class="linenos">411</span></a><span class="k">def</span> <span class="nf">min_or_least</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Min</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="min_or_least-412"><a href="#min_or_least-412"><span class="linenos">412</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">"LEAST"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">"MIN"</span> -</span><span id="min_or_least-413"><a href="#min_or_least-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="n">name</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="min_or_least-429"><a href="#min_or_least-429"><span class="linenos">429</span></a><span class="k">def</span> <span class="nf">min_or_least</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Min</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="min_or_least-430"><a href="#min_or_least-430"><span class="linenos">430</span></a> <span class="n">name</span> <span class="o">=</span> <span class="s2">"LEAST"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">"MIN"</span> +</span><span id="min_or_least-431"><a href="#min_or_least-431"><span class="linenos">431</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="n">name</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> + + + + + </section> + <section id="count_if_to_sum"> + <input id="count_if_to_sum-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">count_if_to_sum</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span><span class="p">:</span> <span class="n"><a href="../generator.html#Generator">sqlglot.generator.Generator</a></span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#CountIf">sqlglot.expressions.CountIf</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="count_if_to_sum-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#count_if_to_sum"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="count_if_to_sum-434"><a href="#count_if_to_sum-434"><span class="linenos">434</span></a><span class="k">def</span> <span class="nf">count_if_to_sum</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">CountIf</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="count_if_to_sum-435"><a href="#count_if_to_sum-435"><span class="linenos">435</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="count_if_to_sum-436"><a href="#count_if_to_sum-436"><span class="linenos">436</span></a> +</span><span id="count_if_to_sum-437"><a href="#count_if_to_sum-437"><span class="linenos">437</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">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="count_if_to_sum-438"><a href="#count_if_to_sum-438"><span class="linenos">438</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">expression</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="count_if_to_sum-439"><a href="#count_if_to_sum-439"><span class="linenos">439</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DISTINCT is not supported when converting COUNT_IF to SUM"</span><span class="p">)</span> +</span><span id="count_if_to_sum-440"><a href="#count_if_to_sum-440"><span class="linenos">440</span></a> +</span><span id="count_if_to_sum-441"><a href="#count_if_to_sum-441"><span class="linenos">441</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"sum"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"if"</span><span class="p">,</span> <span class="n">cond</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> </span></pre></div> @@ -1967,21 +2099,21 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#trim_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="trim_sql-416"><a href="#trim_sql-416"><span class="linenos">416</span></a><span class="k">def</span> <span class="nf">trim_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="trim_sql-417"><a href="#trim_sql-417"><span class="linenos">417</span></a> <span class="n">target</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">"this"</span><span class="p">)</span> -</span><span id="trim_sql-418"><a href="#trim_sql-418"><span class="linenos">418</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> -</span><span id="trim_sql-419"><a href="#trim_sql-419"><span class="linenos">419</span></a> <span class="n">remove_chars</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">"expression"</span><span class="p">)</span> -</span><span id="trim_sql-420"><a href="#trim_sql-420"><span class="linenos">420</span></a> <span class="n">collation</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">"collation"</span><span class="p">)</span> -</span><span id="trim_sql-421"><a href="#trim_sql-421"><span class="linenos">421</span></a> -</span><span id="trim_sql-422"><a href="#trim_sql-422"><span class="linenos">422</span></a> <span class="c1"># Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific</span> -</span><span id="trim_sql-423"><a href="#trim_sql-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">remove_chars</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">collation</span><span class="p">:</span> -</span><span id="trim_sql-424"><a href="#trim_sql-424"><span class="linenos">424</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">trim_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="trim_sql-425"><a href="#trim_sql-425"><span class="linenos">425</span></a> -</span><span id="trim_sql-426"><a href="#trim_sql-426"><span class="linenos">426</span></a> <span class="n">trim_type</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="trim_sql-427"><a href="#trim_sql-427"><span class="linenos">427</span></a> <span class="n">remove_chars</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">remove_chars</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="trim_sql-428"><a href="#trim_sql-428"><span class="linenos">428</span></a> <span class="n">from_part</span> <span class="o">=</span> <span class="s2">"FROM "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="ow">or</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="trim_sql-429"><a href="#trim_sql-429"><span class="linenos">429</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collation</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collation</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="trim_sql-430"><a href="#trim_sql-430"><span class="linenos">430</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRIM(</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}{</span><span class="n">remove_chars</span><span class="si">}{</span><span class="n">from_part</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">collation</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="trim_sql-444"><a href="#trim_sql-444"><span class="linenos">444</span></a><span class="k">def</span> <span class="nf">trim_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="trim_sql-445"><a href="#trim_sql-445"><span class="linenos">445</span></a> <span class="n">target</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">"this"</span><span class="p">)</span> +</span><span id="trim_sql-446"><a href="#trim_sql-446"><span class="linenos">446</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> +</span><span id="trim_sql-447"><a href="#trim_sql-447"><span class="linenos">447</span></a> <span class="n">remove_chars</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">"expression"</span><span class="p">)</span> +</span><span id="trim_sql-448"><a href="#trim_sql-448"><span class="linenos">448</span></a> <span class="n">collation</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">"collation"</span><span class="p">)</span> +</span><span id="trim_sql-449"><a href="#trim_sql-449"><span class="linenos">449</span></a> +</span><span id="trim_sql-450"><a href="#trim_sql-450"><span class="linenos">450</span></a> <span class="c1"># Use TRIM/LTRIM/RTRIM syntax if the expression isn't database-specific</span> +</span><span id="trim_sql-451"><a href="#trim_sql-451"><span class="linenos">451</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">remove_chars</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">collation</span><span class="p">:</span> +</span><span id="trim_sql-452"><a href="#trim_sql-452"><span class="linenos">452</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">trim_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="trim_sql-453"><a href="#trim_sql-453"><span class="linenos">453</span></a> +</span><span id="trim_sql-454"><a href="#trim_sql-454"><span class="linenos">454</span></a> <span class="n">trim_type</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="trim_sql-455"><a href="#trim_sql-455"><span class="linenos">455</span></a> <span class="n">remove_chars</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">remove_chars</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="trim_sql-456"><a href="#trim_sql-456"><span class="linenos">456</span></a> <span class="n">from_part</span> <span class="o">=</span> <span class="s2">"FROM "</span> <span class="k">if</span> <span class="n">trim_type</span> <span class="ow">or</span> <span class="n">remove_chars</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="trim_sql-457"><a href="#trim_sql-457"><span class="linenos">457</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collation</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collation</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="trim_sql-458"><a href="#trim_sql-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRIM(</span><span class="si">{</span><span class="n">trim_type</span><span class="si">}{</span><span class="n">remove_chars</span><span class="si">}{</span><span class="n">from_part</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">collation</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -1999,8 +2131,8 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#str_to_time_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="str_to_time_sql-433"><a href="#str_to_time_sql-433"><span class="linenos">433</span></a><span class="k">def</span> <span class="nf">str_to_time_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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="str_to_time_sql-434"><a href="#str_to_time_sql-434"><span class="linenos">434</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"STRPTIME"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="str_to_time_sql-461"><a href="#str_to_time_sql-461"><span class="linenos">461</span></a><span class="k">def</span> <span class="nf">str_to_time_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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="str_to_time_sql-462"><a href="#str_to_time_sql-462"><span class="linenos">462</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"STRPTIME"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> </span></pre></div> @@ -2018,15 +2150,15 @@ columns are removed from the create statement.</p> </div> <a class="headerlink" href="#ts_or_ds_to_date_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ts_or_ds_to_date_sql-437"><a href="#ts_or_ds_to_date_sql-437"><span class="linenos">437</span></a><span class="k">def</span> <span class="nf">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> -</span><span id="ts_or_ds_to_date_sql-438"><a href="#ts_or_ds_to_date_sql-438"><span class="linenos">438</span></a> <span class="k">def</span> <span class="nf">_ts_or_ds_to_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TsOrDsToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="ts_or_ds_to_date_sql-439"><a href="#ts_or_ds_to_date_sql-439"><span class="linenos">439</span></a> <span class="n">_dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span> -</span><span id="ts_or_ds_to_date_sql-440"><a href="#ts_or_ds_to_date_sql-440"><span class="linenos">440</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="ts_or_ds_to_date_sql-441"><a href="#ts_or_ds_to_date_sql-441"><span class="linenos">441</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">_dialect</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">_dialect</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> -</span><span id="ts_or_ds_to_date_sql-442"><a href="#ts_or_ds_to_date_sql-442"><span class="linenos">442</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span> -</span><span id="ts_or_ds_to_date_sql-443"><a href="#ts_or_ds_to_date_sql-443"><span class="linenos">443</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> -</span><span id="ts_or_ds_to_date_sql-444"><a href="#ts_or_ds_to_date_sql-444"><span class="linenos">444</span></a> -</span><span id="ts_or_ds_to_date_sql-445"><a href="#ts_or_ds_to_date_sql-445"><span class="linenos">445</span></a> <span class="k">return</span> <span class="n">_ts_or_ds_to_date_sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ts_or_ds_to_date_sql-465"><a href="#ts_or_ds_to_date_sql-465"><span class="linenos">465</span></a><span class="k">def</span> <span class="nf">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="n">dialect</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> +</span><span id="ts_or_ds_to_date_sql-466"><a href="#ts_or_ds_to_date_sql-466"><span class="linenos">466</span></a> <span class="k">def</span> <span class="nf">_ts_or_ds_to_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">Generator</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">TsOrDsToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="ts_or_ds_to_date_sql-467"><a href="#ts_or_ds_to_date_sql-467"><span class="linenos">467</span></a> <span class="n">_dialect</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)</span> +</span><span id="ts_or_ds_to_date_sql-468"><a href="#ts_or_ds_to_date_sql-468"><span class="linenos">468</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="ts_or_ds_to_date_sql-469"><a href="#ts_or_ds_to_date_sql-469"><span class="linenos">469</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">_dialect</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">_dialect</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> +</span><span id="ts_or_ds_to_date_sql-470"><a href="#ts_or_ds_to_date_sql-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span> +</span><span id="ts_or_ds_to_date_sql-471"><a href="#ts_or_ds_to_date_sql-471"><span class="linenos">471</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS DATE)"</span> +</span><span id="ts_or_ds_to_date_sql-472"><a href="#ts_or_ds_to_date_sql-472"><span class="linenos">472</span></a> +</span><span id="ts_or_ds_to_date_sql-473"><a href="#ts_or_ds_to_date_sql-473"><span class="linenos">473</span></a> <span class="k">return</span> <span class="n">_ts_or_ds_to_date_sql</span> </span></pre></div> diff --git a/docs/sqlglot/dialects/drill.html b/docs/sqlglot/dialects/drill.html index ded583f..3e3fb3c 100644 --- a/docs/sqlglot/dialects/drill.html +++ b/docs/sqlglot/dialects/drill.html @@ -179,61 +179,64 @@ </span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> </span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</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">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</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-108"><a href="#L-108"><span class="linenos">108</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</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">"VARBINARY"</span><span class="p">,</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</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">NCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</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">TIMESTAMPLTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</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-115"><a href="#L-115"><span class="linenos">115</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <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="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="p">}</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="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_CONTAINS"</span><span class="p">),</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_COUNT"</span><span class="p">),</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(TO_DATE(</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="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</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="sa">f</span><span class="s2">"`IF`(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'true'</span><span class="p">),</span><span class="w"> </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="s1">'false'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> `ILIKE` </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(CAST(</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"> AS DATE), </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><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="n">this</span><span class="o">=</span><span class="s1">'DAY'</span><span class="p">)))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"drill"</span><span class="p">),</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="p">}</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="p">}</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</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-109"><a href="#L-109"><span class="linenos">109</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</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">"VARBINARY"</span><span class="p">,</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</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">NCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</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">TIMESTAMPLTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</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-116"><a href="#L-116"><span class="linenos">116</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="p">}</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="p">}</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">TRANSFORMS</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="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_CONTAINS"</span><span class="p">),</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_COUNT"</span><span class="p">),</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(TO_DATE(</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="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</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="sa">f</span><span class="s2">"`IF`(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'true'</span><span class="p">),</span><span class="w"> </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="s1">'false'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> `ILIKE` </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"POW"</span><span class="p">),</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</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 class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(CAST(</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"> AS DATE), </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><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="n">this</span><span class="o">=</span><span class="s1">'DAY'</span><span class="p">)))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"drill"</span><span class="p">),</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="p">}</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> </span></pre></div> @@ -299,61 +302,64 @@ </span><span id="Drill-98"><a href="#Drill-98"><span class="linenos"> 98</span></a> </span><span id="Drill-99"><a href="#Drill-99"><span class="linenos"> 99</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Drill-100"><a href="#Drill-100"><span class="linenos">100</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Drill-101"><a href="#Drill-101"><span class="linenos">101</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Drill-102"><a href="#Drill-102"><span class="linenos">102</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> -</span><span id="Drill-103"><a href="#Drill-103"><span class="linenos">103</span></a> <span class="p">}</span> -</span><span id="Drill-104"><a href="#Drill-104"><span class="linenos">104</span></a> -</span><span id="Drill-105"><a href="#Drill-105"><span class="linenos">105</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Drill-106"><a href="#Drill-106"><span class="linenos">106</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drill-107"><a href="#Drill-107"><span class="linenos">107</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Drill-108"><a href="#Drill-108"><span class="linenos">108</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="Drill-109"><a href="#Drill-109"><span class="linenos">109</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="Drill-110"><a href="#Drill-110"><span class="linenos">110</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="Drill-111"><a href="#Drill-111"><span class="linenos">111</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">"VARBINARY"</span><span class="p">,</span> -</span><span id="Drill-112"><a href="#Drill-112"><span class="linenos">112</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Drill-113"><a href="#Drill-113"><span class="linenos">113</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">NCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Drill-114"><a href="#Drill-114"><span class="linenos">114</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">TIMESTAMPLTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="Drill-115"><a href="#Drill-115"><span class="linenos">115</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="Drill-116"><a href="#Drill-116"><span class="linenos">116</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="Drill-117"><a href="#Drill-117"><span class="linenos">117</span></a> <span class="p">}</span> -</span><span id="Drill-118"><a href="#Drill-118"><span class="linenos">118</span></a> -</span><span id="Drill-119"><a href="#Drill-119"><span class="linenos">119</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drill-120"><a href="#Drill-120"><span class="linenos">120</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Drill-121"><a href="#Drill-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Drill-122"><a href="#Drill-122"><span class="linenos">122</span></a> <span class="p">}</span> -</span><span id="Drill-123"><a href="#Drill-123"><span class="linenos">123</span></a> -</span><span id="Drill-124"><a href="#Drill-124"><span class="linenos">124</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drill-125"><a href="#Drill-125"><span class="linenos">125</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Drill-126"><a href="#Drill-126"><span class="linenos">126</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="Drill-127"><a href="#Drill-127"><span class="linenos">127</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_CONTAINS"</span><span class="p">),</span> -</span><span id="Drill-128"><a href="#Drill-128"><span class="linenos">128</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_COUNT"</span><span class="p">),</span> -</span><span id="Drill-129"><a href="#Drill-129"><span class="linenos">129</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="Drill-130"><a href="#Drill-130"><span class="linenos">130</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="Drill-131"><a href="#Drill-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="Drill-132"><a href="#Drill-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="Drill-133"><a href="#Drill-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(TO_DATE(</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="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="Drill-134"><a href="#Drill-134"><span class="linenos">134</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill-135"><a href="#Drill-135"><span class="linenos">135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</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="sa">f</span><span class="s2">"`IF`(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'true'</span><span class="p">),</span><span class="w"> </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="s1">'false'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill-136"><a href="#Drill-136"><span class="linenos">136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> `ILIKE` </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Drill-137"><a href="#Drill-137"><span class="linenos">137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> -</span><span id="Drill-138"><a href="#Drill-138"><span class="linenos">138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="Drill-139"><a href="#Drill-139"><span class="linenos">139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> -</span><span id="Drill-140"><a href="#Drill-140"><span class="linenos">140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="Drill-141"><a href="#Drill-141"><span class="linenos">141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> -</span><span id="Drill-142"><a href="#Drill-142"><span class="linenos">142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill-143"><a href="#Drill-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> -</span><span id="Drill-144"><a href="#Drill-144"><span class="linenos">144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Drill-145"><a href="#Drill-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Drill-146"><a href="#Drill-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill-147"><a href="#Drill-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Drill-148"><a href="#Drill-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="Drill-149"><a href="#Drill-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(CAST(</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"> AS DATE), </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><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="n">this</span><span class="o">=</span><span class="s1">'DAY'</span><span class="p">)))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill-150"><a href="#Drill-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"drill"</span><span class="p">),</span> -</span><span id="Drill-151"><a href="#Drill-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="Drill-152"><a href="#Drill-152"><span class="linenos">152</span></a> <span class="p">}</span> -</span><span id="Drill-153"><a href="#Drill-153"><span class="linenos">153</span></a> -</span><span id="Drill-154"><a href="#Drill-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Drill-155"><a href="#Drill-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> +</span><span id="Drill-101"><a href="#Drill-101"><span class="linenos">101</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> +</span><span id="Drill-102"><a href="#Drill-102"><span class="linenos">102</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Drill-103"><a href="#Drill-103"><span class="linenos">103</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> +</span><span id="Drill-104"><a href="#Drill-104"><span class="linenos">104</span></a> <span class="p">}</span> +</span><span id="Drill-105"><a href="#Drill-105"><span class="linenos">105</span></a> +</span><span id="Drill-106"><a href="#Drill-106"><span class="linenos">106</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Drill-107"><a href="#Drill-107"><span class="linenos">107</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drill-108"><a href="#Drill-108"><span class="linenos">108</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Drill-109"><a href="#Drill-109"><span class="linenos">109</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="Drill-110"><a href="#Drill-110"><span class="linenos">110</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="Drill-111"><a href="#Drill-111"><span class="linenos">111</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="Drill-112"><a href="#Drill-112"><span class="linenos">112</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">"VARBINARY"</span><span class="p">,</span> +</span><span id="Drill-113"><a href="#Drill-113"><span class="linenos">113</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Drill-114"><a href="#Drill-114"><span class="linenos">114</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">NCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Drill-115"><a href="#Drill-115"><span class="linenos">115</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">TIMESTAMPLTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="Drill-116"><a href="#Drill-116"><span class="linenos">116</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="Drill-117"><a href="#Drill-117"><span class="linenos">117</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="Drill-118"><a href="#Drill-118"><span class="linenos">118</span></a> <span class="p">}</span> +</span><span id="Drill-119"><a href="#Drill-119"><span class="linenos">119</span></a> +</span><span id="Drill-120"><a href="#Drill-120"><span class="linenos">120</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drill-121"><a href="#Drill-121"><span class="linenos">121</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Drill-122"><a href="#Drill-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Drill-123"><a href="#Drill-123"><span class="linenos">123</span></a> <span class="p">}</span> +</span><span id="Drill-124"><a href="#Drill-124"><span class="linenos">124</span></a> +</span><span id="Drill-125"><a href="#Drill-125"><span class="linenos">125</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drill-126"><a href="#Drill-126"><span class="linenos">126</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Drill-127"><a href="#Drill-127"><span class="linenos">127</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="Drill-128"><a href="#Drill-128"><span class="linenos">128</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_CONTAINS"</span><span class="p">),</span> +</span><span id="Drill-129"><a href="#Drill-129"><span class="linenos">129</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_COUNT"</span><span class="p">),</span> +</span><span id="Drill-130"><a href="#Drill-130"><span class="linenos">130</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="Drill-131"><a href="#Drill-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="Drill-132"><a href="#Drill-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="Drill-133"><a href="#Drill-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="Drill-134"><a href="#Drill-134"><span class="linenos">134</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(TO_DATE(</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="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="Drill-135"><a href="#Drill-135"><span class="linenos">135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill-136"><a href="#Drill-136"><span class="linenos">136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</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="sa">f</span><span class="s2">"`IF`(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'true'</span><span class="p">),</span><span class="w"> </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="s1">'false'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill-137"><a href="#Drill-137"><span class="linenos">137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> `ILIKE` </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Drill-138"><a href="#Drill-138"><span class="linenos">138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> +</span><span id="Drill-139"><a href="#Drill-139"><span class="linenos">139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="Drill-140"><a href="#Drill-140"><span class="linenos">140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> +</span><span id="Drill-141"><a href="#Drill-141"><span class="linenos">141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="Drill-142"><a href="#Drill-142"><span class="linenos">142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> +</span><span id="Drill-143"><a href="#Drill-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"POW"</span><span class="p">),</span> +</span><span id="Drill-144"><a href="#Drill-144"><span class="linenos">144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill-145"><a href="#Drill-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> +</span><span id="Drill-146"><a href="#Drill-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Drill-147"><a href="#Drill-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Drill-148"><a href="#Drill-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill-149"><a href="#Drill-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Drill-150"><a href="#Drill-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Drill-151"><a href="#Drill-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="Drill-152"><a href="#Drill-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(CAST(</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"> AS DATE), </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><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="n">this</span><span class="o">=</span><span class="s1">'DAY'</span><span class="p">)))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill-153"><a href="#Drill-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"drill"</span><span class="p">),</span> +</span><span id="Drill-154"><a href="#Drill-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="Drill-155"><a href="#Drill-155"><span class="linenos">155</span></a> <span class="p">}</span> +</span><span id="Drill-156"><a href="#Drill-156"><span class="linenos">156</span></a> +</span><span id="Drill-157"><a href="#Drill-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Drill-158"><a href="#Drill-158"><span class="linenos">158</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> </span></pre></div> @@ -369,6 +375,7 @@ <dd id="Drill.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Drill.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Drill.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Drill.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Drill.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Drill.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -424,9 +431,10 @@ </span><span id="Drill.Parser-98"><a href="#Drill.Parser-98"><span class="linenos"> 98</span></a> </span><span id="Drill.Parser-99"><a href="#Drill.Parser-99"><span class="linenos"> 99</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Drill.Parser-100"><a href="#Drill.Parser-100"><span class="linenos">100</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Drill.Parser-101"><a href="#Drill.Parser-101"><span class="linenos">101</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Drill.Parser-102"><a href="#Drill.Parser-102"><span class="linenos">102</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> -</span><span id="Drill.Parser-103"><a href="#Drill.Parser-103"><span class="linenos">103</span></a> <span class="p">}</span> +</span><span id="Drill.Parser-101"><a href="#Drill.Parser-101"><span class="linenos">101</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> +</span><span id="Drill.Parser-102"><a href="#Drill.Parser-102"><span class="linenos">102</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Drill.Parser-103"><a href="#Drill.Parser-103"><span class="linenos">103</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"drill"</span><span class="p">),</span> +</span><span id="Drill.Parser-104"><a href="#Drill.Parser-104"><span class="linenos">104</span></a> <span class="p">}</span> </span></pre></div> @@ -483,57 +491,59 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Drill.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Drill.Generator-105"><a href="#Drill.Generator-105"><span class="linenos">105</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Drill.Generator-106"><a href="#Drill.Generator-106"><span class="linenos">106</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drill.Generator-107"><a href="#Drill.Generator-107"><span class="linenos">107</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Drill.Generator-108"><a href="#Drill.Generator-108"><span class="linenos">108</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="Drill.Generator-109"><a href="#Drill.Generator-109"><span class="linenos">109</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="Drill.Generator-110"><a href="#Drill.Generator-110"><span class="linenos">110</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="Drill.Generator-111"><a href="#Drill.Generator-111"><span class="linenos">111</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">"VARBINARY"</span><span class="p">,</span> -</span><span id="Drill.Generator-112"><a href="#Drill.Generator-112"><span class="linenos">112</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Drill.Generator-113"><a href="#Drill.Generator-113"><span class="linenos">113</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">NCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Drill.Generator-114"><a href="#Drill.Generator-114"><span class="linenos">114</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">TIMESTAMPLTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="Drill.Generator-115"><a href="#Drill.Generator-115"><span class="linenos">115</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="Drill.Generator-116"><a href="#Drill.Generator-116"><span class="linenos">116</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="Drill.Generator-117"><a href="#Drill.Generator-117"><span class="linenos">117</span></a> <span class="p">}</span> -</span><span id="Drill.Generator-118"><a href="#Drill.Generator-118"><span class="linenos">118</span></a> -</span><span id="Drill.Generator-119"><a href="#Drill.Generator-119"><span class="linenos">119</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drill.Generator-120"><a href="#Drill.Generator-120"><span class="linenos">120</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Drill.Generator-121"><a href="#Drill.Generator-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Drill.Generator-122"><a href="#Drill.Generator-122"><span class="linenos">122</span></a> <span class="p">}</span> -</span><span id="Drill.Generator-123"><a href="#Drill.Generator-123"><span class="linenos">123</span></a> -</span><span id="Drill.Generator-124"><a href="#Drill.Generator-124"><span class="linenos">124</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drill.Generator-125"><a href="#Drill.Generator-125"><span class="linenos">125</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Drill.Generator-126"><a href="#Drill.Generator-126"><span class="linenos">126</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="Drill.Generator-127"><a href="#Drill.Generator-127"><span class="linenos">127</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_CONTAINS"</span><span class="p">),</span> -</span><span id="Drill.Generator-128"><a href="#Drill.Generator-128"><span class="linenos">128</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_COUNT"</span><span class="p">),</span> -</span><span id="Drill.Generator-129"><a href="#Drill.Generator-129"><span class="linenos">129</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="Drill.Generator-130"><a href="#Drill.Generator-130"><span class="linenos">130</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="Drill.Generator-131"><a href="#Drill.Generator-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="Drill.Generator-132"><a href="#Drill.Generator-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="Drill.Generator-133"><a href="#Drill.Generator-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(TO_DATE(</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="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="Drill.Generator-134"><a href="#Drill.Generator-134"><span class="linenos">134</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill.Generator-135"><a href="#Drill.Generator-135"><span class="linenos">135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</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="sa">f</span><span class="s2">"`IF`(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'true'</span><span class="p">),</span><span class="w"> </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="s1">'false'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill.Generator-136"><a href="#Drill.Generator-136"><span class="linenos">136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> `ILIKE` </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Drill.Generator-137"><a href="#Drill.Generator-137"><span class="linenos">137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> -</span><span id="Drill.Generator-138"><a href="#Drill.Generator-138"><span class="linenos">138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="Drill.Generator-139"><a href="#Drill.Generator-139"><span class="linenos">139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> -</span><span id="Drill.Generator-140"><a href="#Drill.Generator-140"><span class="linenos">140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="Drill.Generator-141"><a href="#Drill.Generator-141"><span class="linenos">141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> -</span><span id="Drill.Generator-142"><a href="#Drill.Generator-142"><span class="linenos">142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill.Generator-143"><a href="#Drill.Generator-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> -</span><span id="Drill.Generator-144"><a href="#Drill.Generator-144"><span class="linenos">144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Drill.Generator-145"><a href="#Drill.Generator-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Drill.Generator-146"><a href="#Drill.Generator-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill.Generator-147"><a href="#Drill.Generator-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Drill.Generator-148"><a href="#Drill.Generator-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="Drill.Generator-149"><a href="#Drill.Generator-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(CAST(</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"> AS DATE), </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><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="n">this</span><span class="o">=</span><span class="s1">'DAY'</span><span class="p">)))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Drill.Generator-150"><a href="#Drill.Generator-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"drill"</span><span class="p">),</span> -</span><span id="Drill.Generator-151"><a href="#Drill.Generator-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="Drill.Generator-152"><a href="#Drill.Generator-152"><span class="linenos">152</span></a> <span class="p">}</span> -</span><span id="Drill.Generator-153"><a href="#Drill.Generator-153"><span class="linenos">153</span></a> -</span><span id="Drill.Generator-154"><a href="#Drill.Generator-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Drill.Generator-155"><a href="#Drill.Generator-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Drill.Generator-106"><a href="#Drill.Generator-106"><span class="linenos">106</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Drill.Generator-107"><a href="#Drill.Generator-107"><span class="linenos">107</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drill.Generator-108"><a href="#Drill.Generator-108"><span class="linenos">108</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Drill.Generator-109"><a href="#Drill.Generator-109"><span class="linenos">109</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="Drill.Generator-110"><a href="#Drill.Generator-110"><span class="linenos">110</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="Drill.Generator-111"><a href="#Drill.Generator-111"><span class="linenos">111</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="Drill.Generator-112"><a href="#Drill.Generator-112"><span class="linenos">112</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">"VARBINARY"</span><span class="p">,</span> +</span><span id="Drill.Generator-113"><a href="#Drill.Generator-113"><span class="linenos">113</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Drill.Generator-114"><a href="#Drill.Generator-114"><span class="linenos">114</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">NCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Drill.Generator-115"><a href="#Drill.Generator-115"><span class="linenos">115</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">TIMESTAMPLTZ</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="Drill.Generator-116"><a href="#Drill.Generator-116"><span class="linenos">116</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="Drill.Generator-117"><a href="#Drill.Generator-117"><span class="linenos">117</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="Drill.Generator-118"><a href="#Drill.Generator-118"><span class="linenos">118</span></a> <span class="p">}</span> +</span><span id="Drill.Generator-119"><a href="#Drill.Generator-119"><span class="linenos">119</span></a> +</span><span id="Drill.Generator-120"><a href="#Drill.Generator-120"><span class="linenos">120</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drill.Generator-121"><a href="#Drill.Generator-121"><span class="linenos">121</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Drill.Generator-122"><a href="#Drill.Generator-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Drill.Generator-123"><a href="#Drill.Generator-123"><span class="linenos">123</span></a> <span class="p">}</span> +</span><span id="Drill.Generator-124"><a href="#Drill.Generator-124"><span class="linenos">124</span></a> +</span><span id="Drill.Generator-125"><a href="#Drill.Generator-125"><span class="linenos">125</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drill.Generator-126"><a href="#Drill.Generator-126"><span class="linenos">126</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Drill.Generator-127"><a href="#Drill.Generator-127"><span class="linenos">127</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="Drill.Generator-128"><a href="#Drill.Generator-128"><span class="linenos">128</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_CONTAINS"</span><span class="p">),</span> +</span><span id="Drill.Generator-129"><a href="#Drill.Generator-129"><span class="linenos">129</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REPEATED_COUNT"</span><span class="p">),</span> +</span><span id="Drill.Generator-130"><a href="#Drill.Generator-130"><span class="linenos">130</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="Drill.Generator-131"><a href="#Drill.Generator-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="Drill.Generator-132"><a href="#Drill.Generator-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="Drill.Generator-133"><a href="#Drill.Generator-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="Drill.Generator-134"><a href="#Drill.Generator-134"><span class="linenos">134</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(TO_DATE(</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="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="Drill.Generator-135"><a href="#Drill.Generator-135"><span class="linenos">135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Drill</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill.Generator-136"><a href="#Drill.Generator-136"><span class="linenos">136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</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="sa">f</span><span class="s2">"`IF`(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="s1">'true'</span><span class="p">),</span><span class="w"> </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="s1">'false'</span><span class="p">))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill.Generator-137"><a href="#Drill.Generator-137"><span class="linenos">137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</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="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="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}</span><span class="s2"> `ILIKE` </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Drill.Generator-138"><a href="#Drill.Generator-138"><span class="linenos">138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> +</span><span id="Drill.Generator-139"><a href="#Drill.Generator-139"><span class="linenos">139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="Drill.Generator-140"><a href="#Drill.Generator-140"><span class="linenos">140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> +</span><span id="Drill.Generator-141"><a href="#Drill.Generator-141"><span class="linenos">141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="Drill.Generator-142"><a href="#Drill.Generator-142"><span class="linenos">142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> +</span><span id="Drill.Generator-143"><a href="#Drill.Generator-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"POW"</span><span class="p">),</span> +</span><span id="Drill.Generator-144"><a href="#Drill.Generator-144"><span class="linenos">144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill.Generator-145"><a href="#Drill.Generator-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> +</span><span id="Drill.Generator-146"><a href="#Drill.Generator-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Drill.Generator-147"><a href="#Drill.Generator-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Drill.Generator-148"><a href="#Drill.Generator-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill.Generator-149"><a href="#Drill.Generator-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Drill.Generator-150"><a href="#Drill.Generator-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Drill.Generator-151"><a href="#Drill.Generator-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="Drill.Generator-152"><a href="#Drill.Generator-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(CAST(</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"> AS DATE), </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><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="n">this</span><span class="o">=</span><span class="s1">'DAY'</span><span class="p">)))</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Drill.Generator-153"><a href="#Drill.Generator-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"drill"</span><span class="p">),</span> +</span><span id="Drill.Generator-154"><a href="#Drill.Generator-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="Drill.Generator-155"><a href="#Drill.Generator-155"><span class="linenos">155</span></a> <span class="p">}</span> +</span><span id="Drill.Generator-156"><a href="#Drill.Generator-156"><span class="linenos">156</span></a> +</span><span id="Drill.Generator-157"><a href="#Drill.Generator-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Drill.Generator-158"><a href="#Drill.Generator-158"><span class="linenos">158</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> </span></pre></div> @@ -550,8 +560,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -593,8 +602,8 @@ Default: True</li> </div> <a class="headerlink" href="#Drill.Generator.normalize_func"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Drill.Generator.normalize_func-154"><a href="#Drill.Generator.normalize_func-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Drill.Generator.normalize_func-155"><a href="#Drill.Generator.normalize_func-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Drill.Generator.normalize_func-157"><a href="#Drill.Generator.normalize_func-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Drill.Generator.normalize_func-158"><a href="#Drill.Generator.normalize_func-158"><span class="linenos">158</span></a> <span class="k">return</span> <span class="n">name</span> <span class="k">if</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"`</span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">`"</span> </span></pre></div> @@ -690,6 +699,8 @@ Default: True</li> <dd id="Drill.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Drill.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Drill.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Drill.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Drill.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Drill.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Drill.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Drill.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -774,7 +785,6 @@ Default: True</li> <dd id="Drill.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Drill.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Drill.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Drill.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Drill.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Drill.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Drill.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -816,6 +826,7 @@ Default: True</li> <dd id="Drill.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Drill.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Drill.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Drill.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/duckdb.html b/docs/sqlglot/dialects/duckdb.html index 2dc04a8..6b9bcfa 100644 --- a/docs/sqlglot/dialects/duckdb.html +++ b/docs/sqlglot/dialects/duckdb.html @@ -96,199 +96,206 @@ </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">str_position_sql</span><span class="p">,</span> </span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">str_to_time_sql</span><span class="p">,</span> -</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">ts_or_ds_to_date_sql</span><span class="p">,</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="p">)</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.helper</span> <span class="kn">import</span> <span class="n">seq_get</span> -</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</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-22"><a href="#L-22"><span class="linenos"> 22</span></a> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">ts_or_ds_to_date_sql</span><span class="p">,</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="p">)</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</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-22"><a href="#L-22"><span class="linenos"> 22</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-23"><a href="#L-23"><span class="linenos"> 23</span></a> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="k">def</span> <span class="nf">_ts_or_ds_add</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-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"'"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"DAY"</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS DATE) + </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> +</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 class="k">def</span> <span class="nf">_ts_or_ds_add</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-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"'"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"DAY"</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS DATE) + </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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="k">def</span> <span class="nf">_date_add</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-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"'"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"DAY"</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="k">def</span> <span class="nf">_date_add</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-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">(</span><span class="s2">"'"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"DAY"</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">))</span><span class="si">}</span><span class="s2">"</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">def</span> <span class="nf">_array_sort_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><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DUCKDB ARRAY_SORT does not support a comparator"</span><span class="p">)</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY_SORT(</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">expression</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><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="k">def</span> <span class="nf">_array_sort_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><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DUCKDB ARRAY_SORT does not support a comparator"</span><span class="p">)</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY_SORT(</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">expression</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><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="k">def</span> <span class="nf">_sort_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><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</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">"asc"</span><span class="p">)</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">false</span><span class="p">():</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY_REVERSE_SORT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY_SORT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="k">def</span> <span class="nf">_sort_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><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</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">"asc"</span><span class="p">)</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">false</span><span class="p">():</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY_REVERSE_SORT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY_SORT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> </span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="k">def</span> <span class="nf">_sort_array_reverse</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">asc</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">false</span><span class="p">())</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="k">def</span> <span class="nf">_sort_array_reverse</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">asc</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">false</span><span class="p">())</span> </span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="k">def</span> <span class="nf">_struct_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><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="p">]</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="k">def</span> <span class="nf">_struct_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><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="p">]</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> </span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="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><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">:</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">[]"</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">return</span> <span class="bp">self</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-64"><a href="#L-64"><span class="linenos"> 64</span></a> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</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><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">:</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">[]"</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="k">return</span> <span class="bp">self</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-65"><a href="#L-65"><span class="linenos"> 65</span></a> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="k">def</span> <span class="nf">_regexp_extract_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><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">bad_args</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">filter</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="p">(</span><span class="s2">"position"</span><span class="p">,</span> <span class="s2">"occurrence"</span><span class="p">)))</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">if</span> <span class="n">bad_args</span><span class="p">:</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</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">"REGEXP_EXTRACT does not support arg(s) </span><span class="si">{</span><span class="n">bad_args</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="s2">"REGEXP_EXTRACT"</span><span class="p">,</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <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">"this"</span><span class="p">),</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <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">"expression"</span><span class="p">),</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <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">"group"</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-66"><a href="#L-66"><span class="linenos"> 66</span></a> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="k">def</span> <span class="nf">_regexp_extract_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><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">bad_args</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">filter</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="p">(</span><span class="s2">"position"</span><span class="p">,</span> <span class="s2">"occurrence"</span><span class="p">)))</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="k">if</span> <span class="n">bad_args</span><span class="p">:</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</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">"REGEXP_EXTRACT does not support arg(s) </span><span class="si">{</span><span class="n">bad_args</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="s2">"REGEXP_EXTRACT"</span><span class="p">,</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <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">"this"</span><span class="p">),</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <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">"expression"</span><span class="p">),</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="p">)</span> </span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a><span class="k">class</span> <span class="nc">DuckDB</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="o">**</span><span class="n">tokens</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-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="s2">":="</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="s2">"ATTACH"</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-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="s2">"BINARY"</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-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="s2">"BPCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="s2">"BITSTRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="s2">"CHARACTER VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="s2">"EXCLUDE"</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-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="s2">"INT1"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="s2">"LOGICAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="s2">"SIGNED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="s2">"UBIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="s2">"UINTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="s2">"USMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="s2">"UTINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="p">}</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="s2">"ARRAY_LENGTH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="s2">"ARRAY_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="s2">"ARRAY_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="s2">"EPOCH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="s2">"EPOCH_MS"</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">UnixToTime</span><span class="p">(</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</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="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-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1000</span><span class="p">),</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="p">)</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="p">),</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="s2">"LIST_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="s2">"LIST_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="s2">"LIST_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="s2">"REGEXP_MATCHES"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="s2">"STRFTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="s2">"STRPTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="s2">"STR_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="s2">"STRING_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="s2">"STRING_TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="s2">"STR_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="s2">"STRING_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="s2">"STRUCT_PACK"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="p">}</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="p">}</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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">"ARRAY"</span><span class="p">,</span> <span class="n">e</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-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">else</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_VALUE"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort_sql</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySum</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_SUM"</span><span class="p">),</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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">"unit"</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">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="p">),</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(STRFTIME(</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="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(STRPTIME(CAST(</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"> AS TEXT), </span><span class="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNNEST"</span><span class="p">),</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">:</span> <span class="n">no_pivot_sql</span><span class="p">,</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">:</span> <span class="n">no_properties_sql</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">RegexpExtract</span><span class="p">:</span> <span class="n">_regexp_extract_sql</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">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</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">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT_REGEX"</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">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</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">Split</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT"</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">SortArray</span><span class="p">:</span> <span class="n">_sort_array_sql</span><span class="p">,</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">str_to_time_sql</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"EPOCH(STRPTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</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">Struct</span><span class="p">:</span> <span class="n">_struct_sql</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">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</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">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_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">TimeStrToUnix</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="sa">f</span><span class="s2">"EPOCH(CAST(</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"> AS TIMESTAMP))"</span><span class="p">,</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"STRFTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</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">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">),</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS TEXT), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add</span><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">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"duckdb"</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">UnixToStr</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="sa">f</span><span class="s2">"STRFTIME(TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</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">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_TIMESTAMP"</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">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(TO_TIMESTAMP(</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">) AS TEXT)"</span><span class="p">,</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="p">}</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</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">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">"BLOB"</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</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">UINT</span><span class="p">:</span> <span class="s2">"UINTEGER"</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</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">"BLOB"</span><span class="p">,</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="p">}</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> -</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">,</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="p">}</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="k">class</span> <span class="nc">DuckDB</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="o">**</span><span class="n">tokens</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-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="s2">":="</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="s2">"ATTACH"</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-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="s2">"BINARY"</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-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="s2">"BPCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="s2">"BITSTRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="s2">"CHARACTER VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="s2">"EXCLUDE"</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-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="s2">"INT1"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="s2">"LOGICAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="s2">"SIGNED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="s2">"UBIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="s2">"UINTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="s2">"USMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="s2">"UTINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="p">}</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="s2">"ARRAY_LENGTH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="s2">"ARRAY_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="s2">"ARRAY_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="s2">"EPOCH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="s2">"EPOCH_MS"</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">UnixToTime</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="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</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-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1000</span><span class="p">),</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="p">)</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="p">),</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="s2">"LIST_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="s2">"LIST_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="s2">"LIST_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="s2">"REGEXP_MATCHES"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="s2">"STRFTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="s2">"STRPTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="s2">"STR_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="s2">"STRING_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="s2">"STRING_TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="s2">"STR_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="s2">"STRING_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="s2">"STRUCT_PACK"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="p">}</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</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><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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">"ARRAY"</span><span class="p">,</span> <span class="n">e</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-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="k">else</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_VALUE"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort_sql</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySum</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_SUM"</span><span class="p">),</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">,</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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">"unit"</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">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="p">),</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(STRFTIME(</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="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(STRPTIME(CAST(</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"> AS TEXT), </span><span class="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNNEST"</span><span class="p">),</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</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">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</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">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</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">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</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">Pivot</span><span class="p">:</span> <span class="n">no_pivot_sql</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">Properties</span><span class="p">:</span> <span class="n">no_properties_sql</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">RegexpExtract</span><span class="p">:</span> <span class="n">_regexp_extract_sql</span><span class="p">,</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT_REGEX"</span><span class="p">),</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT"</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">SortArray</span><span class="p">:</span> <span class="n">_sort_array_sql</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">StrPosition</span><span class="p">:</span> <span class="n">str_position_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">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</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">StrToTime</span><span class="p">:</span> <span class="n">str_to_time_sql</span><span class="p">,</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"EPOCH(STRPTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</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">Struct</span><span class="p">:</span> <span class="n">_struct_sql</span><span class="p">,</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><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">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</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">TimeStrToUnix</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="sa">f</span><span class="s2">"EPOCH(CAST(</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"> AS TIMESTAMP))"</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">TimeToStr</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="sa">f</span><span class="s2">"STRFTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</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">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EPOCH"</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">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS TEXT), '-', ''), 1, 8) AS INT)"</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">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add</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">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"duckdb"</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">UnixToStr</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="sa">f</span><span class="s2">"STRFTIME(TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</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">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_TIMESTAMP"</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">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(TO_TIMESTAMP(</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">) AS TEXT)"</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">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="p">}</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</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">"BLOB"</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos">203</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</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">UINT</span><span class="p">:</span> <span class="s2">"UINTEGER"</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">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">"BLOB"</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="p">}</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">,</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="p">}</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> +</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> </span></pre></div> @@ -304,138 +311,144 @@ </div> <a class="headerlink" href="#DuckDB"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB-79"><a href="#DuckDB-79"><span class="linenos"> 79</span></a><span class="k">class</span> <span class="nc">DuckDB</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="DuckDB-80"><a href="#DuckDB-80"><span class="linenos"> 80</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="DuckDB-81"><a href="#DuckDB-81"><span class="linenos"> 81</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB-82"><a href="#DuckDB-82"><span class="linenos"> 82</span></a> <span class="o">**</span><span class="n">tokens</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="DuckDB-83"><a href="#DuckDB-83"><span class="linenos"> 83</span></a> <span class="s2">":="</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="DuckDB-84"><a href="#DuckDB-84"><span class="linenos"> 84</span></a> <span class="s2">"ATTACH"</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="DuckDB-85"><a href="#DuckDB-85"><span class="linenos"> 85</span></a> <span class="s2">"BINARY"</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="DuckDB-86"><a href="#DuckDB-86"><span class="linenos"> 86</span></a> <span class="s2">"BPCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DuckDB-87"><a href="#DuckDB-87"><span class="linenos"> 87</span></a> <span class="s2">"BITSTRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="DuckDB-88"><a href="#DuckDB-88"><span class="linenos"> 88</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DuckDB-89"><a href="#DuckDB-89"><span class="linenos"> 89</span></a> <span class="s2">"CHARACTER VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DuckDB-90"><a href="#DuckDB-90"><span class="linenos"> 90</span></a> <span class="s2">"EXCLUDE"</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="DuckDB-91"><a href="#DuckDB-91"><span class="linenos"> 91</span></a> <span class="s2">"INT1"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="DuckDB-92"><a href="#DuckDB-92"><span class="linenos"> 92</span></a> <span class="s2">"LOGICAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="DuckDB-93"><a href="#DuckDB-93"><span class="linenos"> 93</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="DuckDB-94"><a href="#DuckDB-94"><span class="linenos"> 94</span></a> <span class="s2">"SIGNED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="DuckDB-95"><a href="#DuckDB-95"><span class="linenos"> 95</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="DuckDB-96"><a href="#DuckDB-96"><span class="linenos"> 96</span></a> <span class="s2">"UBIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> -</span><span id="DuckDB-97"><a href="#DuckDB-97"><span class="linenos"> 97</span></a> <span class="s2">"UINTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> -</span><span id="DuckDB-98"><a href="#DuckDB-98"><span class="linenos"> 98</span></a> <span class="s2">"USMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> -</span><span id="DuckDB-99"><a href="#DuckDB-99"><span class="linenos"> 99</span></a> <span class="s2">"UTINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> -</span><span id="DuckDB-100"><a href="#DuckDB-100"><span class="linenos">100</span></a> <span class="p">}</span> -</span><span id="DuckDB-101"><a href="#DuckDB-101"><span class="linenos">101</span></a> -</span><span id="DuckDB-102"><a href="#DuckDB-102"><span class="linenos">102</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="DuckDB-103"><a href="#DuckDB-103"><span class="linenos">103</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB-104"><a href="#DuckDB-104"><span class="linenos">104</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="DuckDB-105"><a href="#DuckDB-105"><span class="linenos">105</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-106"><a href="#DuckDB-106"><span class="linenos">106</span></a> <span class="s2">"ARRAY_LENGTH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-107"><a href="#DuckDB-107"><span class="linenos">107</span></a> <span class="s2">"ARRAY_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-108"><a href="#DuckDB-108"><span class="linenos">108</span></a> <span class="s2">"ARRAY_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> -</span><span id="DuckDB-109"><a href="#DuckDB-109"><span class="linenos">109</span></a> <span class="s2">"EPOCH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-110"><a href="#DuckDB-110"><span class="linenos">110</span></a> <span class="s2">"EPOCH_MS"</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">UnixToTime</span><span class="p">(</span> -</span><span id="DuckDB-111"><a href="#DuckDB-111"><span class="linenos">111</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span> -</span><span id="DuckDB-112"><a href="#DuckDB-112"><span class="linenos">112</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="DuckDB-113"><a href="#DuckDB-113"><span class="linenos">113</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1000</span><span class="p">),</span> -</span><span id="DuckDB-114"><a href="#DuckDB-114"><span class="linenos">114</span></a> <span class="p">)</span> -</span><span id="DuckDB-115"><a href="#DuckDB-115"><span class="linenos">115</span></a> <span class="p">),</span> -</span><span id="DuckDB-116"><a href="#DuckDB-116"><span class="linenos">116</span></a> <span class="s2">"LIST_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-117"><a href="#DuckDB-117"><span class="linenos">117</span></a> <span class="s2">"LIST_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> -</span><span id="DuckDB-118"><a href="#DuckDB-118"><span class="linenos">118</span></a> <span class="s2">"LIST_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-119"><a href="#DuckDB-119"><span class="linenos">119</span></a> <span class="s2">"REGEXP_MATCHES"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-120"><a href="#DuckDB-120"><span class="linenos">120</span></a> <span class="s2">"STRFTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="DuckDB-121"><a href="#DuckDB-121"><span class="linenos">121</span></a> <span class="s2">"STRPTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="DuckDB-122"><a href="#DuckDB-122"><span class="linenos">122</span></a> <span class="s2">"STR_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-123"><a href="#DuckDB-123"><span class="linenos">123</span></a> <span class="s2">"STRING_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-124"><a href="#DuckDB-124"><span class="linenos">124</span></a> <span class="s2">"STRING_TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-125"><a href="#DuckDB-125"><span class="linenos">125</span></a> <span class="s2">"STR_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-126"><a href="#DuckDB-126"><span class="linenos">126</span></a> <span class="s2">"STRING_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-127"><a href="#DuckDB-127"><span class="linenos">127</span></a> <span class="s2">"STRUCT_PACK"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-128"><a href="#DuckDB-128"><span class="linenos">128</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-129"><a href="#DuckDB-129"><span class="linenos">129</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB-130"><a href="#DuckDB-130"><span class="linenos">130</span></a> <span class="p">}</span> -</span><span id="DuckDB-131"><a href="#DuckDB-131"><span class="linenos">131</span></a> -</span><span id="DuckDB-132"><a href="#DuckDB-132"><span class="linenos">132</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB-133"><a href="#DuckDB-133"><span class="linenos">133</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="DuckDB-134"><a href="#DuckDB-134"><span class="linenos">134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> -</span><span id="DuckDB-135"><a href="#DuckDB-135"><span class="linenos">135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> -</span><span id="DuckDB-136"><a href="#DuckDB-136"><span class="linenos">136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> -</span><span id="DuckDB-137"><a href="#DuckDB-137"><span class="linenos">137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> -</span><span id="DuckDB-138"><a href="#DuckDB-138"><span class="linenos">138</span></a> <span class="p">}</span> -</span><span id="DuckDB-139"><a href="#DuckDB-139"><span class="linenos">139</span></a> -</span><span id="DuckDB-140"><a href="#DuckDB-140"><span class="linenos">140</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="DuckDB-141"><a href="#DuckDB-141"><span class="linenos">141</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="DuckDB-142"><a href="#DuckDB-142"><span class="linenos">142</span></a> -</span><span id="DuckDB-143"><a href="#DuckDB-143"><span class="linenos">143</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB-144"><a href="#DuckDB-144"><span class="linenos">144</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="DuckDB-145"><a href="#DuckDB-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="DuckDB-146"><a href="#DuckDB-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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">"ARRAY"</span><span class="p">,</span> <span class="n">e</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="DuckDB-147"><a href="#DuckDB-147"><span class="linenos">147</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> -</span><span id="DuckDB-148"><a href="#DuckDB-148"><span class="linenos">148</span></a> <span class="k">else</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_VALUE"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> -</span><span id="DuckDB-149"><a href="#DuckDB-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> -</span><span id="DuckDB-150"><a href="#DuckDB-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort_sql</span><span class="p">,</span> -</span><span id="DuckDB-151"><a href="#DuckDB-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySum</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_SUM"</span><span class="p">),</span> -</span><span id="DuckDB-152"><a href="#DuckDB-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="DuckDB-153"><a href="#DuckDB-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">,</span> -</span><span id="DuckDB-154"><a href="#DuckDB-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="DuckDB-155"><a href="#DuckDB-155"><span class="linenos">155</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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">"unit"</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">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> -</span><span id="DuckDB-156"><a href="#DuckDB-156"><span class="linenos">156</span></a> <span class="p">),</span> -</span><span id="DuckDB-157"><a href="#DuckDB-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="DuckDB-158"><a href="#DuckDB-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(STRFTIME(</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="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="DuckDB-159"><a href="#DuckDB-159"><span class="linenos">159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(STRPTIME(CAST(</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"> AS TEXT), </span><span class="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="DuckDB-160"><a href="#DuckDB-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNNEST"</span><span class="p">),</span> -</span><span id="DuckDB-161"><a href="#DuckDB-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="DuckDB-162"><a href="#DuckDB-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="DuckDB-163"><a href="#DuckDB-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="DuckDB-164"><a href="#DuckDB-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="DuckDB-165"><a href="#DuckDB-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="DuckDB-166"><a href="#DuckDB-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">:</span> <span class="n">no_pivot_sql</span><span class="p">,</span> -</span><span id="DuckDB-167"><a href="#DuckDB-167"><span class="linenos">167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">:</span> <span class="n">no_properties_sql</span><span class="p">,</span> -</span><span id="DuckDB-168"><a href="#DuckDB-168"><span class="linenos">168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpExtract</span><span class="p">:</span> <span class="n">_regexp_extract_sql</span><span class="p">,</span> -</span><span id="DuckDB-169"><a href="#DuckDB-169"><span class="linenos">169</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> -</span><span id="DuckDB-170"><a href="#DuckDB-170"><span class="linenos">170</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT_REGEX"</span><span class="p">),</span> -</span><span id="DuckDB-171"><a href="#DuckDB-171"><span class="linenos">171</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="DuckDB-172"><a href="#DuckDB-172"><span class="linenos">172</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT"</span><span class="p">),</span> -</span><span id="DuckDB-173"><a href="#DuckDB-173"><span class="linenos">173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_sort_array_sql</span><span class="p">,</span> -</span><span id="DuckDB-174"><a href="#DuckDB-174"><span class="linenos">174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="DuckDB-175"><a href="#DuckDB-175"><span class="linenos">175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> -</span><span id="DuckDB-176"><a href="#DuckDB-176"><span class="linenos">176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">str_to_time_sql</span><span class="p">,</span> -</span><span id="DuckDB-177"><a href="#DuckDB-177"><span class="linenos">177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"EPOCH(STRPTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="DuckDB-178"><a href="#DuckDB-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="p">:</span> <span class="n">_struct_sql</span><span class="p">,</span> -</span><span id="DuckDB-179"><a href="#DuckDB-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> -</span><span id="DuckDB-180"><a href="#DuckDB-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="DuckDB-181"><a href="#DuckDB-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"EPOCH(CAST(</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"> AS TIMESTAMP))"</span><span class="p">,</span> -</span><span id="DuckDB-182"><a href="#DuckDB-182"><span class="linenos">182</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"STRFTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="DuckDB-183"><a href="#DuckDB-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">),</span> -</span><span id="DuckDB-184"><a href="#DuckDB-184"><span class="linenos">184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS TEXT), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="DuckDB-185"><a href="#DuckDB-185"><span class="linenos">185</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add</span><span class="p">,</span> -</span><span id="DuckDB-186"><a href="#DuckDB-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="DuckDB-187"><a href="#DuckDB-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"STRFTIME(TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="DuckDB-188"><a href="#DuckDB-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_TIMESTAMP"</span><span class="p">),</span> -</span><span id="DuckDB-189"><a href="#DuckDB-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(TO_TIMESTAMP(</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">) AS TEXT)"</span><span class="p">,</span> -</span><span id="DuckDB-190"><a href="#DuckDB-190"><span class="linenos">190</span></a> <span class="p">}</span> -</span><span id="DuckDB-191"><a href="#DuckDB-191"><span class="linenos">191</span></a> -</span><span id="DuckDB-192"><a href="#DuckDB-192"><span class="linenos">192</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB-193"><a href="#DuckDB-193"><span class="linenos">193</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="DuckDB-194"><a href="#DuckDB-194"><span class="linenos">194</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">"BLOB"</span><span class="p">,</span> -</span><span id="DuckDB-195"><a href="#DuckDB-195"><span class="linenos">195</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB-196"><a href="#DuckDB-196"><span class="linenos">196</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="DuckDB-197"><a href="#DuckDB-197"><span class="linenos">197</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB-198"><a href="#DuckDB-198"><span class="linenos">198</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB-199"><a href="#DuckDB-199"><span class="linenos">199</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">UINT</span><span class="p">:</span> <span class="s2">"UINTEGER"</span><span class="p">,</span> -</span><span id="DuckDB-200"><a href="#DuckDB-200"><span class="linenos">200</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">"BLOB"</span><span class="p">,</span> -</span><span id="DuckDB-201"><a href="#DuckDB-201"><span class="linenos">201</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB-202"><a href="#DuckDB-202"><span class="linenos">202</span></a> <span class="p">}</span> -</span><span id="DuckDB-203"><a href="#DuckDB-203"><span class="linenos">203</span></a> -</span><span id="DuckDB-204"><a href="#DuckDB-204"><span class="linenos">204</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB-205"><a href="#DuckDB-205"><span class="linenos">205</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">,</span> -</span><span id="DuckDB-206"><a href="#DuckDB-206"><span class="linenos">206</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> -</span><span id="DuckDB-207"><a href="#DuckDB-207"><span class="linenos">207</span></a> <span class="p">}</span> -</span><span id="DuckDB-208"><a href="#DuckDB-208"><span class="linenos">208</span></a> -</span><span id="DuckDB-209"><a href="#DuckDB-209"><span class="linenos">209</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="DuckDB-210"><a href="#DuckDB-210"><span class="linenos">210</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB-80"><a href="#DuckDB-80"><span class="linenos"> 80</span></a><span class="k">class</span> <span class="nc">DuckDB</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="DuckDB-81"><a href="#DuckDB-81"><span class="linenos"> 81</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="DuckDB-82"><a href="#DuckDB-82"><span class="linenos"> 82</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB-83"><a href="#DuckDB-83"><span class="linenos"> 83</span></a> <span class="o">**</span><span class="n">tokens</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="DuckDB-84"><a href="#DuckDB-84"><span class="linenos"> 84</span></a> <span class="s2">":="</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="DuckDB-85"><a href="#DuckDB-85"><span class="linenos"> 85</span></a> <span class="s2">"ATTACH"</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="DuckDB-86"><a href="#DuckDB-86"><span class="linenos"> 86</span></a> <span class="s2">"BINARY"</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="DuckDB-87"><a href="#DuckDB-87"><span class="linenos"> 87</span></a> <span class="s2">"BPCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DuckDB-88"><a href="#DuckDB-88"><span class="linenos"> 88</span></a> <span class="s2">"BITSTRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="DuckDB-89"><a href="#DuckDB-89"><span class="linenos"> 89</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DuckDB-90"><a href="#DuckDB-90"><span class="linenos"> 90</span></a> <span class="s2">"CHARACTER VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DuckDB-91"><a href="#DuckDB-91"><span class="linenos"> 91</span></a> <span class="s2">"EXCLUDE"</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="DuckDB-92"><a href="#DuckDB-92"><span class="linenos"> 92</span></a> <span class="s2">"INT1"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="DuckDB-93"><a href="#DuckDB-93"><span class="linenos"> 93</span></a> <span class="s2">"LOGICAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="DuckDB-94"><a href="#DuckDB-94"><span class="linenos"> 94</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="DuckDB-95"><a href="#DuckDB-95"><span class="linenos"> 95</span></a> <span class="s2">"SIGNED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="DuckDB-96"><a href="#DuckDB-96"><span class="linenos"> 96</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="DuckDB-97"><a href="#DuckDB-97"><span class="linenos"> 97</span></a> <span class="s2">"UBIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> +</span><span id="DuckDB-98"><a href="#DuckDB-98"><span class="linenos"> 98</span></a> <span class="s2">"UINTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> +</span><span id="DuckDB-99"><a href="#DuckDB-99"><span class="linenos"> 99</span></a> <span class="s2">"USMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> +</span><span id="DuckDB-100"><a href="#DuckDB-100"><span class="linenos">100</span></a> <span class="s2">"UTINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> +</span><span id="DuckDB-101"><a href="#DuckDB-101"><span class="linenos">101</span></a> <span class="p">}</span> +</span><span id="DuckDB-102"><a href="#DuckDB-102"><span class="linenos">102</span></a> +</span><span id="DuckDB-103"><a href="#DuckDB-103"><span class="linenos">103</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="DuckDB-104"><a href="#DuckDB-104"><span class="linenos">104</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB-105"><a href="#DuckDB-105"><span class="linenos">105</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="DuckDB-106"><a href="#DuckDB-106"><span class="linenos">106</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-107"><a href="#DuckDB-107"><span class="linenos">107</span></a> <span class="s2">"ARRAY_LENGTH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-108"><a href="#DuckDB-108"><span class="linenos">108</span></a> <span class="s2">"ARRAY_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-109"><a href="#DuckDB-109"><span class="linenos">109</span></a> <span class="s2">"ARRAY_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> +</span><span id="DuckDB-110"><a href="#DuckDB-110"><span class="linenos">110</span></a> <span class="s2">"EPOCH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-111"><a href="#DuckDB-111"><span class="linenos">111</span></a> <span class="s2">"EPOCH_MS"</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">UnixToTime</span><span class="p">(</span> +</span><span id="DuckDB-112"><a href="#DuckDB-112"><span class="linenos">112</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span> +</span><span id="DuckDB-113"><a href="#DuckDB-113"><span class="linenos">113</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="DuckDB-114"><a href="#DuckDB-114"><span class="linenos">114</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1000</span><span class="p">),</span> +</span><span id="DuckDB-115"><a href="#DuckDB-115"><span class="linenos">115</span></a> <span class="p">)</span> +</span><span id="DuckDB-116"><a href="#DuckDB-116"><span class="linenos">116</span></a> <span class="p">),</span> +</span><span id="DuckDB-117"><a href="#DuckDB-117"><span class="linenos">117</span></a> <span class="s2">"LIST_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-118"><a href="#DuckDB-118"><span class="linenos">118</span></a> <span class="s2">"LIST_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> +</span><span id="DuckDB-119"><a href="#DuckDB-119"><span class="linenos">119</span></a> <span class="s2">"LIST_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-120"><a href="#DuckDB-120"><span class="linenos">120</span></a> <span class="s2">"REGEXP_MATCHES"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-121"><a href="#DuckDB-121"><span class="linenos">121</span></a> <span class="s2">"STRFTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="DuckDB-122"><a href="#DuckDB-122"><span class="linenos">122</span></a> <span class="s2">"STRPTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="DuckDB-123"><a href="#DuckDB-123"><span class="linenos">123</span></a> <span class="s2">"STR_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-124"><a href="#DuckDB-124"><span class="linenos">124</span></a> <span class="s2">"STRING_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-125"><a href="#DuckDB-125"><span class="linenos">125</span></a> <span class="s2">"STRING_TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-126"><a href="#DuckDB-126"><span class="linenos">126</span></a> <span class="s2">"STR_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-127"><a href="#DuckDB-127"><span class="linenos">127</span></a> <span class="s2">"STRING_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-128"><a href="#DuckDB-128"><span class="linenos">128</span></a> <span class="s2">"STRUCT_PACK"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-129"><a href="#DuckDB-129"><span class="linenos">129</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-130"><a href="#DuckDB-130"><span class="linenos">130</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB-131"><a href="#DuckDB-131"><span class="linenos">131</span></a> <span class="p">}</span> +</span><span id="DuckDB-132"><a href="#DuckDB-132"><span class="linenos">132</span></a> +</span><span id="DuckDB-133"><a href="#DuckDB-133"><span class="linenos">133</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB-134"><a href="#DuckDB-134"><span class="linenos">134</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="DuckDB-135"><a href="#DuckDB-135"><span class="linenos">135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> +</span><span id="DuckDB-136"><a href="#DuckDB-136"><span class="linenos">136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> +</span><span id="DuckDB-137"><a href="#DuckDB-137"><span class="linenos">137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> +</span><span id="DuckDB-138"><a href="#DuckDB-138"><span class="linenos">138</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> +</span><span id="DuckDB-139"><a href="#DuckDB-139"><span class="linenos">139</span></a> <span class="p">}</span> +</span><span id="DuckDB-140"><a href="#DuckDB-140"><span class="linenos">140</span></a> +</span><span id="DuckDB-141"><a href="#DuckDB-141"><span class="linenos">141</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="DuckDB-142"><a href="#DuckDB-142"><span class="linenos">142</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="DuckDB-143"><a href="#DuckDB-143"><span class="linenos">143</span></a> +</span><span id="DuckDB-144"><a href="#DuckDB-144"><span class="linenos">144</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB-145"><a href="#DuckDB-145"><span class="linenos">145</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="DuckDB-146"><a href="#DuckDB-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="DuckDB-147"><a href="#DuckDB-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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">"ARRAY"</span><span class="p">,</span> <span class="n">e</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="DuckDB-148"><a href="#DuckDB-148"><span class="linenos">148</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> +</span><span id="DuckDB-149"><a href="#DuckDB-149"><span class="linenos">149</span></a> <span class="k">else</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_VALUE"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> +</span><span id="DuckDB-150"><a href="#DuckDB-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> +</span><span id="DuckDB-151"><a href="#DuckDB-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort_sql</span><span class="p">,</span> +</span><span id="DuckDB-152"><a href="#DuckDB-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySum</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_SUM"</span><span class="p">),</span> +</span><span id="DuckDB-153"><a href="#DuckDB-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="DuckDB-154"><a href="#DuckDB-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="DuckDB-155"><a href="#DuckDB-155"><span class="linenos">155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="DuckDB-156"><a href="#DuckDB-156"><span class="linenos">156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="DuckDB-157"><a href="#DuckDB-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">,</span> +</span><span id="DuckDB-158"><a href="#DuckDB-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="DuckDB-159"><a href="#DuckDB-159"><span class="linenos">159</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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">"unit"</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">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="DuckDB-160"><a href="#DuckDB-160"><span class="linenos">160</span></a> <span class="p">),</span> +</span><span id="DuckDB-161"><a href="#DuckDB-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="DuckDB-162"><a href="#DuckDB-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(STRFTIME(</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="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="DuckDB-163"><a href="#DuckDB-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(STRPTIME(CAST(</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"> AS TEXT), </span><span class="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="DuckDB-164"><a href="#DuckDB-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNNEST"</span><span class="p">),</span> +</span><span id="DuckDB-165"><a href="#DuckDB-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="DuckDB-166"><a href="#DuckDB-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="DuckDB-167"><a href="#DuckDB-167"><span class="linenos">167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="DuckDB-168"><a href="#DuckDB-168"><span class="linenos">168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="DuckDB-169"><a href="#DuckDB-169"><span class="linenos">169</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="DuckDB-170"><a href="#DuckDB-170"><span class="linenos">170</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="DuckDB-171"><a href="#DuckDB-171"><span class="linenos">171</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">:</span> <span class="n">no_pivot_sql</span><span class="p">,</span> +</span><span id="DuckDB-172"><a href="#DuckDB-172"><span class="linenos">172</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">:</span> <span class="n">no_properties_sql</span><span class="p">,</span> +</span><span id="DuckDB-173"><a href="#DuckDB-173"><span class="linenos">173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpExtract</span><span class="p">:</span> <span class="n">_regexp_extract_sql</span><span class="p">,</span> +</span><span id="DuckDB-174"><a href="#DuckDB-174"><span class="linenos">174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> +</span><span id="DuckDB-175"><a href="#DuckDB-175"><span class="linenos">175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT_REGEX"</span><span class="p">),</span> +</span><span id="DuckDB-176"><a href="#DuckDB-176"><span class="linenos">176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="DuckDB-177"><a href="#DuckDB-177"><span class="linenos">177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT"</span><span class="p">),</span> +</span><span id="DuckDB-178"><a href="#DuckDB-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_sort_array_sql</span><span class="p">,</span> +</span><span id="DuckDB-179"><a href="#DuckDB-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="DuckDB-180"><a href="#DuckDB-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> +</span><span id="DuckDB-181"><a href="#DuckDB-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">str_to_time_sql</span><span class="p">,</span> +</span><span id="DuckDB-182"><a href="#DuckDB-182"><span class="linenos">182</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"EPOCH(STRPTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="DuckDB-183"><a href="#DuckDB-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="p">:</span> <span class="n">_struct_sql</span><span class="p">,</span> +</span><span id="DuckDB-184"><a href="#DuckDB-184"><span class="linenos">184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="DuckDB-185"><a href="#DuckDB-185"><span class="linenos">185</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> +</span><span id="DuckDB-186"><a href="#DuckDB-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="DuckDB-187"><a href="#DuckDB-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"EPOCH(CAST(</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"> AS TIMESTAMP))"</span><span class="p">,</span> +</span><span id="DuckDB-188"><a href="#DuckDB-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"STRFTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="DuckDB-189"><a href="#DuckDB-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">),</span> +</span><span id="DuckDB-190"><a href="#DuckDB-190"><span class="linenos">190</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS TEXT), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="DuckDB-191"><a href="#DuckDB-191"><span class="linenos">191</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add</span><span class="p">,</span> +</span><span id="DuckDB-192"><a href="#DuckDB-192"><span class="linenos">192</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="DuckDB-193"><a href="#DuckDB-193"><span class="linenos">193</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"STRFTIME(TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="DuckDB-194"><a href="#DuckDB-194"><span class="linenos">194</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_TIMESTAMP"</span><span class="p">),</span> +</span><span id="DuckDB-195"><a href="#DuckDB-195"><span class="linenos">195</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(TO_TIMESTAMP(</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">) AS TEXT)"</span><span class="p">,</span> +</span><span id="DuckDB-196"><a href="#DuckDB-196"><span class="linenos">196</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="DuckDB-197"><a href="#DuckDB-197"><span class="linenos">197</span></a> <span class="p">}</span> +</span><span id="DuckDB-198"><a href="#DuckDB-198"><span class="linenos">198</span></a> +</span><span id="DuckDB-199"><a href="#DuckDB-199"><span class="linenos">199</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB-200"><a href="#DuckDB-200"><span class="linenos">200</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="DuckDB-201"><a href="#DuckDB-201"><span class="linenos">201</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">"BLOB"</span><span class="p">,</span> +</span><span id="DuckDB-202"><a href="#DuckDB-202"><span class="linenos">202</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB-203"><a href="#DuckDB-203"><span class="linenos">203</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="DuckDB-204"><a href="#DuckDB-204"><span class="linenos">204</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB-205"><a href="#DuckDB-205"><span class="linenos">205</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB-206"><a href="#DuckDB-206"><span class="linenos">206</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">UINT</span><span class="p">:</span> <span class="s2">"UINTEGER"</span><span class="p">,</span> +</span><span id="DuckDB-207"><a href="#DuckDB-207"><span class="linenos">207</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">"BLOB"</span><span class="p">,</span> +</span><span id="DuckDB-208"><a href="#DuckDB-208"><span class="linenos">208</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB-209"><a href="#DuckDB-209"><span class="linenos">209</span></a> <span class="p">}</span> +</span><span id="DuckDB-210"><a href="#DuckDB-210"><span class="linenos">210</span></a> +</span><span id="DuckDB-211"><a href="#DuckDB-211"><span class="linenos">211</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB-212"><a href="#DuckDB-212"><span class="linenos">212</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">,</span> +</span><span id="DuckDB-213"><a href="#DuckDB-213"><span class="linenos">213</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> +</span><span id="DuckDB-214"><a href="#DuckDB-214"><span class="linenos">214</span></a> <span class="p">}</span> +</span><span id="DuckDB-215"><a href="#DuckDB-215"><span class="linenos">215</span></a> +</span><span id="DuckDB-216"><a href="#DuckDB-216"><span class="linenos">216</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="DuckDB-217"><a href="#DuckDB-217"><span class="linenos">217</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> </span></pre></div> @@ -451,6 +464,7 @@ <dd id="DuckDB.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="DuckDB.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="DuckDB.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="DuckDB.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="DuckDB.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="DuckDB.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -469,27 +483,27 @@ </div> <a class="headerlink" href="#DuckDB.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Tokenizer-80"><a href="#DuckDB.Tokenizer-80"><span class="linenos"> 80</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="DuckDB.Tokenizer-81"><a href="#DuckDB.Tokenizer-81"><span class="linenos"> 81</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB.Tokenizer-82"><a href="#DuckDB.Tokenizer-82"><span class="linenos"> 82</span></a> <span class="o">**</span><span class="n">tokens</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="DuckDB.Tokenizer-83"><a href="#DuckDB.Tokenizer-83"><span class="linenos"> 83</span></a> <span class="s2">":="</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-84"><a href="#DuckDB.Tokenizer-84"><span class="linenos"> 84</span></a> <span class="s2">"ATTACH"</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="DuckDB.Tokenizer-85"><a href="#DuckDB.Tokenizer-85"><span class="linenos"> 85</span></a> <span class="s2">"BINARY"</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="DuckDB.Tokenizer-86"><a href="#DuckDB.Tokenizer-86"><span class="linenos"> 86</span></a> <span class="s2">"BPCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-87"><a href="#DuckDB.Tokenizer-87"><span class="linenos"> 87</span></a> <span class="s2">"BITSTRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-88"><a href="#DuckDB.Tokenizer-88"><span class="linenos"> 88</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-89"><a href="#DuckDB.Tokenizer-89"><span class="linenos"> 89</span></a> <span class="s2">"CHARACTER VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-90"><a href="#DuckDB.Tokenizer-90"><span class="linenos"> 90</span></a> <span class="s2">"EXCLUDE"</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="DuckDB.Tokenizer-91"><a href="#DuckDB.Tokenizer-91"><span class="linenos"> 91</span></a> <span class="s2">"INT1"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-92"><a href="#DuckDB.Tokenizer-92"><span class="linenos"> 92</span></a> <span class="s2">"LOGICAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-93"><a href="#DuckDB.Tokenizer-93"><span class="linenos"> 93</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-94"><a href="#DuckDB.Tokenizer-94"><span class="linenos"> 94</span></a> <span class="s2">"SIGNED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-95"><a href="#DuckDB.Tokenizer-95"><span class="linenos"> 95</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-96"><a href="#DuckDB.Tokenizer-96"><span class="linenos"> 96</span></a> <span class="s2">"UBIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-97"><a href="#DuckDB.Tokenizer-97"><span class="linenos"> 97</span></a> <span class="s2">"UINTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-98"><a href="#DuckDB.Tokenizer-98"><span class="linenos"> 98</span></a> <span class="s2">"USMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-99"><a href="#DuckDB.Tokenizer-99"><span class="linenos"> 99</span></a> <span class="s2">"UTINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> -</span><span id="DuckDB.Tokenizer-100"><a href="#DuckDB.Tokenizer-100"><span class="linenos">100</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Tokenizer-81"><a href="#DuckDB.Tokenizer-81"><span class="linenos"> 81</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="DuckDB.Tokenizer-82"><a href="#DuckDB.Tokenizer-82"><span class="linenos"> 82</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB.Tokenizer-83"><a href="#DuckDB.Tokenizer-83"><span class="linenos"> 83</span></a> <span class="o">**</span><span class="n">tokens</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="DuckDB.Tokenizer-84"><a href="#DuckDB.Tokenizer-84"><span class="linenos"> 84</span></a> <span class="s2">":="</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-85"><a href="#DuckDB.Tokenizer-85"><span class="linenos"> 85</span></a> <span class="s2">"ATTACH"</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="DuckDB.Tokenizer-86"><a href="#DuckDB.Tokenizer-86"><span class="linenos"> 86</span></a> <span class="s2">"BINARY"</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="DuckDB.Tokenizer-87"><a href="#DuckDB.Tokenizer-87"><span class="linenos"> 87</span></a> <span class="s2">"BPCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-88"><a href="#DuckDB.Tokenizer-88"><span class="linenos"> 88</span></a> <span class="s2">"BITSTRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-89"><a href="#DuckDB.Tokenizer-89"><span class="linenos"> 89</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-90"><a href="#DuckDB.Tokenizer-90"><span class="linenos"> 90</span></a> <span class="s2">"CHARACTER VARYING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-91"><a href="#DuckDB.Tokenizer-91"><span class="linenos"> 91</span></a> <span class="s2">"EXCLUDE"</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="DuckDB.Tokenizer-92"><a href="#DuckDB.Tokenizer-92"><span class="linenos"> 92</span></a> <span class="s2">"INT1"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-93"><a href="#DuckDB.Tokenizer-93"><span class="linenos"> 93</span></a> <span class="s2">"LOGICAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-94"><a href="#DuckDB.Tokenizer-94"><span class="linenos"> 94</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-95"><a href="#DuckDB.Tokenizer-95"><span class="linenos"> 95</span></a> <span class="s2">"SIGNED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-96"><a href="#DuckDB.Tokenizer-96"><span class="linenos"> 96</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-97"><a href="#DuckDB.Tokenizer-97"><span class="linenos"> 97</span></a> <span class="s2">"UBIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-98"><a href="#DuckDB.Tokenizer-98"><span class="linenos"> 98</span></a> <span class="s2">"UINTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-99"><a href="#DuckDB.Tokenizer-99"><span class="linenos"> 99</span></a> <span class="s2">"USMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-100"><a href="#DuckDB.Tokenizer-100"><span class="linenos">100</span></a> <span class="s2">"UTINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> +</span><span id="DuckDB.Tokenizer-101"><a href="#DuckDB.Tokenizer-101"><span class="linenos">101</span></a> <span class="p">}</span> </span></pre></div> @@ -517,43 +531,43 @@ </div> <a class="headerlink" href="#DuckDB.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Parser-102"><a href="#DuckDB.Parser-102"><span class="linenos">102</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="DuckDB.Parser-103"><a href="#DuckDB.Parser-103"><span class="linenos">103</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB.Parser-104"><a href="#DuckDB.Parser-104"><span class="linenos">104</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="DuckDB.Parser-105"><a href="#DuckDB.Parser-105"><span class="linenos">105</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-106"><a href="#DuckDB.Parser-106"><span class="linenos">106</span></a> <span class="s2">"ARRAY_LENGTH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-107"><a href="#DuckDB.Parser-107"><span class="linenos">107</span></a> <span class="s2">"ARRAY_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-108"><a href="#DuckDB.Parser-108"><span class="linenos">108</span></a> <span class="s2">"ARRAY_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> -</span><span id="DuckDB.Parser-109"><a href="#DuckDB.Parser-109"><span class="linenos">109</span></a> <span class="s2">"EPOCH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-110"><a href="#DuckDB.Parser-110"><span class="linenos">110</span></a> <span class="s2">"EPOCH_MS"</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">UnixToTime</span><span class="p">(</span> -</span><span id="DuckDB.Parser-111"><a href="#DuckDB.Parser-111"><span class="linenos">111</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span> -</span><span id="DuckDB.Parser-112"><a href="#DuckDB.Parser-112"><span class="linenos">112</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="DuckDB.Parser-113"><a href="#DuckDB.Parser-113"><span class="linenos">113</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1000</span><span class="p">),</span> -</span><span id="DuckDB.Parser-114"><a href="#DuckDB.Parser-114"><span class="linenos">114</span></a> <span class="p">)</span> -</span><span id="DuckDB.Parser-115"><a href="#DuckDB.Parser-115"><span class="linenos">115</span></a> <span class="p">),</span> -</span><span id="DuckDB.Parser-116"><a href="#DuckDB.Parser-116"><span class="linenos">116</span></a> <span class="s2">"LIST_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-117"><a href="#DuckDB.Parser-117"><span class="linenos">117</span></a> <span class="s2">"LIST_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> -</span><span id="DuckDB.Parser-118"><a href="#DuckDB.Parser-118"><span class="linenos">118</span></a> <span class="s2">"LIST_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-119"><a href="#DuckDB.Parser-119"><span class="linenos">119</span></a> <span class="s2">"REGEXP_MATCHES"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-120"><a href="#DuckDB.Parser-120"><span class="linenos">120</span></a> <span class="s2">"STRFTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="DuckDB.Parser-121"><a href="#DuckDB.Parser-121"><span class="linenos">121</span></a> <span class="s2">"STRPTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="DuckDB.Parser-122"><a href="#DuckDB.Parser-122"><span class="linenos">122</span></a> <span class="s2">"STR_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-123"><a href="#DuckDB.Parser-123"><span class="linenos">123</span></a> <span class="s2">"STRING_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-124"><a href="#DuckDB.Parser-124"><span class="linenos">124</span></a> <span class="s2">"STRING_TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-125"><a href="#DuckDB.Parser-125"><span class="linenos">125</span></a> <span class="s2">"STR_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-126"><a href="#DuckDB.Parser-126"><span class="linenos">126</span></a> <span class="s2">"STRING_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-127"><a href="#DuckDB.Parser-127"><span class="linenos">127</span></a> <span class="s2">"STRUCT_PACK"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-128"><a href="#DuckDB.Parser-128"><span class="linenos">128</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-129"><a href="#DuckDB.Parser-129"><span class="linenos">129</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="DuckDB.Parser-130"><a href="#DuckDB.Parser-130"><span class="linenos">130</span></a> <span class="p">}</span> -</span><span id="DuckDB.Parser-131"><a href="#DuckDB.Parser-131"><span class="linenos">131</span></a> -</span><span id="DuckDB.Parser-132"><a href="#DuckDB.Parser-132"><span class="linenos">132</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB.Parser-133"><a href="#DuckDB.Parser-133"><span class="linenos">133</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="DuckDB.Parser-134"><a href="#DuckDB.Parser-134"><span class="linenos">134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> -</span><span id="DuckDB.Parser-135"><a href="#DuckDB.Parser-135"><span class="linenos">135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> -</span><span id="DuckDB.Parser-136"><a href="#DuckDB.Parser-136"><span class="linenos">136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> -</span><span id="DuckDB.Parser-137"><a href="#DuckDB.Parser-137"><span class="linenos">137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> -</span><span id="DuckDB.Parser-138"><a href="#DuckDB.Parser-138"><span class="linenos">138</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Parser-103"><a href="#DuckDB.Parser-103"><span class="linenos">103</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="DuckDB.Parser-104"><a href="#DuckDB.Parser-104"><span class="linenos">104</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB.Parser-105"><a href="#DuckDB.Parser-105"><span class="linenos">105</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="DuckDB.Parser-106"><a href="#DuckDB.Parser-106"><span class="linenos">106</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-107"><a href="#DuckDB.Parser-107"><span class="linenos">107</span></a> <span class="s2">"ARRAY_LENGTH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-108"><a href="#DuckDB.Parser-108"><span class="linenos">108</span></a> <span class="s2">"ARRAY_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-109"><a href="#DuckDB.Parser-109"><span class="linenos">109</span></a> <span class="s2">"ARRAY_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> +</span><span id="DuckDB.Parser-110"><a href="#DuckDB.Parser-110"><span class="linenos">110</span></a> <span class="s2">"EPOCH"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-111"><a href="#DuckDB.Parser-111"><span class="linenos">111</span></a> <span class="s2">"EPOCH_MS"</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">UnixToTime</span><span class="p">(</span> +</span><span id="DuckDB.Parser-112"><a href="#DuckDB.Parser-112"><span class="linenos">112</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span> +</span><span id="DuckDB.Parser-113"><a href="#DuckDB.Parser-113"><span class="linenos">113</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="DuckDB.Parser-114"><a href="#DuckDB.Parser-114"><span class="linenos">114</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1000</span><span class="p">),</span> +</span><span id="DuckDB.Parser-115"><a href="#DuckDB.Parser-115"><span class="linenos">115</span></a> <span class="p">)</span> +</span><span id="DuckDB.Parser-116"><a href="#DuckDB.Parser-116"><span class="linenos">116</span></a> <span class="p">),</span> +</span><span id="DuckDB.Parser-117"><a href="#DuckDB.Parser-117"><span class="linenos">117</span></a> <span class="s2">"LIST_SORT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-118"><a href="#DuckDB.Parser-118"><span class="linenos">118</span></a> <span class="s2">"LIST_REVERSE_SORT"</span><span class="p">:</span> <span class="n">_sort_array_reverse</span><span class="p">,</span> +</span><span id="DuckDB.Parser-119"><a href="#DuckDB.Parser-119"><span class="linenos">119</span></a> <span class="s2">"LIST_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-120"><a href="#DuckDB.Parser-120"><span class="linenos">120</span></a> <span class="s2">"REGEXP_MATCHES"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-121"><a href="#DuckDB.Parser-121"><span class="linenos">121</span></a> <span class="s2">"STRFTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="DuckDB.Parser-122"><a href="#DuckDB.Parser-122"><span class="linenos">122</span></a> <span class="s2">"STRPTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="DuckDB.Parser-123"><a href="#DuckDB.Parser-123"><span class="linenos">123</span></a> <span class="s2">"STR_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-124"><a href="#DuckDB.Parser-124"><span class="linenos">124</span></a> <span class="s2">"STRING_SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-125"><a href="#DuckDB.Parser-125"><span class="linenos">125</span></a> <span class="s2">"STRING_TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-126"><a href="#DuckDB.Parser-126"><span class="linenos">126</span></a> <span class="s2">"STR_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-127"><a href="#DuckDB.Parser-127"><span class="linenos">127</span></a> <span class="s2">"STRING_SPLIT_REGEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-128"><a href="#DuckDB.Parser-128"><span class="linenos">128</span></a> <span class="s2">"STRUCT_PACK"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-129"><a href="#DuckDB.Parser-129"><span class="linenos">129</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-130"><a href="#DuckDB.Parser-130"><span class="linenos">130</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="DuckDB.Parser-131"><a href="#DuckDB.Parser-131"><span class="linenos">131</span></a> <span class="p">}</span> +</span><span id="DuckDB.Parser-132"><a href="#DuckDB.Parser-132"><span class="linenos">132</span></a> +</span><span id="DuckDB.Parser-133"><a href="#DuckDB.Parser-133"><span class="linenos">133</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB.Parser-134"><a href="#DuckDB.Parser-134"><span class="linenos">134</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="DuckDB.Parser-135"><a href="#DuckDB.Parser-135"><span class="linenos">135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UBIGINT</span><span class="p">,</span> +</span><span id="DuckDB.Parser-136"><a href="#DuckDB.Parser-136"><span class="linenos">136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UINT</span><span class="p">,</span> +</span><span id="DuckDB.Parser-137"><a href="#DuckDB.Parser-137"><span class="linenos">137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USMALLINT</span><span class="p">,</span> +</span><span id="DuckDB.Parser-138"><a href="#DuckDB.Parser-138"><span class="linenos">138</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UTINYINT</span><span class="p">,</span> +</span><span id="DuckDB.Parser-139"><a href="#DuckDB.Parser-139"><span class="linenos">139</span></a> <span class="p">}</span> </span></pre></div> @@ -610,77 +624,83 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#DuckDB.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Generator-140"><a href="#DuckDB.Generator-140"><span class="linenos">140</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="DuckDB.Generator-141"><a href="#DuckDB.Generator-141"><span class="linenos">141</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="DuckDB.Generator-142"><a href="#DuckDB.Generator-142"><span class="linenos">142</span></a> -</span><span id="DuckDB.Generator-143"><a href="#DuckDB.Generator-143"><span class="linenos">143</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB.Generator-144"><a href="#DuckDB.Generator-144"><span class="linenos">144</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="DuckDB.Generator-145"><a href="#DuckDB.Generator-145"><span class="linenos">145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-146"><a href="#DuckDB.Generator-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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">"ARRAY"</span><span class="p">,</span> <span class="n">e</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="DuckDB.Generator-147"><a href="#DuckDB.Generator-147"><span class="linenos">147</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> -</span><span id="DuckDB.Generator-148"><a href="#DuckDB.Generator-148"><span class="linenos">148</span></a> <span class="k">else</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_VALUE"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> -</span><span id="DuckDB.Generator-149"><a href="#DuckDB.Generator-149"><span class="linenos">149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-150"><a href="#DuckDB.Generator-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-151"><a href="#DuckDB.Generator-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySum</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_SUM"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-152"><a href="#DuckDB.Generator-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-153"><a href="#DuckDB.Generator-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">,</span> -</span><span id="DuckDB.Generator-154"><a href="#DuckDB.Generator-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="DuckDB.Generator-155"><a href="#DuckDB.Generator-155"><span class="linenos">155</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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">"unit"</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">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> -</span><span id="DuckDB.Generator-156"><a href="#DuckDB.Generator-156"><span class="linenos">156</span></a> <span class="p">),</span> -</span><span id="DuckDB.Generator-157"><a href="#DuckDB.Generator-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-158"><a href="#DuckDB.Generator-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(STRFTIME(</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="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-159"><a href="#DuckDB.Generator-159"><span class="linenos">159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(STRPTIME(CAST(</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"> AS TEXT), </span><span class="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-160"><a href="#DuckDB.Generator-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNNEST"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-161"><a href="#DuckDB.Generator-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-162"><a href="#DuckDB.Generator-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-163"><a href="#DuckDB.Generator-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-164"><a href="#DuckDB.Generator-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-165"><a href="#DuckDB.Generator-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-166"><a href="#DuckDB.Generator-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">:</span> <span class="n">no_pivot_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-167"><a href="#DuckDB.Generator-167"><span class="linenos">167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">:</span> <span class="n">no_properties_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-168"><a href="#DuckDB.Generator-168"><span class="linenos">168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpExtract</span><span class="p">:</span> <span class="n">_regexp_extract_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-169"><a href="#DuckDB.Generator-169"><span class="linenos">169</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-170"><a href="#DuckDB.Generator-170"><span class="linenos">170</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT_REGEX"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-171"><a href="#DuckDB.Generator-171"><span class="linenos">171</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-172"><a href="#DuckDB.Generator-172"><span class="linenos">172</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-173"><a href="#DuckDB.Generator-173"><span class="linenos">173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_sort_array_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-174"><a href="#DuckDB.Generator-174"><span class="linenos">174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-175"><a href="#DuckDB.Generator-175"><span class="linenos">175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-176"><a href="#DuckDB.Generator-176"><span class="linenos">176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">str_to_time_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-177"><a href="#DuckDB.Generator-177"><span class="linenos">177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"EPOCH(STRPTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-178"><a href="#DuckDB.Generator-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="p">:</span> <span class="n">_struct_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-179"><a href="#DuckDB.Generator-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-180"><a href="#DuckDB.Generator-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="DuckDB.Generator-181"><a href="#DuckDB.Generator-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"EPOCH(CAST(</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"> AS TIMESTAMP))"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-182"><a href="#DuckDB.Generator-182"><span class="linenos">182</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"STRFTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-183"><a href="#DuckDB.Generator-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-184"><a href="#DuckDB.Generator-184"><span class="linenos">184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS TEXT), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-185"><a href="#DuckDB.Generator-185"><span class="linenos">185</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add</span><span class="p">,</span> -</span><span id="DuckDB.Generator-186"><a href="#DuckDB.Generator-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"duckdb"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-187"><a href="#DuckDB.Generator-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"STRFTIME(TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-188"><a href="#DuckDB.Generator-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_TIMESTAMP"</span><span class="p">),</span> -</span><span id="DuckDB.Generator-189"><a href="#DuckDB.Generator-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(TO_TIMESTAMP(</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">) AS TEXT)"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-190"><a href="#DuckDB.Generator-190"><span class="linenos">190</span></a> <span class="p">}</span> -</span><span id="DuckDB.Generator-191"><a href="#DuckDB.Generator-191"><span class="linenos">191</span></a> -</span><span id="DuckDB.Generator-192"><a href="#DuckDB.Generator-192"><span class="linenos">192</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB.Generator-193"><a href="#DuckDB.Generator-193"><span class="linenos">193</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="DuckDB.Generator-194"><a href="#DuckDB.Generator-194"><span class="linenos">194</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">"BLOB"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-195"><a href="#DuckDB.Generator-195"><span class="linenos">195</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-196"><a href="#DuckDB.Generator-196"><span class="linenos">196</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-197"><a href="#DuckDB.Generator-197"><span class="linenos">197</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-198"><a href="#DuckDB.Generator-198"><span class="linenos">198</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-199"><a href="#DuckDB.Generator-199"><span class="linenos">199</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">UINT</span><span class="p">:</span> <span class="s2">"UINTEGER"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-200"><a href="#DuckDB.Generator-200"><span class="linenos">200</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">"BLOB"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-201"><a href="#DuckDB.Generator-201"><span class="linenos">201</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-202"><a href="#DuckDB.Generator-202"><span class="linenos">202</span></a> <span class="p">}</span> -</span><span id="DuckDB.Generator-203"><a href="#DuckDB.Generator-203"><span class="linenos">203</span></a> -</span><span id="DuckDB.Generator-204"><a href="#DuckDB.Generator-204"><span class="linenos">204</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DuckDB.Generator-205"><a href="#DuckDB.Generator-205"><span class="linenos">205</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">,</span> -</span><span id="DuckDB.Generator-206"><a href="#DuckDB.Generator-206"><span class="linenos">206</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> -</span><span id="DuckDB.Generator-207"><a href="#DuckDB.Generator-207"><span class="linenos">207</span></a> <span class="p">}</span> -</span><span id="DuckDB.Generator-208"><a href="#DuckDB.Generator-208"><span class="linenos">208</span></a> -</span><span id="DuckDB.Generator-209"><a href="#DuckDB.Generator-209"><span class="linenos">209</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="DuckDB.Generator-210"><a href="#DuckDB.Generator-210"><span class="linenos">210</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Generator-141"><a href="#DuckDB.Generator-141"><span class="linenos">141</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="DuckDB.Generator-142"><a href="#DuckDB.Generator-142"><span class="linenos">142</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="DuckDB.Generator-143"><a href="#DuckDB.Generator-143"><span class="linenos">143</span></a> +</span><span id="DuckDB.Generator-144"><a href="#DuckDB.Generator-144"><span class="linenos">144</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB.Generator-145"><a href="#DuckDB.Generator-145"><span class="linenos">145</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="DuckDB.Generator-146"><a href="#DuckDB.Generator-146"><span class="linenos">146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-147"><a href="#DuckDB.Generator-147"><span class="linenos">147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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">"ARRAY"</span><span class="p">,</span> <span class="n">e</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="DuckDB.Generator-148"><a href="#DuckDB.Generator-148"><span class="linenos">148</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> +</span><span id="DuckDB.Generator-149"><a href="#DuckDB.Generator-149"><span class="linenos">149</span></a> <span class="k">else</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_VALUE"</span><span class="p">)(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">),</span> +</span><span id="DuckDB.Generator-150"><a href="#DuckDB.Generator-150"><span class="linenos">150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_LENGTH"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-151"><a href="#DuckDB.Generator-151"><span class="linenos">151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-152"><a href="#DuckDB.Generator-152"><span class="linenos">152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySum</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LIST_SUM"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-153"><a href="#DuckDB.Generator-153"><span class="linenos">153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-154"><a href="#DuckDB.Generator-154"><span class="linenos">154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-155"><a href="#DuckDB.Generator-155"><span class="linenos">155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-156"><a href="#DuckDB.Generator-156"><span class="linenos">156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-157"><a href="#DuckDB.Generator-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add</span><span class="p">,</span> +</span><span id="DuckDB.Generator-158"><a href="#DuckDB.Generator-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="DuckDB.Generator-159"><a href="#DuckDB.Generator-159"><span class="linenos">159</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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">"unit"</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">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="DuckDB.Generator-160"><a href="#DuckDB.Generator-160"><span class="linenos">160</span></a> <span class="p">),</span> +</span><span id="DuckDB.Generator-161"><a href="#DuckDB.Generator-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-162"><a href="#DuckDB.Generator-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(STRFTIME(</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="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-163"><a href="#DuckDB.Generator-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(STRPTIME(CAST(</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"> AS TEXT), </span><span class="si">{</span><span class="n">DuckDB</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-164"><a href="#DuckDB.Generator-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNNEST"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-165"><a href="#DuckDB.Generator-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-166"><a href="#DuckDB.Generator-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-167"><a href="#DuckDB.Generator-167"><span class="linenos">167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-168"><a href="#DuckDB.Generator-168"><span class="linenos">168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-169"><a href="#DuckDB.Generator-169"><span class="linenos">169</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-170"><a href="#DuckDB.Generator-170"><span class="linenos">170</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-171"><a href="#DuckDB.Generator-171"><span class="linenos">171</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pivot</span><span class="p">:</span> <span class="n">no_pivot_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-172"><a href="#DuckDB.Generator-172"><span class="linenos">172</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">:</span> <span class="n">no_properties_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-173"><a href="#DuckDB.Generator-173"><span class="linenos">173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpExtract</span><span class="p">:</span> <span class="n">_regexp_extract_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-174"><a href="#DuckDB.Generator-174"><span class="linenos">174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"REGEXP_MATCHES"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-175"><a href="#DuckDB.Generator-175"><span class="linenos">175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT_REGEX"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-176"><a href="#DuckDB.Generator-176"><span class="linenos">176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-177"><a href="#DuckDB.Generator-177"><span class="linenos">177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STR_SPLIT"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-178"><a href="#DuckDB.Generator-178"><span class="linenos">178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_sort_array_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-179"><a href="#DuckDB.Generator-179"><span class="linenos">179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-180"><a href="#DuckDB.Generator-180"><span class="linenos">180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-181"><a href="#DuckDB.Generator-181"><span class="linenos">181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">str_to_time_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-182"><a href="#DuckDB.Generator-182"><span class="linenos">182</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"EPOCH(STRPTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-183"><a href="#DuckDB.Generator-183"><span class="linenos">183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Struct</span><span class="p">:</span> <span class="n">_struct_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-184"><a href="#DuckDB.Generator-184"><span class="linenos">184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-185"><a href="#DuckDB.Generator-185"><span class="linenos">185</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</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="sa">f</span><span class="s2">"CAST(</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"> AS DATE)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-186"><a href="#DuckDB.Generator-186"><span class="linenos">186</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="DuckDB.Generator-187"><a href="#DuckDB.Generator-187"><span class="linenos">187</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"EPOCH(CAST(</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"> AS TIMESTAMP))"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-188"><a href="#DuckDB.Generator-188"><span class="linenos">188</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"STRFTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-189"><a href="#DuckDB.Generator-189"><span class="linenos">189</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-190"><a href="#DuckDB.Generator-190"><span class="linenos">190</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS TEXT), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-191"><a href="#DuckDB.Generator-191"><span class="linenos">191</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add</span><span class="p">,</span> +</span><span id="DuckDB.Generator-192"><a href="#DuckDB.Generator-192"><span class="linenos">192</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"duckdb"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-193"><a href="#DuckDB.Generator-193"><span class="linenos">193</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"STRFTIME(TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-194"><a href="#DuckDB.Generator-194"><span class="linenos">194</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_TIMESTAMP"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-195"><a href="#DuckDB.Generator-195"><span class="linenos">195</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(TO_TIMESTAMP(</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">) AS TEXT)"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-196"><a href="#DuckDB.Generator-196"><span class="linenos">196</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="DuckDB.Generator-197"><a href="#DuckDB.Generator-197"><span class="linenos">197</span></a> <span class="p">}</span> +</span><span id="DuckDB.Generator-198"><a href="#DuckDB.Generator-198"><span class="linenos">198</span></a> +</span><span id="DuckDB.Generator-199"><a href="#DuckDB.Generator-199"><span class="linenos">199</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB.Generator-200"><a href="#DuckDB.Generator-200"><span class="linenos">200</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="DuckDB.Generator-201"><a href="#DuckDB.Generator-201"><span class="linenos">201</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">"BLOB"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-202"><a href="#DuckDB.Generator-202"><span class="linenos">202</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-203"><a href="#DuckDB.Generator-203"><span class="linenos">203</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-204"><a href="#DuckDB.Generator-204"><span class="linenos">204</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-205"><a href="#DuckDB.Generator-205"><span class="linenos">205</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-206"><a href="#DuckDB.Generator-206"><span class="linenos">206</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">UINT</span><span class="p">:</span> <span class="s2">"UINTEGER"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-207"><a href="#DuckDB.Generator-207"><span class="linenos">207</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">"BLOB"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-208"><a href="#DuckDB.Generator-208"><span class="linenos">208</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-209"><a href="#DuckDB.Generator-209"><span class="linenos">209</span></a> <span class="p">}</span> +</span><span id="DuckDB.Generator-210"><a href="#DuckDB.Generator-210"><span class="linenos">210</span></a> +</span><span id="DuckDB.Generator-211"><a href="#DuckDB.Generator-211"><span class="linenos">211</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DuckDB.Generator-212"><a href="#DuckDB.Generator-212"><span class="linenos">212</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">,</span> +</span><span id="DuckDB.Generator-213"><a href="#DuckDB.Generator-213"><span class="linenos">213</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> +</span><span id="DuckDB.Generator-214"><a href="#DuckDB.Generator-214"><span class="linenos">214</span></a> <span class="p">}</span> +</span><span id="DuckDB.Generator-215"><a href="#DuckDB.Generator-215"><span class="linenos">215</span></a> +</span><span id="DuckDB.Generator-216"><a href="#DuckDB.Generator-216"><span class="linenos">216</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="DuckDB.Generator-217"><a href="#DuckDB.Generator-217"><span class="linenos">217</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> </span></pre></div> @@ -697,8 +717,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -740,8 +759,8 @@ Default: True</li> </div> <a class="headerlink" href="#DuckDB.Generator.tablesample_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Generator.tablesample_sql-209"><a href="#DuckDB.Generator.tablesample_sql-209"><span class="linenos">209</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="DuckDB.Generator.tablesample_sql-210"><a href="#DuckDB.Generator.tablesample_sql-210"><span class="linenos">210</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DuckDB.Generator.tablesample_sql-216"><a href="#DuckDB.Generator.tablesample_sql-216"><span class="linenos">216</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="DuckDB.Generator.tablesample_sql-217"><a href="#DuckDB.Generator.tablesample_sql-217"><span class="linenos">217</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">tablesample_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="o">=</span><span class="s2">"REPEATABLE"</span><span class="p">)</span> </span></pre></div> @@ -837,6 +856,8 @@ Default: True</li> <dd id="DuckDB.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="DuckDB.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="DuckDB.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="DuckDB.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="DuckDB.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="DuckDB.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="DuckDB.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="DuckDB.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -921,7 +942,6 @@ Default: True</li> <dd id="DuckDB.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="DuckDB.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="DuckDB.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="DuckDB.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="DuckDB.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="DuckDB.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="DuckDB.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -963,6 +983,7 @@ Default: True</li> <dd id="DuckDB.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="DuckDB.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="DuckDB.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="DuckDB.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/hive.html b/docs/sqlglot/dialects/hive.html index 232cd84..f7c0a5e 100644 --- a/docs/sqlglot/dialects/hive.html +++ b/docs/sqlglot/dialects/hive.html @@ -49,6 +49,9 @@ <a class="class" href="#Hive.Generator">Hive.Generator</a> <ul class="memberlist"> <li> + <a class="function" href="#Hive.Generator.arrayagg_sql">arrayagg_sql</a> + </li> + <li> <a class="function" href="#Hive.Generator.with_properties">with_properties</a> </li> <li> @@ -85,358 +88,365 @@ <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">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span><span class="p">,</span> <span class="n">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</span><span class="p">,</span> <span class="n">transforms</span> -</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</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-5"><a href="#L-5"><span class="linenos"> 5</span></a> <span class="n">Dialect</span><span class="p">,</span> -</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">format_time_lambda</span><span class="p">,</span> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">locate_to_strposition</span><span class="p">,</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">rename_func</span><span class="p">,</span> -</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="p">)</span> -</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</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-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="kn">from</span> <span class="nn">sqlglot.parser</span> <span class="kn">import</span> <span class="n">parse_var_map</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</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-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="c1"># (FuncType, Multiplier)</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="n">DATE_DELTA_INTERVAL</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="s2">"YEAR"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ADD_MONTHS"</span><span class="p">,</span> <span class="mi">12</span><span class="p">),</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="s2">"MONTH"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ADD_MONTHS"</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="s2">"QUARTER"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ADD_MONTHS"</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="s2">"WEEK"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DATE_ADD"</span><span class="p">,</span> <span class="mi">7</span><span class="p">),</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="s2">"DAY"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DATE_ADD"</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="p">}</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="n">DIFF_MONTH_SWITCH</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"YEAR"</span><span class="p">,</span> <span class="s2">"QUARTER"</span><span class="p">,</span> <span class="s2">"MONTH"</span><span class="p">)</span> +</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">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</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">Dialect</span><span class="p">,</span> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">format_time_lambda</span><span class="p">,</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">locate_to_strposition</span><span class="p">,</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">rename_func</span><span class="p">,</span> +</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="p">)</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</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-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="kn">from</span> <span class="nn">sqlglot.parser</span> <span class="kn">import</span> <span class="n">parse_var_map</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="kn">from</span> <span class="nn">sqlglot.tokens</span> <span class="kn">import</span> <span class="n">TokenType</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="c1"># (FuncType, Multiplier)</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="n">DATE_DELTA_INTERVAL</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="s2">"YEAR"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ADD_MONTHS"</span><span class="p">,</span> <span class="mi">12</span><span class="p">),</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="s2">"MONTH"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ADD_MONTHS"</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="s2">"QUARTER"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"ADD_MONTHS"</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="s2">"WEEK"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DATE_ADD"</span><span class="p">,</span> <span class="mi">7</span><span class="p">),</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="s2">"DAY"</span><span class="p">:</span> <span class="p">(</span><span class="s2">"DATE_ADD"</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="p">}</span> </span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> -</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">def</span> <span class="nf">_add_date_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><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">func</span><span class="p">,</span> <span class="n">multiplier</span> <span class="o">=</span> <span class="n">DATE_DELTA_INTERVAL</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="s2">"DATE_ADD"</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">modified_increment</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="nb">int</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"expression"</span><span class="p">))</span> <span class="o">*</span> <span class="n">multiplier</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_number</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="p">)</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">modified_increment</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">modified_increment</span><span class="p">)</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">modified_increment</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="k">def</span> <span class="nf">_date_diff_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><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">sql_func</span> <span class="o">=</span> <span class="s2">"MONTHS_BETWEEN"</span> <span class="k">if</span> <span class="n">unit</span> <span class="ow">in</span> <span class="n">DIFF_MONTH_SWITCH</span> <span class="k">else</span> <span class="s2">"DATEDIFF"</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">_</span><span class="p">,</span> <span class="n">multiplier</span> <span class="o">=</span> <span class="n">DATE_DELTA_INTERVAL</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">multiplier_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" / </span><span class="si">{</span><span class="n">multiplier</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">multiplier</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">diff_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql_func</span><span class="si">}</span><span class="s2">(</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">diff_sql</span><span class="si">}{</span><span class="n">multiplier_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="k">def</span> <span class="nf">_array_sort</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-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hive SORT_ARRAY does not support a comparator"</span><span class="p">)</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SORT_ARRAY(</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">expression</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><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="k">def</span> <span class="nf">_property_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><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="k">def</span> <span class="nf">_str_to_unix</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-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">_time_format</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-71"><a href="#L-71"><span class="linenos"> 71</span></a> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="k">def</span> <span class="nf">_str_to_date</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-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Hive</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"FROM_UNIXTIME(UNIX_TIMESTAMP(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS DATE)"</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="k">def</span> <span class="nf">_str_to_time</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-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Hive</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"FROM_UNIXTIME(UNIX_TIMESTAMP(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS TIMESTAMP)"</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="k">def</span> <span class="nf">_time_format</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-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="o">==</span> <span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">:</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">return</span> <span class="n">time_format</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a><span class="k">def</span> <span class="nf">_time_to_str</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-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATE_FORMAT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a><span class="k">def</span> <span class="nf">_to_date_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><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Hive</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_DATE(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_DATE(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a><span class="k">def</span> <span class="nf">_unnest_to_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><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unnest</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">):</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">unnest</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><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">udtf</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Posexplode</span> <span class="k">if</span> <span class="n">unnest</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">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">return</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">(</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">this</span><span class="o">=</span><span class="n">udtf</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">),</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">view</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">column</span><span class="p">]),</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="p">)</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="p">)</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">column</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">unnest</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[])</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="p">)</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">join_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="k">def</span> <span class="nf">_index_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><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="k">class</span> <span class="nc">Hive</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="n">DIFF_MONTH_SWITCH</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"YEAR"</span><span class="p">,</span> <span class="s2">"QUARTER"</span><span class="p">,</span> <span class="s2">"MONTH"</span><span class="p">)</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="k">def</span> <span class="nf">_add_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">DateAdd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="n">func</span><span class="p">,</span> <span class="n">multiplier</span> <span class="o">=</span> <span class="n">DATE_DELTA_INTERVAL</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="s2">"DATE_ADD"</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">modified_increment</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="nb">int</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"expression"</span><span class="p">))</span> <span class="o">*</span> <span class="n">multiplier</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_number</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="p">)</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">modified_increment</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">modified_increment</span><span class="p">)</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">func</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">modified_increment</span><span class="o">.</span><span class="n">this</span><span class="p">)</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><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="k">def</span> <span class="nf">_date_diff_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">sql_func</span> <span class="o">=</span> <span class="s2">"MONTHS_BETWEEN"</span> <span class="k">if</span> <span class="n">unit</span> <span class="ow">in</span> <span class="n">DIFF_MONTH_SWITCH</span> <span class="k">else</span> <span class="s2">"DATEDIFF"</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">_</span><span class="p">,</span> <span class="n">multiplier</span> <span class="o">=</span> <span class="n">DATE_DELTA_INTERVAL</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">multiplier_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" / </span><span class="si">{</span><span class="n">multiplier</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">multiplier</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">diff_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql_func</span><span class="si">}</span><span class="s2">(</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">diff_sql</span><span class="si">}{</span><span class="n">multiplier_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="k">def</span> <span class="nf">_array_sort</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">ArraySort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hive SORT_ARRAY does not support a comparator"</span><span class="p">)</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SORT_ARRAY(</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">expression</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><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="k">def</span> <span class="nf">_property_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="k">def</span> <span class="nf">_str_to_unix</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">StrToUnix</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">_time_format</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-73"><a href="#L-73"><span class="linenos"> 73</span></a> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="k">def</span> <span class="nf">_str_to_date</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">StrToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Hive</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"FROM_UNIXTIME(UNIX_TIMESTAMP(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS DATE)"</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> +</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="k">def</span> <span class="nf">_str_to_time</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">StrToTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Hive</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"FROM_UNIXTIME(UNIX_TIMESTAMP(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS TIMESTAMP)"</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="k">def</span> <span class="nf">_time_format</span><span class="p">(</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">UnixToStr</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="nb">str</span><span class="p">]:</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="o">==</span> <span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">:</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">return</span> <span class="n">time_format</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="k">def</span> <span class="nf">_time_to_str</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">TimeToStr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATE_FORMAT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> +</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">_to_date_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">TsOrDsToDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</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="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Hive</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_DATE(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">time_format</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_DATE(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> +</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">_unnest_to_explode_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unnest</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">):</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">unnest</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><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">udtf</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Posexplode</span> <span class="k">if</span> <span class="n">unnest</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">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Explode</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">return</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</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">sql</span><span class="p">(</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">(</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">this</span><span class="o">=</span><span class="n">udtf</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">),</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">view</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">column</span><span class="p">]),</span> <span class="c1"># type: ignore</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="p">)</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="p">)</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">column</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">unnest</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="p">[])</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="p">)</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">join_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="k">def</span> <span class="nf">_index_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">:</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"SSSSSS"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"a"</span><span class="p">:</span> <span class="s2">"%p"</span><span class="p">,</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%-j"</span><span class="p">,</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"E"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"EE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"EEE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"EEEE"</span><span class="p">:</span> <span class="s2">"%A"</span><span class="p">,</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="p">}</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">date_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd'"</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">dateint_format</span> <span class="o">=</span> <span class="s2">"'yyyyMMdd'"</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd HH:mm:ss'"</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="k">class</span> <span class="nc">Hive</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"SSSSSS"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"a"</span><span class="p">:</span> <span class="s2">"%p"</span><span class="p">,</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%-j"</span><span class="p">,</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"E"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="s2">"EE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="s2">"EEE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="s2">"EEEE"</span><span class="p">:</span> <span class="s2">"%A"</span><span class="p">,</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="p">}</span> </span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"`"</span><span class="p">]</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</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><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">ENCODE</span> <span class="o">=</span> <span class="s2">"utf-8"</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="o">**</span><span class="n">tokens</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-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="s2">"ADD ARCHIVE"</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-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="s2">"ADD ARCHIVES"</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-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"ADD FILE"</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-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="s2">"ADD FILES"</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-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"ADD JAR"</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-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="s2">"ADD JARS"</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-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="s2">"MSCK REPAIR"</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-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERDE_PROPERTIES</span><span class="p">,</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="p">}</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">NUMERIC_LITERALS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="s2">"BIGINT"</span><span class="p">,</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"TINYINT"</span><span class="p">,</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"DOUBLE"</span><span class="p">,</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"FLOAT"</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"BD"</span><span class="p">:</span> <span class="s2">"DECIMAL"</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="p">}</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="s2">"DATE_ADD"</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-210"><a href="#L-210"><span class="linenos">210</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-211"><a href="#L-211"><span class="linenos">211</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-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="p">),</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="n">date_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd'"</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">dateint_format</span> <span class="o">=</span> <span class="s2">"'yyyyMMdd'"</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd HH:mm:ss'"</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"`"</span><span class="p">]</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</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><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">ENCODE</span> <span class="o">=</span> <span class="s2">"utf-8"</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="o">**</span><span class="n">tokens</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-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"ADD ARCHIVE"</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-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="s2">"ADD ARCHIVES"</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-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="s2">"ADD FILE"</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-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"ADD FILES"</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-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="s2">"ADD JAR"</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-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="s2">"ADD JARS"</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-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="s2">"MSCK REPAIR"</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-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERDE_PROPERTIES</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="p">}</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="n">NUMERIC_LITERALS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="s2">"BIGINT"</span><span class="p">,</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"TINYINT"</span><span class="p">,</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"DOUBLE"</span><span class="p">,</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"FLOAT"</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"BD"</span><span class="p">:</span> <span class="s2">"DECIMAL"</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><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="s2">"DATE_ADD"</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-214"><a href="#L-214"><span class="linenos">214</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-215"><a href="#L-215"><span class="linenos">215</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-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> </span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="p">),</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"DATE_SUB"</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-219"><a href="#L-219"><span class="linenos">219</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-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</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">1</span><span class="p">),</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="p">),</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="p">),</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">)(</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="p">[</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <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-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="p">]</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="p">),</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"DAY"</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">Day</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))),</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"GET_JSON_OBJECT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"LOCATE"</span><span class="p">:</span> <span class="n">locate_to_strposition</span><span class="p">,</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"LOG"</span><span class="p">:</span> <span class="p">(</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <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">Log</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Ln</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="p">),</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="s2">"MONTH"</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">Month</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="s2">"PERCENTILE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="s2">"PERCENTILE_APPROX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="s2">"COLLECT_SET"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="s2">"SIZE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="s2">"SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="s2">"TO_DATE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">),</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"UNIX_TIMESTAMP"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"YEAR"</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">Year</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="p">}</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">(</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="p">),</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="p">}</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="p">),</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="s2">"DATE_SUB"</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-223"><a href="#L-223"><span class="linenos">223</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-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</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">1</span><span class="p">),</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="p">),</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="p">),</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">)(</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="p">[</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <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-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="p">]</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="p">),</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"DAY"</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">Day</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))),</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="s2">"GET_JSON_OBJECT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="s2">"LOCATE"</span><span class="p">:</span> <span class="n">locate_to_strposition</span><span class="p">,</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="s2">"LOG"</span><span class="p">:</span> <span class="p">(</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <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">Log</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Ln</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="p">),</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> +</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="s2">"MONTH"</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">Month</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="s2">"PERCENTILE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="s2">"PERCENTILE_APPROX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"COLLECT_SET"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"SIZE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"TO_DATE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">),</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"UNIX_TIMESTAMP"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"YEAR"</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">Year</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="p">}</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">(</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="p">),</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="p">}</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> </span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> </span><span id="L-267"><a href="#L-267"><span class="linenos">267</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> </span><span id="L-268"><a href="#L-268"><span class="linenos">268</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> </span><span id="L-269"><a href="#L-269"><span class="linenos">269</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">"BINARY"</span><span class="p">,</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="p">}</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">_property_sql</span><span class="p">,</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_LIST"</span><span class="p">),</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SIZE"</span><span class="p">),</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort</span><span class="p">,</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</span><span class="p">:</span> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_add_date_sql</span><span class="p">,</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS STRING), </span><span class="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"STORED AS </span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">:</span> <span class="n">_index_sql</span><span class="p">,</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">:</span> <span class="n">_unnest_to_explode_sql</span><span class="p">,</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE"</span><span class="p">),</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE_APPROX"</span><span class="p">),</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"RLIKE"</span><span class="p">),</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT"</span><span class="p">),</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</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-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_SET"</span><span class="p">),</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</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="sa">f</span><span class="s2">"SPLIT(</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">, CONCAT('</span><span class="se">\\\\</span><span class="s2">Q', </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time</span><span class="p">,</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">:</span> <span class="n">_str_to_unix</span><span class="p">,</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"USING </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-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_time_to_str</span><span class="p">,</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS STRING), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_to_date_sql</span><span class="p">,</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="s2">"FROM_UNIXTIME"</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="n">_time_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="p">),</span> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITIONED BY </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-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</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="sa">f</span><span class="s2">"ROW FORMAT SERDE </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-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</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">properties</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">),</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FORMAT_NUMBER"</span><span class="p">),</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LastDateOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LAST_DAY"</span><span class="p">),</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="p">}</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="p">}</span> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">):</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="n">properties</span><span class="p">,</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="p">)</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> -</span><span id="L-346"><a href="#L-346"><span class="linenos">346</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><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="p">):</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</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-270"><a href="#L-270"><span class="linenos">270</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-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="p">}</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">_property_sql</span><span class="p">,</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SIZE"</span><span class="p">),</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort</span><span class="p">,</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</span><span class="p">:</span> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_add_date_sql</span><span class="p">,</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS STRING), </span><span class="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"STORED AS </span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">:</span> <span class="n">_index_sql</span><span class="p">,</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">:</span> <span class="n">_unnest_to_explode_sql</span><span class="p">,</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE"</span><span class="p">),</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE_APPROX"</span><span class="p">),</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"RLIKE"</span><span class="p">),</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT"</span><span class="p">),</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</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-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_SET"</span><span class="p">),</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</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="sa">f</span><span class="s2">"SPLIT(</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">, CONCAT('</span><span class="se">\\\\</span><span class="s2">Q', </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time</span><span class="p">,</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">:</span> <span class="n">_str_to_unix</span><span class="p">,</span> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"USING </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-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_time_to_str</span><span class="p">,</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS STRING), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_to_date_sql</span><span class="p">,</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="s2">"FROM_UNIXTIME"</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="n">_time_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="p">),</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITIONED BY </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-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</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="sa">f</span><span class="s2">"ROW FORMAT SERDE </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-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</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">properties</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">),</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FORMAT_NUMBER"</span><span class="p">),</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LastDateOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LAST_DAY"</span><span class="p">),</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="p">}</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="p">}</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="k">def</span> <span class="nf">arrayagg_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">ArrayAgg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">,</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="p">)</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> +</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="n">properties</span><span class="p">,</span> +</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="p">)</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="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-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="p">):</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> +</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-361"><a href="#L-361"><span class="linenos">361</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> @@ -452,226 +462,229 @@ </div> <a class="headerlink" href="#Hive"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hive-136"><a href="#Hive-136"><span class="linenos">136</span></a><span class="k">class</span> <span class="nc">Hive</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="Hive-137"><a href="#Hive-137"><span class="linenos">137</span></a> <span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Hive-138"><a href="#Hive-138"><span class="linenos">138</span></a> -</span><span id="Hive-139"><a href="#Hive-139"><span class="linenos">139</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-140"><a href="#Hive-140"><span class="linenos">140</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="Hive-141"><a href="#Hive-141"><span class="linenos">141</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="Hive-142"><a href="#Hive-142"><span class="linenos">142</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="Hive-143"><a href="#Hive-143"><span class="linenos">143</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="Hive-144"><a href="#Hive-144"><span class="linenos">144</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="Hive-145"><a href="#Hive-145"><span class="linenos">145</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="Hive-146"><a href="#Hive-146"><span class="linenos">146</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="Hive-147"><a href="#Hive-147"><span class="linenos">147</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="Hive-148"><a href="#Hive-148"><span class="linenos">148</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="Hive-149"><a href="#Hive-149"><span class="linenos">149</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> -</span><span id="Hive-150"><a href="#Hive-150"><span class="linenos">150</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-151"><a href="#Hive-151"><span class="linenos">151</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-152"><a href="#Hive-152"><span class="linenos">152</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="Hive-153"><a href="#Hive-153"><span class="linenos">153</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> -</span><span id="Hive-154"><a href="#Hive-154"><span class="linenos">154</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="Hive-155"><a href="#Hive-155"><span class="linenos">155</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> -</span><span id="Hive-156"><a href="#Hive-156"><span class="linenos">156</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="Hive-157"><a href="#Hive-157"><span class="linenos">157</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> -</span><span id="Hive-158"><a href="#Hive-158"><span class="linenos">158</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="Hive-159"><a href="#Hive-159"><span class="linenos">159</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> -</span><span id="Hive-160"><a href="#Hive-160"><span class="linenos">160</span></a> <span class="s2">"SSSSSS"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-161"><a href="#Hive-161"><span class="linenos">161</span></a> <span class="s2">"a"</span><span class="p">:</span> <span class="s2">"%p"</span><span class="p">,</span> -</span><span id="Hive-162"><a href="#Hive-162"><span class="linenos">162</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> -</span><span id="Hive-163"><a href="#Hive-163"><span class="linenos">163</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%-j"</span><span class="p">,</span> -</span><span id="Hive-164"><a href="#Hive-164"><span class="linenos">164</span></a> <span class="s2">"E"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-165"><a href="#Hive-165"><span class="linenos">165</span></a> <span class="s2">"EE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-166"><a href="#Hive-166"><span class="linenos">166</span></a> <span class="s2">"EEE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-167"><a href="#Hive-167"><span class="linenos">167</span></a> <span class="s2">"EEEE"</span><span class="p">:</span> <span class="s2">"%A"</span><span class="p">,</span> -</span><span id="Hive-168"><a href="#Hive-168"><span class="linenos">168</span></a> <span class="p">}</span> -</span><span id="Hive-169"><a href="#Hive-169"><span class="linenos">169</span></a> -</span><span id="Hive-170"><a href="#Hive-170"><span class="linenos">170</span></a> <span class="n">date_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd'"</span> -</span><span id="Hive-171"><a href="#Hive-171"><span class="linenos">171</span></a> <span class="n">dateint_format</span> <span class="o">=</span> <span class="s2">"'yyyyMMdd'"</span> -</span><span id="Hive-172"><a href="#Hive-172"><span class="linenos">172</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd HH:mm:ss'"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive-140"><a href="#Hive-140"><span class="linenos">140</span></a><span class="k">class</span> <span class="nc">Hive</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="Hive-141"><a href="#Hive-141"><span class="linenos">141</span></a> <span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Hive-142"><a href="#Hive-142"><span class="linenos">142</span></a> +</span><span id="Hive-143"><a href="#Hive-143"><span class="linenos">143</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-144"><a href="#Hive-144"><span class="linenos">144</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="Hive-145"><a href="#Hive-145"><span class="linenos">145</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="Hive-146"><a href="#Hive-146"><span class="linenos">146</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="Hive-147"><a href="#Hive-147"><span class="linenos">147</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="Hive-148"><a href="#Hive-148"><span class="linenos">148</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="Hive-149"><a href="#Hive-149"><span class="linenos">149</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="Hive-150"><a href="#Hive-150"><span class="linenos">150</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="Hive-151"><a href="#Hive-151"><span class="linenos">151</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="Hive-152"><a href="#Hive-152"><span class="linenos">152</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="Hive-153"><a href="#Hive-153"><span class="linenos">153</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> +</span><span id="Hive-154"><a href="#Hive-154"><span class="linenos">154</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-155"><a href="#Hive-155"><span class="linenos">155</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-156"><a href="#Hive-156"><span class="linenos">156</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="Hive-157"><a href="#Hive-157"><span class="linenos">157</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> +</span><span id="Hive-158"><a href="#Hive-158"><span class="linenos">158</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="Hive-159"><a href="#Hive-159"><span class="linenos">159</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> +</span><span id="Hive-160"><a href="#Hive-160"><span class="linenos">160</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="Hive-161"><a href="#Hive-161"><span class="linenos">161</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> +</span><span id="Hive-162"><a href="#Hive-162"><span class="linenos">162</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="Hive-163"><a href="#Hive-163"><span class="linenos">163</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> +</span><span id="Hive-164"><a href="#Hive-164"><span class="linenos">164</span></a> <span class="s2">"SSSSSS"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-165"><a href="#Hive-165"><span class="linenos">165</span></a> <span class="s2">"a"</span><span class="p">:</span> <span class="s2">"%p"</span><span class="p">,</span> +</span><span id="Hive-166"><a href="#Hive-166"><span class="linenos">166</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> +</span><span id="Hive-167"><a href="#Hive-167"><span class="linenos">167</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%-j"</span><span class="p">,</span> +</span><span id="Hive-168"><a href="#Hive-168"><span class="linenos">168</span></a> <span class="s2">"E"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-169"><a href="#Hive-169"><span class="linenos">169</span></a> <span class="s2">"EE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-170"><a href="#Hive-170"><span class="linenos">170</span></a> <span class="s2">"EEE"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-171"><a href="#Hive-171"><span class="linenos">171</span></a> <span class="s2">"EEEE"</span><span class="p">:</span> <span class="s2">"%A"</span><span class="p">,</span> +</span><span id="Hive-172"><a href="#Hive-172"><span class="linenos">172</span></a> <span class="p">}</span> </span><span id="Hive-173"><a href="#Hive-173"><span class="linenos">173</span></a> -</span><span id="Hive-174"><a href="#Hive-174"><span class="linenos">174</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Hive-175"><a href="#Hive-175"><span class="linenos">175</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> -</span><span id="Hive-176"><a href="#Hive-176"><span class="linenos">176</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"`"</span><span class="p">]</span> -</span><span id="Hive-177"><a href="#Hive-177"><span class="linenos">177</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><span id="Hive-178"><a href="#Hive-178"><span class="linenos">178</span></a> <span class="n">ENCODE</span> <span class="o">=</span> <span class="s2">"utf-8"</span> -</span><span id="Hive-179"><a href="#Hive-179"><span class="linenos">179</span></a> -</span><span id="Hive-180"><a href="#Hive-180"><span class="linenos">180</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-181"><a href="#Hive-181"><span class="linenos">181</span></a> <span class="o">**</span><span class="n">tokens</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="Hive-182"><a href="#Hive-182"><span class="linenos">182</span></a> <span class="s2">"ADD ARCHIVE"</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="Hive-183"><a href="#Hive-183"><span class="linenos">183</span></a> <span class="s2">"ADD ARCHIVES"</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="Hive-184"><a href="#Hive-184"><span class="linenos">184</span></a> <span class="s2">"ADD FILE"</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="Hive-185"><a href="#Hive-185"><span class="linenos">185</span></a> <span class="s2">"ADD FILES"</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="Hive-186"><a href="#Hive-186"><span class="linenos">186</span></a> <span class="s2">"ADD JAR"</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="Hive-187"><a href="#Hive-187"><span class="linenos">187</span></a> <span class="s2">"ADD JARS"</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="Hive-188"><a href="#Hive-188"><span class="linenos">188</span></a> <span class="s2">"MSCK REPAIR"</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="Hive-189"><a href="#Hive-189"><span class="linenos">189</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERDE_PROPERTIES</span><span class="p">,</span> -</span><span id="Hive-190"><a href="#Hive-190"><span class="linenos">190</span></a> <span class="p">}</span> -</span><span id="Hive-191"><a href="#Hive-191"><span class="linenos">191</span></a> -</span><span id="Hive-192"><a href="#Hive-192"><span class="linenos">192</span></a> <span class="n">NUMERIC_LITERALS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-193"><a href="#Hive-193"><span class="linenos">193</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="s2">"BIGINT"</span><span class="p">,</span> -</span><span id="Hive-194"><a href="#Hive-194"><span class="linenos">194</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> -</span><span id="Hive-195"><a href="#Hive-195"><span class="linenos">195</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"TINYINT"</span><span class="p">,</span> -</span><span id="Hive-196"><a href="#Hive-196"><span class="linenos">196</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"DOUBLE"</span><span class="p">,</span> -</span><span id="Hive-197"><a href="#Hive-197"><span class="linenos">197</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"FLOAT"</span><span class="p">,</span> -</span><span id="Hive-198"><a href="#Hive-198"><span class="linenos">198</span></a> <span class="s2">"BD"</span><span class="p">:</span> <span class="s2">"DECIMAL"</span><span class="p">,</span> -</span><span id="Hive-199"><a href="#Hive-199"><span class="linenos">199</span></a> <span class="p">}</span> -</span><span id="Hive-200"><a href="#Hive-200"><span class="linenos">200</span></a> -</span><span id="Hive-201"><a href="#Hive-201"><span class="linenos">201</span></a> <span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Hive-202"><a href="#Hive-202"><span class="linenos">202</span></a> -</span><span id="Hive-203"><a href="#Hive-203"><span class="linenos">203</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="Hive-204"><a href="#Hive-204"><span class="linenos">204</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Hive-205"><a href="#Hive-205"><span class="linenos">205</span></a> -</span><span id="Hive-206"><a href="#Hive-206"><span class="linenos">206</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-207"><a href="#Hive-207"><span class="linenos">207</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive-208"><a href="#Hive-208"><span class="linenos">208</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-209"><a href="#Hive-209"><span class="linenos">209</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-210"><a href="#Hive-210"><span class="linenos">210</span></a> <span class="s2">"DATE_ADD"</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="Hive-211"><a href="#Hive-211"><span class="linenos">211</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="Hive-212"><a href="#Hive-212"><span class="linenos">212</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="Hive-213"><a href="#Hive-213"><span class="linenos">213</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> -</span><span id="Hive-214"><a href="#Hive-214"><span class="linenos">214</span></a> <span class="p">),</span> -</span><span id="Hive-215"><a href="#Hive-215"><span class="linenos">215</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="Hive-216"><a href="#Hive-216"><span class="linenos">216</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> -</span><span id="Hive-217"><a href="#Hive-217"><span class="linenos">217</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> +</span><span id="Hive-174"><a href="#Hive-174"><span class="linenos">174</span></a> <span class="n">date_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd'"</span> +</span><span id="Hive-175"><a href="#Hive-175"><span class="linenos">175</span></a> <span class="n">dateint_format</span> <span class="o">=</span> <span class="s2">"'yyyyMMdd'"</span> +</span><span id="Hive-176"><a href="#Hive-176"><span class="linenos">176</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-MM-dd HH:mm:ss'"</span> +</span><span id="Hive-177"><a href="#Hive-177"><span class="linenos">177</span></a> +</span><span id="Hive-178"><a href="#Hive-178"><span class="linenos">178</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Hive-179"><a href="#Hive-179"><span class="linenos">179</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> +</span><span id="Hive-180"><a href="#Hive-180"><span class="linenos">180</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"`"</span><span class="p">]</span> +</span><span id="Hive-181"><a href="#Hive-181"><span class="linenos">181</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><span id="Hive-182"><a href="#Hive-182"><span class="linenos">182</span></a> <span class="n">ENCODE</span> <span class="o">=</span> <span class="s2">"utf-8"</span> +</span><span id="Hive-183"><a href="#Hive-183"><span class="linenos">183</span></a> +</span><span id="Hive-184"><a href="#Hive-184"><span class="linenos">184</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-185"><a href="#Hive-185"><span class="linenos">185</span></a> <span class="o">**</span><span class="n">tokens</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="Hive-186"><a href="#Hive-186"><span class="linenos">186</span></a> <span class="s2">"ADD ARCHIVE"</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="Hive-187"><a href="#Hive-187"><span class="linenos">187</span></a> <span class="s2">"ADD ARCHIVES"</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="Hive-188"><a href="#Hive-188"><span class="linenos">188</span></a> <span class="s2">"ADD FILE"</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="Hive-189"><a href="#Hive-189"><span class="linenos">189</span></a> <span class="s2">"ADD FILES"</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="Hive-190"><a href="#Hive-190"><span class="linenos">190</span></a> <span class="s2">"ADD JAR"</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="Hive-191"><a href="#Hive-191"><span class="linenos">191</span></a> <span class="s2">"ADD JARS"</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="Hive-192"><a href="#Hive-192"><span class="linenos">192</span></a> <span class="s2">"MSCK REPAIR"</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="Hive-193"><a href="#Hive-193"><span class="linenos">193</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERDE_PROPERTIES</span><span class="p">,</span> +</span><span id="Hive-194"><a href="#Hive-194"><span class="linenos">194</span></a> <span class="p">}</span> +</span><span id="Hive-195"><a href="#Hive-195"><span class="linenos">195</span></a> +</span><span id="Hive-196"><a href="#Hive-196"><span class="linenos">196</span></a> <span class="n">NUMERIC_LITERALS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-197"><a href="#Hive-197"><span class="linenos">197</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="s2">"BIGINT"</span><span class="p">,</span> +</span><span id="Hive-198"><a href="#Hive-198"><span class="linenos">198</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> +</span><span id="Hive-199"><a href="#Hive-199"><span class="linenos">199</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"TINYINT"</span><span class="p">,</span> +</span><span id="Hive-200"><a href="#Hive-200"><span class="linenos">200</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"DOUBLE"</span><span class="p">,</span> +</span><span id="Hive-201"><a href="#Hive-201"><span class="linenos">201</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"FLOAT"</span><span class="p">,</span> +</span><span id="Hive-202"><a href="#Hive-202"><span class="linenos">202</span></a> <span class="s2">"BD"</span><span class="p">:</span> <span class="s2">"DECIMAL"</span><span class="p">,</span> +</span><span id="Hive-203"><a href="#Hive-203"><span class="linenos">203</span></a> <span class="p">}</span> +</span><span id="Hive-204"><a href="#Hive-204"><span class="linenos">204</span></a> +</span><span id="Hive-205"><a href="#Hive-205"><span class="linenos">205</span></a> <span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Hive-206"><a href="#Hive-206"><span class="linenos">206</span></a> +</span><span id="Hive-207"><a href="#Hive-207"><span class="linenos">207</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="Hive-208"><a href="#Hive-208"><span class="linenos">208</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Hive-209"><a href="#Hive-209"><span class="linenos">209</span></a> +</span><span id="Hive-210"><a href="#Hive-210"><span class="linenos">210</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-211"><a href="#Hive-211"><span class="linenos">211</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive-212"><a href="#Hive-212"><span class="linenos">212</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-213"><a href="#Hive-213"><span class="linenos">213</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-214"><a href="#Hive-214"><span class="linenos">214</span></a> <span class="s2">"DATE_ADD"</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="Hive-215"><a href="#Hive-215"><span class="linenos">215</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="Hive-216"><a href="#Hive-216"><span class="linenos">216</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="Hive-217"><a href="#Hive-217"><span class="linenos">217</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> </span><span id="Hive-218"><a href="#Hive-218"><span class="linenos">218</span></a> <span class="p">),</span> -</span><span id="Hive-219"><a href="#Hive-219"><span class="linenos">219</span></a> <span class="s2">"DATE_SUB"</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="Hive-220"><a href="#Hive-220"><span class="linenos">220</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="Hive-221"><a href="#Hive-221"><span class="linenos">221</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span> -</span><span id="Hive-222"><a href="#Hive-222"><span class="linenos">222</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">1</span><span class="p">),</span> -</span><span id="Hive-223"><a href="#Hive-223"><span class="linenos">223</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> -</span><span id="Hive-224"><a href="#Hive-224"><span class="linenos">224</span></a> <span class="p">),</span> -</span><span id="Hive-225"><a href="#Hive-225"><span class="linenos">225</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> -</span><span id="Hive-226"><a href="#Hive-226"><span class="linenos">226</span></a> <span class="p">),</span> -</span><span id="Hive-227"><a href="#Hive-227"><span class="linenos">227</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">)(</span> -</span><span id="Hive-228"><a href="#Hive-228"><span class="linenos">228</span></a> <span class="p">[</span> -</span><span id="Hive-229"><a href="#Hive-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> -</span><span id="Hive-230"><a href="#Hive-230"><span class="linenos">230</span></a> <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="Hive-231"><a href="#Hive-231"><span class="linenos">231</span></a> <span class="p">]</span> -</span><span id="Hive-232"><a href="#Hive-232"><span class="linenos">232</span></a> <span class="p">),</span> -</span><span id="Hive-233"><a href="#Hive-233"><span class="linenos">233</span></a> <span class="s2">"DAY"</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">Day</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))),</span> -</span><span id="Hive-234"><a href="#Hive-234"><span class="linenos">234</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> -</span><span id="Hive-235"><a href="#Hive-235"><span class="linenos">235</span></a> <span class="s2">"GET_JSON_OBJECT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-236"><a href="#Hive-236"><span class="linenos">236</span></a> <span class="s2">"LOCATE"</span><span class="p">:</span> <span class="n">locate_to_strposition</span><span class="p">,</span> -</span><span id="Hive-237"><a href="#Hive-237"><span class="linenos">237</span></a> <span class="s2">"LOG"</span><span class="p">:</span> <span class="p">(</span> -</span><span id="Hive-238"><a href="#Hive-238"><span class="linenos">238</span></a> <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">Log</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="Hive-239"><a href="#Hive-239"><span class="linenos">239</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> -</span><span id="Hive-240"><a href="#Hive-240"><span class="linenos">240</span></a> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Ln</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="Hive-241"><a href="#Hive-241"><span class="linenos">241</span></a> <span class="p">),</span> -</span><span id="Hive-242"><a href="#Hive-242"><span class="linenos">242</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="Hive-243"><a href="#Hive-243"><span class="linenos">243</span></a> <span class="s2">"MONTH"</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">Month</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> -</span><span id="Hive-244"><a href="#Hive-244"><span class="linenos">244</span></a> <span class="s2">"PERCENTILE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-245"><a href="#Hive-245"><span class="linenos">245</span></a> <span class="s2">"PERCENTILE_APPROX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-246"><a href="#Hive-246"><span class="linenos">246</span></a> <span class="s2">"COLLECT_SET"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-247"><a href="#Hive-247"><span class="linenos">247</span></a> <span class="s2">"SIZE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-248"><a href="#Hive-248"><span class="linenos">248</span></a> <span class="s2">"SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive-249"><a href="#Hive-249"><span class="linenos">249</span></a> <span class="s2">"TO_DATE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">),</span> -</span><span id="Hive-250"><a href="#Hive-250"><span class="linenos">250</span></a> <span class="s2">"UNIX_TIMESTAMP"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> -</span><span id="Hive-251"><a href="#Hive-251"><span class="linenos">251</span></a> <span class="s2">"YEAR"</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">Year</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> -</span><span id="Hive-252"><a href="#Hive-252"><span class="linenos">252</span></a> <span class="p">}</span> -</span><span id="Hive-253"><a href="#Hive-253"><span class="linenos">253</span></a> -</span><span id="Hive-254"><a href="#Hive-254"><span class="linenos">254</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-255"><a href="#Hive-255"><span class="linenos">255</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive-256"><a href="#Hive-256"><span class="linenos">256</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">(</span> -</span><span id="Hive-257"><a href="#Hive-257"><span class="linenos">257</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> -</span><span id="Hive-258"><a href="#Hive-258"><span class="linenos">258</span></a> <span class="p">),</span> -</span><span id="Hive-259"><a href="#Hive-259"><span class="linenos">259</span></a> <span class="p">}</span> -</span><span id="Hive-260"><a href="#Hive-260"><span class="linenos">260</span></a> -</span><span id="Hive-261"><a href="#Hive-261"><span class="linenos">261</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Hive-262"><a href="#Hive-262"><span class="linenos">262</span></a> -</span><span id="Hive-263"><a href="#Hive-263"><span class="linenos">263</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Hive-264"><a href="#Hive-264"><span class="linenos">264</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Hive-265"><a href="#Hive-265"><span class="linenos">265</span></a> +</span><span id="Hive-219"><a href="#Hive-219"><span class="linenos">219</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Hive-220"><a href="#Hive-220"><span class="linenos">220</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> +</span><span id="Hive-221"><a href="#Hive-221"><span class="linenos">221</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> +</span><span id="Hive-222"><a href="#Hive-222"><span class="linenos">222</span></a> <span class="p">),</span> +</span><span id="Hive-223"><a href="#Hive-223"><span class="linenos">223</span></a> <span class="s2">"DATE_SUB"</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="Hive-224"><a href="#Hive-224"><span class="linenos">224</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="Hive-225"><a href="#Hive-225"><span class="linenos">225</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span> +</span><span id="Hive-226"><a href="#Hive-226"><span class="linenos">226</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">1</span><span class="p">),</span> +</span><span id="Hive-227"><a href="#Hive-227"><span class="linenos">227</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> +</span><span id="Hive-228"><a href="#Hive-228"><span class="linenos">228</span></a> <span class="p">),</span> +</span><span id="Hive-229"><a href="#Hive-229"><span class="linenos">229</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> +</span><span id="Hive-230"><a href="#Hive-230"><span class="linenos">230</span></a> <span class="p">),</span> +</span><span id="Hive-231"><a href="#Hive-231"><span class="linenos">231</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">)(</span> +</span><span id="Hive-232"><a href="#Hive-232"><span class="linenos">232</span></a> <span class="p">[</span> +</span><span id="Hive-233"><a href="#Hive-233"><span class="linenos">233</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> +</span><span id="Hive-234"><a href="#Hive-234"><span class="linenos">234</span></a> <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="Hive-235"><a href="#Hive-235"><span class="linenos">235</span></a> <span class="p">]</span> +</span><span id="Hive-236"><a href="#Hive-236"><span class="linenos">236</span></a> <span class="p">),</span> +</span><span id="Hive-237"><a href="#Hive-237"><span class="linenos">237</span></a> <span class="s2">"DAY"</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">Day</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))),</span> +</span><span id="Hive-238"><a href="#Hive-238"><span class="linenos">238</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> +</span><span id="Hive-239"><a href="#Hive-239"><span class="linenos">239</span></a> <span class="s2">"GET_JSON_OBJECT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-240"><a href="#Hive-240"><span class="linenos">240</span></a> <span class="s2">"LOCATE"</span><span class="p">:</span> <span class="n">locate_to_strposition</span><span class="p">,</span> +</span><span id="Hive-241"><a href="#Hive-241"><span class="linenos">241</span></a> <span class="s2">"LOG"</span><span class="p">:</span> <span class="p">(</span> +</span><span id="Hive-242"><a href="#Hive-242"><span class="linenos">242</span></a> <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">Log</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Hive-243"><a href="#Hive-243"><span class="linenos">243</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> +</span><span id="Hive-244"><a href="#Hive-244"><span class="linenos">244</span></a> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Ln</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Hive-245"><a href="#Hive-245"><span class="linenos">245</span></a> <span class="p">),</span> +</span><span id="Hive-246"><a href="#Hive-246"><span class="linenos">246</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> +</span><span id="Hive-247"><a href="#Hive-247"><span class="linenos">247</span></a> <span class="s2">"MONTH"</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">Month</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> +</span><span id="Hive-248"><a href="#Hive-248"><span class="linenos">248</span></a> <span class="s2">"PERCENTILE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-249"><a href="#Hive-249"><span class="linenos">249</span></a> <span class="s2">"PERCENTILE_APPROX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-250"><a href="#Hive-250"><span class="linenos">250</span></a> <span class="s2">"COLLECT_SET"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-251"><a href="#Hive-251"><span class="linenos">251</span></a> <span class="s2">"SIZE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-252"><a href="#Hive-252"><span class="linenos">252</span></a> <span class="s2">"SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive-253"><a href="#Hive-253"><span class="linenos">253</span></a> <span class="s2">"TO_DATE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">),</span> +</span><span id="Hive-254"><a href="#Hive-254"><span class="linenos">254</span></a> <span class="s2">"UNIX_TIMESTAMP"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> +</span><span id="Hive-255"><a href="#Hive-255"><span class="linenos">255</span></a> <span class="s2">"YEAR"</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">Year</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> +</span><span id="Hive-256"><a href="#Hive-256"><span class="linenos">256</span></a> <span class="p">}</span> +</span><span id="Hive-257"><a href="#Hive-257"><span class="linenos">257</span></a> +</span><span id="Hive-258"><a href="#Hive-258"><span class="linenos">258</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-259"><a href="#Hive-259"><span class="linenos">259</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive-260"><a href="#Hive-260"><span class="linenos">260</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">(</span> +</span><span id="Hive-261"><a href="#Hive-261"><span class="linenos">261</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> +</span><span id="Hive-262"><a href="#Hive-262"><span class="linenos">262</span></a> <span class="p">),</span> +</span><span id="Hive-263"><a href="#Hive-263"><span class="linenos">263</span></a> <span class="p">}</span> +</span><span id="Hive-264"><a href="#Hive-264"><span class="linenos">264</span></a> +</span><span id="Hive-265"><a href="#Hive-265"><span class="linenos">265</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> </span><span id="Hive-266"><a href="#Hive-266"><span class="linenos">266</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Hive-267"><a href="#Hive-267"><span class="linenos">267</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> </span><span id="Hive-268"><a href="#Hive-268"><span class="linenos">268</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> </span><span id="Hive-269"><a href="#Hive-269"><span class="linenos">269</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> </span><span id="Hive-270"><a href="#Hive-270"><span class="linenos">270</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">"BINARY"</span><span class="p">,</span> -</span><span id="Hive-271"><a href="#Hive-271"><span class="linenos">271</span></a> <span class="p">}</span> -</span><span id="Hive-272"><a href="#Hive-272"><span class="linenos">272</span></a> -</span><span id="Hive-273"><a href="#Hive-273"><span class="linenos">273</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-274"><a href="#Hive-274"><span class="linenos">274</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive-275"><a href="#Hive-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive-276"><a href="#Hive-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">_property_sql</span><span class="p">,</span> -</span><span id="Hive-277"><a href="#Hive-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="Hive-278"><a href="#Hive-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_LIST"</span><span class="p">),</span> -</span><span id="Hive-279"><a href="#Hive-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> -</span><span id="Hive-280"><a href="#Hive-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SIZE"</span><span class="p">),</span> -</span><span id="Hive-281"><a href="#Hive-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort</span><span class="p">,</span> -</span><span id="Hive-282"><a href="#Hive-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</span><span class="p">:</span> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> -</span><span id="Hive-283"><a href="#Hive-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_add_date_sql</span><span class="p">,</span> -</span><span id="Hive-284"><a href="#Hive-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> -</span><span id="Hive-285"><a href="#Hive-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="Hive-286"><a href="#Hive-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="Hive-287"><a href="#Hive-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS STRING), </span><span class="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Hive-288"><a href="#Hive-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"STORED AS </span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive-289"><a href="#Hive-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="Hive-290"><a href="#Hive-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">:</span> <span class="n">_index_sql</span><span class="p">,</span> -</span><span id="Hive-291"><a href="#Hive-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="Hive-292"><a href="#Hive-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">:</span> <span class="n">_unnest_to_explode_sql</span><span class="p">,</span> -</span><span id="Hive-293"><a href="#Hive-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> -</span><span id="Hive-294"><a href="#Hive-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> -</span><span id="Hive-295"><a href="#Hive-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="Hive-296"><a href="#Hive-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Hive-297"><a href="#Hive-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="Hive-298"><a href="#Hive-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="Hive-299"><a href="#Hive-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE"</span><span class="p">),</span> -</span><span id="Hive-300"><a href="#Hive-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE_APPROX"</span><span class="p">),</span> -</span><span id="Hive-301"><a href="#Hive-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"RLIKE"</span><span class="p">),</span> -</span><span id="Hive-302"><a href="#Hive-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT"</span><span class="p">),</span> -</span><span id="Hive-303"><a href="#Hive-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="Hive-304"><a href="#Hive-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</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="Hive-305"><a href="#Hive-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_SET"</span><span class="p">),</span> -</span><span id="Hive-306"><a href="#Hive-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</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="sa">f</span><span class="s2">"SPLIT(</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">, CONCAT('</span><span class="se">\\\\</span><span class="s2">Q', </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="Hive-307"><a href="#Hive-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="Hive-308"><a href="#Hive-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> -</span><span id="Hive-309"><a href="#Hive-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time</span><span class="p">,</span> -</span><span id="Hive-310"><a href="#Hive-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">:</span> <span class="n">_str_to_unix</span><span class="p">,</span> -</span><span id="Hive-311"><a href="#Hive-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="Hive-312"><a href="#Hive-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"USING </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="Hive-313"><a href="#Hive-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="Hive-314"><a href="#Hive-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Hive-315"><a href="#Hive-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Hive-316"><a href="#Hive-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_time_to_str</span><span class="p">,</span> -</span><span id="Hive-317"><a href="#Hive-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Hive-318"><a href="#Hive-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS STRING), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="Hive-319"><a href="#Hive-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Hive-320"><a href="#Hive-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_to_date_sql</span><span class="p">,</span> -</span><span id="Hive-321"><a href="#Hive-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="Hive-322"><a href="#Hive-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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><span id="Hive-323"><a href="#Hive-323"><span class="linenos">323</span></a> <span class="s2">"FROM_UNIXTIME"</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="n">_time_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> -</span><span id="Hive-324"><a href="#Hive-324"><span class="linenos">324</span></a> <span class="p">),</span> -</span><span id="Hive-325"><a href="#Hive-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="Hive-326"><a href="#Hive-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="Hive-327"><a href="#Hive-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITIONED BY </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="Hive-328"><a href="#Hive-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</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="sa">f</span><span class="s2">"ROW FORMAT SERDE </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="Hive-329"><a href="#Hive-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</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">properties</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">),</span> -</span><span id="Hive-330"><a href="#Hive-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FORMAT_NUMBER"</span><span class="p">),</span> -</span><span id="Hive-331"><a href="#Hive-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LastDateOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LAST_DAY"</span><span class="p">),</span> -</span><span id="Hive-332"><a href="#Hive-332"><span class="linenos">332</span></a> <span class="p">}</span> -</span><span id="Hive-333"><a href="#Hive-333"><span class="linenos">333</span></a> -</span><span id="Hive-334"><a href="#Hive-334"><span class="linenos">334</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive-335"><a href="#Hive-335"><span class="linenos">335</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive-336"><a href="#Hive-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Hive-337"><a href="#Hive-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Hive-338"><a href="#Hive-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Hive-339"><a href="#Hive-339"><span class="linenos">339</span></a> <span class="p">}</span> -</span><span id="Hive-340"><a href="#Hive-340"><span class="linenos">340</span></a> -</span><span id="Hive-341"><a href="#Hive-341"><span class="linenos">341</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">):</span> -</span><span id="Hive-342"><a href="#Hive-342"><span class="linenos">342</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Hive-343"><a href="#Hive-343"><span class="linenos">343</span></a> <span class="n">properties</span><span class="p">,</span> -</span><span id="Hive-344"><a href="#Hive-344"><span class="linenos">344</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> -</span><span id="Hive-345"><a href="#Hive-345"><span class="linenos">345</span></a> <span class="p">)</span> -</span><span id="Hive-346"><a href="#Hive-346"><span class="linenos">346</span></a> -</span><span id="Hive-347"><a href="#Hive-347"><span class="linenos">347</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><span id="Hive-348"><a href="#Hive-348"><span class="linenos">348</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Hive-349"><a href="#Hive-349"><span class="linenos">349</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> -</span><span id="Hive-350"><a href="#Hive-350"><span class="linenos">350</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="Hive-351"><a href="#Hive-351"><span class="linenos">351</span></a> <span class="p">):</span> -</span><span id="Hive-352"><a href="#Hive-352"><span class="linenos">352</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> -</span><span id="Hive-353"><a href="#Hive-353"><span class="linenos">353</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> -</span><span id="Hive-354"><a href="#Hive-354"><span class="linenos">354</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Hive-355"><a href="#Hive-355"><span class="linenos">355</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="Hive-271"><a href="#Hive-271"><span class="linenos">271</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="Hive-272"><a href="#Hive-272"><span class="linenos">272</span></a> <span class="p">}</span> +</span><span id="Hive-273"><a href="#Hive-273"><span class="linenos">273</span></a> +</span><span id="Hive-274"><a href="#Hive-274"><span class="linenos">274</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-275"><a href="#Hive-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive-276"><a href="#Hive-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive-277"><a href="#Hive-277"><span class="linenos">277</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive-278"><a href="#Hive-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">_property_sql</span><span class="p">,</span> +</span><span id="Hive-279"><a href="#Hive-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="Hive-280"><a href="#Hive-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> +</span><span id="Hive-281"><a href="#Hive-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SIZE"</span><span class="p">),</span> +</span><span id="Hive-282"><a href="#Hive-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort</span><span class="p">,</span> +</span><span id="Hive-283"><a href="#Hive-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</span><span class="p">:</span> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> +</span><span id="Hive-284"><a href="#Hive-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_add_date_sql</span><span class="p">,</span> +</span><span id="Hive-285"><a href="#Hive-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> +</span><span id="Hive-286"><a href="#Hive-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="Hive-287"><a href="#Hive-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="Hive-288"><a href="#Hive-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS STRING), </span><span class="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Hive-289"><a href="#Hive-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"STORED AS </span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive-290"><a href="#Hive-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="Hive-291"><a href="#Hive-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">:</span> <span class="n">_index_sql</span><span class="p">,</span> +</span><span id="Hive-292"><a href="#Hive-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="Hive-293"><a href="#Hive-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">:</span> <span class="n">_unnest_to_explode_sql</span><span class="p">,</span> +</span><span id="Hive-294"><a href="#Hive-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> +</span><span id="Hive-295"><a href="#Hive-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> +</span><span id="Hive-296"><a href="#Hive-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="Hive-297"><a href="#Hive-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="Hive-298"><a href="#Hive-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="Hive-299"><a href="#Hive-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="Hive-300"><a href="#Hive-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE"</span><span class="p">),</span> +</span><span id="Hive-301"><a href="#Hive-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE_APPROX"</span><span class="p">),</span> +</span><span id="Hive-302"><a href="#Hive-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"RLIKE"</span><span class="p">),</span> +</span><span id="Hive-303"><a href="#Hive-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT"</span><span class="p">),</span> +</span><span id="Hive-304"><a href="#Hive-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="Hive-305"><a href="#Hive-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</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="Hive-306"><a href="#Hive-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_SET"</span><span class="p">),</span> +</span><span id="Hive-307"><a href="#Hive-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</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="sa">f</span><span class="s2">"SPLIT(</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">, CONCAT('</span><span class="se">\\\\</span><span class="s2">Q', </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="Hive-308"><a href="#Hive-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="Hive-309"><a href="#Hive-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> +</span><span id="Hive-310"><a href="#Hive-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time</span><span class="p">,</span> +</span><span id="Hive-311"><a href="#Hive-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">:</span> <span class="n">_str_to_unix</span><span class="p">,</span> +</span><span id="Hive-312"><a href="#Hive-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="Hive-313"><a href="#Hive-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"USING </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="Hive-314"><a href="#Hive-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="Hive-315"><a href="#Hive-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Hive-316"><a href="#Hive-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Hive-317"><a href="#Hive-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_time_to_str</span><span class="p">,</span> +</span><span id="Hive-318"><a href="#Hive-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Hive-319"><a href="#Hive-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS STRING), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="Hive-320"><a href="#Hive-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Hive-321"><a href="#Hive-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_to_date_sql</span><span class="p">,</span> +</span><span id="Hive-322"><a href="#Hive-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="Hive-323"><a href="#Hive-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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><span id="Hive-324"><a href="#Hive-324"><span class="linenos">324</span></a> <span class="s2">"FROM_UNIXTIME"</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="n">_time_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> +</span><span id="Hive-325"><a href="#Hive-325"><span class="linenos">325</span></a> <span class="p">),</span> +</span><span id="Hive-326"><a href="#Hive-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="Hive-327"><a href="#Hive-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="Hive-328"><a href="#Hive-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITIONED BY </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="Hive-329"><a href="#Hive-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</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="sa">f</span><span class="s2">"ROW FORMAT SERDE </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="Hive-330"><a href="#Hive-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</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">properties</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">),</span> +</span><span id="Hive-331"><a href="#Hive-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FORMAT_NUMBER"</span><span class="p">),</span> +</span><span id="Hive-332"><a href="#Hive-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LastDateOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LAST_DAY"</span><span class="p">),</span> +</span><span id="Hive-333"><a href="#Hive-333"><span class="linenos">333</span></a> <span class="p">}</span> +</span><span id="Hive-334"><a href="#Hive-334"><span class="linenos">334</span></a> +</span><span id="Hive-335"><a href="#Hive-335"><span class="linenos">335</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive-336"><a href="#Hive-336"><span class="linenos">336</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive-337"><a href="#Hive-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Hive-338"><a href="#Hive-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Hive-339"><a href="#Hive-339"><span class="linenos">339</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Hive-340"><a href="#Hive-340"><span class="linenos">340</span></a> <span class="p">}</span> +</span><span id="Hive-341"><a href="#Hive-341"><span class="linenos">341</span></a> +</span><span id="Hive-342"><a href="#Hive-342"><span class="linenos">342</span></a> <span class="k">def</span> <span class="nf">arrayagg_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">ArrayAgg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Hive-343"><a href="#Hive-343"><span class="linenos">343</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="Hive-344"><a href="#Hive-344"><span class="linenos">344</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">,</span> +</span><span id="Hive-345"><a href="#Hive-345"><span class="linenos">345</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="Hive-346"><a href="#Hive-346"><span class="linenos">346</span></a> <span class="p">)</span> +</span><span id="Hive-347"><a href="#Hive-347"><span class="linenos">347</span></a> +</span><span id="Hive-348"><a href="#Hive-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Hive-349"><a href="#Hive-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Hive-350"><a href="#Hive-350"><span class="linenos">350</span></a> <span class="n">properties</span><span class="p">,</span> +</span><span id="Hive-351"><a href="#Hive-351"><span class="linenos">351</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> +</span><span id="Hive-352"><a href="#Hive-352"><span class="linenos">352</span></a> <span class="p">)</span> +</span><span id="Hive-353"><a href="#Hive-353"><span class="linenos">353</span></a> +</span><span id="Hive-354"><a href="#Hive-354"><span class="linenos">354</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="Hive-355"><a href="#Hive-355"><span class="linenos">355</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Hive-356"><a href="#Hive-356"><span class="linenos">356</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> +</span><span id="Hive-357"><a href="#Hive-357"><span class="linenos">357</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Hive-358"><a href="#Hive-358"><span class="linenos">358</span></a> <span class="p">):</span> +</span><span id="Hive-359"><a href="#Hive-359"><span class="linenos">359</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> +</span><span id="Hive-360"><a href="#Hive-360"><span class="linenos">360</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> +</span><span id="Hive-361"><a href="#Hive-361"><span class="linenos">361</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Hive-362"><a href="#Hive-362"><span class="linenos">362</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> @@ -687,6 +700,7 @@ <dd id="Hive.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Hive.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Hive.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Hive.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Hive.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Hive.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -705,34 +719,34 @@ </div> <a class="headerlink" href="#Hive.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Tokenizer-174"><a href="#Hive.Tokenizer-174"><span class="linenos">174</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Hive.Tokenizer-175"><a href="#Hive.Tokenizer-175"><span class="linenos">175</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> -</span><span id="Hive.Tokenizer-176"><a href="#Hive.Tokenizer-176"><span class="linenos">176</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"`"</span><span class="p">]</span> -</span><span id="Hive.Tokenizer-177"><a href="#Hive.Tokenizer-177"><span class="linenos">177</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><span id="Hive.Tokenizer-178"><a href="#Hive.Tokenizer-178"><span class="linenos">178</span></a> <span class="n">ENCODE</span> <span class="o">=</span> <span class="s2">"utf-8"</span> -</span><span id="Hive.Tokenizer-179"><a href="#Hive.Tokenizer-179"><span class="linenos">179</span></a> -</span><span id="Hive.Tokenizer-180"><a href="#Hive.Tokenizer-180"><span class="linenos">180</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive.Tokenizer-181"><a href="#Hive.Tokenizer-181"><span class="linenos">181</span></a> <span class="o">**</span><span class="n">tokens</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="Hive.Tokenizer-182"><a href="#Hive.Tokenizer-182"><span class="linenos">182</span></a> <span class="s2">"ADD ARCHIVE"</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="Hive.Tokenizer-183"><a href="#Hive.Tokenizer-183"><span class="linenos">183</span></a> <span class="s2">"ADD ARCHIVES"</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="Hive.Tokenizer-184"><a href="#Hive.Tokenizer-184"><span class="linenos">184</span></a> <span class="s2">"ADD FILE"</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="Hive.Tokenizer-185"><a href="#Hive.Tokenizer-185"><span class="linenos">185</span></a> <span class="s2">"ADD FILES"</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="Hive.Tokenizer-186"><a href="#Hive.Tokenizer-186"><span class="linenos">186</span></a> <span class="s2">"ADD JAR"</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="Hive.Tokenizer-187"><a href="#Hive.Tokenizer-187"><span class="linenos">187</span></a> <span class="s2">"ADD JARS"</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="Hive.Tokenizer-188"><a href="#Hive.Tokenizer-188"><span class="linenos">188</span></a> <span class="s2">"MSCK REPAIR"</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="Hive.Tokenizer-189"><a href="#Hive.Tokenizer-189"><span class="linenos">189</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERDE_PROPERTIES</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-190"><a href="#Hive.Tokenizer-190"><span class="linenos">190</span></a> <span class="p">}</span> -</span><span id="Hive.Tokenizer-191"><a href="#Hive.Tokenizer-191"><span class="linenos">191</span></a> -</span><span id="Hive.Tokenizer-192"><a href="#Hive.Tokenizer-192"><span class="linenos">192</span></a> <span class="n">NUMERIC_LITERALS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive.Tokenizer-193"><a href="#Hive.Tokenizer-193"><span class="linenos">193</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="s2">"BIGINT"</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-194"><a href="#Hive.Tokenizer-194"><span class="linenos">194</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-195"><a href="#Hive.Tokenizer-195"><span class="linenos">195</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"TINYINT"</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-196"><a href="#Hive.Tokenizer-196"><span class="linenos">196</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"DOUBLE"</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-197"><a href="#Hive.Tokenizer-197"><span class="linenos">197</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"FLOAT"</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-198"><a href="#Hive.Tokenizer-198"><span class="linenos">198</span></a> <span class="s2">"BD"</span><span class="p">:</span> <span class="s2">"DECIMAL"</span><span class="p">,</span> -</span><span id="Hive.Tokenizer-199"><a href="#Hive.Tokenizer-199"><span class="linenos">199</span></a> <span class="p">}</span> -</span><span id="Hive.Tokenizer-200"><a href="#Hive.Tokenizer-200"><span class="linenos">200</span></a> -</span><span id="Hive.Tokenizer-201"><a href="#Hive.Tokenizer-201"><span class="linenos">201</span></a> <span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Tokenizer-178"><a href="#Hive.Tokenizer-178"><span class="linenos">178</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Hive.Tokenizer-179"><a href="#Hive.Tokenizer-179"><span class="linenos">179</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> +</span><span id="Hive.Tokenizer-180"><a href="#Hive.Tokenizer-180"><span class="linenos">180</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"`"</span><span class="p">]</span> +</span><span id="Hive.Tokenizer-181"><a href="#Hive.Tokenizer-181"><span class="linenos">181</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><span id="Hive.Tokenizer-182"><a href="#Hive.Tokenizer-182"><span class="linenos">182</span></a> <span class="n">ENCODE</span> <span class="o">=</span> <span class="s2">"utf-8"</span> +</span><span id="Hive.Tokenizer-183"><a href="#Hive.Tokenizer-183"><span class="linenos">183</span></a> +</span><span id="Hive.Tokenizer-184"><a href="#Hive.Tokenizer-184"><span class="linenos">184</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive.Tokenizer-185"><a href="#Hive.Tokenizer-185"><span class="linenos">185</span></a> <span class="o">**</span><span class="n">tokens</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="Hive.Tokenizer-186"><a href="#Hive.Tokenizer-186"><span class="linenos">186</span></a> <span class="s2">"ADD ARCHIVE"</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="Hive.Tokenizer-187"><a href="#Hive.Tokenizer-187"><span class="linenos">187</span></a> <span class="s2">"ADD ARCHIVES"</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="Hive.Tokenizer-188"><a href="#Hive.Tokenizer-188"><span class="linenos">188</span></a> <span class="s2">"ADD FILE"</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="Hive.Tokenizer-189"><a href="#Hive.Tokenizer-189"><span class="linenos">189</span></a> <span class="s2">"ADD FILES"</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="Hive.Tokenizer-190"><a href="#Hive.Tokenizer-190"><span class="linenos">190</span></a> <span class="s2">"ADD JAR"</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="Hive.Tokenizer-191"><a href="#Hive.Tokenizer-191"><span class="linenos">191</span></a> <span class="s2">"ADD JARS"</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="Hive.Tokenizer-192"><a href="#Hive.Tokenizer-192"><span class="linenos">192</span></a> <span class="s2">"MSCK REPAIR"</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="Hive.Tokenizer-193"><a href="#Hive.Tokenizer-193"><span class="linenos">193</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERDE_PROPERTIES</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-194"><a href="#Hive.Tokenizer-194"><span class="linenos">194</span></a> <span class="p">}</span> +</span><span id="Hive.Tokenizer-195"><a href="#Hive.Tokenizer-195"><span class="linenos">195</span></a> +</span><span id="Hive.Tokenizer-196"><a href="#Hive.Tokenizer-196"><span class="linenos">196</span></a> <span class="n">NUMERIC_LITERALS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive.Tokenizer-197"><a href="#Hive.Tokenizer-197"><span class="linenos">197</span></a> <span class="s2">"L"</span><span class="p">:</span> <span class="s2">"BIGINT"</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-198"><a href="#Hive.Tokenizer-198"><span class="linenos">198</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-199"><a href="#Hive.Tokenizer-199"><span class="linenos">199</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"TINYINT"</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-200"><a href="#Hive.Tokenizer-200"><span class="linenos">200</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"DOUBLE"</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-201"><a href="#Hive.Tokenizer-201"><span class="linenos">201</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"FLOAT"</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-202"><a href="#Hive.Tokenizer-202"><span class="linenos">202</span></a> <span class="s2">"BD"</span><span class="p">:</span> <span class="s2">"DECIMAL"</span><span class="p">,</span> +</span><span id="Hive.Tokenizer-203"><a href="#Hive.Tokenizer-203"><span class="linenos">203</span></a> <span class="p">}</span> +</span><span id="Hive.Tokenizer-204"><a href="#Hive.Tokenizer-204"><span class="linenos">204</span></a> +</span><span id="Hive.Tokenizer-205"><a href="#Hive.Tokenizer-205"><span class="linenos">205</span></a> <span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -760,65 +774,63 @@ </div> <a class="headerlink" href="#Hive.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Parser-203"><a href="#Hive.Parser-203"><span class="linenos">203</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="Hive.Parser-204"><a href="#Hive.Parser-204"><span class="linenos">204</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Hive.Parser-205"><a href="#Hive.Parser-205"><span class="linenos">205</span></a> -</span><span id="Hive.Parser-206"><a href="#Hive.Parser-206"><span class="linenos">206</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive.Parser-207"><a href="#Hive.Parser-207"><span class="linenos">207</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive.Parser-208"><a href="#Hive.Parser-208"><span class="linenos">208</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-209"><a href="#Hive.Parser-209"><span class="linenos">209</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-210"><a href="#Hive.Parser-210"><span class="linenos">210</span></a> <span class="s2">"DATE_ADD"</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="Hive.Parser-211"><a href="#Hive.Parser-211"><span class="linenos">211</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="Hive.Parser-212"><a href="#Hive.Parser-212"><span class="linenos">212</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="Hive.Parser-213"><a href="#Hive.Parser-213"><span class="linenos">213</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> -</span><span id="Hive.Parser-214"><a href="#Hive.Parser-214"><span class="linenos">214</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-215"><a href="#Hive.Parser-215"><span class="linenos">215</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="Hive.Parser-216"><a href="#Hive.Parser-216"><span class="linenos">216</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> -</span><span id="Hive.Parser-217"><a href="#Hive.Parser-217"><span class="linenos">217</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Parser-207"><a href="#Hive.Parser-207"><span class="linenos">207</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="Hive.Parser-208"><a href="#Hive.Parser-208"><span class="linenos">208</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Hive.Parser-209"><a href="#Hive.Parser-209"><span class="linenos">209</span></a> +</span><span id="Hive.Parser-210"><a href="#Hive.Parser-210"><span class="linenos">210</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive.Parser-211"><a href="#Hive.Parser-211"><span class="linenos">211</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive.Parser-212"><a href="#Hive.Parser-212"><span class="linenos">212</span></a> <span class="s2">"APPROX_COUNT_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-213"><a href="#Hive.Parser-213"><span class="linenos">213</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-214"><a href="#Hive.Parser-214"><span class="linenos">214</span></a> <span class="s2">"DATE_ADD"</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="Hive.Parser-215"><a href="#Hive.Parser-215"><span class="linenos">215</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="Hive.Parser-216"><a href="#Hive.Parser-216"><span class="linenos">216</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="Hive.Parser-217"><a href="#Hive.Parser-217"><span class="linenos">217</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> </span><span id="Hive.Parser-218"><a href="#Hive.Parser-218"><span class="linenos">218</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-219"><a href="#Hive.Parser-219"><span class="linenos">219</span></a> <span class="s2">"DATE_SUB"</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="Hive.Parser-220"><a href="#Hive.Parser-220"><span class="linenos">220</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="Hive.Parser-221"><a href="#Hive.Parser-221"><span class="linenos">221</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span> -</span><span id="Hive.Parser-222"><a href="#Hive.Parser-222"><span class="linenos">222</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">1</span><span class="p">),</span> -</span><span id="Hive.Parser-223"><a href="#Hive.Parser-223"><span class="linenos">223</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> -</span><span id="Hive.Parser-224"><a href="#Hive.Parser-224"><span class="linenos">224</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-225"><a href="#Hive.Parser-225"><span class="linenos">225</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> -</span><span id="Hive.Parser-226"><a href="#Hive.Parser-226"><span class="linenos">226</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-227"><a href="#Hive.Parser-227"><span class="linenos">227</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">)(</span> -</span><span id="Hive.Parser-228"><a href="#Hive.Parser-228"><span class="linenos">228</span></a> <span class="p">[</span> -</span><span id="Hive.Parser-229"><a href="#Hive.Parser-229"><span class="linenos">229</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> -</span><span id="Hive.Parser-230"><a href="#Hive.Parser-230"><span class="linenos">230</span></a> <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="Hive.Parser-231"><a href="#Hive.Parser-231"><span class="linenos">231</span></a> <span class="p">]</span> -</span><span id="Hive.Parser-232"><a href="#Hive.Parser-232"><span class="linenos">232</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-233"><a href="#Hive.Parser-233"><span class="linenos">233</span></a> <span class="s2">"DAY"</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">Day</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))),</span> -</span><span id="Hive.Parser-234"><a href="#Hive.Parser-234"><span class="linenos">234</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> -</span><span id="Hive.Parser-235"><a href="#Hive.Parser-235"><span class="linenos">235</span></a> <span class="s2">"GET_JSON_OBJECT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-236"><a href="#Hive.Parser-236"><span class="linenos">236</span></a> <span class="s2">"LOCATE"</span><span class="p">:</span> <span class="n">locate_to_strposition</span><span class="p">,</span> -</span><span id="Hive.Parser-237"><a href="#Hive.Parser-237"><span class="linenos">237</span></a> <span class="s2">"LOG"</span><span class="p">:</span> <span class="p">(</span> -</span><span id="Hive.Parser-238"><a href="#Hive.Parser-238"><span class="linenos">238</span></a> <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">Log</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="Hive.Parser-239"><a href="#Hive.Parser-239"><span class="linenos">239</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> -</span><span id="Hive.Parser-240"><a href="#Hive.Parser-240"><span class="linenos">240</span></a> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Ln</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="Hive.Parser-241"><a href="#Hive.Parser-241"><span class="linenos">241</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-242"><a href="#Hive.Parser-242"><span class="linenos">242</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="Hive.Parser-243"><a href="#Hive.Parser-243"><span class="linenos">243</span></a> <span class="s2">"MONTH"</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">Month</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> -</span><span id="Hive.Parser-244"><a href="#Hive.Parser-244"><span class="linenos">244</span></a> <span class="s2">"PERCENTILE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-245"><a href="#Hive.Parser-245"><span class="linenos">245</span></a> <span class="s2">"PERCENTILE_APPROX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-246"><a href="#Hive.Parser-246"><span class="linenos">246</span></a> <span class="s2">"COLLECT_SET"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-247"><a href="#Hive.Parser-247"><span class="linenos">247</span></a> <span class="s2">"SIZE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-248"><a href="#Hive.Parser-248"><span class="linenos">248</span></a> <span class="s2">"SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Hive.Parser-249"><a href="#Hive.Parser-249"><span class="linenos">249</span></a> <span class="s2">"TO_DATE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">),</span> -</span><span id="Hive.Parser-250"><a href="#Hive.Parser-250"><span class="linenos">250</span></a> <span class="s2">"UNIX_TIMESTAMP"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> -</span><span id="Hive.Parser-251"><a href="#Hive.Parser-251"><span class="linenos">251</span></a> <span class="s2">"YEAR"</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">Year</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> -</span><span id="Hive.Parser-252"><a href="#Hive.Parser-252"><span class="linenos">252</span></a> <span class="p">}</span> -</span><span id="Hive.Parser-253"><a href="#Hive.Parser-253"><span class="linenos">253</span></a> -</span><span id="Hive.Parser-254"><a href="#Hive.Parser-254"><span class="linenos">254</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive.Parser-255"><a href="#Hive.Parser-255"><span class="linenos">255</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive.Parser-256"><a href="#Hive.Parser-256"><span class="linenos">256</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">(</span> -</span><span id="Hive.Parser-257"><a href="#Hive.Parser-257"><span class="linenos">257</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> -</span><span id="Hive.Parser-258"><a href="#Hive.Parser-258"><span class="linenos">258</span></a> <span class="p">),</span> -</span><span id="Hive.Parser-259"><a href="#Hive.Parser-259"><span class="linenos">259</span></a> <span class="p">}</span> -</span><span id="Hive.Parser-260"><a href="#Hive.Parser-260"><span class="linenos">260</span></a> -</span><span id="Hive.Parser-261"><a href="#Hive.Parser-261"><span class="linenos">261</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Hive.Parser-219"><a href="#Hive.Parser-219"><span class="linenos">219</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Hive.Parser-220"><a href="#Hive.Parser-220"><span class="linenos">220</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> +</span><span id="Hive.Parser-221"><a href="#Hive.Parser-221"><span class="linenos">221</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">)),</span> +</span><span id="Hive.Parser-222"><a href="#Hive.Parser-222"><span class="linenos">222</span></a> <span class="p">),</span> +</span><span id="Hive.Parser-223"><a href="#Hive.Parser-223"><span class="linenos">223</span></a> <span class="s2">"DATE_SUB"</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="Hive.Parser-224"><a href="#Hive.Parser-224"><span class="linenos">224</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="Hive.Parser-225"><a href="#Hive.Parser-225"><span class="linenos">225</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span> +</span><span id="Hive.Parser-226"><a href="#Hive.Parser-226"><span class="linenos">226</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">1</span><span class="p">),</span> +</span><span id="Hive.Parser-227"><a href="#Hive.Parser-227"><span class="linenos">227</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">),</span> +</span><span id="Hive.Parser-228"><a href="#Hive.Parser-228"><span class="linenos">228</span></a> <span class="p">),</span> +</span><span id="Hive.Parser-229"><a href="#Hive.Parser-229"><span class="linenos">229</span></a> <span class="n">unit</span><span class="o">=</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">"DAY"</span><span class="p">),</span> +</span><span id="Hive.Parser-230"><a href="#Hive.Parser-230"><span class="linenos">230</span></a> <span class="p">),</span> +</span><span id="Hive.Parser-231"><a href="#Hive.Parser-231"><span class="linenos">231</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">args</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">)(</span> +</span><span id="Hive.Parser-232"><a href="#Hive.Parser-232"><span class="linenos">232</span></a> <span class="p">[</span> +</span><span id="Hive.Parser-233"><a href="#Hive.Parser-233"><span class="linenos">233</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">)),</span> +</span><span id="Hive.Parser-234"><a href="#Hive.Parser-234"><span class="linenos">234</span></a> <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="Hive.Parser-235"><a href="#Hive.Parser-235"><span class="linenos">235</span></a> <span class="p">]</span> +</span><span id="Hive.Parser-236"><a href="#Hive.Parser-236"><span class="linenos">236</span></a> <span class="p">),</span> +</span><span id="Hive.Parser-237"><a href="#Hive.Parser-237"><span class="linenos">237</span></a> <span class="s2">"DAY"</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">Day</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</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">args</span><span class="p">,</span> <span class="mi">0</span><span class="p">))),</span> +</span><span id="Hive.Parser-238"><a href="#Hive.Parser-238"><span class="linenos">238</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> +</span><span id="Hive.Parser-239"><a href="#Hive.Parser-239"><span class="linenos">239</span></a> <span class="s2">"GET_JSON_OBJECT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-240"><a href="#Hive.Parser-240"><span class="linenos">240</span></a> <span class="s2">"LOCATE"</span><span class="p">:</span> <span class="n">locate_to_strposition</span><span class="p">,</span> +</span><span id="Hive.Parser-241"><a href="#Hive.Parser-241"><span class="linenos">241</span></a> <span class="s2">"LOG"</span><span class="p">:</span> <span class="p">(</span> +</span><span id="Hive.Parser-242"><a href="#Hive.Parser-242"><span class="linenos">242</span></a> <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">Log</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Hive.Parser-243"><a href="#Hive.Parser-243"><span class="linenos">243</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span> +</span><span id="Hive.Parser-244"><a href="#Hive.Parser-244"><span class="linenos">244</span></a> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">Ln</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Hive.Parser-245"><a href="#Hive.Parser-245"><span class="linenos">245</span></a> <span class="p">),</span> +</span><span id="Hive.Parser-246"><a href="#Hive.Parser-246"><span class="linenos">246</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> +</span><span id="Hive.Parser-247"><a href="#Hive.Parser-247"><span class="linenos">247</span></a> <span class="s2">"MONTH"</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">Month</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> +</span><span id="Hive.Parser-248"><a href="#Hive.Parser-248"><span class="linenos">248</span></a> <span class="s2">"PERCENTILE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-249"><a href="#Hive.Parser-249"><span class="linenos">249</span></a> <span class="s2">"PERCENTILE_APPROX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-250"><a href="#Hive.Parser-250"><span class="linenos">250</span></a> <span class="s2">"COLLECT_SET"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-251"><a href="#Hive.Parser-251"><span class="linenos">251</span></a> <span class="s2">"SIZE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-252"><a href="#Hive.Parser-252"><span class="linenos">252</span></a> <span class="s2">"SPLIT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Hive.Parser-253"><a href="#Hive.Parser-253"><span class="linenos">253</span></a> <span class="s2">"TO_DATE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">),</span> +</span><span id="Hive.Parser-254"><a href="#Hive.Parser-254"><span class="linenos">254</span></a> <span class="s2">"UNIX_TIMESTAMP"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">,</span> <span class="s2">"hive"</span><span class="p">,</span> <span class="kc">True</span><span class="p">),</span> +</span><span id="Hive.Parser-255"><a href="#Hive.Parser-255"><span class="linenos">255</span></a> <span class="s2">"YEAR"</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">Year</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)),</span> +</span><span id="Hive.Parser-256"><a href="#Hive.Parser-256"><span class="linenos">256</span></a> <span class="p">}</span> +</span><span id="Hive.Parser-257"><a href="#Hive.Parser-257"><span class="linenos">257</span></a> +</span><span id="Hive.Parser-258"><a href="#Hive.Parser-258"><span class="linenos">258</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive.Parser-259"><a href="#Hive.Parser-259"><span class="linenos">259</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive.Parser-260"><a href="#Hive.Parser-260"><span class="linenos">260</span></a> <span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">(</span> +</span><span id="Hive.Parser-261"><a href="#Hive.Parser-261"><span class="linenos">261</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> +</span><span id="Hive.Parser-262"><a href="#Hive.Parser-262"><span class="linenos">262</span></a> <span class="p">),</span> +</span><span id="Hive.Parser-263"><a href="#Hive.Parser-263"><span class="linenos">263</span></a> <span class="p">}</span> </span></pre></div> @@ -875,99 +887,104 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Hive.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator-263"><a href="#Hive.Generator-263"><span class="linenos">263</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Hive.Generator-264"><a href="#Hive.Generator-264"><span class="linenos">264</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Hive.Generator-265"><a href="#Hive.Generator-265"><span class="linenos">265</span></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator-265"><a href="#Hive.Generator-265"><span class="linenos">265</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> </span><span id="Hive.Generator-266"><a href="#Hive.Generator-266"><span class="linenos">266</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Hive.Generator-267"><a href="#Hive.Generator-267"><span class="linenos">267</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> </span><span id="Hive.Generator-268"><a href="#Hive.Generator-268"><span class="linenos">268</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> </span><span id="Hive.Generator-269"><a href="#Hive.Generator-269"><span class="linenos">269</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> </span><span id="Hive.Generator-270"><a href="#Hive.Generator-270"><span class="linenos">270</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">"BINARY"</span><span class="p">,</span> -</span><span id="Hive.Generator-271"><a href="#Hive.Generator-271"><span class="linenos">271</span></a> <span class="p">}</span> -</span><span id="Hive.Generator-272"><a href="#Hive.Generator-272"><span class="linenos">272</span></a> -</span><span id="Hive.Generator-273"><a href="#Hive.Generator-273"><span class="linenos">273</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive.Generator-274"><a href="#Hive.Generator-274"><span class="linenos">274</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive.Generator-275"><a href="#Hive.Generator-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive.Generator-276"><a href="#Hive.Generator-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">_property_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-277"><a href="#Hive.Generator-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-278"><a href="#Hive.Generator-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_LIST"</span><span class="p">),</span> -</span><span id="Hive.Generator-279"><a href="#Hive.Generator-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> -</span><span id="Hive.Generator-280"><a href="#Hive.Generator-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SIZE"</span><span class="p">),</span> -</span><span id="Hive.Generator-281"><a href="#Hive.Generator-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort</span><span class="p">,</span> -</span><span id="Hive.Generator-282"><a href="#Hive.Generator-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</span><span class="p">:</span> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-283"><a href="#Hive.Generator-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_add_date_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-284"><a href="#Hive.Generator-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-285"><a href="#Hive.Generator-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="Hive.Generator-286"><a href="#Hive.Generator-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="Hive.Generator-287"><a href="#Hive.Generator-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS STRING), </span><span class="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Hive.Generator-288"><a href="#Hive.Generator-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"STORED AS </span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Hive.Generator-289"><a href="#Hive.Generator-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-290"><a href="#Hive.Generator-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">:</span> <span class="n">_index_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-291"><a href="#Hive.Generator-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-292"><a href="#Hive.Generator-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">:</span> <span class="n">_unnest_to_explode_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-293"><a href="#Hive.Generator-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> -</span><span id="Hive.Generator-294"><a href="#Hive.Generator-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> -</span><span id="Hive.Generator-295"><a href="#Hive.Generator-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-296"><a href="#Hive.Generator-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Hive.Generator-297"><a href="#Hive.Generator-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-298"><a href="#Hive.Generator-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-299"><a href="#Hive.Generator-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE"</span><span class="p">),</span> -</span><span id="Hive.Generator-300"><a href="#Hive.Generator-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE_APPROX"</span><span class="p">),</span> -</span><span id="Hive.Generator-301"><a href="#Hive.Generator-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"RLIKE"</span><span class="p">),</span> -</span><span id="Hive.Generator-302"><a href="#Hive.Generator-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT"</span><span class="p">),</span> -</span><span id="Hive.Generator-303"><a href="#Hive.Generator-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-304"><a href="#Hive.Generator-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</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="Hive.Generator-305"><a href="#Hive.Generator-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_SET"</span><span class="p">),</span> -</span><span id="Hive.Generator-306"><a href="#Hive.Generator-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</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="sa">f</span><span class="s2">"SPLIT(</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">, CONCAT('</span><span class="se">\\\\</span><span class="s2">Q', </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="Hive.Generator-307"><a href="#Hive.Generator-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-308"><a href="#Hive.Generator-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> -</span><span id="Hive.Generator-309"><a href="#Hive.Generator-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time</span><span class="p">,</span> -</span><span id="Hive.Generator-310"><a href="#Hive.Generator-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">:</span> <span class="n">_str_to_unix</span><span class="p">,</span> -</span><span id="Hive.Generator-311"><a href="#Hive.Generator-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-312"><a href="#Hive.Generator-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"USING </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="Hive.Generator-313"><a href="#Hive.Generator-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="Hive.Generator-314"><a href="#Hive.Generator-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-315"><a href="#Hive.Generator-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Hive.Generator-316"><a href="#Hive.Generator-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_time_to_str</span><span class="p">,</span> -</span><span id="Hive.Generator-317"><a href="#Hive.Generator-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> -</span><span id="Hive.Generator-318"><a href="#Hive.Generator-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS STRING), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="Hive.Generator-319"><a href="#Hive.Generator-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Hive.Generator-320"><a href="#Hive.Generator-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_to_date_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-321"><a href="#Hive.Generator-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="Hive.Generator-322"><a href="#Hive.Generator-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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><span id="Hive.Generator-323"><a href="#Hive.Generator-323"><span class="linenos">323</span></a> <span class="s2">"FROM_UNIXTIME"</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="n">_time_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> -</span><span id="Hive.Generator-324"><a href="#Hive.Generator-324"><span class="linenos">324</span></a> <span class="p">),</span> -</span><span id="Hive.Generator-325"><a href="#Hive.Generator-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="Hive.Generator-326"><a href="#Hive.Generator-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="Hive.Generator-327"><a href="#Hive.Generator-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITIONED BY </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="Hive.Generator-328"><a href="#Hive.Generator-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</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="sa">f</span><span class="s2">"ROW FORMAT SERDE </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="Hive.Generator-329"><a href="#Hive.Generator-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</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">properties</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">),</span> -</span><span id="Hive.Generator-330"><a href="#Hive.Generator-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FORMAT_NUMBER"</span><span class="p">),</span> -</span><span id="Hive.Generator-331"><a href="#Hive.Generator-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LastDateOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LAST_DAY"</span><span class="p">),</span> -</span><span id="Hive.Generator-332"><a href="#Hive.Generator-332"><span class="linenos">332</span></a> <span class="p">}</span> -</span><span id="Hive.Generator-333"><a href="#Hive.Generator-333"><span class="linenos">333</span></a> -</span><span id="Hive.Generator-334"><a href="#Hive.Generator-334"><span class="linenos">334</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Hive.Generator-335"><a href="#Hive.Generator-335"><span class="linenos">335</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Hive.Generator-336"><a href="#Hive.Generator-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Hive.Generator-337"><a href="#Hive.Generator-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Hive.Generator-338"><a href="#Hive.Generator-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Hive.Generator-339"><a href="#Hive.Generator-339"><span class="linenos">339</span></a> <span class="p">}</span> -</span><span id="Hive.Generator-340"><a href="#Hive.Generator-340"><span class="linenos">340</span></a> -</span><span id="Hive.Generator-341"><a href="#Hive.Generator-341"><span class="linenos">341</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">):</span> -</span><span id="Hive.Generator-342"><a href="#Hive.Generator-342"><span class="linenos">342</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Hive.Generator-343"><a href="#Hive.Generator-343"><span class="linenos">343</span></a> <span class="n">properties</span><span class="p">,</span> -</span><span id="Hive.Generator-344"><a href="#Hive.Generator-344"><span class="linenos">344</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> -</span><span id="Hive.Generator-345"><a href="#Hive.Generator-345"><span class="linenos">345</span></a> <span class="p">)</span> -</span><span id="Hive.Generator-346"><a href="#Hive.Generator-346"><span class="linenos">346</span></a> -</span><span id="Hive.Generator-347"><a href="#Hive.Generator-347"><span class="linenos">347</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><span id="Hive.Generator-348"><a href="#Hive.Generator-348"><span class="linenos">348</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Hive.Generator-349"><a href="#Hive.Generator-349"><span class="linenos">349</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> -</span><span id="Hive.Generator-350"><a href="#Hive.Generator-350"><span class="linenos">350</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="Hive.Generator-351"><a href="#Hive.Generator-351"><span class="linenos">351</span></a> <span class="p">):</span> -</span><span id="Hive.Generator-352"><a href="#Hive.Generator-352"><span class="linenos">352</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> -</span><span id="Hive.Generator-353"><a href="#Hive.Generator-353"><span class="linenos">353</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> -</span><span id="Hive.Generator-354"><a href="#Hive.Generator-354"><span class="linenos">354</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Hive.Generator-355"><a href="#Hive.Generator-355"><span class="linenos">355</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="Hive.Generator-271"><a href="#Hive.Generator-271"><span class="linenos">271</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="Hive.Generator-272"><a href="#Hive.Generator-272"><span class="linenos">272</span></a> <span class="p">}</span> +</span><span id="Hive.Generator-273"><a href="#Hive.Generator-273"><span class="linenos">273</span></a> +</span><span id="Hive.Generator-274"><a href="#Hive.Generator-274"><span class="linenos">274</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive.Generator-275"><a href="#Hive.Generator-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive.Generator-276"><a href="#Hive.Generator-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive.Generator-277"><a href="#Hive.Generator-277"><span class="linenos">277</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive.Generator-278"><a href="#Hive.Generator-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">_property_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-279"><a href="#Hive.Generator-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">approx_count_distinct_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-280"><a href="#Hive.Generator-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> +</span><span id="Hive.Generator-281"><a href="#Hive.Generator-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SIZE"</span><span class="p">),</span> +</span><span id="Hive.Generator-282"><a href="#Hive.Generator-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySort</span><span class="p">:</span> <span class="n">_array_sort</span><span class="p">,</span> +</span><span id="Hive.Generator-283"><a href="#Hive.Generator-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</span><span class="p">:</span> <span class="n">no_recursive_cte_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-284"><a href="#Hive.Generator-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_add_date_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-285"><a href="#Hive.Generator-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-286"><a href="#Hive.Generator-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="Hive.Generator-287"><a href="#Hive.Generator-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="Hive.Generator-288"><a href="#Hive.Generator-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"TO_DATE(CAST(</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"> AS STRING), </span><span class="si">{</span><span class="n">Hive</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Hive.Generator-289"><a href="#Hive.Generator-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"STORED AS </span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Hive.Generator-290"><a href="#Hive.Generator-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-291"><a href="#Hive.Generator-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">:</span> <span class="n">_index_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-292"><a href="#Hive.Generator-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-293"><a href="#Hive.Generator-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">:</span> <span class="n">_unnest_to_explode_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-294"><a href="#Hive.Generator-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> +</span><span id="Hive.Generator-295"><a href="#Hive.Generator-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GET_JSON_OBJECT"</span><span class="p">),</span> +</span><span id="Hive.Generator-296"><a href="#Hive.Generator-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-297"><a href="#Hive.Generator-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="Hive.Generator-298"><a href="#Hive.Generator-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</span><span class="p">:</span> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-299"><a href="#Hive.Generator-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">:</span> <span class="n">create_with_partitions_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-300"><a href="#Hive.Generator-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE"</span><span class="p">),</span> +</span><span id="Hive.Generator-301"><a href="#Hive.Generator-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"PERCENTILE_APPROX"</span><span class="p">),</span> +</span><span id="Hive.Generator-302"><a href="#Hive.Generator-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"RLIKE"</span><span class="p">),</span> +</span><span id="Hive.Generator-303"><a href="#Hive.Generator-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpSplit</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SPLIT"</span><span class="p">),</span> +</span><span id="Hive.Generator-304"><a href="#Hive.Generator-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-305"><a href="#Hive.Generator-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</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="Hive.Generator-306"><a href="#Hive.Generator-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetAgg</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"COLLECT_SET"</span><span class="p">),</span> +</span><span id="Hive.Generator-307"><a href="#Hive.Generator-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Split</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="sa">f</span><span class="s2">"SPLIT(</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">, CONCAT('</span><span class="se">\\\\</span><span class="s2">Q', </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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="Hive.Generator-308"><a href="#Hive.Generator-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-309"><a href="#Hive.Generator-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date</span><span class="p">,</span> +</span><span id="Hive.Generator-310"><a href="#Hive.Generator-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time</span><span class="p">,</span> +</span><span id="Hive.Generator-311"><a href="#Hive.Generator-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</span><span class="p">:</span> <span class="n">_str_to_unix</span><span class="p">,</span> +</span><span id="Hive.Generator-312"><a href="#Hive.Generator-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-313"><a href="#Hive.Generator-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"USING </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="Hive.Generator-314"><a href="#Hive.Generator-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="Hive.Generator-315"><a href="#Hive.Generator-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-316"><a href="#Hive.Generator-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Hive.Generator-317"><a href="#Hive.Generator-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_time_to_str</span><span class="p">,</span> +</span><span id="Hive.Generator-318"><a href="#Hive.Generator-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"UNIX_TIMESTAMP"</span><span class="p">),</span> +</span><span id="Hive.Generator-319"><a href="#Hive.Generator-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS STRING), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="Hive.Generator-320"><a href="#Hive.Generator-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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="sa">f</span><span class="s2">"DATE_ADD(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Hive.Generator-321"><a href="#Hive.Generator-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_to_date_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-322"><a href="#Hive.Generator-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="Hive.Generator-323"><a href="#Hive.Generator-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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><span id="Hive.Generator-324"><a href="#Hive.Generator-324"><span class="linenos">324</span></a> <span class="s2">"FROM_UNIXTIME"</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="n">_time_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> +</span><span id="Hive.Generator-325"><a href="#Hive.Generator-325"><span class="linenos">325</span></a> <span class="p">),</span> +</span><span id="Hive.Generator-326"><a href="#Hive.Generator-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="Hive.Generator-327"><a href="#Hive.Generator-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="Hive.Generator-328"><a href="#Hive.Generator-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITIONED BY </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="Hive.Generator-329"><a href="#Hive.Generator-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</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="sa">f</span><span class="s2">"ROW FORMAT SERDE </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="Hive.Generator-330"><a href="#Hive.Generator-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</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">properties</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WITH SERDEPROPERTIES"</span><span class="p">),</span> +</span><span id="Hive.Generator-331"><a href="#Hive.Generator-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FORMAT_NUMBER"</span><span class="p">),</span> +</span><span id="Hive.Generator-332"><a href="#Hive.Generator-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LastDateOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LAST_DAY"</span><span class="p">),</span> +</span><span id="Hive.Generator-333"><a href="#Hive.Generator-333"><span class="linenos">333</span></a> <span class="p">}</span> +</span><span id="Hive.Generator-334"><a href="#Hive.Generator-334"><span class="linenos">334</span></a> +</span><span id="Hive.Generator-335"><a href="#Hive.Generator-335"><span class="linenos">335</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Hive.Generator-336"><a href="#Hive.Generator-336"><span class="linenos">336</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Hive.Generator-337"><a href="#Hive.Generator-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Hive.Generator-338"><a href="#Hive.Generator-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Hive.Generator-339"><a href="#Hive.Generator-339"><span class="linenos">339</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Hive.Generator-340"><a href="#Hive.Generator-340"><span class="linenos">340</span></a> <span class="p">}</span> +</span><span id="Hive.Generator-341"><a href="#Hive.Generator-341"><span class="linenos">341</span></a> +</span><span id="Hive.Generator-342"><a href="#Hive.Generator-342"><span class="linenos">342</span></a> <span class="k">def</span> <span class="nf">arrayagg_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">ArrayAgg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Hive.Generator-343"><a href="#Hive.Generator-343"><span class="linenos">343</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="Hive.Generator-344"><a href="#Hive.Generator-344"><span class="linenos">344</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">,</span> +</span><span id="Hive.Generator-345"><a href="#Hive.Generator-345"><span class="linenos">345</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="Hive.Generator-346"><a href="#Hive.Generator-346"><span class="linenos">346</span></a> <span class="p">)</span> +</span><span id="Hive.Generator-347"><a href="#Hive.Generator-347"><span class="linenos">347</span></a> +</span><span id="Hive.Generator-348"><a href="#Hive.Generator-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Hive.Generator-349"><a href="#Hive.Generator-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Hive.Generator-350"><a href="#Hive.Generator-350"><span class="linenos">350</span></a> <span class="n">properties</span><span class="p">,</span> +</span><span id="Hive.Generator-351"><a href="#Hive.Generator-351"><span class="linenos">351</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> +</span><span id="Hive.Generator-352"><a href="#Hive.Generator-352"><span class="linenos">352</span></a> <span class="p">)</span> +</span><span id="Hive.Generator-353"><a href="#Hive.Generator-353"><span class="linenos">353</span></a> +</span><span id="Hive.Generator-354"><a href="#Hive.Generator-354"><span class="linenos">354</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="Hive.Generator-355"><a href="#Hive.Generator-355"><span class="linenos">355</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Hive.Generator-356"><a href="#Hive.Generator-356"><span class="linenos">356</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> +</span><span id="Hive.Generator-357"><a href="#Hive.Generator-357"><span class="linenos">357</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Hive.Generator-358"><a href="#Hive.Generator-358"><span class="linenos">358</span></a> <span class="p">):</span> +</span><span id="Hive.Generator-359"><a href="#Hive.Generator-359"><span class="linenos">359</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> +</span><span id="Hive.Generator-360"><a href="#Hive.Generator-360"><span class="linenos">360</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> +</span><span id="Hive.Generator-361"><a href="#Hive.Generator-361"><span class="linenos">361</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Hive.Generator-362"><a href="#Hive.Generator-362"><span class="linenos">362</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> @@ -984,8 +1001,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -1016,22 +1032,44 @@ Default: True</li> </div> + <div id="Hive.Generator.arrayagg_sql" class="classattr"> + <input id="Hive.Generator.arrayagg_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">arrayagg_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#ArrayAgg">sqlglot.expressions.ArrayAgg</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="Hive.Generator.arrayagg_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Hive.Generator.arrayagg_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator.arrayagg_sql-342"><a href="#Hive.Generator.arrayagg_sql-342"><span class="linenos">342</span></a> <span class="k">def</span> <span class="nf">arrayagg_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">ArrayAgg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Hive.Generator.arrayagg_sql-343"><a href="#Hive.Generator.arrayagg_sql-343"><span class="linenos">343</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="Hive.Generator.arrayagg_sql-344"><a href="#Hive.Generator.arrayagg_sql-344"><span class="linenos">344</span></a> <span class="s2">"COLLECT_LIST"</span><span class="p">,</span> +</span><span id="Hive.Generator.arrayagg_sql-345"><a href="#Hive.Generator.arrayagg_sql-345"><span class="linenos">345</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">)</span> <span class="k">else</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="Hive.Generator.arrayagg_sql-346"><a href="#Hive.Generator.arrayagg_sql-346"><span class="linenos">346</span></a> <span class="p">)</span> +</span></pre></div> + + + + + </div> <div id="Hive.Generator.with_properties" class="classattr"> <input id="Hive.Generator.with_properties-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> <span class="def">def</span> - <span class="name">with_properties</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">properties</span></span><span class="return-annotation">):</span></span> + <span class="name">with_properties</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="n">properties</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Properties">sqlglot.expressions.Properties</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> <label class="view-source-button" for="Hive.Generator.with_properties-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#Hive.Generator.with_properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator.with_properties-341"><a href="#Hive.Generator.with_properties-341"><span class="linenos">341</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">):</span> -</span><span id="Hive.Generator.with_properties-342"><a href="#Hive.Generator.with_properties-342"><span class="linenos">342</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Hive.Generator.with_properties-343"><a href="#Hive.Generator.with_properties-343"><span class="linenos">343</span></a> <span class="n">properties</span><span class="p">,</span> -</span><span id="Hive.Generator.with_properties-344"><a href="#Hive.Generator.with_properties-344"><span class="linenos">344</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> -</span><span id="Hive.Generator.with_properties-345"><a href="#Hive.Generator.with_properties-345"><span class="linenos">345</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator.with_properties-348"><a href="#Hive.Generator.with_properties-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Hive.Generator.with_properties-349"><a href="#Hive.Generator.with_properties-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Hive.Generator.with_properties-350"><a href="#Hive.Generator.with_properties-350"><span class="linenos">350</span></a> <span class="n">properties</span><span class="p">,</span> +</span><span id="Hive.Generator.with_properties-351"><a href="#Hive.Generator.with_properties-351"><span class="linenos">351</span></a> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"TBLPROPERTIES"</span><span class="p">),</span> +</span><span id="Hive.Generator.with_properties-352"><a href="#Hive.Generator.with_properties-352"><span class="linenos">352</span></a> <span class="p">)</span> </span></pre></div> @@ -1043,21 +1081,21 @@ Default: True</li> <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><span class="return-annotation">):</span></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="Hive.Generator.datatype_sql-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#Hive.Generator.datatype_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator.datatype_sql-347"><a href="#Hive.Generator.datatype_sql-347"><span class="linenos">347</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><span id="Hive.Generator.datatype_sql-348"><a href="#Hive.Generator.datatype_sql-348"><span class="linenos">348</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Hive.Generator.datatype_sql-349"><a href="#Hive.Generator.datatype_sql-349"><span class="linenos">349</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> -</span><span id="Hive.Generator.datatype_sql-350"><a href="#Hive.Generator.datatype_sql-350"><span class="linenos">350</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="Hive.Generator.datatype_sql-351"><a href="#Hive.Generator.datatype_sql-351"><span class="linenos">351</span></a> <span class="p">):</span> -</span><span id="Hive.Generator.datatype_sql-352"><a href="#Hive.Generator.datatype_sql-352"><span class="linenos">352</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> -</span><span id="Hive.Generator.datatype_sql-353"><a href="#Hive.Generator.datatype_sql-353"><span class="linenos">353</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> -</span><span id="Hive.Generator.datatype_sql-354"><a href="#Hive.Generator.datatype_sql-354"><span class="linenos">354</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Hive.Generator.datatype_sql-355"><a href="#Hive.Generator.datatype_sql-355"><span class="linenos">355</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hive.Generator.datatype_sql-354"><a href="#Hive.Generator.datatype_sql-354"><span class="linenos">354</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="Hive.Generator.datatype_sql-355"><a href="#Hive.Generator.datatype_sql-355"><span class="linenos">355</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Hive.Generator.datatype_sql-356"><a href="#Hive.Generator.datatype_sql-356"><span class="linenos">356</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</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 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">NVARCHAR</span><span class="p">)</span> +</span><span id="Hive.Generator.datatype_sql-357"><a href="#Hive.Generator.datatype_sql-357"><span class="linenos">357</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Hive.Generator.datatype_sql-358"><a href="#Hive.Generator.datatype_sql-358"><span class="linenos">358</span></a> <span class="p">):</span> +</span><span id="Hive.Generator.datatype_sql-359"><a href="#Hive.Generator.datatype_sql-359"><span class="linenos">359</span></a> <span class="n">expression</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">"text"</span><span class="p">)</span> +</span><span id="Hive.Generator.datatype_sql-360"><a href="#Hive.Generator.datatype_sql-360"><span class="linenos">360</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> +</span><span id="Hive.Generator.datatype_sql-361"><a href="#Hive.Generator.datatype_sql-361"><span class="linenos">361</span></a> <span class="n">expression</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="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Hive.Generator.datatype_sql-362"><a href="#Hive.Generator.datatype_sql-362"><span class="linenos">362</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> @@ -1152,6 +1190,8 @@ Default: True</li> <dd id="Hive.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Hive.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Hive.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Hive.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Hive.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Hive.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Hive.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Hive.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1236,7 +1276,6 @@ Default: True</li> <dd id="Hive.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Hive.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Hive.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Hive.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Hive.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Hive.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Hive.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1278,6 +1317,7 @@ Default: True</li> <dd id="Hive.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Hive.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Hive.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Hive.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/mysql.html b/docs/sqlglot/dialects/mysql.html index 254f450..e3b8c55 100644 --- a/docs/sqlglot/dialects/mysql.html +++ b/docs/sqlglot/dialects/mysql.html @@ -51,12 +51,6 @@ <li> <a class="function" href="#MySQL.Generator.show_sql">show_sql</a> </li> - <li> - <a class="function" href="#MySQL.Generator.setitem_sql">setitem_sql</a> - </li> - <li> - <a class="function" href="#MySQL.Generator.set_sql">set_sql</a> - </li> </ul> </li> @@ -265,7 +259,7 @@ </span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"@@"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">,</span> </span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="p">}</span> </span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">}</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">}</span> </span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> </span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> </span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">}</span> <span class="c1"># type: ignore</span> @@ -299,334 +293,263 @@ </span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</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_show</span><span class="p">(),</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</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_set</span><span class="p">(),</span> -</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="p">}</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">SHOW_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"BINARY LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="s2">"MASTER LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="s2">"BINLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINLOG EVENTS"</span><span class="p">),</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="s2">"CHARSET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="s2">"COLLATION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLLATION"</span><span class="p">),</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="s2">"FULL COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="s2">"CREATE DATABASE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE DATABASE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="s2">"CREATE EVENT"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE EVENT"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="s2">"CREATE FUNCTION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE FUNCTION"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="s2">"CREATE PROCEDURE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE PROCEDURE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="s2">"CREATE TABLE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TABLE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="s2">"CREATE TRIGGER"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TRIGGER"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"CREATE VIEW"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE VIEW"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"DATABASES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"DATABASES"</span><span class="p">),</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"STORAGE ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="s2">"ERRORS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ERRORS"</span><span class="p">),</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="s2">"EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"EVENTS"</span><span class="p">),</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="s2">"FUNCTION CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="s2">"FUNCTION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION STATUS"</span><span class="p">),</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="s2">"GRANTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"GRANTS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FOR"</span><span class="p">),</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"INDEX"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="s2">"MASTER STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"MASTER STATUS"</span><span class="p">),</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="s2">"OPEN TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"OPEN TABLES"</span><span class="p">),</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="s2">"PLUGINS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PLUGINS"</span><span class="p">),</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="s2">"PROCEDURE CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="s2">"PROCEDURE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE STATUS"</span><span class="p">),</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="s2">"PRIVILEGES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PRIVILEGES"</span><span class="p">),</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"FULL PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">),</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"PROFILE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILE"</span><span class="p">),</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"PROFILES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILES"</span><span class="p">),</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"RELAYLOG EVENTS"</span><span class="p">),</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"REPLICAS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"SLAVE HOSTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"REPLICA STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"SLAVE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"GLOBAL STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"SESSION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">"STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">"TABLE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLE STATUS"</span><span class="p">),</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="s2">"FULL TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="s2">"TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">),</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="s2">"TRIGGERS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TRIGGERS"</span><span class="p">),</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">"GLOBAL VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">"SESSION VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">"VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="s2">"WARNINGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"WARNINGS"</span><span class="p">),</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="p">}</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="s2">"GLOBAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"GLOBAL"</span><span class="p">),</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="s2">"PERSIST"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST"</span><span class="p">),</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="s2">"PERSIST_ONLY"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST_ONLY"</span><span class="p">),</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="s2">"SESSION"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"SESSION"</span><span class="p">),</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="s2">"LOCAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">),</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="s2">"CHARACTER SET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="s2">"CHARSET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="s2">"NAMES"</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_set_item_names</span><span class="p">(),</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="s2">"TRANSACTION"</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_set_transaction</span><span class="p">(),</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="p">}</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">PROFILE_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="s2">"ALL"</span><span class="p">,</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="s2">"BLOCK IO"</span><span class="p">,</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="s2">"CONTEXT SWITCHES"</span><span class="p">,</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="s2">"CPU"</span><span class="p">,</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="s2">"IPC"</span><span class="p">,</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="s2">"MEMORY"</span><span class="p">,</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="s2">"PAGE FAULTS"</span><span class="p">,</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="s2">"SOURCE"</span><span class="p">,</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="s2">"SWAPS"</span><span class="p">,</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="p">}</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">TRANSACTION_CHARACTERISTICS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="s2">"ISOLATION LEVEL REPEATABLE READ"</span><span class="p">,</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="s2">"ISOLATION LEVEL READ COMMITTED"</span><span class="p">,</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="s2">"ISOLATION LEVEL READ UNCOMMITTED"</span><span class="p">,</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="s2">"ISOLATION LEVEL SERIALIZABLE"</span><span class="p">,</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="s2">"READ WRITE"</span><span class="p">,</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="s2">"READ ONLY"</span><span class="p">,</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="p">}</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="k">def</span> <span class="nf">_parse_show_mysql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="k">if</span> <span class="n">target</span><span class="p">:</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="n">target</span><span class="p">)</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"BINLOG EVENTS"</span><span class="p">,</span> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">}:</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"CHANNEL"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</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="n">SHOW_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="s2">"BINARY LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"MASTER LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="s2">"BINLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINLOG EVENTS"</span><span class="p">),</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="s2">"CHARSET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="s2">"COLLATION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLLATION"</span><span class="p">),</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="s2">"FULL COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="s2">"CREATE DATABASE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE DATABASE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="s2">"CREATE EVENT"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE EVENT"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="s2">"CREATE FUNCTION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE FUNCTION"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="s2">"CREATE PROCEDURE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE PROCEDURE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="s2">"CREATE TABLE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TABLE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="s2">"CREATE TRIGGER"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TRIGGER"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="s2">"CREATE VIEW"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE VIEW"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"DATABASES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"DATABASES"</span><span class="p">),</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"STORAGE ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"ERRORS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ERRORS"</span><span class="p">),</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="s2">"EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"EVENTS"</span><span class="p">),</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="s2">"FUNCTION CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="s2">"FUNCTION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION STATUS"</span><span class="p">),</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="s2">"GRANTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"GRANTS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FOR"</span><span class="p">),</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"INDEX"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="s2">"MASTER STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"MASTER STATUS"</span><span class="p">),</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="s2">"OPEN TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"OPEN TABLES"</span><span class="p">),</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="s2">"PLUGINS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PLUGINS"</span><span class="p">),</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="s2">"PROCEDURE CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="s2">"PROCEDURE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE STATUS"</span><span class="p">),</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="s2">"PRIVILEGES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PRIVILEGES"</span><span class="p">),</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="s2">"FULL PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">),</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"PROFILE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILE"</span><span class="p">),</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"PROFILES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILES"</span><span class="p">),</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"RELAYLOG EVENTS"</span><span class="p">),</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"REPLICAS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"SLAVE HOSTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"REPLICA STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"SLAVE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"GLOBAL STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"SESSION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">"TABLE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLE STATUS"</span><span class="p">),</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">"FULL TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="s2">"TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">),</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="s2">"TRIGGERS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TRIGGERS"</span><span class="p">),</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="s2">"GLOBAL VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">"SESSION VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">"VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">"WARNINGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"WARNINGS"</span><span class="p">),</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="p">}</span> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="s2">"PERSIST"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST"</span><span class="p">),</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="s2">"PERSIST_ONLY"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST_ONLY"</span><span class="p">),</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="s2">"CHARACTER SET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="s2">"CHARSET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="s2">"NAMES"</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_set_item_names</span><span class="p">(),</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="p">}</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">PROFILE_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="s2">"ALL"</span><span class="p">,</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="s2">"BLOCK IO"</span><span class="p">,</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="s2">"CONTEXT SWITCHES"</span><span class="p">,</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="s2">"CPU"</span><span class="p">,</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="s2">"IPC"</span><span class="p">,</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="s2">"MEMORY"</span><span class="p">,</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="s2">"PAGE FAULTS"</span><span class="p">,</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="s2">"SOURCE"</span><span class="p">,</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="s2">"SWAPS"</span><span class="p">,</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="p">}</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">def</span> <span class="nf">_parse_show_mysql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="k">if</span> <span class="n">target</span><span class="p">:</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="n">target</span><span class="p">)</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"BINLOG EVENTS"</span><span class="p">,</span> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">}:</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"CHANNEL"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="k">if</span> <span class="n">this</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROFILE_TYPES</span><span class="p">))</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"QUERY"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">types</span><span class="p">,</span> <span class="n">query</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_oldstyle_limit</span><span class="p">()</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MUTEX"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">)</span> <span class="k">else</span> <span class="n">mutex</span> </span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> -</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="k">if</span> <span class="n">this</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROFILE_TYPES</span><span class="p">))</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"QUERY"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">types</span><span class="p">,</span> <span class="n">query</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_oldstyle_limit</span><span class="p">()</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MUTEX"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">)</span> <span class="k">else</span> <span class="n">mutex</span> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</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><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Show</span><span class="p">,</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="n">target</span><span class="o">=</span><span class="n">target_id</span><span class="p">,</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">full</span><span class="o">=</span><span class="n">full</span><span class="p">,</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="n">log</span><span class="o">=</span><span class="n">log</span><span class="p">,</span> -</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> -</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">channel</span><span class="o">=</span><span class="n">channel</span><span class="p">,</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="n">like</span><span class="o">=</span><span class="n">like</span><span class="p">,</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">where</span><span class="o">=</span><span class="n">where</span><span class="p">,</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="n">types</span><span class="o">=</span><span class="n">types</span><span class="p">,</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="p">,</span> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="n">mutex</span><span class="o">=</span><span class="n">mutex</span><span class="p">,</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="p">)</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</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><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Show</span><span class="p">,</span> +</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="n">target</span><span class="o">=</span><span class="n">target_id</span><span class="p">,</span> +</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">full</span><span class="o">=</span><span class="n">full</span><span class="p">,</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">log</span><span class="o">=</span><span class="n">log</span><span class="p">,</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="n">channel</span><span class="o">=</span><span class="n">channel</span><span class="p">,</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">like</span><span class="o">=</span><span class="n">like</span><span class="p">,</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">where</span><span class="o">=</span><span class="n">where</span><span class="p">,</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">types</span><span class="o">=</span><span class="n">types</span><span class="p">,</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="p">,</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="n">mutex</span><span class="o">=</span><span class="n">mutex</span><span class="p">,</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="p">)</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="k">def</span> <span class="nf">_parse_oldstyle_limit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">):</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_charset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> -</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">def</span> <span class="nf">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">):</span> -</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">options</span><span class="p">:</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="o">*</span><span class="n">option</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)):</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">option</span><span class="p">)</span> -</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</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><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="p">)</span> </span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> -</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="k">def</span> <span class="nf">_parse_oldstyle_limit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">):</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> -</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="k">return</span> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> -</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">def</span> <span class="nf">_default_parse_set_item</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item_assignment</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> -</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> -</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"GLOBAL"</span><span class="p">,</span> <span class="s2">"SESSION"</span><span class="p">}</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">):</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_transaction</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"GLOBAL"</span><span class="p">)</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> -</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="n">left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="ow">not</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">EQ</span><span class="p">):</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ="</span><span class="p">)</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="n">right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> -</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> -</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="p">)</span> -</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> -</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="p">)</span> -</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> -</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_charset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> -</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</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="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="p">)</span> -</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> -</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="n">charset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLATE"</span><span class="p">):</span> -</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-416"><a href="#L-416"><span class="linenos">416</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><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">this</span><span class="o">=</span><span class="n">charset</span><span class="p">,</span> -</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="n">collate</span><span class="o">=</span><span class="n">collate</span><span class="p">,</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"NAMES"</span><span class="p">,</span> -</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="p">)</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">charset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLATE"</span><span class="p">):</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos">371</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><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="n">this</span><span class="o">=</span><span class="n">charset</span><span class="p">,</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">collate</span><span class="o">=</span><span class="n">collate</span><span class="p">,</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"NAMES"</span><span class="p">,</span> +</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="p">)</span> +</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> +</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> +</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> +</span><span id="L-385"><a href="#L-385"><span class="linenos">385</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos">388</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-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATEDIFF(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">:</span> <span class="n">_date_trunc_sql</span><span class="p">,</span> +</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</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="sa">f</span><span class="s2">"""GROUP_CONCAT(</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="s2">"this"</span><span class="p">)</span><span class="si">}</span><span class="s2"> SEPARATOR </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="s2">"separator"</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"','"</span><span class="si">}</span><span class="s2">)"""</span><span class="p">,</span> +</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> +</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> +</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">_trim_sql</span><span class="p">,</span> +</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">),</span> +</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</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">not_sql</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">)),</span> +</span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="p">}</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="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">)</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">)</span> +</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">)</span> +</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">)</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> +</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="p">}</span> +</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> +</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="k">def</span> <span class="nf">show_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><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> -</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="k">def</span> <span class="nf">_parse_set_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">)</span> -</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> <span class="n">characteristics</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_CHARACTERISTICS</span><span class="p">)</span> -</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="p">)</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos">428</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><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">characteristics</span><span class="p">,</span> -</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> -</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> -</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="p">)</span> +</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> +</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> +</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> +</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</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="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> +</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> +</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> +</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> </span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> -</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</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="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> -</span><span id="L-443"><a href="#L-443"><span class="linenos">443</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-446"><a href="#L-446"><span class="linenos">446</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-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATEDIFF(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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-450"><a href="#L-450"><span class="linenos">450</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">:</span> <span class="n">_date_trunc_sql</span><span class="p">,</span> -</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> -</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> -</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> -</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</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="sa">f</span><span class="s2">"""GROUP_CONCAT(</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="s2">"this"</span><span class="p">)</span><span class="si">}</span><span class="s2"> SEPARATOR </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="s2">"separator"</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"','"</span><span class="si">}</span><span class="s2">)"""</span><span class="p">,</span> -</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> -</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> -</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">_trim_sql</span><span class="p">,</span> -</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">),</span> -</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</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">not_sql</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">)),</span> -</span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> <span class="p">}</span> -</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a> -</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">)</span> -</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">)</span> -</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">)</span> -</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">)</span> -</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> -</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a> <span class="p">}</span> -</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a> -</span><span id="L-476"><a href="#L-476"><span class="linenos">476</span></a> <span class="k">def</span> <span class="nf">show_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><span id="L-477"><a href="#L-477"><span class="linenos">477</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-478"><a href="#L-478"><span class="linenos">478</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-479"><a href="#L-479"><span class="linenos">479</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-480"><a href="#L-480"><span class="linenos">480</span></a> -</span><span id="L-481"><a href="#L-481"><span class="linenos">481</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> -</span><span id="L-482"><a href="#L-482"><span class="linenos">482</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-483"><a href="#L-483"><span class="linenos">483</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> -</span><span id="L-484"><a href="#L-484"><span class="linenos">484</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-485"><a href="#L-485"><span class="linenos">485</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> -</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a> -</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> -</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a> -</span><span id="L-490"><a href="#L-490"><span class="linenos">490</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> -</span><span id="L-491"><a href="#L-491"><span class="linenos">491</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> -</span><span id="L-492"><a href="#L-492"><span class="linenos">492</span></a> -</span><span id="L-493"><a href="#L-493"><span class="linenos">493</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> -</span><span id="L-494"><a href="#L-494"><span class="linenos">494</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> -</span><span id="L-495"><a href="#L-495"><span class="linenos">495</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> -</span><span id="L-496"><a href="#L-496"><span class="linenos">496</span></a> -</span><span id="L-497"><a href="#L-497"><span class="linenos">497</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="L-498"><a href="#L-498"><span class="linenos">498</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> -</span><span id="L-499"><a href="#L-499"><span class="linenos">499</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> -</span><span id="L-500"><a href="#L-500"><span class="linenos">500</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-501"><a href="#L-501"><span class="linenos">501</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-502"><a href="#L-502"><span class="linenos">502</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a> -</span><span id="L-504"><a href="#L-504"><span class="linenos">504</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> -</span><span id="L-505"><a href="#L-505"><span class="linenos">505</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> -</span><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a> -</span><span id="L-507"><a href="#L-507"><span class="linenos">507</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> -</span><span id="L-508"><a href="#L-508"><span class="linenos">508</span></a> -</span><span id="L-509"><a href="#L-509"><span class="linenos">509</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> -</span><span id="L-510"><a href="#L-510"><span class="linenos">510</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> -</span><span id="L-511"><a href="#L-511"><span class="linenos">511</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-512"><a href="#L-512"><span class="linenos">512</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-513"><a href="#L-513"><span class="linenos">513</span></a> -</span><span id="L-514"><a href="#L-514"><span class="linenos">514</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-515"><a href="#L-515"><span class="linenos">515</span></a> -</span><span id="L-516"><a href="#L-516"><span class="linenos">516</span></a> <span class="k">def</span> <span class="nf">_prefixed_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> -</span><span id="L-517"><a href="#L-517"><span class="linenos">517</span></a> <span class="n">sql</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="n">arg</span><span class="p">)</span> -</span><span id="L-518"><a href="#L-518"><span class="linenos">518</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sql</span><span class="p">:</span> -</span><span id="L-519"><a href="#L-519"><span class="linenos">519</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-520"><a href="#L-520"><span class="linenos">520</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-521"><a href="#L-521"><span class="linenos">521</span></a> -</span><span id="L-522"><a href="#L-522"><span class="linenos">522</span></a> <span class="k">def</span> <span class="nf">_oldstyle_limit_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><span id="L-523"><a href="#L-523"><span class="linenos">523</span></a> <span class="n">limit</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">"limit"</span><span class="p">)</span> -</span><span id="L-524"><a href="#L-524"><span class="linenos">524</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> -</span><span id="L-525"><a href="#L-525"><span class="linenos">525</span></a> <span class="k">if</span> <span class="n">limit</span><span class="p">:</span> -</span><span id="L-526"><a href="#L-526"><span class="linenos">526</span></a> <span class="n">limit_offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">offset</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="n">limit</span> -</span><span id="L-527"><a href="#L-527"><span class="linenos">527</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" LIMIT </span><span class="si">{</span><span class="n">limit_offset</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-528"><a href="#L-528"><span class="linenos">528</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-529"><a href="#L-529"><span class="linenos">529</span></a> -</span><span id="L-530"><a href="#L-530"><span class="linenos">530</span></a> <span class="k">def</span> <span class="nf">setitem_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><span id="L-531"><a href="#L-531"><span class="linenos">531</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="L-532"><a href="#L-532"><span class="linenos">532</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-533"><a href="#L-533"><span class="linenos">533</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-534"><a href="#L-534"><span class="linenos">534</span></a> <span class="n">expressions</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><span id="L-535"><a href="#L-535"><span class="linenos">535</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="L-536"><a href="#L-536"><span class="linenos">536</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-537"><a href="#L-537"><span class="linenos">537</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-538"><a href="#L-538"><span class="linenos">538</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-539"><a href="#L-539"><span class="linenos">539</span></a> -</span><span id="L-540"><a href="#L-540"><span class="linenos">540</span></a> <span class="k">def</span> <span class="nf">set_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><span id="L-541"><a href="#L-541"><span class="linenos">541</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET </span><span class="si">{</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="si">}</span><span class="s2">"</span> +</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> +</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> +</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> +</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> +</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> +</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</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="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> +</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> +</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> +</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a> +</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> +</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> +</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> +</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> +</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> <span class="k">def</span> <span class="nf">_prefixed_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> +</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> <span class="n">sql</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="n">arg</span><span class="p">)</span> +</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sql</span><span class="p">:</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> +</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a> <span class="k">def</span> <span class="nf">_oldstyle_limit_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><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> <span class="n">limit</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">"limit"</span><span class="p">)</span> +</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> +</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a> <span class="k">if</span> <span class="n">limit</span><span class="p">:</span> +</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="n">limit_offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">offset</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="n">limit</span> +</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" LIMIT </span><span class="si">{</span><span class="n">limit_offset</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -722,7 +645,7 @@ </span><span id="MySQL-178"><a href="#MySQL-178"><span class="linenos">178</span></a> <span class="s2">"@@"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">,</span> </span><span id="MySQL-179"><a href="#MySQL-179"><span class="linenos">179</span></a> <span class="p">}</span> </span><span id="MySQL-180"><a href="#MySQL-180"><span class="linenos">180</span></a> -</span><span id="MySQL-181"><a href="#MySQL-181"><span class="linenos">181</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">}</span> +</span><span id="MySQL-181"><a href="#MySQL-181"><span class="linenos">181</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">}</span> </span><span id="MySQL-182"><a href="#MySQL-182"><span class="linenos">182</span></a> </span><span id="MySQL-183"><a href="#MySQL-183"><span class="linenos">183</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> </span><span id="MySQL-184"><a href="#MySQL-184"><span class="linenos">184</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">}</span> <span class="c1"># type: ignore</span> @@ -756,334 +679,263 @@ </span><span id="MySQL-212"><a href="#MySQL-212"><span class="linenos">212</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="MySQL-213"><a href="#MySQL-213"><span class="linenos">213</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="MySQL-214"><a href="#MySQL-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</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_show</span><span class="p">(),</span> -</span><span id="MySQL-215"><a href="#MySQL-215"><span class="linenos">215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</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_set</span><span class="p">(),</span> -</span><span id="MySQL-216"><a href="#MySQL-216"><span class="linenos">216</span></a> <span class="p">}</span> -</span><span id="MySQL-217"><a href="#MySQL-217"><span class="linenos">217</span></a> -</span><span id="MySQL-218"><a href="#MySQL-218"><span class="linenos">218</span></a> <span class="n">SHOW_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL-219"><a href="#MySQL-219"><span class="linenos">219</span></a> <span class="s2">"BINARY LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> -</span><span id="MySQL-220"><a href="#MySQL-220"><span class="linenos">220</span></a> <span class="s2">"MASTER LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> -</span><span id="MySQL-221"><a href="#MySQL-221"><span class="linenos">221</span></a> <span class="s2">"BINLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINLOG EVENTS"</span><span class="p">),</span> -</span><span id="MySQL-222"><a href="#MySQL-222"><span class="linenos">222</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL-223"><a href="#MySQL-223"><span class="linenos">223</span></a> <span class="s2">"CHARSET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL-224"><a href="#MySQL-224"><span class="linenos">224</span></a> <span class="s2">"COLLATION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLLATION"</span><span class="p">),</span> -</span><span id="MySQL-225"><a href="#MySQL-225"><span class="linenos">225</span></a> <span class="s2">"FULL COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-226"><a href="#MySQL-226"><span class="linenos">226</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> -</span><span id="MySQL-227"><a href="#MySQL-227"><span class="linenos">227</span></a> <span class="s2">"CREATE DATABASE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE DATABASE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-228"><a href="#MySQL-228"><span class="linenos">228</span></a> <span class="s2">"CREATE EVENT"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE EVENT"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-229"><a href="#MySQL-229"><span class="linenos">229</span></a> <span class="s2">"CREATE FUNCTION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE FUNCTION"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-230"><a href="#MySQL-230"><span class="linenos">230</span></a> <span class="s2">"CREATE PROCEDURE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE PROCEDURE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-231"><a href="#MySQL-231"><span class="linenos">231</span></a> <span class="s2">"CREATE TABLE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TABLE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-232"><a href="#MySQL-232"><span class="linenos">232</span></a> <span class="s2">"CREATE TRIGGER"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TRIGGER"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-233"><a href="#MySQL-233"><span class="linenos">233</span></a> <span class="s2">"CREATE VIEW"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE VIEW"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-234"><a href="#MySQL-234"><span class="linenos">234</span></a> <span class="s2">"DATABASES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"DATABASES"</span><span class="p">),</span> -</span><span id="MySQL-235"><a href="#MySQL-235"><span class="linenos">235</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-236"><a href="#MySQL-236"><span class="linenos">236</span></a> <span class="s2">"STORAGE ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> -</span><span id="MySQL-237"><a href="#MySQL-237"><span class="linenos">237</span></a> <span class="s2">"ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> -</span><span id="MySQL-238"><a href="#MySQL-238"><span class="linenos">238</span></a> <span class="s2">"ERRORS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ERRORS"</span><span class="p">),</span> -</span><span id="MySQL-239"><a href="#MySQL-239"><span class="linenos">239</span></a> <span class="s2">"EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"EVENTS"</span><span class="p">),</span> -</span><span id="MySQL-240"><a href="#MySQL-240"><span class="linenos">240</span></a> <span class="s2">"FUNCTION CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-241"><a href="#MySQL-241"><span class="linenos">241</span></a> <span class="s2">"FUNCTION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION STATUS"</span><span class="p">),</span> -</span><span id="MySQL-242"><a href="#MySQL-242"><span class="linenos">242</span></a> <span class="s2">"GRANTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"GRANTS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FOR"</span><span class="p">),</span> -</span><span id="MySQL-243"><a href="#MySQL-243"><span class="linenos">243</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"INDEX"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> -</span><span id="MySQL-244"><a href="#MySQL-244"><span class="linenos">244</span></a> <span class="s2">"MASTER STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"MASTER STATUS"</span><span class="p">),</span> -</span><span id="MySQL-245"><a href="#MySQL-245"><span class="linenos">245</span></a> <span class="s2">"OPEN TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"OPEN TABLES"</span><span class="p">),</span> -</span><span id="MySQL-246"><a href="#MySQL-246"><span class="linenos">246</span></a> <span class="s2">"PLUGINS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PLUGINS"</span><span class="p">),</span> -</span><span id="MySQL-247"><a href="#MySQL-247"><span class="linenos">247</span></a> <span class="s2">"PROCEDURE CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-248"><a href="#MySQL-248"><span class="linenos">248</span></a> <span class="s2">"PROCEDURE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE STATUS"</span><span class="p">),</span> -</span><span id="MySQL-249"><a href="#MySQL-249"><span class="linenos">249</span></a> <span class="s2">"PRIVILEGES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PRIVILEGES"</span><span class="p">),</span> -</span><span id="MySQL-250"><a href="#MySQL-250"><span class="linenos">250</span></a> <span class="s2">"FULL PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-251"><a href="#MySQL-251"><span class="linenos">251</span></a> <span class="s2">"PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">),</span> -</span><span id="MySQL-252"><a href="#MySQL-252"><span class="linenos">252</span></a> <span class="s2">"PROFILE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILE"</span><span class="p">),</span> -</span><span id="MySQL-253"><a href="#MySQL-253"><span class="linenos">253</span></a> <span class="s2">"PROFILES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILES"</span><span class="p">),</span> -</span><span id="MySQL-254"><a href="#MySQL-254"><span class="linenos">254</span></a> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"RELAYLOG EVENTS"</span><span class="p">),</span> -</span><span id="MySQL-255"><a href="#MySQL-255"><span class="linenos">255</span></a> <span class="s2">"REPLICAS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> -</span><span id="MySQL-256"><a href="#MySQL-256"><span class="linenos">256</span></a> <span class="s2">"SLAVE HOSTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> -</span><span id="MySQL-257"><a href="#MySQL-257"><span class="linenos">257</span></a> <span class="s2">"REPLICA STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> -</span><span id="MySQL-258"><a href="#MySQL-258"><span class="linenos">258</span></a> <span class="s2">"SLAVE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> -</span><span id="MySQL-259"><a href="#MySQL-259"><span class="linenos">259</span></a> <span class="s2">"GLOBAL STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-260"><a href="#MySQL-260"><span class="linenos">260</span></a> <span class="s2">"SESSION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> -</span><span id="MySQL-261"><a href="#MySQL-261"><span class="linenos">261</span></a> <span class="s2">"STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> -</span><span id="MySQL-262"><a href="#MySQL-262"><span class="linenos">262</span></a> <span class="s2">"TABLE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLE STATUS"</span><span class="p">),</span> -</span><span id="MySQL-263"><a href="#MySQL-263"><span class="linenos">263</span></a> <span class="s2">"FULL TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-264"><a href="#MySQL-264"><span class="linenos">264</span></a> <span class="s2">"TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">),</span> -</span><span id="MySQL-265"><a href="#MySQL-265"><span class="linenos">265</span></a> <span class="s2">"TRIGGERS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TRIGGERS"</span><span class="p">),</span> -</span><span id="MySQL-266"><a href="#MySQL-266"><span class="linenos">266</span></a> <span class="s2">"GLOBAL VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL-267"><a href="#MySQL-267"><span class="linenos">267</span></a> <span class="s2">"SESSION VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> -</span><span id="MySQL-268"><a href="#MySQL-268"><span class="linenos">268</span></a> <span class="s2">"VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> -</span><span id="MySQL-269"><a href="#MySQL-269"><span class="linenos">269</span></a> <span class="s2">"WARNINGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"WARNINGS"</span><span class="p">),</span> -</span><span id="MySQL-270"><a href="#MySQL-270"><span class="linenos">270</span></a> <span class="p">}</span> -</span><span id="MySQL-271"><a href="#MySQL-271"><span class="linenos">271</span></a> -</span><span id="MySQL-272"><a href="#MySQL-272"><span class="linenos">272</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL-273"><a href="#MySQL-273"><span class="linenos">273</span></a> <span class="s2">"GLOBAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"GLOBAL"</span><span class="p">),</span> -</span><span id="MySQL-274"><a href="#MySQL-274"><span class="linenos">274</span></a> <span class="s2">"PERSIST"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST"</span><span class="p">),</span> -</span><span id="MySQL-275"><a href="#MySQL-275"><span class="linenos">275</span></a> <span class="s2">"PERSIST_ONLY"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST_ONLY"</span><span class="p">),</span> -</span><span id="MySQL-276"><a href="#MySQL-276"><span class="linenos">276</span></a> <span class="s2">"SESSION"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"SESSION"</span><span class="p">),</span> -</span><span id="MySQL-277"><a href="#MySQL-277"><span class="linenos">277</span></a> <span class="s2">"LOCAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">),</span> -</span><span id="MySQL-278"><a href="#MySQL-278"><span class="linenos">278</span></a> <span class="s2">"CHARACTER SET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL-279"><a href="#MySQL-279"><span class="linenos">279</span></a> <span class="s2">"CHARSET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL-280"><a href="#MySQL-280"><span class="linenos">280</span></a> <span class="s2">"NAMES"</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_set_item_names</span><span class="p">(),</span> -</span><span id="MySQL-281"><a href="#MySQL-281"><span class="linenos">281</span></a> <span class="s2">"TRANSACTION"</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_set_transaction</span><span class="p">(),</span> -</span><span id="MySQL-282"><a href="#MySQL-282"><span class="linenos">282</span></a> <span class="p">}</span> -</span><span id="MySQL-283"><a href="#MySQL-283"><span class="linenos">283</span></a> -</span><span id="MySQL-284"><a href="#MySQL-284"><span class="linenos">284</span></a> <span class="n">PROFILE_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL-285"><a href="#MySQL-285"><span class="linenos">285</span></a> <span class="s2">"ALL"</span><span class="p">,</span> -</span><span id="MySQL-286"><a href="#MySQL-286"><span class="linenos">286</span></a> <span class="s2">"BLOCK IO"</span><span class="p">,</span> -</span><span id="MySQL-287"><a href="#MySQL-287"><span class="linenos">287</span></a> <span class="s2">"CONTEXT SWITCHES"</span><span class="p">,</span> -</span><span id="MySQL-288"><a href="#MySQL-288"><span class="linenos">288</span></a> <span class="s2">"CPU"</span><span class="p">,</span> -</span><span id="MySQL-289"><a href="#MySQL-289"><span class="linenos">289</span></a> <span class="s2">"IPC"</span><span class="p">,</span> -</span><span id="MySQL-290"><a href="#MySQL-290"><span class="linenos">290</span></a> <span class="s2">"MEMORY"</span><span class="p">,</span> -</span><span id="MySQL-291"><a href="#MySQL-291"><span class="linenos">291</span></a> <span class="s2">"PAGE FAULTS"</span><span class="p">,</span> -</span><span id="MySQL-292"><a href="#MySQL-292"><span class="linenos">292</span></a> <span class="s2">"SOURCE"</span><span class="p">,</span> -</span><span id="MySQL-293"><a href="#MySQL-293"><span class="linenos">293</span></a> <span class="s2">"SWAPS"</span><span class="p">,</span> -</span><span id="MySQL-294"><a href="#MySQL-294"><span class="linenos">294</span></a> <span class="p">}</span> -</span><span id="MySQL-295"><a href="#MySQL-295"><span class="linenos">295</span></a> -</span><span id="MySQL-296"><a href="#MySQL-296"><span class="linenos">296</span></a> <span class="n">TRANSACTION_CHARACTERISTICS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL-297"><a href="#MySQL-297"><span class="linenos">297</span></a> <span class="s2">"ISOLATION LEVEL REPEATABLE READ"</span><span class="p">,</span> -</span><span id="MySQL-298"><a href="#MySQL-298"><span class="linenos">298</span></a> <span class="s2">"ISOLATION LEVEL READ COMMITTED"</span><span class="p">,</span> -</span><span id="MySQL-299"><a href="#MySQL-299"><span class="linenos">299</span></a> <span class="s2">"ISOLATION LEVEL READ UNCOMMITTED"</span><span class="p">,</span> -</span><span id="MySQL-300"><a href="#MySQL-300"><span class="linenos">300</span></a> <span class="s2">"ISOLATION LEVEL SERIALIZABLE"</span><span class="p">,</span> -</span><span id="MySQL-301"><a href="#MySQL-301"><span class="linenos">301</span></a> <span class="s2">"READ WRITE"</span><span class="p">,</span> -</span><span id="MySQL-302"><a href="#MySQL-302"><span class="linenos">302</span></a> <span class="s2">"READ ONLY"</span><span class="p">,</span> -</span><span id="MySQL-303"><a href="#MySQL-303"><span class="linenos">303</span></a> <span class="p">}</span> -</span><span id="MySQL-304"><a href="#MySQL-304"><span class="linenos">304</span></a> -</span><span id="MySQL-305"><a href="#MySQL-305"><span class="linenos">305</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="MySQL-306"><a href="#MySQL-306"><span class="linenos">306</span></a> -</span><span id="MySQL-307"><a href="#MySQL-307"><span class="linenos">307</span></a> <span class="k">def</span> <span class="nf">_parse_show_mysql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="MySQL-308"><a href="#MySQL-308"><span class="linenos">308</span></a> <span class="k">if</span> <span class="n">target</span><span class="p">:</span> -</span><span id="MySQL-309"><a href="#MySQL-309"><span class="linenos">309</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="MySQL-310"><a href="#MySQL-310"><span class="linenos">310</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="n">target</span><span class="p">)</span> -</span><span id="MySQL-311"><a href="#MySQL-311"><span class="linenos">311</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL-312"><a href="#MySQL-312"><span class="linenos">312</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL-313"><a href="#MySQL-313"><span class="linenos">313</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL-314"><a href="#MySQL-314"><span class="linenos">314</span></a> -</span><span id="MySQL-315"><a href="#MySQL-315"><span class="linenos">315</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-316"><a href="#MySQL-316"><span class="linenos">316</span></a> -</span><span id="MySQL-317"><a href="#MySQL-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"BINLOG EVENTS"</span><span class="p">,</span> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">}:</span> -</span><span id="MySQL-318"><a href="#MySQL-318"><span class="linenos">318</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-319"><a href="#MySQL-319"><span class="linenos">319</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL-320"><a href="#MySQL-320"><span class="linenos">320</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL-321"><a href="#MySQL-321"><span class="linenos">321</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL-322"><a href="#MySQL-322"><span class="linenos">322</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-323"><a href="#MySQL-323"><span class="linenos">323</span></a> -</span><span id="MySQL-324"><a href="#MySQL-324"><span class="linenos">324</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"CHANNEL"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-215"><a href="#MySQL-215"><span class="linenos">215</span></a> <span class="p">}</span> +</span><span id="MySQL-216"><a href="#MySQL-216"><span class="linenos">216</span></a> +</span><span id="MySQL-217"><a href="#MySQL-217"><span class="linenos">217</span></a> <span class="n">SHOW_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL-218"><a href="#MySQL-218"><span class="linenos">218</span></a> <span class="s2">"BINARY LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> +</span><span id="MySQL-219"><a href="#MySQL-219"><span class="linenos">219</span></a> <span class="s2">"MASTER LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> +</span><span id="MySQL-220"><a href="#MySQL-220"><span class="linenos">220</span></a> <span class="s2">"BINLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINLOG EVENTS"</span><span class="p">),</span> +</span><span id="MySQL-221"><a href="#MySQL-221"><span class="linenos">221</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL-222"><a href="#MySQL-222"><span class="linenos">222</span></a> <span class="s2">"CHARSET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL-223"><a href="#MySQL-223"><span class="linenos">223</span></a> <span class="s2">"COLLATION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLLATION"</span><span class="p">),</span> +</span><span id="MySQL-224"><a href="#MySQL-224"><span class="linenos">224</span></a> <span class="s2">"FULL COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-225"><a href="#MySQL-225"><span class="linenos">225</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> +</span><span id="MySQL-226"><a href="#MySQL-226"><span class="linenos">226</span></a> <span class="s2">"CREATE DATABASE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE DATABASE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-227"><a href="#MySQL-227"><span class="linenos">227</span></a> <span class="s2">"CREATE EVENT"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE EVENT"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-228"><a href="#MySQL-228"><span class="linenos">228</span></a> <span class="s2">"CREATE FUNCTION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE FUNCTION"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-229"><a href="#MySQL-229"><span class="linenos">229</span></a> <span class="s2">"CREATE PROCEDURE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE PROCEDURE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-230"><a href="#MySQL-230"><span class="linenos">230</span></a> <span class="s2">"CREATE TABLE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TABLE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-231"><a href="#MySQL-231"><span class="linenos">231</span></a> <span class="s2">"CREATE TRIGGER"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TRIGGER"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-232"><a href="#MySQL-232"><span class="linenos">232</span></a> <span class="s2">"CREATE VIEW"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE VIEW"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-233"><a href="#MySQL-233"><span class="linenos">233</span></a> <span class="s2">"DATABASES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"DATABASES"</span><span class="p">),</span> +</span><span id="MySQL-234"><a href="#MySQL-234"><span class="linenos">234</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-235"><a href="#MySQL-235"><span class="linenos">235</span></a> <span class="s2">"STORAGE ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> +</span><span id="MySQL-236"><a href="#MySQL-236"><span class="linenos">236</span></a> <span class="s2">"ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> +</span><span id="MySQL-237"><a href="#MySQL-237"><span class="linenos">237</span></a> <span class="s2">"ERRORS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ERRORS"</span><span class="p">),</span> +</span><span id="MySQL-238"><a href="#MySQL-238"><span class="linenos">238</span></a> <span class="s2">"EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"EVENTS"</span><span class="p">),</span> +</span><span id="MySQL-239"><a href="#MySQL-239"><span class="linenos">239</span></a> <span class="s2">"FUNCTION CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-240"><a href="#MySQL-240"><span class="linenos">240</span></a> <span class="s2">"FUNCTION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION STATUS"</span><span class="p">),</span> +</span><span id="MySQL-241"><a href="#MySQL-241"><span class="linenos">241</span></a> <span class="s2">"GRANTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"GRANTS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FOR"</span><span class="p">),</span> +</span><span id="MySQL-242"><a href="#MySQL-242"><span class="linenos">242</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"INDEX"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> +</span><span id="MySQL-243"><a href="#MySQL-243"><span class="linenos">243</span></a> <span class="s2">"MASTER STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"MASTER STATUS"</span><span class="p">),</span> +</span><span id="MySQL-244"><a href="#MySQL-244"><span class="linenos">244</span></a> <span class="s2">"OPEN TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"OPEN TABLES"</span><span class="p">),</span> +</span><span id="MySQL-245"><a href="#MySQL-245"><span class="linenos">245</span></a> <span class="s2">"PLUGINS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PLUGINS"</span><span class="p">),</span> +</span><span id="MySQL-246"><a href="#MySQL-246"><span class="linenos">246</span></a> <span class="s2">"PROCEDURE CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-247"><a href="#MySQL-247"><span class="linenos">247</span></a> <span class="s2">"PROCEDURE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE STATUS"</span><span class="p">),</span> +</span><span id="MySQL-248"><a href="#MySQL-248"><span class="linenos">248</span></a> <span class="s2">"PRIVILEGES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PRIVILEGES"</span><span class="p">),</span> +</span><span id="MySQL-249"><a href="#MySQL-249"><span class="linenos">249</span></a> <span class="s2">"FULL PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-250"><a href="#MySQL-250"><span class="linenos">250</span></a> <span class="s2">"PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">),</span> +</span><span id="MySQL-251"><a href="#MySQL-251"><span class="linenos">251</span></a> <span class="s2">"PROFILE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILE"</span><span class="p">),</span> +</span><span id="MySQL-252"><a href="#MySQL-252"><span class="linenos">252</span></a> <span class="s2">"PROFILES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILES"</span><span class="p">),</span> +</span><span id="MySQL-253"><a href="#MySQL-253"><span class="linenos">253</span></a> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"RELAYLOG EVENTS"</span><span class="p">),</span> +</span><span id="MySQL-254"><a href="#MySQL-254"><span class="linenos">254</span></a> <span class="s2">"REPLICAS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> +</span><span id="MySQL-255"><a href="#MySQL-255"><span class="linenos">255</span></a> <span class="s2">"SLAVE HOSTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> +</span><span id="MySQL-256"><a href="#MySQL-256"><span class="linenos">256</span></a> <span class="s2">"REPLICA STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> +</span><span id="MySQL-257"><a href="#MySQL-257"><span class="linenos">257</span></a> <span class="s2">"SLAVE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> +</span><span id="MySQL-258"><a href="#MySQL-258"><span class="linenos">258</span></a> <span class="s2">"GLOBAL STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-259"><a href="#MySQL-259"><span class="linenos">259</span></a> <span class="s2">"SESSION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> +</span><span id="MySQL-260"><a href="#MySQL-260"><span class="linenos">260</span></a> <span class="s2">"STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> +</span><span id="MySQL-261"><a href="#MySQL-261"><span class="linenos">261</span></a> <span class="s2">"TABLE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLE STATUS"</span><span class="p">),</span> +</span><span id="MySQL-262"><a href="#MySQL-262"><span class="linenos">262</span></a> <span class="s2">"FULL TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-263"><a href="#MySQL-263"><span class="linenos">263</span></a> <span class="s2">"TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">),</span> +</span><span id="MySQL-264"><a href="#MySQL-264"><span class="linenos">264</span></a> <span class="s2">"TRIGGERS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TRIGGERS"</span><span class="p">),</span> +</span><span id="MySQL-265"><a href="#MySQL-265"><span class="linenos">265</span></a> <span class="s2">"GLOBAL VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL-266"><a href="#MySQL-266"><span class="linenos">266</span></a> <span class="s2">"SESSION VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> +</span><span id="MySQL-267"><a href="#MySQL-267"><span class="linenos">267</span></a> <span class="s2">"VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> +</span><span id="MySQL-268"><a href="#MySQL-268"><span class="linenos">268</span></a> <span class="s2">"WARNINGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"WARNINGS"</span><span class="p">),</span> +</span><span id="MySQL-269"><a href="#MySQL-269"><span class="linenos">269</span></a> <span class="p">}</span> +</span><span id="MySQL-270"><a href="#MySQL-270"><span class="linenos">270</span></a> +</span><span id="MySQL-271"><a href="#MySQL-271"><span class="linenos">271</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL-272"><a href="#MySQL-272"><span class="linenos">272</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> +</span><span id="MySQL-273"><a href="#MySQL-273"><span class="linenos">273</span></a> <span class="s2">"PERSIST"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST"</span><span class="p">),</span> +</span><span id="MySQL-274"><a href="#MySQL-274"><span class="linenos">274</span></a> <span class="s2">"PERSIST_ONLY"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST_ONLY"</span><span class="p">),</span> +</span><span id="MySQL-275"><a href="#MySQL-275"><span class="linenos">275</span></a> <span class="s2">"CHARACTER SET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL-276"><a href="#MySQL-276"><span class="linenos">276</span></a> <span class="s2">"CHARSET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL-277"><a href="#MySQL-277"><span class="linenos">277</span></a> <span class="s2">"NAMES"</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_set_item_names</span><span class="p">(),</span> +</span><span id="MySQL-278"><a href="#MySQL-278"><span class="linenos">278</span></a> <span class="p">}</span> +</span><span id="MySQL-279"><a href="#MySQL-279"><span class="linenos">279</span></a> +</span><span id="MySQL-280"><a href="#MySQL-280"><span class="linenos">280</span></a> <span class="n">PROFILE_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL-281"><a href="#MySQL-281"><span class="linenos">281</span></a> <span class="s2">"ALL"</span><span class="p">,</span> +</span><span id="MySQL-282"><a href="#MySQL-282"><span class="linenos">282</span></a> <span class="s2">"BLOCK IO"</span><span class="p">,</span> +</span><span id="MySQL-283"><a href="#MySQL-283"><span class="linenos">283</span></a> <span class="s2">"CONTEXT SWITCHES"</span><span class="p">,</span> +</span><span id="MySQL-284"><a href="#MySQL-284"><span class="linenos">284</span></a> <span class="s2">"CPU"</span><span class="p">,</span> +</span><span id="MySQL-285"><a href="#MySQL-285"><span class="linenos">285</span></a> <span class="s2">"IPC"</span><span class="p">,</span> +</span><span id="MySQL-286"><a href="#MySQL-286"><span class="linenos">286</span></a> <span class="s2">"MEMORY"</span><span class="p">,</span> +</span><span id="MySQL-287"><a href="#MySQL-287"><span class="linenos">287</span></a> <span class="s2">"PAGE FAULTS"</span><span class="p">,</span> +</span><span id="MySQL-288"><a href="#MySQL-288"><span class="linenos">288</span></a> <span class="s2">"SOURCE"</span><span class="p">,</span> +</span><span id="MySQL-289"><a href="#MySQL-289"><span class="linenos">289</span></a> <span class="s2">"SWAPS"</span><span class="p">,</span> +</span><span id="MySQL-290"><a href="#MySQL-290"><span class="linenos">290</span></a> <span class="p">}</span> +</span><span id="MySQL-291"><a href="#MySQL-291"><span class="linenos">291</span></a> +</span><span id="MySQL-292"><a href="#MySQL-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">_parse_show_mysql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="MySQL-293"><a href="#MySQL-293"><span class="linenos">293</span></a> <span class="k">if</span> <span class="n">target</span><span class="p">:</span> +</span><span id="MySQL-294"><a href="#MySQL-294"><span class="linenos">294</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="MySQL-295"><a href="#MySQL-295"><span class="linenos">295</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="n">target</span><span class="p">)</span> +</span><span id="MySQL-296"><a href="#MySQL-296"><span class="linenos">296</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="MySQL-297"><a href="#MySQL-297"><span class="linenos">297</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL-298"><a href="#MySQL-298"><span class="linenos">298</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL-299"><a href="#MySQL-299"><span class="linenos">299</span></a> +</span><span id="MySQL-300"><a href="#MySQL-300"><span class="linenos">300</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-301"><a href="#MySQL-301"><span class="linenos">301</span></a> +</span><span id="MySQL-302"><a href="#MySQL-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"BINLOG EVENTS"</span><span class="p">,</span> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">}:</span> +</span><span id="MySQL-303"><a href="#MySQL-303"><span class="linenos">303</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-304"><a href="#MySQL-304"><span class="linenos">304</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL-305"><a href="#MySQL-305"><span class="linenos">305</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL-306"><a href="#MySQL-306"><span class="linenos">306</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL-307"><a href="#MySQL-307"><span class="linenos">307</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-308"><a href="#MySQL-308"><span class="linenos">308</span></a> +</span><span id="MySQL-309"><a href="#MySQL-309"><span class="linenos">309</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"CHANNEL"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-310"><a href="#MySQL-310"><span class="linenos">310</span></a> +</span><span id="MySQL-311"><a href="#MySQL-311"><span class="linenos">311</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-312"><a href="#MySQL-312"><span class="linenos">312</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()</span> +</span><span id="MySQL-313"><a href="#MySQL-313"><span class="linenos">313</span></a> +</span><span id="MySQL-314"><a href="#MySQL-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="n">this</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="MySQL-315"><a href="#MySQL-315"><span class="linenos">315</span></a> <span class="n">types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROFILE_TYPES</span><span class="p">))</span> +</span><span id="MySQL-316"><a href="#MySQL-316"><span class="linenos">316</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"QUERY"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-317"><a href="#MySQL-317"><span class="linenos">317</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-318"><a href="#MySQL-318"><span class="linenos">318</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-319"><a href="#MySQL-319"><span class="linenos">319</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL-320"><a href="#MySQL-320"><span class="linenos">320</span></a> <span class="n">types</span><span class="p">,</span> <span class="n">query</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> +</span><span id="MySQL-321"><a href="#MySQL-321"><span class="linenos">321</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_oldstyle_limit</span><span class="p">()</span> +</span><span id="MySQL-322"><a href="#MySQL-322"><span class="linenos">322</span></a> +</span><span id="MySQL-323"><a href="#MySQL-323"><span class="linenos">323</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MUTEX"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL-324"><a href="#MySQL-324"><span class="linenos">324</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">)</span> <span class="k">else</span> <span class="n">mutex</span> </span><span id="MySQL-325"><a href="#MySQL-325"><span class="linenos">325</span></a> -</span><span id="MySQL-326"><a href="#MySQL-326"><span class="linenos">326</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-327"><a href="#MySQL-327"><span class="linenos">327</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()</span> -</span><span id="MySQL-328"><a href="#MySQL-328"><span class="linenos">328</span></a> -</span><span id="MySQL-329"><a href="#MySQL-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="n">this</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="MySQL-330"><a href="#MySQL-330"><span class="linenos">330</span></a> <span class="n">types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROFILE_TYPES</span><span class="p">))</span> -</span><span id="MySQL-331"><a href="#MySQL-331"><span class="linenos">331</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"QUERY"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-332"><a href="#MySQL-332"><span class="linenos">332</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-333"><a href="#MySQL-333"><span class="linenos">333</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-334"><a href="#MySQL-334"><span class="linenos">334</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL-335"><a href="#MySQL-335"><span class="linenos">335</span></a> <span class="n">types</span><span class="p">,</span> <span class="n">query</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> -</span><span id="MySQL-336"><a href="#MySQL-336"><span class="linenos">336</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_oldstyle_limit</span><span class="p">()</span> -</span><span id="MySQL-337"><a href="#MySQL-337"><span class="linenos">337</span></a> -</span><span id="MySQL-338"><a href="#MySQL-338"><span class="linenos">338</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MUTEX"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL-339"><a href="#MySQL-339"><span class="linenos">339</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">)</span> <span class="k">else</span> <span class="n">mutex</span> -</span><span id="MySQL-340"><a href="#MySQL-340"><span class="linenos">340</span></a> -</span><span id="MySQL-341"><a href="#MySQL-341"><span class="linenos">341</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><span id="MySQL-342"><a href="#MySQL-342"><span class="linenos">342</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Show</span><span class="p">,</span> -</span><span id="MySQL-343"><a href="#MySQL-343"><span class="linenos">343</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="MySQL-344"><a href="#MySQL-344"><span class="linenos">344</span></a> <span class="n">target</span><span class="o">=</span><span class="n">target_id</span><span class="p">,</span> -</span><span id="MySQL-345"><a href="#MySQL-345"><span class="linenos">345</span></a> <span class="n">full</span><span class="o">=</span><span class="n">full</span><span class="p">,</span> -</span><span id="MySQL-346"><a href="#MySQL-346"><span class="linenos">346</span></a> <span class="n">log</span><span class="o">=</span><span class="n">log</span><span class="p">,</span> -</span><span id="MySQL-347"><a href="#MySQL-347"><span class="linenos">347</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> -</span><span id="MySQL-348"><a href="#MySQL-348"><span class="linenos">348</span></a> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> -</span><span id="MySQL-349"><a href="#MySQL-349"><span class="linenos">349</span></a> <span class="n">channel</span><span class="o">=</span><span class="n">channel</span><span class="p">,</span> -</span><span id="MySQL-350"><a href="#MySQL-350"><span class="linenos">350</span></a> <span class="n">like</span><span class="o">=</span><span class="n">like</span><span class="p">,</span> -</span><span id="MySQL-351"><a href="#MySQL-351"><span class="linenos">351</span></a> <span class="n">where</span><span class="o">=</span><span class="n">where</span><span class="p">,</span> -</span><span id="MySQL-352"><a href="#MySQL-352"><span class="linenos">352</span></a> <span class="n">types</span><span class="o">=</span><span class="n">types</span><span class="p">,</span> -</span><span id="MySQL-353"><a href="#MySQL-353"><span class="linenos">353</span></a> <span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="p">,</span> -</span><span id="MySQL-354"><a href="#MySQL-354"><span class="linenos">354</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> -</span><span id="MySQL-355"><a href="#MySQL-355"><span class="linenos">355</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> -</span><span id="MySQL-356"><a href="#MySQL-356"><span class="linenos">356</span></a> <span class="n">mutex</span><span class="o">=</span><span class="n">mutex</span><span class="p">,</span> -</span><span id="MySQL-357"><a href="#MySQL-357"><span class="linenos">357</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> -</span><span id="MySQL-358"><a href="#MySQL-358"><span class="linenos">358</span></a> <span class="p">)</span> +</span><span id="MySQL-326"><a href="#MySQL-326"><span class="linenos">326</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><span id="MySQL-327"><a href="#MySQL-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Show</span><span class="p">,</span> +</span><span id="MySQL-328"><a href="#MySQL-328"><span class="linenos">328</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="MySQL-329"><a href="#MySQL-329"><span class="linenos">329</span></a> <span class="n">target</span><span class="o">=</span><span class="n">target_id</span><span class="p">,</span> +</span><span id="MySQL-330"><a href="#MySQL-330"><span class="linenos">330</span></a> <span class="n">full</span><span class="o">=</span><span class="n">full</span><span class="p">,</span> +</span><span id="MySQL-331"><a href="#MySQL-331"><span class="linenos">331</span></a> <span class="n">log</span><span class="o">=</span><span class="n">log</span><span class="p">,</span> +</span><span id="MySQL-332"><a href="#MySQL-332"><span class="linenos">332</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> +</span><span id="MySQL-333"><a href="#MySQL-333"><span class="linenos">333</span></a> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> +</span><span id="MySQL-334"><a href="#MySQL-334"><span class="linenos">334</span></a> <span class="n">channel</span><span class="o">=</span><span class="n">channel</span><span class="p">,</span> +</span><span id="MySQL-335"><a href="#MySQL-335"><span class="linenos">335</span></a> <span class="n">like</span><span class="o">=</span><span class="n">like</span><span class="p">,</span> +</span><span id="MySQL-336"><a href="#MySQL-336"><span class="linenos">336</span></a> <span class="n">where</span><span class="o">=</span><span class="n">where</span><span class="p">,</span> +</span><span id="MySQL-337"><a href="#MySQL-337"><span class="linenos">337</span></a> <span class="n">types</span><span class="o">=</span><span class="n">types</span><span class="p">,</span> +</span><span id="MySQL-338"><a href="#MySQL-338"><span class="linenos">338</span></a> <span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="p">,</span> +</span><span id="MySQL-339"><a href="#MySQL-339"><span class="linenos">339</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> +</span><span id="MySQL-340"><a href="#MySQL-340"><span class="linenos">340</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> +</span><span id="MySQL-341"><a href="#MySQL-341"><span class="linenos">341</span></a> <span class="n">mutex</span><span class="o">=</span><span class="n">mutex</span><span class="p">,</span> +</span><span id="MySQL-342"><a href="#MySQL-342"><span class="linenos">342</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> +</span><span id="MySQL-343"><a href="#MySQL-343"><span class="linenos">343</span></a> <span class="p">)</span> +</span><span id="MySQL-344"><a href="#MySQL-344"><span class="linenos">344</span></a> +</span><span id="MySQL-345"><a href="#MySQL-345"><span class="linenos">345</span></a> <span class="k">def</span> <span class="nf">_parse_oldstyle_limit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="MySQL-346"><a href="#MySQL-346"><span class="linenos">346</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL-347"><a href="#MySQL-347"><span class="linenos">347</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL-348"><a href="#MySQL-348"><span class="linenos">348</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">):</span> +</span><span id="MySQL-349"><a href="#MySQL-349"><span class="linenos">349</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> +</span><span id="MySQL-350"><a href="#MySQL-350"><span class="linenos">350</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="MySQL-351"><a href="#MySQL-351"><span class="linenos">351</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="MySQL-352"><a href="#MySQL-352"><span class="linenos">352</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="MySQL-353"><a href="#MySQL-353"><span class="linenos">353</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span><span id="MySQL-354"><a href="#MySQL-354"><span class="linenos">354</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="MySQL-355"><a href="#MySQL-355"><span class="linenos">355</span></a> <span class="k">return</span> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> +</span><span id="MySQL-356"><a href="#MySQL-356"><span class="linenos">356</span></a> +</span><span id="MySQL-357"><a href="#MySQL-357"><span class="linenos">357</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_charset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> +</span><span id="MySQL-358"><a href="#MySQL-358"><span class="linenos">358</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="MySQL-359"><a href="#MySQL-359"><span class="linenos">359</span></a> -</span><span id="MySQL-360"><a href="#MySQL-360"><span class="linenos">360</span></a> <span class="k">def</span> <span class="nf">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">):</span> -</span><span id="MySQL-361"><a href="#MySQL-361"><span class="linenos">361</span></a> <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">options</span><span class="p">:</span> -</span><span id="MySQL-362"><a href="#MySQL-362"><span class="linenos">362</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="o">*</span><span class="n">option</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)):</span> -</span><span id="MySQL-363"><a href="#MySQL-363"><span class="linenos">363</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">option</span><span class="p">)</span> -</span><span id="MySQL-364"><a href="#MySQL-364"><span class="linenos">364</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="MySQL-360"><a href="#MySQL-360"><span class="linenos">360</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><span id="MySQL-361"><a href="#MySQL-361"><span class="linenos">361</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="MySQL-362"><a href="#MySQL-362"><span class="linenos">362</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="MySQL-363"><a href="#MySQL-363"><span class="linenos">363</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="MySQL-364"><a href="#MySQL-364"><span class="linenos">364</span></a> <span class="p">)</span> </span><span id="MySQL-365"><a href="#MySQL-365"><span class="linenos">365</span></a> -</span><span id="MySQL-366"><a href="#MySQL-366"><span class="linenos">366</span></a> <span class="k">def</span> <span class="nf">_parse_oldstyle_limit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="MySQL-367"><a href="#MySQL-367"><span class="linenos">367</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL-368"><a href="#MySQL-368"><span class="linenos">368</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL-369"><a href="#MySQL-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">):</span> -</span><span id="MySQL-370"><a href="#MySQL-370"><span class="linenos">370</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> -</span><span id="MySQL-371"><a href="#MySQL-371"><span class="linenos">371</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="MySQL-372"><a href="#MySQL-372"><span class="linenos">372</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="MySQL-373"><a href="#MySQL-373"><span class="linenos">373</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="MySQL-374"><a href="#MySQL-374"><span class="linenos">374</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> -</span><span id="MySQL-375"><a href="#MySQL-375"><span class="linenos">375</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="MySQL-376"><a href="#MySQL-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> -</span><span id="MySQL-377"><a href="#MySQL-377"><span class="linenos">377</span></a> -</span><span id="MySQL-378"><a href="#MySQL-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">_default_parse_set_item</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="MySQL-379"><a href="#MySQL-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item_assignment</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> -</span><span id="MySQL-380"><a href="#MySQL-380"><span class="linenos">380</span></a> -</span><span id="MySQL-381"><a href="#MySQL-381"><span class="linenos">381</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> -</span><span id="MySQL-382"><a href="#MySQL-382"><span class="linenos">382</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"GLOBAL"</span><span class="p">,</span> <span class="s2">"SESSION"</span><span class="p">}</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">):</span> -</span><span id="MySQL-383"><a href="#MySQL-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_transaction</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"GLOBAL"</span><span class="p">)</span> -</span><span id="MySQL-384"><a href="#MySQL-384"><span class="linenos">384</span></a> -</span><span id="MySQL-385"><a href="#MySQL-385"><span class="linenos">385</span></a> <span class="n">left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL-386"><a href="#MySQL-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="ow">not</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">EQ</span><span class="p">):</span> -</span><span id="MySQL-387"><a href="#MySQL-387"><span class="linenos">387</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ="</span><span class="p">)</span> -</span><span id="MySQL-388"><a href="#MySQL-388"><span class="linenos">388</span></a> <span class="n">right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL-389"><a href="#MySQL-389"><span class="linenos">389</span></a> -</span><span id="MySQL-390"><a href="#MySQL-390"><span class="linenos">390</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="MySQL-391"><a href="#MySQL-391"><span class="linenos">391</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="MySQL-392"><a href="#MySQL-392"><span class="linenos">392</span></a> <span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> -</span><span id="MySQL-393"><a href="#MySQL-393"><span class="linenos">393</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> -</span><span id="MySQL-394"><a href="#MySQL-394"><span class="linenos">394</span></a> <span class="p">)</span> -</span><span id="MySQL-395"><a href="#MySQL-395"><span class="linenos">395</span></a> -</span><span id="MySQL-396"><a href="#MySQL-396"><span class="linenos">396</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><span id="MySQL-397"><a href="#MySQL-397"><span class="linenos">397</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL-398"><a href="#MySQL-398"><span class="linenos">398</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="MySQL-399"><a href="#MySQL-399"><span class="linenos">399</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="MySQL-400"><a href="#MySQL-400"><span class="linenos">400</span></a> <span class="p">)</span> -</span><span id="MySQL-401"><a href="#MySQL-401"><span class="linenos">401</span></a> -</span><span id="MySQL-402"><a href="#MySQL-402"><span class="linenos">402</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_charset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> -</span><span id="MySQL-403"><a href="#MySQL-403"><span class="linenos">403</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL-404"><a href="#MySQL-404"><span class="linenos">404</span></a> -</span><span id="MySQL-405"><a href="#MySQL-405"><span class="linenos">405</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><span id="MySQL-406"><a href="#MySQL-406"><span class="linenos">406</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL-407"><a href="#MySQL-407"><span class="linenos">407</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="MySQL-408"><a href="#MySQL-408"><span class="linenos">408</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="MySQL-409"><a href="#MySQL-409"><span class="linenos">409</span></a> <span class="p">)</span> -</span><span id="MySQL-410"><a href="#MySQL-410"><span class="linenos">410</span></a> -</span><span id="MySQL-411"><a href="#MySQL-411"><span class="linenos">411</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="MySQL-412"><a href="#MySQL-412"><span class="linenos">412</span></a> <span class="n">charset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL-413"><a href="#MySQL-413"><span class="linenos">413</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLATE"</span><span class="p">):</span> -</span><span id="MySQL-414"><a href="#MySQL-414"><span class="linenos">414</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL-415"><a href="#MySQL-415"><span class="linenos">415</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL-416"><a href="#MySQL-416"><span class="linenos">416</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL-417"><a href="#MySQL-417"><span class="linenos">417</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><span id="MySQL-418"><a href="#MySQL-418"><span class="linenos">418</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL-419"><a href="#MySQL-419"><span class="linenos">419</span></a> <span class="n">this</span><span class="o">=</span><span class="n">charset</span><span class="p">,</span> -</span><span id="MySQL-420"><a href="#MySQL-420"><span class="linenos">420</span></a> <span class="n">collate</span><span class="o">=</span><span class="n">collate</span><span class="p">,</span> -</span><span id="MySQL-421"><a href="#MySQL-421"><span class="linenos">421</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"NAMES"</span><span class="p">,</span> -</span><span id="MySQL-422"><a href="#MySQL-422"><span class="linenos">422</span></a> <span class="p">)</span> +</span><span id="MySQL-366"><a href="#MySQL-366"><span class="linenos">366</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="MySQL-367"><a href="#MySQL-367"><span class="linenos">367</span></a> <span class="n">charset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="MySQL-368"><a href="#MySQL-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLATE"</span><span class="p">):</span> +</span><span id="MySQL-369"><a href="#MySQL-369"><span class="linenos">369</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="MySQL-370"><a href="#MySQL-370"><span class="linenos">370</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL-371"><a href="#MySQL-371"><span class="linenos">371</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL-372"><a href="#MySQL-372"><span class="linenos">372</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><span id="MySQL-373"><a href="#MySQL-373"><span class="linenos">373</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="MySQL-374"><a href="#MySQL-374"><span class="linenos">374</span></a> <span class="n">this</span><span class="o">=</span><span class="n">charset</span><span class="p">,</span> +</span><span id="MySQL-375"><a href="#MySQL-375"><span class="linenos">375</span></a> <span class="n">collate</span><span class="o">=</span><span class="n">collate</span><span class="p">,</span> +</span><span id="MySQL-376"><a href="#MySQL-376"><span class="linenos">376</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"NAMES"</span><span class="p">,</span> +</span><span id="MySQL-377"><a href="#MySQL-377"><span class="linenos">377</span></a> <span class="p">)</span> +</span><span id="MySQL-378"><a href="#MySQL-378"><span class="linenos">378</span></a> +</span><span id="MySQL-379"><a href="#MySQL-379"><span class="linenos">379</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="MySQL-380"><a href="#MySQL-380"><span class="linenos">380</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="MySQL-381"><a href="#MySQL-381"><span class="linenos">381</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="MySQL-382"><a href="#MySQL-382"><span class="linenos">382</span></a> +</span><span id="MySQL-383"><a href="#MySQL-383"><span class="linenos">383</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL-384"><a href="#MySQL-384"><span class="linenos">384</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="MySQL-385"><a href="#MySQL-385"><span class="linenos">385</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> +</span><span id="MySQL-386"><a href="#MySQL-386"><span class="linenos">386</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="MySQL-387"><a href="#MySQL-387"><span class="linenos">387</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="MySQL-388"><a href="#MySQL-388"><span class="linenos">388</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="MySQL-389"><a href="#MySQL-389"><span class="linenos">389</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="MySQL-390"><a href="#MySQL-390"><span class="linenos">390</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="MySQL-391"><a href="#MySQL-391"><span class="linenos">391</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="MySQL-392"><a href="#MySQL-392"><span class="linenos">392</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATEDIFF(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="MySQL-393"><a href="#MySQL-393"><span class="linenos">393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="MySQL-394"><a href="#MySQL-394"><span class="linenos">394</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">:</span> <span class="n">_date_trunc_sql</span><span class="p">,</span> +</span><span id="MySQL-395"><a href="#MySQL-395"><span class="linenos">395</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="MySQL-396"><a href="#MySQL-396"><span class="linenos">396</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="MySQL-397"><a href="#MySQL-397"><span class="linenos">397</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="MySQL-398"><a href="#MySQL-398"><span class="linenos">398</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="MySQL-399"><a href="#MySQL-399"><span class="linenos">399</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</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="sa">f</span><span class="s2">"""GROUP_CONCAT(</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="s2">"this"</span><span class="p">)</span><span class="si">}</span><span class="s2"> SEPARATOR </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="s2">"separator"</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"','"</span><span class="si">}</span><span class="s2">)"""</span><span class="p">,</span> +</span><span id="MySQL-400"><a href="#MySQL-400"><span class="linenos">400</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> +</span><span id="MySQL-401"><a href="#MySQL-401"><span class="linenos">401</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> +</span><span id="MySQL-402"><a href="#MySQL-402"><span class="linenos">402</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">_trim_sql</span><span class="p">,</span> +</span><span id="MySQL-403"><a href="#MySQL-403"><span class="linenos">403</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">),</span> +</span><span id="MySQL-404"><a href="#MySQL-404"><span class="linenos">404</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</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">not_sql</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">)),</span> +</span><span id="MySQL-405"><a href="#MySQL-405"><span class="linenos">405</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="MySQL-406"><a href="#MySQL-406"><span class="linenos">406</span></a> <span class="p">}</span> +</span><span id="MySQL-407"><a href="#MySQL-407"><span class="linenos">407</span></a> +</span><span id="MySQL-408"><a href="#MySQL-408"><span class="linenos">408</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="MySQL-409"><a href="#MySQL-409"><span class="linenos">409</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">)</span> +</span><span id="MySQL-410"><a href="#MySQL-410"><span class="linenos">410</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">)</span> +</span><span id="MySQL-411"><a href="#MySQL-411"><span class="linenos">411</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">)</span> +</span><span id="MySQL-412"><a href="#MySQL-412"><span class="linenos">412</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">)</span> +</span><span id="MySQL-413"><a href="#MySQL-413"><span class="linenos">413</span></a> +</span><span id="MySQL-414"><a href="#MySQL-414"><span class="linenos">414</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL-415"><a href="#MySQL-415"><span class="linenos">415</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="MySQL-416"><a href="#MySQL-416"><span class="linenos">416</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="MySQL-417"><a href="#MySQL-417"><span class="linenos">417</span></a> <span class="p">}</span> +</span><span id="MySQL-418"><a href="#MySQL-418"><span class="linenos">418</span></a> +</span><span id="MySQL-419"><a href="#MySQL-419"><span class="linenos">419</span></a> <span class="k">def</span> <span class="nf">show_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><span id="MySQL-420"><a href="#MySQL-420"><span class="linenos">420</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL-421"><a href="#MySQL-421"><span class="linenos">421</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL-422"><a href="#MySQL-422"><span class="linenos">422</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="MySQL-423"><a href="#MySQL-423"><span class="linenos">423</span></a> -</span><span id="MySQL-424"><a href="#MySQL-424"><span class="linenos">424</span></a> <span class="k">def</span> <span class="nf">_parse_set_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="MySQL-425"><a href="#MySQL-425"><span class="linenos">425</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">)</span> -</span><span id="MySQL-426"><a href="#MySQL-426"><span class="linenos">426</span></a> <span class="n">characteristics</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="MySQL-427"><a href="#MySQL-427"><span class="linenos">427</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_CHARACTERISTICS</span><span class="p">)</span> -</span><span id="MySQL-428"><a href="#MySQL-428"><span class="linenos">428</span></a> <span class="p">)</span> -</span><span id="MySQL-429"><a href="#MySQL-429"><span class="linenos">429</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><span id="MySQL-430"><a href="#MySQL-430"><span class="linenos">430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL-431"><a href="#MySQL-431"><span class="linenos">431</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">characteristics</span><span class="p">,</span> -</span><span id="MySQL-432"><a href="#MySQL-432"><span class="linenos">432</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> -</span><span id="MySQL-433"><a href="#MySQL-433"><span class="linenos">433</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> -</span><span id="MySQL-434"><a href="#MySQL-434"><span class="linenos">434</span></a> <span class="p">)</span> +</span><span id="MySQL-424"><a href="#MySQL-424"><span class="linenos">424</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> +</span><span id="MySQL-425"><a href="#MySQL-425"><span class="linenos">425</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL-426"><a href="#MySQL-426"><span class="linenos">426</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> +</span><span id="MySQL-427"><a href="#MySQL-427"><span class="linenos">427</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL-428"><a href="#MySQL-428"><span class="linenos">428</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> +</span><span id="MySQL-429"><a href="#MySQL-429"><span class="linenos">429</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL-430"><a href="#MySQL-430"><span class="linenos">430</span></a> +</span><span id="MySQL-431"><a href="#MySQL-431"><span class="linenos">431</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> +</span><span id="MySQL-432"><a href="#MySQL-432"><span class="linenos">432</span></a> +</span><span id="MySQL-433"><a href="#MySQL-433"><span class="linenos">433</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> +</span><span id="MySQL-434"><a href="#MySQL-434"><span class="linenos">434</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> </span><span id="MySQL-435"><a href="#MySQL-435"><span class="linenos">435</span></a> -</span><span id="MySQL-436"><a href="#MySQL-436"><span class="linenos">436</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="MySQL-437"><a href="#MySQL-437"><span class="linenos">437</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="MySQL-438"><a href="#MySQL-438"><span class="linenos">438</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="MySQL-439"><a href="#MySQL-439"><span class="linenos">439</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="MySQL-440"><a href="#MySQL-440"><span class="linenos">440</span></a> -</span><span id="MySQL-441"><a href="#MySQL-441"><span class="linenos">441</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL-442"><a href="#MySQL-442"><span class="linenos">442</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="MySQL-443"><a href="#MySQL-443"><span class="linenos">443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> -</span><span id="MySQL-444"><a href="#MySQL-444"><span class="linenos">444</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="MySQL-445"><a href="#MySQL-445"><span class="linenos">445</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="MySQL-446"><a href="#MySQL-446"><span class="linenos">446</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="MySQL-447"><a href="#MySQL-447"><span class="linenos">447</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="MySQL-448"><a href="#MySQL-448"><span class="linenos">448</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="MySQL-449"><a href="#MySQL-449"><span class="linenos">449</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="MySQL-450"><a href="#MySQL-450"><span class="linenos">450</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATEDIFF(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="MySQL-451"><a href="#MySQL-451"><span class="linenos">451</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="MySQL-452"><a href="#MySQL-452"><span class="linenos">452</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">:</span> <span class="n">_date_trunc_sql</span><span class="p">,</span> -</span><span id="MySQL-453"><a href="#MySQL-453"><span class="linenos">453</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="MySQL-454"><a href="#MySQL-454"><span class="linenos">454</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> -</span><span id="MySQL-455"><a href="#MySQL-455"><span class="linenos">455</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> -</span><span id="MySQL-456"><a href="#MySQL-456"><span class="linenos">456</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> -</span><span id="MySQL-457"><a href="#MySQL-457"><span class="linenos">457</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</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="sa">f</span><span class="s2">"""GROUP_CONCAT(</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="s2">"this"</span><span class="p">)</span><span class="si">}</span><span class="s2"> SEPARATOR </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="s2">"separator"</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"','"</span><span class="si">}</span><span class="s2">)"""</span><span class="p">,</span> -</span><span id="MySQL-458"><a href="#MySQL-458"><span class="linenos">458</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> -</span><span id="MySQL-459"><a href="#MySQL-459"><span class="linenos">459</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> -</span><span id="MySQL-460"><a href="#MySQL-460"><span class="linenos">460</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">_trim_sql</span><span class="p">,</span> -</span><span id="MySQL-461"><a href="#MySQL-461"><span class="linenos">461</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">),</span> -</span><span id="MySQL-462"><a href="#MySQL-462"><span class="linenos">462</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</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">not_sql</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">)),</span> -</span><span id="MySQL-463"><a href="#MySQL-463"><span class="linenos">463</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="MySQL-464"><a href="#MySQL-464"><span class="linenos">464</span></a> <span class="p">}</span> -</span><span id="MySQL-465"><a href="#MySQL-465"><span class="linenos">465</span></a> -</span><span id="MySQL-466"><a href="#MySQL-466"><span class="linenos">466</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="MySQL-467"><a href="#MySQL-467"><span class="linenos">467</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">)</span> -</span><span id="MySQL-468"><a href="#MySQL-468"><span class="linenos">468</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">)</span> -</span><span id="MySQL-469"><a href="#MySQL-469"><span class="linenos">469</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">)</span> -</span><span id="MySQL-470"><a href="#MySQL-470"><span class="linenos">470</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">)</span> -</span><span id="MySQL-471"><a href="#MySQL-471"><span class="linenos">471</span></a> -</span><span id="MySQL-472"><a href="#MySQL-472"><span class="linenos">472</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL-473"><a href="#MySQL-473"><span class="linenos">473</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="MySQL-474"><a href="#MySQL-474"><span class="linenos">474</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="MySQL-475"><a href="#MySQL-475"><span class="linenos">475</span></a> <span class="p">}</span> -</span><span id="MySQL-476"><a href="#MySQL-476"><span class="linenos">476</span></a> -</span><span id="MySQL-477"><a href="#MySQL-477"><span class="linenos">477</span></a> <span class="k">def</span> <span class="nf">show_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><span id="MySQL-478"><a href="#MySQL-478"><span class="linenos">478</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-479"><a href="#MySQL-479"><span class="linenos">479</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL-480"><a href="#MySQL-480"><span class="linenos">480</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL-481"><a href="#MySQL-481"><span class="linenos">481</span></a> -</span><span id="MySQL-482"><a href="#MySQL-482"><span class="linenos">482</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> -</span><span id="MySQL-483"><a href="#MySQL-483"><span class="linenos">483</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL-484"><a href="#MySQL-484"><span class="linenos">484</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> -</span><span id="MySQL-485"><a href="#MySQL-485"><span class="linenos">485</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-486"><a href="#MySQL-486"><span class="linenos">486</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> -</span><span id="MySQL-487"><a href="#MySQL-487"><span class="linenos">487</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-488"><a href="#MySQL-488"><span class="linenos">488</span></a> -</span><span id="MySQL-489"><a href="#MySQL-489"><span class="linenos">489</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> -</span><span id="MySQL-490"><a href="#MySQL-490"><span class="linenos">490</span></a> -</span><span id="MySQL-491"><a href="#MySQL-491"><span class="linenos">491</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> -</span><span id="MySQL-492"><a href="#MySQL-492"><span class="linenos">492</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> -</span><span id="MySQL-493"><a href="#MySQL-493"><span class="linenos">493</span></a> -</span><span id="MySQL-494"><a href="#MySQL-494"><span class="linenos">494</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> -</span><span id="MySQL-495"><a href="#MySQL-495"><span class="linenos">495</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> -</span><span id="MySQL-496"><a href="#MySQL-496"><span class="linenos">496</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> -</span><span id="MySQL-497"><a href="#MySQL-497"><span class="linenos">497</span></a> -</span><span id="MySQL-498"><a href="#MySQL-498"><span class="linenos">498</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="MySQL-499"><a href="#MySQL-499"><span class="linenos">499</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> -</span><span id="MySQL-500"><a href="#MySQL-500"><span class="linenos">500</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> -</span><span id="MySQL-501"><a href="#MySQL-501"><span class="linenos">501</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL-502"><a href="#MySQL-502"><span class="linenos">502</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="MySQL-503"><a href="#MySQL-503"><span class="linenos">503</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="MySQL-504"><a href="#MySQL-504"><span class="linenos">504</span></a> -</span><span id="MySQL-505"><a href="#MySQL-505"><span class="linenos">505</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> -</span><span id="MySQL-506"><a href="#MySQL-506"><span class="linenos">506</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> -</span><span id="MySQL-507"><a href="#MySQL-507"><span class="linenos">507</span></a> -</span><span id="MySQL-508"><a href="#MySQL-508"><span class="linenos">508</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> -</span><span id="MySQL-509"><a href="#MySQL-509"><span class="linenos">509</span></a> -</span><span id="MySQL-510"><a href="#MySQL-510"><span class="linenos">510</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> -</span><span id="MySQL-511"><a href="#MySQL-511"><span class="linenos">511</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> -</span><span id="MySQL-512"><a href="#MySQL-512"><span class="linenos">512</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL-513"><a href="#MySQL-513"><span class="linenos">513</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="MySQL-514"><a href="#MySQL-514"><span class="linenos">514</span></a> -</span><span id="MySQL-515"><a href="#MySQL-515"><span class="linenos">515</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-516"><a href="#MySQL-516"><span class="linenos">516</span></a> -</span><span id="MySQL-517"><a href="#MySQL-517"><span class="linenos">517</span></a> <span class="k">def</span> <span class="nf">_prefixed_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> -</span><span id="MySQL-518"><a href="#MySQL-518"><span class="linenos">518</span></a> <span class="n">sql</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="n">arg</span><span class="p">)</span> -</span><span id="MySQL-519"><a href="#MySQL-519"><span class="linenos">519</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sql</span><span class="p">:</span> -</span><span id="MySQL-520"><a href="#MySQL-520"><span class="linenos">520</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="MySQL-521"><a href="#MySQL-521"><span class="linenos">521</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-522"><a href="#MySQL-522"><span class="linenos">522</span></a> -</span><span id="MySQL-523"><a href="#MySQL-523"><span class="linenos">523</span></a> <span class="k">def</span> <span class="nf">_oldstyle_limit_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><span id="MySQL-524"><a href="#MySQL-524"><span class="linenos">524</span></a> <span class="n">limit</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">"limit"</span><span class="p">)</span> -</span><span id="MySQL-525"><a href="#MySQL-525"><span class="linenos">525</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> -</span><span id="MySQL-526"><a href="#MySQL-526"><span class="linenos">526</span></a> <span class="k">if</span> <span class="n">limit</span><span class="p">:</span> -</span><span id="MySQL-527"><a href="#MySQL-527"><span class="linenos">527</span></a> <span class="n">limit_offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">offset</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="n">limit</span> -</span><span id="MySQL-528"><a href="#MySQL-528"><span class="linenos">528</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" LIMIT </span><span class="si">{</span><span class="n">limit_offset</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-529"><a href="#MySQL-529"><span class="linenos">529</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="MySQL-530"><a href="#MySQL-530"><span class="linenos">530</span></a> -</span><span id="MySQL-531"><a href="#MySQL-531"><span class="linenos">531</span></a> <span class="k">def</span> <span class="nf">setitem_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><span id="MySQL-532"><a href="#MySQL-532"><span class="linenos">532</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="MySQL-533"><a href="#MySQL-533"><span class="linenos">533</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL-534"><a href="#MySQL-534"><span class="linenos">534</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="MySQL-535"><a href="#MySQL-535"><span class="linenos">535</span></a> <span class="n">expressions</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><span id="MySQL-536"><a href="#MySQL-536"><span class="linenos">536</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="MySQL-537"><a href="#MySQL-537"><span class="linenos">537</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL-538"><a href="#MySQL-538"><span class="linenos">538</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL-539"><a href="#MySQL-539"><span class="linenos">539</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL-540"><a href="#MySQL-540"><span class="linenos">540</span></a> -</span><span id="MySQL-541"><a href="#MySQL-541"><span class="linenos">541</span></a> <span class="k">def</span> <span class="nf">set_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><span id="MySQL-542"><a href="#MySQL-542"><span class="linenos">542</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET </span><span class="si">{</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="si">}</span><span class="s2">"</span> +</span><span id="MySQL-436"><a href="#MySQL-436"><span class="linenos">436</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> +</span><span id="MySQL-437"><a href="#MySQL-437"><span class="linenos">437</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> +</span><span id="MySQL-438"><a href="#MySQL-438"><span class="linenos">438</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> +</span><span id="MySQL-439"><a href="#MySQL-439"><span class="linenos">439</span></a> +</span><span id="MySQL-440"><a href="#MySQL-440"><span class="linenos">440</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="MySQL-441"><a href="#MySQL-441"><span class="linenos">441</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> +</span><span id="MySQL-442"><a href="#MySQL-442"><span class="linenos">442</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> +</span><span id="MySQL-443"><a href="#MySQL-443"><span class="linenos">443</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL-444"><a href="#MySQL-444"><span class="linenos">444</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="MySQL-445"><a href="#MySQL-445"><span class="linenos">445</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="MySQL-446"><a href="#MySQL-446"><span class="linenos">446</span></a> +</span><span id="MySQL-447"><a href="#MySQL-447"><span class="linenos">447</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> +</span><span id="MySQL-448"><a href="#MySQL-448"><span class="linenos">448</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> +</span><span id="MySQL-449"><a href="#MySQL-449"><span class="linenos">449</span></a> +</span><span id="MySQL-450"><a href="#MySQL-450"><span class="linenos">450</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> +</span><span id="MySQL-451"><a href="#MySQL-451"><span class="linenos">451</span></a> +</span><span id="MySQL-452"><a href="#MySQL-452"><span class="linenos">452</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> +</span><span id="MySQL-453"><a href="#MySQL-453"><span class="linenos">453</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> +</span><span id="MySQL-454"><a href="#MySQL-454"><span class="linenos">454</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL-455"><a href="#MySQL-455"><span class="linenos">455</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="MySQL-456"><a href="#MySQL-456"><span class="linenos">456</span></a> +</span><span id="MySQL-457"><a href="#MySQL-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL-458"><a href="#MySQL-458"><span class="linenos">458</span></a> +</span><span id="MySQL-459"><a href="#MySQL-459"><span class="linenos">459</span></a> <span class="k">def</span> <span class="nf">_prefixed_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> +</span><span id="MySQL-460"><a href="#MySQL-460"><span class="linenos">460</span></a> <span class="n">sql</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="n">arg</span><span class="p">)</span> +</span><span id="MySQL-461"><a href="#MySQL-461"><span class="linenos">461</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sql</span><span class="p">:</span> +</span><span id="MySQL-462"><a href="#MySQL-462"><span class="linenos">462</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="MySQL-463"><a href="#MySQL-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL-464"><a href="#MySQL-464"><span class="linenos">464</span></a> +</span><span id="MySQL-465"><a href="#MySQL-465"><span class="linenos">465</span></a> <span class="k">def</span> <span class="nf">_oldstyle_limit_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><span id="MySQL-466"><a href="#MySQL-466"><span class="linenos">466</span></a> <span class="n">limit</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">"limit"</span><span class="p">)</span> +</span><span id="MySQL-467"><a href="#MySQL-467"><span class="linenos">467</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> +</span><span id="MySQL-468"><a href="#MySQL-468"><span class="linenos">468</span></a> <span class="k">if</span> <span class="n">limit</span><span class="p">:</span> +</span><span id="MySQL-469"><a href="#MySQL-469"><span class="linenos">469</span></a> <span class="n">limit_offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">offset</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="n">limit</span> +</span><span id="MySQL-470"><a href="#MySQL-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" LIMIT </span><span class="si">{</span><span class="n">limit_offset</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL-471"><a href="#MySQL-471"><span class="linenos">471</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -1099,6 +951,7 @@ <dd id="MySQL.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="MySQL.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="MySQL.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="MySQL.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="MySQL.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="MySQL.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -1179,7 +1032,7 @@ </span><span id="MySQL.Tokenizer-178"><a href="#MySQL.Tokenizer-178"><span class="linenos">178</span></a> <span class="s2">"@@"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">,</span> </span><span id="MySQL.Tokenizer-179"><a href="#MySQL.Tokenizer-179"><span class="linenos">179</span></a> <span class="p">}</span> </span><span id="MySQL.Tokenizer-180"><a href="#MySQL.Tokenizer-180"><span class="linenos">180</span></a> -</span><span id="MySQL.Tokenizer-181"><a href="#MySQL.Tokenizer-181"><span class="linenos">181</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">}</span> +</span><span id="MySQL.Tokenizer-181"><a href="#MySQL.Tokenizer-181"><span class="linenos">181</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">}</span> </span></pre></div> @@ -1239,226 +1092,169 @@ </span><span id="MySQL.Parser-212"><a href="#MySQL.Parser-212"><span class="linenos">212</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="MySQL.Parser-213"><a href="#MySQL.Parser-213"><span class="linenos">213</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="MySQL.Parser-214"><a href="#MySQL.Parser-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</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_show</span><span class="p">(),</span> -</span><span id="MySQL.Parser-215"><a href="#MySQL.Parser-215"><span class="linenos">215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</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_set</span><span class="p">(),</span> -</span><span id="MySQL.Parser-216"><a href="#MySQL.Parser-216"><span class="linenos">216</span></a> <span class="p">}</span> -</span><span id="MySQL.Parser-217"><a href="#MySQL.Parser-217"><span class="linenos">217</span></a> -</span><span id="MySQL.Parser-218"><a href="#MySQL.Parser-218"><span class="linenos">218</span></a> <span class="n">SHOW_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL.Parser-219"><a href="#MySQL.Parser-219"><span class="linenos">219</span></a> <span class="s2">"BINARY LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-220"><a href="#MySQL.Parser-220"><span class="linenos">220</span></a> <span class="s2">"MASTER LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-221"><a href="#MySQL.Parser-221"><span class="linenos">221</span></a> <span class="s2">"BINLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINLOG EVENTS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-222"><a href="#MySQL.Parser-222"><span class="linenos">222</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL.Parser-223"><a href="#MySQL.Parser-223"><span class="linenos">223</span></a> <span class="s2">"CHARSET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL.Parser-224"><a href="#MySQL.Parser-224"><span class="linenos">224</span></a> <span class="s2">"COLLATION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLLATION"</span><span class="p">),</span> -</span><span id="MySQL.Parser-225"><a href="#MySQL.Parser-225"><span class="linenos">225</span></a> <span class="s2">"FULL COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-226"><a href="#MySQL.Parser-226"><span class="linenos">226</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> -</span><span id="MySQL.Parser-227"><a href="#MySQL.Parser-227"><span class="linenos">227</span></a> <span class="s2">"CREATE DATABASE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE DATABASE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-228"><a href="#MySQL.Parser-228"><span class="linenos">228</span></a> <span class="s2">"CREATE EVENT"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE EVENT"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-229"><a href="#MySQL.Parser-229"><span class="linenos">229</span></a> <span class="s2">"CREATE FUNCTION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE FUNCTION"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-230"><a href="#MySQL.Parser-230"><span class="linenos">230</span></a> <span class="s2">"CREATE PROCEDURE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE PROCEDURE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-231"><a href="#MySQL.Parser-231"><span class="linenos">231</span></a> <span class="s2">"CREATE TABLE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TABLE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-232"><a href="#MySQL.Parser-232"><span class="linenos">232</span></a> <span class="s2">"CREATE TRIGGER"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TRIGGER"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-233"><a href="#MySQL.Parser-233"><span class="linenos">233</span></a> <span class="s2">"CREATE VIEW"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE VIEW"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-234"><a href="#MySQL.Parser-234"><span class="linenos">234</span></a> <span class="s2">"DATABASES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"DATABASES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-235"><a href="#MySQL.Parser-235"><span class="linenos">235</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-236"><a href="#MySQL.Parser-236"><span class="linenos">236</span></a> <span class="s2">"STORAGE ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-237"><a href="#MySQL.Parser-237"><span class="linenos">237</span></a> <span class="s2">"ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-238"><a href="#MySQL.Parser-238"><span class="linenos">238</span></a> <span class="s2">"ERRORS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ERRORS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-239"><a href="#MySQL.Parser-239"><span class="linenos">239</span></a> <span class="s2">"EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"EVENTS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-240"><a href="#MySQL.Parser-240"><span class="linenos">240</span></a> <span class="s2">"FUNCTION CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-241"><a href="#MySQL.Parser-241"><span class="linenos">241</span></a> <span class="s2">"FUNCTION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-242"><a href="#MySQL.Parser-242"><span class="linenos">242</span></a> <span class="s2">"GRANTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"GRANTS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FOR"</span><span class="p">),</span> -</span><span id="MySQL.Parser-243"><a href="#MySQL.Parser-243"><span class="linenos">243</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"INDEX"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> -</span><span id="MySQL.Parser-244"><a href="#MySQL.Parser-244"><span class="linenos">244</span></a> <span class="s2">"MASTER STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"MASTER STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-245"><a href="#MySQL.Parser-245"><span class="linenos">245</span></a> <span class="s2">"OPEN TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"OPEN TABLES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-246"><a href="#MySQL.Parser-246"><span class="linenos">246</span></a> <span class="s2">"PLUGINS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PLUGINS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-247"><a href="#MySQL.Parser-247"><span class="linenos">247</span></a> <span class="s2">"PROCEDURE CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-248"><a href="#MySQL.Parser-248"><span class="linenos">248</span></a> <span class="s2">"PROCEDURE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-249"><a href="#MySQL.Parser-249"><span class="linenos">249</span></a> <span class="s2">"PRIVILEGES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PRIVILEGES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-250"><a href="#MySQL.Parser-250"><span class="linenos">250</span></a> <span class="s2">"FULL PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-251"><a href="#MySQL.Parser-251"><span class="linenos">251</span></a> <span class="s2">"PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">),</span> -</span><span id="MySQL.Parser-252"><a href="#MySQL.Parser-252"><span class="linenos">252</span></a> <span class="s2">"PROFILE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILE"</span><span class="p">),</span> -</span><span id="MySQL.Parser-253"><a href="#MySQL.Parser-253"><span class="linenos">253</span></a> <span class="s2">"PROFILES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-254"><a href="#MySQL.Parser-254"><span class="linenos">254</span></a> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"RELAYLOG EVENTS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-255"><a href="#MySQL.Parser-255"><span class="linenos">255</span></a> <span class="s2">"REPLICAS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-256"><a href="#MySQL.Parser-256"><span class="linenos">256</span></a> <span class="s2">"SLAVE HOSTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-257"><a href="#MySQL.Parser-257"><span class="linenos">257</span></a> <span class="s2">"REPLICA STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-258"><a href="#MySQL.Parser-258"><span class="linenos">258</span></a> <span class="s2">"SLAVE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-259"><a href="#MySQL.Parser-259"><span class="linenos">259</span></a> <span class="s2">"GLOBAL STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-260"><a href="#MySQL.Parser-260"><span class="linenos">260</span></a> <span class="s2">"SESSION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-261"><a href="#MySQL.Parser-261"><span class="linenos">261</span></a> <span class="s2">"STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-262"><a href="#MySQL.Parser-262"><span class="linenos">262</span></a> <span class="s2">"TABLE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLE STATUS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-263"><a href="#MySQL.Parser-263"><span class="linenos">263</span></a> <span class="s2">"FULL TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-264"><a href="#MySQL.Parser-264"><span class="linenos">264</span></a> <span class="s2">"TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-265"><a href="#MySQL.Parser-265"><span class="linenos">265</span></a> <span class="s2">"TRIGGERS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TRIGGERS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-266"><a href="#MySQL.Parser-266"><span class="linenos">266</span></a> <span class="s2">"GLOBAL VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="MySQL.Parser-267"><a href="#MySQL.Parser-267"><span class="linenos">267</span></a> <span class="s2">"SESSION VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-268"><a href="#MySQL.Parser-268"><span class="linenos">268</span></a> <span class="s2">"VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> -</span><span id="MySQL.Parser-269"><a href="#MySQL.Parser-269"><span class="linenos">269</span></a> <span class="s2">"WARNINGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"WARNINGS"</span><span class="p">),</span> -</span><span id="MySQL.Parser-270"><a href="#MySQL.Parser-270"><span class="linenos">270</span></a> <span class="p">}</span> -</span><span id="MySQL.Parser-271"><a href="#MySQL.Parser-271"><span class="linenos">271</span></a> -</span><span id="MySQL.Parser-272"><a href="#MySQL.Parser-272"><span class="linenos">272</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL.Parser-273"><a href="#MySQL.Parser-273"><span class="linenos">273</span></a> <span class="s2">"GLOBAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"GLOBAL"</span><span class="p">),</span> -</span><span id="MySQL.Parser-274"><a href="#MySQL.Parser-274"><span class="linenos">274</span></a> <span class="s2">"PERSIST"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST"</span><span class="p">),</span> -</span><span id="MySQL.Parser-275"><a href="#MySQL.Parser-275"><span class="linenos">275</span></a> <span class="s2">"PERSIST_ONLY"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST_ONLY"</span><span class="p">),</span> -</span><span id="MySQL.Parser-276"><a href="#MySQL.Parser-276"><span class="linenos">276</span></a> <span class="s2">"SESSION"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"SESSION"</span><span class="p">),</span> -</span><span id="MySQL.Parser-277"><a href="#MySQL.Parser-277"><span class="linenos">277</span></a> <span class="s2">"LOCAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">),</span> -</span><span id="MySQL.Parser-278"><a href="#MySQL.Parser-278"><span class="linenos">278</span></a> <span class="s2">"CHARACTER SET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL.Parser-279"><a href="#MySQL.Parser-279"><span class="linenos">279</span></a> <span class="s2">"CHARSET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> -</span><span id="MySQL.Parser-280"><a href="#MySQL.Parser-280"><span class="linenos">280</span></a> <span class="s2">"NAMES"</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_set_item_names</span><span class="p">(),</span> -</span><span id="MySQL.Parser-281"><a href="#MySQL.Parser-281"><span class="linenos">281</span></a> <span class="s2">"TRANSACTION"</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_set_transaction</span><span class="p">(),</span> -</span><span id="MySQL.Parser-282"><a href="#MySQL.Parser-282"><span class="linenos">282</span></a> <span class="p">}</span> -</span><span id="MySQL.Parser-283"><a href="#MySQL.Parser-283"><span class="linenos">283</span></a> -</span><span id="MySQL.Parser-284"><a href="#MySQL.Parser-284"><span class="linenos">284</span></a> <span class="n">PROFILE_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL.Parser-285"><a href="#MySQL.Parser-285"><span class="linenos">285</span></a> <span class="s2">"ALL"</span><span class="p">,</span> -</span><span id="MySQL.Parser-286"><a href="#MySQL.Parser-286"><span class="linenos">286</span></a> <span class="s2">"BLOCK IO"</span><span class="p">,</span> -</span><span id="MySQL.Parser-287"><a href="#MySQL.Parser-287"><span class="linenos">287</span></a> <span class="s2">"CONTEXT SWITCHES"</span><span class="p">,</span> -</span><span id="MySQL.Parser-288"><a href="#MySQL.Parser-288"><span class="linenos">288</span></a> <span class="s2">"CPU"</span><span class="p">,</span> -</span><span id="MySQL.Parser-289"><a href="#MySQL.Parser-289"><span class="linenos">289</span></a> <span class="s2">"IPC"</span><span class="p">,</span> -</span><span id="MySQL.Parser-290"><a href="#MySQL.Parser-290"><span class="linenos">290</span></a> <span class="s2">"MEMORY"</span><span class="p">,</span> -</span><span id="MySQL.Parser-291"><a href="#MySQL.Parser-291"><span class="linenos">291</span></a> <span class="s2">"PAGE FAULTS"</span><span class="p">,</span> -</span><span id="MySQL.Parser-292"><a href="#MySQL.Parser-292"><span class="linenos">292</span></a> <span class="s2">"SOURCE"</span><span class="p">,</span> -</span><span id="MySQL.Parser-293"><a href="#MySQL.Parser-293"><span class="linenos">293</span></a> <span class="s2">"SWAPS"</span><span class="p">,</span> -</span><span id="MySQL.Parser-294"><a href="#MySQL.Parser-294"><span class="linenos">294</span></a> <span class="p">}</span> -</span><span id="MySQL.Parser-295"><a href="#MySQL.Parser-295"><span class="linenos">295</span></a> -</span><span id="MySQL.Parser-296"><a href="#MySQL.Parser-296"><span class="linenos">296</span></a> <span class="n">TRANSACTION_CHARACTERISTICS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL.Parser-297"><a href="#MySQL.Parser-297"><span class="linenos">297</span></a> <span class="s2">"ISOLATION LEVEL REPEATABLE READ"</span><span class="p">,</span> -</span><span id="MySQL.Parser-298"><a href="#MySQL.Parser-298"><span class="linenos">298</span></a> <span class="s2">"ISOLATION LEVEL READ COMMITTED"</span><span class="p">,</span> -</span><span id="MySQL.Parser-299"><a href="#MySQL.Parser-299"><span class="linenos">299</span></a> <span class="s2">"ISOLATION LEVEL READ UNCOMMITTED"</span><span class="p">,</span> -</span><span id="MySQL.Parser-300"><a href="#MySQL.Parser-300"><span class="linenos">300</span></a> <span class="s2">"ISOLATION LEVEL SERIALIZABLE"</span><span class="p">,</span> -</span><span id="MySQL.Parser-301"><a href="#MySQL.Parser-301"><span class="linenos">301</span></a> <span class="s2">"READ WRITE"</span><span class="p">,</span> -</span><span id="MySQL.Parser-302"><a href="#MySQL.Parser-302"><span class="linenos">302</span></a> <span class="s2">"READ ONLY"</span><span class="p">,</span> -</span><span id="MySQL.Parser-303"><a href="#MySQL.Parser-303"><span class="linenos">303</span></a> <span class="p">}</span> -</span><span id="MySQL.Parser-304"><a href="#MySQL.Parser-304"><span class="linenos">304</span></a> -</span><span id="MySQL.Parser-305"><a href="#MySQL.Parser-305"><span class="linenos">305</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="MySQL.Parser-306"><a href="#MySQL.Parser-306"><span class="linenos">306</span></a> -</span><span id="MySQL.Parser-307"><a href="#MySQL.Parser-307"><span class="linenos">307</span></a> <span class="k">def</span> <span class="nf">_parse_show_mysql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="MySQL.Parser-308"><a href="#MySQL.Parser-308"><span class="linenos">308</span></a> <span class="k">if</span> <span class="n">target</span><span class="p">:</span> -</span><span id="MySQL.Parser-309"><a href="#MySQL.Parser-309"><span class="linenos">309</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="MySQL.Parser-310"><a href="#MySQL.Parser-310"><span class="linenos">310</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="n">target</span><span class="p">)</span> -</span><span id="MySQL.Parser-311"><a href="#MySQL.Parser-311"><span class="linenos">311</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL.Parser-312"><a href="#MySQL.Parser-312"><span class="linenos">312</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Parser-313"><a href="#MySQL.Parser-313"><span class="linenos">313</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-314"><a href="#MySQL.Parser-314"><span class="linenos">314</span></a> -</span><span id="MySQL.Parser-315"><a href="#MySQL.Parser-315"><span class="linenos">315</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-316"><a href="#MySQL.Parser-316"><span class="linenos">316</span></a> -</span><span id="MySQL.Parser-317"><a href="#MySQL.Parser-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"BINLOG EVENTS"</span><span class="p">,</span> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">}:</span> -</span><span id="MySQL.Parser-318"><a href="#MySQL.Parser-318"><span class="linenos">318</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-319"><a href="#MySQL.Parser-319"><span class="linenos">319</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-320"><a href="#MySQL.Parser-320"><span class="linenos">320</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Parser-321"><a href="#MySQL.Parser-321"><span class="linenos">321</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-322"><a href="#MySQL.Parser-322"><span class="linenos">322</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-323"><a href="#MySQL.Parser-323"><span class="linenos">323</span></a> -</span><span id="MySQL.Parser-324"><a href="#MySQL.Parser-324"><span class="linenos">324</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"CHANNEL"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-215"><a href="#MySQL.Parser-215"><span class="linenos">215</span></a> <span class="p">}</span> +</span><span id="MySQL.Parser-216"><a href="#MySQL.Parser-216"><span class="linenos">216</span></a> +</span><span id="MySQL.Parser-217"><a href="#MySQL.Parser-217"><span class="linenos">217</span></a> <span class="n">SHOW_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL.Parser-218"><a href="#MySQL.Parser-218"><span class="linenos">218</span></a> <span class="s2">"BINARY LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-219"><a href="#MySQL.Parser-219"><span class="linenos">219</span></a> <span class="s2">"MASTER LOGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINARY LOGS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-220"><a href="#MySQL.Parser-220"><span class="linenos">220</span></a> <span class="s2">"BINLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"BINLOG EVENTS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-221"><a href="#MySQL.Parser-221"><span class="linenos">221</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL.Parser-222"><a href="#MySQL.Parser-222"><span class="linenos">222</span></a> <span class="s2">"CHARSET"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL.Parser-223"><a href="#MySQL.Parser-223"><span class="linenos">223</span></a> <span class="s2">"COLLATION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLLATION"</span><span class="p">),</span> +</span><span id="MySQL.Parser-224"><a href="#MySQL.Parser-224"><span class="linenos">224</span></a> <span class="s2">"FULL COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-225"><a href="#MySQL.Parser-225"><span class="linenos">225</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> +</span><span id="MySQL.Parser-226"><a href="#MySQL.Parser-226"><span class="linenos">226</span></a> <span class="s2">"CREATE DATABASE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE DATABASE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-227"><a href="#MySQL.Parser-227"><span class="linenos">227</span></a> <span class="s2">"CREATE EVENT"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE EVENT"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-228"><a href="#MySQL.Parser-228"><span class="linenos">228</span></a> <span class="s2">"CREATE FUNCTION"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE FUNCTION"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-229"><a href="#MySQL.Parser-229"><span class="linenos">229</span></a> <span class="s2">"CREATE PROCEDURE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE PROCEDURE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-230"><a href="#MySQL.Parser-230"><span class="linenos">230</span></a> <span class="s2">"CREATE TABLE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TABLE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-231"><a href="#MySQL.Parser-231"><span class="linenos">231</span></a> <span class="s2">"CREATE TRIGGER"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE TRIGGER"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-232"><a href="#MySQL.Parser-232"><span class="linenos">232</span></a> <span class="s2">"CREATE VIEW"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"CREATE VIEW"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-233"><a href="#MySQL.Parser-233"><span class="linenos">233</span></a> <span class="s2">"DATABASES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"DATABASES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-234"><a href="#MySQL.Parser-234"><span class="linenos">234</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-235"><a href="#MySQL.Parser-235"><span class="linenos">235</span></a> <span class="s2">"STORAGE ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-236"><a href="#MySQL.Parser-236"><span class="linenos">236</span></a> <span class="s2">"ENGINES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ENGINES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-237"><a href="#MySQL.Parser-237"><span class="linenos">237</span></a> <span class="s2">"ERRORS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"ERRORS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-238"><a href="#MySQL.Parser-238"><span class="linenos">238</span></a> <span class="s2">"EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"EVENTS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-239"><a href="#MySQL.Parser-239"><span class="linenos">239</span></a> <span class="s2">"FUNCTION CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-240"><a href="#MySQL.Parser-240"><span class="linenos">240</span></a> <span class="s2">"FUNCTION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"FUNCTION STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-241"><a href="#MySQL.Parser-241"><span class="linenos">241</span></a> <span class="s2">"GRANTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"GRANTS"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FOR"</span><span class="p">),</span> +</span><span id="MySQL.Parser-242"><a href="#MySQL.Parser-242"><span class="linenos">242</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"INDEX"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">),</span> +</span><span id="MySQL.Parser-243"><a href="#MySQL.Parser-243"><span class="linenos">243</span></a> <span class="s2">"MASTER STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"MASTER STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-244"><a href="#MySQL.Parser-244"><span class="linenos">244</span></a> <span class="s2">"OPEN TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"OPEN TABLES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-245"><a href="#MySQL.Parser-245"><span class="linenos">245</span></a> <span class="s2">"PLUGINS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PLUGINS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-246"><a href="#MySQL.Parser-246"><span class="linenos">246</span></a> <span class="s2">"PROCEDURE CODE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE CODE"</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-247"><a href="#MySQL.Parser-247"><span class="linenos">247</span></a> <span class="s2">"PROCEDURE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCEDURE STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-248"><a href="#MySQL.Parser-248"><span class="linenos">248</span></a> <span class="s2">"PRIVILEGES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PRIVILEGES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-249"><a href="#MySQL.Parser-249"><span class="linenos">249</span></a> <span class="s2">"FULL PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-250"><a href="#MySQL.Parser-250"><span class="linenos">250</span></a> <span class="s2">"PROCESSLIST"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROCESSLIST"</span><span class="p">),</span> +</span><span id="MySQL.Parser-251"><a href="#MySQL.Parser-251"><span class="linenos">251</span></a> <span class="s2">"PROFILE"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILE"</span><span class="p">),</span> +</span><span id="MySQL.Parser-252"><a href="#MySQL.Parser-252"><span class="linenos">252</span></a> <span class="s2">"PROFILES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"PROFILES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-253"><a href="#MySQL.Parser-253"><span class="linenos">253</span></a> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"RELAYLOG EVENTS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-254"><a href="#MySQL.Parser-254"><span class="linenos">254</span></a> <span class="s2">"REPLICAS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-255"><a href="#MySQL.Parser-255"><span class="linenos">255</span></a> <span class="s2">"SLAVE HOSTS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICAS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-256"><a href="#MySQL.Parser-256"><span class="linenos">256</span></a> <span class="s2">"REPLICA STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-257"><a href="#MySQL.Parser-257"><span class="linenos">257</span></a> <span class="s2">"SLAVE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"REPLICA STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-258"><a href="#MySQL.Parser-258"><span class="linenos">258</span></a> <span class="s2">"GLOBAL STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-259"><a href="#MySQL.Parser-259"><span class="linenos">259</span></a> <span class="s2">"SESSION STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-260"><a href="#MySQL.Parser-260"><span class="linenos">260</span></a> <span class="s2">"STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-261"><a href="#MySQL.Parser-261"><span class="linenos">261</span></a> <span class="s2">"TABLE STATUS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLE STATUS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-262"><a href="#MySQL.Parser-262"><span class="linenos">262</span></a> <span class="s2">"FULL TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-263"><a href="#MySQL.Parser-263"><span class="linenos">263</span></a> <span class="s2">"TABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TABLES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-264"><a href="#MySQL.Parser-264"><span class="linenos">264</span></a> <span class="s2">"TRIGGERS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"TRIGGERS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-265"><a href="#MySQL.Parser-265"><span class="linenos">265</span></a> <span class="s2">"GLOBAL VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="MySQL.Parser-266"><a href="#MySQL.Parser-266"><span class="linenos">266</span></a> <span class="s2">"SESSION VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-267"><a href="#MySQL.Parser-267"><span class="linenos">267</span></a> <span class="s2">"VARIABLES"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"VARIABLES"</span><span class="p">),</span> +</span><span id="MySQL.Parser-268"><a href="#MySQL.Parser-268"><span class="linenos">268</span></a> <span class="s2">"WARNINGS"</span><span class="p">:</span> <span class="n">_show_parser</span><span class="p">(</span><span class="s2">"WARNINGS"</span><span class="p">),</span> +</span><span id="MySQL.Parser-269"><a href="#MySQL.Parser-269"><span class="linenos">269</span></a> <span class="p">}</span> +</span><span id="MySQL.Parser-270"><a href="#MySQL.Parser-270"><span class="linenos">270</span></a> +</span><span id="MySQL.Parser-271"><a href="#MySQL.Parser-271"><span class="linenos">271</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL.Parser-272"><a href="#MySQL.Parser-272"><span class="linenos">272</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> +</span><span id="MySQL.Parser-273"><a href="#MySQL.Parser-273"><span class="linenos">273</span></a> <span class="s2">"PERSIST"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST"</span><span class="p">),</span> +</span><span id="MySQL.Parser-274"><a href="#MySQL.Parser-274"><span class="linenos">274</span></a> <span class="s2">"PERSIST_ONLY"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"PERSIST_ONLY"</span><span class="p">),</span> +</span><span id="MySQL.Parser-275"><a href="#MySQL.Parser-275"><span class="linenos">275</span></a> <span class="s2">"CHARACTER SET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL.Parser-276"><a href="#MySQL.Parser-276"><span class="linenos">276</span></a> <span class="s2">"CHARSET"</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_set_item_charset</span><span class="p">(</span><span class="s2">"CHARACTER SET"</span><span class="p">),</span> +</span><span id="MySQL.Parser-277"><a href="#MySQL.Parser-277"><span class="linenos">277</span></a> <span class="s2">"NAMES"</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_set_item_names</span><span class="p">(),</span> +</span><span id="MySQL.Parser-278"><a href="#MySQL.Parser-278"><span class="linenos">278</span></a> <span class="p">}</span> +</span><span id="MySQL.Parser-279"><a href="#MySQL.Parser-279"><span class="linenos">279</span></a> +</span><span id="MySQL.Parser-280"><a href="#MySQL.Parser-280"><span class="linenos">280</span></a> <span class="n">PROFILE_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL.Parser-281"><a href="#MySQL.Parser-281"><span class="linenos">281</span></a> <span class="s2">"ALL"</span><span class="p">,</span> +</span><span id="MySQL.Parser-282"><a href="#MySQL.Parser-282"><span class="linenos">282</span></a> <span class="s2">"BLOCK IO"</span><span class="p">,</span> +</span><span id="MySQL.Parser-283"><a href="#MySQL.Parser-283"><span class="linenos">283</span></a> <span class="s2">"CONTEXT SWITCHES"</span><span class="p">,</span> +</span><span id="MySQL.Parser-284"><a href="#MySQL.Parser-284"><span class="linenos">284</span></a> <span class="s2">"CPU"</span><span class="p">,</span> +</span><span id="MySQL.Parser-285"><a href="#MySQL.Parser-285"><span class="linenos">285</span></a> <span class="s2">"IPC"</span><span class="p">,</span> +</span><span id="MySQL.Parser-286"><a href="#MySQL.Parser-286"><span class="linenos">286</span></a> <span class="s2">"MEMORY"</span><span class="p">,</span> +</span><span id="MySQL.Parser-287"><a href="#MySQL.Parser-287"><span class="linenos">287</span></a> <span class="s2">"PAGE FAULTS"</span><span class="p">,</span> +</span><span id="MySQL.Parser-288"><a href="#MySQL.Parser-288"><span class="linenos">288</span></a> <span class="s2">"SOURCE"</span><span class="p">,</span> +</span><span id="MySQL.Parser-289"><a href="#MySQL.Parser-289"><span class="linenos">289</span></a> <span class="s2">"SWAPS"</span><span class="p">,</span> +</span><span id="MySQL.Parser-290"><a href="#MySQL.Parser-290"><span class="linenos">290</span></a> <span class="p">}</span> +</span><span id="MySQL.Parser-291"><a href="#MySQL.Parser-291"><span class="linenos">291</span></a> +</span><span id="MySQL.Parser-292"><a href="#MySQL.Parser-292"><span class="linenos">292</span></a> <span class="k">def</span> <span class="nf">_parse_show_mysql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">full</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="MySQL.Parser-293"><a href="#MySQL.Parser-293"><span class="linenos">293</span></a> <span class="k">if</span> <span class="n">target</span><span class="p">:</span> +</span><span id="MySQL.Parser-294"><a href="#MySQL.Parser-294"><span class="linenos">294</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">target</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="MySQL.Parser-295"><a href="#MySQL.Parser-295"><span class="linenos">295</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="n">target</span><span class="p">)</span> +</span><span id="MySQL.Parser-296"><a href="#MySQL.Parser-296"><span class="linenos">296</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="MySQL.Parser-297"><a href="#MySQL.Parser-297"><span class="linenos">297</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Parser-298"><a href="#MySQL.Parser-298"><span class="linenos">298</span></a> <span class="n">target_id</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-299"><a href="#MySQL.Parser-299"><span class="linenos">299</span></a> +</span><span id="MySQL.Parser-300"><a href="#MySQL.Parser-300"><span class="linenos">300</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-301"><a href="#MySQL.Parser-301"><span class="linenos">301</span></a> +</span><span id="MySQL.Parser-302"><a href="#MySQL.Parser-302"><span class="linenos">302</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"BINLOG EVENTS"</span><span class="p">,</span> <span class="s2">"RELAYLOG EVENTS"</span><span class="p">}:</span> +</span><span id="MySQL.Parser-303"><a href="#MySQL.Parser-303"><span class="linenos">303</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-304"><a href="#MySQL.Parser-304"><span class="linenos">304</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-305"><a href="#MySQL.Parser-305"><span class="linenos">305</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Parser-306"><a href="#MySQL.Parser-306"><span class="linenos">306</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-307"><a href="#MySQL.Parser-307"><span class="linenos">307</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-308"><a href="#MySQL.Parser-308"><span class="linenos">308</span></a> +</span><span id="MySQL.Parser-309"><a href="#MySQL.Parser-309"><span class="linenos">309</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"CHANNEL"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-310"><a href="#MySQL.Parser-310"><span class="linenos">310</span></a> +</span><span id="MySQL.Parser-311"><a href="#MySQL.Parser-311"><span class="linenos">311</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-312"><a href="#MySQL.Parser-312"><span class="linenos">312</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()</span> +</span><span id="MySQL.Parser-313"><a href="#MySQL.Parser-313"><span class="linenos">313</span></a> +</span><span id="MySQL.Parser-314"><a href="#MySQL.Parser-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="n">this</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="MySQL.Parser-315"><a href="#MySQL.Parser-315"><span class="linenos">315</span></a> <span class="n">types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROFILE_TYPES</span><span class="p">))</span> +</span><span id="MySQL.Parser-316"><a href="#MySQL.Parser-316"><span class="linenos">316</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"QUERY"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-317"><a href="#MySQL.Parser-317"><span class="linenos">317</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-318"><a href="#MySQL.Parser-318"><span class="linenos">318</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-319"><a href="#MySQL.Parser-319"><span class="linenos">319</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Parser-320"><a href="#MySQL.Parser-320"><span class="linenos">320</span></a> <span class="n">types</span><span class="p">,</span> <span class="n">query</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-321"><a href="#MySQL.Parser-321"><span class="linenos">321</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_oldstyle_limit</span><span class="p">()</span> +</span><span id="MySQL.Parser-322"><a href="#MySQL.Parser-322"><span class="linenos">322</span></a> +</span><span id="MySQL.Parser-323"><a href="#MySQL.Parser-323"><span class="linenos">323</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MUTEX"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-324"><a href="#MySQL.Parser-324"><span class="linenos">324</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">)</span> <span class="k">else</span> <span class="n">mutex</span> </span><span id="MySQL.Parser-325"><a href="#MySQL.Parser-325"><span class="linenos">325</span></a> -</span><span id="MySQL.Parser-326"><a href="#MySQL.Parser-326"><span class="linenos">326</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-327"><a href="#MySQL.Parser-327"><span class="linenos">327</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()</span> -</span><span id="MySQL.Parser-328"><a href="#MySQL.Parser-328"><span class="linenos">328</span></a> -</span><span id="MySQL.Parser-329"><a href="#MySQL.Parser-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="n">this</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="MySQL.Parser-330"><a href="#MySQL.Parser-330"><span class="linenos">330</span></a> <span class="n">types</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROFILE_TYPES</span><span class="p">))</span> -</span><span id="MySQL.Parser-331"><a href="#MySQL.Parser-331"><span class="linenos">331</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"QUERY"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-332"><a href="#MySQL.Parser-332"><span class="linenos">332</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-333"><a href="#MySQL.Parser-333"><span class="linenos">333</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-334"><a href="#MySQL.Parser-334"><span class="linenos">334</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Parser-335"><a href="#MySQL.Parser-335"><span class="linenos">335</span></a> <span class="n">types</span><span class="p">,</span> <span class="n">query</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-336"><a href="#MySQL.Parser-336"><span class="linenos">336</span></a> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_oldstyle_limit</span><span class="p">()</span> -</span><span id="MySQL.Parser-337"><a href="#MySQL.Parser-337"><span class="linenos">337</span></a> -</span><span id="MySQL.Parser-338"><a href="#MySQL.Parser-338"><span class="linenos">338</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">True</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MUTEX"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-339"><a href="#MySQL.Parser-339"><span class="linenos">339</span></a> <span class="n">mutex</span> <span class="o">=</span> <span class="kc">False</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"STATUS"</span><span class="p">)</span> <span class="k">else</span> <span class="n">mutex</span> -</span><span id="MySQL.Parser-340"><a href="#MySQL.Parser-340"><span class="linenos">340</span></a> -</span><span id="MySQL.Parser-341"><a href="#MySQL.Parser-341"><span class="linenos">341</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><span id="MySQL.Parser-342"><a href="#MySQL.Parser-342"><span class="linenos">342</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Show</span><span class="p">,</span> -</span><span id="MySQL.Parser-343"><a href="#MySQL.Parser-343"><span class="linenos">343</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="MySQL.Parser-344"><a href="#MySQL.Parser-344"><span class="linenos">344</span></a> <span class="n">target</span><span class="o">=</span><span class="n">target_id</span><span class="p">,</span> -</span><span id="MySQL.Parser-345"><a href="#MySQL.Parser-345"><span class="linenos">345</span></a> <span class="n">full</span><span class="o">=</span><span class="n">full</span><span class="p">,</span> -</span><span id="MySQL.Parser-346"><a href="#MySQL.Parser-346"><span class="linenos">346</span></a> <span class="n">log</span><span class="o">=</span><span class="n">log</span><span class="p">,</span> -</span><span id="MySQL.Parser-347"><a href="#MySQL.Parser-347"><span class="linenos">347</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> -</span><span id="MySQL.Parser-348"><a href="#MySQL.Parser-348"><span class="linenos">348</span></a> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> -</span><span id="MySQL.Parser-349"><a href="#MySQL.Parser-349"><span class="linenos">349</span></a> <span class="n">channel</span><span class="o">=</span><span class="n">channel</span><span class="p">,</span> -</span><span id="MySQL.Parser-350"><a href="#MySQL.Parser-350"><span class="linenos">350</span></a> <span class="n">like</span><span class="o">=</span><span class="n">like</span><span class="p">,</span> -</span><span id="MySQL.Parser-351"><a href="#MySQL.Parser-351"><span class="linenos">351</span></a> <span class="n">where</span><span class="o">=</span><span class="n">where</span><span class="p">,</span> -</span><span id="MySQL.Parser-352"><a href="#MySQL.Parser-352"><span class="linenos">352</span></a> <span class="n">types</span><span class="o">=</span><span class="n">types</span><span class="p">,</span> -</span><span id="MySQL.Parser-353"><a href="#MySQL.Parser-353"><span class="linenos">353</span></a> <span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="p">,</span> -</span><span id="MySQL.Parser-354"><a href="#MySQL.Parser-354"><span class="linenos">354</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> -</span><span id="MySQL.Parser-355"><a href="#MySQL.Parser-355"><span class="linenos">355</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> -</span><span id="MySQL.Parser-356"><a href="#MySQL.Parser-356"><span class="linenos">356</span></a> <span class="n">mutex</span><span class="o">=</span><span class="n">mutex</span><span class="p">,</span> -</span><span id="MySQL.Parser-357"><a href="#MySQL.Parser-357"><span class="linenos">357</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> -</span><span id="MySQL.Parser-358"><a href="#MySQL.Parser-358"><span class="linenos">358</span></a> <span class="p">)</span> +</span><span id="MySQL.Parser-326"><a href="#MySQL.Parser-326"><span class="linenos">326</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><span id="MySQL.Parser-327"><a href="#MySQL.Parser-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Show</span><span class="p">,</span> +</span><span id="MySQL.Parser-328"><a href="#MySQL.Parser-328"><span class="linenos">328</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="MySQL.Parser-329"><a href="#MySQL.Parser-329"><span class="linenos">329</span></a> <span class="n">target</span><span class="o">=</span><span class="n">target_id</span><span class="p">,</span> +</span><span id="MySQL.Parser-330"><a href="#MySQL.Parser-330"><span class="linenos">330</span></a> <span class="n">full</span><span class="o">=</span><span class="n">full</span><span class="p">,</span> +</span><span id="MySQL.Parser-331"><a href="#MySQL.Parser-331"><span class="linenos">331</span></a> <span class="n">log</span><span class="o">=</span><span class="n">log</span><span class="p">,</span> +</span><span id="MySQL.Parser-332"><a href="#MySQL.Parser-332"><span class="linenos">332</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> +</span><span id="MySQL.Parser-333"><a href="#MySQL.Parser-333"><span class="linenos">333</span></a> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> +</span><span id="MySQL.Parser-334"><a href="#MySQL.Parser-334"><span class="linenos">334</span></a> <span class="n">channel</span><span class="o">=</span><span class="n">channel</span><span class="p">,</span> +</span><span id="MySQL.Parser-335"><a href="#MySQL.Parser-335"><span class="linenos">335</span></a> <span class="n">like</span><span class="o">=</span><span class="n">like</span><span class="p">,</span> +</span><span id="MySQL.Parser-336"><a href="#MySQL.Parser-336"><span class="linenos">336</span></a> <span class="n">where</span><span class="o">=</span><span class="n">where</span><span class="p">,</span> +</span><span id="MySQL.Parser-337"><a href="#MySQL.Parser-337"><span class="linenos">337</span></a> <span class="n">types</span><span class="o">=</span><span class="n">types</span><span class="p">,</span> +</span><span id="MySQL.Parser-338"><a href="#MySQL.Parser-338"><span class="linenos">338</span></a> <span class="n">query</span><span class="o">=</span><span class="n">query</span><span class="p">,</span> +</span><span id="MySQL.Parser-339"><a href="#MySQL.Parser-339"><span class="linenos">339</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> +</span><span id="MySQL.Parser-340"><a href="#MySQL.Parser-340"><span class="linenos">340</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> +</span><span id="MySQL.Parser-341"><a href="#MySQL.Parser-341"><span class="linenos">341</span></a> <span class="n">mutex</span><span class="o">=</span><span class="n">mutex</span><span class="p">,</span> +</span><span id="MySQL.Parser-342"><a href="#MySQL.Parser-342"><span class="linenos">342</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> +</span><span id="MySQL.Parser-343"><a href="#MySQL.Parser-343"><span class="linenos">343</span></a> <span class="p">)</span> +</span><span id="MySQL.Parser-344"><a href="#MySQL.Parser-344"><span class="linenos">344</span></a> +</span><span id="MySQL.Parser-345"><a href="#MySQL.Parser-345"><span class="linenos">345</span></a> <span class="k">def</span> <span class="nf">_parse_oldstyle_limit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="MySQL.Parser-346"><a href="#MySQL.Parser-346"><span class="linenos">346</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-347"><a href="#MySQL.Parser-347"><span class="linenos">347</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-348"><a href="#MySQL.Parser-348"><span class="linenos">348</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">):</span> +</span><span id="MySQL.Parser-349"><a href="#MySQL.Parser-349"><span class="linenos">349</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> +</span><span id="MySQL.Parser-350"><a href="#MySQL.Parser-350"><span class="linenos">350</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="MySQL.Parser-351"><a href="#MySQL.Parser-351"><span class="linenos">351</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="MySQL.Parser-352"><a href="#MySQL.Parser-352"><span class="linenos">352</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="MySQL.Parser-353"><a href="#MySQL.Parser-353"><span class="linenos">353</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> +</span><span id="MySQL.Parser-354"><a href="#MySQL.Parser-354"><span class="linenos">354</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="MySQL.Parser-355"><a href="#MySQL.Parser-355"><span class="linenos">355</span></a> <span class="k">return</span> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> +</span><span id="MySQL.Parser-356"><a href="#MySQL.Parser-356"><span class="linenos">356</span></a> +</span><span id="MySQL.Parser-357"><a href="#MySQL.Parser-357"><span class="linenos">357</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_charset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> +</span><span id="MySQL.Parser-358"><a href="#MySQL.Parser-358"><span class="linenos">358</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="MySQL.Parser-359"><a href="#MySQL.Parser-359"><span class="linenos">359</span></a> -</span><span id="MySQL.Parser-360"><a href="#MySQL.Parser-360"><span class="linenos">360</span></a> <span class="k">def</span> <span class="nf">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</span><span class="p">):</span> -</span><span id="MySQL.Parser-361"><a href="#MySQL.Parser-361"><span class="linenos">361</span></a> <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">options</span><span class="p">:</span> -</span><span id="MySQL.Parser-362"><a href="#MySQL.Parser-362"><span class="linenos">362</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="o">*</span><span class="n">option</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)):</span> -</span><span id="MySQL.Parser-363"><a href="#MySQL.Parser-363"><span class="linenos">363</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">option</span><span class="p">)</span> -</span><span id="MySQL.Parser-364"><a href="#MySQL.Parser-364"><span class="linenos">364</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-360"><a href="#MySQL.Parser-360"><span class="linenos">360</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><span id="MySQL.Parser-361"><a href="#MySQL.Parser-361"><span class="linenos">361</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="MySQL.Parser-362"><a href="#MySQL.Parser-362"><span class="linenos">362</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="MySQL.Parser-363"><a href="#MySQL.Parser-363"><span class="linenos">363</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="MySQL.Parser-364"><a href="#MySQL.Parser-364"><span class="linenos">364</span></a> <span class="p">)</span> </span><span id="MySQL.Parser-365"><a href="#MySQL.Parser-365"><span class="linenos">365</span></a> -</span><span id="MySQL.Parser-366"><a href="#MySQL.Parser-366"><span class="linenos">366</span></a> <span class="k">def</span> <span class="nf">_parse_oldstyle_limit</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="MySQL.Parser-367"><a href="#MySQL.Parser-367"><span class="linenos">367</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-368"><a href="#MySQL.Parser-368"><span class="linenos">368</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-369"><a href="#MySQL.Parser-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">):</span> -</span><span id="MySQL.Parser-370"><a href="#MySQL.Parser-370"><span class="linenos">370</span></a> <span class="n">parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> -</span><span id="MySQL.Parser-371"><a href="#MySQL.Parser-371"><span class="linenos">371</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="MySQL.Parser-372"><a href="#MySQL.Parser-372"><span class="linenos">372</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="MySQL.Parser-373"><a href="#MySQL.Parser-373"><span class="linenos">373</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">parts</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="MySQL.Parser-374"><a href="#MySQL.Parser-374"><span class="linenos">374</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> -</span><span id="MySQL.Parser-375"><a href="#MySQL.Parser-375"><span class="linenos">375</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">parts</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="MySQL.Parser-376"><a href="#MySQL.Parser-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="n">offset</span><span class="p">,</span> <span class="n">limit</span> -</span><span id="MySQL.Parser-377"><a href="#MySQL.Parser-377"><span class="linenos">377</span></a> -</span><span id="MySQL.Parser-378"><a href="#MySQL.Parser-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">_default_parse_set_item</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="MySQL.Parser-379"><a href="#MySQL.Parser-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item_assignment</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> -</span><span id="MySQL.Parser-380"><a href="#MySQL.Parser-380"><span class="linenos">380</span></a> -</span><span id="MySQL.Parser-381"><a href="#MySQL.Parser-381"><span class="linenos">381</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> -</span><span id="MySQL.Parser-382"><a href="#MySQL.Parser-382"><span class="linenos">382</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"GLOBAL"</span><span class="p">,</span> <span class="s2">"SESSION"</span><span class="p">}</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">):</span> -</span><span id="MySQL.Parser-383"><a href="#MySQL.Parser-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_transaction</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"GLOBAL"</span><span class="p">)</span> -</span><span id="MySQL.Parser-384"><a href="#MySQL.Parser-384"><span class="linenos">384</span></a> -</span><span id="MySQL.Parser-385"><a href="#MySQL.Parser-385"><span class="linenos">385</span></a> <span class="n">left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL.Parser-386"><a href="#MySQL.Parser-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="ow">not</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">EQ</span><span class="p">):</span> -</span><span id="MySQL.Parser-387"><a href="#MySQL.Parser-387"><span class="linenos">387</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ="</span><span class="p">)</span> -</span><span id="MySQL.Parser-388"><a href="#MySQL.Parser-388"><span class="linenos">388</span></a> <span class="n">right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL.Parser-389"><a href="#MySQL.Parser-389"><span class="linenos">389</span></a> -</span><span id="MySQL.Parser-390"><a href="#MySQL.Parser-390"><span class="linenos">390</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="MySQL.Parser-391"><a href="#MySQL.Parser-391"><span class="linenos">391</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="MySQL.Parser-392"><a href="#MySQL.Parser-392"><span class="linenos">392</span></a> <span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> -</span><span id="MySQL.Parser-393"><a href="#MySQL.Parser-393"><span class="linenos">393</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> -</span><span id="MySQL.Parser-394"><a href="#MySQL.Parser-394"><span class="linenos">394</span></a> <span class="p">)</span> -</span><span id="MySQL.Parser-395"><a href="#MySQL.Parser-395"><span class="linenos">395</span></a> -</span><span id="MySQL.Parser-396"><a href="#MySQL.Parser-396"><span class="linenos">396</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><span id="MySQL.Parser-397"><a href="#MySQL.Parser-397"><span class="linenos">397</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL.Parser-398"><a href="#MySQL.Parser-398"><span class="linenos">398</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="MySQL.Parser-399"><a href="#MySQL.Parser-399"><span class="linenos">399</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="MySQL.Parser-400"><a href="#MySQL.Parser-400"><span class="linenos">400</span></a> <span class="p">)</span> -</span><span id="MySQL.Parser-401"><a href="#MySQL.Parser-401"><span class="linenos">401</span></a> -</span><span id="MySQL.Parser-402"><a href="#MySQL.Parser-402"><span class="linenos">402</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_charset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">):</span> -</span><span id="MySQL.Parser-403"><a href="#MySQL.Parser-403"><span class="linenos">403</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL.Parser-404"><a href="#MySQL.Parser-404"><span class="linenos">404</span></a> -</span><span id="MySQL.Parser-405"><a href="#MySQL.Parser-405"><span class="linenos">405</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><span id="MySQL.Parser-406"><a href="#MySQL.Parser-406"><span class="linenos">406</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL.Parser-407"><a href="#MySQL.Parser-407"><span class="linenos">407</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="MySQL.Parser-408"><a href="#MySQL.Parser-408"><span class="linenos">408</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="MySQL.Parser-409"><a href="#MySQL.Parser-409"><span class="linenos">409</span></a> <span class="p">)</span> -</span><span id="MySQL.Parser-410"><a href="#MySQL.Parser-410"><span class="linenos">410</span></a> -</span><span id="MySQL.Parser-411"><a href="#MySQL.Parser-411"><span class="linenos">411</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="MySQL.Parser-412"><a href="#MySQL.Parser-412"><span class="linenos">412</span></a> <span class="n">charset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL.Parser-413"><a href="#MySQL.Parser-413"><span class="linenos">413</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLATE"</span><span class="p">):</span> -</span><span id="MySQL.Parser-414"><a href="#MySQL.Parser-414"><span class="linenos">414</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="MySQL.Parser-415"><a href="#MySQL.Parser-415"><span class="linenos">415</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Parser-416"><a href="#MySQL.Parser-416"><span class="linenos">416</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="MySQL.Parser-417"><a href="#MySQL.Parser-417"><span class="linenos">417</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><span id="MySQL.Parser-418"><a href="#MySQL.Parser-418"><span class="linenos">418</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL.Parser-419"><a href="#MySQL.Parser-419"><span class="linenos">419</span></a> <span class="n">this</span><span class="o">=</span><span class="n">charset</span><span class="p">,</span> -</span><span id="MySQL.Parser-420"><a href="#MySQL.Parser-420"><span class="linenos">420</span></a> <span class="n">collate</span><span class="o">=</span><span class="n">collate</span><span class="p">,</span> -</span><span id="MySQL.Parser-421"><a href="#MySQL.Parser-421"><span class="linenos">421</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"NAMES"</span><span class="p">,</span> -</span><span id="MySQL.Parser-422"><a href="#MySQL.Parser-422"><span class="linenos">422</span></a> <span class="p">)</span> -</span><span id="MySQL.Parser-423"><a href="#MySQL.Parser-423"><span class="linenos">423</span></a> -</span><span id="MySQL.Parser-424"><a href="#MySQL.Parser-424"><span class="linenos">424</span></a> <span class="k">def</span> <span class="nf">_parse_set_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="MySQL.Parser-425"><a href="#MySQL.Parser-425"><span class="linenos">425</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">)</span> -</span><span id="MySQL.Parser-426"><a href="#MySQL.Parser-426"><span class="linenos">426</span></a> <span class="n">characteristics</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="MySQL.Parser-427"><a href="#MySQL.Parser-427"><span class="linenos">427</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_CHARACTERISTICS</span><span class="p">)</span> -</span><span id="MySQL.Parser-428"><a href="#MySQL.Parser-428"><span class="linenos">428</span></a> <span class="p">)</span> -</span><span id="MySQL.Parser-429"><a href="#MySQL.Parser-429"><span class="linenos">429</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><span id="MySQL.Parser-430"><a href="#MySQL.Parser-430"><span class="linenos">430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="MySQL.Parser-431"><a href="#MySQL.Parser-431"><span class="linenos">431</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">characteristics</span><span class="p">,</span> -</span><span id="MySQL.Parser-432"><a href="#MySQL.Parser-432"><span class="linenos">432</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> -</span><span id="MySQL.Parser-433"><a href="#MySQL.Parser-433"><span class="linenos">433</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> -</span><span id="MySQL.Parser-434"><a href="#MySQL.Parser-434"><span class="linenos">434</span></a> <span class="p">)</span> +</span><span id="MySQL.Parser-366"><a href="#MySQL.Parser-366"><span class="linenos">366</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="MySQL.Parser-367"><a href="#MySQL.Parser-367"><span class="linenos">367</span></a> <span class="n">charset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="MySQL.Parser-368"><a href="#MySQL.Parser-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLATE"</span><span class="p">):</span> +</span><span id="MySQL.Parser-369"><a href="#MySQL.Parser-369"><span class="linenos">369</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="MySQL.Parser-370"><a href="#MySQL.Parser-370"><span class="linenos">370</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Parser-371"><a href="#MySQL.Parser-371"><span class="linenos">371</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="MySQL.Parser-372"><a href="#MySQL.Parser-372"><span class="linenos">372</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><span id="MySQL.Parser-373"><a href="#MySQL.Parser-373"><span class="linenos">373</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="MySQL.Parser-374"><a href="#MySQL.Parser-374"><span class="linenos">374</span></a> <span class="n">this</span><span class="o">=</span><span class="n">charset</span><span class="p">,</span> +</span><span id="MySQL.Parser-375"><a href="#MySQL.Parser-375"><span class="linenos">375</span></a> <span class="n">collate</span><span class="o">=</span><span class="n">collate</span><span class="p">,</span> +</span><span id="MySQL.Parser-376"><a href="#MySQL.Parser-376"><span class="linenos">376</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"NAMES"</span><span class="p">,</span> +</span><span id="MySQL.Parser-377"><a href="#MySQL.Parser-377"><span class="linenos">377</span></a> <span class="p">)</span> </span></pre></div> @@ -1515,113 +1311,99 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#MySQL.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MySQL.Generator-436"><a href="#MySQL.Generator-436"><span class="linenos">436</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="MySQL.Generator-437"><a href="#MySQL.Generator-437"><span class="linenos">437</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="MySQL.Generator-438"><a href="#MySQL.Generator-438"><span class="linenos">438</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="MySQL.Generator-439"><a href="#MySQL.Generator-439"><span class="linenos">439</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="MySQL.Generator-440"><a href="#MySQL.Generator-440"><span class="linenos">440</span></a> -</span><span id="MySQL.Generator-441"><a href="#MySQL.Generator-441"><span class="linenos">441</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL.Generator-442"><a href="#MySQL.Generator-442"><span class="linenos">442</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="MySQL.Generator-443"><a href="#MySQL.Generator-443"><span class="linenos">443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-444"><a href="#MySQL.Generator-444"><span class="linenos">444</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="MySQL.Generator-445"><a href="#MySQL.Generator-445"><span class="linenos">445</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-446"><a href="#MySQL.Generator-446"><span class="linenos">446</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="MySQL.Generator-447"><a href="#MySQL.Generator-447"><span class="linenos">447</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="MySQL.Generator-448"><a href="#MySQL.Generator-448"><span class="linenos">448</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-449"><a href="#MySQL.Generator-449"><span class="linenos">449</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> -</span><span id="MySQL.Generator-450"><a href="#MySQL.Generator-450"><span class="linenos">450</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATEDIFF(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="MySQL.Generator-451"><a href="#MySQL.Generator-451"><span class="linenos">451</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> -</span><span id="MySQL.Generator-452"><a href="#MySQL.Generator-452"><span class="linenos">452</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">:</span> <span class="n">_date_trunc_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-453"><a href="#MySQL.Generator-453"><span class="linenos">453</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="MySQL.Generator-454"><a href="#MySQL.Generator-454"><span class="linenos">454</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> -</span><span id="MySQL.Generator-455"><a href="#MySQL.Generator-455"><span class="linenos">455</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> -</span><span id="MySQL.Generator-456"><a href="#MySQL.Generator-456"><span class="linenos">456</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> -</span><span id="MySQL.Generator-457"><a href="#MySQL.Generator-457"><span class="linenos">457</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</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="sa">f</span><span class="s2">"""GROUP_CONCAT(</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="s2">"this"</span><span class="p">)</span><span class="si">}</span><span class="s2"> SEPARATOR </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="s2">"separator"</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"','"</span><span class="si">}</span><span class="s2">)"""</span><span class="p">,</span> -</span><span id="MySQL.Generator-458"><a href="#MySQL.Generator-458"><span class="linenos">458</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-459"><a href="#MySQL.Generator-459"><span class="linenos">459</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-460"><a href="#MySQL.Generator-460"><span class="linenos">460</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">_trim_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-461"><a href="#MySQL.Generator-461"><span class="linenos">461</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">),</span> -</span><span id="MySQL.Generator-462"><a href="#MySQL.Generator-462"><span class="linenos">462</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</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">not_sql</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">)),</span> -</span><span id="MySQL.Generator-463"><a href="#MySQL.Generator-463"><span class="linenos">463</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> -</span><span id="MySQL.Generator-464"><a href="#MySQL.Generator-464"><span class="linenos">464</span></a> <span class="p">}</span> -</span><span id="MySQL.Generator-465"><a href="#MySQL.Generator-465"><span class="linenos">465</span></a> -</span><span id="MySQL.Generator-466"><a href="#MySQL.Generator-466"><span class="linenos">466</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="MySQL.Generator-467"><a href="#MySQL.Generator-467"><span class="linenos">467</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">)</span> -</span><span id="MySQL.Generator-468"><a href="#MySQL.Generator-468"><span class="linenos">468</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">)</span> -</span><span id="MySQL.Generator-469"><a href="#MySQL.Generator-469"><span class="linenos">469</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">)</span> -</span><span id="MySQL.Generator-470"><a href="#MySQL.Generator-470"><span class="linenos">470</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">)</span> -</span><span id="MySQL.Generator-471"><a href="#MySQL.Generator-471"><span class="linenos">471</span></a> -</span><span id="MySQL.Generator-472"><a href="#MySQL.Generator-472"><span class="linenos">472</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MySQL.Generator-473"><a href="#MySQL.Generator-473"><span class="linenos">473</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="MySQL.Generator-474"><a href="#MySQL.Generator-474"><span class="linenos">474</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="MySQL.Generator-475"><a href="#MySQL.Generator-475"><span class="linenos">475</span></a> <span class="p">}</span> -</span><span id="MySQL.Generator-476"><a href="#MySQL.Generator-476"><span class="linenos">476</span></a> -</span><span id="MySQL.Generator-477"><a href="#MySQL.Generator-477"><span class="linenos">477</span></a> <span class="k">def</span> <span class="nf">show_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><span id="MySQL.Generator-478"><a href="#MySQL.Generator-478"><span class="linenos">478</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-479"><a href="#MySQL.Generator-479"><span class="linenos">479</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-480"><a href="#MySQL.Generator-480"><span class="linenos">480</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-481"><a href="#MySQL.Generator-481"><span class="linenos">481</span></a> -</span><span id="MySQL.Generator-482"><a href="#MySQL.Generator-482"><span class="linenos">482</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> -</span><span id="MySQL.Generator-483"><a href="#MySQL.Generator-483"><span class="linenos">483</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-484"><a href="#MySQL.Generator-484"><span class="linenos">484</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> -</span><span id="MySQL.Generator-485"><a href="#MySQL.Generator-485"><span class="linenos">485</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-486"><a href="#MySQL.Generator-486"><span class="linenos">486</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> -</span><span id="MySQL.Generator-487"><a href="#MySQL.Generator-487"><span class="linenos">487</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-488"><a href="#MySQL.Generator-488"><span class="linenos">488</span></a> -</span><span id="MySQL.Generator-489"><a href="#MySQL.Generator-489"><span class="linenos">489</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> -</span><span id="MySQL.Generator-490"><a href="#MySQL.Generator-490"><span class="linenos">490</span></a> -</span><span id="MySQL.Generator-491"><a href="#MySQL.Generator-491"><span class="linenos">491</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> -</span><span id="MySQL.Generator-492"><a href="#MySQL.Generator-492"><span class="linenos">492</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> -</span><span id="MySQL.Generator-493"><a href="#MySQL.Generator-493"><span class="linenos">493</span></a> -</span><span id="MySQL.Generator-494"><a href="#MySQL.Generator-494"><span class="linenos">494</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> -</span><span id="MySQL.Generator-495"><a href="#MySQL.Generator-495"><span class="linenos">495</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> -</span><span id="MySQL.Generator-496"><a href="#MySQL.Generator-496"><span class="linenos">496</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> -</span><span id="MySQL.Generator-497"><a href="#MySQL.Generator-497"><span class="linenos">497</span></a> -</span><span id="MySQL.Generator-498"><a href="#MySQL.Generator-498"><span class="linenos">498</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="MySQL.Generator-499"><a href="#MySQL.Generator-499"><span class="linenos">499</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> -</span><span id="MySQL.Generator-500"><a href="#MySQL.Generator-500"><span class="linenos">500</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> -</span><span id="MySQL.Generator-501"><a href="#MySQL.Generator-501"><span class="linenos">501</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Generator-502"><a href="#MySQL.Generator-502"><span class="linenos">502</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-503"><a href="#MySQL.Generator-503"><span class="linenos">503</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="MySQL.Generator-504"><a href="#MySQL.Generator-504"><span class="linenos">504</span></a> -</span><span id="MySQL.Generator-505"><a href="#MySQL.Generator-505"><span class="linenos">505</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> -</span><span id="MySQL.Generator-506"><a href="#MySQL.Generator-506"><span class="linenos">506</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> -</span><span id="MySQL.Generator-507"><a href="#MySQL.Generator-507"><span class="linenos">507</span></a> -</span><span id="MySQL.Generator-508"><a href="#MySQL.Generator-508"><span class="linenos">508</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> -</span><span id="MySQL.Generator-509"><a href="#MySQL.Generator-509"><span class="linenos">509</span></a> -</span><span id="MySQL.Generator-510"><a href="#MySQL.Generator-510"><span class="linenos">510</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> -</span><span id="MySQL.Generator-511"><a href="#MySQL.Generator-511"><span class="linenos">511</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> -</span><span id="MySQL.Generator-512"><a href="#MySQL.Generator-512"><span class="linenos">512</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Generator-513"><a href="#MySQL.Generator-513"><span class="linenos">513</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-514"><a href="#MySQL.Generator-514"><span class="linenos">514</span></a> -</span><span id="MySQL.Generator-515"><a href="#MySQL.Generator-515"><span class="linenos">515</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-516"><a href="#MySQL.Generator-516"><span class="linenos">516</span></a> -</span><span id="MySQL.Generator-517"><a href="#MySQL.Generator-517"><span class="linenos">517</span></a> <span class="k">def</span> <span class="nf">_prefixed_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> -</span><span id="MySQL.Generator-518"><a href="#MySQL.Generator-518"><span class="linenos">518</span></a> <span class="n">sql</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="n">arg</span><span class="p">)</span> -</span><span id="MySQL.Generator-519"><a href="#MySQL.Generator-519"><span class="linenos">519</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sql</span><span class="p">:</span> -</span><span id="MySQL.Generator-520"><a href="#MySQL.Generator-520"><span class="linenos">520</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-521"><a href="#MySQL.Generator-521"><span class="linenos">521</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-522"><a href="#MySQL.Generator-522"><span class="linenos">522</span></a> -</span><span id="MySQL.Generator-523"><a href="#MySQL.Generator-523"><span class="linenos">523</span></a> <span class="k">def</span> <span class="nf">_oldstyle_limit_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><span id="MySQL.Generator-524"><a href="#MySQL.Generator-524"><span class="linenos">524</span></a> <span class="n">limit</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">"limit"</span><span class="p">)</span> -</span><span id="MySQL.Generator-525"><a href="#MySQL.Generator-525"><span class="linenos">525</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> -</span><span id="MySQL.Generator-526"><a href="#MySQL.Generator-526"><span class="linenos">526</span></a> <span class="k">if</span> <span class="n">limit</span><span class="p">:</span> -</span><span id="MySQL.Generator-527"><a href="#MySQL.Generator-527"><span class="linenos">527</span></a> <span class="n">limit_offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">offset</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="n">limit</span> -</span><span id="MySQL.Generator-528"><a href="#MySQL.Generator-528"><span class="linenos">528</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" LIMIT </span><span class="si">{</span><span class="n">limit_offset</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-529"><a href="#MySQL.Generator-529"><span class="linenos">529</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-530"><a href="#MySQL.Generator-530"><span class="linenos">530</span></a> -</span><span id="MySQL.Generator-531"><a href="#MySQL.Generator-531"><span class="linenos">531</span></a> <span class="k">def</span> <span class="nf">setitem_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><span id="MySQL.Generator-532"><a href="#MySQL.Generator-532"><span class="linenos">532</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="MySQL.Generator-533"><a href="#MySQL.Generator-533"><span class="linenos">533</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-534"><a href="#MySQL.Generator-534"><span class="linenos">534</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="MySQL.Generator-535"><a href="#MySQL.Generator-535"><span class="linenos">535</span></a> <span class="n">expressions</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><span id="MySQL.Generator-536"><a href="#MySQL.Generator-536"><span class="linenos">536</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="MySQL.Generator-537"><a href="#MySQL.Generator-537"><span class="linenos">537</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-538"><a href="#MySQL.Generator-538"><span class="linenos">538</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator-539"><a href="#MySQL.Generator-539"><span class="linenos">539</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator-540"><a href="#MySQL.Generator-540"><span class="linenos">540</span></a> -</span><span id="MySQL.Generator-541"><a href="#MySQL.Generator-541"><span class="linenos">541</span></a> <span class="k">def</span> <span class="nf">set_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><span id="MySQL.Generator-542"><a href="#MySQL.Generator-542"><span class="linenos">542</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET </span><span class="si">{</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="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="MySQL.Generator-379"><a href="#MySQL.Generator-379"><span class="linenos">379</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="MySQL.Generator-380"><a href="#MySQL.Generator-380"><span class="linenos">380</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="MySQL.Generator-381"><a href="#MySQL.Generator-381"><span class="linenos">381</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="MySQL.Generator-382"><a href="#MySQL.Generator-382"><span class="linenos">382</span></a> +</span><span id="MySQL.Generator-383"><a href="#MySQL.Generator-383"><span class="linenos">383</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL.Generator-384"><a href="#MySQL.Generator-384"><span class="linenos">384</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="MySQL.Generator-385"><a href="#MySQL.Generator-385"><span class="linenos">385</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-386"><a href="#MySQL.Generator-386"><span class="linenos">386</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="MySQL.Generator-387"><a href="#MySQL.Generator-387"><span class="linenos">387</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-388"><a href="#MySQL.Generator-388"><span class="linenos">388</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="MySQL.Generator-389"><a href="#MySQL.Generator-389"><span class="linenos">389</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="MySQL.Generator-390"><a href="#MySQL.Generator-390"><span class="linenos">390</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-391"><a href="#MySQL.Generator-391"><span class="linenos">391</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">),</span> +</span><span id="MySQL.Generator-392"><a href="#MySQL.Generator-392"><span class="linenos">392</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"DATEDIFF(</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </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="MySQL.Generator-393"><a href="#MySQL.Generator-393"><span class="linenos">393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"SUB"</span><span class="p">),</span> +</span><span id="MySQL.Generator-394"><a href="#MySQL.Generator-394"><span class="linenos">394</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateTrunc</span><span class="p">:</span> <span class="n">_date_trunc_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-395"><a href="#MySQL.Generator-395"><span class="linenos">395</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="MySQL.Generator-396"><a href="#MySQL.Generator-396"><span class="linenos">396</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="MySQL.Generator-397"><a href="#MySQL.Generator-397"><span class="linenos">397</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="MySQL.Generator-398"><a href="#MySQL.Generator-398"><span class="linenos">398</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="MySQL.Generator-399"><a href="#MySQL.Generator-399"><span class="linenos">399</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</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="sa">f</span><span class="s2">"""GROUP_CONCAT(</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="s2">"this"</span><span class="p">)</span><span class="si">}</span><span class="s2"> SEPARATOR </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="s2">"separator"</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"','"</span><span class="si">}</span><span class="s2">)"""</span><span class="p">,</span> +</span><span id="MySQL.Generator-400"><a href="#MySQL.Generator-400"><span class="linenos">400</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-401"><a href="#MySQL.Generator-401"><span class="linenos">401</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_date_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-402"><a href="#MySQL.Generator-402"><span class="linenos">402</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">_trim_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-403"><a href="#MySQL.Generator-403"><span class="linenos">403</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">),</span> +</span><span id="MySQL.Generator-404"><a href="#MySQL.Generator-404"><span class="linenos">404</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</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">not_sql</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<=>"</span><span class="p">)),</span> +</span><span id="MySQL.Generator-405"><a href="#MySQL.Generator-405"><span class="linenos">405</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">strposition_to_locate_sql</span><span class="p">,</span> +</span><span id="MySQL.Generator-406"><a href="#MySQL.Generator-406"><span class="linenos">406</span></a> <span class="p">}</span> +</span><span id="MySQL.Generator-407"><a href="#MySQL.Generator-407"><span class="linenos">407</span></a> +</span><span id="MySQL.Generator-408"><a href="#MySQL.Generator-408"><span class="linenos">408</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="MySQL.Generator-409"><a href="#MySQL.Generator-409"><span class="linenos">409</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">)</span> +</span><span id="MySQL.Generator-410"><a href="#MySQL.Generator-410"><span class="linenos">410</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">)</span> +</span><span id="MySQL.Generator-411"><a href="#MySQL.Generator-411"><span class="linenos">411</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">)</span> +</span><span id="MySQL.Generator-412"><a href="#MySQL.Generator-412"><span class="linenos">412</span></a> <span class="n">TYPE_MAPPING</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">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">)</span> +</span><span id="MySQL.Generator-413"><a href="#MySQL.Generator-413"><span class="linenos">413</span></a> +</span><span id="MySQL.Generator-414"><a href="#MySQL.Generator-414"><span class="linenos">414</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MySQL.Generator-415"><a href="#MySQL.Generator-415"><span class="linenos">415</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="MySQL.Generator-416"><a href="#MySQL.Generator-416"><span class="linenos">416</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="MySQL.Generator-417"><a href="#MySQL.Generator-417"><span class="linenos">417</span></a> <span class="p">}</span> +</span><span id="MySQL.Generator-418"><a href="#MySQL.Generator-418"><span class="linenos">418</span></a> +</span><span id="MySQL.Generator-419"><a href="#MySQL.Generator-419"><span class="linenos">419</span></a> <span class="k">def</span> <span class="nf">show_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><span id="MySQL.Generator-420"><a href="#MySQL.Generator-420"><span class="linenos">420</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator-421"><a href="#MySQL.Generator-421"><span class="linenos">421</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL.Generator-422"><a href="#MySQL.Generator-422"><span class="linenos">422</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL.Generator-423"><a href="#MySQL.Generator-423"><span class="linenos">423</span></a> +</span><span id="MySQL.Generator-424"><a href="#MySQL.Generator-424"><span class="linenos">424</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> +</span><span id="MySQL.Generator-425"><a href="#MySQL.Generator-425"><span class="linenos">425</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL.Generator-426"><a href="#MySQL.Generator-426"><span class="linenos">426</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> +</span><span id="MySQL.Generator-427"><a href="#MySQL.Generator-427"><span class="linenos">427</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator-428"><a href="#MySQL.Generator-428"><span class="linenos">428</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> +</span><span id="MySQL.Generator-429"><a href="#MySQL.Generator-429"><span class="linenos">429</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator-430"><a href="#MySQL.Generator-430"><span class="linenos">430</span></a> +</span><span id="MySQL.Generator-431"><a href="#MySQL.Generator-431"><span class="linenos">431</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> +</span><span id="MySQL.Generator-432"><a href="#MySQL.Generator-432"><span class="linenos">432</span></a> +</span><span id="MySQL.Generator-433"><a href="#MySQL.Generator-433"><span class="linenos">433</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> +</span><span id="MySQL.Generator-434"><a href="#MySQL.Generator-434"><span class="linenos">434</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> +</span><span id="MySQL.Generator-435"><a href="#MySQL.Generator-435"><span class="linenos">435</span></a> +</span><span id="MySQL.Generator-436"><a href="#MySQL.Generator-436"><span class="linenos">436</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> +</span><span id="MySQL.Generator-437"><a href="#MySQL.Generator-437"><span class="linenos">437</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> +</span><span id="MySQL.Generator-438"><a href="#MySQL.Generator-438"><span class="linenos">438</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> +</span><span id="MySQL.Generator-439"><a href="#MySQL.Generator-439"><span class="linenos">439</span></a> +</span><span id="MySQL.Generator-440"><a href="#MySQL.Generator-440"><span class="linenos">440</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="MySQL.Generator-441"><a href="#MySQL.Generator-441"><span class="linenos">441</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> +</span><span id="MySQL.Generator-442"><a href="#MySQL.Generator-442"><span class="linenos">442</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> +</span><span id="MySQL.Generator-443"><a href="#MySQL.Generator-443"><span class="linenos">443</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Generator-444"><a href="#MySQL.Generator-444"><span class="linenos">444</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="MySQL.Generator-445"><a href="#MySQL.Generator-445"><span class="linenos">445</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="MySQL.Generator-446"><a href="#MySQL.Generator-446"><span class="linenos">446</span></a> +</span><span id="MySQL.Generator-447"><a href="#MySQL.Generator-447"><span class="linenos">447</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> +</span><span id="MySQL.Generator-448"><a href="#MySQL.Generator-448"><span class="linenos">448</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> +</span><span id="MySQL.Generator-449"><a href="#MySQL.Generator-449"><span class="linenos">449</span></a> +</span><span id="MySQL.Generator-450"><a href="#MySQL.Generator-450"><span class="linenos">450</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> +</span><span id="MySQL.Generator-451"><a href="#MySQL.Generator-451"><span class="linenos">451</span></a> +</span><span id="MySQL.Generator-452"><a href="#MySQL.Generator-452"><span class="linenos">452</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> +</span><span id="MySQL.Generator-453"><a href="#MySQL.Generator-453"><span class="linenos">453</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> +</span><span id="MySQL.Generator-454"><a href="#MySQL.Generator-454"><span class="linenos">454</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Generator-455"><a href="#MySQL.Generator-455"><span class="linenos">455</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="MySQL.Generator-456"><a href="#MySQL.Generator-456"><span class="linenos">456</span></a> +</span><span id="MySQL.Generator-457"><a href="#MySQL.Generator-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator-458"><a href="#MySQL.Generator-458"><span class="linenos">458</span></a> +</span><span id="MySQL.Generator-459"><a href="#MySQL.Generator-459"><span class="linenos">459</span></a> <span class="k">def</span> <span class="nf">_prefixed_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="n">arg</span><span class="p">):</span> +</span><span id="MySQL.Generator-460"><a href="#MySQL.Generator-460"><span class="linenos">460</span></a> <span class="n">sql</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="n">arg</span><span class="p">)</span> +</span><span id="MySQL.Generator-461"><a href="#MySQL.Generator-461"><span class="linenos">461</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">sql</span><span class="p">:</span> +</span><span id="MySQL.Generator-462"><a href="#MySQL.Generator-462"><span class="linenos">462</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="MySQL.Generator-463"><a href="#MySQL.Generator-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator-464"><a href="#MySQL.Generator-464"><span class="linenos">464</span></a> +</span><span id="MySQL.Generator-465"><a href="#MySQL.Generator-465"><span class="linenos">465</span></a> <span class="k">def</span> <span class="nf">_oldstyle_limit_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><span id="MySQL.Generator-466"><a href="#MySQL.Generator-466"><span class="linenos">466</span></a> <span class="n">limit</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">"limit"</span><span class="p">)</span> +</span><span id="MySQL.Generator-467"><a href="#MySQL.Generator-467"><span class="linenos">467</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> +</span><span id="MySQL.Generator-468"><a href="#MySQL.Generator-468"><span class="linenos">468</span></a> <span class="k">if</span> <span class="n">limit</span><span class="p">:</span> +</span><span id="MySQL.Generator-469"><a href="#MySQL.Generator-469"><span class="linenos">469</span></a> <span class="n">limit_offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">offset</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="n">limit</span> +</span><span id="MySQL.Generator-470"><a href="#MySQL.Generator-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">" LIMIT </span><span class="si">{</span><span class="n">limit_offset</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator-471"><a href="#MySQL.Generator-471"><span class="linenos">471</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -1638,8 +1420,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -1681,90 +1462,45 @@ Default: True</li> </div> <a class="headerlink" href="#MySQL.Generator.show_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MySQL.Generator.show_sql-477"><a href="#MySQL.Generator.show_sql-477"><span class="linenos">477</span></a> <span class="k">def</span> <span class="nf">show_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><span id="MySQL.Generator.show_sql-478"><a href="#MySQL.Generator.show_sql-478"><span class="linenos">478</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator.show_sql-479"><a href="#MySQL.Generator.show_sql-479"><span class="linenos">479</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.show_sql-480"><a href="#MySQL.Generator.show_sql-480"><span class="linenos">480</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.show_sql-481"><a href="#MySQL.Generator.show_sql-481"><span class="linenos">481</span></a> -</span><span id="MySQL.Generator.show_sql-482"><a href="#MySQL.Generator.show_sql-482"><span class="linenos">482</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-483"><a href="#MySQL.Generator.show_sql-483"><span class="linenos">483</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.show_sql-484"><a href="#MySQL.Generator.show_sql-484"><span class="linenos">484</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> -</span><span id="MySQL.Generator.show_sql-485"><a href="#MySQL.Generator.show_sql-485"><span class="linenos">485</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator.show_sql-486"><a href="#MySQL.Generator.show_sql-486"><span class="linenos">486</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> -</span><span id="MySQL.Generator.show_sql-487"><a href="#MySQL.Generator.show_sql-487"><span class="linenos">487</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> -</span><span id="MySQL.Generator.show_sql-488"><a href="#MySQL.Generator.show_sql-488"><span class="linenos">488</span></a> -</span><span id="MySQL.Generator.show_sql-489"><a href="#MySQL.Generator.show_sql-489"><span class="linenos">489</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-490"><a href="#MySQL.Generator.show_sql-490"><span class="linenos">490</span></a> -</span><span id="MySQL.Generator.show_sql-491"><a href="#MySQL.Generator.show_sql-491"><span class="linenos">491</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-492"><a href="#MySQL.Generator.show_sql-492"><span class="linenos">492</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-493"><a href="#MySQL.Generator.show_sql-493"><span class="linenos">493</span></a> -</span><span id="MySQL.Generator.show_sql-494"><a href="#MySQL.Generator.show_sql-494"><span class="linenos">494</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-495"><a href="#MySQL.Generator.show_sql-495"><span class="linenos">495</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> -</span><span id="MySQL.Generator.show_sql-496"><a href="#MySQL.Generator.show_sql-496"><span class="linenos">496</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-497"><a href="#MySQL.Generator.show_sql-497"><span class="linenos">497</span></a> -</span><span id="MySQL.Generator.show_sql-498"><a href="#MySQL.Generator.show_sql-498"><span class="linenos">498</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> -</span><span id="MySQL.Generator.show_sql-499"><a href="#MySQL.Generator.show_sql-499"><span class="linenos">499</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-500"><a href="#MySQL.Generator.show_sql-500"><span class="linenos">500</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-501"><a href="#MySQL.Generator.show_sql-501"><span class="linenos">501</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Generator.show_sql-502"><a href="#MySQL.Generator.show_sql-502"><span class="linenos">502</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.show_sql-503"><a href="#MySQL.Generator.show_sql-503"><span class="linenos">503</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-504"><a href="#MySQL.Generator.show_sql-504"><span class="linenos">504</span></a> -</span><span id="MySQL.Generator.show_sql-505"><a href="#MySQL.Generator.show_sql-505"><span class="linenos">505</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-506"><a href="#MySQL.Generator.show_sql-506"><span class="linenos">506</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-507"><a href="#MySQL.Generator.show_sql-507"><span class="linenos">507</span></a> -</span><span id="MySQL.Generator.show_sql-508"><a href="#MySQL.Generator.show_sql-508"><span class="linenos">508</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> -</span><span id="MySQL.Generator.show_sql-509"><a href="#MySQL.Generator.show_sql-509"><span class="linenos">509</span></a> -</span><span id="MySQL.Generator.show_sql-510"><a href="#MySQL.Generator.show_sql-510"><span class="linenos">510</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> -</span><span id="MySQL.Generator.show_sql-511"><a href="#MySQL.Generator.show_sql-511"><span class="linenos">511</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> -</span><span id="MySQL.Generator.show_sql-512"><a href="#MySQL.Generator.show_sql-512"><span class="linenos">512</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="MySQL.Generator.show_sql-513"><a href="#MySQL.Generator.show_sql-513"><span class="linenos">513</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.show_sql-514"><a href="#MySQL.Generator.show_sql-514"><span class="linenos">514</span></a> -</span><span id="MySQL.Generator.show_sql-515"><a href="#MySQL.Generator.show_sql-515"><span class="linenos">515</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> -</span></pre></div> - - - - - </div> - <div id="MySQL.Generator.setitem_sql" class="classattr"> - <input id="MySQL.Generator.setitem_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">setitem_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><span class="return-annotation">):</span></span> - - <label class="view-source-button" for="MySQL.Generator.setitem_sql-view-source"><span>View Source</span></label> - - </div> - <a class="headerlink" href="#MySQL.Generator.setitem_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MySQL.Generator.setitem_sql-531"><a href="#MySQL.Generator.setitem_sql-531"><span class="linenos">531</span></a> <span class="k">def</span> <span class="nf">setitem_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><span id="MySQL.Generator.setitem_sql-532"><a href="#MySQL.Generator.setitem_sql-532"><span class="linenos">532</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="MySQL.Generator.setitem_sql-533"><a href="#MySQL.Generator.setitem_sql-533"><span class="linenos">533</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.setitem_sql-534"><a href="#MySQL.Generator.setitem_sql-534"><span class="linenos">534</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="MySQL.Generator.setitem_sql-535"><a href="#MySQL.Generator.setitem_sql-535"><span class="linenos">535</span></a> <span class="n">expressions</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><span id="MySQL.Generator.setitem_sql-536"><a href="#MySQL.Generator.setitem_sql-536"><span class="linenos">536</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="MySQL.Generator.setitem_sql-537"><a href="#MySQL.Generator.setitem_sql-537"><span class="linenos">537</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.setitem_sql-538"><a href="#MySQL.Generator.setitem_sql-538"><span class="linenos">538</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="MySQL.Generator.setitem_sql-539"><a href="#MySQL.Generator.setitem_sql-539"><span class="linenos">539</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> -</span></pre></div> - - - - - </div> - <div id="MySQL.Generator.set_sql" class="classattr"> - <input id="MySQL.Generator.set_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">set_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><span class="return-annotation">):</span></span> - - <label class="view-source-button" for="MySQL.Generator.set_sql-view-source"><span>View Source</span></label> - - </div> - <a class="headerlink" href="#MySQL.Generator.set_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MySQL.Generator.set_sql-541"><a href="#MySQL.Generator.set_sql-541"><span class="linenos">541</span></a> <span class="k">def</span> <span class="nf">set_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><span id="MySQL.Generator.set_sql-542"><a href="#MySQL.Generator.set_sql-542"><span class="linenos">542</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET </span><span class="si">{</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="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="MySQL.Generator.show_sql-419"><a href="#MySQL.Generator.show_sql-419"><span class="linenos">419</span></a> <span class="k">def</span> <span class="nf">show_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><span id="MySQL.Generator.show_sql-420"><a href="#MySQL.Generator.show_sql-420"><span class="linenos">420</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator.show_sql-421"><a href="#MySQL.Generator.show_sql-421"><span class="linenos">421</span></a> <span class="n">full</span> <span class="o">=</span> <span class="s2">" FULL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"full"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL.Generator.show_sql-422"><a href="#MySQL.Generator.show_sql-422"><span class="linenos">422</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL.Generator.show_sql-423"><a href="#MySQL.Generator.show_sql-423"><span class="linenos">423</span></a> +</span><span id="MySQL.Generator.show_sql-424"><a href="#MySQL.Generator.show_sql-424"><span class="linenos">424</span></a> <span class="n">target</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">"target"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-425"><a href="#MySQL.Generator.show_sql-425"><span class="linenos">425</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">target</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="MySQL.Generator.show_sql-426"><a href="#MySQL.Generator.show_sql-426"><span class="linenos">426</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"COLUMNS"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">}:</span> +</span><span id="MySQL.Generator.show_sql-427"><a href="#MySQL.Generator.show_sql-427"><span class="linenos">427</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator.show_sql-428"><a href="#MySQL.Generator.show_sql-428"><span class="linenos">428</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"GRANTS"</span><span class="p">:</span> +</span><span id="MySQL.Generator.show_sql-429"><a href="#MySQL.Generator.show_sql-429"><span class="linenos">429</span></a> <span class="n">target</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR</span><span class="si">{</span><span class="n">target</span><span class="si">}</span><span class="s2">"</span> +</span><span id="MySQL.Generator.show_sql-430"><a href="#MySQL.Generator.show_sql-430"><span class="linenos">430</span></a> +</span><span id="MySQL.Generator.show_sql-431"><a href="#MySQL.Generator.show_sql-431"><span class="linenos">431</span></a> <span class="n">db</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-432"><a href="#MySQL.Generator.show_sql-432"><span class="linenos">432</span></a> +</span><span id="MySQL.Generator.show_sql-433"><a href="#MySQL.Generator.show_sql-433"><span class="linenos">433</span></a> <span class="n">like</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIKE"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"like"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-434"><a href="#MySQL.Generator.show_sql-434"><span class="linenos">434</span></a> <span class="n">where</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">"where"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-435"><a href="#MySQL.Generator.show_sql-435"><span class="linenos">435</span></a> +</span><span id="MySQL.Generator.show_sql-436"><a href="#MySQL.Generator.show_sql-436"><span class="linenos">436</span></a> <span class="n">types</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">"types"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-437"><a href="#MySQL.Generator.show_sql-437"><span class="linenos">437</span></a> <span class="n">types</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">types</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">types</span> <span class="k">else</span> <span class="n">types</span> +</span><span id="MySQL.Generator.show_sql-438"><a href="#MySQL.Generator.show_sql-438"><span class="linenos">438</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR QUERY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"query"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-439"><a href="#MySQL.Generator.show_sql-439"><span class="linenos">439</span></a> +</span><span id="MySQL.Generator.show_sql-440"><a href="#MySQL.Generator.show_sql-440"><span class="linenos">440</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"PROFILE"</span><span class="p">:</span> +</span><span id="MySQL.Generator.show_sql-441"><a href="#MySQL.Generator.show_sql-441"><span class="linenos">441</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"OFFSET"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"offset"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-442"><a href="#MySQL.Generator.show_sql-442"><span class="linenos">442</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"LIMIT"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-443"><a href="#MySQL.Generator.show_sql-443"><span class="linenos">443</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Generator.show_sql-444"><a href="#MySQL.Generator.show_sql-444"><span class="linenos">444</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="MySQL.Generator.show_sql-445"><a href="#MySQL.Generator.show_sql-445"><span class="linenos">445</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_oldstyle_limit_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-446"><a href="#MySQL.Generator.show_sql-446"><span class="linenos">446</span></a> +</span><span id="MySQL.Generator.show_sql-447"><a href="#MySQL.Generator.show_sql-447"><span class="linenos">447</span></a> <span class="n">log</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"IN"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"log"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-448"><a href="#MySQL.Generator.show_sql-448"><span class="linenos">448</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"position"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-449"><a href="#MySQL.Generator.show_sql-449"><span class="linenos">449</span></a> +</span><span id="MySQL.Generator.show_sql-450"><a href="#MySQL.Generator.show_sql-450"><span class="linenos">450</span></a> <span class="n">channel</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prefixed_sql</span><span class="p">(</span><span class="s2">"FOR CHANNEL"</span><span class="p">,</span> <span class="n">expression</span><span class="p">,</span> <span class="s2">"channel"</span><span class="p">)</span> +</span><span id="MySQL.Generator.show_sql-451"><a href="#MySQL.Generator.show_sql-451"><span class="linenos">451</span></a> +</span><span id="MySQL.Generator.show_sql-452"><a href="#MySQL.Generator.show_sql-452"><span class="linenos">452</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"ENGINE"</span><span class="p">:</span> +</span><span id="MySQL.Generator.show_sql-453"><a href="#MySQL.Generator.show_sql-453"><span class="linenos">453</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">" MUTEX"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"mutex"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" STATUS"</span> +</span><span id="MySQL.Generator.show_sql-454"><a href="#MySQL.Generator.show_sql-454"><span class="linenos">454</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="MySQL.Generator.show_sql-455"><a href="#MySQL.Generator.show_sql-455"><span class="linenos">455</span></a> <span class="n">mutex_or_status</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="MySQL.Generator.show_sql-456"><a href="#MySQL.Generator.show_sql-456"><span class="linenos">456</span></a> +</span><span id="MySQL.Generator.show_sql-457"><a href="#MySQL.Generator.show_sql-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SHOW</span><span class="si">{</span><span class="n">full</span><span class="si">}{</span><span class="n">global_</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">target</span><span class="si">}{</span><span class="n">types</span><span class="si">}{</span><span class="n">db</span><span class="si">}{</span><span class="n">query</span><span class="si">}{</span><span class="n">log</span><span class="si">}{</span><span class="n">position</span><span class="si">}{</span><span class="n">channel</span><span class="si">}{</span><span class="n">mutex_or_status</span><span class="si">}{</span><span class="n">like</span><span class="si">}{</span><span class="n">where</span><span class="si">}{</span><span class="n">offset</span><span class="si">}{</span><span class="n">limit</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1861,6 +1597,8 @@ Default: True</li> <dd id="MySQL.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="MySQL.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="MySQL.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="MySQL.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="MySQL.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="MySQL.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="MySQL.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="MySQL.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1945,7 +1683,6 @@ Default: True</li> <dd id="MySQL.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="MySQL.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="MySQL.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="MySQL.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="MySQL.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="MySQL.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="MySQL.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1987,6 +1724,7 @@ Default: True</li> <dd id="MySQL.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="MySQL.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="MySQL.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="MySQL.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/oracle.html b/docs/sqlglot/dialects/oracle.html index 58cf5cd..8ce152e 100644 --- a/docs/sqlglot/dialects/oracle.html +++ b/docs/sqlglot/dialects/oracle.html @@ -95,7 +95,7 @@ </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">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</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="n">Dialect</span><span class="p">,</span> <span class="n">no_ilike_sql</span><span class="p">,</span> <span class="n">rename_func</span><span class="p">,</span> <span class="n">trim_sql</span> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">csv</span> +</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">csv</span><span class="p">,</span> <span class="n">seq_get</span> </span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</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-9"><a href="#L-9"><span class="linenos"> 9</span></a> </span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="n">PASSING_TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">-</span> <span class="p">{</span> @@ -166,109 +166,108 @@ </span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="p">}</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="s2">"XMLTABLE"</span><span class="p">:</span> <span class="n">_parse_xml_table</span><span class="p">,</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="p">}</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="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="k">if</span> <span class="n">column</span><span class="p">:</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">,</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">JOIN_MARKER</span><span class="p">))</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">return</span> <span class="n">column</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</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">TINYINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</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">SMALLINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</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">"NUMBER"</span><span class="p">,</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</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">BIGINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</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">VARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR2"</span><span class="p">,</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"NVARCHAR2"</span><span class="p">,</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</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">TEXT</span><span class="p">:</span> <span class="s2">"CLOB"</span><span class="p">,</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</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">"BLOB"</span><span class="p">,</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</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">"BLOB"</span><span class="p">,</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="p">}</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">:</span> <span class="n">_limit_sql</span><span class="p">,</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</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">subquery_sql</span><span class="p">(</span><span class="n">e</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-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">table_sql</span><span class="p">(</span><span class="n">e</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-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_DATE('1970-01-01','YYYY-MM-DD') + (</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"> / 86400)"</span><span class="p">,</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">),</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="p">}</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">csv</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">sqls</span><span class="p">,</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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-138"><a href="#L-138"><span class="linenos">138</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">"windows"</span><span class="p">)</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <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">"lock"</span><span class="p">),</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="p">)</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="p">)</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="o">**</span><span class="n">tokens</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-171"><a href="#L-171"><span class="linenos">171</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-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</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-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"RETURNING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RETURNING</span><span class="p">,</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</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-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="p">}</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="p">}</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="s2">"XMLTABLE"</span><span class="p">:</span> <span class="n">_parse_xml_table</span><span class="p">,</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="p">}</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">if</span> <span class="n">column</span><span class="p">:</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">,</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">JOIN_MARKER</span><span class="p">))</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">return</span> <span class="n">column</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</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">TINYINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</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">SMALLINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</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">"NUMBER"</span><span class="p">,</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</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">BIGINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</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">VARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR2"</span><span class="p">,</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"NVARCHAR2"</span><span class="p">,</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</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">TEXT</span><span class="p">:</span> <span class="s2">"CLOB"</span><span class="p">,</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</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">"BLOB"</span><span class="p">,</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</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">"BLOB"</span><span class="p">,</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="p">}</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">:</span> <span class="n">_limit_sql</span><span class="p">,</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</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">subquery_sql</span><span class="p">(</span><span class="n">e</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-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">table_sql</span><span class="p">(</span><span class="n">e</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-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_DATE('1970-01-01','YYYY-MM-DD') + (</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"> / 86400)"</span><span class="p">,</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">),</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="p">}</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="o">*</span><span class="n">sqls</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="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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-137"><a href="#L-137"><span class="linenos">137</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">"windows"</span><span class="p">)</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="p">)</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="p">)</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="o">**</span><span class="n">tokens</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-170"><a href="#L-170"><span class="linenos">170</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-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</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-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="s2">"RETURNING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RETURNING</span><span class="p">,</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</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-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="p">}</span> </span></pre></div> @@ -315,109 +314,108 @@ </span><span id="Oracle-76"><a href="#Oracle-76"><span class="linenos"> 76</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Oracle-77"><a href="#Oracle-77"><span class="linenos"> 77</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="Oracle-78"><a href="#Oracle-78"><span class="linenos"> 78</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Oracle-79"><a href="#Oracle-79"><span class="linenos"> 79</span></a> <span class="p">}</span> -</span><span id="Oracle-80"><a href="#Oracle-80"><span class="linenos"> 80</span></a> -</span><span id="Oracle-81"><a href="#Oracle-81"><span class="linenos"> 81</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle-82"><a href="#Oracle-82"><span class="linenos"> 82</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> -</span><span id="Oracle-83"><a href="#Oracle-83"><span class="linenos"> 83</span></a> <span class="s2">"XMLTABLE"</span><span class="p">:</span> <span class="n">_parse_xml_table</span><span class="p">,</span> -</span><span id="Oracle-84"><a href="#Oracle-84"><span class="linenos"> 84</span></a> <span class="p">}</span> -</span><span id="Oracle-85"><a href="#Oracle-85"><span class="linenos"> 85</span></a> -</span><span id="Oracle-86"><a href="#Oracle-86"><span class="linenos"> 86</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Oracle-87"><a href="#Oracle-87"><span class="linenos"> 87</span></a> -</span><span id="Oracle-88"><a href="#Oracle-88"><span class="linenos"> 88</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> -</span><span id="Oracle-89"><a href="#Oracle-89"><span class="linenos"> 89</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Oracle-90"><a href="#Oracle-90"><span class="linenos"> 90</span></a> <span class="k">if</span> <span class="n">column</span><span class="p">:</span> -</span><span id="Oracle-91"><a href="#Oracle-91"><span class="linenos"> 91</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">,</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">JOIN_MARKER</span><span class="p">))</span> -</span><span id="Oracle-92"><a href="#Oracle-92"><span class="linenos"> 92</span></a> <span class="k">return</span> <span class="n">column</span> -</span><span id="Oracle-93"><a href="#Oracle-93"><span class="linenos"> 93</span></a> -</span><span id="Oracle-94"><a href="#Oracle-94"><span class="linenos"> 94</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Oracle-95"><a href="#Oracle-95"><span class="linenos"> 95</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Oracle-96"><a href="#Oracle-96"><span class="linenos"> 96</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Oracle-97"><a href="#Oracle-97"><span class="linenos"> 97</span></a> -</span><span id="Oracle-98"><a href="#Oracle-98"><span class="linenos"> 98</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle-99"><a href="#Oracle-99"><span class="linenos"> 99</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Oracle-100"><a href="#Oracle-100"><span class="linenos">100</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">TINYINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle-101"><a href="#Oracle-101"><span class="linenos">101</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">SMALLINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle-102"><a href="#Oracle-102"><span class="linenos">102</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">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle-103"><a href="#Oracle-103"><span class="linenos">103</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">BIGINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle-104"><a href="#Oracle-104"><span class="linenos">104</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle-105"><a href="#Oracle-105"><span class="linenos">105</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> -</span><span id="Oracle-106"><a href="#Oracle-106"><span class="linenos">106</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">VARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR2"</span><span class="p">,</span> -</span><span id="Oracle-107"><a href="#Oracle-107"><span class="linenos">107</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"NVARCHAR2"</span><span class="p">,</span> -</span><span id="Oracle-108"><a href="#Oracle-108"><span class="linenos">108</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">TEXT</span><span class="p">:</span> <span class="s2">"CLOB"</span><span class="p">,</span> -</span><span id="Oracle-109"><a href="#Oracle-109"><span class="linenos">109</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">"BLOB"</span><span class="p">,</span> -</span><span id="Oracle-110"><a href="#Oracle-110"><span class="linenos">110</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">"BLOB"</span><span class="p">,</span> -</span><span id="Oracle-111"><a href="#Oracle-111"><span class="linenos">111</span></a> <span class="p">}</span> -</span><span id="Oracle-112"><a href="#Oracle-112"><span class="linenos">112</span></a> -</span><span id="Oracle-113"><a href="#Oracle-113"><span class="linenos">113</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle-114"><a href="#Oracle-114"><span class="linenos">114</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Oracle-115"><a href="#Oracle-115"><span class="linenos">115</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Oracle-116"><a href="#Oracle-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="Oracle-117"><a href="#Oracle-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">:</span> <span class="n">_limit_sql</span><span class="p">,</span> -</span><span id="Oracle-118"><a href="#Oracle-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> -</span><span id="Oracle-119"><a href="#Oracle-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> -</span><span id="Oracle-120"><a href="#Oracle-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Oracle-121"><a href="#Oracle-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</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">subquery_sql</span><span class="p">(</span><span class="n">e</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="Oracle-122"><a href="#Oracle-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">table_sql</span><span class="p">(</span><span class="n">e</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="Oracle-123"><a href="#Oracle-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Oracle-124"><a href="#Oracle-124"><span class="linenos">124</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_DATE('1970-01-01','YYYY-MM-DD') + (</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"> / 86400)"</span><span class="p">,</span> -</span><span id="Oracle-125"><a href="#Oracle-125"><span class="linenos">125</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">),</span> -</span><span id="Oracle-126"><a href="#Oracle-126"><span class="linenos">126</span></a> <span class="p">}</span> -</span><span id="Oracle-127"><a href="#Oracle-127"><span class="linenos">127</span></a> -</span><span id="Oracle-128"><a href="#Oracle-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle-129"><a href="#Oracle-129"><span class="linenos">129</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> -</span><span id="Oracle-130"><a href="#Oracle-130"><span class="linenos">130</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> -</span><span id="Oracle-131"><a href="#Oracle-131"><span class="linenos">131</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Oracle-132"><a href="#Oracle-132"><span class="linenos">132</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="Oracle-133"><a href="#Oracle-133"><span class="linenos">133</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Oracle-134"><a href="#Oracle-134"><span class="linenos">134</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="Oracle-135"><a href="#Oracle-135"><span class="linenos">135</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="Oracle-136"><a href="#Oracle-136"><span class="linenos">136</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="Oracle-137"><a href="#Oracle-137"><span class="linenos">137</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="Oracle-138"><a href="#Oracle-138"><span class="linenos">138</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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="Oracle-139"><a href="#Oracle-139"><span class="linenos">139</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">"windows"</span><span class="p">)</span> -</span><span id="Oracle-140"><a href="#Oracle-140"><span class="linenos">140</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Oracle-141"><a href="#Oracle-141"><span class="linenos">141</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="Oracle-142"><a href="#Oracle-142"><span class="linenos">142</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="Oracle-143"><a href="#Oracle-143"><span class="linenos">143</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="Oracle-144"><a href="#Oracle-144"><span class="linenos">144</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="Oracle-145"><a href="#Oracle-145"><span class="linenos">145</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> -</span><span id="Oracle-146"><a href="#Oracle-146"><span class="linenos">146</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="Oracle-147"><a href="#Oracle-147"><span class="linenos">147</span></a> <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">"lock"</span><span class="p">),</span> -</span><span id="Oracle-148"><a href="#Oracle-148"><span class="linenos">148</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="Oracle-149"><a href="#Oracle-149"><span class="linenos">149</span></a> <span class="p">)</span> -</span><span id="Oracle-150"><a href="#Oracle-150"><span class="linenos">150</span></a> -</span><span id="Oracle-151"><a href="#Oracle-151"><span class="linenos">151</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle-152"><a href="#Oracle-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> -</span><span id="Oracle-153"><a href="#Oracle-153"><span class="linenos">153</span></a> -</span><span id="Oracle-154"><a href="#Oracle-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle-155"><a href="#Oracle-155"><span class="linenos">155</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Oracle-156"><a href="#Oracle-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> -</span><span id="Oracle-157"><a href="#Oracle-157"><span class="linenos">157</span></a> -</span><span id="Oracle-158"><a href="#Oracle-158"><span class="linenos">158</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle-159"><a href="#Oracle-159"><span class="linenos">159</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Oracle-160"><a href="#Oracle-160"><span class="linenos">160</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> -</span><span id="Oracle-161"><a href="#Oracle-161"><span class="linenos">161</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle-162"><a href="#Oracle-162"><span class="linenos">162</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> -</span><span id="Oracle-163"><a href="#Oracle-163"><span class="linenos">163</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle-164"><a href="#Oracle-164"><span class="linenos">164</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Oracle-165"><a href="#Oracle-165"><span class="linenos">165</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle-166"><a href="#Oracle-166"><span class="linenos">166</span></a> <span class="p">)</span> -</span><span id="Oracle-167"><a href="#Oracle-167"><span class="linenos">167</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Oracle-168"><a href="#Oracle-168"><span class="linenos">168</span></a> -</span><span id="Oracle-169"><a href="#Oracle-169"><span class="linenos">169</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Oracle-170"><a href="#Oracle-170"><span class="linenos">170</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle-171"><a href="#Oracle-171"><span class="linenos">171</span></a> <span class="o">**</span><span class="n">tokens</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="Oracle-172"><a href="#Oracle-172"><span class="linenos">172</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="Oracle-173"><a href="#Oracle-173"><span class="linenos">173</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> -</span><span id="Oracle-174"><a href="#Oracle-174"><span class="linenos">174</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> -</span><span id="Oracle-175"><a href="#Oracle-175"><span class="linenos">175</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="Oracle-176"><a href="#Oracle-176"><span class="linenos">176</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="Oracle-177"><a href="#Oracle-177"><span class="linenos">177</span></a> <span class="s2">"RETURNING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RETURNING</span><span class="p">,</span> -</span><span id="Oracle-178"><a href="#Oracle-178"><span class="linenos">178</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="Oracle-179"><a href="#Oracle-179"><span class="linenos">179</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="Oracle-180"><a href="#Oracle-180"><span class="linenos">180</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="Oracle-181"><a href="#Oracle-181"><span class="linenos">181</span></a> <span class="p">}</span> +</span><span id="Oracle-79"><a href="#Oracle-79"><span class="linenos"> 79</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="Oracle-80"><a href="#Oracle-80"><span class="linenos"> 80</span></a> <span class="p">}</span> +</span><span id="Oracle-81"><a href="#Oracle-81"><span class="linenos"> 81</span></a> +</span><span id="Oracle-82"><a href="#Oracle-82"><span class="linenos"> 82</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle-83"><a href="#Oracle-83"><span class="linenos"> 83</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> +</span><span id="Oracle-84"><a href="#Oracle-84"><span class="linenos"> 84</span></a> <span class="s2">"XMLTABLE"</span><span class="p">:</span> <span class="n">_parse_xml_table</span><span class="p">,</span> +</span><span id="Oracle-85"><a href="#Oracle-85"><span class="linenos"> 85</span></a> <span class="p">}</span> +</span><span id="Oracle-86"><a href="#Oracle-86"><span class="linenos"> 86</span></a> +</span><span id="Oracle-87"><a href="#Oracle-87"><span class="linenos"> 87</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> +</span><span id="Oracle-88"><a href="#Oracle-88"><span class="linenos"> 88</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="Oracle-89"><a href="#Oracle-89"><span class="linenos"> 89</span></a> <span class="k">if</span> <span class="n">column</span><span class="p">:</span> +</span><span id="Oracle-90"><a href="#Oracle-90"><span class="linenos"> 90</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">,</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">JOIN_MARKER</span><span class="p">))</span> +</span><span id="Oracle-91"><a href="#Oracle-91"><span class="linenos"> 91</span></a> <span class="k">return</span> <span class="n">column</span> +</span><span id="Oracle-92"><a href="#Oracle-92"><span class="linenos"> 92</span></a> +</span><span id="Oracle-93"><a href="#Oracle-93"><span class="linenos"> 93</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Oracle-94"><a href="#Oracle-94"><span class="linenos"> 94</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Oracle-95"><a href="#Oracle-95"><span class="linenos"> 95</span></a> +</span><span id="Oracle-96"><a href="#Oracle-96"><span class="linenos"> 96</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle-97"><a href="#Oracle-97"><span class="linenos"> 97</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Oracle-98"><a href="#Oracle-98"><span class="linenos"> 98</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">TINYINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle-99"><a href="#Oracle-99"><span class="linenos"> 99</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">SMALLINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle-100"><a href="#Oracle-100"><span class="linenos">100</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">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle-101"><a href="#Oracle-101"><span class="linenos">101</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">BIGINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle-102"><a href="#Oracle-102"><span class="linenos">102</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle-103"><a href="#Oracle-103"><span class="linenos">103</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> +</span><span id="Oracle-104"><a href="#Oracle-104"><span class="linenos">104</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">VARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR2"</span><span class="p">,</span> +</span><span id="Oracle-105"><a href="#Oracle-105"><span class="linenos">105</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"NVARCHAR2"</span><span class="p">,</span> +</span><span id="Oracle-106"><a href="#Oracle-106"><span class="linenos">106</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">TEXT</span><span class="p">:</span> <span class="s2">"CLOB"</span><span class="p">,</span> +</span><span id="Oracle-107"><a href="#Oracle-107"><span class="linenos">107</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">"BLOB"</span><span class="p">,</span> +</span><span id="Oracle-108"><a href="#Oracle-108"><span class="linenos">108</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">"BLOB"</span><span class="p">,</span> +</span><span id="Oracle-109"><a href="#Oracle-109"><span class="linenos">109</span></a> <span class="p">}</span> +</span><span id="Oracle-110"><a href="#Oracle-110"><span class="linenos">110</span></a> +</span><span id="Oracle-111"><a href="#Oracle-111"><span class="linenos">111</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle-112"><a href="#Oracle-112"><span class="linenos">112</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Oracle-113"><a href="#Oracle-113"><span class="linenos">113</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Oracle-114"><a href="#Oracle-114"><span class="linenos">114</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="Oracle-115"><a href="#Oracle-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">:</span> <span class="n">_limit_sql</span><span class="p">,</span> +</span><span id="Oracle-116"><a href="#Oracle-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="Oracle-117"><a href="#Oracle-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> +</span><span id="Oracle-118"><a href="#Oracle-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Oracle-119"><a href="#Oracle-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</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">subquery_sql</span><span class="p">(</span><span class="n">e</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="Oracle-120"><a href="#Oracle-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">table_sql</span><span class="p">(</span><span class="n">e</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="Oracle-121"><a href="#Oracle-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Oracle-122"><a href="#Oracle-122"><span class="linenos">122</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_DATE('1970-01-01','YYYY-MM-DD') + (</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"> / 86400)"</span><span class="p">,</span> +</span><span id="Oracle-123"><a href="#Oracle-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">),</span> +</span><span id="Oracle-124"><a href="#Oracle-124"><span class="linenos">124</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Oracle-125"><a href="#Oracle-125"><span class="linenos">125</span></a> <span class="p">}</span> +</span><span id="Oracle-126"><a href="#Oracle-126"><span class="linenos">126</span></a> +</span><span id="Oracle-127"><a href="#Oracle-127"><span class="linenos">127</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle-128"><a href="#Oracle-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="Oracle-129"><a href="#Oracle-129"><span class="linenos">129</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> +</span><span id="Oracle-130"><a href="#Oracle-130"><span class="linenos">130</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Oracle-131"><a href="#Oracle-131"><span class="linenos">131</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="Oracle-132"><a href="#Oracle-132"><span class="linenos">132</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Oracle-133"><a href="#Oracle-133"><span class="linenos">133</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="Oracle-134"><a href="#Oracle-134"><span class="linenos">134</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="Oracle-135"><a href="#Oracle-135"><span class="linenos">135</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="Oracle-136"><a href="#Oracle-136"><span class="linenos">136</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="Oracle-137"><a href="#Oracle-137"><span class="linenos">137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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="Oracle-138"><a href="#Oracle-138"><span class="linenos">138</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">"windows"</span><span class="p">)</span> +</span><span id="Oracle-139"><a href="#Oracle-139"><span class="linenos">139</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Oracle-140"><a href="#Oracle-140"><span class="linenos">140</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="Oracle-141"><a href="#Oracle-141"><span class="linenos">141</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="Oracle-142"><a href="#Oracle-142"><span class="linenos">142</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="Oracle-143"><a href="#Oracle-143"><span class="linenos">143</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="Oracle-144"><a href="#Oracle-144"><span class="linenos">144</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> +</span><span id="Oracle-145"><a href="#Oracle-145"><span class="linenos">145</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="Oracle-146"><a href="#Oracle-146"><span class="linenos">146</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="Oracle-147"><a href="#Oracle-147"><span class="linenos">147</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="Oracle-148"><a href="#Oracle-148"><span class="linenos">148</span></a> <span class="p">)</span> +</span><span id="Oracle-149"><a href="#Oracle-149"><span class="linenos">149</span></a> +</span><span id="Oracle-150"><a href="#Oracle-150"><span class="linenos">150</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle-151"><a href="#Oracle-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> +</span><span id="Oracle-152"><a href="#Oracle-152"><span class="linenos">152</span></a> +</span><span id="Oracle-153"><a href="#Oracle-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle-154"><a href="#Oracle-154"><span class="linenos">154</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Oracle-155"><a href="#Oracle-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> +</span><span id="Oracle-156"><a href="#Oracle-156"><span class="linenos">156</span></a> +</span><span id="Oracle-157"><a href="#Oracle-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle-158"><a href="#Oracle-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Oracle-159"><a href="#Oracle-159"><span class="linenos">159</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> +</span><span id="Oracle-160"><a href="#Oracle-160"><span class="linenos">160</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle-161"><a href="#Oracle-161"><span class="linenos">161</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> +</span><span id="Oracle-162"><a href="#Oracle-162"><span class="linenos">162</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle-163"><a href="#Oracle-163"><span class="linenos">163</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Oracle-164"><a href="#Oracle-164"><span class="linenos">164</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle-165"><a href="#Oracle-165"><span class="linenos">165</span></a> <span class="p">)</span> +</span><span id="Oracle-166"><a href="#Oracle-166"><span class="linenos">166</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Oracle-167"><a href="#Oracle-167"><span class="linenos">167</span></a> +</span><span id="Oracle-168"><a href="#Oracle-168"><span class="linenos">168</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Oracle-169"><a href="#Oracle-169"><span class="linenos">169</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle-170"><a href="#Oracle-170"><span class="linenos">170</span></a> <span class="o">**</span><span class="n">tokens</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="Oracle-171"><a href="#Oracle-171"><span class="linenos">171</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="Oracle-172"><a href="#Oracle-172"><span class="linenos">172</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> +</span><span id="Oracle-173"><a href="#Oracle-173"><span class="linenos">173</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> +</span><span id="Oracle-174"><a href="#Oracle-174"><span class="linenos">174</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="Oracle-175"><a href="#Oracle-175"><span class="linenos">175</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="Oracle-176"><a href="#Oracle-176"><span class="linenos">176</span></a> <span class="s2">"RETURNING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RETURNING</span><span class="p">,</span> +</span><span id="Oracle-177"><a href="#Oracle-177"><span class="linenos">177</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="Oracle-178"><a href="#Oracle-178"><span class="linenos">178</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="Oracle-179"><a href="#Oracle-179"><span class="linenos">179</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="Oracle-180"><a href="#Oracle-180"><span class="linenos">180</span></a> <span class="p">}</span> </span></pre></div> @@ -433,6 +431,7 @@ <dd id="Oracle.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Oracle.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Oracle.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Oracle.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Oracle.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Oracle.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -455,20 +454,19 @@ </span><span id="Oracle.Parser-76"><a href="#Oracle.Parser-76"><span class="linenos">76</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Oracle.Parser-77"><a href="#Oracle.Parser-77"><span class="linenos">77</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> </span><span id="Oracle.Parser-78"><a href="#Oracle.Parser-78"><span class="linenos">78</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Oracle.Parser-79"><a href="#Oracle.Parser-79"><span class="linenos">79</span></a> <span class="p">}</span> -</span><span id="Oracle.Parser-80"><a href="#Oracle.Parser-80"><span class="linenos">80</span></a> -</span><span id="Oracle.Parser-81"><a href="#Oracle.Parser-81"><span class="linenos">81</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle.Parser-82"><a href="#Oracle.Parser-82"><span class="linenos">82</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> -</span><span id="Oracle.Parser-83"><a href="#Oracle.Parser-83"><span class="linenos">83</span></a> <span class="s2">"XMLTABLE"</span><span class="p">:</span> <span class="n">_parse_xml_table</span><span class="p">,</span> -</span><span id="Oracle.Parser-84"><a href="#Oracle.Parser-84"><span class="linenos">84</span></a> <span class="p">}</span> -</span><span id="Oracle.Parser-85"><a href="#Oracle.Parser-85"><span class="linenos">85</span></a> -</span><span id="Oracle.Parser-86"><a href="#Oracle.Parser-86"><span class="linenos">86</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Oracle.Parser-87"><a href="#Oracle.Parser-87"><span class="linenos">87</span></a> -</span><span id="Oracle.Parser-88"><a href="#Oracle.Parser-88"><span class="linenos">88</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> -</span><span id="Oracle.Parser-89"><a href="#Oracle.Parser-89"><span class="linenos">89</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Oracle.Parser-90"><a href="#Oracle.Parser-90"><span class="linenos">90</span></a> <span class="k">if</span> <span class="n">column</span><span class="p">:</span> -</span><span id="Oracle.Parser-91"><a href="#Oracle.Parser-91"><span class="linenos">91</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">,</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">JOIN_MARKER</span><span class="p">))</span> -</span><span id="Oracle.Parser-92"><a href="#Oracle.Parser-92"><span class="linenos">92</span></a> <span class="k">return</span> <span class="n">column</span> +</span><span id="Oracle.Parser-79"><a href="#Oracle.Parser-79"><span class="linenos">79</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="Oracle.Parser-80"><a href="#Oracle.Parser-80"><span class="linenos">80</span></a> <span class="p">}</span> +</span><span id="Oracle.Parser-81"><a href="#Oracle.Parser-81"><span class="linenos">81</span></a> +</span><span id="Oracle.Parser-82"><a href="#Oracle.Parser-82"><span class="linenos">82</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle.Parser-83"><a href="#Oracle.Parser-83"><span class="linenos">83</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> +</span><span id="Oracle.Parser-84"><a href="#Oracle.Parser-84"><span class="linenos">84</span></a> <span class="s2">"XMLTABLE"</span><span class="p">:</span> <span class="n">_parse_xml_table</span><span class="p">,</span> +</span><span id="Oracle.Parser-85"><a href="#Oracle.Parser-85"><span class="linenos">85</span></a> <span class="p">}</span> +</span><span id="Oracle.Parser-86"><a href="#Oracle.Parser-86"><span class="linenos">86</span></a> +</span><span id="Oracle.Parser-87"><a href="#Oracle.Parser-87"><span class="linenos">87</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> +</span><span id="Oracle.Parser-88"><a href="#Oracle.Parser-88"><span class="linenos">88</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="Oracle.Parser-89"><a href="#Oracle.Parser-89"><span class="linenos">89</span></a> <span class="k">if</span> <span class="n">column</span><span class="p">:</span> +</span><span id="Oracle.Parser-90"><a href="#Oracle.Parser-90"><span class="linenos">90</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">,</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">JOIN_MARKER</span><span class="p">))</span> +</span><span id="Oracle.Parser-91"><a href="#Oracle.Parser-91"><span class="linenos">91</span></a> <span class="k">return</span> <span class="n">column</span> </span></pre></div> @@ -525,80 +523,80 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Oracle.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator-94"><a href="#Oracle.Generator-94"><span class="linenos"> 94</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Oracle.Generator-95"><a href="#Oracle.Generator-95"><span class="linenos"> 95</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Oracle.Generator-96"><a href="#Oracle.Generator-96"><span class="linenos"> 96</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Oracle.Generator-97"><a href="#Oracle.Generator-97"><span class="linenos"> 97</span></a> -</span><span id="Oracle.Generator-98"><a href="#Oracle.Generator-98"><span class="linenos"> 98</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle.Generator-99"><a href="#Oracle.Generator-99"><span class="linenos"> 99</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Oracle.Generator-100"><a href="#Oracle.Generator-100"><span class="linenos">100</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">TINYINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle.Generator-101"><a href="#Oracle.Generator-101"><span class="linenos">101</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">SMALLINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle.Generator-102"><a href="#Oracle.Generator-102"><span class="linenos">102</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">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle.Generator-103"><a href="#Oracle.Generator-103"><span class="linenos">103</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">BIGINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle.Generator-104"><a href="#Oracle.Generator-104"><span class="linenos">104</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> -</span><span id="Oracle.Generator-105"><a href="#Oracle.Generator-105"><span class="linenos">105</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> -</span><span id="Oracle.Generator-106"><a href="#Oracle.Generator-106"><span class="linenos">106</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">VARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR2"</span><span class="p">,</span> -</span><span id="Oracle.Generator-107"><a href="#Oracle.Generator-107"><span class="linenos">107</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"NVARCHAR2"</span><span class="p">,</span> -</span><span id="Oracle.Generator-108"><a href="#Oracle.Generator-108"><span class="linenos">108</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">TEXT</span><span class="p">:</span> <span class="s2">"CLOB"</span><span class="p">,</span> -</span><span id="Oracle.Generator-109"><a href="#Oracle.Generator-109"><span class="linenos">109</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">"BLOB"</span><span class="p">,</span> -</span><span id="Oracle.Generator-110"><a href="#Oracle.Generator-110"><span class="linenos">110</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">"BLOB"</span><span class="p">,</span> -</span><span id="Oracle.Generator-111"><a href="#Oracle.Generator-111"><span class="linenos">111</span></a> <span class="p">}</span> -</span><span id="Oracle.Generator-112"><a href="#Oracle.Generator-112"><span class="linenos">112</span></a> -</span><span id="Oracle.Generator-113"><a href="#Oracle.Generator-113"><span class="linenos">113</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle.Generator-114"><a href="#Oracle.Generator-114"><span class="linenos">114</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Oracle.Generator-115"><a href="#Oracle.Generator-115"><span class="linenos">115</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Oracle.Generator-116"><a href="#Oracle.Generator-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="Oracle.Generator-117"><a href="#Oracle.Generator-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">:</span> <span class="n">_limit_sql</span><span class="p">,</span> -</span><span id="Oracle.Generator-118"><a href="#Oracle.Generator-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> -</span><span id="Oracle.Generator-119"><a href="#Oracle.Generator-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> -</span><span id="Oracle.Generator-120"><a href="#Oracle.Generator-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Oracle.Generator-121"><a href="#Oracle.Generator-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</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">subquery_sql</span><span class="p">(</span><span class="n">e</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="Oracle.Generator-122"><a href="#Oracle.Generator-122"><span class="linenos">122</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">table_sql</span><span class="p">(</span><span class="n">e</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="Oracle.Generator-123"><a href="#Oracle.Generator-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Oracle.Generator-124"><a href="#Oracle.Generator-124"><span class="linenos">124</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_DATE('1970-01-01','YYYY-MM-DD') + (</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"> / 86400)"</span><span class="p">,</span> -</span><span id="Oracle.Generator-125"><a href="#Oracle.Generator-125"><span class="linenos">125</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">),</span> -</span><span id="Oracle.Generator-126"><a href="#Oracle.Generator-126"><span class="linenos">126</span></a> <span class="p">}</span> -</span><span id="Oracle.Generator-127"><a href="#Oracle.Generator-127"><span class="linenos">127</span></a> -</span><span id="Oracle.Generator-128"><a href="#Oracle.Generator-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator-129"><a href="#Oracle.Generator-129"><span class="linenos">129</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> -</span><span id="Oracle.Generator-130"><a href="#Oracle.Generator-130"><span class="linenos">130</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> -</span><span id="Oracle.Generator-131"><a href="#Oracle.Generator-131"><span class="linenos">131</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Oracle.Generator-132"><a href="#Oracle.Generator-132"><span class="linenos">132</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="Oracle.Generator-133"><a href="#Oracle.Generator-133"><span class="linenos">133</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Oracle.Generator-134"><a href="#Oracle.Generator-134"><span class="linenos">134</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="Oracle.Generator-135"><a href="#Oracle.Generator-135"><span class="linenos">135</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="Oracle.Generator-136"><a href="#Oracle.Generator-136"><span class="linenos">136</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="Oracle.Generator-137"><a href="#Oracle.Generator-137"><span class="linenos">137</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="Oracle.Generator-138"><a href="#Oracle.Generator-138"><span class="linenos">138</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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="Oracle.Generator-139"><a href="#Oracle.Generator-139"><span class="linenos">139</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">"windows"</span><span class="p">)</span> -</span><span id="Oracle.Generator-140"><a href="#Oracle.Generator-140"><span class="linenos">140</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Oracle.Generator-141"><a href="#Oracle.Generator-141"><span class="linenos">141</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="Oracle.Generator-142"><a href="#Oracle.Generator-142"><span class="linenos">142</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="Oracle.Generator-143"><a href="#Oracle.Generator-143"><span class="linenos">143</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="Oracle.Generator-144"><a href="#Oracle.Generator-144"><span class="linenos">144</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="Oracle.Generator-145"><a href="#Oracle.Generator-145"><span class="linenos">145</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> -</span><span id="Oracle.Generator-146"><a href="#Oracle.Generator-146"><span class="linenos">146</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="Oracle.Generator-147"><a href="#Oracle.Generator-147"><span class="linenos">147</span></a> <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">"lock"</span><span class="p">),</span> -</span><span id="Oracle.Generator-148"><a href="#Oracle.Generator-148"><span class="linenos">148</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="Oracle.Generator-149"><a href="#Oracle.Generator-149"><span class="linenos">149</span></a> <span class="p">)</span> -</span><span id="Oracle.Generator-150"><a href="#Oracle.Generator-150"><span class="linenos">150</span></a> -</span><span id="Oracle.Generator-151"><a href="#Oracle.Generator-151"><span class="linenos">151</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator-152"><a href="#Oracle.Generator-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> -</span><span id="Oracle.Generator-153"><a href="#Oracle.Generator-153"><span class="linenos">153</span></a> -</span><span id="Oracle.Generator-154"><a href="#Oracle.Generator-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator-155"><a href="#Oracle.Generator-155"><span class="linenos">155</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Oracle.Generator-156"><a href="#Oracle.Generator-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> -</span><span id="Oracle.Generator-157"><a href="#Oracle.Generator-157"><span class="linenos">157</span></a> -</span><span id="Oracle.Generator-158"><a href="#Oracle.Generator-158"><span class="linenos">158</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator-159"><a href="#Oracle.Generator-159"><span class="linenos">159</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Oracle.Generator-160"><a href="#Oracle.Generator-160"><span class="linenos">160</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> -</span><span id="Oracle.Generator-161"><a href="#Oracle.Generator-161"><span class="linenos">161</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle.Generator-162"><a href="#Oracle.Generator-162"><span class="linenos">162</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> -</span><span id="Oracle.Generator-163"><a href="#Oracle.Generator-163"><span class="linenos">163</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle.Generator-164"><a href="#Oracle.Generator-164"><span class="linenos">164</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Oracle.Generator-165"><a href="#Oracle.Generator-165"><span class="linenos">165</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle.Generator-166"><a href="#Oracle.Generator-166"><span class="linenos">166</span></a> <span class="p">)</span> -</span><span id="Oracle.Generator-167"><a href="#Oracle.Generator-167"><span class="linenos">167</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator-93"><a href="#Oracle.Generator-93"><span class="linenos"> 93</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Oracle.Generator-94"><a href="#Oracle.Generator-94"><span class="linenos"> 94</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Oracle.Generator-95"><a href="#Oracle.Generator-95"><span class="linenos"> 95</span></a> +</span><span id="Oracle.Generator-96"><a href="#Oracle.Generator-96"><span class="linenos"> 96</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle.Generator-97"><a href="#Oracle.Generator-97"><span class="linenos"> 97</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Oracle.Generator-98"><a href="#Oracle.Generator-98"><span class="linenos"> 98</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">TINYINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle.Generator-99"><a href="#Oracle.Generator-99"><span class="linenos"> 99</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">SMALLINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle.Generator-100"><a href="#Oracle.Generator-100"><span class="linenos">100</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">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle.Generator-101"><a href="#Oracle.Generator-101"><span class="linenos">101</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">BIGINT</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle.Generator-102"><a href="#Oracle.Generator-102"><span class="linenos">102</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMBER"</span><span class="p">,</span> +</span><span id="Oracle.Generator-103"><a href="#Oracle.Generator-103"><span class="linenos">103</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> +</span><span id="Oracle.Generator-104"><a href="#Oracle.Generator-104"><span class="linenos">104</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">VARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR2"</span><span class="p">,</span> +</span><span id="Oracle.Generator-105"><a href="#Oracle.Generator-105"><span class="linenos">105</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"NVARCHAR2"</span><span class="p">,</span> +</span><span id="Oracle.Generator-106"><a href="#Oracle.Generator-106"><span class="linenos">106</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">TEXT</span><span class="p">:</span> <span class="s2">"CLOB"</span><span class="p">,</span> +</span><span id="Oracle.Generator-107"><a href="#Oracle.Generator-107"><span class="linenos">107</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">"BLOB"</span><span class="p">,</span> +</span><span id="Oracle.Generator-108"><a href="#Oracle.Generator-108"><span class="linenos">108</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">"BLOB"</span><span class="p">,</span> +</span><span id="Oracle.Generator-109"><a href="#Oracle.Generator-109"><span class="linenos">109</span></a> <span class="p">}</span> +</span><span id="Oracle.Generator-110"><a href="#Oracle.Generator-110"><span class="linenos">110</span></a> +</span><span id="Oracle.Generator-111"><a href="#Oracle.Generator-111"><span class="linenos">111</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle.Generator-112"><a href="#Oracle.Generator-112"><span class="linenos">112</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Oracle.Generator-113"><a href="#Oracle.Generator-113"><span class="linenos">113</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Oracle.Generator-114"><a href="#Oracle.Generator-114"><span class="linenos">114</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="Oracle.Generator-115"><a href="#Oracle.Generator-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">:</span> <span class="n">_limit_sql</span><span class="p">,</span> +</span><span id="Oracle.Generator-116"><a href="#Oracle.Generator-116"><span class="linenos">116</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="Oracle.Generator-117"><a href="#Oracle.Generator-117"><span class="linenos">117</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> +</span><span id="Oracle.Generator-118"><a href="#Oracle.Generator-118"><span class="linenos">118</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Oracle.Generator-119"><a href="#Oracle.Generator-119"><span class="linenos">119</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</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">subquery_sql</span><span class="p">(</span><span class="n">e</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="Oracle.Generator-120"><a href="#Oracle.Generator-120"><span class="linenos">120</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">table_sql</span><span class="p">(</span><span class="n">e</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="Oracle.Generator-121"><a href="#Oracle.Generator-121"><span class="linenos">121</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Oracle.Generator-122"><a href="#Oracle.Generator-122"><span class="linenos">122</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_DATE('1970-01-01','YYYY-MM-DD') + (</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"> / 86400)"</span><span class="p">,</span> +</span><span id="Oracle.Generator-123"><a href="#Oracle.Generator-123"><span class="linenos">123</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">),</span> +</span><span id="Oracle.Generator-124"><a href="#Oracle.Generator-124"><span class="linenos">124</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Oracle.Generator-125"><a href="#Oracle.Generator-125"><span class="linenos">125</span></a> <span class="p">}</span> +</span><span id="Oracle.Generator-126"><a href="#Oracle.Generator-126"><span class="linenos">126</span></a> +</span><span id="Oracle.Generator-127"><a href="#Oracle.Generator-127"><span class="linenos">127</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator-128"><a href="#Oracle.Generator-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="Oracle.Generator-129"><a href="#Oracle.Generator-129"><span class="linenos">129</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> +</span><span id="Oracle.Generator-130"><a href="#Oracle.Generator-130"><span class="linenos">130</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Oracle.Generator-131"><a href="#Oracle.Generator-131"><span class="linenos">131</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="Oracle.Generator-132"><a href="#Oracle.Generator-132"><span class="linenos">132</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Oracle.Generator-133"><a href="#Oracle.Generator-133"><span class="linenos">133</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="Oracle.Generator-134"><a href="#Oracle.Generator-134"><span class="linenos">134</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="Oracle.Generator-135"><a href="#Oracle.Generator-135"><span class="linenos">135</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="Oracle.Generator-136"><a href="#Oracle.Generator-136"><span class="linenos">136</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="Oracle.Generator-137"><a href="#Oracle.Generator-137"><span class="linenos">137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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="Oracle.Generator-138"><a href="#Oracle.Generator-138"><span class="linenos">138</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">"windows"</span><span class="p">)</span> +</span><span id="Oracle.Generator-139"><a href="#Oracle.Generator-139"><span class="linenos">139</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Oracle.Generator-140"><a href="#Oracle.Generator-140"><span class="linenos">140</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="Oracle.Generator-141"><a href="#Oracle.Generator-141"><span class="linenos">141</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="Oracle.Generator-142"><a href="#Oracle.Generator-142"><span class="linenos">142</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="Oracle.Generator-143"><a href="#Oracle.Generator-143"><span class="linenos">143</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="Oracle.Generator-144"><a href="#Oracle.Generator-144"><span class="linenos">144</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> +</span><span id="Oracle.Generator-145"><a href="#Oracle.Generator-145"><span class="linenos">145</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="Oracle.Generator-146"><a href="#Oracle.Generator-146"><span class="linenos">146</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="Oracle.Generator-147"><a href="#Oracle.Generator-147"><span class="linenos">147</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="Oracle.Generator-148"><a href="#Oracle.Generator-148"><span class="linenos">148</span></a> <span class="p">)</span> +</span><span id="Oracle.Generator-149"><a href="#Oracle.Generator-149"><span class="linenos">149</span></a> +</span><span id="Oracle.Generator-150"><a href="#Oracle.Generator-150"><span class="linenos">150</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator-151"><a href="#Oracle.Generator-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> +</span><span id="Oracle.Generator-152"><a href="#Oracle.Generator-152"><span class="linenos">152</span></a> +</span><span id="Oracle.Generator-153"><a href="#Oracle.Generator-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator-154"><a href="#Oracle.Generator-154"><span class="linenos">154</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Oracle.Generator-155"><a href="#Oracle.Generator-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> +</span><span id="Oracle.Generator-156"><a href="#Oracle.Generator-156"><span class="linenos">156</span></a> +</span><span id="Oracle.Generator-157"><a href="#Oracle.Generator-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator-158"><a href="#Oracle.Generator-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Oracle.Generator-159"><a href="#Oracle.Generator-159"><span class="linenos">159</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> +</span><span id="Oracle.Generator-160"><a href="#Oracle.Generator-160"><span class="linenos">160</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle.Generator-161"><a href="#Oracle.Generator-161"><span class="linenos">161</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> +</span><span id="Oracle.Generator-162"><a href="#Oracle.Generator-162"><span class="linenos">162</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle.Generator-163"><a href="#Oracle.Generator-163"><span class="linenos">163</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Oracle.Generator-164"><a href="#Oracle.Generator-164"><span class="linenos">164</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle.Generator-165"><a href="#Oracle.Generator-165"><span class="linenos">165</span></a> <span class="p">)</span> +</span><span id="Oracle.Generator-166"><a href="#Oracle.Generator-166"><span class="linenos">166</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -615,8 +613,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -658,28 +655,28 @@ Default: True</li> </div> <a class="headerlink" href="#Oracle.Generator.query_modifiers"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.query_modifiers-128"><a href="#Oracle.Generator.query_modifiers-128"><span class="linenos">128</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator.query_modifiers-129"><a href="#Oracle.Generator.query_modifiers-129"><span class="linenos">129</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> -</span><span id="Oracle.Generator.query_modifiers-130"><a href="#Oracle.Generator.query_modifiers-130"><span class="linenos">130</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> -</span><span id="Oracle.Generator.query_modifiers-131"><a href="#Oracle.Generator.query_modifiers-131"><span class="linenos">131</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Oracle.Generator.query_modifiers-132"><a href="#Oracle.Generator.query_modifiers-132"><span class="linenos">132</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-133"><a href="#Oracle.Generator.query_modifiers-133"><span class="linenos">133</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Oracle.Generator.query_modifiers-134"><a href="#Oracle.Generator.query_modifiers-134"><span class="linenos">134</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-135"><a href="#Oracle.Generator.query_modifiers-135"><span class="linenos">135</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-136"><a href="#Oracle.Generator.query_modifiers-136"><span class="linenos">136</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-137"><a href="#Oracle.Generator.query_modifiers-137"><span class="linenos">137</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-138"><a href="#Oracle.Generator.query_modifiers-138"><span class="linenos">138</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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="Oracle.Generator.query_modifiers-139"><a href="#Oracle.Generator.query_modifiers-139"><span class="linenos">139</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">"windows"</span><span class="p">)</span> -</span><span id="Oracle.Generator.query_modifiers-140"><a href="#Oracle.Generator.query_modifiers-140"><span class="linenos">140</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Oracle.Generator.query_modifiers-141"><a href="#Oracle.Generator.query_modifiers-141"><span class="linenos">141</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-142"><a href="#Oracle.Generator.query_modifiers-142"><span class="linenos">142</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-143"><a href="#Oracle.Generator.query_modifiers-143"><span class="linenos">143</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-144"><a href="#Oracle.Generator.query_modifiers-144"><span class="linenos">144</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-145"><a href="#Oracle.Generator.query_modifiers-145"><span class="linenos">145</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> -</span><span id="Oracle.Generator.query_modifiers-146"><a href="#Oracle.Generator.query_modifiers-146"><span class="linenos">146</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-147"><a href="#Oracle.Generator.query_modifiers-147"><span class="linenos">147</span></a> <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">"lock"</span><span class="p">),</span> -</span><span id="Oracle.Generator.query_modifiers-148"><a href="#Oracle.Generator.query_modifiers-148"><span class="linenos">148</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="Oracle.Generator.query_modifiers-149"><a href="#Oracle.Generator.query_modifiers-149"><span class="linenos">149</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.query_modifiers-127"><a href="#Oracle.Generator.query_modifiers-127"><span class="linenos">127</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator.query_modifiers-128"><a href="#Oracle.Generator.query_modifiers-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="Oracle.Generator.query_modifiers-129"><a href="#Oracle.Generator.query_modifiers-129"><span class="linenos">129</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> +</span><span id="Oracle.Generator.query_modifiers-130"><a href="#Oracle.Generator.query_modifiers-130"><span class="linenos">130</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Oracle.Generator.query_modifiers-131"><a href="#Oracle.Generator.query_modifiers-131"><span class="linenos">131</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-132"><a href="#Oracle.Generator.query_modifiers-132"><span class="linenos">132</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Oracle.Generator.query_modifiers-133"><a href="#Oracle.Generator.query_modifiers-133"><span class="linenos">133</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-134"><a href="#Oracle.Generator.query_modifiers-134"><span class="linenos">134</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-135"><a href="#Oracle.Generator.query_modifiers-135"><span class="linenos">135</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-136"><a href="#Oracle.Generator.query_modifiers-136"><span class="linenos">136</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-137"><a href="#Oracle.Generator.query_modifiers-137"><span class="linenos">137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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="Oracle.Generator.query_modifiers-138"><a href="#Oracle.Generator.query_modifiers-138"><span class="linenos">138</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">"windows"</span><span class="p">)</span> +</span><span id="Oracle.Generator.query_modifiers-139"><a href="#Oracle.Generator.query_modifiers-139"><span class="linenos">139</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Oracle.Generator.query_modifiers-140"><a href="#Oracle.Generator.query_modifiers-140"><span class="linenos">140</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-141"><a href="#Oracle.Generator.query_modifiers-141"><span class="linenos">141</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-142"><a href="#Oracle.Generator.query_modifiers-142"><span class="linenos">142</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-143"><a href="#Oracle.Generator.query_modifiers-143"><span class="linenos">143</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-144"><a href="#Oracle.Generator.query_modifiers-144"><span class="linenos">144</span></a> <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">"offset"</span><span class="p">),</span> <span class="c1"># offset before limit in oracle</span> +</span><span id="Oracle.Generator.query_modifiers-145"><a href="#Oracle.Generator.query_modifiers-145"><span class="linenos">145</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-146"><a href="#Oracle.Generator.query_modifiers-146"><span class="linenos">146</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="Oracle.Generator.query_modifiers-147"><a href="#Oracle.Generator.query_modifiers-147"><span class="linenos">147</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="Oracle.Generator.query_modifiers-148"><a href="#Oracle.Generator.query_modifiers-148"><span class="linenos">148</span></a> <span class="p">)</span> </span></pre></div> @@ -697,8 +694,8 @@ Default: True</li> </div> <a class="headerlink" href="#Oracle.Generator.offset_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.offset_sql-151"><a href="#Oracle.Generator.offset_sql-151"><span class="linenos">151</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator.offset_sql-152"><a href="#Oracle.Generator.offset_sql-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.offset_sql-150"><a href="#Oracle.Generator.offset_sql-150"><span class="linenos">150</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator.offset_sql-151"><a href="#Oracle.Generator.offset_sql-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">offset_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> ROWS"</span> </span></pre></div> @@ -716,9 +713,9 @@ Default: True</li> </div> <a class="headerlink" href="#Oracle.Generator.column_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.column_sql-154"><a href="#Oracle.Generator.column_sql-154"><span class="linenos">154</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator.column_sql-155"><a href="#Oracle.Generator.column_sql-155"><span class="linenos">155</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Oracle.Generator.column_sql-156"><a href="#Oracle.Generator.column_sql-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.column_sql-153"><a href="#Oracle.Generator.column_sql-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator.column_sql-154"><a href="#Oracle.Generator.column_sql-154"><span class="linenos">154</span></a> <span class="n">column</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">column_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Oracle.Generator.column_sql-155"><a href="#Oracle.Generator.column_sql-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2"> (+)"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"join_mark"</span><span class="p">)</span> <span class="k">else</span> <span class="n">column</span> </span></pre></div> @@ -736,16 +733,16 @@ Default: True</li> </div> <a class="headerlink" href="#Oracle.Generator.xmltable_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.xmltable_sql-158"><a href="#Oracle.Generator.xmltable_sql-158"><span class="linenos">158</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Oracle.Generator.xmltable_sql-159"><a href="#Oracle.Generator.xmltable_sql-159"><span class="linenos">159</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Oracle.Generator.xmltable_sql-160"><a href="#Oracle.Generator.xmltable_sql-160"><span class="linenos">160</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> -</span><span id="Oracle.Generator.xmltable_sql-161"><a href="#Oracle.Generator.xmltable_sql-161"><span class="linenos">161</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle.Generator.xmltable_sql-162"><a href="#Oracle.Generator.xmltable_sql-162"><span class="linenos">162</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> -</span><span id="Oracle.Generator.xmltable_sql-163"><a href="#Oracle.Generator.xmltable_sql-163"><span class="linenos">163</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle.Generator.xmltable_sql-164"><a href="#Oracle.Generator.xmltable_sql-164"><span class="linenos">164</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Oracle.Generator.xmltable_sql-165"><a href="#Oracle.Generator.xmltable_sql-165"><span class="linenos">165</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Oracle.Generator.xmltable_sql-166"><a href="#Oracle.Generator.xmltable_sql-166"><span class="linenos">166</span></a> <span class="p">)</span> -</span><span id="Oracle.Generator.xmltable_sql-167"><a href="#Oracle.Generator.xmltable_sql-167"><span class="linenos">167</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Generator.xmltable_sql-157"><a href="#Oracle.Generator.xmltable_sql-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">xmltable_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">XMLTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Oracle.Generator.xmltable_sql-158"><a href="#Oracle.Generator.xmltable_sql-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Oracle.Generator.xmltable_sql-159"><a href="#Oracle.Generator.xmltable_sql-159"><span class="linenos">159</span></a> <span class="n">passing</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="s2">"passing"</span><span class="p">)</span> +</span><span id="Oracle.Generator.xmltable_sql-160"><a href="#Oracle.Generator.xmltable_sql-160"><span class="linenos">160</span></a> <span class="n">passing</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">PASSING</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">passing</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">passing</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle.Generator.xmltable_sql-161"><a href="#Oracle.Generator.xmltable_sql-161"><span class="linenos">161</span></a> <span class="n">columns</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="s2">"columns"</span><span class="p">)</span> +</span><span id="Oracle.Generator.xmltable_sql-162"><a href="#Oracle.Generator.xmltable_sql-162"><span class="linenos">162</span></a> <span class="n">columns</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">COLUMNS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle.Generator.xmltable_sql-163"><a href="#Oracle.Generator.xmltable_sql-163"><span class="linenos">163</span></a> <span class="n">by_ref</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Oracle.Generator.xmltable_sql-164"><a href="#Oracle.Generator.xmltable_sql-164"><span class="linenos">164</span></a> <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">sep</span><span class="p">()</span><span class="si">}</span><span class="s2">RETURNING SEQUENCE BY REF"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"by_ref"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Oracle.Generator.xmltable_sql-165"><a href="#Oracle.Generator.xmltable_sql-165"><span class="linenos">165</span></a> <span class="p">)</span> +</span><span id="Oracle.Generator.xmltable_sql-166"><a href="#Oracle.Generator.xmltable_sql-166"><span class="linenos">166</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"XMLTABLE(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">this</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">passing</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">by_ref</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">columns</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -840,6 +837,8 @@ Default: True</li> <dd id="Oracle.Generator.lambda_sql" class="function"><a href="../generator.html#Generator.lambda_sql">lambda_sql</a></dd> <dd id="Oracle.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Oracle.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> + <dd id="Oracle.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Oracle.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Oracle.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Oracle.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Oracle.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -923,7 +922,6 @@ Default: True</li> <dd id="Oracle.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Oracle.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Oracle.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Oracle.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Oracle.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Oracle.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Oracle.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -965,6 +963,7 @@ Default: True</li> <dd id="Oracle.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Oracle.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Oracle.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Oracle.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> @@ -981,19 +980,19 @@ Default: True</li> </div> <a class="headerlink" href="#Oracle.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Tokenizer-169"><a href="#Oracle.Tokenizer-169"><span class="linenos">169</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Oracle.Tokenizer-170"><a href="#Oracle.Tokenizer-170"><span class="linenos">170</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Oracle.Tokenizer-171"><a href="#Oracle.Tokenizer-171"><span class="linenos">171</span></a> <span class="o">**</span><span class="n">tokens</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="Oracle.Tokenizer-172"><a href="#Oracle.Tokenizer-172"><span class="linenos">172</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="Oracle.Tokenizer-173"><a href="#Oracle.Tokenizer-173"><span class="linenos">173</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> -</span><span id="Oracle.Tokenizer-174"><a href="#Oracle.Tokenizer-174"><span class="linenos">174</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> -</span><span id="Oracle.Tokenizer-175"><a href="#Oracle.Tokenizer-175"><span class="linenos">175</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="Oracle.Tokenizer-176"><a href="#Oracle.Tokenizer-176"><span class="linenos">176</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="Oracle.Tokenizer-177"><a href="#Oracle.Tokenizer-177"><span class="linenos">177</span></a> <span class="s2">"RETURNING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RETURNING</span><span class="p">,</span> -</span><span id="Oracle.Tokenizer-178"><a href="#Oracle.Tokenizer-178"><span class="linenos">178</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="Oracle.Tokenizer-179"><a href="#Oracle.Tokenizer-179"><span class="linenos">179</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="Oracle.Tokenizer-180"><a href="#Oracle.Tokenizer-180"><span class="linenos">180</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="Oracle.Tokenizer-181"><a href="#Oracle.Tokenizer-181"><span class="linenos">181</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Oracle.Tokenizer-168"><a href="#Oracle.Tokenizer-168"><span class="linenos">168</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Oracle.Tokenizer-169"><a href="#Oracle.Tokenizer-169"><span class="linenos">169</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Oracle.Tokenizer-170"><a href="#Oracle.Tokenizer-170"><span class="linenos">170</span></a> <span class="o">**</span><span class="n">tokens</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="Oracle.Tokenizer-171"><a href="#Oracle.Tokenizer-171"><span class="linenos">171</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="Oracle.Tokenizer-172"><a href="#Oracle.Tokenizer-172"><span class="linenos">172</span></a> <span class="s2">"COLUMNS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> +</span><span id="Oracle.Tokenizer-173"><a href="#Oracle.Tokenizer-173"><span class="linenos">173</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> +</span><span id="Oracle.Tokenizer-174"><a href="#Oracle.Tokenizer-174"><span class="linenos">174</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="Oracle.Tokenizer-175"><a href="#Oracle.Tokenizer-175"><span class="linenos">175</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="Oracle.Tokenizer-176"><a href="#Oracle.Tokenizer-176"><span class="linenos">176</span></a> <span class="s2">"RETURNING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RETURNING</span><span class="p">,</span> +</span><span id="Oracle.Tokenizer-177"><a href="#Oracle.Tokenizer-177"><span class="linenos">177</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="Oracle.Tokenizer-178"><a href="#Oracle.Tokenizer-178"><span class="linenos">178</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="Oracle.Tokenizer-179"><a href="#Oracle.Tokenizer-179"><span class="linenos">179</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="Oracle.Tokenizer-180"><a href="#Oracle.Tokenizer-180"><span class="linenos">180</span></a> <span class="p">}</span> </span></pre></div> diff --git a/docs/sqlglot/dialects/postgres.html b/docs/sqlglot/dialects/postgres.html index fedf906..9172a76 100644 --- a/docs/sqlglot/dialects/postgres.html +++ b/docs/sqlglot/dialects/postgres.html @@ -91,88 +91,88 @@ </span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">no_trycast_sql</span><span class="p">,</span> </span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">rename_func</span><span class="p">,</span> </span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">trim_sql</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.helper</span> <span class="kn">import</span> <span class="n">seq_get</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.parser</span> <span class="kn">import</span> <span class="n">binary_range_parser</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.transforms</span> <span class="kn">import</span> <span class="n">delegate</span><span class="p">,</span> <span class="n">preprocess</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="n">DATE_DIFF_FACTOR</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="s2">"MICROSECOND"</span><span class="p">:</span> <span class="s2">" * 1000000"</span><span class="p">,</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="s2">"MILLISECOND"</span><span class="p">:</span> <span class="s2">" * 1000"</span><span class="p">,</span> -</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="s2">"SECOND"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="s2">"MINUTE"</span><span class="p">:</span> <span class="s2">" / 60"</span><span class="p">,</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="s2">"HOUR"</span><span class="p">:</span> <span class="s2">" / 3600"</span><span class="p">,</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="s2">"DAY"</span><span class="p">:</span> <span class="s2">" / 86400"</span><span class="p">,</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="p">}</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="p">)</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.parser</span> <span class="kn">import</span> <span class="n">binary_range_parser</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.tokens</span> <span class="kn">import</span> <span class="n">TokenType</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="kn">from</span> <span class="nn">sqlglot.transforms</span> <span class="kn">import</span> <span class="n">delegate</span><span class="p">,</span> <span class="n">preprocess</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> +</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="n">DATE_DIFF_FACTOR</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="s2">"MICROSECOND"</span><span class="p">:</span> <span class="s2">" * 1000000"</span><span class="p">,</span> +</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="s2">"MILLISECOND"</span><span class="p">:</span> <span class="s2">" * 1000"</span><span class="p">,</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="s2">"SECOND"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="s2">"MINUTE"</span><span class="p">:</span> <span class="s2">" / 60"</span><span class="p">,</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="s2">"HOUR"</span><span class="p">:</span> <span class="s2">" / 3600"</span><span class="p">,</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="s2">"DAY"</span><span class="p">:</span> <span class="s2">" / 86400"</span><span class="p">,</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="p">}</span> </span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="k">def</span> <span class="nf">_date_add_sql</span><span class="p">(</span><span class="n">kind</span><span class="p">):</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="k">def</span> <span class="nf">func</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-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.simplify</span> <span class="kn">import</span> <span class="n">simplify</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="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">simplify</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"expression"</span><span class="p">])</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 class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Cannot add non literal"</span><span class="p">)</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">return</span> <span class="n">func</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="k">def</span> <span class="nf">_date_add_sql</span><span class="p">(</span><span class="n">kind</span><span class="p">):</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">def</span> <span class="nf">func</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-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="kn">from</span> <span class="nn">sqlglot.optimizer.simplify</span> <span class="kn">import</span> <span class="n">simplify</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">simplify</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"expression"</span><span class="p">])</span> +</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">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Cannot add non literal"</span><span class="p">)</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</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">exp</span><span class="o">.</span><span class="n">Interval</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">))</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="k">return</span> <span class="n">func</span> </span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="k">def</span> <span class="nf">_date_diff_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><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">factor</span> <span class="o">=</span> <span class="n">DATE_DIFF_FACTOR</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</span><span class="p">)</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">end</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS TIMESTAMP)"</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="si">}</span><span class="s2"> AS TIMESTAMP)"</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">if</span> <span class="n">factor</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(EXTRACT(epoch FROM </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">factor</span><span class="si">}</span><span class="s2"> AS BIGINT)"</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="n">age</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AGE(</span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"WEEK"</span><span class="p">:</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 48 + EXTRACT(month FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 4 + EXTRACT(day FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) / 7"</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 12 + EXTRACT(month FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"QUARTER"</span><span class="p">:</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 4 + EXTRACT(month FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) / 3"</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">age</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2"> AS BIGINT)"</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="k">def</span> <span class="nf">_date_diff_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><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">factor</span> <span class="o">=</span> <span class="n">DATE_DIFF_FACTOR</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">unit</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="n">end</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="si">}</span><span class="s2"> AS TIMESTAMP)"</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="si">}</span><span class="s2"> AS TIMESTAMP)"</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">if</span> <span class="n">factor</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(EXTRACT(epoch FROM </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2"> - </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">factor</span><span class="si">}</span><span class="s2"> AS BIGINT)"</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">age</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AGE(</span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"WEEK"</span><span class="p">:</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 48 + EXTRACT(month FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 4 + EXTRACT(day FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) / 7"</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 12 + EXTRACT(month FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"QUARTER"</span><span class="p">:</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) * 4 + EXTRACT(month FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">) / 3"</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"EXTRACT(year FROM </span><span class="si">{</span><span class="n">age</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">age</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2"> AS BIGINT)"</span> </span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a><span class="k">def</span> <span class="nf">_substring_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><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">length</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">"length"</span><span class="p">)</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">from_part</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">for_part</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR </span><span class="si">{</span><span class="n">length</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">length</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SUBSTRING(</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_part</span><span class="si">}{</span><span class="n">for_part</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> +</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="k">def</span> <span class="nf">_substring_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><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">length</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">"length"</span><span class="p">)</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">from_part</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">for_part</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FOR </span><span class="si">{</span><span class="n">length</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">length</span> <span class="k">else</span> <span class="s2">""</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">return</span> <span class="sa">f</span><span class="s2">"SUBSTRING(</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_part</span><span class="si">}{</span><span class="n">for_part</span><span class="si">}</span><span class="s2">)"</span> </span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="k">def</span> <span class="nf">_string_agg_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><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">separator</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">"separator"</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-90"><a href="#L-90"><span class="linenos"> 90</span></a> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">order</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">if</span> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">this</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="k">def</span> <span class="nf">_string_agg_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><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">separator</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">"separator"</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-91"><a href="#L-91"><span class="linenos"> 91</span></a> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">order</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> </span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">order</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="o">.</span><span class="n">this</span><span class="p">)</span> <span class="c1"># Order has a leading space</span> </span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> </span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRING_AGG(</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}{</span><span class="n">order</span><span class="si">}</span><span class="s2">)"</span> @@ -335,87 +335,93 @@ </span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_to_timestamp</span><span class="p">,</span> </span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"postgres"</span><span class="p">),</span> </span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"GENERATE_SERIES"</span><span class="p">:</span> <span class="n">_generate_series</span><span class="p">,</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="p">}</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="p">}</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</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-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="p">}</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DAMP</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</span><span class="p">),</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AT_GT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">),</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT_AT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</span><span class="p">),</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="p">}</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</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">TINYINT</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</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">"BYTEA"</span><span class="p">,</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</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">"BYTEA"</span><span class="p">,</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="p">}</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#"</span><span class="p">),</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">(</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="p">[</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">_auto_increment_to_serial</span><span class="p">,</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">_serial_to_generated</span><span class="p">,</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="p">],</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">delegate</span><span class="p">(</span><span class="s2">"columndef_sql"</span><span class="p">),</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="p">),</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>"</span><span class="p">),</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>>"</span><span class="p">),</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"?"</span><span class="p">),</span> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">),</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"+"</span><span class="p">),</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"-"</span><span class="p">),</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"&&"</span><span class="p">),</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"@>"</span><span class="p">),</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<@"</span><span class="p">),</span> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~"</span><span class="p">),</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~*"</span><span class="p">),</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">_substring_sql</span><span class="p">,</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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="sa">f</span><span class="s2">"CAST(</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"> AS TIMESTAMP)"</span><span class="p">,</span> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</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-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-328"><a href="#L-328"><span class="linenos">328</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</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-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</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">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="k">else</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">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</span><span class="s2">[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="p">}</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="p">}</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"DATE_TRUNC"</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">TimestampTrunc</span><span class="p">(</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</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">1</span><span class="p">),</span> <span class="n">unit</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-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="p">),</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="p">}</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="p">}</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</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-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="p">}</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DAMP</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</span><span class="p">),</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AT_GT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">),</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT_AT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</span><span class="p">),</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="p">}</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</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">TINYINT</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</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">"BYTEA"</span><span class="p">,</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</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">"BYTEA"</span><span class="p">,</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="p">}</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#"</span><span class="p">),</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">(</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="p">[</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">_auto_increment_to_serial</span><span class="p">,</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">_serial_to_generated</span><span class="p">,</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="p">],</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">delegate</span><span class="p">(</span><span class="s2">"columndef_sql"</span><span class="p">),</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="p">),</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>"</span><span class="p">),</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>>"</span><span class="p">),</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"?"</span><span class="p">),</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">),</span> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"+"</span><span class="p">),</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"-"</span><span class="p">),</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"&&"</span><span class="p">),</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"@>"</span><span class="p">),</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<@"</span><span class="p">),</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~"</span><span class="p">),</span> +</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~*"</span><span class="p">),</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">_substring_sql</span><span class="p">,</span> +</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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="sa">f</span><span class="s2">"CAST(</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"> AS TIMESTAMP)"</span><span class="p">,</span> +</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</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-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</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-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</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">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="k">else</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">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</span><span class="s2">[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="p">}</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="p">}</span> </span></pre></div> @@ -513,87 +519,93 @@ </span><span id="Postgres-257"><a href="#Postgres-257"><span class="linenos">257</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_to_timestamp</span><span class="p">,</span> </span><span id="Postgres-258"><a href="#Postgres-258"><span class="linenos">258</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"postgres"</span><span class="p">),</span> </span><span id="Postgres-259"><a href="#Postgres-259"><span class="linenos">259</span></a> <span class="s2">"GENERATE_SERIES"</span><span class="p">:</span> <span class="n">_generate_series</span><span class="p">,</span> -</span><span id="Postgres-260"><a href="#Postgres-260"><span class="linenos">260</span></a> <span class="p">}</span> -</span><span id="Postgres-261"><a href="#Postgres-261"><span class="linenos">261</span></a> -</span><span id="Postgres-262"><a href="#Postgres-262"><span class="linenos">262</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres-263"><a href="#Postgres-263"><span class="linenos">263</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres-264"><a href="#Postgres-264"><span class="linenos">264</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> -</span><span id="Postgres-265"><a href="#Postgres-265"><span class="linenos">265</span></a> <span class="p">}</span> -</span><span id="Postgres-266"><a href="#Postgres-266"><span class="linenos">266</span></a> -</span><span id="Postgres-267"><a href="#Postgres-267"><span class="linenos">267</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres-268"><a href="#Postgres-268"><span class="linenos">268</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> -</span><span id="Postgres-269"><a href="#Postgres-269"><span class="linenos">269</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</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="Postgres-270"><a href="#Postgres-270"><span class="linenos">270</span></a> <span class="p">}</span> -</span><span id="Postgres-271"><a href="#Postgres-271"><span class="linenos">271</span></a> -</span><span id="Postgres-272"><a href="#Postgres-272"><span class="linenos">272</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres-273"><a href="#Postgres-273"><span class="linenos">273</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres-274"><a href="#Postgres-274"><span class="linenos">274</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DAMP</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</span><span class="p">),</span> -</span><span id="Postgres-275"><a href="#Postgres-275"><span class="linenos">275</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AT_GT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">),</span> -</span><span id="Postgres-276"><a href="#Postgres-276"><span class="linenos">276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT_AT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</span><span class="p">),</span> -</span><span id="Postgres-277"><a href="#Postgres-277"><span class="linenos">277</span></a> <span class="p">}</span> -</span><span id="Postgres-278"><a href="#Postgres-278"><span class="linenos">278</span></a> -</span><span id="Postgres-279"><a href="#Postgres-279"><span class="linenos">279</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Postgres-280"><a href="#Postgres-280"><span class="linenos">280</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Postgres-281"><a href="#Postgres-281"><span class="linenos">281</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> -</span><span id="Postgres-282"><a href="#Postgres-282"><span class="linenos">282</span></a> -</span><span id="Postgres-283"><a href="#Postgres-283"><span class="linenos">283</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres-284"><a href="#Postgres-284"><span class="linenos">284</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Postgres-285"><a href="#Postgres-285"><span class="linenos">285</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">TINYINT</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> -</span><span id="Postgres-286"><a href="#Postgres-286"><span class="linenos">286</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="Postgres-287"><a href="#Postgres-287"><span class="linenos">287</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> -</span><span id="Postgres-288"><a href="#Postgres-288"><span class="linenos">288</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">"BYTEA"</span><span class="p">,</span> -</span><span id="Postgres-289"><a href="#Postgres-289"><span class="linenos">289</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">"BYTEA"</span><span class="p">,</span> -</span><span id="Postgres-290"><a href="#Postgres-290"><span class="linenos">290</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="Postgres-291"><a href="#Postgres-291"><span class="linenos">291</span></a> <span class="p">}</span> -</span><span id="Postgres-292"><a href="#Postgres-292"><span class="linenos">292</span></a> -</span><span id="Postgres-293"><a href="#Postgres-293"><span class="linenos">293</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres-294"><a href="#Postgres-294"><span class="linenos">294</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres-295"><a href="#Postgres-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#"</span><span class="p">),</span> -</span><span id="Postgres-296"><a href="#Postgres-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">(</span> -</span><span id="Postgres-297"><a href="#Postgres-297"><span class="linenos">297</span></a> <span class="p">[</span> -</span><span id="Postgres-298"><a href="#Postgres-298"><span class="linenos">298</span></a> <span class="n">_auto_increment_to_serial</span><span class="p">,</span> -</span><span id="Postgres-299"><a href="#Postgres-299"><span class="linenos">299</span></a> <span class="n">_serial_to_generated</span><span class="p">,</span> -</span><span id="Postgres-300"><a href="#Postgres-300"><span class="linenos">300</span></a> <span class="p">],</span> -</span><span id="Postgres-301"><a href="#Postgres-301"><span class="linenos">301</span></a> <span class="n">delegate</span><span class="p">(</span><span class="s2">"columndef_sql"</span><span class="p">),</span> -</span><span id="Postgres-302"><a href="#Postgres-302"><span class="linenos">302</span></a> <span class="p">),</span> -</span><span id="Postgres-303"><a href="#Postgres-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="Postgres-304"><a href="#Postgres-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="Postgres-305"><a href="#Postgres-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>"</span><span class="p">),</span> -</span><span id="Postgres-306"><a href="#Postgres-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>>"</span><span class="p">),</span> -</span><span id="Postgres-307"><a href="#Postgres-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"?"</span><span class="p">),</span> -</span><span id="Postgres-308"><a href="#Postgres-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">),</span> -</span><span id="Postgres-309"><a href="#Postgres-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> -</span><span id="Postgres-310"><a href="#Postgres-310"><span class="linenos">310</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="Postgres-311"><a href="#Postgres-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"+"</span><span class="p">),</span> -</span><span id="Postgres-312"><a href="#Postgres-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"-"</span><span class="p">),</span> -</span><span id="Postgres-313"><a href="#Postgres-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> -</span><span id="Postgres-314"><a href="#Postgres-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="Postgres-315"><a href="#Postgres-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Postgres-316"><a href="#Postgres-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"&&"</span><span class="p">),</span> -</span><span id="Postgres-317"><a href="#Postgres-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"@>"</span><span class="p">),</span> -</span><span id="Postgres-318"><a href="#Postgres-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<@"</span><span class="p">),</span> -</span><span id="Postgres-319"><a href="#Postgres-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~"</span><span class="p">),</span> -</span><span id="Postgres-320"><a href="#Postgres-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~*"</span><span class="p">),</span> -</span><span id="Postgres-321"><a href="#Postgres-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="Postgres-322"><a href="#Postgres-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Postgres-323"><a href="#Postgres-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">_substring_sql</span><span class="p">,</span> -</span><span id="Postgres-324"><a href="#Postgres-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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="sa">f</span><span class="s2">"CAST(</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"> AS TIMESTAMP)"</span><span class="p">,</span> -</span><span id="Postgres-325"><a href="#Postgres-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Postgres-326"><a href="#Postgres-326"><span class="linenos">326</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="Postgres-327"><a href="#Postgres-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> -</span><span id="Postgres-328"><a href="#Postgres-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="Postgres-329"><a href="#Postgres-329"><span class="linenos">329</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="Postgres-330"><a href="#Postgres-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="Postgres-331"><a href="#Postgres-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> -</span><span id="Postgres-332"><a href="#Postgres-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</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">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Postgres-333"><a href="#Postgres-333"><span class="linenos">333</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> -</span><span id="Postgres-334"><a href="#Postgres-334"><span class="linenos">334</span></a> <span class="k">else</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">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</span><span class="s2">[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> -</span><span id="Postgres-335"><a href="#Postgres-335"><span class="linenos">335</span></a> <span class="p">}</span> -</span><span id="Postgres-336"><a href="#Postgres-336"><span class="linenos">336</span></a> -</span><span id="Postgres-337"><a href="#Postgres-337"><span class="linenos">337</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres-338"><a href="#Postgres-338"><span class="linenos">338</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres-339"><a href="#Postgres-339"><span class="linenos">339</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="Postgres-340"><a href="#Postgres-340"><span class="linenos">340</span></a> <span class="p">}</span> +</span><span id="Postgres-260"><a href="#Postgres-260"><span class="linenos">260</span></a> <span class="s2">"DATE_TRUNC"</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">TimestampTrunc</span><span class="p">(</span> +</span><span id="Postgres-261"><a href="#Postgres-261"><span class="linenos">261</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">1</span><span class="p">),</span> <span class="n">unit</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="Postgres-262"><a href="#Postgres-262"><span class="linenos">262</span></a> <span class="p">),</span> +</span><span id="Postgres-263"><a href="#Postgres-263"><span class="linenos">263</span></a> <span class="p">}</span> +</span><span id="Postgres-264"><a href="#Postgres-264"><span class="linenos">264</span></a> +</span><span id="Postgres-265"><a href="#Postgres-265"><span class="linenos">265</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres-266"><a href="#Postgres-266"><span class="linenos">266</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres-267"><a href="#Postgres-267"><span class="linenos">267</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> +</span><span id="Postgres-268"><a href="#Postgres-268"><span class="linenos">268</span></a> <span class="p">}</span> +</span><span id="Postgres-269"><a href="#Postgres-269"><span class="linenos">269</span></a> +</span><span id="Postgres-270"><a href="#Postgres-270"><span class="linenos">270</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres-271"><a href="#Postgres-271"><span class="linenos">271</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> +</span><span id="Postgres-272"><a href="#Postgres-272"><span class="linenos">272</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</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="Postgres-273"><a href="#Postgres-273"><span class="linenos">273</span></a> <span class="p">}</span> +</span><span id="Postgres-274"><a href="#Postgres-274"><span class="linenos">274</span></a> +</span><span id="Postgres-275"><a href="#Postgres-275"><span class="linenos">275</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres-276"><a href="#Postgres-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres-277"><a href="#Postgres-277"><span class="linenos">277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DAMP</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</span><span class="p">),</span> +</span><span id="Postgres-278"><a href="#Postgres-278"><span class="linenos">278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AT_GT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">),</span> +</span><span id="Postgres-279"><a href="#Postgres-279"><span class="linenos">279</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT_AT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</span><span class="p">),</span> +</span><span id="Postgres-280"><a href="#Postgres-280"><span class="linenos">280</span></a> <span class="p">}</span> +</span><span id="Postgres-281"><a href="#Postgres-281"><span class="linenos">281</span></a> +</span><span id="Postgres-282"><a href="#Postgres-282"><span class="linenos">282</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Postgres-283"><a href="#Postgres-283"><span class="linenos">283</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Postgres-284"><a href="#Postgres-284"><span class="linenos">284</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Postgres-285"><a href="#Postgres-285"><span class="linenos">285</span></a> +</span><span id="Postgres-286"><a href="#Postgres-286"><span class="linenos">286</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres-287"><a href="#Postgres-287"><span class="linenos">287</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Postgres-288"><a href="#Postgres-288"><span class="linenos">288</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">TINYINT</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> +</span><span id="Postgres-289"><a href="#Postgres-289"><span class="linenos">289</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="Postgres-290"><a href="#Postgres-290"><span class="linenos">290</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> +</span><span id="Postgres-291"><a href="#Postgres-291"><span class="linenos">291</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">"BYTEA"</span><span class="p">,</span> +</span><span id="Postgres-292"><a href="#Postgres-292"><span class="linenos">292</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">"BYTEA"</span><span class="p">,</span> +</span><span id="Postgres-293"><a href="#Postgres-293"><span class="linenos">293</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="Postgres-294"><a href="#Postgres-294"><span class="linenos">294</span></a> <span class="p">}</span> +</span><span id="Postgres-295"><a href="#Postgres-295"><span class="linenos">295</span></a> +</span><span id="Postgres-296"><a href="#Postgres-296"><span class="linenos">296</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres-297"><a href="#Postgres-297"><span class="linenos">297</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres-298"><a href="#Postgres-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#"</span><span class="p">),</span> +</span><span id="Postgres-299"><a href="#Postgres-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">(</span> +</span><span id="Postgres-300"><a href="#Postgres-300"><span class="linenos">300</span></a> <span class="p">[</span> +</span><span id="Postgres-301"><a href="#Postgres-301"><span class="linenos">301</span></a> <span class="n">_auto_increment_to_serial</span><span class="p">,</span> +</span><span id="Postgres-302"><a href="#Postgres-302"><span class="linenos">302</span></a> <span class="n">_serial_to_generated</span><span class="p">,</span> +</span><span id="Postgres-303"><a href="#Postgres-303"><span class="linenos">303</span></a> <span class="p">],</span> +</span><span id="Postgres-304"><a href="#Postgres-304"><span class="linenos">304</span></a> <span class="n">delegate</span><span class="p">(</span><span class="s2">"columndef_sql"</span><span class="p">),</span> +</span><span id="Postgres-305"><a href="#Postgres-305"><span class="linenos">305</span></a> <span class="p">),</span> +</span><span id="Postgres-306"><a href="#Postgres-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="Postgres-307"><a href="#Postgres-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="Postgres-308"><a href="#Postgres-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>"</span><span class="p">),</span> +</span><span id="Postgres-309"><a href="#Postgres-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>>"</span><span class="p">),</span> +</span><span id="Postgres-310"><a href="#Postgres-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"?"</span><span class="p">),</span> +</span><span id="Postgres-311"><a href="#Postgres-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">),</span> +</span><span id="Postgres-312"><a href="#Postgres-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> +</span><span id="Postgres-313"><a href="#Postgres-313"><span class="linenos">313</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="Postgres-314"><a href="#Postgres-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"+"</span><span class="p">),</span> +</span><span id="Postgres-315"><a href="#Postgres-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"-"</span><span class="p">),</span> +</span><span id="Postgres-316"><a href="#Postgres-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> +</span><span id="Postgres-317"><a href="#Postgres-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="Postgres-318"><a href="#Postgres-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="Postgres-319"><a href="#Postgres-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="Postgres-320"><a href="#Postgres-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"&&"</span><span class="p">),</span> +</span><span id="Postgres-321"><a href="#Postgres-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"@>"</span><span class="p">),</span> +</span><span id="Postgres-322"><a href="#Postgres-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<@"</span><span class="p">),</span> +</span><span id="Postgres-323"><a href="#Postgres-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~"</span><span class="p">),</span> +</span><span id="Postgres-324"><a href="#Postgres-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~*"</span><span class="p">),</span> +</span><span id="Postgres-325"><a href="#Postgres-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="Postgres-326"><a href="#Postgres-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Postgres-327"><a href="#Postgres-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">_substring_sql</span><span class="p">,</span> +</span><span id="Postgres-328"><a href="#Postgres-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="Postgres-329"><a href="#Postgres-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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="sa">f</span><span class="s2">"CAST(</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"> AS TIMESTAMP)"</span><span class="p">,</span> +</span><span id="Postgres-330"><a href="#Postgres-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Postgres-331"><a href="#Postgres-331"><span class="linenos">331</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="Postgres-332"><a href="#Postgres-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Postgres-333"><a href="#Postgres-333"><span class="linenos">333</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="Postgres-334"><a href="#Postgres-334"><span class="linenos">334</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="Postgres-335"><a href="#Postgres-335"><span class="linenos">335</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="Postgres-336"><a href="#Postgres-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="Postgres-337"><a href="#Postgres-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> +</span><span id="Postgres-338"><a href="#Postgres-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</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">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Postgres-339"><a href="#Postgres-339"><span class="linenos">339</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> +</span><span id="Postgres-340"><a href="#Postgres-340"><span class="linenos">340</span></a> <span class="k">else</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">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</span><span class="s2">[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> +</span><span id="Postgres-341"><a href="#Postgres-341"><span class="linenos">341</span></a> <span class="p">}</span> +</span><span id="Postgres-342"><a href="#Postgres-342"><span class="linenos">342</span></a> +</span><span id="Postgres-343"><a href="#Postgres-343"><span class="linenos">343</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres-344"><a href="#Postgres-344"><span class="linenos">344</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres-345"><a href="#Postgres-345"><span class="linenos">345</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="Postgres-346"><a href="#Postgres-346"><span class="linenos">346</span></a> <span class="p">}</span> </span></pre></div> @@ -609,6 +621,7 @@ <dd id="Postgres.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Postgres.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Postgres.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Postgres.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Postgres.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Postgres.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -702,24 +715,27 @@ </span><span id="Postgres.Parser-257"><a href="#Postgres.Parser-257"><span class="linenos">257</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_to_timestamp</span><span class="p">,</span> </span><span id="Postgres.Parser-258"><a href="#Postgres.Parser-258"><span class="linenos">258</span></a> <span class="s2">"TO_CHAR"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"postgres"</span><span class="p">),</span> </span><span id="Postgres.Parser-259"><a href="#Postgres.Parser-259"><span class="linenos">259</span></a> <span class="s2">"GENERATE_SERIES"</span><span class="p">:</span> <span class="n">_generate_series</span><span class="p">,</span> -</span><span id="Postgres.Parser-260"><a href="#Postgres.Parser-260"><span class="linenos">260</span></a> <span class="p">}</span> -</span><span id="Postgres.Parser-261"><a href="#Postgres.Parser-261"><span class="linenos">261</span></a> -</span><span id="Postgres.Parser-262"><a href="#Postgres.Parser-262"><span class="linenos">262</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres.Parser-263"><a href="#Postgres.Parser-263"><span class="linenos">263</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres.Parser-264"><a href="#Postgres.Parser-264"><span class="linenos">264</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> -</span><span id="Postgres.Parser-265"><a href="#Postgres.Parser-265"><span class="linenos">265</span></a> <span class="p">}</span> -</span><span id="Postgres.Parser-266"><a href="#Postgres.Parser-266"><span class="linenos">266</span></a> -</span><span id="Postgres.Parser-267"><a href="#Postgres.Parser-267"><span class="linenos">267</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres.Parser-268"><a href="#Postgres.Parser-268"><span class="linenos">268</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> -</span><span id="Postgres.Parser-269"><a href="#Postgres.Parser-269"><span class="linenos">269</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</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="Postgres.Parser-270"><a href="#Postgres.Parser-270"><span class="linenos">270</span></a> <span class="p">}</span> -</span><span id="Postgres.Parser-271"><a href="#Postgres.Parser-271"><span class="linenos">271</span></a> -</span><span id="Postgres.Parser-272"><a href="#Postgres.Parser-272"><span class="linenos">272</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres.Parser-273"><a href="#Postgres.Parser-273"><span class="linenos">273</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres.Parser-274"><a href="#Postgres.Parser-274"><span class="linenos">274</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DAMP</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</span><span class="p">),</span> -</span><span id="Postgres.Parser-275"><a href="#Postgres.Parser-275"><span class="linenos">275</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AT_GT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">),</span> -</span><span id="Postgres.Parser-276"><a href="#Postgres.Parser-276"><span class="linenos">276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT_AT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</span><span class="p">),</span> -</span><span id="Postgres.Parser-277"><a href="#Postgres.Parser-277"><span class="linenos">277</span></a> <span class="p">}</span> +</span><span id="Postgres.Parser-260"><a href="#Postgres.Parser-260"><span class="linenos">260</span></a> <span class="s2">"DATE_TRUNC"</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">TimestampTrunc</span><span class="p">(</span> +</span><span id="Postgres.Parser-261"><a href="#Postgres.Parser-261"><span class="linenos">261</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">1</span><span class="p">),</span> <span class="n">unit</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="Postgres.Parser-262"><a href="#Postgres.Parser-262"><span class="linenos">262</span></a> <span class="p">),</span> +</span><span id="Postgres.Parser-263"><a href="#Postgres.Parser-263"><span class="linenos">263</span></a> <span class="p">}</span> +</span><span id="Postgres.Parser-264"><a href="#Postgres.Parser-264"><span class="linenos">264</span></a> +</span><span id="Postgres.Parser-265"><a href="#Postgres.Parser-265"><span class="linenos">265</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres.Parser-266"><a href="#Postgres.Parser-266"><span class="linenos">266</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres.Parser-267"><a href="#Postgres.Parser-267"><span class="linenos">267</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> +</span><span id="Postgres.Parser-268"><a href="#Postgres.Parser-268"><span class="linenos">268</span></a> <span class="p">}</span> +</span><span id="Postgres.Parser-269"><a href="#Postgres.Parser-269"><span class="linenos">269</span></a> +</span><span id="Postgres.Parser-270"><a href="#Postgres.Parser-270"><span class="linenos">270</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres.Parser-271"><a href="#Postgres.Parser-271"><span class="linenos">271</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> +</span><span id="Postgres.Parser-272"><a href="#Postgres.Parser-272"><span class="linenos">272</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</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="Postgres.Parser-273"><a href="#Postgres.Parser-273"><span class="linenos">273</span></a> <span class="p">}</span> +</span><span id="Postgres.Parser-274"><a href="#Postgres.Parser-274"><span class="linenos">274</span></a> +</span><span id="Postgres.Parser-275"><a href="#Postgres.Parser-275"><span class="linenos">275</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres.Parser-276"><a href="#Postgres.Parser-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres.Parser-277"><a href="#Postgres.Parser-277"><span class="linenos">277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DAMP</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</span><span class="p">),</span> +</span><span id="Postgres.Parser-278"><a href="#Postgres.Parser-278"><span class="linenos">278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AT_GT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">),</span> +</span><span id="Postgres.Parser-279"><a href="#Postgres.Parser-279"><span class="linenos">279</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT_AT</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</span><span class="p">),</span> +</span><span id="Postgres.Parser-280"><a href="#Postgres.Parser-280"><span class="linenos">280</span></a> <span class="p">}</span> </span></pre></div> @@ -776,68 +792,71 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Postgres.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Postgres.Generator-279"><a href="#Postgres.Generator-279"><span class="linenos">279</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Postgres.Generator-280"><a href="#Postgres.Generator-280"><span class="linenos">280</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Postgres.Generator-281"><a href="#Postgres.Generator-281"><span class="linenos">281</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> -</span><span id="Postgres.Generator-282"><a href="#Postgres.Generator-282"><span class="linenos">282</span></a> -</span><span id="Postgres.Generator-283"><a href="#Postgres.Generator-283"><span class="linenos">283</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres.Generator-284"><a href="#Postgres.Generator-284"><span class="linenos">284</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Postgres.Generator-285"><a href="#Postgres.Generator-285"><span class="linenos">285</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">TINYINT</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> -</span><span id="Postgres.Generator-286"><a href="#Postgres.Generator-286"><span class="linenos">286</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="Postgres.Generator-287"><a href="#Postgres.Generator-287"><span class="linenos">287</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> -</span><span id="Postgres.Generator-288"><a href="#Postgres.Generator-288"><span class="linenos">288</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">"BYTEA"</span><span class="p">,</span> -</span><span id="Postgres.Generator-289"><a href="#Postgres.Generator-289"><span class="linenos">289</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">"BYTEA"</span><span class="p">,</span> -</span><span id="Postgres.Generator-290"><a href="#Postgres.Generator-290"><span class="linenos">290</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> -</span><span id="Postgres.Generator-291"><a href="#Postgres.Generator-291"><span class="linenos">291</span></a> <span class="p">}</span> -</span><span id="Postgres.Generator-292"><a href="#Postgres.Generator-292"><span class="linenos">292</span></a> -</span><span id="Postgres.Generator-293"><a href="#Postgres.Generator-293"><span class="linenos">293</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres.Generator-294"><a href="#Postgres.Generator-294"><span class="linenos">294</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres.Generator-295"><a href="#Postgres.Generator-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#"</span><span class="p">),</span> -</span><span id="Postgres.Generator-296"><a href="#Postgres.Generator-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">(</span> -</span><span id="Postgres.Generator-297"><a href="#Postgres.Generator-297"><span class="linenos">297</span></a> <span class="p">[</span> -</span><span id="Postgres.Generator-298"><a href="#Postgres.Generator-298"><span class="linenos">298</span></a> <span class="n">_auto_increment_to_serial</span><span class="p">,</span> -</span><span id="Postgres.Generator-299"><a href="#Postgres.Generator-299"><span class="linenos">299</span></a> <span class="n">_serial_to_generated</span><span class="p">,</span> -</span><span id="Postgres.Generator-300"><a href="#Postgres.Generator-300"><span class="linenos">300</span></a> <span class="p">],</span> -</span><span id="Postgres.Generator-301"><a href="#Postgres.Generator-301"><span class="linenos">301</span></a> <span class="n">delegate</span><span class="p">(</span><span class="s2">"columndef_sql"</span><span class="p">),</span> -</span><span id="Postgres.Generator-302"><a href="#Postgres.Generator-302"><span class="linenos">302</span></a> <span class="p">),</span> -</span><span id="Postgres.Generator-303"><a href="#Postgres.Generator-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-304"><a href="#Postgres.Generator-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-305"><a href="#Postgres.Generator-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>"</span><span class="p">),</span> -</span><span id="Postgres.Generator-306"><a href="#Postgres.Generator-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>>"</span><span class="p">),</span> -</span><span id="Postgres.Generator-307"><a href="#Postgres.Generator-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"?"</span><span class="p">),</span> -</span><span id="Postgres.Generator-308"><a href="#Postgres.Generator-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">),</span> -</span><span id="Postgres.Generator-309"><a href="#Postgres.Generator-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-310"><a href="#Postgres.Generator-310"><span class="linenos">310</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="Postgres.Generator-311"><a href="#Postgres.Generator-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"+"</span><span class="p">),</span> -</span><span id="Postgres.Generator-312"><a href="#Postgres.Generator-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"-"</span><span class="p">),</span> -</span><span id="Postgres.Generator-313"><a href="#Postgres.Generator-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-314"><a href="#Postgres.Generator-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="Postgres.Generator-315"><a href="#Postgres.Generator-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Postgres.Generator-316"><a href="#Postgres.Generator-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"&&"</span><span class="p">),</span> -</span><span id="Postgres.Generator-317"><a href="#Postgres.Generator-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"@>"</span><span class="p">),</span> -</span><span id="Postgres.Generator-318"><a href="#Postgres.Generator-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<@"</span><span class="p">),</span> -</span><span id="Postgres.Generator-319"><a href="#Postgres.Generator-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~"</span><span class="p">),</span> -</span><span id="Postgres.Generator-320"><a href="#Postgres.Generator-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~*"</span><span class="p">),</span> -</span><span id="Postgres.Generator-321"><a href="#Postgres.Generator-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-322"><a href="#Postgres.Generator-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Postgres.Generator-323"><a href="#Postgres.Generator-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">_substring_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-324"><a href="#Postgres.Generator-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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="sa">f</span><span class="s2">"CAST(</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"> AS TIMESTAMP)"</span><span class="p">,</span> -</span><span id="Postgres.Generator-325"><a href="#Postgres.Generator-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Postgres.Generator-326"><a href="#Postgres.Generator-326"><span class="linenos">326</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="Postgres.Generator-327"><a href="#Postgres.Generator-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-328"><a href="#Postgres.Generator-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-329"><a href="#Postgres.Generator-329"><span class="linenos">329</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="Postgres.Generator-330"><a href="#Postgres.Generator-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-331"><a href="#Postgres.Generator-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> -</span><span id="Postgres.Generator-332"><a href="#Postgres.Generator-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</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">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Postgres.Generator-333"><a href="#Postgres.Generator-333"><span class="linenos">333</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> -</span><span id="Postgres.Generator-334"><a href="#Postgres.Generator-334"><span class="linenos">334</span></a> <span class="k">else</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">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</span><span class="s2">[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> -</span><span id="Postgres.Generator-335"><a href="#Postgres.Generator-335"><span class="linenos">335</span></a> <span class="p">}</span> -</span><span id="Postgres.Generator-336"><a href="#Postgres.Generator-336"><span class="linenos">336</span></a> -</span><span id="Postgres.Generator-337"><a href="#Postgres.Generator-337"><span class="linenos">337</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Postgres.Generator-338"><a href="#Postgres.Generator-338"><span class="linenos">338</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Postgres.Generator-339"><a href="#Postgres.Generator-339"><span class="linenos">339</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="Postgres.Generator-340"><a href="#Postgres.Generator-340"><span class="linenos">340</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Postgres.Generator-282"><a href="#Postgres.Generator-282"><span class="linenos">282</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Postgres.Generator-283"><a href="#Postgres.Generator-283"><span class="linenos">283</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Postgres.Generator-284"><a href="#Postgres.Generator-284"><span class="linenos">284</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Postgres.Generator-285"><a href="#Postgres.Generator-285"><span class="linenos">285</span></a> +</span><span id="Postgres.Generator-286"><a href="#Postgres.Generator-286"><span class="linenos">286</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres.Generator-287"><a href="#Postgres.Generator-287"><span class="linenos">287</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Postgres.Generator-288"><a href="#Postgres.Generator-288"><span class="linenos">288</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">TINYINT</span><span class="p">:</span> <span class="s2">"SMALLINT"</span><span class="p">,</span> +</span><span id="Postgres.Generator-289"><a href="#Postgres.Generator-289"><span class="linenos">289</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="Postgres.Generator-290"><a href="#Postgres.Generator-290"><span class="linenos">290</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">DOUBLE</span><span class="p">:</span> <span class="s2">"DOUBLE PRECISION"</span><span class="p">,</span> +</span><span id="Postgres.Generator-291"><a href="#Postgres.Generator-291"><span class="linenos">291</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">"BYTEA"</span><span class="p">,</span> +</span><span id="Postgres.Generator-292"><a href="#Postgres.Generator-292"><span class="linenos">292</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">"BYTEA"</span><span class="p">,</span> +</span><span id="Postgres.Generator-293"><a href="#Postgres.Generator-293"><span class="linenos">293</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">DATETIME</span><span class="p">:</span> <span class="s2">"TIMESTAMP"</span><span class="p">,</span> +</span><span id="Postgres.Generator-294"><a href="#Postgres.Generator-294"><span class="linenos">294</span></a> <span class="p">}</span> +</span><span id="Postgres.Generator-295"><a href="#Postgres.Generator-295"><span class="linenos">295</span></a> +</span><span id="Postgres.Generator-296"><a href="#Postgres.Generator-296"><span class="linenos">296</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres.Generator-297"><a href="#Postgres.Generator-297"><span class="linenos">297</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres.Generator-298"><a href="#Postgres.Generator-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#"</span><span class="p">),</span> +</span><span id="Postgres.Generator-299"><a href="#Postgres.Generator-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">(</span> +</span><span id="Postgres.Generator-300"><a href="#Postgres.Generator-300"><span class="linenos">300</span></a> <span class="p">[</span> +</span><span id="Postgres.Generator-301"><a href="#Postgres.Generator-301"><span class="linenos">301</span></a> <span class="n">_auto_increment_to_serial</span><span class="p">,</span> +</span><span id="Postgres.Generator-302"><a href="#Postgres.Generator-302"><span class="linenos">302</span></a> <span class="n">_serial_to_generated</span><span class="p">,</span> +</span><span id="Postgres.Generator-303"><a href="#Postgres.Generator-303"><span class="linenos">303</span></a> <span class="p">],</span> +</span><span id="Postgres.Generator-304"><a href="#Postgres.Generator-304"><span class="linenos">304</span></a> <span class="n">delegate</span><span class="p">(</span><span class="s2">"columndef_sql"</span><span class="p">),</span> +</span><span id="Postgres.Generator-305"><a href="#Postgres.Generator-305"><span class="linenos">305</span></a> <span class="p">),</span> +</span><span id="Postgres.Generator-306"><a href="#Postgres.Generator-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-307"><a href="#Postgres.Generator-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-308"><a href="#Postgres.Generator-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>"</span><span class="p">),</span> +</span><span id="Postgres.Generator-309"><a href="#Postgres.Generator-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"#>>"</span><span class="p">),</span> +</span><span id="Postgres.Generator-310"><a href="#Postgres.Generator-310"><span class="linenos">310</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"?"</span><span class="p">),</span> +</span><span id="Postgres.Generator-311"><a href="#Postgres.Generator-311"><span class="linenos">311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Pow</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">),</span> +</span><span id="Postgres.Generator-312"><a href="#Postgres.Generator-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">no_paren_current_date_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-313"><a href="#Postgres.Generator-313"><span class="linenos">313</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="Postgres.Generator-314"><a href="#Postgres.Generator-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"+"</span><span class="p">),</span> +</span><span id="Postgres.Generator-315"><a href="#Postgres.Generator-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateSub</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">(</span><span class="s2">"-"</span><span class="p">),</span> +</span><span id="Postgres.Generator-316"><a href="#Postgres.Generator-316"><span class="linenos">316</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">_date_diff_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-317"><a href="#Postgres.Generator-317"><span class="linenos">317</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="Postgres.Generator-318"><a href="#Postgres.Generator-318"><span class="linenos">318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="Postgres.Generator-319"><a href="#Postgres.Generator-319"><span class="linenos">319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="Postgres.Generator-320"><a href="#Postgres.Generator-320"><span class="linenos">320</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayOverlaps</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"&&"</span><span class="p">),</span> +</span><span id="Postgres.Generator-321"><a href="#Postgres.Generator-321"><span class="linenos">321</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"@>"</span><span class="p">),</span> +</span><span id="Postgres.Generator-322"><a href="#Postgres.Generator-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContained</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"<@"</span><span class="p">),</span> +</span><span id="Postgres.Generator-323"><a href="#Postgres.Generator-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~"</span><span class="p">),</span> +</span><span id="Postgres.Generator-324"><a href="#Postgres.Generator-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</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">binary</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="s2">"~*"</span><span class="p">),</span> +</span><span id="Postgres.Generator-325"><a href="#Postgres.Generator-325"><span class="linenos">325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">str_position_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-326"><a href="#Postgres.Generator-326"><span class="linenos">326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Postgres.Generator-327"><a href="#Postgres.Generator-327"><span class="linenos">327</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="p">:</span> <span class="n">_substring_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-328"><a href="#Postgres.Generator-328"><span class="linenos">328</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-329"><a href="#Postgres.Generator-329"><span class="linenos">329</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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="sa">f</span><span class="s2">"CAST(</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"> AS TIMESTAMP)"</span><span class="p">,</span> +</span><span id="Postgres.Generator-330"><a href="#Postgres.Generator-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"TO_CHAR(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Postgres.Generator-331"><a href="#Postgres.Generator-331"><span class="linenos">331</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="Postgres.Generator-332"><a href="#Postgres.Generator-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Postgres.Generator-333"><a href="#Postgres.Generator-333"><span class="linenos">333</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">:</span> <span class="n">trim_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-334"><a href="#Postgres.Generator-334"><span class="linenos">334</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-335"><a href="#Postgres.Generator-335"><span class="linenos">335</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 class="n">e</span><span class="p">:</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="Postgres.Generator-336"><a href="#Postgres.Generator-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-337"><a href="#Postgres.Generator-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> +</span><span id="Postgres.Generator-338"><a href="#Postgres.Generator-338"><span class="linenos">338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</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">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Postgres.Generator-339"><a href="#Postgres.Generator-339"><span class="linenos">339</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">seq_get</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> +</span><span id="Postgres.Generator-340"><a href="#Postgres.Generator-340"><span class="linenos">340</span></a> <span class="k">else</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">normalize_func</span><span class="p">(</span><span class="s1">'ARRAY'</span><span class="p">)</span><span class="si">}</span><span class="s2">[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> +</span><span id="Postgres.Generator-341"><a href="#Postgres.Generator-341"><span class="linenos">341</span></a> <span class="p">}</span> +</span><span id="Postgres.Generator-342"><a href="#Postgres.Generator-342"><span class="linenos">342</span></a> +</span><span id="Postgres.Generator-343"><a href="#Postgres.Generator-343"><span class="linenos">343</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Postgres.Generator-344"><a href="#Postgres.Generator-344"><span class="linenos">344</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Postgres.Generator-345"><a href="#Postgres.Generator-345"><span class="linenos">345</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="Postgres.Generator-346"><a href="#Postgres.Generator-346"><span class="linenos">346</span></a> <span class="p">}</span> </span></pre></div> @@ -854,8 +873,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -976,6 +994,8 @@ Default: True</li> <dd id="Postgres.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Postgres.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Postgres.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Postgres.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Postgres.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Postgres.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Postgres.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Postgres.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1060,7 +1080,6 @@ Default: True</li> <dd id="Postgres.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Postgres.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Postgres.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Postgres.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Postgres.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Postgres.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Postgres.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1102,6 +1121,7 @@ Default: True</li> <dd id="Postgres.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Postgres.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Postgres.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Postgres.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/presto.html b/docs/sqlglot/dialects/presto.html index e7e323b..b027752 100644 --- a/docs/sqlglot/dialects/presto.html +++ b/docs/sqlglot/dialects/presto.html @@ -85,299 +85,315 @@ </span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</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">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</span><span class="p">,</span> <span class="n">transforms</span> </span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</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-5"><a href="#L-5"><span class="linenos"> 5</span></a> <span class="n">Dialect</span><span class="p">,</span> -</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> <span class="n">format_time_lambda</span><span class="p">,</span> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">rename_func</span><span class="p">,</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="p">)</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="kn">from</span> <span class="nn">sqlglot.dialects.mysql</span> <span class="kn">import</span> <span class="n">MySQL</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">UnsupportedError</span> -</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</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-17"><a href="#L-17"><span class="linenos"> 17</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-18"><a href="#L-18"><span class="linenos"> 18</span></a> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> -</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="k">def</span> <span class="nf">_approx_distinct_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><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">accuracy</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">"accuracy"</span><span class="p">)</span> -</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="n">accuracy</span> <span class="o">=</span> <span class="s2">", "</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">accuracy</span><span class="p">)</span> <span class="k">if</span> <span class="n">accuracy</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"APPROX_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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">accuracy</span><span class="si">}</span><span class="s2">)"</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">_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><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</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-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> WITH TIME ZONE"</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="k">def</span> <span class="nf">_explode_to_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><span id="L-34"><a href="#L-34"><span class="linenos"> 34</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">this</span><span class="p">,</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="n">exp</span><span class="o">.</span><span class="n">Posexplode</span><span class="p">)):</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">(</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">(</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">],</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="n">alias</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">"alias"</span><span class="p">),</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">ordinality</span><span class="o">=</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Posexplode</span><span class="p">),</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="p">),</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"cross"</span><span class="p">,</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="p">)</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="p">)</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="k">def</span> <span class="nf">_initcap_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><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">regex</span> <span class="o">=</span> <span class="sa">r</span><span class="s2">"(\w)(\w*)"</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REGEXP_REPLACE(</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">expression</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="si">{</span><span class="n">regex</span><span class="si">}</span><span class="s2">', x -> UPPER(x[1]) || LOWER(x[2]))"</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="k">def</span> <span class="nf">_decode_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><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">_ensure_utf8</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">"charset"</span><span class="p">))</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_UTF8"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">))</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="k">def</span> <span class="nf">_encode_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><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">_ensure_utf8</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">"charset"</span><span class="p">))</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_UTF8(</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">expression</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><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="k">def</span> <span class="nf">_no_sort_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-64"><a href="#L-64"><span class="linenos"> 64</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">"asc"</span><span class="p">)</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">false</span><span class="p">():</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">comparator</span> <span class="o">=</span> <span class="s2">"(a, b) -> CASE WHEN a < b THEN 1 WHEN a > b THEN -1 ELSE 0 END"</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">comparator</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"ARRAY_SORT"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">comparator</span><span class="p">)</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="k">def</span> <span class="nf">_schema_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><span id="L-72"><a href="#L-72"><span class="linenos"> 72</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">c</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">]"</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">for</span> <span class="n">schema</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">schema</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">schema</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> <span class="n">format_time_lambda</span><span class="p">,</span> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">rename_func</span><span class="p">,</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="p">)</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="kn">from</span> <span class="nn">sqlglot.dialects.mysql</span> <span class="kn">import</span> <span class="n">MySQL</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.errors</span> <span class="kn">import</span> <span class="n">UnsupportedError</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><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">def</span> <span class="nf">_approx_distinct_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><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="n">accuracy</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">"accuracy"</span><span class="p">)</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="n">accuracy</span> <span class="o">=</span> <span class="s2">", "</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">accuracy</span><span class="p">)</span> <span class="k">if</span> <span class="n">accuracy</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"APPROX_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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">accuracy</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</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><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</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-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> WITH TIME ZONE"</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="k">def</span> <span class="nf">_explode_to_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><span id="L-36"><a href="#L-36"><span class="linenos"> 36</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">this</span><span class="p">,</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="n">exp</span><span class="o">.</span><span class="n">Posexplode</span><span class="p">)):</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">(</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">(</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">],</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">alias</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">"alias"</span><span class="p">),</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="n">ordinality</span><span class="o">=</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Posexplode</span><span class="p">),</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="p">),</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"cross"</span><span class="p">,</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="p">)</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="p">)</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="k">def</span> <span class="nf">_initcap_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><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">regex</span> <span class="o">=</span> <span class="sa">r</span><span class="s2">"(\w)(\w*)"</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REGEXP_REPLACE(</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">expression</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="si">{</span><span class="n">regex</span><span class="si">}</span><span class="s2">', x -> UPPER(x[1]) || LOWER(x[2]))"</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="k">def</span> <span class="nf">_decode_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><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">_ensure_utf8</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">"charset"</span><span class="p">))</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_UTF8"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">))</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="k">def</span> <span class="nf">_encode_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><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">_ensure_utf8</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">"charset"</span><span class="p">))</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_UTF8(</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">expression</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><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="k">def</span> <span class="nf">_no_sort_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-66"><a href="#L-66"><span class="linenos"> 66</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">"asc"</span><span class="p">)</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">false</span><span class="p">():</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">comparator</span> <span class="o">=</span> <span class="s2">"(a, b) -> CASE WHEN a < b THEN 1 WHEN a > b THEN -1 ELSE 0 END"</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">comparator</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"ARRAY_SORT"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">comparator</span><span class="p">)</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="k">def</span> <span class="nf">_schema_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><span id="L-74"><a href="#L-74"><span class="linenos"> 74</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">c</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">]"</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">for</span> <span class="n">schema</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">schema</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">schema</span><span class="o">.</span><span class="n">expressions</span><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><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="k">def</span> <span class="nf">_quantile_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><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Presto does not support exact quantiles"</span><span class="p">)</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"APPROX_PERCENTILE(</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">expression</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="si">{</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="w"> </span><span class="s1">'quantile'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="k">def</span> <span class="nf">_str_to_time_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><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATE_PARSE(</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">expression</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a><span class="k">def</span> <span class="nf">_ts_or_ds_to_date_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><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(SUBSTR(CAST(</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">expression</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"> AS VARCHAR), 1, 10) AS DATE)"</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="k">def</span> <span class="nf">_ts_or_ds_add_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><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">e</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">"expression"</span><span class="p">)</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"'day'"</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATE_ADD(</span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">e</span><span class="si">}</span><span class="s2">, DATE_PARSE(SUBSTR(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">, 1, 10), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">))"</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><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a><span class="k">def</span> <span class="nf">_sequence_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><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"start"</span><span class="p">]</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"end"</span><span class="p">]</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">step</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">"step"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="c1"># Postgres defaults to 1 for generate_series</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">target_type</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</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><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="k">def</span> <span class="nf">_quantile_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><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Presto does not support exact quantiles"</span><span class="p">)</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"APPROX_PERCENTILE(</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">expression</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="si">{</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="w"> </span><span class="s1">'quantile'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a><span class="k">def</span> <span class="nf">_str_to_time_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><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATE_PARSE(</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">expression</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="k">def</span> <span class="nf">_ts_or_ds_to_date_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><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="n">time_format</span> <span class="ow">and</span> <span class="n">time_format</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="p">,</span> <span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="p">):</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(SUBSTR(CAST(</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">expression</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"> AS VARCHAR), 1, 10) AS DATE)"</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a><span class="k">def</span> <span class="nf">_ts_or_ds_add_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><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="s2">"DATE_ADD"</span><span class="p">,</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <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="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</span><span class="p">),</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">expression</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="o">.</span><span class="n">func</span><span class="p">(</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">,</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"SUBSTR"</span><span class="p">,</span> <span class="n">expression</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">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">10</span><span class="p">)),</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="p">,</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="p">),</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="p">)</span> </span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">target_type</span> <span class="o">=</span> <span class="n">start</span><span class="o">.</span><span class="n">to</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">end</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">target_type</span> <span class="o">=</span> <span class="n">end</span><span class="o">.</span><span class="n">to</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="n">target_type</span> <span class="ow">and</span> <span class="n">target_type</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">to</span> <span class="o">=</span> <span class="n">target_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a><span class="k">def</span> <span class="nf">_sequence_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><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"start"</span><span class="p">]</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"end"</span><span class="p">]</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">step</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">"step"</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span> <span class="c1"># Postgres defaults to 1 for generate_series</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">target_type</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="n">target_type</span> <span class="ow">is</span> <span class="n">start</span><span class="o">.</span><span class="n">to</span><span class="p">:</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">end</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">)</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">start</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">)</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">target_type</span> <span class="o">=</span> <span class="n">start</span><span class="o">.</span><span class="n">to</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">end</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">target_type</span> <span class="o">=</span> <span class="n">end</span><span class="o">.</span><span class="n">to</span> </span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"SEQUENCE"</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="n">target_type</span> <span class="ow">and</span> <span class="n">target_type</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">:</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">to</span> <span class="o">=</span> <span class="n">target_type</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> </span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="k">def</span> <span class="nf">_ensure_utf8</span><span class="p">(</span><span class="n">charset</span><span class="p">):</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">if</span> <span class="n">charset</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">"utf-8"</span><span class="p">:</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported charset </span><span class="si">{</span><span class="n">charset</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">if</span> <span class="n">target_type</span> <span class="ow">is</span> <span class="n">start</span><span class="o">.</span><span class="n">to</span><span class="p">:</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">end</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">)</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">start</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">)</span> </span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="k">def</span> <span class="nf">_approx_percentile</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">(</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</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-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">weight</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-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">quantile</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-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">accuracy</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">3</span><span class="p">),</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="p">)</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">(</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</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-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">quantile</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-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">accuracy</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-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="p">)</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a><span class="k">def</span> <span class="nf">_from_unixtime</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">(</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</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-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">hours</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-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">minutes</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-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="p">)</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">(</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</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-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">zone</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-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="p">)</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a><span class="k">class</span> <span class="nc">Presto</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="n">index_offset</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_last"</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_format</span> <span class="c1"># type: ignore</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_mapping</span> <span class="c1"># type: ignore</span> -</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="o">**</span><span class="n">tokens</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-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="p">}</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"APPROX_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="s2">"CARDINALITY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="s2">"DATE_ADD"</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">DateAdd</span><span class="p">(</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos">187</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-188"><a href="#L-188"><span class="linenos">188</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-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="n">unit</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-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="p">),</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="s2">"DATE_DIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</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-193"><a href="#L-193"><span class="linenos">193</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-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="n">unit</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-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="p">),</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">_from_unixtime</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"NOW"</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-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"STRPOS"</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">StrPosition</span><span class="p">(</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</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-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="n">substr</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-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">instance</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-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="p">),</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"TO_UNIXTIME"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"APPROX_PERCENTILE"</span><span class="p">:</span> <span class="n">_approx_percentile</span><span class="p">,</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"FROM_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"TO_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="s2">"TO_UTF8"</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">Encode</span><span class="p">(</span> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</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">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="p">),</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="s2">"FROM_UTF8"</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">Decode</span><span class="p">(</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</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">replace</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="n">charset</span><span class="o">=</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">"utf-8"</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 class="p">}</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</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="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</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="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="p">}</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</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-230"><a href="#L-230"><span class="linenos">230</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</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">"VARBINARY"</span><span class="p">,</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</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-234"><a href="#L-234"><span class="linenos">234</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">STRUCT</span><span class="p">:</span> <span class="s2">"ROW"</span><span class="p">,</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="p">}</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">_approx_distinct_sql</span><span class="p">,</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONTAINS"</span><span class="p">),</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CARDINALITY"</span><span class="p">),</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</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="sa">f</span><span class="s2">"BITWISE_AND(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_LEFT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseNot</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="sa">f</span><span class="s2">"BITWISE_NOT(</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-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</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="sa">f</span><span class="s2">"BITWISE_OR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_RIGHT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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="sa">f</span><span class="s2">"BITWISE_XOR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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="sa">f</span><span class="s2">"""DATE_ADD(</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">'unit'</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"'day'"</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</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="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-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"""DATE_DIFF(</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">'unit'</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"'day'"</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</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="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-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Decode</span><span class="p">:</span> <span class="n">_decode_sql</span><span class="p">,</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Encode</span><span class="p">:</span> <span class="n">_encode_sql</span><span class="p">,</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GenerateSeries</span><span class="p">:</span> <span class="n">_sequence_sql</span><span class="p">,</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">),</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Initcap</span><span class="p">:</span> <span class="n">_initcap_sql</span><span class="p">,</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">:</span> <span class="n">_explode_to_unnest_sql</span><span class="p">,</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">_quantile_sql</span><span class="p">,</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"APPROX_PERCENTILE"</span><span class="p">),</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">:</span> <span class="n">_schema_sql</span><span class="p">,</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_no_sort_array</span><span class="p">,</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRPOS"</span><span class="p">),</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time_sql</span><span class="p">,</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"TABLE_FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_UNIXTIME"</span><span class="p">),</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add_sql</span><span class="p">,</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_ts_or_ds_to_date_sql</span><span class="p">,</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_HEX"</span><span class="p">),</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(FROM_UNIXTIME(</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">) AS VARCHAR)"</span><span class="p">,</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="p">}</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"SEQUENCE"</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="k">def</span> <span class="nf">_ensure_utf8</span><span class="p">(</span><span class="n">charset</span><span class="p">):</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">if</span> <span class="n">charset</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="o">!=</span> <span class="s2">"utf-8"</span><span class="p">:</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported charset </span><span class="si">{</span><span class="n">charset</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="k">def</span> <span class="nf">_approx_percentile</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">4</span><span class="p">:</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">(</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</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-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="n">weight</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-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="n">quantile</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-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">accuracy</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">3</span><span class="p">),</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="p">)</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">(</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</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-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">quantile</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-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">accuracy</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-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="p">)</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a><span class="k">def</span> <span class="nf">_from_unixtime</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">3</span><span class="p">:</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">(</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</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-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">hours</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-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">minutes</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-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="p">)</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">(</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</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-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">zone</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-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="p">)</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> +</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="k">class</span> <span class="nc">Presto</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">index_offset</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_last"</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_format</span> <span class="c1"># type: ignore</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_mapping</span> <span class="c1"># type: ignore</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="o">**</span><span class="n">tokens</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-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="p">}</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="s2">"APPROX_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"CARDINALITY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="s2">"CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="s2">"DATE_ADD"</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">DateAdd</span><span class="p">(</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</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-196"><a href="#L-196"><span class="linenos">196</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-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="n">unit</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-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="p">),</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"DATE_DIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</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-201"><a href="#L-201"><span class="linenos">201</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-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="n">unit</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-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="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">:</span> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">_from_unixtime</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"NOW"</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-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="s2">"STRPOS"</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">StrPosition</span><span class="p">(</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</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-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="n">substr</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-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="n">instance</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-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="p">),</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="s2">"TO_UNIXTIME"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="s2">"APPROX_PERCENTILE"</span><span class="p">:</span> <span class="n">_approx_percentile</span><span class="p">,</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="s2">"FROM_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="s2">"TO_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"TO_UTF8"</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">Encode</span><span class="p">(</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</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">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="p">),</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="s2">"FROM_UTF8"</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">Decode</span><span class="p">(</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</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">replace</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="n">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="p">),</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="p">}</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="p">}</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</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-239"><a href="#L-239"><span class="linenos">239</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</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">"VARBINARY"</span><span class="p">,</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</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-243"><a href="#L-243"><span class="linenos">243</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">STRUCT</span><span class="p">:</span> <span class="s2">"ROW"</span><span class="p">,</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="p">}</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> +</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">_approx_distinct_sql</span><span class="p">,</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONTAINS"</span><span class="p">),</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CARDINALITY"</span><span class="p">),</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</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="sa">f</span><span class="s2">"BITWISE_AND(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_LEFT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseNot</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="sa">f</span><span class="s2">"BITWISE_NOT(</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-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</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="sa">f</span><span class="s2">"BITWISE_OR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_RIGHT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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="sa">f</span><span class="s2">"BITWISE_XOR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="s2">"DATE_ADD"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="p">),</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="p">),</span> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Decode</span><span class="p">:</span> <span class="n">_decode_sql</span><span class="p">,</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Encode</span><span class="p">:</span> <span class="n">_encode_sql</span><span class="p">,</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GenerateSeries</span><span class="p">:</span> <span class="n">_sequence_sql</span><span class="p">,</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">),</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Initcap</span><span class="p">:</span> <span class="n">_initcap_sql</span><span class="p">,</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">:</span> <span class="n">_explode_to_unnest_sql</span><span class="p">,</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">_quantile_sql</span><span class="p">,</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"APPROX_PERCENTILE"</span><span class="p">),</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">:</span> <span class="n">_schema_sql</span><span class="p">,</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_no_sort_array</span><span class="p">,</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRPOS"</span><span class="p">),</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time_sql</span><span class="p">,</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"TABLE_FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_UNIXTIME"</span><span class="p">),</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add_sql</span><span class="p">,</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_ts_or_ds_to_date_sql</span><span class="p">,</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_HEX"</span><span class="p">),</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(FROM_UNIXTIME(</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">) AS VARCHAR)"</span><span class="p">,</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="p">}</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -393,138 +409,146 @@ </div> <a class="headerlink" href="#Presto"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Presto-168"><a href="#Presto-168"><span class="linenos">168</span></a><span class="k">class</span> <span class="nc">Presto</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="Presto-169"><a href="#Presto-169"><span class="linenos">169</span></a> <span class="n">index_offset</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="Presto-170"><a href="#Presto-170"><span class="linenos">170</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_last"</span> -</span><span id="Presto-171"><a href="#Presto-171"><span class="linenos">171</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_format</span> <span class="c1"># type: ignore</span> -</span><span id="Presto-172"><a href="#Presto-172"><span class="linenos">172</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_mapping</span> <span class="c1"># type: ignore</span> -</span><span id="Presto-173"><a href="#Presto-173"><span class="linenos">173</span></a> -</span><span id="Presto-174"><a href="#Presto-174"><span class="linenos">174</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Presto-175"><a href="#Presto-175"><span class="linenos">175</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto-176"><a href="#Presto-176"><span class="linenos">176</span></a> <span class="o">**</span><span class="n">tokens</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="Presto-177"><a href="#Presto-177"><span class="linenos">177</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="Presto-178"><a href="#Presto-178"><span class="linenos">178</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="Presto-179"><a href="#Presto-179"><span class="linenos">179</span></a> <span class="p">}</span> -</span><span id="Presto-180"><a href="#Presto-180"><span class="linenos">180</span></a> -</span><span id="Presto-181"><a href="#Presto-181"><span class="linenos">181</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="Presto-182"><a href="#Presto-182"><span class="linenos">182</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto-183"><a href="#Presto-183"><span class="linenos">183</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto-184"><a href="#Presto-184"><span class="linenos">184</span></a> <span class="s2">"APPROX_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto-185"><a href="#Presto-185"><span class="linenos">185</span></a> <span class="s2">"CARDINALITY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto-186"><a href="#Presto-186"><span class="linenos">186</span></a> <span class="s2">"CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto-187"><a href="#Presto-187"><span class="linenos">187</span></a> <span class="s2">"DATE_ADD"</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">DateAdd</span><span class="p">(</span> -</span><span id="Presto-188"><a href="#Presto-188"><span class="linenos">188</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="Presto-189"><a href="#Presto-189"><span class="linenos">189</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="Presto-190"><a href="#Presto-190"><span class="linenos">190</span></a> <span class="n">unit</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="Presto-191"><a href="#Presto-191"><span class="linenos">191</span></a> <span class="p">),</span> -</span><span id="Presto-192"><a href="#Presto-192"><span class="linenos">192</span></a> <span class="s2">"DATE_DIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="Presto-193"><a href="#Presto-193"><span class="linenos">193</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="Presto-194"><a href="#Presto-194"><span class="linenos">194</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="Presto-195"><a href="#Presto-195"><span class="linenos">195</span></a> <span class="n">unit</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="Presto-196"><a href="#Presto-196"><span class="linenos">196</span></a> <span class="p">),</span> -</span><span id="Presto-197"><a href="#Presto-197"><span class="linenos">197</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> -</span><span id="Presto-198"><a href="#Presto-198"><span class="linenos">198</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> -</span><span id="Presto-199"><a href="#Presto-199"><span class="linenos">199</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">_from_unixtime</span><span class="p">,</span> -</span><span id="Presto-200"><a href="#Presto-200"><span class="linenos">200</span></a> <span class="s2">"NOW"</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="Presto-201"><a href="#Presto-201"><span class="linenos">201</span></a> <span class="s2">"STRPOS"</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">StrPosition</span><span class="p">(</span> -</span><span id="Presto-202"><a href="#Presto-202"><span class="linenos">202</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="Presto-203"><a href="#Presto-203"><span class="linenos">203</span></a> <span class="n">substr</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="Presto-204"><a href="#Presto-204"><span class="linenos">204</span></a> <span class="n">instance</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="Presto-205"><a href="#Presto-205"><span class="linenos">205</span></a> <span class="p">),</span> -</span><span id="Presto-206"><a href="#Presto-206"><span class="linenos">206</span></a> <span class="s2">"TO_UNIXTIME"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto-207"><a href="#Presto-207"><span class="linenos">207</span></a> <span class="s2">"APPROX_PERCENTILE"</span><span class="p">:</span> <span class="n">_approx_percentile</span><span class="p">,</span> -</span><span id="Presto-208"><a href="#Presto-208"><span class="linenos">208</span></a> <span class="s2">"FROM_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto-209"><a href="#Presto-209"><span class="linenos">209</span></a> <span class="s2">"TO_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto-210"><a href="#Presto-210"><span class="linenos">210</span></a> <span class="s2">"TO_UTF8"</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">Encode</span><span class="p">(</span> -</span><span id="Presto-211"><a href="#Presto-211"><span class="linenos">211</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">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> -</span><span id="Presto-212"><a href="#Presto-212"><span class="linenos">212</span></a> <span class="p">),</span> -</span><span id="Presto-213"><a href="#Presto-213"><span class="linenos">213</span></a> <span class="s2">"FROM_UTF8"</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">Decode</span><span class="p">(</span> -</span><span id="Presto-214"><a href="#Presto-214"><span class="linenos">214</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">replace</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="n">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> -</span><span id="Presto-215"><a href="#Presto-215"><span class="linenos">215</span></a> <span class="p">),</span> -</span><span id="Presto-216"><a href="#Presto-216"><span class="linenos">216</span></a> <span class="p">}</span> -</span><span id="Presto-217"><a href="#Presto-217"><span class="linenos">217</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Presto-218"><a href="#Presto-218"><span class="linenos">218</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="Presto-219"><a href="#Presto-219"><span class="linenos">219</span></a> -</span><span id="Presto-220"><a href="#Presto-220"><span class="linenos">220</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Presto-221"><a href="#Presto-221"><span class="linenos">221</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="Presto-222"><a href="#Presto-222"><span class="linenos">222</span></a> -</span><span id="Presto-223"><a href="#Presto-223"><span class="linenos">223</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto-224"><a href="#Presto-224"><span class="linenos">224</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto-225"><a href="#Presto-225"><span class="linenos">225</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="Presto-226"><a href="#Presto-226"><span class="linenos">226</span></a> <span class="p">}</span> -</span><span id="Presto-227"><a href="#Presto-227"><span class="linenos">227</span></a> -</span><span id="Presto-228"><a href="#Presto-228"><span class="linenos">228</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto-229"><a href="#Presto-229"><span class="linenos">229</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Presto-230"><a href="#Presto-230"><span class="linenos">230</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="Presto-231"><a href="#Presto-231"><span class="linenos">231</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="Presto-232"><a href="#Presto-232"><span class="linenos">232</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">"VARBINARY"</span><span class="p">,</span> -</span><span id="Presto-233"><a href="#Presto-233"><span class="linenos">233</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Presto-234"><a href="#Presto-234"><span class="linenos">234</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="Presto-235"><a href="#Presto-235"><span class="linenos">235</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">STRUCT</span><span class="p">:</span> <span class="s2">"ROW"</span><span class="p">,</span> -</span><span id="Presto-236"><a href="#Presto-236"><span class="linenos">236</span></a> <span class="p">}</span> -</span><span id="Presto-237"><a href="#Presto-237"><span class="linenos">237</span></a> -</span><span id="Presto-238"><a href="#Presto-238"><span class="linenos">238</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto-239"><a href="#Presto-239"><span class="linenos">239</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto-240"><a href="#Presto-240"><span class="linenos">240</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto-241"><a href="#Presto-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">_approx_distinct_sql</span><span class="p">,</span> -</span><span id="Presto-242"><a href="#Presto-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> -</span><span id="Presto-243"><a href="#Presto-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> -</span><span id="Presto-244"><a href="#Presto-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONTAINS"</span><span class="p">),</span> -</span><span id="Presto-245"><a href="#Presto-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CARDINALITY"</span><span class="p">),</span> -</span><span id="Presto-246"><a href="#Presto-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</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="sa">f</span><span class="s2">"BITWISE_AND(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-247"><a href="#Presto-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_LEFT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-248"><a href="#Presto-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseNot</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="sa">f</span><span class="s2">"BITWISE_NOT(</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="Presto-249"><a href="#Presto-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</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="sa">f</span><span class="s2">"BITWISE_OR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-250"><a href="#Presto-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_RIGHT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-251"><a href="#Presto-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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="sa">f</span><span class="s2">"BITWISE_XOR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-252"><a href="#Presto-252"><span class="linenos">252</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="Presto-253"><a href="#Presto-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="Presto-254"><a href="#Presto-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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="sa">f</span><span class="s2">"""DATE_ADD(</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">'unit'</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"'day'"</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</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="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="Presto-255"><a href="#Presto-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"""DATE_DIFF(</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">'unit'</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"'day'"</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</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="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="Presto-256"><a href="#Presto-256"><span class="linenos">256</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="Presto-257"><a href="#Presto-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="Presto-258"><a href="#Presto-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Decode</span><span class="p">:</span> <span class="n">_decode_sql</span><span class="p">,</span> -</span><span id="Presto-259"><a href="#Presto-259"><span class="linenos">259</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="Presto-260"><a href="#Presto-260"><span class="linenos">260</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Encode</span><span class="p">:</span> <span class="n">_encode_sql</span><span class="p">,</span> -</span><span id="Presto-261"><a href="#Presto-261"><span class="linenos">261</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GenerateSeries</span><span class="p">:</span> <span class="n">_sequence_sql</span><span class="p">,</span> -</span><span id="Presto-262"><a href="#Presto-262"><span class="linenos">262</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">),</span> -</span><span id="Presto-263"><a href="#Presto-263"><span class="linenos">263</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="Presto-264"><a href="#Presto-264"><span class="linenos">264</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="Presto-265"><a href="#Presto-265"><span class="linenos">265</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Initcap</span><span class="p">:</span> <span class="n">_initcap_sql</span><span class="p">,</span> -</span><span id="Presto-266"><a href="#Presto-266"><span class="linenos">266</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">:</span> <span class="n">_explode_to_unnest_sql</span><span class="p">,</span> -</span><span id="Presto-267"><a href="#Presto-267"><span class="linenos">267</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> -</span><span id="Presto-268"><a href="#Presto-268"><span class="linenos">268</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="Presto-269"><a href="#Presto-269"><span class="linenos">269</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">_quantile_sql</span><span class="p">,</span> -</span><span id="Presto-270"><a href="#Presto-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"APPROX_PERCENTILE"</span><span class="p">),</span> -</span><span id="Presto-271"><a href="#Presto-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="Presto-272"><a href="#Presto-272"><span class="linenos">272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">:</span> <span class="n">_schema_sql</span><span class="p">,</span> -</span><span id="Presto-273"><a href="#Presto-273"><span class="linenos">273</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_no_sort_array</span><span class="p">,</span> -</span><span id="Presto-274"><a href="#Presto-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRPOS"</span><span class="p">),</span> -</span><span id="Presto-275"><a href="#Presto-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> -</span><span id="Presto-276"><a href="#Presto-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time_sql</span><span class="p">,</span> -</span><span id="Presto-277"><a href="#Presto-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="Presto-278"><a href="#Presto-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="Presto-279"><a href="#Presto-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"TABLE_FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> -</span><span id="Presto-280"><a href="#Presto-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> -</span><span id="Presto-281"><a href="#Presto-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Presto-282"><a href="#Presto-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Presto-283"><a href="#Presto-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="Presto-284"><a href="#Presto-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-285"><a href="#Presto-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_UNIXTIME"</span><span class="p">),</span> -</span><span id="Presto-286"><a href="#Presto-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="Presto-287"><a href="#Presto-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add_sql</span><span class="p">,</span> -</span><span id="Presto-288"><a href="#Presto-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_ts_or_ds_to_date_sql</span><span class="p">,</span> -</span><span id="Presto-289"><a href="#Presto-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_HEX"</span><span class="p">),</span> -</span><span id="Presto-290"><a href="#Presto-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto-291"><a href="#Presto-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="Presto-292"><a href="#Presto-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(FROM_UNIXTIME(</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">) AS VARCHAR)"</span><span class="p">,</span> -</span><span id="Presto-293"><a href="#Presto-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> -</span><span id="Presto-294"><a href="#Presto-294"><span class="linenos">294</span></a> <span class="p">}</span> -</span><span id="Presto-295"><a href="#Presto-295"><span class="linenos">295</span></a> -</span><span id="Presto-296"><a href="#Presto-296"><span class="linenos">296</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="Presto-297"><a href="#Presto-297"><span class="linenos">297</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> -</span><span id="Presto-298"><a href="#Presto-298"><span class="linenos">298</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Presto-299"><a href="#Presto-299"><span class="linenos">299</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Presto-176"><a href="#Presto-176"><span class="linenos">176</span></a><span class="k">class</span> <span class="nc">Presto</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="Presto-177"><a href="#Presto-177"><span class="linenos">177</span></a> <span class="n">index_offset</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="Presto-178"><a href="#Presto-178"><span class="linenos">178</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_last"</span> +</span><span id="Presto-179"><a href="#Presto-179"><span class="linenos">179</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_format</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-180"><a href="#Presto-180"><span class="linenos">180</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="n">MySQL</span><span class="o">.</span><span class="n">time_mapping</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-181"><a href="#Presto-181"><span class="linenos">181</span></a> +</span><span id="Presto-182"><a href="#Presto-182"><span class="linenos">182</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Presto-183"><a href="#Presto-183"><span class="linenos">183</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto-184"><a href="#Presto-184"><span class="linenos">184</span></a> <span class="o">**</span><span class="n">tokens</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="Presto-185"><a href="#Presto-185"><span class="linenos">185</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="Presto-186"><a href="#Presto-186"><span class="linenos">186</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="Presto-187"><a href="#Presto-187"><span class="linenos">187</span></a> <span class="p">}</span> +</span><span id="Presto-188"><a href="#Presto-188"><span class="linenos">188</span></a> +</span><span id="Presto-189"><a href="#Presto-189"><span class="linenos">189</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="Presto-190"><a href="#Presto-190"><span class="linenos">190</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto-191"><a href="#Presto-191"><span class="linenos">191</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-192"><a href="#Presto-192"><span class="linenos">192</span></a> <span class="s2">"APPROX_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto-193"><a href="#Presto-193"><span class="linenos">193</span></a> <span class="s2">"CARDINALITY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto-194"><a href="#Presto-194"><span class="linenos">194</span></a> <span class="s2">"CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto-195"><a href="#Presto-195"><span class="linenos">195</span></a> <span class="s2">"DATE_ADD"</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">DateAdd</span><span class="p">(</span> +</span><span id="Presto-196"><a href="#Presto-196"><span class="linenos">196</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="Presto-197"><a href="#Presto-197"><span class="linenos">197</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="Presto-198"><a href="#Presto-198"><span class="linenos">198</span></a> <span class="n">unit</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="Presto-199"><a href="#Presto-199"><span class="linenos">199</span></a> <span class="p">),</span> +</span><span id="Presto-200"><a href="#Presto-200"><span class="linenos">200</span></a> <span class="s2">"DATE_DIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Presto-201"><a href="#Presto-201"><span class="linenos">201</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="Presto-202"><a href="#Presto-202"><span class="linenos">202</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="Presto-203"><a href="#Presto-203"><span class="linenos">203</span></a> <span class="n">unit</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="Presto-204"><a href="#Presto-204"><span class="linenos">204</span></a> <span class="p">),</span> +</span><span id="Presto-205"><a href="#Presto-205"><span class="linenos">205</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> +</span><span id="Presto-206"><a href="#Presto-206"><span class="linenos">206</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> +</span><span id="Presto-207"><a href="#Presto-207"><span class="linenos">207</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">:</span> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="Presto-208"><a href="#Presto-208"><span class="linenos">208</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">_from_unixtime</span><span class="p">,</span> +</span><span id="Presto-209"><a href="#Presto-209"><span class="linenos">209</span></a> <span class="s2">"NOW"</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="Presto-210"><a href="#Presto-210"><span class="linenos">210</span></a> <span class="s2">"STRPOS"</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">StrPosition</span><span class="p">(</span> +</span><span id="Presto-211"><a href="#Presto-211"><span class="linenos">211</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="Presto-212"><a href="#Presto-212"><span class="linenos">212</span></a> <span class="n">substr</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="Presto-213"><a href="#Presto-213"><span class="linenos">213</span></a> <span class="n">instance</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="Presto-214"><a href="#Presto-214"><span class="linenos">214</span></a> <span class="p">),</span> +</span><span id="Presto-215"><a href="#Presto-215"><span class="linenos">215</span></a> <span class="s2">"TO_UNIXTIME"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto-216"><a href="#Presto-216"><span class="linenos">216</span></a> <span class="s2">"APPROX_PERCENTILE"</span><span class="p">:</span> <span class="n">_approx_percentile</span><span class="p">,</span> +</span><span id="Presto-217"><a href="#Presto-217"><span class="linenos">217</span></a> <span class="s2">"FROM_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto-218"><a href="#Presto-218"><span class="linenos">218</span></a> <span class="s2">"TO_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto-219"><a href="#Presto-219"><span class="linenos">219</span></a> <span class="s2">"TO_UTF8"</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">Encode</span><span class="p">(</span> +</span><span id="Presto-220"><a href="#Presto-220"><span class="linenos">220</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">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> +</span><span id="Presto-221"><a href="#Presto-221"><span class="linenos">221</span></a> <span class="p">),</span> +</span><span id="Presto-222"><a href="#Presto-222"><span class="linenos">222</span></a> <span class="s2">"FROM_UTF8"</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">Decode</span><span class="p">(</span> +</span><span id="Presto-223"><a href="#Presto-223"><span class="linenos">223</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">replace</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="n">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> +</span><span id="Presto-224"><a href="#Presto-224"><span class="linenos">224</span></a> <span class="p">),</span> +</span><span id="Presto-225"><a href="#Presto-225"><span class="linenos">225</span></a> <span class="p">}</span> +</span><span id="Presto-226"><a href="#Presto-226"><span class="linenos">226</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Presto-227"><a href="#Presto-227"><span class="linenos">227</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="Presto-228"><a href="#Presto-228"><span class="linenos">228</span></a> +</span><span id="Presto-229"><a href="#Presto-229"><span class="linenos">229</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Presto-230"><a href="#Presto-230"><span class="linenos">230</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="Presto-231"><a href="#Presto-231"><span class="linenos">231</span></a> +</span><span id="Presto-232"><a href="#Presto-232"><span class="linenos">232</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto-233"><a href="#Presto-233"><span class="linenos">233</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-234"><a href="#Presto-234"><span class="linenos">234</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="Presto-235"><a href="#Presto-235"><span class="linenos">235</span></a> <span class="p">}</span> +</span><span id="Presto-236"><a href="#Presto-236"><span class="linenos">236</span></a> +</span><span id="Presto-237"><a href="#Presto-237"><span class="linenos">237</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto-238"><a href="#Presto-238"><span class="linenos">238</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Presto-239"><a href="#Presto-239"><span class="linenos">239</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="Presto-240"><a href="#Presto-240"><span class="linenos">240</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="Presto-241"><a href="#Presto-241"><span class="linenos">241</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">"VARBINARY"</span><span class="p">,</span> +</span><span id="Presto-242"><a href="#Presto-242"><span class="linenos">242</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Presto-243"><a href="#Presto-243"><span class="linenos">243</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="Presto-244"><a href="#Presto-244"><span class="linenos">244</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">STRUCT</span><span class="p">:</span> <span class="s2">"ROW"</span><span class="p">,</span> +</span><span id="Presto-245"><a href="#Presto-245"><span class="linenos">245</span></a> <span class="p">}</span> +</span><span id="Presto-246"><a href="#Presto-246"><span class="linenos">246</span></a> +</span><span id="Presto-247"><a href="#Presto-247"><span class="linenos">247</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto-248"><a href="#Presto-248"><span class="linenos">248</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-249"><a href="#Presto-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-250"><a href="#Presto-250"><span class="linenos">250</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto-251"><a href="#Presto-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">_approx_distinct_sql</span><span class="p">,</span> +</span><span id="Presto-252"><a href="#Presto-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> +</span><span id="Presto-253"><a href="#Presto-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> +</span><span id="Presto-254"><a href="#Presto-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONTAINS"</span><span class="p">),</span> +</span><span id="Presto-255"><a href="#Presto-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CARDINALITY"</span><span class="p">),</span> +</span><span id="Presto-256"><a href="#Presto-256"><span class="linenos">256</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</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="sa">f</span><span class="s2">"BITWISE_AND(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-257"><a href="#Presto-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_LEFT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-258"><a href="#Presto-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseNot</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="sa">f</span><span class="s2">"BITWISE_NOT(</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="Presto-259"><a href="#Presto-259"><span class="linenos">259</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</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="sa">f</span><span class="s2">"BITWISE_OR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-260"><a href="#Presto-260"><span class="linenos">260</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_RIGHT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-261"><a href="#Presto-261"><span class="linenos">261</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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="sa">f</span><span class="s2">"BITWISE_XOR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-262"><a href="#Presto-262"><span class="linenos">262</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="Presto-263"><a href="#Presto-263"><span class="linenos">263</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="Presto-264"><a href="#Presto-264"><span class="linenos">264</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="Presto-265"><a href="#Presto-265"><span class="linenos">265</span></a> <span class="s2">"DATE_ADD"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Presto-266"><a href="#Presto-266"><span class="linenos">266</span></a> <span class="p">),</span> +</span><span id="Presto-267"><a href="#Presto-267"><span class="linenos">267</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="Presto-268"><a href="#Presto-268"><span class="linenos">268</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Presto-269"><a href="#Presto-269"><span class="linenos">269</span></a> <span class="p">),</span> +</span><span id="Presto-270"><a href="#Presto-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="Presto-271"><a href="#Presto-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="Presto-272"><a href="#Presto-272"><span class="linenos">272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Decode</span><span class="p">:</span> <span class="n">_decode_sql</span><span class="p">,</span> +</span><span id="Presto-273"><a href="#Presto-273"><span class="linenos">273</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="Presto-274"><a href="#Presto-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Encode</span><span class="p">:</span> <span class="n">_encode_sql</span><span class="p">,</span> +</span><span id="Presto-275"><a href="#Presto-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GenerateSeries</span><span class="p">:</span> <span class="n">_sequence_sql</span><span class="p">,</span> +</span><span id="Presto-276"><a href="#Presto-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">),</span> +</span><span id="Presto-277"><a href="#Presto-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="Presto-278"><a href="#Presto-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="Presto-279"><a href="#Presto-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Initcap</span><span class="p">:</span> <span class="n">_initcap_sql</span><span class="p">,</span> +</span><span id="Presto-280"><a href="#Presto-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">:</span> <span class="n">_explode_to_unnest_sql</span><span class="p">,</span> +</span><span id="Presto-281"><a href="#Presto-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> +</span><span id="Presto-282"><a href="#Presto-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="Presto-283"><a href="#Presto-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="Presto-284"><a href="#Presto-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">_quantile_sql</span><span class="p">,</span> +</span><span id="Presto-285"><a href="#Presto-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"APPROX_PERCENTILE"</span><span class="p">),</span> +</span><span id="Presto-286"><a href="#Presto-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="Presto-287"><a href="#Presto-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">:</span> <span class="n">_schema_sql</span><span class="p">,</span> +</span><span id="Presto-288"><a href="#Presto-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_no_sort_array</span><span class="p">,</span> +</span><span id="Presto-289"><a href="#Presto-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRPOS"</span><span class="p">),</span> +</span><span id="Presto-290"><a href="#Presto-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> +</span><span id="Presto-291"><a href="#Presto-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time_sql</span><span class="p">,</span> +</span><span id="Presto-292"><a href="#Presto-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="Presto-293"><a href="#Presto-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="Presto-294"><a href="#Presto-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"TABLE_FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> +</span><span id="Presto-295"><a href="#Presto-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> +</span><span id="Presto-296"><a href="#Presto-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="Presto-297"><a href="#Presto-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Presto-298"><a href="#Presto-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Presto-299"><a href="#Presto-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="Presto-300"><a href="#Presto-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-301"><a href="#Presto-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_UNIXTIME"</span><span class="p">),</span> +</span><span id="Presto-302"><a href="#Presto-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="Presto-303"><a href="#Presto-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add_sql</span><span class="p">,</span> +</span><span id="Presto-304"><a href="#Presto-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_ts_or_ds_to_date_sql</span><span class="p">,</span> +</span><span id="Presto-305"><a href="#Presto-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_HEX"</span><span class="p">),</span> +</span><span id="Presto-306"><a href="#Presto-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto-307"><a href="#Presto-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="Presto-308"><a href="#Presto-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(FROM_UNIXTIME(</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">) AS VARCHAR)"</span><span class="p">,</span> +</span><span id="Presto-309"><a href="#Presto-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> +</span><span id="Presto-310"><a href="#Presto-310"><span class="linenos">310</span></a> <span class="p">}</span> +</span><span id="Presto-311"><a href="#Presto-311"><span class="linenos">311</span></a> +</span><span id="Presto-312"><a href="#Presto-312"><span class="linenos">312</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="Presto-313"><a href="#Presto-313"><span class="linenos">313</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> +</span><span id="Presto-314"><a href="#Presto-314"><span class="linenos">314</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Presto-315"><a href="#Presto-315"><span class="linenos">315</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -540,6 +564,7 @@ <dd id="Presto.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Presto.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Presto.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Presto.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Presto.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Presto.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -558,12 +583,12 @@ </div> <a class="headerlink" href="#Presto.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Tokenizer-174"><a href="#Presto.Tokenizer-174"><span class="linenos">174</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Presto.Tokenizer-175"><a href="#Presto.Tokenizer-175"><span class="linenos">175</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto.Tokenizer-176"><a href="#Presto.Tokenizer-176"><span class="linenos">176</span></a> <span class="o">**</span><span class="n">tokens</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="Presto.Tokenizer-177"><a href="#Presto.Tokenizer-177"><span class="linenos">177</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="Presto.Tokenizer-178"><a href="#Presto.Tokenizer-178"><span class="linenos">178</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="Presto.Tokenizer-179"><a href="#Presto.Tokenizer-179"><span class="linenos">179</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Tokenizer-182"><a href="#Presto.Tokenizer-182"><span class="linenos">182</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Presto.Tokenizer-183"><a href="#Presto.Tokenizer-183"><span class="linenos">183</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto.Tokenizer-184"><a href="#Presto.Tokenizer-184"><span class="linenos">184</span></a> <span class="o">**</span><span class="n">tokens</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="Presto.Tokenizer-185"><a href="#Presto.Tokenizer-185"><span class="linenos">185</span></a> <span class="s2">"START"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="Presto.Tokenizer-186"><a href="#Presto.Tokenizer-186"><span class="linenos">186</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="Presto.Tokenizer-187"><a href="#Presto.Tokenizer-187"><span class="linenos">187</span></a> <span class="p">}</span> </span></pre></div> @@ -591,44 +616,45 @@ </div> <a class="headerlink" href="#Presto.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Parser-181"><a href="#Presto.Parser-181"><span class="linenos">181</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="Presto.Parser-182"><a href="#Presto.Parser-182"><span class="linenos">182</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto.Parser-183"><a href="#Presto.Parser-183"><span class="linenos">183</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto.Parser-184"><a href="#Presto.Parser-184"><span class="linenos">184</span></a> <span class="s2">"APPROX_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto.Parser-185"><a href="#Presto.Parser-185"><span class="linenos">185</span></a> <span class="s2">"CARDINALITY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto.Parser-186"><a href="#Presto.Parser-186"><span class="linenos">186</span></a> <span class="s2">"CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto.Parser-187"><a href="#Presto.Parser-187"><span class="linenos">187</span></a> <span class="s2">"DATE_ADD"</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">DateAdd</span><span class="p">(</span> -</span><span id="Presto.Parser-188"><a href="#Presto.Parser-188"><span class="linenos">188</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="Presto.Parser-189"><a href="#Presto.Parser-189"><span class="linenos">189</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="Presto.Parser-190"><a href="#Presto.Parser-190"><span class="linenos">190</span></a> <span class="n">unit</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="Presto.Parser-191"><a href="#Presto.Parser-191"><span class="linenos">191</span></a> <span class="p">),</span> -</span><span id="Presto.Parser-192"><a href="#Presto.Parser-192"><span class="linenos">192</span></a> <span class="s2">"DATE_DIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="Presto.Parser-193"><a href="#Presto.Parser-193"><span class="linenos">193</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="Presto.Parser-194"><a href="#Presto.Parser-194"><span class="linenos">194</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="Presto.Parser-195"><a href="#Presto.Parser-195"><span class="linenos">195</span></a> <span class="n">unit</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="Presto.Parser-196"><a href="#Presto.Parser-196"><span class="linenos">196</span></a> <span class="p">),</span> -</span><span id="Presto.Parser-197"><a href="#Presto.Parser-197"><span class="linenos">197</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> -</span><span id="Presto.Parser-198"><a href="#Presto.Parser-198"><span class="linenos">198</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> -</span><span id="Presto.Parser-199"><a href="#Presto.Parser-199"><span class="linenos">199</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">_from_unixtime</span><span class="p">,</span> -</span><span id="Presto.Parser-200"><a href="#Presto.Parser-200"><span class="linenos">200</span></a> <span class="s2">"NOW"</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="Presto.Parser-201"><a href="#Presto.Parser-201"><span class="linenos">201</span></a> <span class="s2">"STRPOS"</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">StrPosition</span><span class="p">(</span> -</span><span id="Presto.Parser-202"><a href="#Presto.Parser-202"><span class="linenos">202</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="Presto.Parser-203"><a href="#Presto.Parser-203"><span class="linenos">203</span></a> <span class="n">substr</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="Presto.Parser-204"><a href="#Presto.Parser-204"><span class="linenos">204</span></a> <span class="n">instance</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="Presto.Parser-205"><a href="#Presto.Parser-205"><span class="linenos">205</span></a> <span class="p">),</span> -</span><span id="Presto.Parser-206"><a href="#Presto.Parser-206"><span class="linenos">206</span></a> <span class="s2">"TO_UNIXTIME"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto.Parser-207"><a href="#Presto.Parser-207"><span class="linenos">207</span></a> <span class="s2">"APPROX_PERCENTILE"</span><span class="p">:</span> <span class="n">_approx_percentile</span><span class="p">,</span> -</span><span id="Presto.Parser-208"><a href="#Presto.Parser-208"><span class="linenos">208</span></a> <span class="s2">"FROM_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto.Parser-209"><a href="#Presto.Parser-209"><span class="linenos">209</span></a> <span class="s2">"TO_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Presto.Parser-210"><a href="#Presto.Parser-210"><span class="linenos">210</span></a> <span class="s2">"TO_UTF8"</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">Encode</span><span class="p">(</span> -</span><span id="Presto.Parser-211"><a href="#Presto.Parser-211"><span class="linenos">211</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">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> -</span><span id="Presto.Parser-212"><a href="#Presto.Parser-212"><span class="linenos">212</span></a> <span class="p">),</span> -</span><span id="Presto.Parser-213"><a href="#Presto.Parser-213"><span class="linenos">213</span></a> <span class="s2">"FROM_UTF8"</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">Decode</span><span class="p">(</span> -</span><span id="Presto.Parser-214"><a href="#Presto.Parser-214"><span class="linenos">214</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">replace</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="n">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> -</span><span id="Presto.Parser-215"><a href="#Presto.Parser-215"><span class="linenos">215</span></a> <span class="p">),</span> -</span><span id="Presto.Parser-216"><a href="#Presto.Parser-216"><span class="linenos">216</span></a> <span class="p">}</span> -</span><span id="Presto.Parser-217"><a href="#Presto.Parser-217"><span class="linenos">217</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Presto.Parser-218"><a href="#Presto.Parser-218"><span class="linenos">218</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Parser-189"><a href="#Presto.Parser-189"><span class="linenos">189</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="Presto.Parser-190"><a href="#Presto.Parser-190"><span class="linenos">190</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto.Parser-191"><a href="#Presto.Parser-191"><span class="linenos">191</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto.Parser-192"><a href="#Presto.Parser-192"><span class="linenos">192</span></a> <span class="s2">"APPROX_DISTINCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto.Parser-193"><a href="#Presto.Parser-193"><span class="linenos">193</span></a> <span class="s2">"CARDINALITY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto.Parser-194"><a href="#Presto.Parser-194"><span class="linenos">194</span></a> <span class="s2">"CONTAINS"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto.Parser-195"><a href="#Presto.Parser-195"><span class="linenos">195</span></a> <span class="s2">"DATE_ADD"</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">DateAdd</span><span class="p">(</span> +</span><span id="Presto.Parser-196"><a href="#Presto.Parser-196"><span class="linenos">196</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="Presto.Parser-197"><a href="#Presto.Parser-197"><span class="linenos">197</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="Presto.Parser-198"><a href="#Presto.Parser-198"><span class="linenos">198</span></a> <span class="n">unit</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="Presto.Parser-199"><a href="#Presto.Parser-199"><span class="linenos">199</span></a> <span class="p">),</span> +</span><span id="Presto.Parser-200"><a href="#Presto.Parser-200"><span class="linenos">200</span></a> <span class="s2">"DATE_DIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Presto.Parser-201"><a href="#Presto.Parser-201"><span class="linenos">201</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="Presto.Parser-202"><a href="#Presto.Parser-202"><span class="linenos">202</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="Presto.Parser-203"><a href="#Presto.Parser-203"><span class="linenos">203</span></a> <span class="n">unit</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="Presto.Parser-204"><a href="#Presto.Parser-204"><span class="linenos">204</span></a> <span class="p">),</span> +</span><span id="Presto.Parser-205"><a href="#Presto.Parser-205"><span class="linenos">205</span></a> <span class="s2">"DATE_FORMAT"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> +</span><span id="Presto.Parser-206"><a href="#Presto.Parser-206"><span class="linenos">206</span></a> <span class="s2">"DATE_PARSE"</span><span class="p">:</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"presto"</span><span class="p">),</span> +</span><span id="Presto.Parser-207"><a href="#Presto.Parser-207"><span class="linenos">207</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">:</span> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="Presto.Parser-208"><a href="#Presto.Parser-208"><span class="linenos">208</span></a> <span class="s2">"FROM_UNIXTIME"</span><span class="p">:</span> <span class="n">_from_unixtime</span><span class="p">,</span> +</span><span id="Presto.Parser-209"><a href="#Presto.Parser-209"><span class="linenos">209</span></a> <span class="s2">"NOW"</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="Presto.Parser-210"><a href="#Presto.Parser-210"><span class="linenos">210</span></a> <span class="s2">"STRPOS"</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">StrPosition</span><span class="p">(</span> +</span><span id="Presto.Parser-211"><a href="#Presto.Parser-211"><span class="linenos">211</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="Presto.Parser-212"><a href="#Presto.Parser-212"><span class="linenos">212</span></a> <span class="n">substr</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="Presto.Parser-213"><a href="#Presto.Parser-213"><span class="linenos">213</span></a> <span class="n">instance</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="Presto.Parser-214"><a href="#Presto.Parser-214"><span class="linenos">214</span></a> <span class="p">),</span> +</span><span id="Presto.Parser-215"><a href="#Presto.Parser-215"><span class="linenos">215</span></a> <span class="s2">"TO_UNIXTIME"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto.Parser-216"><a href="#Presto.Parser-216"><span class="linenos">216</span></a> <span class="s2">"APPROX_PERCENTILE"</span><span class="p">:</span> <span class="n">_approx_percentile</span><span class="p">,</span> +</span><span id="Presto.Parser-217"><a href="#Presto.Parser-217"><span class="linenos">217</span></a> <span class="s2">"FROM_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto.Parser-218"><a href="#Presto.Parser-218"><span class="linenos">218</span></a> <span class="s2">"TO_HEX"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Presto.Parser-219"><a href="#Presto.Parser-219"><span class="linenos">219</span></a> <span class="s2">"TO_UTF8"</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">Encode</span><span class="p">(</span> +</span><span id="Presto.Parser-220"><a href="#Presto.Parser-220"><span class="linenos">220</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">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> +</span><span id="Presto.Parser-221"><a href="#Presto.Parser-221"><span class="linenos">221</span></a> <span class="p">),</span> +</span><span id="Presto.Parser-222"><a href="#Presto.Parser-222"><span class="linenos">222</span></a> <span class="s2">"FROM_UTF8"</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">Decode</span><span class="p">(</span> +</span><span id="Presto.Parser-223"><a href="#Presto.Parser-223"><span class="linenos">223</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">replace</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="n">charset</span><span class="o">=</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">"utf-8"</span><span class="p">)</span> +</span><span id="Presto.Parser-224"><a href="#Presto.Parser-224"><span class="linenos">224</span></a> <span class="p">),</span> +</span><span id="Presto.Parser-225"><a href="#Presto.Parser-225"><span class="linenos">225</span></a> <span class="p">}</span> +</span><span id="Presto.Parser-226"><a href="#Presto.Parser-226"><span class="linenos">226</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Presto.Parser-227"><a href="#Presto.Parser-227"><span class="linenos">227</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> </span></pre></div> @@ -685,86 +711,93 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Presto.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Generator-220"><a href="#Presto.Generator-220"><span class="linenos">220</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Presto.Generator-221"><a href="#Presto.Generator-221"><span class="linenos">221</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="Presto.Generator-222"><a href="#Presto.Generator-222"><span class="linenos">222</span></a> -</span><span id="Presto.Generator-223"><a href="#Presto.Generator-223"><span class="linenos">223</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto.Generator-224"><a href="#Presto.Generator-224"><span class="linenos">224</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto.Generator-225"><a href="#Presto.Generator-225"><span class="linenos">225</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="Presto.Generator-226"><a href="#Presto.Generator-226"><span class="linenos">226</span></a> <span class="p">}</span> -</span><span id="Presto.Generator-227"><a href="#Presto.Generator-227"><span class="linenos">227</span></a> -</span><span id="Presto.Generator-228"><a href="#Presto.Generator-228"><span class="linenos">228</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto.Generator-229"><a href="#Presto.Generator-229"><span class="linenos">229</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Presto.Generator-230"><a href="#Presto.Generator-230"><span class="linenos">230</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="Presto.Generator-231"><a href="#Presto.Generator-231"><span class="linenos">231</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="Presto.Generator-232"><a href="#Presto.Generator-232"><span class="linenos">232</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">"VARBINARY"</span><span class="p">,</span> -</span><span id="Presto.Generator-233"><a href="#Presto.Generator-233"><span class="linenos">233</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Presto.Generator-234"><a href="#Presto.Generator-234"><span class="linenos">234</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="Presto.Generator-235"><a href="#Presto.Generator-235"><span class="linenos">235</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">STRUCT</span><span class="p">:</span> <span class="s2">"ROW"</span><span class="p">,</span> -</span><span id="Presto.Generator-236"><a href="#Presto.Generator-236"><span class="linenos">236</span></a> <span class="p">}</span> -</span><span id="Presto.Generator-237"><a href="#Presto.Generator-237"><span class="linenos">237</span></a> -</span><span id="Presto.Generator-238"><a href="#Presto.Generator-238"><span class="linenos">238</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Presto.Generator-239"><a href="#Presto.Generator-239"><span class="linenos">239</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto.Generator-240"><a href="#Presto.Generator-240"><span class="linenos">240</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Presto.Generator-241"><a href="#Presto.Generator-241"><span class="linenos">241</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">_approx_distinct_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-242"><a href="#Presto.Generator-242"><span class="linenos">242</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> -</span><span id="Presto.Generator-243"><a href="#Presto.Generator-243"><span class="linenos">243</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> -</span><span id="Presto.Generator-244"><a href="#Presto.Generator-244"><span class="linenos">244</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONTAINS"</span><span class="p">),</span> -</span><span id="Presto.Generator-245"><a href="#Presto.Generator-245"><span class="linenos">245</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CARDINALITY"</span><span class="p">),</span> -</span><span id="Presto.Generator-246"><a href="#Presto.Generator-246"><span class="linenos">246</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</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="sa">f</span><span class="s2">"BITWISE_AND(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-247"><a href="#Presto.Generator-247"><span class="linenos">247</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_LEFT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-248"><a href="#Presto.Generator-248"><span class="linenos">248</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseNot</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="sa">f</span><span class="s2">"BITWISE_NOT(</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="Presto.Generator-249"><a href="#Presto.Generator-249"><span class="linenos">249</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</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="sa">f</span><span class="s2">"BITWISE_OR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-250"><a href="#Presto.Generator-250"><span class="linenos">250</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_RIGHT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-251"><a href="#Presto.Generator-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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="sa">f</span><span class="s2">"BITWISE_XOR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-252"><a href="#Presto.Generator-252"><span class="linenos">252</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> -</span><span id="Presto.Generator-253"><a href="#Presto.Generator-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-254"><a href="#Presto.Generator-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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="sa">f</span><span class="s2">"""DATE_ADD(</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">'unit'</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"'day'"</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</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="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="Presto.Generator-255"><a href="#Presto.Generator-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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="sa">f</span><span class="s2">"""DATE_DIFF(</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">'unit'</span><span class="p">)</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s2">"'day'"</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</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="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="Presto.Generator-256"><a href="#Presto.Generator-256"><span class="linenos">256</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="Presto.Generator-257"><a href="#Presto.Generator-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> -</span><span id="Presto.Generator-258"><a href="#Presto.Generator-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Decode</span><span class="p">:</span> <span class="n">_decode_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-259"><a href="#Presto.Generator-259"><span class="linenos">259</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> -</span><span id="Presto.Generator-260"><a href="#Presto.Generator-260"><span class="linenos">260</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Encode</span><span class="p">:</span> <span class="n">_encode_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-261"><a href="#Presto.Generator-261"><span class="linenos">261</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GenerateSeries</span><span class="p">:</span> <span class="n">_sequence_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-262"><a href="#Presto.Generator-262"><span class="linenos">262</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">),</span> -</span><span id="Presto.Generator-263"><a href="#Presto.Generator-263"><span class="linenos">263</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-264"><a href="#Presto.Generator-264"><span class="linenos">264</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-265"><a href="#Presto.Generator-265"><span class="linenos">265</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Initcap</span><span class="p">:</span> <span class="n">_initcap_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-266"><a href="#Presto.Generator-266"><span class="linenos">266</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">:</span> <span class="n">_explode_to_unnest_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-267"><a href="#Presto.Generator-267"><span class="linenos">267</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> -</span><span id="Presto.Generator-268"><a href="#Presto.Generator-268"><span class="linenos">268</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="Presto.Generator-269"><a href="#Presto.Generator-269"><span class="linenos">269</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">_quantile_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-270"><a href="#Presto.Generator-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"APPROX_PERCENTILE"</span><span class="p">),</span> -</span><span id="Presto.Generator-271"><a href="#Presto.Generator-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-272"><a href="#Presto.Generator-272"><span class="linenos">272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">:</span> <span class="n">_schema_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-273"><a href="#Presto.Generator-273"><span class="linenos">273</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_no_sort_array</span><span class="p">,</span> -</span><span id="Presto.Generator-274"><a href="#Presto.Generator-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRPOS"</span><span class="p">),</span> -</span><span id="Presto.Generator-275"><a href="#Presto.Generator-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> -</span><span id="Presto.Generator-276"><a href="#Presto.Generator-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-277"><a href="#Presto.Generator-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="Presto.Generator-278"><a href="#Presto.Generator-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-279"><a href="#Presto.Generator-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"TABLE_FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> -</span><span id="Presto.Generator-280"><a href="#Presto.Generator-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> -</span><span id="Presto.Generator-281"><a href="#Presto.Generator-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-282"><a href="#Presto.Generator-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-283"><a href="#Presto.Generator-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> -</span><span id="Presto.Generator-284"><a href="#Presto.Generator-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-285"><a href="#Presto.Generator-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_UNIXTIME"</span><span class="p">),</span> -</span><span id="Presto.Generator-286"><a href="#Presto.Generator-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> -</span><span id="Presto.Generator-287"><a href="#Presto.Generator-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-288"><a href="#Presto.Generator-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_ts_or_ds_to_date_sql</span><span class="p">,</span> -</span><span id="Presto.Generator-289"><a href="#Presto.Generator-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_HEX"</span><span class="p">),</span> -</span><span id="Presto.Generator-290"><a href="#Presto.Generator-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Presto.Generator-291"><a href="#Presto.Generator-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="Presto.Generator-292"><a href="#Presto.Generator-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(FROM_UNIXTIME(</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">) AS VARCHAR)"</span><span class="p">,</span> -</span><span id="Presto.Generator-293"><a href="#Presto.Generator-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> -</span><span id="Presto.Generator-294"><a href="#Presto.Generator-294"><span class="linenos">294</span></a> <span class="p">}</span> -</span><span id="Presto.Generator-295"><a href="#Presto.Generator-295"><span class="linenos">295</span></a> -</span><span id="Presto.Generator-296"><a href="#Presto.Generator-296"><span class="linenos">296</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="Presto.Generator-297"><a href="#Presto.Generator-297"><span class="linenos">297</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> -</span><span id="Presto.Generator-298"><a href="#Presto.Generator-298"><span class="linenos">298</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Presto.Generator-299"><a href="#Presto.Generator-299"><span class="linenos">299</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Generator-229"><a href="#Presto.Generator-229"><span class="linenos">229</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Presto.Generator-230"><a href="#Presto.Generator-230"><span class="linenos">230</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="Presto.Generator-231"><a href="#Presto.Generator-231"><span class="linenos">231</span></a> +</span><span id="Presto.Generator-232"><a href="#Presto.Generator-232"><span class="linenos">232</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto.Generator-233"><a href="#Presto.Generator-233"><span class="linenos">233</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto.Generator-234"><a href="#Presto.Generator-234"><span class="linenos">234</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="Presto.Generator-235"><a href="#Presto.Generator-235"><span class="linenos">235</span></a> <span class="p">}</span> +</span><span id="Presto.Generator-236"><a href="#Presto.Generator-236"><span class="linenos">236</span></a> +</span><span id="Presto.Generator-237"><a href="#Presto.Generator-237"><span class="linenos">237</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto.Generator-238"><a href="#Presto.Generator-238"><span class="linenos">238</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Presto.Generator-239"><a href="#Presto.Generator-239"><span class="linenos">239</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="Presto.Generator-240"><a href="#Presto.Generator-240"><span class="linenos">240</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="Presto.Generator-241"><a href="#Presto.Generator-241"><span class="linenos">241</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">"VARBINARY"</span><span class="p">,</span> +</span><span id="Presto.Generator-242"><a href="#Presto.Generator-242"><span class="linenos">242</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">TEXT</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Presto.Generator-243"><a href="#Presto.Generator-243"><span class="linenos">243</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="Presto.Generator-244"><a href="#Presto.Generator-244"><span class="linenos">244</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">STRUCT</span><span class="p">:</span> <span class="s2">"ROW"</span><span class="p">,</span> +</span><span id="Presto.Generator-245"><a href="#Presto.Generator-245"><span class="linenos">245</span></a> <span class="p">}</span> +</span><span id="Presto.Generator-246"><a href="#Presto.Generator-246"><span class="linenos">246</span></a> +</span><span id="Presto.Generator-247"><a href="#Presto.Generator-247"><span class="linenos">247</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Presto.Generator-248"><a href="#Presto.Generator-248"><span class="linenos">248</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto.Generator-249"><a href="#Presto.Generator-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">UNALIAS_GROUP</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto.Generator-250"><a href="#Presto.Generator-250"><span class="linenos">250</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Presto.Generator-251"><a href="#Presto.Generator-251"><span class="linenos">251</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxDistinct</span><span class="p">:</span> <span class="n">_approx_distinct_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-252"><a href="#Presto.Generator-252"><span class="linenos">252</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</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="sa">f</span><span class="s2">"ARRAY[</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">e</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">]"</span><span class="p">,</span> +</span><span id="Presto.Generator-253"><a href="#Presto.Generator-253"><span class="linenos">253</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONCAT"</span><span class="p">),</span> +</span><span id="Presto.Generator-254"><a href="#Presto.Generator-254"><span class="linenos">254</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayContains</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CONTAINS"</span><span class="p">),</span> +</span><span id="Presto.Generator-255"><a href="#Presto.Generator-255"><span class="linenos">255</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArraySize</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"CARDINALITY"</span><span class="p">),</span> +</span><span id="Presto.Generator-256"><a href="#Presto.Generator-256"><span class="linenos">256</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</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="sa">f</span><span class="s2">"BITWISE_AND(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-257"><a href="#Presto.Generator-257"><span class="linenos">257</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_LEFT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-258"><a href="#Presto.Generator-258"><span class="linenos">258</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseNot</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="sa">f</span><span class="s2">"BITWISE_NOT(</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="Presto.Generator-259"><a href="#Presto.Generator-259"><span class="linenos">259</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</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="sa">f</span><span class="s2">"BITWISE_OR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-260"><a href="#Presto.Generator-260"><span class="linenos">260</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</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="sa">f</span><span class="s2">"BITWISE_ARITHMETIC_SHIFT_RIGHT(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-261"><a href="#Presto.Generator-261"><span class="linenos">261</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</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="sa">f</span><span class="s2">"BITWISE_XOR(</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="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">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-262"><a href="#Presto.Generator-262"><span class="linenos">262</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="Presto.Generator-263"><a href="#Presto.Generator-263"><span class="linenos">263</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-264"><a href="#Presto.Generator-264"><span class="linenos">264</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="Presto.Generator-265"><a href="#Presto.Generator-265"><span class="linenos">265</span></a> <span class="s2">"DATE_ADD"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Presto.Generator-266"><a href="#Presto.Generator-266"><span class="linenos">266</span></a> <span class="p">),</span> +</span><span id="Presto.Generator-267"><a href="#Presto.Generator-267"><span class="linenos">267</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="Presto.Generator-268"><a href="#Presto.Generator-268"><span class="linenos">268</span></a> <span class="s2">"DATE_DIFF"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Presto.Generator-269"><a href="#Presto.Generator-269"><span class="linenos">269</span></a> <span class="p">),</span> +</span><span id="Presto.Generator-270"><a href="#Presto.Generator-270"><span class="linenos">270</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">date_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="Presto.Generator-271"><a href="#Presto.Generator-271"><span class="linenos">271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateToDi</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="sa">f</span><span class="s2">"CAST(DATE_FORMAT(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS INT)"</span><span class="p">,</span> +</span><span id="Presto.Generator-272"><a href="#Presto.Generator-272"><span class="linenos">272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Decode</span><span class="p">:</span> <span class="n">_decode_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-273"><a href="#Presto.Generator-273"><span class="linenos">273</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DiToDate</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="sa">f</span><span class="s2">"CAST(DATE_PARSE(CAST(</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"> AS VARCHAR), </span><span class="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">dateint_format</span><span class="si">}</span><span class="s2">) AS DATE)"</span><span class="p">,</span> +</span><span id="Presto.Generator-274"><a href="#Presto.Generator-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Encode</span><span class="p">:</span> <span class="n">_encode_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-275"><a href="#Presto.Generator-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GenerateSeries</span><span class="p">:</span> <span class="n">_sequence_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-276"><a href="#Presto.Generator-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Hex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_HEX"</span><span class="p">),</span> +</span><span id="Presto.Generator-277"><a href="#Presto.Generator-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">if_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-278"><a href="#Presto.Generator-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-279"><a href="#Presto.Generator-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Initcap</span><span class="p">:</span> <span class="n">_initcap_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-280"><a href="#Presto.Generator-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">:</span> <span class="n">_explode_to_unnest_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-281"><a href="#Presto.Generator-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"LEVENSHTEIN_DISTANCE"</span><span class="p">),</span> +</span><span id="Presto.Generator-282"><a href="#Presto.Generator-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> +</span><span id="Presto.Generator-283"><a href="#Presto.Generator-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="Presto.Generator-284"><a href="#Presto.Generator-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Quantile</span><span class="p">:</span> <span class="n">_quantile_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-285"><a href="#Presto.Generator-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ApproxQuantile</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"APPROX_PERCENTILE"</span><span class="p">),</span> +</span><span id="Presto.Generator-286"><a href="#Presto.Generator-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SafeDivide</span><span class="p">:</span> <span class="n">no_safe_divide_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-287"><a href="#Presto.Generator-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">:</span> <span class="n">_schema_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-288"><a href="#Presto.Generator-288"><span class="linenos">288</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortArray</span><span class="p">:</span> <span class="n">_no_sort_array</span><span class="p">,</span> +</span><span id="Presto.Generator-289"><a href="#Presto.Generator-289"><span class="linenos">289</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"STRPOS"</span><span class="p">),</span> +</span><span id="Presto.Generator-290"><a href="#Presto.Generator-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToDate</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="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">_str_to_time_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2"> AS DATE)"</span><span class="p">,</span> +</span><span id="Presto.Generator-291"><a href="#Presto.Generator-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">:</span> <span class="n">_str_to_time_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-292"><a href="#Presto.Generator-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="Presto.Generator-293"><a href="#Presto.Generator-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StructExtract</span><span class="p">:</span> <span class="n">struct_extract_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-294"><a href="#Presto.Generator-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</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="sa">f</span><span class="s2">"TABLE_FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> +</span><span id="Presto.Generator-295"><a href="#Presto.Generator-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</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="sa">f</span><span class="s2">"FORMAT='</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">'"</span><span class="p">,</span> +</span><span id="Presto.Generator-296"><a href="#Presto.Generator-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-297"><a href="#Presto.Generator-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-298"><a href="#Presto.Generator-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-299"><a href="#Presto.Generator-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToUnix</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="sa">f</span><span class="s2">"TO_UNIXTIME(DATE_PARSE(</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="si">{</span><span class="n">Presto</span><span class="o">.</span><span class="n">time_format</span><span class="si">}</span><span class="s2">))"</span><span class="p">,</span> +</span><span id="Presto.Generator-300"><a href="#Presto.Generator-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-301"><a href="#Presto.Generator-301"><span class="linenos">301</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_UNIXTIME"</span><span class="p">),</span> +</span><span id="Presto.Generator-302"><a href="#Presto.Generator-302"><span class="linenos">302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDiToDi</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="sa">f</span><span class="s2">"CAST(SUBSTR(REPLACE(CAST(</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"> AS VARCHAR), '-', ''), 1, 8) AS INT)"</span><span class="p">,</span> +</span><span id="Presto.Generator-303"><a href="#Presto.Generator-303"><span class="linenos">303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</span><span class="p">:</span> <span class="n">_ts_or_ds_add_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-304"><a href="#Presto.Generator-304"><span class="linenos">304</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">_ts_or_ds_to_date_sql</span><span class="p">,</span> +</span><span id="Presto.Generator-305"><a href="#Presto.Generator-305"><span class="linenos">305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unhex</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_HEX"</span><span class="p">),</span> +</span><span id="Presto.Generator-306"><a href="#Presto.Generator-306"><span class="linenos">306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"DATE_FORMAT(FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Presto.Generator-307"><a href="#Presto.Generator-307"><span class="linenos">307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="Presto.Generator-308"><a href="#Presto.Generator-308"><span class="linenos">308</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTimeStr</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="sa">f</span><span class="s2">"CAST(FROM_UNIXTIME(</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">) AS VARCHAR)"</span><span class="p">,</span> +</span><span id="Presto.Generator-309"><a href="#Presto.Generator-309"><span class="linenos">309</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> +</span><span id="Presto.Generator-310"><a href="#Presto.Generator-310"><span class="linenos">310</span></a> <span class="p">}</span> +</span><span id="Presto.Generator-311"><a href="#Presto.Generator-311"><span class="linenos">311</span></a> +</span><span id="Presto.Generator-312"><a href="#Presto.Generator-312"><span class="linenos">312</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="Presto.Generator-313"><a href="#Presto.Generator-313"><span class="linenos">313</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> +</span><span id="Presto.Generator-314"><a href="#Presto.Generator-314"><span class="linenos">314</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Presto.Generator-315"><a href="#Presto.Generator-315"><span class="linenos">315</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -781,8 +814,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -824,10 +856,10 @@ Default: True</li> </div> <a class="headerlink" href="#Presto.Generator.transaction_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Generator.transaction_sql-296"><a href="#Presto.Generator.transaction_sql-296"><span class="linenos">296</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="Presto.Generator.transaction_sql-297"><a href="#Presto.Generator.transaction_sql-297"><span class="linenos">297</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> -</span><span id="Presto.Generator.transaction_sql-298"><a href="#Presto.Generator.transaction_sql-298"><span class="linenos">298</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Presto.Generator.transaction_sql-299"><a href="#Presto.Generator.transaction_sql-299"><span class="linenos">299</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Presto.Generator.transaction_sql-312"><a href="#Presto.Generator.transaction_sql-312"><span class="linenos">312</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="Presto.Generator.transaction_sql-313"><a href="#Presto.Generator.transaction_sql-313"><span class="linenos">313</span></a> <span class="n">modes</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">"modes"</span><span class="p">)</span> +</span><span id="Presto.Generator.transaction_sql-314"><a href="#Presto.Generator.transaction_sql-314"><span class="linenos">314</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">modes</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">modes</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Presto.Generator.transaction_sql-315"><a href="#Presto.Generator.transaction_sql-315"><span class="linenos">315</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"START TRANSACTION</span><span class="si">{</span><span class="n">modes</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -924,6 +956,8 @@ Default: True</li> <dd id="Presto.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Presto.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Presto.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Presto.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Presto.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Presto.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Presto.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Presto.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1007,7 +1041,6 @@ Default: True</li> <dd id="Presto.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Presto.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Presto.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Presto.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Presto.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Presto.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Presto.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1049,6 +1082,7 @@ Default: True</li> <dd id="Presto.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Presto.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Presto.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Presto.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/redshift.html b/docs/sqlglot/dialects/redshift.html index 7e69e65..7ec5882 100644 --- a/docs/sqlglot/dialects/redshift.html +++ b/docs/sqlglot/dialects/redshift.html @@ -111,124 +111,135 @@ </span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</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-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</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 class="c1"># type: ignore</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> </span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</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-25"><a href="#L-25"><span class="linenos"> 25</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-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="n">unit</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-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="p">),</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="s2">"NVL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="p">}</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(</span><span class="n">check_func</span><span class="o">=</span><span class="n">check_func</span><span class="p">)</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</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">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="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="s2">"NVL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="p">}</span> </span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">VARCHAR</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="ow">and</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 class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">)</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="p">):</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">)])</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="k">return</span> <span class="n">this</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</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-48"><a href="#L-48"><span class="linenos"> 48</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><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(</span><span class="n">check_func</span><span class="o">=</span><span class="n">check_func</span><span class="p">)</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">VARCHAR</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="ow">and</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 class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">)</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="p">):</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">)])</span> </span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</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 class="c1"># type: ignore</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="s2">"GEOMETRY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</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-55"><a href="#L-55"><span class="linenos"> 55</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-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="s2">"TIMETZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</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-59"><a href="#L-59"><span class="linenos"> 59</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-60"><a href="#L-60"><span class="linenos"> 60</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-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="p">}</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</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-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</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 class="c1"># type: ignore</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</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-67"><a href="#L-67"><span class="linenos"> 67</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-68"><a href="#L-68"><span class="linenos"> 68</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-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="p">}</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</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">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</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-53"><a href="#L-53"><span class="linenos"> 53</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><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="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</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 class="c1"># type: ignore</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="s2">"GEOMETRY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</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-60"><a href="#L-60"><span class="linenos"> 60</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-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="s2">"TIMETZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</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-64"><a href="#L-64"><span class="linenos"> 64</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-65"><a href="#L-65"><span class="linenos"> 65</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-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="p">}</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</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-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</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 class="c1"># type: ignore</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</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-72"><a href="#L-72"><span class="linenos"> 72</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-73"><a href="#L-73"><span class="linenos"> 73</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-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="p">}</span> </span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</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 class="c1"># type: ignore</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_DISTINCT_ON</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="s2">"DATEDIFF"</span><span class="p">,</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">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</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 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="sa">f</span><span class="s2">"DISTKEY(</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</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 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-84"><a href="#L-84"><span class="linenos"> 84</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-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="p">}</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a><span class="sd"> very slow.</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a><span class="sd"> """</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="p">]</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="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-128"><a href="#L-128"><span class="linenos">128</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</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-130"><a href="#L-130"><span class="linenos">130</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-131"><a href="#L-131"><span class="linenos">131</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-132"><a href="#L-132"><span class="linenos">132</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="sd"> """</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</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-137"><a href="#L-137"><span class="linenos">137</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-138"><a href="#L-138"><span class="linenos">138</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-139"><a href="#L-139"><span class="linenos">139</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</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-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</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">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="p">}</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</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 class="c1"># type: ignore</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_DISTINCT_ON</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="s2">"DATEADD"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="p">),</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="s2">"DATEDIFF"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="p">),</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</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="sa">f</span><span class="s2">"DISTKEY(</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</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-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</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 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-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="p">}</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="c1"># Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</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-98"><a href="#L-98"><span class="linenos"> 98</span></a> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a><span class="sd"> very slow.</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a><span class="sd"> """</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</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">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="p">]</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</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="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</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-139"><a href="#L-139"><span class="linenos">139</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</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-141"><a href="#L-141"><span class="linenos">141</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-142"><a href="#L-142"><span class="linenos">142</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-143"><a href="#L-143"><span class="linenos">143</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="sd"> """</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</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-148"><a href="#L-148"><span class="linenos">148</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-149"><a href="#L-149"><span class="linenos">149</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-150"><a href="#L-150"><span class="linenos">150</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</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> @@ -255,124 +266,135 @@ </span><span id="Redshift-21"><a href="#Redshift-21"><span class="linenos"> 21</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-22"><a href="#Redshift-22"><span class="linenos"> 22</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Redshift-23"><a href="#Redshift-23"><span class="linenos"> 23</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 class="c1"># type: ignore</span> -</span><span id="Redshift-24"><a href="#Redshift-24"><span class="linenos"> 24</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Redshift-24"><a href="#Redshift-24"><span class="linenos"> 24</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> </span><span id="Redshift-25"><a href="#Redshift-25"><span class="linenos"> 25</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="Redshift-26"><a href="#Redshift-26"><span class="linenos"> 26</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-27"><a href="#Redshift-27"><span class="linenos"> 27</span></a> <span class="n">unit</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-28"><a href="#Redshift-28"><span class="linenos"> 28</span></a> <span class="p">),</span> -</span><span id="Redshift-29"><a href="#Redshift-29"><span class="linenos"> 29</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Redshift-30"><a href="#Redshift-30"><span class="linenos"> 30</span></a> <span class="s2">"NVL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Redshift-31"><a href="#Redshift-31"><span class="linenos"> 31</span></a> <span class="p">}</span> -</span><span id="Redshift-32"><a href="#Redshift-32"><span class="linenos"> 32</span></a> -</span><span id="Redshift-33"><a href="#Redshift-33"><span class="linenos"> 33</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Redshift-34"><a href="#Redshift-34"><span class="linenos"> 34</span></a> -</span><span id="Redshift-35"><a href="#Redshift-35"><span class="linenos"> 35</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-36"><a href="#Redshift-36"><span class="linenos"> 36</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(</span><span class="n">check_func</span><span class="o">=</span><span class="n">check_func</span><span class="p">)</span> +</span><span id="Redshift-29"><a href="#Redshift-29"><span class="linenos"> 29</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Redshift-30"><a href="#Redshift-30"><span class="linenos"> 30</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="Redshift-31"><a href="#Redshift-31"><span class="linenos"> 31</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-32"><a href="#Redshift-32"><span class="linenos"> 32</span></a> <span class="n">unit</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-33"><a href="#Redshift-33"><span class="linenos"> 33</span></a> <span class="p">),</span> +</span><span id="Redshift-34"><a href="#Redshift-34"><span class="linenos"> 34</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Redshift-35"><a href="#Redshift-35"><span class="linenos"> 35</span></a> <span class="s2">"NVL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Redshift-36"><a href="#Redshift-36"><span class="linenos"> 36</span></a> <span class="p">}</span> </span><span id="Redshift-37"><a href="#Redshift-37"><span class="linenos"> 37</span></a> -</span><span id="Redshift-38"><a href="#Redshift-38"><span class="linenos"> 38</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Redshift-39"><a href="#Redshift-39"><span class="linenos"> 39</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="Redshift-40"><a href="#Redshift-40"><span class="linenos"> 40</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">VARCHAR</span> -</span><span id="Redshift-41"><a href="#Redshift-41"><span class="linenos"> 41</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="Redshift-42"><a href="#Redshift-42"><span class="linenos"> 42</span></a> <span class="ow">and</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 class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">)</span> -</span><span id="Redshift-43"><a href="#Redshift-43"><span class="linenos"> 43</span></a> <span class="p">):</span> -</span><span id="Redshift-44"><a href="#Redshift-44"><span class="linenos"> 44</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">)])</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="k">return</span> <span class="n">this</span> -</span><span id="Redshift-47"><a href="#Redshift-47"><span class="linenos"> 47</span></a> -</span><span id="Redshift-48"><a href="#Redshift-48"><span class="linenos"> 48</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-49"><a href="#Redshift-49"><span class="linenos"> 49</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><span id="Redshift-38"><a href="#Redshift-38"><span class="linenos"> 38</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Redshift-39"><a href="#Redshift-39"><span class="linenos"> 39</span></a> +</span><span id="Redshift-40"><a href="#Redshift-40"><span class="linenos"> 40</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-41"><a href="#Redshift-41"><span class="linenos"> 41</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(</span><span class="n">check_func</span><span class="o">=</span><span class="n">check_func</span><span class="p">)</span> +</span><span id="Redshift-42"><a href="#Redshift-42"><span class="linenos"> 42</span></a> +</span><span id="Redshift-43"><a href="#Redshift-43"><span class="linenos"> 43</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Redshift-44"><a href="#Redshift-44"><span class="linenos"> 44</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="Redshift-45"><a href="#Redshift-45"><span class="linenos"> 45</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">VARCHAR</span> +</span><span id="Redshift-46"><a href="#Redshift-46"><span class="linenos"> 46</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Redshift-47"><a href="#Redshift-47"><span class="linenos"> 47</span></a> <span class="ow">and</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 class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">)</span> +</span><span id="Redshift-48"><a href="#Redshift-48"><span class="linenos"> 48</span></a> <span class="p">):</span> +</span><span id="Redshift-49"><a href="#Redshift-49"><span class="linenos"> 49</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">)])</span> </span><span id="Redshift-50"><a href="#Redshift-50"><span class="linenos"> 50</span></a> -</span><span id="Redshift-51"><a href="#Redshift-51"><span class="linenos"> 51</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift-52"><a href="#Redshift-52"><span class="linenos"> 52</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 class="c1"># type: ignore</span> -</span><span id="Redshift-53"><a href="#Redshift-53"><span class="linenos"> 53</span></a> <span class="s2">"GEOMETRY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> -</span><span id="Redshift-54"><a href="#Redshift-54"><span class="linenos"> 54</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="Redshift-55"><a href="#Redshift-55"><span class="linenos"> 55</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-56"><a href="#Redshift-56"><span class="linenos"> 56</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-57"><a href="#Redshift-57"><span class="linenos"> 57</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Redshift-58"><a href="#Redshift-58"><span class="linenos"> 58</span></a> <span class="s2">"TIMETZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Redshift-59"><a href="#Redshift-59"><span class="linenos"> 59</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-60"><a href="#Redshift-60"><span class="linenos"> 60</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-61"><a href="#Redshift-61"><span class="linenos"> 61</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-62"><a href="#Redshift-62"><span class="linenos"> 62</span></a> <span class="p">}</span> -</span><span id="Redshift-63"><a href="#Redshift-63"><span class="linenos"> 63</span></a> -</span><span id="Redshift-64"><a href="#Redshift-64"><span class="linenos"> 64</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-65"><a href="#Redshift-65"><span class="linenos"> 65</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift-66"><a href="#Redshift-66"><span class="linenos"> 66</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 class="c1"># type: ignore</span> -</span><span id="Redshift-67"><a href="#Redshift-67"><span class="linenos"> 67</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-68"><a href="#Redshift-68"><span class="linenos"> 68</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-69"><a href="#Redshift-69"><span class="linenos"> 69</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-70"><a href="#Redshift-70"><span class="linenos"> 70</span></a> <span class="p">}</span> -</span><span id="Redshift-71"><a href="#Redshift-71"><span class="linenos"> 71</span></a> -</span><span id="Redshift-72"><a href="#Redshift-72"><span class="linenos"> 72</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift-73"><a href="#Redshift-73"><span class="linenos"> 73</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">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Redshift-74"><a href="#Redshift-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Redshift-51"><a href="#Redshift-51"><span class="linenos"> 51</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Redshift-52"><a href="#Redshift-52"><span class="linenos"> 52</span></a> +</span><span id="Redshift-53"><a href="#Redshift-53"><span class="linenos"> 53</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-54"><a href="#Redshift-54"><span class="linenos"> 54</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><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="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift-57"><a href="#Redshift-57"><span class="linenos"> 57</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 class="c1"># type: ignore</span> +</span><span id="Redshift-58"><a href="#Redshift-58"><span class="linenos"> 58</span></a> <span class="s2">"GEOMETRY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> +</span><span id="Redshift-59"><a href="#Redshift-59"><span class="linenos"> 59</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="Redshift-60"><a href="#Redshift-60"><span class="linenos"> 60</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-61"><a href="#Redshift-61"><span class="linenos"> 61</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-62"><a href="#Redshift-62"><span class="linenos"> 62</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Redshift-63"><a href="#Redshift-63"><span class="linenos"> 63</span></a> <span class="s2">"TIMETZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Redshift-64"><a href="#Redshift-64"><span class="linenos"> 64</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-65"><a href="#Redshift-65"><span class="linenos"> 65</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-66"><a href="#Redshift-66"><span class="linenos"> 66</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-67"><a href="#Redshift-67"><span class="linenos"> 67</span></a> <span class="p">}</span> +</span><span id="Redshift-68"><a href="#Redshift-68"><span class="linenos"> 68</span></a> +</span><span id="Redshift-69"><a href="#Redshift-69"><span class="linenos"> 69</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-70"><a href="#Redshift-70"><span class="linenos"> 70</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift-71"><a href="#Redshift-71"><span class="linenos"> 71</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 class="c1"># type: ignore</span> +</span><span id="Redshift-72"><a href="#Redshift-72"><span class="linenos"> 72</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-73"><a href="#Redshift-73"><span class="linenos"> 73</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-74"><a href="#Redshift-74"><span class="linenos"> 74</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-75"><a href="#Redshift-75"><span class="linenos"> 75</span></a> <span class="p">}</span> </span><span id="Redshift-76"><a href="#Redshift-76"><span class="linenos"> 76</span></a> -</span><span id="Redshift-77"><a href="#Redshift-77"><span class="linenos"> 77</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift-78"><a href="#Redshift-78"><span class="linenos"> 78</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 class="c1"># type: ignore</span> -</span><span id="Redshift-79"><a href="#Redshift-79"><span class="linenos"> 79</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_DISTINCT_ON</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Redshift-80"><a href="#Redshift-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="Redshift-81"><a href="#Redshift-81"><span class="linenos"> 81</span></a> <span class="s2">"DATEDIFF"</span><span class="p">,</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">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</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 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="sa">f</span><span class="s2">"DISTKEY(</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Redshift-84"><a href="#Redshift-84"><span class="linenos"> 84</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 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-85"><a href="#Redshift-85"><span class="linenos"> 85</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-86"><a href="#Redshift-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> -</span><span id="Redshift-87"><a href="#Redshift-87"><span class="linenos"> 87</span></a> <span class="p">}</span> -</span><span id="Redshift-88"><a href="#Redshift-88"><span class="linenos"> 88</span></a> -</span><span id="Redshift-89"><a href="#Redshift-89"><span class="linenos"> 89</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift-90"><a href="#Redshift-90"><span class="linenos"> 90</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Redshift-91"><a href="#Redshift-91"><span class="linenos"> 91</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> -</span><span id="Redshift-92"><a href="#Redshift-92"><span class="linenos"> 92</span></a> -</span><span id="Redshift-93"><a href="#Redshift-93"><span class="linenos"> 93</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> -</span><span id="Redshift-94"><a href="#Redshift-94"><span class="linenos"> 94</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> -</span><span id="Redshift-95"><a href="#Redshift-95"><span class="linenos"> 95</span></a><span class="sd"> very slow.</span> -</span><span id="Redshift-96"><a href="#Redshift-96"><span class="linenos"> 96</span></a><span class="sd"> """</span> -</span><span id="Redshift-97"><a href="#Redshift-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> -</span><span id="Redshift-98"><a href="#Redshift-98"><span class="linenos"> 98</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Redshift-99"><a href="#Redshift-99"><span class="linenos"> 99</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> -</span><span id="Redshift-100"><a href="#Redshift-100"><span class="linenos">100</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Redshift-101"><a href="#Redshift-101"><span class="linenos">101</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> -</span><span id="Redshift-102"><a href="#Redshift-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="Redshift-103"><a href="#Redshift-103"><span class="linenos">103</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="Redshift-104"><a href="#Redshift-104"><span class="linenos">104</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> -</span><span id="Redshift-105"><a href="#Redshift-105"><span class="linenos">105</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> -</span><span id="Redshift-106"><a href="#Redshift-106"><span class="linenos">106</span></a> <span class="p">]</span> -</span><span id="Redshift-107"><a href="#Redshift-107"><span class="linenos">107</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> -</span><span id="Redshift-108"><a href="#Redshift-108"><span class="linenos">108</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Redshift-109"><a href="#Redshift-109"><span class="linenos">109</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Redshift-110"><a href="#Redshift-110"><span class="linenos">110</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="Redshift-111"><a href="#Redshift-111"><span class="linenos">111</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Redshift-112"><a href="#Redshift-112"><span class="linenos">112</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> -</span><span id="Redshift-113"><a href="#Redshift-113"><span class="linenos">113</span></a> -</span><span id="Redshift-114"><a href="#Redshift-114"><span class="linenos">114</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift-115"><a href="#Redshift-115"><span class="linenos">115</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> -</span><span id="Redshift-116"><a href="#Redshift-116"><span class="linenos">116</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> -</span><span id="Redshift-117"><a href="#Redshift-117"><span class="linenos">117</span></a> -</span><span id="Redshift-118"><a href="#Redshift-118"><span class="linenos">118</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift-119"><a href="#Redshift-119"><span class="linenos">119</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> -</span><span id="Redshift-120"><a href="#Redshift-120"><span class="linenos">120</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Redshift-121"><a href="#Redshift-121"><span class="linenos">121</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Redshift-122"><a href="#Redshift-122"><span class="linenos">122</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Redshift-123"><a href="#Redshift-123"><span class="linenos">123</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> -</span><span id="Redshift-124"><a href="#Redshift-124"><span class="linenos">124</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Redshift-125"><a href="#Redshift-125"><span class="linenos">125</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Redshift-126"><a href="#Redshift-126"><span class="linenos">126</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Redshift-127"><a href="#Redshift-127"><span class="linenos">127</span></a> -</span><span id="Redshift-128"><a href="#Redshift-128"><span class="linenos">128</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-129"><a href="#Redshift-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Redshift-130"><a href="#Redshift-130"><span class="linenos">130</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-131"><a href="#Redshift-131"><span class="linenos">131</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-132"><a href="#Redshift-132"><span class="linenos">132</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-133"><a href="#Redshift-133"><span class="linenos">133</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> -</span><span id="Redshift-134"><a href="#Redshift-134"><span class="linenos">134</span></a><span class="sd"> """</span> -</span><span id="Redshift-135"><a href="#Redshift-135"><span class="linenos">135</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="Redshift-136"><a href="#Redshift-136"><span class="linenos">136</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Redshift-137"><a href="#Redshift-137"><span class="linenos">137</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-138"><a href="#Redshift-138"><span class="linenos">138</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-139"><a href="#Redshift-139"><span class="linenos">139</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-140"><a href="#Redshift-140"><span class="linenos">140</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> -</span><span id="Redshift-141"><a href="#Redshift-141"><span class="linenos">141</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-77"><a href="#Redshift-77"><span class="linenos"> 77</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift-78"><a href="#Redshift-78"><span class="linenos"> 78</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">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Redshift-79"><a href="#Redshift-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Redshift-80"><a href="#Redshift-80"><span class="linenos"> 80</span></a> <span class="p">}</span> +</span><span id="Redshift-81"><a href="#Redshift-81"><span class="linenos"> 81</span></a> +</span><span id="Redshift-82"><a href="#Redshift-82"><span class="linenos"> 82</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift-83"><a href="#Redshift-83"><span class="linenos"> 83</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 class="c1"># type: ignore</span> +</span><span id="Redshift-84"><a href="#Redshift-84"><span class="linenos"> 84</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_DISTINCT_ON</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Redshift-85"><a href="#Redshift-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="Redshift-86"><a href="#Redshift-86"><span class="linenos"> 86</span></a> <span class="s2">"DATEADD"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift-87"><a href="#Redshift-87"><span class="linenos"> 87</span></a> <span class="p">),</span> +</span><span id="Redshift-88"><a href="#Redshift-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="Redshift-89"><a href="#Redshift-89"><span class="linenos"> 89</span></a> <span class="s2">"DATEDIFF"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift-90"><a href="#Redshift-90"><span class="linenos"> 90</span></a> <span class="p">),</span> +</span><span id="Redshift-91"><a href="#Redshift-91"><span class="linenos"> 91</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="sa">f</span><span class="s2">"DISTKEY(</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Redshift-92"><a href="#Redshift-92"><span class="linenos"> 92</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-93"><a href="#Redshift-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> +</span><span id="Redshift-94"><a href="#Redshift-94"><span class="linenos"> 94</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 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-95"><a href="#Redshift-95"><span class="linenos"> 95</span></a> <span class="p">}</span> +</span><span id="Redshift-96"><a href="#Redshift-96"><span class="linenos"> 96</span></a> +</span><span id="Redshift-97"><a href="#Redshift-97"><span class="linenos"> 97</span></a> <span class="c1"># Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)</span> +</span><span id="Redshift-98"><a href="#Redshift-98"><span class="linenos"> 98</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-99"><a href="#Redshift-99"><span class="linenos"> 99</span></a> +</span><span id="Redshift-100"><a href="#Redshift-100"><span class="linenos">100</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift-101"><a href="#Redshift-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Redshift-102"><a href="#Redshift-102"><span class="linenos">102</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> +</span><span id="Redshift-103"><a href="#Redshift-103"><span class="linenos">103</span></a> +</span><span id="Redshift-104"><a href="#Redshift-104"><span class="linenos">104</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> +</span><span id="Redshift-105"><a href="#Redshift-105"><span class="linenos">105</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> +</span><span id="Redshift-106"><a href="#Redshift-106"><span class="linenos">106</span></a><span class="sd"> very slow.</span> +</span><span id="Redshift-107"><a href="#Redshift-107"><span class="linenos">107</span></a><span class="sd"> """</span> +</span><span id="Redshift-108"><a href="#Redshift-108"><span class="linenos">108</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> +</span><span id="Redshift-109"><a href="#Redshift-109"><span class="linenos">109</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</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">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> +</span><span id="Redshift-111"><a href="#Redshift-111"><span class="linenos">111</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Redshift-112"><a href="#Redshift-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> +</span><span id="Redshift-113"><a href="#Redshift-113"><span class="linenos">113</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="Redshift-114"><a href="#Redshift-114"><span class="linenos">114</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="Redshift-115"><a href="#Redshift-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> +</span><span id="Redshift-116"><a href="#Redshift-116"><span class="linenos">116</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> +</span><span id="Redshift-117"><a href="#Redshift-117"><span class="linenos">117</span></a> <span class="p">]</span> +</span><span id="Redshift-118"><a href="#Redshift-118"><span class="linenos">118</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> +</span><span id="Redshift-119"><a href="#Redshift-119"><span class="linenos">119</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Redshift-120"><a href="#Redshift-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Redshift-121"><a href="#Redshift-121"><span class="linenos">121</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="Redshift-122"><a href="#Redshift-122"><span class="linenos">122</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Redshift-123"><a href="#Redshift-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> +</span><span id="Redshift-124"><a href="#Redshift-124"><span class="linenos">124</span></a> +</span><span id="Redshift-125"><a href="#Redshift-125"><span class="linenos">125</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift-126"><a href="#Redshift-126"><span class="linenos">126</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> +</span><span id="Redshift-127"><a href="#Redshift-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</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="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift-130"><a href="#Redshift-130"><span class="linenos">130</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> +</span><span id="Redshift-131"><a href="#Redshift-131"><span class="linenos">131</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Redshift-132"><a href="#Redshift-132"><span class="linenos">132</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift-133"><a href="#Redshift-133"><span class="linenos">133</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Redshift-134"><a href="#Redshift-134"><span class="linenos">134</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> +</span><span id="Redshift-135"><a href="#Redshift-135"><span class="linenos">135</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Redshift-136"><a href="#Redshift-136"><span class="linenos">136</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Redshift-137"><a href="#Redshift-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Redshift-138"><a href="#Redshift-138"><span class="linenos">138</span></a> +</span><span id="Redshift-139"><a href="#Redshift-139"><span class="linenos">139</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-140"><a href="#Redshift-140"><span class="linenos">140</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Redshift-141"><a href="#Redshift-141"><span class="linenos">141</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-142"><a href="#Redshift-142"><span class="linenos">142</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-143"><a href="#Redshift-143"><span class="linenos">143</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-144"><a href="#Redshift-144"><span class="linenos">144</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> +</span><span id="Redshift-145"><a href="#Redshift-145"><span class="linenos">145</span></a><span class="sd"> """</span> +</span><span id="Redshift-146"><a href="#Redshift-146"><span class="linenos">146</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> +</span><span id="Redshift-147"><a href="#Redshift-147"><span class="linenos">147</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Redshift-148"><a href="#Redshift-148"><span class="linenos">148</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-149"><a href="#Redshift-149"><span class="linenos">149</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-150"><a href="#Redshift-150"><span class="linenos">150</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-151"><a href="#Redshift-151"><span class="linenos">151</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> +</span><span id="Redshift-152"><a href="#Redshift-152"><span class="linenos">152</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> @@ -388,6 +410,7 @@ <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.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> @@ -409,29 +432,34 @@ <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Parser-21"><a href="#Redshift.Parser-21"><span class="linenos">21</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-22"><a href="#Redshift.Parser-22"><span class="linenos">22</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Redshift.Parser-23"><a href="#Redshift.Parser-23"><span class="linenos">23</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 class="c1"># type: ignore</span> -</span><span id="Redshift.Parser-24"><a href="#Redshift.Parser-24"><span class="linenos">24</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Redshift.Parser-24"><a href="#Redshift.Parser-24"><span class="linenos">24</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> </span><span id="Redshift.Parser-25"><a href="#Redshift.Parser-25"><span class="linenos">25</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="Redshift.Parser-26"><a href="#Redshift.Parser-26"><span class="linenos">26</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-27"><a href="#Redshift.Parser-27"><span class="linenos">27</span></a> <span class="n">unit</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-28"><a href="#Redshift.Parser-28"><span class="linenos">28</span></a> <span class="p">),</span> -</span><span id="Redshift.Parser-29"><a href="#Redshift.Parser-29"><span class="linenos">29</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Redshift.Parser-30"><a href="#Redshift.Parser-30"><span class="linenos">30</span></a> <span class="s2">"NVL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Redshift.Parser-31"><a href="#Redshift.Parser-31"><span class="linenos">31</span></a> <span class="p">}</span> -</span><span id="Redshift.Parser-32"><a href="#Redshift.Parser-32"><span class="linenos">32</span></a> -</span><span id="Redshift.Parser-33"><a href="#Redshift.Parser-33"><span class="linenos">33</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Redshift.Parser-34"><a href="#Redshift.Parser-34"><span class="linenos">34</span></a> -</span><span id="Redshift.Parser-35"><a href="#Redshift.Parser-35"><span class="linenos">35</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-36"><a href="#Redshift.Parser-36"><span class="linenos">36</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(</span><span class="n">check_func</span><span class="o">=</span><span class="n">check_func</span><span class="p">)</span> +</span><span id="Redshift.Parser-29"><a href="#Redshift.Parser-29"><span class="linenos">29</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Redshift.Parser-30"><a href="#Redshift.Parser-30"><span class="linenos">30</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="Redshift.Parser-31"><a href="#Redshift.Parser-31"><span class="linenos">31</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-32"><a href="#Redshift.Parser-32"><span class="linenos">32</span></a> <span class="n">unit</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-33"><a href="#Redshift.Parser-33"><span class="linenos">33</span></a> <span class="p">),</span> +</span><span id="Redshift.Parser-34"><a href="#Redshift.Parser-34"><span class="linenos">34</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Redshift.Parser-35"><a href="#Redshift.Parser-35"><span class="linenos">35</span></a> <span class="s2">"NVL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Redshift.Parser-36"><a href="#Redshift.Parser-36"><span class="linenos">36</span></a> <span class="p">}</span> </span><span id="Redshift.Parser-37"><a href="#Redshift.Parser-37"><span class="linenos">37</span></a> -</span><span id="Redshift.Parser-38"><a href="#Redshift.Parser-38"><span class="linenos">38</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Redshift.Parser-39"><a href="#Redshift.Parser-39"><span class="linenos">39</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="Redshift.Parser-40"><a href="#Redshift.Parser-40"><span class="linenos">40</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">VARCHAR</span> -</span><span id="Redshift.Parser-41"><a href="#Redshift.Parser-41"><span class="linenos">41</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="Redshift.Parser-42"><a href="#Redshift.Parser-42"><span class="linenos">42</span></a> <span class="ow">and</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 class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">)</span> -</span><span id="Redshift.Parser-43"><a href="#Redshift.Parser-43"><span class="linenos">43</span></a> <span class="p">):</span> -</span><span id="Redshift.Parser-44"><a href="#Redshift.Parser-44"><span class="linenos">44</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">)])</span> -</span><span id="Redshift.Parser-45"><a href="#Redshift.Parser-45"><span class="linenos">45</span></a> -</span><span id="Redshift.Parser-46"><a href="#Redshift.Parser-46"><span class="linenos">46</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Redshift.Parser-38"><a href="#Redshift.Parser-38"><span class="linenos">38</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Redshift.Parser-39"><a href="#Redshift.Parser-39"><span class="linenos">39</span></a> +</span><span id="Redshift.Parser-40"><a href="#Redshift.Parser-40"><span class="linenos">40</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-41"><a href="#Redshift.Parser-41"><span class="linenos">41</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(</span><span class="n">check_func</span><span class="o">=</span><span class="n">check_func</span><span class="p">)</span> +</span><span id="Redshift.Parser-42"><a href="#Redshift.Parser-42"><span class="linenos">42</span></a> +</span><span id="Redshift.Parser-43"><a href="#Redshift.Parser-43"><span class="linenos">43</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Redshift.Parser-44"><a href="#Redshift.Parser-44"><span class="linenos">44</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="Redshift.Parser-45"><a href="#Redshift.Parser-45"><span class="linenos">45</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">VARCHAR</span> +</span><span id="Redshift.Parser-46"><a href="#Redshift.Parser-46"><span class="linenos">46</span></a> <span class="ow">and</span> <span class="n">this</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Redshift.Parser-47"><a href="#Redshift.Parser-47"><span class="linenos">47</span></a> <span class="ow">and</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 class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">)</span> +</span><span id="Redshift.Parser-48"><a href="#Redshift.Parser-48"><span class="linenos">48</span></a> <span class="p">):</span> +</span><span id="Redshift.Parser-49"><a href="#Redshift.Parser-49"><span class="linenos">49</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">)])</span> +</span><span id="Redshift.Parser-50"><a href="#Redshift.Parser-50"><span class="linenos">50</span></a> +</span><span id="Redshift.Parser-51"><a href="#Redshift.Parser-51"><span class="linenos">51</span></a> <span class="k">return</span> <span class="n">this</span> </span></pre></div> @@ -488,21 +516,21 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Redshift.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Tokenizer-48"><a href="#Redshift.Tokenizer-48"><span class="linenos">48</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-49"><a href="#Redshift.Tokenizer-49"><span class="linenos">49</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><span id="Redshift.Tokenizer-50"><a href="#Redshift.Tokenizer-50"><span class="linenos">50</span></a> -</span><span id="Redshift.Tokenizer-51"><a href="#Redshift.Tokenizer-51"><span class="linenos">51</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift.Tokenizer-52"><a href="#Redshift.Tokenizer-52"><span class="linenos">52</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 class="c1"># type: ignore</span> -</span><span id="Redshift.Tokenizer-53"><a href="#Redshift.Tokenizer-53"><span class="linenos">53</span></a> <span class="s2">"GEOMETRY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> -</span><span id="Redshift.Tokenizer-54"><a href="#Redshift.Tokenizer-54"><span class="linenos">54</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="Redshift.Tokenizer-55"><a href="#Redshift.Tokenizer-55"><span class="linenos">55</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-56"><a href="#Redshift.Tokenizer-56"><span class="linenos">56</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-57"><a href="#Redshift.Tokenizer-57"><span class="linenos">57</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Redshift.Tokenizer-58"><a href="#Redshift.Tokenizer-58"><span class="linenos">58</span></a> <span class="s2">"TIMETZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Redshift.Tokenizer-59"><a href="#Redshift.Tokenizer-59"><span class="linenos">59</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-60"><a href="#Redshift.Tokenizer-60"><span class="linenos">60</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-61"><a href="#Redshift.Tokenizer-61"><span class="linenos">61</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-62"><a href="#Redshift.Tokenizer-62"><span class="linenos">62</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Tokenizer-53"><a href="#Redshift.Tokenizer-53"><span class="linenos">53</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-54"><a href="#Redshift.Tokenizer-54"><span class="linenos">54</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><span id="Redshift.Tokenizer-55"><a href="#Redshift.Tokenizer-55"><span class="linenos">55</span></a> +</span><span id="Redshift.Tokenizer-56"><a href="#Redshift.Tokenizer-56"><span class="linenos">56</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift.Tokenizer-57"><a href="#Redshift.Tokenizer-57"><span class="linenos">57</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 class="c1"># type: ignore</span> +</span><span id="Redshift.Tokenizer-58"><a href="#Redshift.Tokenizer-58"><span class="linenos">58</span></a> <span class="s2">"GEOMETRY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> +</span><span id="Redshift.Tokenizer-59"><a href="#Redshift.Tokenizer-59"><span class="linenos">59</span></a> <span class="s2">"GEOGRAPHY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="Redshift.Tokenizer-60"><a href="#Redshift.Tokenizer-60"><span class="linenos">60</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-61"><a href="#Redshift.Tokenizer-61"><span class="linenos">61</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-62"><a href="#Redshift.Tokenizer-62"><span class="linenos">62</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Redshift.Tokenizer-63"><a href="#Redshift.Tokenizer-63"><span class="linenos">63</span></a> <span class="s2">"TIMETZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Redshift.Tokenizer-64"><a href="#Redshift.Tokenizer-64"><span class="linenos">64</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-65"><a href="#Redshift.Tokenizer-65"><span class="linenos">65</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-66"><a href="#Redshift.Tokenizer-66"><span class="linenos">66</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-67"><a href="#Redshift.Tokenizer-67"><span class="linenos">67</span></a> <span class="p">}</span> </span></pre></div> @@ -530,84 +558,90 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Redshift.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator-64"><a href="#Redshift.Generator-64"><span class="linenos"> 64</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-65"><a href="#Redshift.Generator-65"><span class="linenos"> 65</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift.Generator-66"><a href="#Redshift.Generator-66"><span class="linenos"> 66</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 class="c1"># type: ignore</span> -</span><span id="Redshift.Generator-67"><a href="#Redshift.Generator-67"><span class="linenos"> 67</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-68"><a href="#Redshift.Generator-68"><span class="linenos"> 68</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-69"><a href="#Redshift.Generator-69"><span class="linenos"> 69</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-70"><a href="#Redshift.Generator-70"><span class="linenos"> 70</span></a> <span class="p">}</span> -</span><span id="Redshift.Generator-71"><a href="#Redshift.Generator-71"><span class="linenos"> 71</span></a> -</span><span id="Redshift.Generator-72"><a href="#Redshift.Generator-72"><span class="linenos"> 72</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift.Generator-73"><a href="#Redshift.Generator-73"><span class="linenos"> 73</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">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Redshift.Generator-74"><a href="#Redshift.Generator-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator-69"><a href="#Redshift.Generator-69"><span class="linenos"> 69</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-70"><a href="#Redshift.Generator-70"><span class="linenos"> 70</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift.Generator-71"><a href="#Redshift.Generator-71"><span class="linenos"> 71</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 class="c1"># type: ignore</span> +</span><span id="Redshift.Generator-72"><a href="#Redshift.Generator-72"><span class="linenos"> 72</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-73"><a href="#Redshift.Generator-73"><span class="linenos"> 73</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-74"><a href="#Redshift.Generator-74"><span class="linenos"> 74</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-75"><a href="#Redshift.Generator-75"><span class="linenos"> 75</span></a> <span class="p">}</span> </span><span id="Redshift.Generator-76"><a href="#Redshift.Generator-76"><span class="linenos"> 76</span></a> -</span><span id="Redshift.Generator-77"><a href="#Redshift.Generator-77"><span class="linenos"> 77</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Redshift.Generator-78"><a href="#Redshift.Generator-78"><span class="linenos"> 78</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 class="c1"># type: ignore</span> -</span><span id="Redshift.Generator-79"><a href="#Redshift.Generator-79"><span class="linenos"> 79</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_DISTINCT_ON</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Redshift.Generator-80"><a href="#Redshift.Generator-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="Redshift.Generator-81"><a href="#Redshift.Generator-81"><span class="linenos"> 81</span></a> <span class="s2">"DATEDIFF"</span><span class="p">,</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">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> -</span><span id="Redshift.Generator-82"><a href="#Redshift.Generator-82"><span class="linenos"> 82</span></a> <span class="p">),</span> -</span><span id="Redshift.Generator-83"><a href="#Redshift.Generator-83"><span class="linenos"> 83</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="sa">f</span><span class="s2">"DISTKEY(</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Redshift.Generator-84"><a href="#Redshift.Generator-84"><span class="linenos"> 84</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 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-85"><a href="#Redshift.Generator-85"><span class="linenos"> 85</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-86"><a href="#Redshift.Generator-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> -</span><span id="Redshift.Generator-87"><a href="#Redshift.Generator-87"><span class="linenos"> 87</span></a> <span class="p">}</span> -</span><span id="Redshift.Generator-88"><a href="#Redshift.Generator-88"><span class="linenos"> 88</span></a> -</span><span id="Redshift.Generator-89"><a href="#Redshift.Generator-89"><span class="linenos"> 89</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift.Generator-90"><a href="#Redshift.Generator-90"><span class="linenos"> 90</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Redshift.Generator-91"><a href="#Redshift.Generator-91"><span class="linenos"> 91</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> -</span><span id="Redshift.Generator-92"><a href="#Redshift.Generator-92"><span class="linenos"> 92</span></a> -</span><span id="Redshift.Generator-93"><a href="#Redshift.Generator-93"><span class="linenos"> 93</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> -</span><span id="Redshift.Generator-94"><a href="#Redshift.Generator-94"><span class="linenos"> 94</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> -</span><span id="Redshift.Generator-95"><a href="#Redshift.Generator-95"><span class="linenos"> 95</span></a><span class="sd"> very slow.</span> -</span><span id="Redshift.Generator-96"><a href="#Redshift.Generator-96"><span class="linenos"> 96</span></a><span class="sd"> """</span> -</span><span id="Redshift.Generator-97"><a href="#Redshift.Generator-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> -</span><span id="Redshift.Generator-98"><a href="#Redshift.Generator-98"><span class="linenos"> 98</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Redshift.Generator-99"><a href="#Redshift.Generator-99"><span class="linenos"> 99</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> -</span><span id="Redshift.Generator-100"><a href="#Redshift.Generator-100"><span class="linenos">100</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Redshift.Generator-101"><a href="#Redshift.Generator-101"><span class="linenos">101</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> -</span><span id="Redshift.Generator-102"><a href="#Redshift.Generator-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="Redshift.Generator-103"><a href="#Redshift.Generator-103"><span class="linenos">103</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="Redshift.Generator-104"><a href="#Redshift.Generator-104"><span class="linenos">104</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> -</span><span id="Redshift.Generator-105"><a href="#Redshift.Generator-105"><span class="linenos">105</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> -</span><span id="Redshift.Generator-106"><a href="#Redshift.Generator-106"><span class="linenos">106</span></a> <span class="p">]</span> -</span><span id="Redshift.Generator-107"><a href="#Redshift.Generator-107"><span class="linenos">107</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> -</span><span id="Redshift.Generator-108"><a href="#Redshift.Generator-108"><span class="linenos">108</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Redshift.Generator-109"><a href="#Redshift.Generator-109"><span class="linenos">109</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Redshift.Generator-110"><a href="#Redshift.Generator-110"><span class="linenos">110</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="Redshift.Generator-111"><a href="#Redshift.Generator-111"><span class="linenos">111</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Redshift.Generator-112"><a href="#Redshift.Generator-112"><span class="linenos">112</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> -</span><span id="Redshift.Generator-113"><a href="#Redshift.Generator-113"><span class="linenos">113</span></a> -</span><span id="Redshift.Generator-114"><a href="#Redshift.Generator-114"><span class="linenos">114</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift.Generator-115"><a href="#Redshift.Generator-115"><span class="linenos">115</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> -</span><span id="Redshift.Generator-116"><a href="#Redshift.Generator-116"><span class="linenos">116</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> -</span><span id="Redshift.Generator-117"><a href="#Redshift.Generator-117"><span class="linenos">117</span></a> -</span><span id="Redshift.Generator-118"><a href="#Redshift.Generator-118"><span class="linenos">118</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift.Generator-119"><a href="#Redshift.Generator-119"><span class="linenos">119</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> -</span><span id="Redshift.Generator-120"><a href="#Redshift.Generator-120"><span class="linenos">120</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Redshift.Generator-121"><a href="#Redshift.Generator-121"><span class="linenos">121</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Redshift.Generator-122"><a href="#Redshift.Generator-122"><span class="linenos">122</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Redshift.Generator-123"><a href="#Redshift.Generator-123"><span class="linenos">123</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> -</span><span id="Redshift.Generator-124"><a href="#Redshift.Generator-124"><span class="linenos">124</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Redshift.Generator-125"><a href="#Redshift.Generator-125"><span class="linenos">125</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Redshift.Generator-126"><a href="#Redshift.Generator-126"><span class="linenos">126</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Redshift.Generator-127"><a href="#Redshift.Generator-127"><span class="linenos">127</span></a> -</span><span id="Redshift.Generator-128"><a href="#Redshift.Generator-128"><span class="linenos">128</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-129"><a href="#Redshift.Generator-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Redshift.Generator-130"><a href="#Redshift.Generator-130"><span class="linenos">130</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-131"><a href="#Redshift.Generator-131"><span class="linenos">131</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-132"><a href="#Redshift.Generator-132"><span class="linenos">132</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-133"><a href="#Redshift.Generator-133"><span class="linenos">133</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> -</span><span id="Redshift.Generator-134"><a href="#Redshift.Generator-134"><span class="linenos">134</span></a><span class="sd"> """</span> -</span><span id="Redshift.Generator-135"><a href="#Redshift.Generator-135"><span class="linenos">135</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="Redshift.Generator-136"><a href="#Redshift.Generator-136"><span class="linenos">136</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Redshift.Generator-137"><a href="#Redshift.Generator-137"><span class="linenos">137</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-138"><a href="#Redshift.Generator-138"><span class="linenos">138</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-139"><a href="#Redshift.Generator-139"><span class="linenos">139</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-140"><a href="#Redshift.Generator-140"><span class="linenos">140</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> -</span><span id="Redshift.Generator-141"><a href="#Redshift.Generator-141"><span class="linenos">141</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-77"><a href="#Redshift.Generator-77"><span class="linenos"> 77</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift.Generator-78"><a href="#Redshift.Generator-78"><span class="linenos"> 78</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">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Redshift.Generator-79"><a href="#Redshift.Generator-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Redshift.Generator-80"><a href="#Redshift.Generator-80"><span class="linenos"> 80</span></a> <span class="p">}</span> +</span><span id="Redshift.Generator-81"><a href="#Redshift.Generator-81"><span class="linenos"> 81</span></a> +</span><span id="Redshift.Generator-82"><a href="#Redshift.Generator-82"><span class="linenos"> 82</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Redshift.Generator-83"><a href="#Redshift.Generator-83"><span class="linenos"> 83</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 class="c1"># type: ignore</span> +</span><span id="Redshift.Generator-84"><a href="#Redshift.Generator-84"><span class="linenos"> 84</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_DISTINCT_ON</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Redshift.Generator-85"><a href="#Redshift.Generator-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="Redshift.Generator-86"><a href="#Redshift.Generator-86"><span class="linenos"> 86</span></a> <span class="s2">"DATEADD"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift.Generator-87"><a href="#Redshift.Generator-87"><span class="linenos"> 87</span></a> <span class="p">),</span> +</span><span id="Redshift.Generator-88"><a href="#Redshift.Generator-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</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><span id="Redshift.Generator-89"><a href="#Redshift.Generator-89"><span class="linenos"> 89</span></a> <span class="s2">"DATEDIFF"</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"day"</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="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift.Generator-90"><a href="#Redshift.Generator-90"><span class="linenos"> 90</span></a> <span class="p">),</span> +</span><span id="Redshift.Generator-91"><a href="#Redshift.Generator-91"><span class="linenos"> 91</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="sa">f</span><span class="s2">"DISTKEY(</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Redshift.Generator-92"><a href="#Redshift.Generator-92"><span class="linenos"> 92</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-93"><a href="#Redshift.Generator-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> +</span><span id="Redshift.Generator-94"><a href="#Redshift.Generator-94"><span class="linenos"> 94</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 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-95"><a href="#Redshift.Generator-95"><span class="linenos"> 95</span></a> <span class="p">}</span> +</span><span id="Redshift.Generator-96"><a href="#Redshift.Generator-96"><span class="linenos"> 96</span></a> +</span><span id="Redshift.Generator-97"><a href="#Redshift.Generator-97"><span class="linenos"> 97</span></a> <span class="c1"># Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres)</span> +</span><span id="Redshift.Generator-98"><a href="#Redshift.Generator-98"><span class="linenos"> 98</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-99"><a href="#Redshift.Generator-99"><span class="linenos"> 99</span></a> +</span><span id="Redshift.Generator-100"><a href="#Redshift.Generator-100"><span class="linenos">100</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift.Generator-101"><a href="#Redshift.Generator-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Redshift.Generator-102"><a href="#Redshift.Generator-102"><span class="linenos">102</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> +</span><span id="Redshift.Generator-103"><a href="#Redshift.Generator-103"><span class="linenos">103</span></a> +</span><span id="Redshift.Generator-104"><a href="#Redshift.Generator-104"><span class="linenos">104</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> +</span><span id="Redshift.Generator-105"><a href="#Redshift.Generator-105"><span class="linenos">105</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> +</span><span id="Redshift.Generator-106"><a href="#Redshift.Generator-106"><span class="linenos">106</span></a><span class="sd"> very slow.</span> +</span><span id="Redshift.Generator-107"><a href="#Redshift.Generator-107"><span class="linenos">107</span></a><span class="sd"> """</span> +</span><span id="Redshift.Generator-108"><a href="#Redshift.Generator-108"><span class="linenos">108</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> +</span><span id="Redshift.Generator-109"><a href="#Redshift.Generator-109"><span class="linenos">109</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Redshift.Generator-110"><a href="#Redshift.Generator-110"><span class="linenos">110</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> +</span><span id="Redshift.Generator-111"><a href="#Redshift.Generator-111"><span class="linenos">111</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Redshift.Generator-112"><a href="#Redshift.Generator-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> +</span><span id="Redshift.Generator-113"><a href="#Redshift.Generator-113"><span class="linenos">113</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="Redshift.Generator-114"><a href="#Redshift.Generator-114"><span class="linenos">114</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="Redshift.Generator-115"><a href="#Redshift.Generator-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> +</span><span id="Redshift.Generator-116"><a href="#Redshift.Generator-116"><span class="linenos">116</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> +</span><span id="Redshift.Generator-117"><a href="#Redshift.Generator-117"><span class="linenos">117</span></a> <span class="p">]</span> +</span><span id="Redshift.Generator-118"><a href="#Redshift.Generator-118"><span class="linenos">118</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> +</span><span id="Redshift.Generator-119"><a href="#Redshift.Generator-119"><span class="linenos">119</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Redshift.Generator-120"><a href="#Redshift.Generator-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Redshift.Generator-121"><a href="#Redshift.Generator-121"><span class="linenos">121</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="Redshift.Generator-122"><a href="#Redshift.Generator-122"><span class="linenos">122</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Redshift.Generator-123"><a href="#Redshift.Generator-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> +</span><span id="Redshift.Generator-124"><a href="#Redshift.Generator-124"><span class="linenos">124</span></a> +</span><span id="Redshift.Generator-125"><a href="#Redshift.Generator-125"><span class="linenos">125</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift.Generator-126"><a href="#Redshift.Generator-126"><span class="linenos">126</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> +</span><span id="Redshift.Generator-127"><a href="#Redshift.Generator-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> +</span><span id="Redshift.Generator-128"><a href="#Redshift.Generator-128"><span class="linenos">128</span></a> +</span><span id="Redshift.Generator-129"><a href="#Redshift.Generator-129"><span class="linenos">129</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift.Generator-130"><a href="#Redshift.Generator-130"><span class="linenos">130</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> +</span><span id="Redshift.Generator-131"><a href="#Redshift.Generator-131"><span class="linenos">131</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Redshift.Generator-132"><a href="#Redshift.Generator-132"><span class="linenos">132</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift.Generator-133"><a href="#Redshift.Generator-133"><span class="linenos">133</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Redshift.Generator-134"><a href="#Redshift.Generator-134"><span class="linenos">134</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> +</span><span id="Redshift.Generator-135"><a href="#Redshift.Generator-135"><span class="linenos">135</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Redshift.Generator-136"><a href="#Redshift.Generator-136"><span class="linenos">136</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Redshift.Generator-137"><a href="#Redshift.Generator-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Redshift.Generator-138"><a href="#Redshift.Generator-138"><span class="linenos">138</span></a> +</span><span id="Redshift.Generator-139"><a href="#Redshift.Generator-139"><span class="linenos">139</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-140"><a href="#Redshift.Generator-140"><span class="linenos">140</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Redshift.Generator-141"><a href="#Redshift.Generator-141"><span class="linenos">141</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-142"><a href="#Redshift.Generator-142"><span class="linenos">142</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-143"><a href="#Redshift.Generator-143"><span class="linenos">143</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-144"><a href="#Redshift.Generator-144"><span class="linenos">144</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> +</span><span id="Redshift.Generator-145"><a href="#Redshift.Generator-145"><span class="linenos">145</span></a><span class="sd"> """</span> +</span><span id="Redshift.Generator-146"><a href="#Redshift.Generator-146"><span class="linenos">146</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</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">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Redshift.Generator-148"><a href="#Redshift.Generator-148"><span class="linenos">148</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-149"><a href="#Redshift.Generator-149"><span class="linenos">149</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-150"><a href="#Redshift.Generator-150"><span class="linenos">150</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-151"><a href="#Redshift.Generator-151"><span class="linenos">151</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> +</span><span id="Redshift.Generator-152"><a href="#Redshift.Generator-152"><span class="linenos">152</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> @@ -624,8 +658,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -667,30 +700,30 @@ Default: True</li> </div> <a class="headerlink" href="#Redshift.Generator.values_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.values_sql-89"><a href="#Redshift.Generator.values_sql-89"><span class="linenos"> 89</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift.Generator.values_sql-90"><a href="#Redshift.Generator.values_sql-90"><span class="linenos"> 90</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Redshift.Generator.values_sql-91"><a href="#Redshift.Generator.values_sql-91"><span class="linenos"> 91</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> -</span><span id="Redshift.Generator.values_sql-92"><a href="#Redshift.Generator.values_sql-92"><span class="linenos"> 92</span></a> -</span><span id="Redshift.Generator.values_sql-93"><a href="#Redshift.Generator.values_sql-93"><span class="linenos"> 93</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> -</span><span id="Redshift.Generator.values_sql-94"><a href="#Redshift.Generator.values_sql-94"><span class="linenos"> 94</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> -</span><span id="Redshift.Generator.values_sql-95"><a href="#Redshift.Generator.values_sql-95"><span class="linenos"> 95</span></a><span class="sd"> very slow.</span> -</span><span id="Redshift.Generator.values_sql-96"><a href="#Redshift.Generator.values_sql-96"><span class="linenos"> 96</span></a><span class="sd"> """</span> -</span><span id="Redshift.Generator.values_sql-97"><a href="#Redshift.Generator.values_sql-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> -</span><span id="Redshift.Generator.values_sql-98"><a href="#Redshift.Generator.values_sql-98"><span class="linenos"> 98</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Redshift.Generator.values_sql-99"><a href="#Redshift.Generator.values_sql-99"><span class="linenos"> 99</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> -</span><span id="Redshift.Generator.values_sql-100"><a href="#Redshift.Generator.values_sql-100"><span class="linenos">100</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Redshift.Generator.values_sql-101"><a href="#Redshift.Generator.values_sql-101"><span class="linenos">101</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> -</span><span id="Redshift.Generator.values_sql-102"><a href="#Redshift.Generator.values_sql-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="Redshift.Generator.values_sql-103"><a href="#Redshift.Generator.values_sql-103"><span class="linenos">103</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="Redshift.Generator.values_sql-104"><a href="#Redshift.Generator.values_sql-104"><span class="linenos">104</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> -</span><span id="Redshift.Generator.values_sql-105"><a href="#Redshift.Generator.values_sql-105"><span class="linenos">105</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> -</span><span id="Redshift.Generator.values_sql-106"><a href="#Redshift.Generator.values_sql-106"><span class="linenos">106</span></a> <span class="p">]</span> -</span><span id="Redshift.Generator.values_sql-107"><a href="#Redshift.Generator.values_sql-107"><span class="linenos">107</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> -</span><span id="Redshift.Generator.values_sql-108"><a href="#Redshift.Generator.values_sql-108"><span class="linenos">108</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Redshift.Generator.values_sql-109"><a href="#Redshift.Generator.values_sql-109"><span class="linenos">109</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Redshift.Generator.values_sql-110"><a href="#Redshift.Generator.values_sql-110"><span class="linenos">110</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="Redshift.Generator.values_sql-111"><a href="#Redshift.Generator.values_sql-111"><span class="linenos">111</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Redshift.Generator.values_sql-112"><a href="#Redshift.Generator.values_sql-112"><span class="linenos">112</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.values_sql-100"><a href="#Redshift.Generator.values_sql-100"><span class="linenos">100</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift.Generator.values_sql-101"><a href="#Redshift.Generator.values_sql-101"><span class="linenos">101</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Redshift.Generator.values_sql-102"><a href="#Redshift.Generator.values_sql-102"><span class="linenos">102</span></a><span class="sd"> Converts `VALUES...` expression into a series of unions.</span> +</span><span id="Redshift.Generator.values_sql-103"><a href="#Redshift.Generator.values_sql-103"><span class="linenos">103</span></a> +</span><span id="Redshift.Generator.values_sql-104"><a href="#Redshift.Generator.values_sql-104"><span class="linenos">104</span></a><span class="sd"> Note: If you have a lot of unions then this will result in a large number of recursive statements to</span> +</span><span id="Redshift.Generator.values_sql-105"><a href="#Redshift.Generator.values_sql-105"><span class="linenos">105</span></a><span class="sd"> evaluate the expression. You may need to increase `sys.setrecursionlimit` to run and it can also be</span> +</span><span id="Redshift.Generator.values_sql-106"><a href="#Redshift.Generator.values_sql-106"><span class="linenos">106</span></a><span class="sd"> very slow.</span> +</span><span id="Redshift.Generator.values_sql-107"><a href="#Redshift.Generator.values_sql-107"><span class="linenos">107</span></a><span class="sd"> """</span> +</span><span id="Redshift.Generator.values_sql-108"><a href="#Redshift.Generator.values_sql-108"><span class="linenos">108</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">):</span> +</span><span id="Redshift.Generator.values_sql-109"><a href="#Redshift.Generator.values_sql-109"><span class="linenos">109</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Redshift.Generator.values_sql-110"><a href="#Redshift.Generator.values_sql-110"><span class="linenos">110</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="p">[</span><span class="n">tuple_exp</span><span class="o">.</span><span class="n">expressions</span> <span class="k">for</span> <span class="n">tuple_exp</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">]</span> +</span><span id="Redshift.Generator.values_sql-111"><a href="#Redshift.Generator.values_sql-111"><span class="linenos">111</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Redshift.Generator.values_sql-112"><a href="#Redshift.Generator.values_sql-112"><span class="linenos">112</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">rows</span><span class="p">):</span> +</span><span id="Redshift.Generator.values_sql-113"><a href="#Redshift.Generator.values_sql-113"><span class="linenos">113</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="Redshift.Generator.values_sql-114"><a href="#Redshift.Generator.values_sql-114"><span class="linenos">114</span></a> <span class="n">row</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="Redshift.Generator.values_sql-115"><a href="#Redshift.Generator.values_sql-115"><span class="linenos">115</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">column_name</span><span class="p">)</span> +</span><span id="Redshift.Generator.values_sql-116"><a href="#Redshift.Generator.values_sql-116"><span class="linenos">116</span></a> <span class="k">for</span> <span class="n">value</span><span class="p">,</span> <span class="n">column_name</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">row</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"columns"</span><span class="p">])</span> +</span><span id="Redshift.Generator.values_sql-117"><a href="#Redshift.Generator.values_sql-117"><span class="linenos">117</span></a> <span class="p">]</span> +</span><span id="Redshift.Generator.values_sql-118"><a href="#Redshift.Generator.values_sql-118"><span class="linenos">118</span></a> <span class="n">selects</span><span class="o">.</span><span class="n">append</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">expressions</span><span class="o">=</span><span class="n">row</span><span class="p">))</span> +</span><span id="Redshift.Generator.values_sql-119"><a href="#Redshift.Generator.values_sql-119"><span class="linenos">119</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">selects</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Redshift.Generator.values_sql-120"><a href="#Redshift.Generator.values_sql-120"><span class="linenos">120</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">selects</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Redshift.Generator.values_sql-121"><a href="#Redshift.Generator.values_sql-121"><span class="linenos">121</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">selects</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="Redshift.Generator.values_sql-122"><a href="#Redshift.Generator.values_sql-122"><span class="linenos">122</span></a> <span class="n">subquery_expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">union</span><span class="p">(</span><span class="n">subquery_expression</span><span class="p">,</span> <span class="n">select</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Redshift.Generator.values_sql-123"><a href="#Redshift.Generator.values_sql-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_sql</span><span class="p">(</span><span class="n">subquery_expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">))</span> </span></pre></div> @@ -714,9 +747,9 @@ very slow.</p> </div> <a class="headerlink" href="#Redshift.Generator.with_properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.with_properties-114"><a href="#Redshift.Generator.with_properties-114"><span class="linenos">114</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift.Generator.with_properties-115"><a href="#Redshift.Generator.with_properties-115"><span class="linenos">115</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> -</span><span id="Redshift.Generator.with_properties-116"><a href="#Redshift.Generator.with_properties-116"><span class="linenos">116</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.with_properties-125"><a href="#Redshift.Generator.with_properties-125"><span class="linenos">125</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift.Generator.with_properties-126"><a href="#Redshift.Generator.with_properties-126"><span class="linenos">126</span></a><span class="w"> </span><span class="sd">"""Redshift doesn't have `WITH` as part of their with_properties so we remove it"""</span> +</span><span id="Redshift.Generator.with_properties-127"><a href="#Redshift.Generator.with_properties-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span> </span></pre></div> @@ -736,15 +769,15 @@ very slow.</p> </div> <a class="headerlink" href="#Redshift.Generator.renametable_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.renametable_sql-118"><a href="#Redshift.Generator.renametable_sql-118"><span class="linenos">118</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Redshift.Generator.renametable_sql-119"><a href="#Redshift.Generator.renametable_sql-119"><span class="linenos">119</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> -</span><span id="Redshift.Generator.renametable_sql-120"><a href="#Redshift.Generator.renametable_sql-120"><span class="linenos">120</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Redshift.Generator.renametable_sql-121"><a href="#Redshift.Generator.renametable_sql-121"><span class="linenos">121</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Redshift.Generator.renametable_sql-122"><a href="#Redshift.Generator.renametable_sql-122"><span class="linenos">122</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Redshift.Generator.renametable_sql-123"><a href="#Redshift.Generator.renametable_sql-123"><span class="linenos">123</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> -</span><span id="Redshift.Generator.renametable_sql-124"><a href="#Redshift.Generator.renametable_sql-124"><span class="linenos">124</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Redshift.Generator.renametable_sql-125"><a href="#Redshift.Generator.renametable_sql-125"><span class="linenos">125</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Redshift.Generator.renametable_sql-126"><a href="#Redshift.Generator.renametable_sql-126"><span class="linenos">126</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.renametable_sql-129"><a href="#Redshift.Generator.renametable_sql-129"><span class="linenos">129</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Redshift.Generator.renametable_sql-130"><a href="#Redshift.Generator.renametable_sql-130"><span class="linenos">130</span></a><span class="w"> </span><span class="sd">"""Redshift only supports defining the table name itself (not the db) when renaming tables"""</span> +</span><span id="Redshift.Generator.renametable_sql-131"><a href="#Redshift.Generator.renametable_sql-131"><span class="linenos">131</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Redshift.Generator.renametable_sql-132"><a href="#Redshift.Generator.renametable_sql-132"><span class="linenos">132</span></a> <span class="n">target_table</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Redshift.Generator.renametable_sql-133"><a href="#Redshift.Generator.renametable_sql-133"><span class="linenos">133</span></a> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">target_table</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Redshift.Generator.renametable_sql-134"><a href="#Redshift.Generator.renametable_sql-134"><span class="linenos">134</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="o">!=</span> <span class="s2">"this"</span><span class="p">:</span> +</span><span id="Redshift.Generator.renametable_sql-135"><a href="#Redshift.Generator.renametable_sql-135"><span class="linenos">135</span></a> <span class="n">target_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Redshift.Generator.renametable_sql-136"><a href="#Redshift.Generator.renametable_sql-136"><span class="linenos">136</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Redshift.Generator.renametable_sql-137"><a href="#Redshift.Generator.renametable_sql-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -764,20 +797,20 @@ very slow.</p> </div> <a class="headerlink" href="#Redshift.Generator.datatype_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.datatype_sql-128"><a href="#Redshift.Generator.datatype_sql-128"><span class="linenos">128</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-129"><a href="#Redshift.Generator.datatype_sql-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Redshift.Generator.datatype_sql-130"><a href="#Redshift.Generator.datatype_sql-130"><span class="linenos">130</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-131"><a href="#Redshift.Generator.datatype_sql-131"><span class="linenos">131</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-132"><a href="#Redshift.Generator.datatype_sql-132"><span class="linenos">132</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-133"><a href="#Redshift.Generator.datatype_sql-133"><span class="linenos">133</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> -</span><span id="Redshift.Generator.datatype_sql-134"><a href="#Redshift.Generator.datatype_sql-134"><span class="linenos">134</span></a><span class="sd"> """</span> -</span><span id="Redshift.Generator.datatype_sql-135"><a href="#Redshift.Generator.datatype_sql-135"><span class="linenos">135</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="Redshift.Generator.datatype_sql-136"><a href="#Redshift.Generator.datatype_sql-136"><span class="linenos">136</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Redshift.Generator.datatype_sql-137"><a href="#Redshift.Generator.datatype_sql-137"><span class="linenos">137</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-138"><a href="#Redshift.Generator.datatype_sql-138"><span class="linenos">138</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-139"><a href="#Redshift.Generator.datatype_sql-139"><span class="linenos">139</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-140"><a href="#Redshift.Generator.datatype_sql-140"><span class="linenos">140</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> -</span><span id="Redshift.Generator.datatype_sql-141"><a href="#Redshift.Generator.datatype_sql-141"><span class="linenos">141</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Redshift.Generator.datatype_sql-139"><a href="#Redshift.Generator.datatype_sql-139"><span class="linenos">139</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-140"><a href="#Redshift.Generator.datatype_sql-140"><span class="linenos">140</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Redshift.Generator.datatype_sql-141"><a href="#Redshift.Generator.datatype_sql-141"><span class="linenos">141</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-142"><a href="#Redshift.Generator.datatype_sql-142"><span class="linenos">142</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-143"><a href="#Redshift.Generator.datatype_sql-143"><span class="linenos">143</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-144"><a href="#Redshift.Generator.datatype_sql-144"><span class="linenos">144</span></a><span class="sd"> `TEXT` to `VARCHAR`.</span> +</span><span id="Redshift.Generator.datatype_sql-145"><a href="#Redshift.Generator.datatype_sql-145"><span class="linenos">145</span></a><span class="sd"> """</span> +</span><span id="Redshift.Generator.datatype_sql-146"><a href="#Redshift.Generator.datatype_sql-146"><span class="linenos">146</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> +</span><span id="Redshift.Generator.datatype_sql-147"><a href="#Redshift.Generator.datatype_sql-147"><span class="linenos">147</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Redshift.Generator.datatype_sql-148"><a href="#Redshift.Generator.datatype_sql-148"><span class="linenos">148</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-149"><a href="#Redshift.Generator.datatype_sql-149"><span class="linenos">149</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-150"><a href="#Redshift.Generator.datatype_sql-150"><span class="linenos">150</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-151"><a href="#Redshift.Generator.datatype_sql-151"><span class="linenos">151</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="n">this</span><span class="o">=</span><span class="s2">"MAX"</span><span class="p">))</span> +</span><span id="Redshift.Generator.datatype_sql-152"><a href="#Redshift.Generator.datatype_sql-152"><span class="linenos">152</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> @@ -876,6 +909,8 @@ without precision we convert it to <code>VARCHAR(max)</code> and if it does have <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.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.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -959,7 +994,6 @@ without precision we convert it to <code>VARCHAR(max)</code> and if it does have <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.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_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> @@ -1001,6 +1035,7 @@ without precision we convert it to <code>VARCHAR(max)</code> and if it does have <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> </div> </dl> diff --git a/docs/sqlglot/dialects/snowflake.html b/docs/sqlglot/dialects/snowflake.html index 17ce505..0ac6420 100644 --- a/docs/sqlglot/dialects/snowflake.html +++ b/docs/sqlglot/dialects/snowflake.html @@ -111,282 +111,282 @@ </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">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</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">Dialect</span><span class="p">,</span> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">format_time_lambda</span><span class="p">,</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">rename_func</span><span class="p">,</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">ts_or_ds_to_date_sql</span><span class="p">,</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">var_map_sql</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.expressions</span> <span class="kn">import</span> <span class="n">Literal</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">flatten</span><span class="p">,</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.parser</span> <span class="kn">import</span> <span class="n">binary_range_parser</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.tokens</span> <span class="kn">import</span> <span class="n">TokenType</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><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="k">def</span> <span class="nf">_check_int</span><span class="p">(</span><span class="n">s</span><span class="p">):</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="k">if</span> <span class="n">s</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">):</span> -</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="k">return</span> <span class="n">s</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">return</span> <span class="n">s</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="c1"># from https://docs.snowflake.com/en/sql-reference/functions/to_timestamp.html</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="k">def</span> <span class="nf">_snowflake_to_timestamp</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="n">first_arg</span><span class="p">,</span> <span class="n">second_arg</span> <span class="o">=</span> <span class="n">args</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="k">if</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="c1"># case: <string_expr> [ , <format> ]</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="k">return</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"snowflake"</span><span class="p">)(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="c1"># case: <numeric_expr> [ , <scale> ]</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="k">if</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">"0"</span><span class="p">,</span> <span class="s2">"3"</span><span class="p">,</span> <span class="s2">"9"</span><span class="p">]:</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="sa">f</span><span class="s2">"Scale for snowflake numeric timestamp is </span><span class="si">{</span><span class="n">second_arg</span><span class="si">}</span><span class="s2">, but should be 0, 3, or 9"</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="p">)</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">if</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">timescale</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">SECONDS</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="k">elif</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"3"</span><span class="p">:</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">timescale</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MILLIS</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">elif</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"9"</span><span class="p">:</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">timescale</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MICROS</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">timescale</span><span class="p">)</span> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">format_time_lambda</span><span class="p">,</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">rename_func</span><span class="p">,</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">ts_or_ds_to_date_sql</span><span class="p">,</span> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> <span class="n">var_map_sql</span><span class="p">,</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="p">)</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.expressions</span> <span class="kn">import</span> <span class="n">Literal</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.helper</span> <span class="kn">import</span> <span class="n">flatten</span><span class="p">,</span> <span class="n">seq_get</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="kn">from</span> <span class="nn">sqlglot.parser</span> <span class="kn">import</span> <span class="n">binary_range_parser</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</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-23"><a href="#L-23"><span class="linenos"> 23</span></a> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> +</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="k">def</span> <span class="nf">_check_int</span><span class="p">(</span><span class="n">s</span><span class="p">):</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">if</span> <span class="n">s</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">):</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="k">return</span> <span class="n">s</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="k">return</span> <span class="n">s</span><span class="o">.</span><span class="n">isdigit</span><span class="p">()</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="c1"># from https://docs.snowflake.com/en/sql-reference/functions/to_timestamp.html</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="k">def</span> <span class="nf">_snowflake_to_timestamp</span><span class="p">(</span><span class="n">args</span><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="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">first_arg</span><span class="p">,</span> <span class="n">second_arg</span> <span class="o">=</span> <span class="n">args</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="k">if</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="c1"># case: <string_expr> [ , <format> ]</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="k">return</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"snowflake"</span><span class="p">)(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="c1"># case: <numeric_expr> [ , <scale> ]</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">if</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">"0"</span><span class="p">,</span> <span class="s2">"3"</span><span class="p">,</span> <span class="s2">"9"</span><span class="p">]:</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="sa">f</span><span class="s2">"Scale for snowflake numeric timestamp is </span><span class="si">{</span><span class="n">second_arg</span><span class="si">}</span><span class="s2">, but should be 0, 3, or 9"</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="p">)</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="k">if</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">timescale</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">SECONDS</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">elif</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"3"</span><span class="p">:</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">timescale</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MILLIS</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="k">elif</span> <span class="n">second_arg</span><span class="o">.</span><span class="n">name</span> <span class="o">==</span> <span class="s2">"9"</span><span class="p">:</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="n">timescale</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MICROS</span> </span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">first_arg</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-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="c1"># case: <variant_expr></span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">return</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"snowflake"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">if</span> <span class="n">first_arg</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">if</span> <span class="n">_check_int</span><span class="p">(</span><span class="n">first_arg</span><span class="o">.</span><span class="n">this</span><span class="p">):</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="c1"># case: <integer></span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="c1"># case: <date_expr></span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="k">return</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"snowflake"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="c1"># case: <numeric_expr></span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="k">def</span> <span class="nf">_unix_to_time_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><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">scale</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">"scale"</span><span class="p">)</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">timestamp</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">"this"</span><span class="p">)</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="k">if</span> <span class="n">scale</span> <span class="ow">in</span> <span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">SECONDS</span><span class="p">]:</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</span><span class="si">{</span><span class="n">timestamp</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">if</span> <span class="n">scale</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MILLIS</span><span class="p">:</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</span><span class="si">{</span><span class="n">timestamp</span><span class="si">}</span><span class="s2">, 3)"</span> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">if</span> <span class="n">scale</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MICROS</span><span class="p">:</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</span><span class="si">{</span><span class="n">timestamp</span><span class="si">}</span><span class="s2">, 9)"</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Improper scale for timestamp"</span><span class="p">)</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">scale</span><span class="o">=</span><span class="n">timescale</span><span class="p">)</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">first_arg</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-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">first_arg</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="c1"># case: <variant_expr></span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">return</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"snowflake"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">if</span> <span class="n">first_arg</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">if</span> <span class="n">_check_int</span><span class="p">(</span><span class="n">first_arg</span><span class="o">.</span><span class="n">this</span><span class="p">):</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="c1"># case: <integer></span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="c1"># case: <date_expr></span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="k">return</span> <span class="n">format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</span><span class="p">,</span> <span class="s2">"snowflake"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="c1"># case: <numeric_expr></span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="k">def</span> <span class="nf">_unix_to_time_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><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">scale</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">"scale"</span><span class="p">)</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">timestamp</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">"this"</span><span class="p">)</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">if</span> <span class="n">scale</span> <span class="ow">in</span> <span class="p">[</span><span class="kc">None</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">SECONDS</span><span class="p">]:</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</span><span class="si">{</span><span class="n">timestamp</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">if</span> <span class="n">scale</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MILLIS</span><span class="p">:</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</span><span class="si">{</span><span class="n">timestamp</span><span class="si">}</span><span class="s2">, 3)"</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">if</span> <span class="n">scale</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="o">.</span><span class="n">MICROS</span><span class="p">:</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TO_TIMESTAMP(</span><span class="si">{</span><span class="n">timestamp</span><span class="si">}</span><span class="s2">, 9)"</span> </span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/date_part.html</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions-date-time.html#label-supported-date-time-parts</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="k">def</span> <span class="nf">_parse_date_part</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</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="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-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">expression</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-88"><a href="#L-88"><span class="linenos"> 88</span></a> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">):</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH_MILLISECOND"</span><span class="p">):</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span><span class="o">**</span><span class="mi">3</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH_MICROSECOND"</span><span class="p">):</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span><span class="o">**</span><span class="mi">6</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH_NANOSECOND"</span><span class="p">):</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span><span class="o">**</span><span class="mi">9</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">ts</span> <span class="o">=</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">Cast</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">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-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">to_unix</span> <span class="o">=</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">TimeToUnix</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">if</span> <span class="n">scale</span><span class="p">:</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">to_unix</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_unix</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">scale</span><span class="p">))</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">return</span> <span class="n">to_unix</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Improper scale for timestamp"</span><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><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/date_part.html</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions-date-time.html#label-supported-date-time-parts</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="k">def</span> <span class="nf">_parse_date_part</span><span class="p">(</span><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">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">()</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</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-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">expression</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-90"><a href="#L-90"><span class="linenos"> 90</span></a> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH"</span><span class="p">):</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">if</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH_MILLISECOND"</span><span class="p">):</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span><span class="o">**</span><span class="mi">3</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH_MICROSECOND"</span><span class="p">):</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span><span class="o">**</span><span class="mi">6</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">elif</span> <span class="n">name</span><span class="o">.</span><span class="n">startswith</span><span class="p">(</span><span class="s2">"EPOCH_NANOSECOND"</span><span class="p">):</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="mi">10</span><span class="o">**</span><span class="mi">9</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">scale</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">ts</span> <span class="o">=</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">Cast</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">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-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">to_unix</span> <span class="o">=</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">TimeToUnix</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">ts</span><span class="p">)</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">if</span> <span class="n">scale</span><span class="p">:</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">to_unix</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_unix</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">scale</span><span class="p">))</span> </span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">return</span> <span class="n">to_unix</span> </span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/div0</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="k">def</span> <span class="nf">_div0_to_if</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">true</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">false</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">FloatDiv</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">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><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">cond</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">true</span><span class="p">,</span> <span class="n">false</span><span class="o">=</span><span class="n">false</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><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/zeroifnull</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a><span class="k">def</span> <span class="nf">_zeroifnull_to_if</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Is</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">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">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">cond</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">false</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-123"><a href="#L-123"><span class="linenos">123</span></a> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/zeroifnull</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a><span class="k">def</span> <span class="nf">_nullifzero_to_if</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">cond</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">(),</span> <span class="n">false</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-129"><a href="#L-129"><span class="linenos">129</span></a> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</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><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">:</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="k">return</span> <span class="s2">"ARRAY"</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">MAP</span><span class="p">:</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="s2">"OBJECT"</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="bp">self</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-137"><a href="#L-137"><span class="linenos">137</span></a> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="k">class</span> <span class="nc">Snowflake</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_large"</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</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-142"><a href="#L-142"><span class="linenos">142</span></a> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"mmmm"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"MON"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"mon"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="s2">"DY"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"HH24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"hh24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="s2">"HH12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="s2">"hh12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"MI"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"SS"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"FF"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="s2">"ff"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="s2">"FF6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="s2">"ff6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="p">}</span> -</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="o">**</span><span class="n">parser</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-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"ARRAYAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"ARRAY_TO_STRING"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</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-180"><a href="#L-180"><span class="linenos">180</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-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="n">unit</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-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="p">),</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</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-185"><a href="#L-185"><span class="linenos">185</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-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="n">unit</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-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="p">),</span> -</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</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">1</span><span class="p">),</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/div0</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a><span class="k">def</span> <span class="nf">_div0_to_if</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</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">args</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">true</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">false</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Div</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">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><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">cond</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">true</span><span class="p">,</span> <span class="n">false</span><span class="o">=</span><span class="n">false</span><span class="p">)</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/zeroifnull</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a><span class="k">def</span> <span class="nf">_zeroifnull_to_if</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Is</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">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">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">cond</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">),</span> <span class="n">false</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-125"><a href="#L-125"><span class="linenos">125</span></a> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/zeroifnull</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="k">def</span> <span class="nf">_nullifzero_to_if</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="n">cond</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">))</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">cond</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">(),</span> <span class="n">false</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-131"><a href="#L-131"><span class="linenos">131</span></a> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</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><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">:</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="s2">"ARRAY"</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">MAP</span><span class="p">:</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="s2">"OBJECT"</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="k">return</span> <span class="bp">self</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-139"><a href="#L-139"><span class="linenos">139</span></a> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="k">class</span> <span class="nc">Snowflake</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_large"</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</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-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="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"mmmm"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"MON"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"mon"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"DY"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="s2">"HH24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="s2">"hh24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"HH12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"hh12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"MI"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"SS"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="s2">"FF"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="s2">"ff"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="s2">"FF6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="s2">"ff6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</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="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="o">**</span><span class="n">parser</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-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="s2">"ARRAYAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="s2">"ARRAY_CONSTRUCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="s2">"ARRAY_TO_STRING"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">:</span> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</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-184"><a href="#L-184"><span class="linenos">184</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-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="n">unit</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-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="p">),</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</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-189"><a href="#L-189"><span class="linenos">189</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-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="n">unit</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-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="p">),</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"DIV0"</span><span class="p">:</span> <span class="n">_div0_to_if</span><span class="p">,</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="s2">"IFF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="s2">"TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_snowflake_to_timestamp</span><span class="p">,</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"ARRAY_CONSTRUCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="s2">"DIV0"</span><span class="p">:</span> <span class="n">_div0_to_if</span><span class="p">,</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="s2">"IFF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="s2">"NULLIFZERO"</span><span class="p">:</span> <span class="n">_nullifzero_to_if</span><span class="p">,</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">:</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_var_map</span><span class="p">,</span> </span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">:</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"ZEROIFNULL"</span><span class="p">:</span> <span class="n">_zeroifnull_to_if</span><span class="p">,</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"NULLIFZERO"</span><span class="p">:</span> <span class="n">_nullifzero_to_if</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><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"DATE_PART"</span><span class="p">:</span> <span class="n">_parse_date_part</span><span class="p">,</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="p">}</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</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="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Bracket</span><span class="p">,</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">path</span><span class="p">],</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="p">),</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <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="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LikeAny</span><span class="p">),</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILikeAny</span><span class="p">),</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="p">}</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"UNSET"</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_alter_table_set_tag</span><span class="p">(</span><span class="n">unset</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"SET"</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_alter_table_set_tag</span><span class="p">(),</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="p">}</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_set_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unset</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TAG"</span><span class="p">)</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span> <span class="k">if</span> <span class="n">unset</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</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">SetTag</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parser</span><span class="p">),</span> <span class="n">unset</span><span class="o">=</span><span class="n">unset</span><span class="p">)</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">"$$"</span><span class="p">]</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</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-247"><a href="#L-247"><span class="linenos">247</span></a> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">tokens</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-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"EXCLUDE"</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-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"ILIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">,</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"LIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">,</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"PUT"</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-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"RENAME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"TIMESTAMP_LTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"TIMESTAMP_NTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"TIMESTAMP_TZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</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-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">"SAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="p">}</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="o">**</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="p">}</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_CAT"</span><span class="p">),</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_TO_STRING"</span><span class="p">),</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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">"DATEADD"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IFF"</span><span class="p">),</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"TO_VARCHAR"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_snowflake_to_timestamp</span><span class="p">,</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="s2">"ZEROIFNULL"</span><span class="p">:</span> <span class="n">_zeroifnull_to_if</span><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><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"DATE_PART"</span><span class="p">:</span> <span class="n">_parse_date_part</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="p">}</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="p">}</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Bracket</span><span class="p">,</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">path</span><span class="p">],</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="p">),</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="p">}</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LikeAny</span><span class="p">),</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILikeAny</span><span class="p">),</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="p">}</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"UNSET"</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_alter_table_set_tag</span><span class="p">(</span><span class="n">unset</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"SET"</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_alter_table_set_tag</span><span class="p">(),</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="p">}</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_set_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unset</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TAG"</span><span class="p">)</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span> <span class="k">if</span> <span class="n">unset</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</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">SetTag</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parser</span><span class="p">),</span> <span class="n">unset</span><span class="o">=</span><span class="n">unset</span><span class="p">)</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">"$$"</span><span class="p">]</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</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-246"><a href="#L-246"><span class="linenos">246</span></a> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="o">**</span><span class="n">tokens</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-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"EXCLUDE"</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-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"ILIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">,</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"LIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">,</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"PUT"</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-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"RENAME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"TIMESTAMP_LTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"TIMESTAMP_NTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"TIMESTAMP_TZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</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-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">"SAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="p">}</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="o">**</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="p">}</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_CAT"</span><span class="p">),</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_TO_STRING"</span><span class="p">),</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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">"DATEADD"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IFF"</span><span class="p">),</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOLOR_AGG"</span><span class="p">),</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOLAND_AGG"</span><span class="p">),</span> </span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> </span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> @@ -394,108 +394,110 @@ </span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="s2">"POSITION"</span><span class="p">,</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">"substr"</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="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">"position"</span><span class="p">)</span> </span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="p">),</span> </span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</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="sa">f</span><span class="s2">"EXTRACT(epoch_second FROM </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-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"snowflake"</span><span class="p">),</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">_unix_to_time_sql</span><span class="p">,</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="p">}</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">,</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="p">}</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"RENAME"</span><span class="p">,</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="p">}</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="p">}</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="k">def</span> <span class="nf">except_op</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-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="k">def</span> <span class="nf">intersect_op</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-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a><span class="sd"> """</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="p">)</span> -</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a><span class="sd"> generating the SQL.</span> -</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> -</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> -</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a><span class="sd"> properly quote but should be true in most cases.</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a><span class="sd"> """</span> -</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> -</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="n">flatten</span><span class="p">(</span> -</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="p">)</span> -</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="p">)</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> -</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="p">)</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> -</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="c1"># Default to table if kind is unknown</span> -</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> -</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> -</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</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="sa">f</span><span class="s2">"EXTRACT(epoch_second FROM </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-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"snowflake"</span><span class="p">),</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">_unix_to_time_sql</span><span class="p">,</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="p">}</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">,</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="p">}</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"RENAME"</span><span class="p">,</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="p">}</span> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="p">}</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> +</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="k">def</span> <span class="nf">except_op</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-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="k">def</span> <span class="nf">intersect_op</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-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a><span class="sd"> """</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="p">)</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> +</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a><span class="sd"> generating the SQL.</span> +</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> +</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> +</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a><span class="sd"> properly quote but should be true in most cases.</span> +</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a><span class="sd"> """</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">flatten</span><span class="p">(</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="p">)</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="p">)</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> +</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="p">)</span> +</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> +</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="c1"># Default to table if kind is unknown</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> +</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> +</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -511,151 +513,149 @@ </div> <a class="headerlink" href="#Snowflake"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake-140"><a href="#Snowflake-140"><span class="linenos">140</span></a><span class="k">class</span> <span class="nc">Snowflake</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="Snowflake-141"><a href="#Snowflake-141"><span class="linenos">141</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_large"</span> -</span><span id="Snowflake-142"><a href="#Snowflake-142"><span class="linenos">142</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="Snowflake-143"><a href="#Snowflake-143"><span class="linenos">143</span></a> -</span><span id="Snowflake-144"><a href="#Snowflake-144"><span class="linenos">144</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-145"><a href="#Snowflake-145"><span class="linenos">145</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="Snowflake-146"><a href="#Snowflake-146"><span class="linenos">146</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="Snowflake-147"><a href="#Snowflake-147"><span class="linenos">147</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="Snowflake-148"><a href="#Snowflake-148"><span class="linenos">148</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="Snowflake-149"><a href="#Snowflake-149"><span class="linenos">149</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="Snowflake-150"><a href="#Snowflake-150"><span class="linenos">150</span></a> <span class="s2">"mmmm"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="Snowflake-151"><a href="#Snowflake-151"><span class="linenos">151</span></a> <span class="s2">"MON"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="Snowflake-152"><a href="#Snowflake-152"><span class="linenos">152</span></a> <span class="s2">"mon"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="Snowflake-153"><a href="#Snowflake-153"><span class="linenos">153</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="Snowflake-154"><a href="#Snowflake-154"><span class="linenos">154</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="Snowflake-155"><a href="#Snowflake-155"><span class="linenos">155</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-156"><a href="#Snowflake-156"><span class="linenos">156</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-157"><a href="#Snowflake-157"><span class="linenos">157</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-158"><a href="#Snowflake-158"><span class="linenos">158</span></a> <span class="s2">"DY"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> -</span><span id="Snowflake-159"><a href="#Snowflake-159"><span class="linenos">159</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> -</span><span id="Snowflake-160"><a href="#Snowflake-160"><span class="linenos">160</span></a> <span class="s2">"HH24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="Snowflake-161"><a href="#Snowflake-161"><span class="linenos">161</span></a> <span class="s2">"hh24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="Snowflake-162"><a href="#Snowflake-162"><span class="linenos">162</span></a> <span class="s2">"HH12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="Snowflake-163"><a href="#Snowflake-163"><span class="linenos">163</span></a> <span class="s2">"hh12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="Snowflake-164"><a href="#Snowflake-164"><span class="linenos">164</span></a> <span class="s2">"MI"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="Snowflake-165"><a href="#Snowflake-165"><span class="linenos">165</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="Snowflake-166"><a href="#Snowflake-166"><span class="linenos">166</span></a> <span class="s2">"SS"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="Snowflake-167"><a href="#Snowflake-167"><span class="linenos">167</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="Snowflake-168"><a href="#Snowflake-168"><span class="linenos">168</span></a> <span class="s2">"FF"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-169"><a href="#Snowflake-169"><span class="linenos">169</span></a> <span class="s2">"ff"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-170"><a href="#Snowflake-170"><span class="linenos">170</span></a> <span class="s2">"FF6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-171"><a href="#Snowflake-171"><span class="linenos">171</span></a> <span class="s2">"ff6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Snowflake-172"><a href="#Snowflake-172"><span class="linenos">172</span></a> <span class="p">}</span> -</span><span id="Snowflake-173"><a href="#Snowflake-173"><span class="linenos">173</span></a> -</span><span id="Snowflake-174"><a href="#Snowflake-174"><span class="linenos">174</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="Snowflake-175"><a href="#Snowflake-175"><span class="linenos">175</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-176"><a href="#Snowflake-176"><span class="linenos">176</span></a> <span class="o">**</span><span class="n">parser</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="Snowflake-177"><a href="#Snowflake-177"><span class="linenos">177</span></a> <span class="s2">"ARRAYAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake-178"><a href="#Snowflake-178"><span class="linenos">178</span></a> <span class="s2">"ARRAY_TO_STRING"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake-179"><a href="#Snowflake-179"><span class="linenos">179</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> -</span><span id="Snowflake-180"><a href="#Snowflake-180"><span class="linenos">180</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="Snowflake-181"><a href="#Snowflake-181"><span class="linenos">181</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="Snowflake-182"><a href="#Snowflake-182"><span class="linenos">182</span></a> <span class="n">unit</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="Snowflake-183"><a href="#Snowflake-183"><span class="linenos">183</span></a> <span class="p">),</span> -</span><span id="Snowflake-184"><a href="#Snowflake-184"><span class="linenos">184</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="Snowflake-185"><a href="#Snowflake-185"><span class="linenos">185</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="Snowflake-186"><a href="#Snowflake-186"><span class="linenos">186</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="Snowflake-187"><a href="#Snowflake-187"><span class="linenos">187</span></a> <span class="n">unit</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="Snowflake-188"><a href="#Snowflake-188"><span class="linenos">188</span></a> <span class="p">),</span> -</span><span id="Snowflake-189"><a href="#Snowflake-189"><span class="linenos">189</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> -</span><span id="Snowflake-190"><a href="#Snowflake-190"><span class="linenos">190</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake-191"><a href="#Snowflake-191"><span class="linenos">191</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">1</span><span class="p">),</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake-142"><a href="#Snowflake-142"><span class="linenos">142</span></a><span class="k">class</span> <span class="nc">Snowflake</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="Snowflake-143"><a href="#Snowflake-143"><span class="linenos">143</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_large"</span> +</span><span id="Snowflake-144"><a href="#Snowflake-144"><span class="linenos">144</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="Snowflake-145"><a href="#Snowflake-145"><span class="linenos">145</span></a> +</span><span id="Snowflake-146"><a href="#Snowflake-146"><span class="linenos">146</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-147"><a href="#Snowflake-147"><span class="linenos">147</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="Snowflake-148"><a href="#Snowflake-148"><span class="linenos">148</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="Snowflake-149"><a href="#Snowflake-149"><span class="linenos">149</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="Snowflake-150"><a href="#Snowflake-150"><span class="linenos">150</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="Snowflake-151"><a href="#Snowflake-151"><span class="linenos">151</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="Snowflake-152"><a href="#Snowflake-152"><span class="linenos">152</span></a> <span class="s2">"mmmm"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="Snowflake-153"><a href="#Snowflake-153"><span class="linenos">153</span></a> <span class="s2">"MON"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="Snowflake-154"><a href="#Snowflake-154"><span class="linenos">154</span></a> <span class="s2">"mon"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="Snowflake-155"><a href="#Snowflake-155"><span class="linenos">155</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="Snowflake-156"><a href="#Snowflake-156"><span class="linenos">156</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="Snowflake-157"><a href="#Snowflake-157"><span class="linenos">157</span></a> <span class="s2">"DD"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-158"><a href="#Snowflake-158"><span class="linenos">158</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-159"><a href="#Snowflake-159"><span class="linenos">159</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-160"><a href="#Snowflake-160"><span class="linenos">160</span></a> <span class="s2">"DY"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> +</span><span id="Snowflake-161"><a href="#Snowflake-161"><span class="linenos">161</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"%w"</span><span class="p">,</span> +</span><span id="Snowflake-162"><a href="#Snowflake-162"><span class="linenos">162</span></a> <span class="s2">"HH24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="Snowflake-163"><a href="#Snowflake-163"><span class="linenos">163</span></a> <span class="s2">"hh24"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="Snowflake-164"><a href="#Snowflake-164"><span class="linenos">164</span></a> <span class="s2">"HH12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="Snowflake-165"><a href="#Snowflake-165"><span class="linenos">165</span></a> <span class="s2">"hh12"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="Snowflake-166"><a href="#Snowflake-166"><span class="linenos">166</span></a> <span class="s2">"MI"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="Snowflake-167"><a href="#Snowflake-167"><span class="linenos">167</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="Snowflake-168"><a href="#Snowflake-168"><span class="linenos">168</span></a> <span class="s2">"SS"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="Snowflake-169"><a href="#Snowflake-169"><span class="linenos">169</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="Snowflake-170"><a href="#Snowflake-170"><span class="linenos">170</span></a> <span class="s2">"FF"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-171"><a href="#Snowflake-171"><span class="linenos">171</span></a> <span class="s2">"ff"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-172"><a href="#Snowflake-172"><span class="linenos">172</span></a> <span class="s2">"FF6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-173"><a href="#Snowflake-173"><span class="linenos">173</span></a> <span class="s2">"ff6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Snowflake-174"><a href="#Snowflake-174"><span class="linenos">174</span></a> <span class="p">}</span> +</span><span id="Snowflake-175"><a href="#Snowflake-175"><span class="linenos">175</span></a> +</span><span id="Snowflake-176"><a href="#Snowflake-176"><span class="linenos">176</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="Snowflake-177"><a href="#Snowflake-177"><span class="linenos">177</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-178"><a href="#Snowflake-178"><span class="linenos">178</span></a> <span class="o">**</span><span class="n">parser</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="Snowflake-179"><a href="#Snowflake-179"><span class="linenos">179</span></a> <span class="s2">"ARRAYAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-180"><a href="#Snowflake-180"><span class="linenos">180</span></a> <span class="s2">"ARRAY_CONSTRUCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-181"><a href="#Snowflake-181"><span class="linenos">181</span></a> <span class="s2">"ARRAY_TO_STRING"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-182"><a href="#Snowflake-182"><span class="linenos">182</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">:</span> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="Snowflake-183"><a href="#Snowflake-183"><span class="linenos">183</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> +</span><span id="Snowflake-184"><a href="#Snowflake-184"><span class="linenos">184</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="Snowflake-185"><a href="#Snowflake-185"><span class="linenos">185</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="Snowflake-186"><a href="#Snowflake-186"><span class="linenos">186</span></a> <span class="n">unit</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="Snowflake-187"><a href="#Snowflake-187"><span class="linenos">187</span></a> <span class="p">),</span> +</span><span id="Snowflake-188"><a href="#Snowflake-188"><span class="linenos">188</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Snowflake-189"><a href="#Snowflake-189"><span class="linenos">189</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="Snowflake-190"><a href="#Snowflake-190"><span class="linenos">190</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="Snowflake-191"><a href="#Snowflake-191"><span class="linenos">191</span></a> <span class="n">unit</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="Snowflake-192"><a href="#Snowflake-192"><span class="linenos">192</span></a> <span class="p">),</span> -</span><span id="Snowflake-193"><a href="#Snowflake-193"><span class="linenos">193</span></a> <span class="s2">"DIV0"</span><span class="p">:</span> <span class="n">_div0_to_if</span><span class="p">,</span> -</span><span id="Snowflake-194"><a href="#Snowflake-194"><span class="linenos">194</span></a> <span class="s2">"IFF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake-195"><a href="#Snowflake-195"><span class="linenos">195</span></a> <span class="s2">"TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake-196"><a href="#Snowflake-196"><span class="linenos">196</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_snowflake_to_timestamp</span><span class="p">,</span> -</span><span id="Snowflake-197"><a href="#Snowflake-197"><span class="linenos">197</span></a> <span class="s2">"ARRAY_CONSTRUCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-193"><a href="#Snowflake-193"><span class="linenos">193</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-194"><a href="#Snowflake-194"><span class="linenos">194</span></a> <span class="s2">"DIV0"</span><span class="p">:</span> <span class="n">_div0_to_if</span><span class="p">,</span> +</span><span id="Snowflake-195"><a href="#Snowflake-195"><span class="linenos">195</span></a> <span class="s2">"IFF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-196"><a href="#Snowflake-196"><span class="linenos">196</span></a> <span class="s2">"NULLIFZERO"</span><span class="p">:</span> <span class="n">_nullifzero_to_if</span><span class="p">,</span> +</span><span id="Snowflake-197"><a href="#Snowflake-197"><span class="linenos">197</span></a> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">:</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_var_map</span><span class="p">,</span> </span><span id="Snowflake-198"><a href="#Snowflake-198"><span class="linenos">198</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake-199"><a href="#Snowflake-199"><span class="linenos">199</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake-200"><a href="#Snowflake-200"><span class="linenos">200</span></a> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">:</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="Snowflake-201"><a href="#Snowflake-201"><span class="linenos">201</span></a> <span class="s2">"ZEROIFNULL"</span><span class="p">:</span> <span class="n">_zeroifnull_to_if</span><span class="p">,</span> -</span><span id="Snowflake-202"><a href="#Snowflake-202"><span class="linenos">202</span></a> <span class="s2">"NULLIFZERO"</span><span class="p">:</span> <span class="n">_nullifzero_to_if</span><span class="p">,</span> -</span><span id="Snowflake-203"><a href="#Snowflake-203"><span class="linenos">203</span></a> <span class="p">}</span> -</span><span id="Snowflake-204"><a href="#Snowflake-204"><span class="linenos">204</span></a> -</span><span id="Snowflake-205"><a href="#Snowflake-205"><span class="linenos">205</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-206"><a href="#Snowflake-206"><span class="linenos">206</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> -</span><span id="Snowflake-207"><a href="#Snowflake-207"><span class="linenos">207</span></a> <span class="s2">"DATE_PART"</span><span class="p">:</span> <span class="n">_parse_date_part</span><span class="p">,</span> -</span><span id="Snowflake-208"><a href="#Snowflake-208"><span class="linenos">208</span></a> <span class="p">}</span> -</span><span id="Snowflake-209"><a href="#Snowflake-209"><span class="linenos">209</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="Snowflake-210"><a href="#Snowflake-210"><span class="linenos">210</span></a> -</span><span id="Snowflake-211"><a href="#Snowflake-211"><span class="linenos">211</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-212"><a href="#Snowflake-212"><span class="linenos">212</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> -</span><span id="Snowflake-213"><a href="#Snowflake-213"><span class="linenos">213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="Snowflake-214"><a href="#Snowflake-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="Snowflake-215"><a href="#Snowflake-215"><span class="linenos">215</span></a> <span class="p">}</span> -</span><span id="Snowflake-216"><a href="#Snowflake-216"><span class="linenos">216</span></a> -</span><span id="Snowflake-217"><a href="#Snowflake-217"><span class="linenos">217</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-218"><a href="#Snowflake-218"><span class="linenos">218</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake-219"><a href="#Snowflake-219"><span class="linenos">219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Snowflake-220"><a href="#Snowflake-220"><span class="linenos">220</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Bracket</span><span class="p">,</span> -</span><span id="Snowflake-221"><a href="#Snowflake-221"><span class="linenos">221</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Snowflake-222"><a href="#Snowflake-222"><span class="linenos">222</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">path</span><span class="p">],</span> -</span><span id="Snowflake-223"><a href="#Snowflake-223"><span class="linenos">223</span></a> <span class="p">),</span> -</span><span id="Snowflake-224"><a href="#Snowflake-224"><span class="linenos">224</span></a> <span class="p">}</span> -</span><span id="Snowflake-225"><a href="#Snowflake-225"><span class="linenos">225</span></a> -</span><span id="Snowflake-226"><a href="#Snowflake-226"><span class="linenos">226</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-227"><a href="#Snowflake-227"><span class="linenos">227</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake-228"><a href="#Snowflake-228"><span class="linenos">228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LikeAny</span><span class="p">),</span> -</span><span id="Snowflake-229"><a href="#Snowflake-229"><span class="linenos">229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILikeAny</span><span class="p">),</span> -</span><span id="Snowflake-230"><a href="#Snowflake-230"><span class="linenos">230</span></a> <span class="p">}</span> -</span><span id="Snowflake-231"><a href="#Snowflake-231"><span class="linenos">231</span></a> -</span><span id="Snowflake-232"><a href="#Snowflake-232"><span class="linenos">232</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-233"><a href="#Snowflake-233"><span class="linenos">233</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake-234"><a href="#Snowflake-234"><span class="linenos">234</span></a> <span class="s2">"UNSET"</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_alter_table_set_tag</span><span class="p">(</span><span class="n">unset</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Snowflake-235"><a href="#Snowflake-235"><span class="linenos">235</span></a> <span class="s2">"SET"</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_alter_table_set_tag</span><span class="p">(),</span> -</span><span id="Snowflake-236"><a href="#Snowflake-236"><span class="linenos">236</span></a> <span class="p">}</span> -</span><span id="Snowflake-237"><a href="#Snowflake-237"><span class="linenos">237</span></a> -</span><span id="Snowflake-238"><a href="#Snowflake-238"><span class="linenos">238</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Snowflake-239"><a href="#Snowflake-239"><span class="linenos">239</span></a> -</span><span id="Snowflake-240"><a href="#Snowflake-240"><span class="linenos">240</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_set_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unset</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Snowflake-241"><a href="#Snowflake-241"><span class="linenos">241</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TAG"</span><span class="p">)</span> -</span><span id="Snowflake-242"><a href="#Snowflake-242"><span class="linenos">242</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span> <span class="k">if</span> <span class="n">unset</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Snowflake-243"><a href="#Snowflake-243"><span class="linenos">243</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">SetTag</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parser</span><span class="p">),</span> <span class="n">unset</span><span class="o">=</span><span class="n">unset</span><span class="p">)</span> -</span><span id="Snowflake-244"><a href="#Snowflake-244"><span class="linenos">244</span></a> -</span><span id="Snowflake-245"><a href="#Snowflake-245"><span class="linenos">245</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Snowflake-246"><a href="#Snowflake-246"><span class="linenos">246</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">"$$"</span><span class="p">]</span> -</span><span id="Snowflake-247"><a href="#Snowflake-247"><span class="linenos">247</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="Snowflake-248"><a href="#Snowflake-248"><span class="linenos">248</span></a> -</span><span id="Snowflake-249"><a href="#Snowflake-249"><span class="linenos">249</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-250"><a href="#Snowflake-250"><span class="linenos">250</span></a> <span class="o">**</span><span class="n">tokens</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="Snowflake-251"><a href="#Snowflake-251"><span class="linenos">251</span></a> <span class="s2">"EXCLUDE"</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="Snowflake-252"><a href="#Snowflake-252"><span class="linenos">252</span></a> <span class="s2">"ILIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">,</span> -</span><span id="Snowflake-253"><a href="#Snowflake-253"><span class="linenos">253</span></a> <span class="s2">"LIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">,</span> -</span><span id="Snowflake-254"><a href="#Snowflake-254"><span class="linenos">254</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> -</span><span id="Snowflake-255"><a href="#Snowflake-255"><span class="linenos">255</span></a> <span class="s2">"PUT"</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="Snowflake-256"><a href="#Snowflake-256"><span class="linenos">256</span></a> <span class="s2">"RENAME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="Snowflake-257"><a href="#Snowflake-257"><span class="linenos">257</span></a> <span class="s2">"TIMESTAMP_LTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="Snowflake-258"><a href="#Snowflake-258"><span class="linenos">258</span></a> <span class="s2">"TIMESTAMP_NTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Snowflake-259"><a href="#Snowflake-259"><span class="linenos">259</span></a> <span class="s2">"TIMESTAMP_TZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Snowflake-260"><a href="#Snowflake-260"><span class="linenos">260</span></a> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Snowflake-261"><a href="#Snowflake-261"><span class="linenos">261</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="Snowflake-262"><a href="#Snowflake-262"><span class="linenos">262</span></a> <span class="s2">"SAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> -</span><span id="Snowflake-263"><a href="#Snowflake-263"><span class="linenos">263</span></a> <span class="p">}</span> -</span><span id="Snowflake-264"><a href="#Snowflake-264"><span class="linenos">264</span></a> -</span><span id="Snowflake-265"><a href="#Snowflake-265"><span class="linenos">265</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-266"><a href="#Snowflake-266"><span class="linenos">266</span></a> <span class="o">**</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> -</span><span id="Snowflake-267"><a href="#Snowflake-267"><span class="linenos">267</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> -</span><span id="Snowflake-268"><a href="#Snowflake-268"><span class="linenos">268</span></a> <span class="p">}</span> -</span><span id="Snowflake-269"><a href="#Snowflake-269"><span class="linenos">269</span></a> -</span><span id="Snowflake-270"><a href="#Snowflake-270"><span class="linenos">270</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Snowflake-271"><a href="#Snowflake-271"><span class="linenos">271</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> -</span><span id="Snowflake-272"><a href="#Snowflake-272"><span class="linenos">272</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Snowflake-273"><a href="#Snowflake-273"><span class="linenos">273</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Snowflake-274"><a href="#Snowflake-274"><span class="linenos">274</span></a> -</span><span id="Snowflake-275"><a href="#Snowflake-275"><span class="linenos">275</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-276"><a href="#Snowflake-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake-277"><a href="#Snowflake-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="Snowflake-278"><a href="#Snowflake-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_CAT"</span><span class="p">),</span> -</span><span id="Snowflake-279"><a href="#Snowflake-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_TO_STRING"</span><span class="p">),</span> -</span><span id="Snowflake-280"><a href="#Snowflake-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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">"DATEADD"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> -</span><span id="Snowflake-281"><a href="#Snowflake-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="Snowflake-282"><a href="#Snowflake-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="Snowflake-283"><a href="#Snowflake-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IFF"</span><span class="p">),</span> -</span><span id="Snowflake-284"><a href="#Snowflake-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> +</span><span id="Snowflake-199"><a href="#Snowflake-199"><span class="linenos">199</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="Snowflake-200"><a href="#Snowflake-200"><span class="linenos">200</span></a> <span class="s2">"TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-201"><a href="#Snowflake-201"><span class="linenos">201</span></a> <span class="s2">"TO_VARCHAR"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake-202"><a href="#Snowflake-202"><span class="linenos">202</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_snowflake_to_timestamp</span><span class="p">,</span> +</span><span id="Snowflake-203"><a href="#Snowflake-203"><span class="linenos">203</span></a> <span class="s2">"ZEROIFNULL"</span><span class="p">:</span> <span class="n">_zeroifnull_to_if</span><span class="p">,</span> +</span><span id="Snowflake-204"><a href="#Snowflake-204"><span class="linenos">204</span></a> <span class="p">}</span> +</span><span id="Snowflake-205"><a href="#Snowflake-205"><span class="linenos">205</span></a> +</span><span id="Snowflake-206"><a href="#Snowflake-206"><span class="linenos">206</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-207"><a href="#Snowflake-207"><span class="linenos">207</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> +</span><span id="Snowflake-208"><a href="#Snowflake-208"><span class="linenos">208</span></a> <span class="s2">"DATE_PART"</span><span class="p">:</span> <span class="n">_parse_date_part</span><span class="p">,</span> +</span><span id="Snowflake-209"><a href="#Snowflake-209"><span class="linenos">209</span></a> <span class="p">}</span> +</span><span id="Snowflake-210"><a href="#Snowflake-210"><span class="linenos">210</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="Snowflake-211"><a href="#Snowflake-211"><span class="linenos">211</span></a> +</span><span id="Snowflake-212"><a href="#Snowflake-212"><span class="linenos">212</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-213"><a href="#Snowflake-213"><span class="linenos">213</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> +</span><span id="Snowflake-214"><a href="#Snowflake-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="Snowflake-215"><a href="#Snowflake-215"><span class="linenos">215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="Snowflake-216"><a href="#Snowflake-216"><span class="linenos">216</span></a> <span class="p">}</span> +</span><span id="Snowflake-217"><a href="#Snowflake-217"><span class="linenos">217</span></a> +</span><span id="Snowflake-218"><a href="#Snowflake-218"><span class="linenos">218</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-219"><a href="#Snowflake-219"><span class="linenos">219</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake-220"><a href="#Snowflake-220"><span class="linenos">220</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Snowflake-221"><a href="#Snowflake-221"><span class="linenos">221</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Bracket</span><span class="p">,</span> +</span><span id="Snowflake-222"><a href="#Snowflake-222"><span class="linenos">222</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Snowflake-223"><a href="#Snowflake-223"><span class="linenos">223</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">path</span><span class="p">],</span> +</span><span id="Snowflake-224"><a href="#Snowflake-224"><span class="linenos">224</span></a> <span class="p">),</span> +</span><span id="Snowflake-225"><a href="#Snowflake-225"><span class="linenos">225</span></a> <span class="p">}</span> +</span><span id="Snowflake-226"><a href="#Snowflake-226"><span class="linenos">226</span></a> +</span><span id="Snowflake-227"><a href="#Snowflake-227"><span class="linenos">227</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-228"><a href="#Snowflake-228"><span class="linenos">228</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake-229"><a href="#Snowflake-229"><span class="linenos">229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LikeAny</span><span class="p">),</span> +</span><span id="Snowflake-230"><a href="#Snowflake-230"><span class="linenos">230</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILikeAny</span><span class="p">),</span> +</span><span id="Snowflake-231"><a href="#Snowflake-231"><span class="linenos">231</span></a> <span class="p">}</span> +</span><span id="Snowflake-232"><a href="#Snowflake-232"><span class="linenos">232</span></a> +</span><span id="Snowflake-233"><a href="#Snowflake-233"><span class="linenos">233</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-234"><a href="#Snowflake-234"><span class="linenos">234</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake-235"><a href="#Snowflake-235"><span class="linenos">235</span></a> <span class="s2">"UNSET"</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_alter_table_set_tag</span><span class="p">(</span><span class="n">unset</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Snowflake-236"><a href="#Snowflake-236"><span class="linenos">236</span></a> <span class="s2">"SET"</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_alter_table_set_tag</span><span class="p">(),</span> +</span><span id="Snowflake-237"><a href="#Snowflake-237"><span class="linenos">237</span></a> <span class="p">}</span> +</span><span id="Snowflake-238"><a href="#Snowflake-238"><span class="linenos">238</span></a> +</span><span id="Snowflake-239"><a href="#Snowflake-239"><span class="linenos">239</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_set_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unset</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Snowflake-240"><a href="#Snowflake-240"><span class="linenos">240</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TAG"</span><span class="p">)</span> +</span><span id="Snowflake-241"><a href="#Snowflake-241"><span class="linenos">241</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span> <span class="k">if</span> <span class="n">unset</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Snowflake-242"><a href="#Snowflake-242"><span class="linenos">242</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">SetTag</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parser</span><span class="p">),</span> <span class="n">unset</span><span class="o">=</span><span class="n">unset</span><span class="p">)</span> +</span><span id="Snowflake-243"><a href="#Snowflake-243"><span class="linenos">243</span></a> +</span><span id="Snowflake-244"><a href="#Snowflake-244"><span class="linenos">244</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Snowflake-245"><a href="#Snowflake-245"><span class="linenos">245</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">"$$"</span><span class="p">]</span> +</span><span id="Snowflake-246"><a href="#Snowflake-246"><span class="linenos">246</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="Snowflake-247"><a href="#Snowflake-247"><span class="linenos">247</span></a> +</span><span id="Snowflake-248"><a href="#Snowflake-248"><span class="linenos">248</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-249"><a href="#Snowflake-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">tokens</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="Snowflake-250"><a href="#Snowflake-250"><span class="linenos">250</span></a> <span class="s2">"EXCLUDE"</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="Snowflake-251"><a href="#Snowflake-251"><span class="linenos">251</span></a> <span class="s2">"ILIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">,</span> +</span><span id="Snowflake-252"><a href="#Snowflake-252"><span class="linenos">252</span></a> <span class="s2">"LIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">,</span> +</span><span id="Snowflake-253"><a href="#Snowflake-253"><span class="linenos">253</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> +</span><span id="Snowflake-254"><a href="#Snowflake-254"><span class="linenos">254</span></a> <span class="s2">"PUT"</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="Snowflake-255"><a href="#Snowflake-255"><span class="linenos">255</span></a> <span class="s2">"RENAME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="Snowflake-256"><a href="#Snowflake-256"><span class="linenos">256</span></a> <span class="s2">"TIMESTAMP_LTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="Snowflake-257"><a href="#Snowflake-257"><span class="linenos">257</span></a> <span class="s2">"TIMESTAMP_NTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Snowflake-258"><a href="#Snowflake-258"><span class="linenos">258</span></a> <span class="s2">"TIMESTAMP_TZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Snowflake-259"><a href="#Snowflake-259"><span class="linenos">259</span></a> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Snowflake-260"><a href="#Snowflake-260"><span class="linenos">260</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="Snowflake-261"><a href="#Snowflake-261"><span class="linenos">261</span></a> <span class="s2">"SAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> +</span><span id="Snowflake-262"><a href="#Snowflake-262"><span class="linenos">262</span></a> <span class="p">}</span> +</span><span id="Snowflake-263"><a href="#Snowflake-263"><span class="linenos">263</span></a> +</span><span id="Snowflake-264"><a href="#Snowflake-264"><span class="linenos">264</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-265"><a href="#Snowflake-265"><span class="linenos">265</span></a> <span class="o">**</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> +</span><span id="Snowflake-266"><a href="#Snowflake-266"><span class="linenos">266</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> +</span><span id="Snowflake-267"><a href="#Snowflake-267"><span class="linenos">267</span></a> <span class="p">}</span> +</span><span id="Snowflake-268"><a href="#Snowflake-268"><span class="linenos">268</span></a> +</span><span id="Snowflake-269"><a href="#Snowflake-269"><span class="linenos">269</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Snowflake-270"><a href="#Snowflake-270"><span class="linenos">270</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Snowflake-271"><a href="#Snowflake-271"><span class="linenos">271</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Snowflake-272"><a href="#Snowflake-272"><span class="linenos">272</span></a> +</span><span id="Snowflake-273"><a href="#Snowflake-273"><span class="linenos">273</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-274"><a href="#Snowflake-274"><span class="linenos">274</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake-275"><a href="#Snowflake-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="Snowflake-276"><a href="#Snowflake-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_CAT"</span><span class="p">),</span> +</span><span id="Snowflake-277"><a href="#Snowflake-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_TO_STRING"</span><span class="p">),</span> +</span><span id="Snowflake-278"><a href="#Snowflake-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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">"DATEADD"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> +</span><span id="Snowflake-279"><a href="#Snowflake-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="Snowflake-280"><a href="#Snowflake-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="Snowflake-281"><a href="#Snowflake-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IFF"</span><span class="p">),</span> +</span><span id="Snowflake-282"><a href="#Snowflake-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> +</span><span id="Snowflake-283"><a href="#Snowflake-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOLOR_AGG"</span><span class="p">),</span> +</span><span id="Snowflake-284"><a href="#Snowflake-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOLAND_AGG"</span><span class="p">),</span> </span><span id="Snowflake-285"><a href="#Snowflake-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> </span><span id="Snowflake-286"><a href="#Snowflake-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="Snowflake-287"><a href="#Snowflake-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> @@ -663,108 +663,110 @@ </span><span id="Snowflake-289"><a href="#Snowflake-289"><span class="linenos">289</span></a> <span class="s2">"POSITION"</span><span class="p">,</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">"substr"</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="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">"position"</span><span class="p">)</span> </span><span id="Snowflake-290"><a href="#Snowflake-290"><span class="linenos">290</span></a> <span class="p">),</span> </span><span id="Snowflake-291"><a href="#Snowflake-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Snowflake-292"><a href="#Snowflake-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Snowflake-293"><a href="#Snowflake-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</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="sa">f</span><span class="s2">"EXTRACT(epoch_second FROM </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="Snowflake-294"><a href="#Snowflake-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> -</span><span id="Snowflake-295"><a href="#Snowflake-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"snowflake"</span><span class="p">),</span> -</span><span id="Snowflake-296"><a href="#Snowflake-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">_unix_to_time_sql</span><span class="p">,</span> -</span><span id="Snowflake-297"><a href="#Snowflake-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="Snowflake-298"><a href="#Snowflake-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Snowflake-299"><a href="#Snowflake-299"><span class="linenos">299</span></a> <span class="p">}</span> -</span><span id="Snowflake-300"><a href="#Snowflake-300"><span class="linenos">300</span></a> -</span><span id="Snowflake-301"><a href="#Snowflake-301"><span class="linenos">301</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-302"><a href="#Snowflake-302"><span class="linenos">302</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Snowflake-303"><a href="#Snowflake-303"><span class="linenos">303</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">,</span> -</span><span id="Snowflake-304"><a href="#Snowflake-304"><span class="linenos">304</span></a> <span class="p">}</span> -</span><span id="Snowflake-305"><a href="#Snowflake-305"><span class="linenos">305</span></a> -</span><span id="Snowflake-306"><a href="#Snowflake-306"><span class="linenos">306</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-307"><a href="#Snowflake-307"><span class="linenos">307</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> -</span><span id="Snowflake-308"><a href="#Snowflake-308"><span class="linenos">308</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"RENAME"</span><span class="p">,</span> -</span><span id="Snowflake-309"><a href="#Snowflake-309"><span class="linenos">309</span></a> <span class="p">}</span> -</span><span id="Snowflake-310"><a href="#Snowflake-310"><span class="linenos">310</span></a> -</span><span id="Snowflake-311"><a href="#Snowflake-311"><span class="linenos">311</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake-312"><a href="#Snowflake-312"><span class="linenos">312</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake-313"><a href="#Snowflake-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="Snowflake-314"><a href="#Snowflake-314"><span class="linenos">314</span></a> <span class="p">}</span> -</span><span id="Snowflake-315"><a href="#Snowflake-315"><span class="linenos">315</span></a> -</span><span id="Snowflake-316"><a href="#Snowflake-316"><span class="linenos">316</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-317"><a href="#Snowflake-317"><span class="linenos">317</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> -</span><span id="Snowflake-318"><a href="#Snowflake-318"><span class="linenos">318</span></a> -</span><span id="Snowflake-319"><a href="#Snowflake-319"><span class="linenos">319</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-320"><a href="#Snowflake-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> -</span><span id="Snowflake-321"><a href="#Snowflake-321"><span class="linenos">321</span></a> -</span><span id="Snowflake-322"><a href="#Snowflake-322"><span class="linenos">322</span></a> <span class="k">def</span> <span class="nf">except_op</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="Snowflake-323"><a href="#Snowflake-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="Snowflake-324"><a href="#Snowflake-324"><span class="linenos">324</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="Snowflake-325"><a href="#Snowflake-325"><span class="linenos">325</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake-326"><a href="#Snowflake-326"><span class="linenos">326</span></a> -</span><span id="Snowflake-327"><a href="#Snowflake-327"><span class="linenos">327</span></a> <span class="k">def</span> <span class="nf">intersect_op</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="Snowflake-328"><a href="#Snowflake-328"><span class="linenos">328</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="Snowflake-329"><a href="#Snowflake-329"><span class="linenos">329</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="Snowflake-330"><a href="#Snowflake-330"><span class="linenos">330</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake-331"><a href="#Snowflake-331"><span class="linenos">331</span></a> -</span><span id="Snowflake-332"><a href="#Snowflake-332"><span class="linenos">332</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-333"><a href="#Snowflake-333"><span class="linenos">333</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> -</span><span id="Snowflake-334"><a href="#Snowflake-334"><span class="linenos">334</span></a> -</span><span id="Snowflake-335"><a href="#Snowflake-335"><span class="linenos">335</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> -</span><span id="Snowflake-336"><a href="#Snowflake-336"><span class="linenos">336</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> -</span><span id="Snowflake-337"><a href="#Snowflake-337"><span class="linenos">337</span></a><span class="sd"> """</span> -</span><span id="Snowflake-338"><a href="#Snowflake-338"><span class="linenos">338</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Snowflake-339"><a href="#Snowflake-339"><span class="linenos">339</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> -</span><span id="Snowflake-340"><a href="#Snowflake-340"><span class="linenos">340</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Snowflake-341"><a href="#Snowflake-341"><span class="linenos">341</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="Snowflake-342"><a href="#Snowflake-342"><span class="linenos">342</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> -</span><span id="Snowflake-343"><a href="#Snowflake-343"><span class="linenos">343</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> -</span><span id="Snowflake-344"><a href="#Snowflake-344"><span class="linenos">344</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> -</span><span id="Snowflake-345"><a href="#Snowflake-345"><span class="linenos">345</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="Snowflake-346"><a href="#Snowflake-346"><span class="linenos">346</span></a> <span class="p">)</span> -</span><span id="Snowflake-347"><a href="#Snowflake-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Snowflake-348"><a href="#Snowflake-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake-349"><a href="#Snowflake-349"><span class="linenos">349</span></a> -</span><span id="Snowflake-350"><a href="#Snowflake-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-351"><a href="#Snowflake-351"><span class="linenos">351</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> -</span><span id="Snowflake-352"><a href="#Snowflake-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> -</span><span id="Snowflake-353"><a href="#Snowflake-353"><span class="linenos">353</span></a> -</span><span id="Snowflake-354"><a href="#Snowflake-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-355"><a href="#Snowflake-355"><span class="linenos">355</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> -</span><span id="Snowflake-356"><a href="#Snowflake-356"><span class="linenos">356</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> -</span><span id="Snowflake-357"><a href="#Snowflake-357"><span class="linenos">357</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> -</span><span id="Snowflake-358"><a href="#Snowflake-358"><span class="linenos">358</span></a><span class="sd"> generating the SQL.</span> -</span><span id="Snowflake-359"><a href="#Snowflake-359"><span class="linenos">359</span></a> -</span><span id="Snowflake-360"><a href="#Snowflake-360"><span class="linenos">360</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> -</span><span id="Snowflake-361"><a href="#Snowflake-361"><span class="linenos">361</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> -</span><span id="Snowflake-362"><a href="#Snowflake-362"><span class="linenos">362</span></a><span class="sd"> properly quote but should be true in most cases.</span> -</span><span id="Snowflake-363"><a href="#Snowflake-363"><span class="linenos">363</span></a><span class="sd"> """</span> -</span><span id="Snowflake-364"><a href="#Snowflake-364"><span class="linenos">364</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> -</span><span id="Snowflake-365"><a href="#Snowflake-365"><span class="linenos">365</span></a> <span class="n">flatten</span><span class="p">(</span> -</span><span id="Snowflake-366"><a href="#Snowflake-366"><span class="linenos">366</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Snowflake-367"><a href="#Snowflake-367"><span class="linenos">367</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> -</span><span id="Snowflake-368"><a href="#Snowflake-368"><span class="linenos">368</span></a> <span class="p">)</span> -</span><span id="Snowflake-369"><a href="#Snowflake-369"><span class="linenos">369</span></a> <span class="p">)</span> -</span><span id="Snowflake-370"><a href="#Snowflake-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> -</span><span id="Snowflake-371"><a href="#Snowflake-371"><span class="linenos">371</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Snowflake-372"><a href="#Snowflake-372"><span class="linenos">372</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="Snowflake-373"><a href="#Snowflake-373"><span class="linenos">373</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> -</span><span id="Snowflake-374"><a href="#Snowflake-374"><span class="linenos">374</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="Snowflake-375"><a href="#Snowflake-375"><span class="linenos">375</span></a> <span class="p">)</span> -</span><span id="Snowflake-376"><a href="#Snowflake-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Snowflake-377"><a href="#Snowflake-377"><span class="linenos">377</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake-378"><a href="#Snowflake-378"><span class="linenos">378</span></a> -</span><span id="Snowflake-379"><a href="#Snowflake-379"><span class="linenos">379</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-380"><a href="#Snowflake-380"><span class="linenos">380</span></a> <span class="c1"># Default to table if kind is unknown</span> -</span><span id="Snowflake-381"><a href="#Snowflake-381"><span class="linenos">381</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> -</span><span id="Snowflake-382"><a href="#Snowflake-382"><span class="linenos">382</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake-383"><a href="#Snowflake-383"><span class="linenos">383</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="Snowflake-384"><a href="#Snowflake-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Snowflake-385"><a href="#Snowflake-385"><span class="linenos">385</span></a> -</span><span id="Snowflake-386"><a href="#Snowflake-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="Snowflake-387"><a href="#Snowflake-387"><span class="linenos">387</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="Snowflake-388"><a href="#Snowflake-388"><span class="linenos">388</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake-389"><a href="#Snowflake-389"><span class="linenos">389</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="Snowflake-390"><a href="#Snowflake-390"><span class="linenos">390</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake-391"><a href="#Snowflake-391"><span class="linenos">391</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="Snowflake-392"><a href="#Snowflake-392"><span class="linenos">392</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake-393"><a href="#Snowflake-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Snowflake-292"><a href="#Snowflake-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="Snowflake-293"><a href="#Snowflake-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Snowflake-294"><a href="#Snowflake-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</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="sa">f</span><span class="s2">"EXTRACT(epoch_second FROM </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="Snowflake-295"><a href="#Snowflake-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="Snowflake-296"><a href="#Snowflake-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Snowflake-297"><a href="#Snowflake-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"snowflake"</span><span class="p">),</span> +</span><span id="Snowflake-298"><a href="#Snowflake-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">_unix_to_time_sql</span><span class="p">,</span> +</span><span id="Snowflake-299"><a href="#Snowflake-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="Snowflake-300"><a href="#Snowflake-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="Snowflake-301"><a href="#Snowflake-301"><span class="linenos">301</span></a> <span class="p">}</span> +</span><span id="Snowflake-302"><a href="#Snowflake-302"><span class="linenos">302</span></a> +</span><span id="Snowflake-303"><a href="#Snowflake-303"><span class="linenos">303</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-304"><a href="#Snowflake-304"><span class="linenos">304</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Snowflake-305"><a href="#Snowflake-305"><span class="linenos">305</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">,</span> +</span><span id="Snowflake-306"><a href="#Snowflake-306"><span class="linenos">306</span></a> <span class="p">}</span> +</span><span id="Snowflake-307"><a href="#Snowflake-307"><span class="linenos">307</span></a> +</span><span id="Snowflake-308"><a href="#Snowflake-308"><span class="linenos">308</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-309"><a href="#Snowflake-309"><span class="linenos">309</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> +</span><span id="Snowflake-310"><a href="#Snowflake-310"><span class="linenos">310</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"RENAME"</span><span class="p">,</span> +</span><span id="Snowflake-311"><a href="#Snowflake-311"><span class="linenos">311</span></a> <span class="p">}</span> +</span><span id="Snowflake-312"><a href="#Snowflake-312"><span class="linenos">312</span></a> +</span><span id="Snowflake-313"><a href="#Snowflake-313"><span class="linenos">313</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake-314"><a href="#Snowflake-314"><span class="linenos">314</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake-315"><a href="#Snowflake-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="Snowflake-316"><a href="#Snowflake-316"><span class="linenos">316</span></a> <span class="p">}</span> +</span><span id="Snowflake-317"><a href="#Snowflake-317"><span class="linenos">317</span></a> +</span><span id="Snowflake-318"><a href="#Snowflake-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-319"><a href="#Snowflake-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> +</span><span id="Snowflake-320"><a href="#Snowflake-320"><span class="linenos">320</span></a> +</span><span id="Snowflake-321"><a href="#Snowflake-321"><span class="linenos">321</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-322"><a href="#Snowflake-322"><span class="linenos">322</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> +</span><span id="Snowflake-323"><a href="#Snowflake-323"><span class="linenos">323</span></a> +</span><span id="Snowflake-324"><a href="#Snowflake-324"><span class="linenos">324</span></a> <span class="k">def</span> <span class="nf">except_op</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="Snowflake-325"><a href="#Snowflake-325"><span class="linenos">325</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="Snowflake-326"><a href="#Snowflake-326"><span class="linenos">326</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="Snowflake-327"><a href="#Snowflake-327"><span class="linenos">327</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake-328"><a href="#Snowflake-328"><span class="linenos">328</span></a> +</span><span id="Snowflake-329"><a href="#Snowflake-329"><span class="linenos">329</span></a> <span class="k">def</span> <span class="nf">intersect_op</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="Snowflake-330"><a href="#Snowflake-330"><span class="linenos">330</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="Snowflake-331"><a href="#Snowflake-331"><span class="linenos">331</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="Snowflake-332"><a href="#Snowflake-332"><span class="linenos">332</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake-333"><a href="#Snowflake-333"><span class="linenos">333</span></a> +</span><span id="Snowflake-334"><a href="#Snowflake-334"><span class="linenos">334</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-335"><a href="#Snowflake-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> +</span><span id="Snowflake-336"><a href="#Snowflake-336"><span class="linenos">336</span></a> +</span><span id="Snowflake-337"><a href="#Snowflake-337"><span class="linenos">337</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> +</span><span id="Snowflake-338"><a href="#Snowflake-338"><span class="linenos">338</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> +</span><span id="Snowflake-339"><a href="#Snowflake-339"><span class="linenos">339</span></a><span class="sd"> """</span> +</span><span id="Snowflake-340"><a href="#Snowflake-340"><span class="linenos">340</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Snowflake-341"><a href="#Snowflake-341"><span class="linenos">341</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> +</span><span id="Snowflake-342"><a href="#Snowflake-342"><span class="linenos">342</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Snowflake-343"><a href="#Snowflake-343"><span class="linenos">343</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="Snowflake-344"><a href="#Snowflake-344"><span class="linenos">344</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> +</span><span id="Snowflake-345"><a href="#Snowflake-345"><span class="linenos">345</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> +</span><span id="Snowflake-346"><a href="#Snowflake-346"><span class="linenos">346</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> +</span><span id="Snowflake-347"><a href="#Snowflake-347"><span class="linenos">347</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="Snowflake-348"><a href="#Snowflake-348"><span class="linenos">348</span></a> <span class="p">)</span> +</span><span id="Snowflake-349"><a href="#Snowflake-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Snowflake-350"><a href="#Snowflake-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake-351"><a href="#Snowflake-351"><span class="linenos">351</span></a> +</span><span id="Snowflake-352"><a href="#Snowflake-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-353"><a href="#Snowflake-353"><span class="linenos">353</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> +</span><span id="Snowflake-354"><a href="#Snowflake-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> +</span><span id="Snowflake-355"><a href="#Snowflake-355"><span class="linenos">355</span></a> +</span><span id="Snowflake-356"><a href="#Snowflake-356"><span class="linenos">356</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-357"><a href="#Snowflake-357"><span class="linenos">357</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> +</span><span id="Snowflake-358"><a href="#Snowflake-358"><span class="linenos">358</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> +</span><span id="Snowflake-359"><a href="#Snowflake-359"><span class="linenos">359</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> +</span><span id="Snowflake-360"><a href="#Snowflake-360"><span class="linenos">360</span></a><span class="sd"> generating the SQL.</span> +</span><span id="Snowflake-361"><a href="#Snowflake-361"><span class="linenos">361</span></a> +</span><span id="Snowflake-362"><a href="#Snowflake-362"><span class="linenos">362</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> +</span><span id="Snowflake-363"><a href="#Snowflake-363"><span class="linenos">363</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> +</span><span id="Snowflake-364"><a href="#Snowflake-364"><span class="linenos">364</span></a><span class="sd"> properly quote but should be true in most cases.</span> +</span><span id="Snowflake-365"><a href="#Snowflake-365"><span class="linenos">365</span></a><span class="sd"> """</span> +</span><span id="Snowflake-366"><a href="#Snowflake-366"><span class="linenos">366</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> +</span><span id="Snowflake-367"><a href="#Snowflake-367"><span class="linenos">367</span></a> <span class="n">flatten</span><span class="p">(</span> +</span><span id="Snowflake-368"><a href="#Snowflake-368"><span class="linenos">368</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Snowflake-369"><a href="#Snowflake-369"><span class="linenos">369</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> +</span><span id="Snowflake-370"><a href="#Snowflake-370"><span class="linenos">370</span></a> <span class="p">)</span> +</span><span id="Snowflake-371"><a href="#Snowflake-371"><span class="linenos">371</span></a> <span class="p">)</span> +</span><span id="Snowflake-372"><a href="#Snowflake-372"><span class="linenos">372</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> +</span><span id="Snowflake-373"><a href="#Snowflake-373"><span class="linenos">373</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Snowflake-374"><a href="#Snowflake-374"><span class="linenos">374</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="Snowflake-375"><a href="#Snowflake-375"><span class="linenos">375</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> +</span><span id="Snowflake-376"><a href="#Snowflake-376"><span class="linenos">376</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="Snowflake-377"><a href="#Snowflake-377"><span class="linenos">377</span></a> <span class="p">)</span> +</span><span id="Snowflake-378"><a href="#Snowflake-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Snowflake-379"><a href="#Snowflake-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake-380"><a href="#Snowflake-380"><span class="linenos">380</span></a> +</span><span id="Snowflake-381"><a href="#Snowflake-381"><span class="linenos">381</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-382"><a href="#Snowflake-382"><span class="linenos">382</span></a> <span class="c1"># Default to table if kind is unknown</span> +</span><span id="Snowflake-383"><a href="#Snowflake-383"><span class="linenos">383</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> +</span><span id="Snowflake-384"><a href="#Snowflake-384"><span class="linenos">384</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake-385"><a href="#Snowflake-385"><span class="linenos">385</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="Snowflake-386"><a href="#Snowflake-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Snowflake-387"><a href="#Snowflake-387"><span class="linenos">387</span></a> +</span><span id="Snowflake-388"><a href="#Snowflake-388"><span class="linenos">388</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="Snowflake-389"><a href="#Snowflake-389"><span class="linenos">389</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="Snowflake-390"><a href="#Snowflake-390"><span class="linenos">390</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake-391"><a href="#Snowflake-391"><span class="linenos">391</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="Snowflake-392"><a href="#Snowflake-392"><span class="linenos">392</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake-393"><a href="#Snowflake-393"><span class="linenos">393</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="Snowflake-394"><a href="#Snowflake-394"><span class="linenos">394</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake-395"><a href="#Snowflake-395"><span class="linenos">395</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -780,6 +782,7 @@ <dd id="Snowflake.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Snowflake.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Snowflake.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Snowflake.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Snowflake.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Snowflake.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -798,76 +801,73 @@ </div> <a class="headerlink" href="#Snowflake.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Parser-174"><a href="#Snowflake.Parser-174"><span class="linenos">174</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="Snowflake.Parser-175"><a href="#Snowflake.Parser-175"><span class="linenos">175</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Parser-176"><a href="#Snowflake.Parser-176"><span class="linenos">176</span></a> <span class="o">**</span><span class="n">parser</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="Snowflake.Parser-177"><a href="#Snowflake.Parser-177"><span class="linenos">177</span></a> <span class="s2">"ARRAYAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake.Parser-178"><a href="#Snowflake.Parser-178"><span class="linenos">178</span></a> <span class="s2">"ARRAY_TO_STRING"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake.Parser-179"><a href="#Snowflake.Parser-179"><span class="linenos">179</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> -</span><span id="Snowflake.Parser-180"><a href="#Snowflake.Parser-180"><span class="linenos">180</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="Snowflake.Parser-181"><a href="#Snowflake.Parser-181"><span class="linenos">181</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="Snowflake.Parser-182"><a href="#Snowflake.Parser-182"><span class="linenos">182</span></a> <span class="n">unit</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="Snowflake.Parser-183"><a href="#Snowflake.Parser-183"><span class="linenos">183</span></a> <span class="p">),</span> -</span><span id="Snowflake.Parser-184"><a href="#Snowflake.Parser-184"><span class="linenos">184</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> -</span><span id="Snowflake.Parser-185"><a href="#Snowflake.Parser-185"><span class="linenos">185</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="Snowflake.Parser-186"><a href="#Snowflake.Parser-186"><span class="linenos">186</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="Snowflake.Parser-187"><a href="#Snowflake.Parser-187"><span class="linenos">187</span></a> <span class="n">unit</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="Snowflake.Parser-188"><a href="#Snowflake.Parser-188"><span class="linenos">188</span></a> <span class="p">),</span> -</span><span id="Snowflake.Parser-189"><a href="#Snowflake.Parser-189"><span class="linenos">189</span></a> <span class="s2">"DATE_TRUNC"</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">DateTrunc</span><span class="p">(</span> -</span><span id="Snowflake.Parser-190"><a href="#Snowflake.Parser-190"><span class="linenos">190</span></a> <span class="n">unit</span><span class="o">=</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="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="o">.</span><span class="n">name</span><span class="p">),</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake.Parser-191"><a href="#Snowflake.Parser-191"><span class="linenos">191</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">1</span><span class="p">),</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Parser-176"><a href="#Snowflake.Parser-176"><span class="linenos">176</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="Snowflake.Parser-177"><a href="#Snowflake.Parser-177"><span class="linenos">177</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Parser-178"><a href="#Snowflake.Parser-178"><span class="linenos">178</span></a> <span class="o">**</span><span class="n">parser</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="Snowflake.Parser-179"><a href="#Snowflake.Parser-179"><span class="linenos">179</span></a> <span class="s2">"ARRAYAGG"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayAgg</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-180"><a href="#Snowflake.Parser-180"><span class="linenos">180</span></a> <span class="s2">"ARRAY_CONSTRUCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-181"><a href="#Snowflake.Parser-181"><span class="linenos">181</span></a> <span class="s2">"ARRAY_TO_STRING"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-182"><a href="#Snowflake.Parser-182"><span class="linenos">182</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">:</span> <span class="n">date_trunc_to_time</span><span class="p">,</span> +</span><span id="Snowflake.Parser-183"><a href="#Snowflake.Parser-183"><span class="linenos">183</span></a> <span class="s2">"DATEADD"</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">DateAdd</span><span class="p">(</span> +</span><span id="Snowflake.Parser-184"><a href="#Snowflake.Parser-184"><span class="linenos">184</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="Snowflake.Parser-185"><a href="#Snowflake.Parser-185"><span class="linenos">185</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="Snowflake.Parser-186"><a href="#Snowflake.Parser-186"><span class="linenos">186</span></a> <span class="n">unit</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="Snowflake.Parser-187"><a href="#Snowflake.Parser-187"><span class="linenos">187</span></a> <span class="p">),</span> +</span><span id="Snowflake.Parser-188"><a href="#Snowflake.Parser-188"><span class="linenos">188</span></a> <span class="s2">"DATEDIFF"</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">DateDiff</span><span class="p">(</span> +</span><span id="Snowflake.Parser-189"><a href="#Snowflake.Parser-189"><span class="linenos">189</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="Snowflake.Parser-190"><a href="#Snowflake.Parser-190"><span class="linenos">190</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="Snowflake.Parser-191"><a href="#Snowflake.Parser-191"><span class="linenos">191</span></a> <span class="n">unit</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="Snowflake.Parser-192"><a href="#Snowflake.Parser-192"><span class="linenos">192</span></a> <span class="p">),</span> -</span><span id="Snowflake.Parser-193"><a href="#Snowflake.Parser-193"><span class="linenos">193</span></a> <span class="s2">"DIV0"</span><span class="p">:</span> <span class="n">_div0_to_if</span><span class="p">,</span> -</span><span id="Snowflake.Parser-194"><a href="#Snowflake.Parser-194"><span class="linenos">194</span></a> <span class="s2">"IFF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake.Parser-195"><a href="#Snowflake.Parser-195"><span class="linenos">195</span></a> <span class="s2">"TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake.Parser-196"><a href="#Snowflake.Parser-196"><span class="linenos">196</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_snowflake_to_timestamp</span><span class="p">,</span> -</span><span id="Snowflake.Parser-197"><a href="#Snowflake.Parser-197"><span class="linenos">197</span></a> <span class="s2">"ARRAY_CONSTRUCT"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-193"><a href="#Snowflake.Parser-193"><span class="linenos">193</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-194"><a href="#Snowflake.Parser-194"><span class="linenos">194</span></a> <span class="s2">"DIV0"</span><span class="p">:</span> <span class="n">_div0_to_if</span><span class="p">,</span> +</span><span id="Snowflake.Parser-195"><a href="#Snowflake.Parser-195"><span class="linenos">195</span></a> <span class="s2">"IFF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-196"><a href="#Snowflake.Parser-196"><span class="linenos">196</span></a> <span class="s2">"NULLIFZERO"</span><span class="p">:</span> <span class="n">_nullifzero_to_if</span><span class="p">,</span> +</span><span id="Snowflake.Parser-197"><a href="#Snowflake.Parser-197"><span class="linenos">197</span></a> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">:</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_var_map</span><span class="p">,</span> </span><span id="Snowflake.Parser-198"><a href="#Snowflake.Parser-198"><span class="linenos">198</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake.Parser-199"><a href="#Snowflake.Parser-199"><span class="linenos">199</span></a> <span class="s2">"DECODE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Snowflake.Parser-200"><a href="#Snowflake.Parser-200"><span class="linenos">200</span></a> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">:</span> <span class="n">parser</span><span class="o">.</span><span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="Snowflake.Parser-201"><a href="#Snowflake.Parser-201"><span class="linenos">201</span></a> <span class="s2">"ZEROIFNULL"</span><span class="p">:</span> <span class="n">_zeroifnull_to_if</span><span class="p">,</span> -</span><span id="Snowflake.Parser-202"><a href="#Snowflake.Parser-202"><span class="linenos">202</span></a> <span class="s2">"NULLIFZERO"</span><span class="p">:</span> <span class="n">_nullifzero_to_if</span><span class="p">,</span> -</span><span id="Snowflake.Parser-203"><a href="#Snowflake.Parser-203"><span class="linenos">203</span></a> <span class="p">}</span> -</span><span id="Snowflake.Parser-204"><a href="#Snowflake.Parser-204"><span class="linenos">204</span></a> -</span><span id="Snowflake.Parser-205"><a href="#Snowflake.Parser-205"><span class="linenos">205</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Parser-206"><a href="#Snowflake.Parser-206"><span class="linenos">206</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> -</span><span id="Snowflake.Parser-207"><a href="#Snowflake.Parser-207"><span class="linenos">207</span></a> <span class="s2">"DATE_PART"</span><span class="p">:</span> <span class="n">_parse_date_part</span><span class="p">,</span> -</span><span id="Snowflake.Parser-208"><a href="#Snowflake.Parser-208"><span class="linenos">208</span></a> <span class="p">}</span> -</span><span id="Snowflake.Parser-209"><a href="#Snowflake.Parser-209"><span class="linenos">209</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> -</span><span id="Snowflake.Parser-210"><a href="#Snowflake.Parser-210"><span class="linenos">210</span></a> -</span><span id="Snowflake.Parser-211"><a href="#Snowflake.Parser-211"><span class="linenos">211</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Parser-212"><a href="#Snowflake.Parser-212"><span class="linenos">212</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> -</span><span id="Snowflake.Parser-213"><a href="#Snowflake.Parser-213"><span class="linenos">213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="Snowflake.Parser-214"><a href="#Snowflake.Parser-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="Snowflake.Parser-215"><a href="#Snowflake.Parser-215"><span class="linenos">215</span></a> <span class="p">}</span> -</span><span id="Snowflake.Parser-216"><a href="#Snowflake.Parser-216"><span class="linenos">216</span></a> -</span><span id="Snowflake.Parser-217"><a href="#Snowflake.Parser-217"><span class="linenos">217</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Parser-218"><a href="#Snowflake.Parser-218"><span class="linenos">218</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake.Parser-219"><a href="#Snowflake.Parser-219"><span class="linenos">219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Snowflake.Parser-220"><a href="#Snowflake.Parser-220"><span class="linenos">220</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Bracket</span><span class="p">,</span> -</span><span id="Snowflake.Parser-221"><a href="#Snowflake.Parser-221"><span class="linenos">221</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Snowflake.Parser-222"><a href="#Snowflake.Parser-222"><span class="linenos">222</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">path</span><span class="p">],</span> -</span><span id="Snowflake.Parser-223"><a href="#Snowflake.Parser-223"><span class="linenos">223</span></a> <span class="p">),</span> -</span><span id="Snowflake.Parser-224"><a href="#Snowflake.Parser-224"><span class="linenos">224</span></a> <span class="p">}</span> -</span><span id="Snowflake.Parser-225"><a href="#Snowflake.Parser-225"><span class="linenos">225</span></a> -</span><span id="Snowflake.Parser-226"><a href="#Snowflake.Parser-226"><span class="linenos">226</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Parser-227"><a href="#Snowflake.Parser-227"><span class="linenos">227</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake.Parser-228"><a href="#Snowflake.Parser-228"><span class="linenos">228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LikeAny</span><span class="p">),</span> -</span><span id="Snowflake.Parser-229"><a href="#Snowflake.Parser-229"><span class="linenos">229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILikeAny</span><span class="p">),</span> -</span><span id="Snowflake.Parser-230"><a href="#Snowflake.Parser-230"><span class="linenos">230</span></a> <span class="p">}</span> -</span><span id="Snowflake.Parser-231"><a href="#Snowflake.Parser-231"><span class="linenos">231</span></a> -</span><span id="Snowflake.Parser-232"><a href="#Snowflake.Parser-232"><span class="linenos">232</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Parser-233"><a href="#Snowflake.Parser-233"><span class="linenos">233</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake.Parser-234"><a href="#Snowflake.Parser-234"><span class="linenos">234</span></a> <span class="s2">"UNSET"</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_alter_table_set_tag</span><span class="p">(</span><span class="n">unset</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Snowflake.Parser-235"><a href="#Snowflake.Parser-235"><span class="linenos">235</span></a> <span class="s2">"SET"</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_alter_table_set_tag</span><span class="p">(),</span> -</span><span id="Snowflake.Parser-236"><a href="#Snowflake.Parser-236"><span class="linenos">236</span></a> <span class="p">}</span> -</span><span id="Snowflake.Parser-237"><a href="#Snowflake.Parser-237"><span class="linenos">237</span></a> -</span><span id="Snowflake.Parser-238"><a href="#Snowflake.Parser-238"><span class="linenos">238</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Snowflake.Parser-239"><a href="#Snowflake.Parser-239"><span class="linenos">239</span></a> -</span><span id="Snowflake.Parser-240"><a href="#Snowflake.Parser-240"><span class="linenos">240</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_set_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unset</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Snowflake.Parser-241"><a href="#Snowflake.Parser-241"><span class="linenos">241</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TAG"</span><span class="p">)</span> -</span><span id="Snowflake.Parser-242"><a href="#Snowflake.Parser-242"><span class="linenos">242</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span> <span class="k">if</span> <span class="n">unset</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Snowflake.Parser-243"><a href="#Snowflake.Parser-243"><span class="linenos">243</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">SetTag</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parser</span><span class="p">),</span> <span class="n">unset</span><span class="o">=</span><span class="n">unset</span><span class="p">)</span> +</span><span id="Snowflake.Parser-199"><a href="#Snowflake.Parser-199"><span class="linenos">199</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="Snowflake.Parser-200"><a href="#Snowflake.Parser-200"><span class="linenos">200</span></a> <span class="s2">"TO_ARRAY"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-201"><a href="#Snowflake.Parser-201"><span class="linenos">201</span></a> <span class="s2">"TO_VARCHAR"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Snowflake.Parser-202"><a href="#Snowflake.Parser-202"><span class="linenos">202</span></a> <span class="s2">"TO_TIMESTAMP"</span><span class="p">:</span> <span class="n">_snowflake_to_timestamp</span><span class="p">,</span> +</span><span id="Snowflake.Parser-203"><a href="#Snowflake.Parser-203"><span class="linenos">203</span></a> <span class="s2">"ZEROIFNULL"</span><span class="p">:</span> <span class="n">_zeroifnull_to_if</span><span class="p">,</span> +</span><span id="Snowflake.Parser-204"><a href="#Snowflake.Parser-204"><span class="linenos">204</span></a> <span class="p">}</span> +</span><span id="Snowflake.Parser-205"><a href="#Snowflake.Parser-205"><span class="linenos">205</span></a> +</span><span id="Snowflake.Parser-206"><a href="#Snowflake.Parser-206"><span class="linenos">206</span></a> <span class="n">FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Parser-207"><a href="#Snowflake.Parser-207"><span class="linenos">207</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="p">,</span> +</span><span id="Snowflake.Parser-208"><a href="#Snowflake.Parser-208"><span class="linenos">208</span></a> <span class="s2">"DATE_PART"</span><span class="p">:</span> <span class="n">_parse_date_part</span><span class="p">,</span> +</span><span id="Snowflake.Parser-209"><a href="#Snowflake.Parser-209"><span class="linenos">209</span></a> <span class="p">}</span> +</span><span id="Snowflake.Parser-210"><a href="#Snowflake.Parser-210"><span class="linenos">210</span></a> <span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">)</span> +</span><span id="Snowflake.Parser-211"><a href="#Snowflake.Parser-211"><span class="linenos">211</span></a> +</span><span id="Snowflake.Parser-212"><a href="#Snowflake.Parser-212"><span class="linenos">212</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Parser-213"><a href="#Snowflake.Parser-213"><span class="linenos">213</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">,</span> +</span><span id="Snowflake.Parser-214"><a href="#Snowflake.Parser-214"><span class="linenos">214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="Snowflake.Parser-215"><a href="#Snowflake.Parser-215"><span class="linenos">215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="Snowflake.Parser-216"><a href="#Snowflake.Parser-216"><span class="linenos">216</span></a> <span class="p">}</span> +</span><span id="Snowflake.Parser-217"><a href="#Snowflake.Parser-217"><span class="linenos">217</span></a> +</span><span id="Snowflake.Parser-218"><a href="#Snowflake.Parser-218"><span class="linenos">218</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Parser-219"><a href="#Snowflake.Parser-219"><span class="linenos">219</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake.Parser-220"><a href="#Snowflake.Parser-220"><span class="linenos">220</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Snowflake.Parser-221"><a href="#Snowflake.Parser-221"><span class="linenos">221</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Bracket</span><span class="p">,</span> +</span><span id="Snowflake.Parser-222"><a href="#Snowflake.Parser-222"><span class="linenos">222</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Snowflake.Parser-223"><a href="#Snowflake.Parser-223"><span class="linenos">223</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">path</span><span class="p">],</span> +</span><span id="Snowflake.Parser-224"><a href="#Snowflake.Parser-224"><span class="linenos">224</span></a> <span class="p">),</span> +</span><span id="Snowflake.Parser-225"><a href="#Snowflake.Parser-225"><span class="linenos">225</span></a> <span class="p">}</span> +</span><span id="Snowflake.Parser-226"><a href="#Snowflake.Parser-226"><span class="linenos">226</span></a> +</span><span id="Snowflake.Parser-227"><a href="#Snowflake.Parser-227"><span class="linenos">227</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Parser-228"><a href="#Snowflake.Parser-228"><span class="linenos">228</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake.Parser-229"><a href="#Snowflake.Parser-229"><span class="linenos">229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LikeAny</span><span class="p">),</span> +</span><span id="Snowflake.Parser-230"><a href="#Snowflake.Parser-230"><span class="linenos">230</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILikeAny</span><span class="p">),</span> +</span><span id="Snowflake.Parser-231"><a href="#Snowflake.Parser-231"><span class="linenos">231</span></a> <span class="p">}</span> +</span><span id="Snowflake.Parser-232"><a href="#Snowflake.Parser-232"><span class="linenos">232</span></a> +</span><span id="Snowflake.Parser-233"><a href="#Snowflake.Parser-233"><span class="linenos">233</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Parser-234"><a href="#Snowflake.Parser-234"><span class="linenos">234</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake.Parser-235"><a href="#Snowflake.Parser-235"><span class="linenos">235</span></a> <span class="s2">"UNSET"</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_alter_table_set_tag</span><span class="p">(</span><span class="n">unset</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Snowflake.Parser-236"><a href="#Snowflake.Parser-236"><span class="linenos">236</span></a> <span class="s2">"SET"</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_alter_table_set_tag</span><span class="p">(),</span> +</span><span id="Snowflake.Parser-237"><a href="#Snowflake.Parser-237"><span class="linenos">237</span></a> <span class="p">}</span> +</span><span id="Snowflake.Parser-238"><a href="#Snowflake.Parser-238"><span class="linenos">238</span></a> +</span><span id="Snowflake.Parser-239"><a href="#Snowflake.Parser-239"><span class="linenos">239</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_set_tag</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unset</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Snowflake.Parser-240"><a href="#Snowflake.Parser-240"><span class="linenos">240</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TAG"</span><span class="p">)</span> +</span><span id="Snowflake.Parser-241"><a href="#Snowflake.Parser-241"><span class="linenos">241</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span> <span class="k">if</span> <span class="n">unset</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Snowflake.Parser-242"><a href="#Snowflake.Parser-242"><span class="linenos">242</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">SetTag</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parser</span><span class="p">),</span> <span class="n">unset</span><span class="o">=</span><span class="n">unset</span><span class="p">)</span> </span></pre></div> @@ -924,30 +924,30 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Snowflake.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Tokenizer-245"><a href="#Snowflake.Tokenizer-245"><span class="linenos">245</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Snowflake.Tokenizer-246"><a href="#Snowflake.Tokenizer-246"><span class="linenos">246</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">"$$"</span><span class="p">]</span> -</span><span id="Snowflake.Tokenizer-247"><a href="#Snowflake.Tokenizer-247"><span class="linenos">247</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="Snowflake.Tokenizer-248"><a href="#Snowflake.Tokenizer-248"><span class="linenos">248</span></a> -</span><span id="Snowflake.Tokenizer-249"><a href="#Snowflake.Tokenizer-249"><span class="linenos">249</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Tokenizer-250"><a href="#Snowflake.Tokenizer-250"><span class="linenos">250</span></a> <span class="o">**</span><span class="n">tokens</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="Snowflake.Tokenizer-251"><a href="#Snowflake.Tokenizer-251"><span class="linenos">251</span></a> <span class="s2">"EXCLUDE"</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="Snowflake.Tokenizer-252"><a href="#Snowflake.Tokenizer-252"><span class="linenos">252</span></a> <span class="s2">"ILIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-253"><a href="#Snowflake.Tokenizer-253"><span class="linenos">253</span></a> <span class="s2">"LIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-254"><a href="#Snowflake.Tokenizer-254"><span class="linenos">254</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-255"><a href="#Snowflake.Tokenizer-255"><span class="linenos">255</span></a> <span class="s2">"PUT"</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="Snowflake.Tokenizer-256"><a href="#Snowflake.Tokenizer-256"><span class="linenos">256</span></a> <span class="s2">"RENAME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-257"><a href="#Snowflake.Tokenizer-257"><span class="linenos">257</span></a> <span class="s2">"TIMESTAMP_LTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-258"><a href="#Snowflake.Tokenizer-258"><span class="linenos">258</span></a> <span class="s2">"TIMESTAMP_NTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-259"><a href="#Snowflake.Tokenizer-259"><span class="linenos">259</span></a> <span class="s2">"TIMESTAMP_TZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-260"><a href="#Snowflake.Tokenizer-260"><span class="linenos">260</span></a> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-261"><a href="#Snowflake.Tokenizer-261"><span class="linenos">261</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="Snowflake.Tokenizer-262"><a href="#Snowflake.Tokenizer-262"><span class="linenos">262</span></a> <span class="s2">"SAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-263"><a href="#Snowflake.Tokenizer-263"><span class="linenos">263</span></a> <span class="p">}</span> -</span><span id="Snowflake.Tokenizer-264"><a href="#Snowflake.Tokenizer-264"><span class="linenos">264</span></a> -</span><span id="Snowflake.Tokenizer-265"><a href="#Snowflake.Tokenizer-265"><span class="linenos">265</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Tokenizer-266"><a href="#Snowflake.Tokenizer-266"><span class="linenos">266</span></a> <span class="o">**</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-267"><a href="#Snowflake.Tokenizer-267"><span class="linenos">267</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> -</span><span id="Snowflake.Tokenizer-268"><a href="#Snowflake.Tokenizer-268"><span class="linenos">268</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Tokenizer-244"><a href="#Snowflake.Tokenizer-244"><span class="linenos">244</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Snowflake.Tokenizer-245"><a href="#Snowflake.Tokenizer-245"><span class="linenos">245</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s2">"$$"</span><span class="p">]</span> +</span><span id="Snowflake.Tokenizer-246"><a href="#Snowflake.Tokenizer-246"><span class="linenos">246</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="Snowflake.Tokenizer-247"><a href="#Snowflake.Tokenizer-247"><span class="linenos">247</span></a> +</span><span id="Snowflake.Tokenizer-248"><a href="#Snowflake.Tokenizer-248"><span class="linenos">248</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Tokenizer-249"><a href="#Snowflake.Tokenizer-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">tokens</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="Snowflake.Tokenizer-250"><a href="#Snowflake.Tokenizer-250"><span class="linenos">250</span></a> <span class="s2">"EXCLUDE"</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="Snowflake.Tokenizer-251"><a href="#Snowflake.Tokenizer-251"><span class="linenos">251</span></a> <span class="s2">"ILIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE_ANY</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-252"><a href="#Snowflake.Tokenizer-252"><span class="linenos">252</span></a> <span class="s2">"LIKE ANY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE_ANY</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-253"><a href="#Snowflake.Tokenizer-253"><span class="linenos">253</span></a> <span class="s2">"MATCH_RECOGNIZE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATCH_RECOGNIZE</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-254"><a href="#Snowflake.Tokenizer-254"><span class="linenos">254</span></a> <span class="s2">"PUT"</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="Snowflake.Tokenizer-255"><a href="#Snowflake.Tokenizer-255"><span class="linenos">255</span></a> <span class="s2">"RENAME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-256"><a href="#Snowflake.Tokenizer-256"><span class="linenos">256</span></a> <span class="s2">"TIMESTAMP_LTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-257"><a href="#Snowflake.Tokenizer-257"><span class="linenos">257</span></a> <span class="s2">"TIMESTAMP_NTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-258"><a href="#Snowflake.Tokenizer-258"><span class="linenos">258</span></a> <span class="s2">"TIMESTAMP_TZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-259"><a href="#Snowflake.Tokenizer-259"><span class="linenos">259</span></a> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-260"><a href="#Snowflake.Tokenizer-260"><span class="linenos">260</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="Snowflake.Tokenizer-261"><a href="#Snowflake.Tokenizer-261"><span class="linenos">261</span></a> <span class="s2">"SAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-262"><a href="#Snowflake.Tokenizer-262"><span class="linenos">262</span></a> <span class="p">}</span> +</span><span id="Snowflake.Tokenizer-263"><a href="#Snowflake.Tokenizer-263"><span class="linenos">263</span></a> +</span><span id="Snowflake.Tokenizer-264"><a href="#Snowflake.Tokenizer-264"><span class="linenos">264</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Tokenizer-265"><a href="#Snowflake.Tokenizer-265"><span class="linenos">265</span></a> <span class="o">**</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-266"><a href="#Snowflake.Tokenizer-266"><span class="linenos">266</span></a> <span class="s2">"$"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span><span class="p">,</span> +</span><span id="Snowflake.Tokenizer-267"><a href="#Snowflake.Tokenizer-267"><span class="linenos">267</span></a> <span class="p">}</span> </span></pre></div> @@ -975,21 +975,22 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Snowflake.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator-270"><a href="#Snowflake.Generator-270"><span class="linenos">270</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="Snowflake.Generator-271"><a href="#Snowflake.Generator-271"><span class="linenos">271</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> -</span><span id="Snowflake.Generator-272"><a href="#Snowflake.Generator-272"><span class="linenos">272</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Snowflake.Generator-273"><a href="#Snowflake.Generator-273"><span class="linenos">273</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Snowflake.Generator-274"><a href="#Snowflake.Generator-274"><span class="linenos">274</span></a> -</span><span id="Snowflake.Generator-275"><a href="#Snowflake.Generator-275"><span class="linenos">275</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Generator-276"><a href="#Snowflake.Generator-276"><span class="linenos">276</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake.Generator-277"><a href="#Snowflake.Generator-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> -</span><span id="Snowflake.Generator-278"><a href="#Snowflake.Generator-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_CAT"</span><span class="p">),</span> -</span><span id="Snowflake.Generator-279"><a href="#Snowflake.Generator-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_TO_STRING"</span><span class="p">),</span> -</span><span id="Snowflake.Generator-280"><a href="#Snowflake.Generator-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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">"DATEADD"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> -</span><span id="Snowflake.Generator-281"><a href="#Snowflake.Generator-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> -</span><span id="Snowflake.Generator-282"><a href="#Snowflake.Generator-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> -</span><span id="Snowflake.Generator-283"><a href="#Snowflake.Generator-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IFF"</span><span class="p">),</span> -</span><span id="Snowflake.Generator-284"><a href="#Snowflake.Generator-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator-269"><a href="#Snowflake.Generator-269"><span class="linenos">269</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="Snowflake.Generator-270"><a href="#Snowflake.Generator-270"><span class="linenos">270</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"$"</span> +</span><span id="Snowflake.Generator-271"><a href="#Snowflake.Generator-271"><span class="linenos">271</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Snowflake.Generator-272"><a href="#Snowflake.Generator-272"><span class="linenos">272</span></a> +</span><span id="Snowflake.Generator-273"><a href="#Snowflake.Generator-273"><span class="linenos">273</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Generator-274"><a href="#Snowflake.Generator-274"><span class="linenos">274</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake.Generator-275"><a href="#Snowflake.Generator-275"><span class="linenos">275</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Array</span><span class="p">:</span> <span class="n">inline_array_sql</span><span class="p">,</span> +</span><span id="Snowflake.Generator-276"><a href="#Snowflake.Generator-276"><span class="linenos">276</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayConcat</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_CAT"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-277"><a href="#Snowflake.Generator-277"><span class="linenos">277</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ArrayJoin</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"ARRAY_TO_STRING"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-278"><a href="#Snowflake.Generator-278"><span class="linenos">278</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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">"DATEADD"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">e</span><span class="o">.</span><span class="n">this</span><span class="p">),</span> +</span><span id="Snowflake.Generator-279"><a href="#Snowflake.Generator-279"><span class="linenos">279</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</span><span class="p">:</span> <span class="n">datestrtodate_sql</span><span class="p">,</span> +</span><span id="Snowflake.Generator-280"><a href="#Snowflake.Generator-280"><span class="linenos">280</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">:</span> <span class="n">_datatype_sql</span><span class="p">,</span> +</span><span id="Snowflake.Generator-281"><a href="#Snowflake.Generator-281"><span class="linenos">281</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IFF"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-282"><a href="#Snowflake.Generator-282"><span class="linenos">282</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Map</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-283"><a href="#Snowflake.Generator-283"><span class="linenos">283</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOLOR_AGG"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-284"><a href="#Snowflake.Generator-284"><span class="linenos">284</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOLAND_AGG"</span><span class="p">),</span> </span><span id="Snowflake.Generator-285"><a href="#Snowflake.Generator-285"><span class="linenos">285</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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="n">var_map_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">e</span><span class="p">,</span> <span class="s2">"OBJECT_CONSTRUCT"</span><span class="p">),</span> </span><span id="Snowflake.Generator-286"><a href="#Snowflake.Generator-286"><span class="linenos">286</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</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="sa">f</span><span class="s2">"PARTITION BY </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="Snowflake.Generator-287"><a href="#Snowflake.Generator-287"><span class="linenos">287</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Matches</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DECODE"</span><span class="p">),</span> @@ -997,108 +998,110 @@ Default: "nulls_are_small"</li> </span><span id="Snowflake.Generator-289"><a href="#Snowflake.Generator-289"><span class="linenos">289</span></a> <span class="s2">"POSITION"</span><span class="p">,</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">"substr"</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="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">"position"</span><span class="p">)</span> </span><span id="Snowflake.Generator-290"><a href="#Snowflake.Generator-290"><span class="linenos">290</span></a> <span class="p">),</span> </span><span id="Snowflake.Generator-291"><a href="#Snowflake.Generator-291"><span class="linenos">291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToTime</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="sa">f</span><span class="s2">"TO_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Snowflake.Generator-292"><a href="#Snowflake.Generator-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> -</span><span id="Snowflake.Generator-293"><a href="#Snowflake.Generator-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</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="sa">f</span><span class="s2">"EXTRACT(epoch_second FROM </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="Snowflake.Generator-294"><a href="#Snowflake.Generator-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> -</span><span id="Snowflake.Generator-295"><a href="#Snowflake.Generator-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"snowflake"</span><span class="p">),</span> -</span><span id="Snowflake.Generator-296"><a href="#Snowflake.Generator-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">_unix_to_time_sql</span><span class="p">,</span> -</span><span id="Snowflake.Generator-297"><a href="#Snowflake.Generator-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="Snowflake.Generator-298"><a href="#Snowflake.Generator-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Snowflake.Generator-299"><a href="#Snowflake.Generator-299"><span class="linenos">299</span></a> <span class="p">}</span> -</span><span id="Snowflake.Generator-300"><a href="#Snowflake.Generator-300"><span class="linenos">300</span></a> -</span><span id="Snowflake.Generator-301"><a href="#Snowflake.Generator-301"><span class="linenos">301</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Generator-302"><a href="#Snowflake.Generator-302"><span class="linenos">302</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="Snowflake.Generator-303"><a href="#Snowflake.Generator-303"><span class="linenos">303</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">,</span> -</span><span id="Snowflake.Generator-304"><a href="#Snowflake.Generator-304"><span class="linenos">304</span></a> <span class="p">}</span> -</span><span id="Snowflake.Generator-305"><a href="#Snowflake.Generator-305"><span class="linenos">305</span></a> -</span><span id="Snowflake.Generator-306"><a href="#Snowflake.Generator-306"><span class="linenos">306</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Generator-307"><a href="#Snowflake.Generator-307"><span class="linenos">307</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> -</span><span id="Snowflake.Generator-308"><a href="#Snowflake.Generator-308"><span class="linenos">308</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"RENAME"</span><span class="p">,</span> -</span><span id="Snowflake.Generator-309"><a href="#Snowflake.Generator-309"><span class="linenos">309</span></a> <span class="p">}</span> -</span><span id="Snowflake.Generator-310"><a href="#Snowflake.Generator-310"><span class="linenos">310</span></a> -</span><span id="Snowflake.Generator-311"><a href="#Snowflake.Generator-311"><span class="linenos">311</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Snowflake.Generator-312"><a href="#Snowflake.Generator-312"><span class="linenos">312</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="Snowflake.Generator-313"><a href="#Snowflake.Generator-313"><span class="linenos">313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> -</span><span id="Snowflake.Generator-314"><a href="#Snowflake.Generator-314"><span class="linenos">314</span></a> <span class="p">}</span> -</span><span id="Snowflake.Generator-315"><a href="#Snowflake.Generator-315"><span class="linenos">315</span></a> -</span><span id="Snowflake.Generator-316"><a href="#Snowflake.Generator-316"><span class="linenos">316</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-317"><a href="#Snowflake.Generator-317"><span class="linenos">317</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-318"><a href="#Snowflake.Generator-318"><span class="linenos">318</span></a> -</span><span id="Snowflake.Generator-319"><a href="#Snowflake.Generator-319"><span class="linenos">319</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-320"><a href="#Snowflake.Generator-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-321"><a href="#Snowflake.Generator-321"><span class="linenos">321</span></a> -</span><span id="Snowflake.Generator-322"><a href="#Snowflake.Generator-322"><span class="linenos">322</span></a> <span class="k">def</span> <span class="nf">except_op</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="Snowflake.Generator-323"><a href="#Snowflake.Generator-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="Snowflake.Generator-324"><a href="#Snowflake.Generator-324"><span class="linenos">324</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-325"><a href="#Snowflake.Generator-325"><span class="linenos">325</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake.Generator-326"><a href="#Snowflake.Generator-326"><span class="linenos">326</span></a> -</span><span id="Snowflake.Generator-327"><a href="#Snowflake.Generator-327"><span class="linenos">327</span></a> <span class="k">def</span> <span class="nf">intersect_op</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="Snowflake.Generator-328"><a href="#Snowflake.Generator-328"><span class="linenos">328</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="Snowflake.Generator-329"><a href="#Snowflake.Generator-329"><span class="linenos">329</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-330"><a href="#Snowflake.Generator-330"><span class="linenos">330</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake.Generator-331"><a href="#Snowflake.Generator-331"><span class="linenos">331</span></a> -</span><span id="Snowflake.Generator-332"><a href="#Snowflake.Generator-332"><span class="linenos">332</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-333"><a href="#Snowflake.Generator-333"><span class="linenos">333</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> -</span><span id="Snowflake.Generator-334"><a href="#Snowflake.Generator-334"><span class="linenos">334</span></a> -</span><span id="Snowflake.Generator-335"><a href="#Snowflake.Generator-335"><span class="linenos">335</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> -</span><span id="Snowflake.Generator-336"><a href="#Snowflake.Generator-336"><span class="linenos">336</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> -</span><span id="Snowflake.Generator-337"><a href="#Snowflake.Generator-337"><span class="linenos">337</span></a><span class="sd"> """</span> -</span><span id="Snowflake.Generator-338"><a href="#Snowflake.Generator-338"><span class="linenos">338</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-339"><a href="#Snowflake.Generator-339"><span class="linenos">339</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> -</span><span id="Snowflake.Generator-340"><a href="#Snowflake.Generator-340"><span class="linenos">340</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Snowflake.Generator-341"><a href="#Snowflake.Generator-341"><span class="linenos">341</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="Snowflake.Generator-342"><a href="#Snowflake.Generator-342"><span class="linenos">342</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> -</span><span id="Snowflake.Generator-343"><a href="#Snowflake.Generator-343"><span class="linenos">343</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> -</span><span id="Snowflake.Generator-344"><a href="#Snowflake.Generator-344"><span class="linenos">344</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> -</span><span id="Snowflake.Generator-345"><a href="#Snowflake.Generator-345"><span class="linenos">345</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="Snowflake.Generator-346"><a href="#Snowflake.Generator-346"><span class="linenos">346</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator-347"><a href="#Snowflake.Generator-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Snowflake.Generator-348"><a href="#Snowflake.Generator-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake.Generator-349"><a href="#Snowflake.Generator-349"><span class="linenos">349</span></a> -</span><span id="Snowflake.Generator-350"><a href="#Snowflake.Generator-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-351"><a href="#Snowflake.Generator-351"><span class="linenos">351</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> -</span><span id="Snowflake.Generator-352"><a href="#Snowflake.Generator-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> -</span><span id="Snowflake.Generator-353"><a href="#Snowflake.Generator-353"><span class="linenos">353</span></a> -</span><span id="Snowflake.Generator-354"><a href="#Snowflake.Generator-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-355"><a href="#Snowflake.Generator-355"><span class="linenos">355</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> -</span><span id="Snowflake.Generator-356"><a href="#Snowflake.Generator-356"><span class="linenos">356</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> -</span><span id="Snowflake.Generator-357"><a href="#Snowflake.Generator-357"><span class="linenos">357</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> -</span><span id="Snowflake.Generator-358"><a href="#Snowflake.Generator-358"><span class="linenos">358</span></a><span class="sd"> generating the SQL.</span> -</span><span id="Snowflake.Generator-359"><a href="#Snowflake.Generator-359"><span class="linenos">359</span></a> -</span><span id="Snowflake.Generator-360"><a href="#Snowflake.Generator-360"><span class="linenos">360</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> -</span><span id="Snowflake.Generator-361"><a href="#Snowflake.Generator-361"><span class="linenos">361</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> -</span><span id="Snowflake.Generator-362"><a href="#Snowflake.Generator-362"><span class="linenos">362</span></a><span class="sd"> properly quote but should be true in most cases.</span> -</span><span id="Snowflake.Generator-363"><a href="#Snowflake.Generator-363"><span class="linenos">363</span></a><span class="sd"> """</span> -</span><span id="Snowflake.Generator-364"><a href="#Snowflake.Generator-364"><span class="linenos">364</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> -</span><span id="Snowflake.Generator-365"><a href="#Snowflake.Generator-365"><span class="linenos">365</span></a> <span class="n">flatten</span><span class="p">(</span> -</span><span id="Snowflake.Generator-366"><a href="#Snowflake.Generator-366"><span class="linenos">366</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Snowflake.Generator-367"><a href="#Snowflake.Generator-367"><span class="linenos">367</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> -</span><span id="Snowflake.Generator-368"><a href="#Snowflake.Generator-368"><span class="linenos">368</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator-369"><a href="#Snowflake.Generator-369"><span class="linenos">369</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator-370"><a href="#Snowflake.Generator-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> -</span><span id="Snowflake.Generator-371"><a href="#Snowflake.Generator-371"><span class="linenos">371</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Snowflake.Generator-372"><a href="#Snowflake.Generator-372"><span class="linenos">372</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="Snowflake.Generator-373"><a href="#Snowflake.Generator-373"><span class="linenos">373</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> -</span><span id="Snowflake.Generator-374"><a href="#Snowflake.Generator-374"><span class="linenos">374</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="Snowflake.Generator-375"><a href="#Snowflake.Generator-375"><span class="linenos">375</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator-376"><a href="#Snowflake.Generator-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Snowflake.Generator-377"><a href="#Snowflake.Generator-377"><span class="linenos">377</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Snowflake.Generator-378"><a href="#Snowflake.Generator-378"><span class="linenos">378</span></a> -</span><span id="Snowflake.Generator-379"><a href="#Snowflake.Generator-379"><span class="linenos">379</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-380"><a href="#Snowflake.Generator-380"><span class="linenos">380</span></a> <span class="c1"># Default to table if kind is unknown</span> -</span><span id="Snowflake.Generator-381"><a href="#Snowflake.Generator-381"><span class="linenos">381</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> -</span><span id="Snowflake.Generator-382"><a href="#Snowflake.Generator-382"><span class="linenos">382</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake.Generator-383"><a href="#Snowflake.Generator-383"><span class="linenos">383</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="Snowflake.Generator-384"><a href="#Snowflake.Generator-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Snowflake.Generator-385"><a href="#Snowflake.Generator-385"><span class="linenos">385</span></a> -</span><span id="Snowflake.Generator-386"><a href="#Snowflake.Generator-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="Snowflake.Generator-387"><a href="#Snowflake.Generator-387"><span class="linenos">387</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="Snowflake.Generator-388"><a href="#Snowflake.Generator-388"><span class="linenos">388</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator-389"><a href="#Snowflake.Generator-389"><span class="linenos">389</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-390"><a href="#Snowflake.Generator-390"><span class="linenos">390</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake.Generator-391"><a href="#Snowflake.Generator-391"><span class="linenos">391</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="Snowflake.Generator-392"><a href="#Snowflake.Generator-392"><span class="linenos">392</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake.Generator-393"><a href="#Snowflake.Generator-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Snowflake.Generator-292"><a href="#Snowflake.Generator-292"><span class="linenos">292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</span><span class="p">:</span> <span class="n">timestamptrunc_sql</span><span class="p">,</span> +</span><span id="Snowflake.Generator-293"><a href="#Snowflake.Generator-293"><span class="linenos">293</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</span><span class="p">:</span> <span class="n">timestrtotime_sql</span><span class="p">,</span> +</span><span id="Snowflake.Generator-294"><a href="#Snowflake.Generator-294"><span class="linenos">294</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToUnix</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="sa">f</span><span class="s2">"EXTRACT(epoch_second FROM </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="Snowflake.Generator-295"><a href="#Snowflake.Generator-295"><span class="linenos">295</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</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">"TRIM"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="Snowflake.Generator-296"><a href="#Snowflake.Generator-296"><span class="linenos">296</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Snowflake.Generator-297"><a href="#Snowflake.Generator-297"><span class="linenos">297</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsToDate</span><span class="p">:</span> <span class="n">ts_or_ds_to_date_sql</span><span class="p">(</span><span class="s2">"snowflake"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-298"><a href="#Snowflake.Generator-298"><span class="linenos">298</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">_unix_to_time_sql</span><span class="p">,</span> +</span><span id="Snowflake.Generator-299"><a href="#Snowflake.Generator-299"><span class="linenos">299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="Snowflake.Generator-300"><a href="#Snowflake.Generator-300"><span class="linenos">300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="Snowflake.Generator-301"><a href="#Snowflake.Generator-301"><span class="linenos">301</span></a> <span class="p">}</span> +</span><span id="Snowflake.Generator-302"><a href="#Snowflake.Generator-302"><span class="linenos">302</span></a> +</span><span id="Snowflake.Generator-303"><a href="#Snowflake.Generator-303"><span class="linenos">303</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Generator-304"><a href="#Snowflake.Generator-304"><span class="linenos">304</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="Snowflake.Generator-305"><a href="#Snowflake.Generator-305"><span class="linenos">305</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"TIMESTAMPNTZ"</span><span class="p">,</span> +</span><span id="Snowflake.Generator-306"><a href="#Snowflake.Generator-306"><span class="linenos">306</span></a> <span class="p">}</span> +</span><span id="Snowflake.Generator-307"><a href="#Snowflake.Generator-307"><span class="linenos">307</span></a> +</span><span id="Snowflake.Generator-308"><a href="#Snowflake.Generator-308"><span class="linenos">308</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Generator-309"><a href="#Snowflake.Generator-309"><span class="linenos">309</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCLUDE"</span><span class="p">,</span> +</span><span id="Snowflake.Generator-310"><a href="#Snowflake.Generator-310"><span class="linenos">310</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"RENAME"</span><span class="p">,</span> +</span><span id="Snowflake.Generator-311"><a href="#Snowflake.Generator-311"><span class="linenos">311</span></a> <span class="p">}</span> +</span><span id="Snowflake.Generator-312"><a href="#Snowflake.Generator-312"><span class="linenos">312</span></a> +</span><span id="Snowflake.Generator-313"><a href="#Snowflake.Generator-313"><span class="linenos">313</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Snowflake.Generator-314"><a href="#Snowflake.Generator-314"><span class="linenos">314</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="Snowflake.Generator-315"><a href="#Snowflake.Generator-315"><span class="linenos">315</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">,</span> +</span><span id="Snowflake.Generator-316"><a href="#Snowflake.Generator-316"><span class="linenos">316</span></a> <span class="p">}</span> +</span><span id="Snowflake.Generator-317"><a href="#Snowflake.Generator-317"><span class="linenos">317</span></a> +</span><span id="Snowflake.Generator-318"><a href="#Snowflake.Generator-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-319"><a href="#Snowflake.Generator-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-320"><a href="#Snowflake.Generator-320"><span class="linenos">320</span></a> +</span><span id="Snowflake.Generator-321"><a href="#Snowflake.Generator-321"><span class="linenos">321</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-322"><a href="#Snowflake.Generator-322"><span class="linenos">322</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-323"><a href="#Snowflake.Generator-323"><span class="linenos">323</span></a> +</span><span id="Snowflake.Generator-324"><a href="#Snowflake.Generator-324"><span class="linenos">324</span></a> <span class="k">def</span> <span class="nf">except_op</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="Snowflake.Generator-325"><a href="#Snowflake.Generator-325"><span class="linenos">325</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="Snowflake.Generator-326"><a href="#Snowflake.Generator-326"><span class="linenos">326</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-327"><a href="#Snowflake.Generator-327"><span class="linenos">327</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake.Generator-328"><a href="#Snowflake.Generator-328"><span class="linenos">328</span></a> +</span><span id="Snowflake.Generator-329"><a href="#Snowflake.Generator-329"><span class="linenos">329</span></a> <span class="k">def</span> <span class="nf">intersect_op</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="Snowflake.Generator-330"><a href="#Snowflake.Generator-330"><span class="linenos">330</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="Snowflake.Generator-331"><a href="#Snowflake.Generator-331"><span class="linenos">331</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-332"><a href="#Snowflake.Generator-332"><span class="linenos">332</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake.Generator-333"><a href="#Snowflake.Generator-333"><span class="linenos">333</span></a> +</span><span id="Snowflake.Generator-334"><a href="#Snowflake.Generator-334"><span class="linenos">334</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-335"><a href="#Snowflake.Generator-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> +</span><span id="Snowflake.Generator-336"><a href="#Snowflake.Generator-336"><span class="linenos">336</span></a> +</span><span id="Snowflake.Generator-337"><a href="#Snowflake.Generator-337"><span class="linenos">337</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> +</span><span id="Snowflake.Generator-338"><a href="#Snowflake.Generator-338"><span class="linenos">338</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> +</span><span id="Snowflake.Generator-339"><a href="#Snowflake.Generator-339"><span class="linenos">339</span></a><span class="sd"> """</span> +</span><span id="Snowflake.Generator-340"><a href="#Snowflake.Generator-340"><span class="linenos">340</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-341"><a href="#Snowflake.Generator-341"><span class="linenos">341</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> +</span><span id="Snowflake.Generator-342"><a href="#Snowflake.Generator-342"><span class="linenos">342</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Snowflake.Generator-343"><a href="#Snowflake.Generator-343"><span class="linenos">343</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="Snowflake.Generator-344"><a href="#Snowflake.Generator-344"><span class="linenos">344</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> +</span><span id="Snowflake.Generator-345"><a href="#Snowflake.Generator-345"><span class="linenos">345</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> +</span><span id="Snowflake.Generator-346"><a href="#Snowflake.Generator-346"><span class="linenos">346</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> +</span><span id="Snowflake.Generator-347"><a href="#Snowflake.Generator-347"><span class="linenos">347</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="Snowflake.Generator-348"><a href="#Snowflake.Generator-348"><span class="linenos">348</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator-349"><a href="#Snowflake.Generator-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Snowflake.Generator-350"><a href="#Snowflake.Generator-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake.Generator-351"><a href="#Snowflake.Generator-351"><span class="linenos">351</span></a> +</span><span id="Snowflake.Generator-352"><a href="#Snowflake.Generator-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-353"><a href="#Snowflake.Generator-353"><span class="linenos">353</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> +</span><span id="Snowflake.Generator-354"><a href="#Snowflake.Generator-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> +</span><span id="Snowflake.Generator-355"><a href="#Snowflake.Generator-355"><span class="linenos">355</span></a> +</span><span id="Snowflake.Generator-356"><a href="#Snowflake.Generator-356"><span class="linenos">356</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-357"><a href="#Snowflake.Generator-357"><span class="linenos">357</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> +</span><span id="Snowflake.Generator-358"><a href="#Snowflake.Generator-358"><span class="linenos">358</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> +</span><span id="Snowflake.Generator-359"><a href="#Snowflake.Generator-359"><span class="linenos">359</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> +</span><span id="Snowflake.Generator-360"><a href="#Snowflake.Generator-360"><span class="linenos">360</span></a><span class="sd"> generating the SQL.</span> +</span><span id="Snowflake.Generator-361"><a href="#Snowflake.Generator-361"><span class="linenos">361</span></a> +</span><span id="Snowflake.Generator-362"><a href="#Snowflake.Generator-362"><span class="linenos">362</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> +</span><span id="Snowflake.Generator-363"><a href="#Snowflake.Generator-363"><span class="linenos">363</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> +</span><span id="Snowflake.Generator-364"><a href="#Snowflake.Generator-364"><span class="linenos">364</span></a><span class="sd"> properly quote but should be true in most cases.</span> +</span><span id="Snowflake.Generator-365"><a href="#Snowflake.Generator-365"><span class="linenos">365</span></a><span class="sd"> """</span> +</span><span id="Snowflake.Generator-366"><a href="#Snowflake.Generator-366"><span class="linenos">366</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> +</span><span id="Snowflake.Generator-367"><a href="#Snowflake.Generator-367"><span class="linenos">367</span></a> <span class="n">flatten</span><span class="p">(</span> +</span><span id="Snowflake.Generator-368"><a href="#Snowflake.Generator-368"><span class="linenos">368</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Snowflake.Generator-369"><a href="#Snowflake.Generator-369"><span class="linenos">369</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> +</span><span id="Snowflake.Generator-370"><a href="#Snowflake.Generator-370"><span class="linenos">370</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator-371"><a href="#Snowflake.Generator-371"><span class="linenos">371</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator-372"><a href="#Snowflake.Generator-372"><span class="linenos">372</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> +</span><span id="Snowflake.Generator-373"><a href="#Snowflake.Generator-373"><span class="linenos">373</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Snowflake.Generator-374"><a href="#Snowflake.Generator-374"><span class="linenos">374</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="Snowflake.Generator-375"><a href="#Snowflake.Generator-375"><span class="linenos">375</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> +</span><span id="Snowflake.Generator-376"><a href="#Snowflake.Generator-376"><span class="linenos">376</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="Snowflake.Generator-377"><a href="#Snowflake.Generator-377"><span class="linenos">377</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator-378"><a href="#Snowflake.Generator-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Snowflake.Generator-379"><a href="#Snowflake.Generator-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Snowflake.Generator-380"><a href="#Snowflake.Generator-380"><span class="linenos">380</span></a> +</span><span id="Snowflake.Generator-381"><a href="#Snowflake.Generator-381"><span class="linenos">381</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-382"><a href="#Snowflake.Generator-382"><span class="linenos">382</span></a> <span class="c1"># Default to table if kind is unknown</span> +</span><span id="Snowflake.Generator-383"><a href="#Snowflake.Generator-383"><span class="linenos">383</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> +</span><span id="Snowflake.Generator-384"><a href="#Snowflake.Generator-384"><span class="linenos">384</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake.Generator-385"><a href="#Snowflake.Generator-385"><span class="linenos">385</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="Snowflake.Generator-386"><a href="#Snowflake.Generator-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Snowflake.Generator-387"><a href="#Snowflake.Generator-387"><span class="linenos">387</span></a> +</span><span id="Snowflake.Generator-388"><a href="#Snowflake.Generator-388"><span class="linenos">388</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="Snowflake.Generator-389"><a href="#Snowflake.Generator-389"><span class="linenos">389</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="Snowflake.Generator-390"><a href="#Snowflake.Generator-390"><span class="linenos">390</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator-391"><a href="#Snowflake.Generator-391"><span class="linenos">391</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-392"><a href="#Snowflake.Generator-392"><span class="linenos">392</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake.Generator-393"><a href="#Snowflake.Generator-393"><span class="linenos">393</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="Snowflake.Generator-394"><a href="#Snowflake.Generator-394"><span class="linenos">394</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake.Generator-395"><a href="#Snowflake.Generator-395"><span class="linenos">395</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1115,8 +1118,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -1158,8 +1160,8 @@ Default: True</li> </div> <a class="headerlink" href="#Snowflake.Generator.ilikeany_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.ilikeany_sql-316"><a href="#Snowflake.Generator.ilikeany_sql-316"><span class="linenos">316</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.ilikeany_sql-317"><a href="#Snowflake.Generator.ilikeany_sql-317"><span class="linenos">317</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.ilikeany_sql-318"><a href="#Snowflake.Generator.ilikeany_sql-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">ilikeany_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">ILikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.ilikeany_sql-319"><a href="#Snowflake.Generator.ilikeany_sql-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE ANY"</span><span class="p">)</span> </span></pre></div> @@ -1177,8 +1179,8 @@ Default: True</li> </div> <a class="headerlink" href="#Snowflake.Generator.likeany_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.likeany_sql-319"><a href="#Snowflake.Generator.likeany_sql-319"><span class="linenos">319</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.likeany_sql-320"><a href="#Snowflake.Generator.likeany_sql-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.likeany_sql-321"><a href="#Snowflake.Generator.likeany_sql-321"><span class="linenos">321</span></a> <span class="k">def</span> <span class="nf">likeany_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">LikeAny</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.likeany_sql-322"><a href="#Snowflake.Generator.likeany_sql-322"><span class="linenos">322</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE ANY"</span><span class="p">)</span> </span></pre></div> @@ -1196,10 +1198,10 @@ Default: True</li> </div> <a class="headerlink" href="#Snowflake.Generator.except_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.except_op-322"><a href="#Snowflake.Generator.except_op-322"><span class="linenos">322</span></a> <span class="k">def</span> <span class="nf">except_op</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="Snowflake.Generator.except_op-323"><a href="#Snowflake.Generator.except_op-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="Snowflake.Generator.except_op-324"><a href="#Snowflake.Generator.except_op-324"><span class="linenos">324</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="Snowflake.Generator.except_op-325"><a href="#Snowflake.Generator.except_op-325"><span class="linenos">325</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.except_op-324"><a href="#Snowflake.Generator.except_op-324"><span class="linenos">324</span></a> <span class="k">def</span> <span class="nf">except_op</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="Snowflake.Generator.except_op-325"><a href="#Snowflake.Generator.except_op-325"><span class="linenos">325</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="Snowflake.Generator.except_op-326"><a href="#Snowflake.Generator.except_op-326"><span class="linenos">326</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"EXCEPT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="Snowflake.Generator.except_op-327"><a href="#Snowflake.Generator.except_op-327"><span class="linenos">327</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -1217,10 +1219,10 @@ Default: True</li> </div> <a class="headerlink" href="#Snowflake.Generator.intersect_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.intersect_op-327"><a href="#Snowflake.Generator.intersect_op-327"><span class="linenos">327</span></a> <span class="k">def</span> <span class="nf">intersect_op</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="Snowflake.Generator.intersect_op-328"><a href="#Snowflake.Generator.intersect_op-328"><span class="linenos">328</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> -</span><span id="Snowflake.Generator.intersect_op-329"><a href="#Snowflake.Generator.intersect_op-329"><span class="linenos">329</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> -</span><span id="Snowflake.Generator.intersect_op-330"><a href="#Snowflake.Generator.intersect_op-330"><span class="linenos">330</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.intersect_op-329"><a href="#Snowflake.Generator.intersect_op-329"><span class="linenos">329</span></a> <span class="k">def</span> <span class="nf">intersect_op</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="Snowflake.Generator.intersect_op-330"><a href="#Snowflake.Generator.intersect_op-330"><span class="linenos">330</span></a> <span class="k">if</span> <span class="ow">not</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">"distinct"</span><span class="p">,</span> <span class="kc">False</span><span class="p">):</span> +</span><span id="Snowflake.Generator.intersect_op-331"><a href="#Snowflake.Generator.intersect_op-331"><span class="linenos">331</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"INTERSECT with All is not supported in Snowflake"</span><span class="p">)</span> +</span><span id="Snowflake.Generator.intersect_op-332"><a href="#Snowflake.Generator.intersect_op-332"><span class="linenos">332</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -1238,23 +1240,23 @@ Default: True</li> </div> <a class="headerlink" href="#Snowflake.Generator.values_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.values_sql-332"><a href="#Snowflake.Generator.values_sql-332"><span class="linenos">332</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.values_sql-333"><a href="#Snowflake.Generator.values_sql-333"><span class="linenos">333</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> -</span><span id="Snowflake.Generator.values_sql-334"><a href="#Snowflake.Generator.values_sql-334"><span class="linenos">334</span></a> -</span><span id="Snowflake.Generator.values_sql-335"><a href="#Snowflake.Generator.values_sql-335"><span class="linenos">335</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> -</span><span id="Snowflake.Generator.values_sql-336"><a href="#Snowflake.Generator.values_sql-336"><span class="linenos">336</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> -</span><span id="Snowflake.Generator.values_sql-337"><a href="#Snowflake.Generator.values_sql-337"><span class="linenos">337</span></a><span class="sd"> """</span> -</span><span id="Snowflake.Generator.values_sql-338"><a href="#Snowflake.Generator.values_sql-338"><span class="linenos">338</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Snowflake.Generator.values_sql-339"><a href="#Snowflake.Generator.values_sql-339"><span class="linenos">339</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> -</span><span id="Snowflake.Generator.values_sql-340"><a href="#Snowflake.Generator.values_sql-340"><span class="linenos">340</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Snowflake.Generator.values_sql-341"><a href="#Snowflake.Generator.values_sql-341"><span class="linenos">341</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="Snowflake.Generator.values_sql-342"><a href="#Snowflake.Generator.values_sql-342"><span class="linenos">342</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> -</span><span id="Snowflake.Generator.values_sql-343"><a href="#Snowflake.Generator.values_sql-343"><span class="linenos">343</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> -</span><span id="Snowflake.Generator.values_sql-344"><a href="#Snowflake.Generator.values_sql-344"><span class="linenos">344</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> -</span><span id="Snowflake.Generator.values_sql-345"><a href="#Snowflake.Generator.values_sql-345"><span class="linenos">345</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="Snowflake.Generator.values_sql-346"><a href="#Snowflake.Generator.values_sql-346"><span class="linenos">346</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator.values_sql-347"><a href="#Snowflake.Generator.values_sql-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Snowflake.Generator.values_sql-348"><a href="#Snowflake.Generator.values_sql-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.values_sql-334"><a href="#Snowflake.Generator.values_sql-334"><span class="linenos">334</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.values_sql-335"><a href="#Snowflake.Generator.values_sql-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted.</span> +</span><span id="Snowflake.Generator.values_sql-336"><a href="#Snowflake.Generator.values_sql-336"><span class="linenos">336</span></a> +</span><span id="Snowflake.Generator.values_sql-337"><a href="#Snowflake.Generator.values_sql-337"><span class="linenos">337</span></a><span class="sd"> We also want to make sure that after we find matches where we need to unquote a column that we prevent users</span> +</span><span id="Snowflake.Generator.values_sql-338"><a href="#Snowflake.Generator.values_sql-338"><span class="linenos">338</span></a><span class="sd"> from adding quotes to the column by using the `identify` argument when generating the SQL.</span> +</span><span id="Snowflake.Generator.values_sql-339"><a href="#Snowflake.Generator.values_sql-339"><span class="linenos">339</span></a><span class="sd"> """</span> +</span><span id="Snowflake.Generator.values_sql-340"><a href="#Snowflake.Generator.values_sql-340"><span class="linenos">340</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Snowflake.Generator.values_sql-341"><a href="#Snowflake.Generator.values_sql-341"><span class="linenos">341</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> +</span><span id="Snowflake.Generator.values_sql-342"><a href="#Snowflake.Generator.values_sql-342"><span class="linenos">342</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Snowflake.Generator.values_sql-343"><a href="#Snowflake.Generator.values_sql-343"><span class="linenos">343</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="Snowflake.Generator.values_sql-344"><a href="#Snowflake.Generator.values_sql-344"><span class="linenos">344</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> +</span><span id="Snowflake.Generator.values_sql-345"><a href="#Snowflake.Generator.values_sql-345"><span class="linenos">345</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">)</span> +</span><span id="Snowflake.Generator.values_sql-346"><a href="#Snowflake.Generator.values_sql-346"><span class="linenos">346</span></a> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">==</span> <span class="s2">"columns"</span> +</span><span id="Snowflake.Generator.values_sql-347"><a href="#Snowflake.Generator.values_sql-347"><span class="linenos">347</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="Snowflake.Generator.values_sql-348"><a href="#Snowflake.Generator.values_sql-348"><span class="linenos">348</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator.values_sql-349"><a href="#Snowflake.Generator.values_sql-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Snowflake.Generator.values_sql-350"><a href="#Snowflake.Generator.values_sql-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">values_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -1277,9 +1279,9 @@ from adding quotes to the column by using the <code>identify</code> argument whe </div> <a class="headerlink" href="#Snowflake.Generator.settag_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.settag_sql-350"><a href="#Snowflake.Generator.settag_sql-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.settag_sql-351"><a href="#Snowflake.Generator.settag_sql-351"><span class="linenos">351</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> -</span><span id="Snowflake.Generator.settag_sql-352"><a href="#Snowflake.Generator.settag_sql-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.settag_sql-352"><a href="#Snowflake.Generator.settag_sql-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">settag_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">SetTag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.settag_sql-353"><a href="#Snowflake.Generator.settag_sql-353"><span class="linenos">353</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"UNSET"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unset"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"SET"</span> +</span><span id="Snowflake.Generator.settag_sql-354"><a href="#Snowflake.Generator.settag_sql-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2"> TAG </span><span class="si">{</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="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1297,30 +1299,30 @@ from adding quotes to the column by using the <code>identify</code> argument whe </div> <a class="headerlink" href="#Snowflake.Generator.select_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.select_sql-354"><a href="#Snowflake.Generator.select_sql-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.select_sql-355"><a href="#Snowflake.Generator.select_sql-355"><span class="linenos">355</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> -</span><span id="Snowflake.Generator.select_sql-356"><a href="#Snowflake.Generator.select_sql-356"><span class="linenos">356</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> -</span><span id="Snowflake.Generator.select_sql-357"><a href="#Snowflake.Generator.select_sql-357"><span class="linenos">357</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> -</span><span id="Snowflake.Generator.select_sql-358"><a href="#Snowflake.Generator.select_sql-358"><span class="linenos">358</span></a><span class="sd"> generating the SQL.</span> -</span><span id="Snowflake.Generator.select_sql-359"><a href="#Snowflake.Generator.select_sql-359"><span class="linenos">359</span></a> -</span><span id="Snowflake.Generator.select_sql-360"><a href="#Snowflake.Generator.select_sql-360"><span class="linenos">360</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> -</span><span id="Snowflake.Generator.select_sql-361"><a href="#Snowflake.Generator.select_sql-361"><span class="linenos">361</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> -</span><span id="Snowflake.Generator.select_sql-362"><a href="#Snowflake.Generator.select_sql-362"><span class="linenos">362</span></a><span class="sd"> properly quote but should be true in most cases.</span> -</span><span id="Snowflake.Generator.select_sql-363"><a href="#Snowflake.Generator.select_sql-363"><span class="linenos">363</span></a><span class="sd"> """</span> -</span><span id="Snowflake.Generator.select_sql-364"><a href="#Snowflake.Generator.select_sql-364"><span class="linenos">364</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> -</span><span id="Snowflake.Generator.select_sql-365"><a href="#Snowflake.Generator.select_sql-365"><span class="linenos">365</span></a> <span class="n">flatten</span><span class="p">(</span> -</span><span id="Snowflake.Generator.select_sql-366"><a href="#Snowflake.Generator.select_sql-366"><span class="linenos">366</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Snowflake.Generator.select_sql-367"><a href="#Snowflake.Generator.select_sql-367"><span class="linenos">367</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> -</span><span id="Snowflake.Generator.select_sql-368"><a href="#Snowflake.Generator.select_sql-368"><span class="linenos">368</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator.select_sql-369"><a href="#Snowflake.Generator.select_sql-369"><span class="linenos">369</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator.select_sql-370"><a href="#Snowflake.Generator.select_sql-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> -</span><span id="Snowflake.Generator.select_sql-371"><a href="#Snowflake.Generator.select_sql-371"><span class="linenos">371</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Snowflake.Generator.select_sql-372"><a href="#Snowflake.Generator.select_sql-372"><span class="linenos">372</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> -</span><span id="Snowflake.Generator.select_sql-373"><a href="#Snowflake.Generator.select_sql-373"><span class="linenos">373</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> -</span><span id="Snowflake.Generator.select_sql-374"><a href="#Snowflake.Generator.select_sql-374"><span class="linenos">374</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="Snowflake.Generator.select_sql-375"><a href="#Snowflake.Generator.select_sql-375"><span class="linenos">375</span></a> <span class="p">)</span> -</span><span id="Snowflake.Generator.select_sql-376"><a href="#Snowflake.Generator.select_sql-376"><span class="linenos">376</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Snowflake.Generator.select_sql-377"><a href="#Snowflake.Generator.select_sql-377"><span class="linenos">377</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.select_sql-356"><a href="#Snowflake.Generator.select_sql-356"><span class="linenos">356</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.select_sql-357"><a href="#Snowflake.Generator.select_sql-357"><span class="linenos">357</span></a><span class="w"> </span><span class="sd">"""Due to a bug in Snowflake we want to make sure that all columns in a VALUES table alias are unquoted and also</span> +</span><span id="Snowflake.Generator.select_sql-358"><a href="#Snowflake.Generator.select_sql-358"><span class="linenos">358</span></a><span class="sd"> that all columns in a SELECT are unquoted. We also want to make sure that after we find matches where we need</span> +</span><span id="Snowflake.Generator.select_sql-359"><a href="#Snowflake.Generator.select_sql-359"><span class="linenos">359</span></a><span class="sd"> to unquote a column that we prevent users from adding quotes to the column by using the `identify` argument when</span> +</span><span id="Snowflake.Generator.select_sql-360"><a href="#Snowflake.Generator.select_sql-360"><span class="linenos">360</span></a><span class="sd"> generating the SQL.</span> +</span><span id="Snowflake.Generator.select_sql-361"><a href="#Snowflake.Generator.select_sql-361"><span class="linenos">361</span></a> +</span><span id="Snowflake.Generator.select_sql-362"><a href="#Snowflake.Generator.select_sql-362"><span class="linenos">362</span></a><span class="sd"> Note: We make an assumption that any columns referenced in a VALUES expression should be unquoted throughout the</span> +</span><span id="Snowflake.Generator.select_sql-363"><a href="#Snowflake.Generator.select_sql-363"><span class="linenos">363</span></a><span class="sd"> expression. This might not be true in a case where the same column name can be sourced from another table that can</span> +</span><span id="Snowflake.Generator.select_sql-364"><a href="#Snowflake.Generator.select_sql-364"><span class="linenos">364</span></a><span class="sd"> properly quote but should be true in most cases.</span> +</span><span id="Snowflake.Generator.select_sql-365"><a href="#Snowflake.Generator.select_sql-365"><span class="linenos">365</span></a><span class="sd"> """</span> +</span><span id="Snowflake.Generator.select_sql-366"><a href="#Snowflake.Generator.select_sql-366"><span class="linenos">366</span></a> <span class="n">values_identifiers</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span> +</span><span id="Snowflake.Generator.select_sql-367"><a href="#Snowflake.Generator.select_sql-367"><span class="linenos">367</span></a> <span class="n">flatten</span><span class="p">(</span> +</span><span id="Snowflake.Generator.select_sql-368"><a href="#Snowflake.Generator.select_sql-368"><span class="linenos">368</span></a> <span class="p">(</span><span class="n">v</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">())</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Snowflake.Generator.select_sql-369"><a href="#Snowflake.Generator.select_sql-369"><span class="linenos">369</span></a> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">)</span> +</span><span id="Snowflake.Generator.select_sql-370"><a href="#Snowflake.Generator.select_sql-370"><span class="linenos">370</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator.select_sql-371"><a href="#Snowflake.Generator.select_sql-371"><span class="linenos">371</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator.select_sql-372"><a href="#Snowflake.Generator.select_sql-372"><span class="linenos">372</span></a> <span class="k">if</span> <span class="n">values_identifiers</span><span class="p">:</span> +</span><span id="Snowflake.Generator.select_sql-373"><a href="#Snowflake.Generator.select_sql-373"><span class="linenos">373</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Snowflake.Generator.select_sql-374"><a href="#Snowflake.Generator.select_sql-374"><span class="linenos">374</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">})</span> +</span><span id="Snowflake.Generator.select_sql-375"><a href="#Snowflake.Generator.select_sql-375"><span class="linenos">375</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">values_identifiers</span> +</span><span id="Snowflake.Generator.select_sql-376"><a href="#Snowflake.Generator.select_sql-376"><span class="linenos">376</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="Snowflake.Generator.select_sql-377"><a href="#Snowflake.Generator.select_sql-377"><span class="linenos">377</span></a> <span class="p">)</span> +</span><span id="Snowflake.Generator.select_sql-378"><a href="#Snowflake.Generator.select_sql-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="nb">super</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">,</span> <span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Snowflake.Generator.select_sql-379"><a href="#Snowflake.Generator.select_sql-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">select_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -1347,12 +1349,12 @@ properly quote but should be true in most cases.</p> </div> <a class="headerlink" href="#Snowflake.Generator.describe_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.describe_sql-379"><a href="#Snowflake.Generator.describe_sql-379"><span class="linenos">379</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.describe_sql-380"><a href="#Snowflake.Generator.describe_sql-380"><span class="linenos">380</span></a> <span class="c1"># Default to table if kind is unknown</span> -</span><span id="Snowflake.Generator.describe_sql-381"><a href="#Snowflake.Generator.describe_sql-381"><span class="linenos">381</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> -</span><span id="Snowflake.Generator.describe_sql-382"><a href="#Snowflake.Generator.describe_sql-382"><span class="linenos">382</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake.Generator.describe_sql-383"><a href="#Snowflake.Generator.describe_sql-383"><span class="linenos">383</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="Snowflake.Generator.describe_sql-384"><a href="#Snowflake.Generator.describe_sql-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.describe_sql-381"><a href="#Snowflake.Generator.describe_sql-381"><span class="linenos">381</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.describe_sql-382"><a href="#Snowflake.Generator.describe_sql-382"><span class="linenos">382</span></a> <span class="c1"># Default to table if kind is unknown</span> +</span><span id="Snowflake.Generator.describe_sql-383"><a href="#Snowflake.Generator.describe_sql-383"><span class="linenos">383</span></a> <span class="n">kind_value</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">"kind"</span><span class="p">)</span> <span class="ow">or</span> <span class="s2">"TABLE"</span> +</span><span id="Snowflake.Generator.describe_sql-384"><a href="#Snowflake.Generator.describe_sql-384"><span class="linenos">384</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind_value</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind_value</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake.Generator.describe_sql-385"><a href="#Snowflake.Generator.describe_sql-385"><span class="linenos">385</span></a> <span class="n">this</span> <span class="o">=</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">expression</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><span id="Snowflake.Generator.describe_sql-386"><a href="#Snowflake.Generator.describe_sql-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1370,14 +1372,14 @@ properly quote but should be true in most cases.</p> </div> <a class="headerlink" href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-386"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-387"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-387"><span class="linenos">387</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-388"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-388"><span class="linenos">388</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-389"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-389"><span class="linenos">389</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-390"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-390"><span class="linenos">390</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-391"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-391"><span class="linenos">391</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-392"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-392"><span class="linenos">392</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-393"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-388"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-388"><span class="linenos">388</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-389"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-389"><span class="linenos">389</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-390"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-390"><span class="linenos">390</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-391"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-391"><span class="linenos">391</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-392"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-392"><span class="linenos">392</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" START </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-393"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-393"><span class="linenos">393</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-394"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-394"><span class="linenos">394</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Snowflake.Generator.generatedasidentitycolumnconstraint_sql-395"><a href="#Snowflake.Generator.generatedasidentitycolumnconstraint_sql-395"><span class="linenos">395</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"AUTOINCREMENT</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -1469,6 +1471,8 @@ properly quote but should be true in most cases.</p> <dd id="Snowflake.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Snowflake.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Snowflake.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Snowflake.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Snowflake.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Snowflake.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Snowflake.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Snowflake.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1552,7 +1556,6 @@ properly quote but should be true in most cases.</p> <dd id="Snowflake.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Snowflake.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Snowflake.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Snowflake.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Snowflake.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Snowflake.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Snowflake.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1594,6 +1597,7 @@ properly quote but should be true in most cases.</p> <dd id="Snowflake.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Snowflake.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Snowflake.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Snowflake.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/spark.html b/docs/sqlglot/dialects/spark.html index b6eb666..6e70c65 100644 --- a/docs/sqlglot/dialects/spark.html +++ b/docs/sqlglot/dialects/spark.html @@ -239,31 +239,32 @@ </span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> </span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFromParts</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MAKE_DATE"</span><span class="p">),</span> </span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AtTimeZone</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="sa">f</span><span class="s2">"FROM_UTC_TIMESTAMP(</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="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">'zone'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="p">}</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</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">ArraySort</span><span class="p">)</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</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">ILike</span><span class="p">)</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> -</span><span id="L-172"><a href="#L-172"><span class="linenos">172</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</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">JSON</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="p">):</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">)]</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AtTimeZone</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="sa">f</span><span class="s2">"FROM_UTC_TIMESTAMP(</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="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">'zone'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="p">}</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</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">ArraySort</span><span class="p">)</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</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">ILike</span><span class="p">)</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</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">JSON</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="p">):</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">)]</span> </span></pre></div> @@ -389,31 +390,32 @@ </span><span id="Spark-158"><a href="#Spark-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> </span><span id="Spark-159"><a href="#Spark-159"><span class="linenos">159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFromParts</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MAKE_DATE"</span><span class="p">),</span> </span><span id="Spark-160"><a href="#Spark-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="Spark-161"><a href="#Spark-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="Spark-162"><a href="#Spark-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> -</span><span id="Spark-163"><a href="#Spark-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> -</span><span id="Spark-164"><a href="#Spark-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> -</span><span id="Spark-165"><a href="#Spark-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AtTimeZone</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="sa">f</span><span class="s2">"FROM_UTC_TIMESTAMP(</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="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">'zone'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Spark-166"><a href="#Spark-166"><span class="linenos">166</span></a> <span class="p">}</span> -</span><span id="Spark-167"><a href="#Spark-167"><span class="linenos">167</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">ArraySort</span><span class="p">)</span> -</span><span id="Spark-168"><a href="#Spark-168"><span class="linenos">168</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">ILike</span><span class="p">)</span> -</span><span id="Spark-169"><a href="#Spark-169"><span class="linenos">169</span></a> -</span><span id="Spark-170"><a href="#Spark-170"><span class="linenos">170</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Spark-171"><a href="#Spark-171"><span class="linenos">171</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Spark-172"><a href="#Spark-172"><span class="linenos">172</span></a> -</span><span id="Spark-173"><a href="#Spark-173"><span class="linenos">173</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Spark-174"><a href="#Spark-174"><span class="linenos">174</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> -</span><span id="Spark-175"><a href="#Spark-175"><span class="linenos">175</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">JSON</span> -</span><span id="Spark-176"><a href="#Spark-176"><span class="linenos">176</span></a> <span class="p">):</span> -</span><span id="Spark-177"><a href="#Spark-177"><span class="linenos">177</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> -</span><span id="Spark-178"><a href="#Spark-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="Spark-179"><a href="#Spark-179"><span class="linenos">179</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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="Spark-180"><a href="#Spark-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Spark-181"><a href="#Spark-181"><span class="linenos">181</span></a> -</span><span id="Spark-182"><a href="#Spark-182"><span class="linenos">182</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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><span id="Spark-183"><a href="#Spark-183"><span class="linenos">183</span></a> -</span><span id="Spark-184"><a href="#Spark-184"><span class="linenos">184</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Spark-185"><a href="#Spark-185"><span class="linenos">185</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">)]</span> +</span><span id="Spark-161"><a href="#Spark-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="Spark-162"><a href="#Spark-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="Spark-163"><a href="#Spark-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="Spark-164"><a href="#Spark-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="Spark-165"><a href="#Spark-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="Spark-166"><a href="#Spark-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AtTimeZone</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="sa">f</span><span class="s2">"FROM_UTC_TIMESTAMP(</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="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">'zone'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Spark-167"><a href="#Spark-167"><span class="linenos">167</span></a> <span class="p">}</span> +</span><span id="Spark-168"><a href="#Spark-168"><span class="linenos">168</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">ArraySort</span><span class="p">)</span> +</span><span id="Spark-169"><a href="#Spark-169"><span class="linenos">169</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">ILike</span><span class="p">)</span> +</span><span id="Spark-170"><a href="#Spark-170"><span class="linenos">170</span></a> +</span><span id="Spark-171"><a href="#Spark-171"><span class="linenos">171</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Spark-172"><a href="#Spark-172"><span class="linenos">172</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Spark-173"><a href="#Spark-173"><span class="linenos">173</span></a> +</span><span id="Spark-174"><a href="#Spark-174"><span class="linenos">174</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Spark-175"><a href="#Spark-175"><span class="linenos">175</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> +</span><span id="Spark-176"><a href="#Spark-176"><span class="linenos">176</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">JSON</span> +</span><span id="Spark-177"><a href="#Spark-177"><span class="linenos">177</span></a> <span class="p">):</span> +</span><span id="Spark-178"><a href="#Spark-178"><span class="linenos">178</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> +</span><span id="Spark-179"><a href="#Spark-179"><span class="linenos">179</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> +</span><span id="Spark-180"><a href="#Spark-180"><span class="linenos">180</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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="Spark-181"><a href="#Spark-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Spark-182"><a href="#Spark-182"><span class="linenos">182</span></a> +</span><span id="Spark-183"><a href="#Spark-183"><span class="linenos">183</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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><span id="Spark-184"><a href="#Spark-184"><span class="linenos">184</span></a> +</span><span id="Spark-185"><a href="#Spark-185"><span class="linenos">185</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Spark-186"><a href="#Spark-186"><span class="linenos">186</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">)]</span> </span></pre></div> @@ -429,6 +431,7 @@ <dd id="Spark.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Spark.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Spark.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Spark.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Spark.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Spark.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -611,28 +614,29 @@ Default: "nulls_are_small"</li> </span><span id="Spark.Generator-158"><a href="#Spark.Generator-158"><span class="linenos">158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VariancePop</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"VAR_POP"</span><span class="p">),</span> </span><span id="Spark.Generator-159"><a href="#Spark.Generator-159"><span class="linenos">159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFromParts</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MAKE_DATE"</span><span class="p">),</span> </span><span id="Spark.Generator-160"><a href="#Spark.Generator-160"><span class="linenos">160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_OR"</span><span class="p">),</span> -</span><span id="Spark.Generator-161"><a href="#Spark.Generator-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> -</span><span id="Spark.Generator-162"><a href="#Spark.Generator-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> -</span><span id="Spark.Generator-163"><a href="#Spark.Generator-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> -</span><span id="Spark.Generator-164"><a href="#Spark.Generator-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> -</span><span id="Spark.Generator-165"><a href="#Spark.Generator-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AtTimeZone</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="sa">f</span><span class="s2">"FROM_UTC_TIMESTAMP(</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="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">'zone'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="Spark.Generator-166"><a href="#Spark.Generator-166"><span class="linenos">166</span></a> <span class="p">}</span> -</span><span id="Spark.Generator-167"><a href="#Spark.Generator-167"><span class="linenos">167</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">ArraySort</span><span class="p">)</span> -</span><span id="Spark.Generator-168"><a href="#Spark.Generator-168"><span class="linenos">168</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">ILike</span><span class="p">)</span> -</span><span id="Spark.Generator-169"><a href="#Spark.Generator-169"><span class="linenos">169</span></a> -</span><span id="Spark.Generator-170"><a href="#Spark.Generator-170"><span class="linenos">170</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Spark.Generator-171"><a href="#Spark.Generator-171"><span class="linenos">171</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Spark.Generator-172"><a href="#Spark.Generator-172"><span class="linenos">172</span></a> -</span><span id="Spark.Generator-173"><a href="#Spark.Generator-173"><span class="linenos">173</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Spark.Generator-174"><a href="#Spark.Generator-174"><span class="linenos">174</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> -</span><span id="Spark.Generator-175"><a href="#Spark.Generator-175"><span class="linenos">175</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">JSON</span> -</span><span id="Spark.Generator-176"><a href="#Spark.Generator-176"><span class="linenos">176</span></a> <span class="p">):</span> -</span><span id="Spark.Generator-177"><a href="#Spark.Generator-177"><span class="linenos">177</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> -</span><span id="Spark.Generator-178"><a href="#Spark.Generator-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="Spark.Generator-179"><a href="#Spark.Generator-179"><span class="linenos">179</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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="Spark.Generator-180"><a href="#Spark.Generator-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Spark.Generator-181"><a href="#Spark.Generator-181"><span class="linenos">181</span></a> -</span><span id="Spark.Generator-182"><a href="#Spark.Generator-182"><span class="linenos">182</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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><span id="Spark.Generator-161"><a href="#Spark.Generator-161"><span class="linenos">161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"BOOL_AND"</span><span class="p">),</span> +</span><span id="Spark.Generator-162"><a href="#Spark.Generator-162"><span class="linenos">162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfWeek</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFWEEK"</span><span class="p">),</span> +</span><span id="Spark.Generator-163"><a href="#Spark.Generator-163"><span class="linenos">163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfMonth</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFMONTH"</span><span class="p">),</span> +</span><span id="Spark.Generator-164"><a href="#Spark.Generator-164"><span class="linenos">164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DayOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DAYOFYEAR"</span><span class="p">),</span> +</span><span id="Spark.Generator-165"><a href="#Spark.Generator-165"><span class="linenos">165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WeekOfYear</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"WEEKOFYEAR"</span><span class="p">),</span> +</span><span id="Spark.Generator-166"><a href="#Spark.Generator-166"><span class="linenos">166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AtTimeZone</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="sa">f</span><span class="s2">"FROM_UTC_TIMESTAMP(</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="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">'zone'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="Spark.Generator-167"><a href="#Spark.Generator-167"><span class="linenos">167</span></a> <span class="p">}</span> +</span><span id="Spark.Generator-168"><a href="#Spark.Generator-168"><span class="linenos">168</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">ArraySort</span><span class="p">)</span> +</span><span id="Spark.Generator-169"><a href="#Spark.Generator-169"><span class="linenos">169</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">ILike</span><span class="p">)</span> +</span><span id="Spark.Generator-170"><a href="#Spark.Generator-170"><span class="linenos">170</span></a> +</span><span id="Spark.Generator-171"><a href="#Spark.Generator-171"><span class="linenos">171</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Spark.Generator-172"><a href="#Spark.Generator-172"><span class="linenos">172</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Spark.Generator-173"><a href="#Spark.Generator-173"><span class="linenos">173</span></a> +</span><span id="Spark.Generator-174"><a href="#Spark.Generator-174"><span class="linenos">174</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Spark.Generator-175"><a href="#Spark.Generator-175"><span class="linenos">175</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> +</span><span id="Spark.Generator-176"><a href="#Spark.Generator-176"><span class="linenos">176</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">JSON</span> +</span><span id="Spark.Generator-177"><a href="#Spark.Generator-177"><span class="linenos">177</span></a> <span class="p">):</span> +</span><span id="Spark.Generator-178"><a href="#Spark.Generator-178"><span class="linenos">178</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> +</span><span id="Spark.Generator-179"><a href="#Spark.Generator-179"><span class="linenos">179</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> +</span><span id="Spark.Generator-180"><a href="#Spark.Generator-180"><span class="linenos">180</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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="Spark.Generator-181"><a href="#Spark.Generator-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Spark.Generator-182"><a href="#Spark.Generator-182"><span class="linenos">182</span></a> +</span><span id="Spark.Generator-183"><a href="#Spark.Generator-183"><span class="linenos">183</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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></pre></div> @@ -649,8 +653,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -692,16 +695,16 @@ Default: True</li> </div> <a class="headerlink" href="#Spark.Generator.cast_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Spark.Generator.cast_sql-173"><a href="#Spark.Generator.cast_sql-173"><span class="linenos">173</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Spark.Generator.cast_sql-174"><a href="#Spark.Generator.cast_sql-174"><span class="linenos">174</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> -</span><span id="Spark.Generator.cast_sql-175"><a href="#Spark.Generator.cast_sql-175"><span class="linenos">175</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">JSON</span> -</span><span id="Spark.Generator.cast_sql-176"><a href="#Spark.Generator.cast_sql-176"><span class="linenos">176</span></a> <span class="p">):</span> -</span><span id="Spark.Generator.cast_sql-177"><a href="#Spark.Generator.cast_sql-177"><span class="linenos">177</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> -</span><span id="Spark.Generator.cast_sql-178"><a href="#Spark.Generator.cast_sql-178"><span class="linenos">178</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="Spark.Generator.cast_sql-179"><a href="#Spark.Generator.cast_sql-179"><span class="linenos">179</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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="Spark.Generator.cast_sql-180"><a href="#Spark.Generator.cast_sql-180"><span class="linenos">180</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Spark.Generator.cast_sql-181"><a href="#Spark.Generator.cast_sql-181"><span class="linenos">181</span></a> -</span><span id="Spark.Generator.cast_sql-182"><a href="#Spark.Generator.cast_sql-182"><span class="linenos">182</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Spark.Generator.cast_sql-174"><a href="#Spark.Generator.cast_sql-174"><span class="linenos">174</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Spark.Generator.cast_sql-175"><a href="#Spark.Generator.cast_sql-175"><span class="linenos">175</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">this</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="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span> +</span><span id="Spark.Generator.cast_sql-176"><a href="#Spark.Generator.cast_sql-176"><span class="linenos">176</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">JSON</span> +</span><span id="Spark.Generator.cast_sql-177"><a href="#Spark.Generator.cast_sql-177"><span class="linenos">177</span></a> <span class="p">):</span> +</span><span id="Spark.Generator.cast_sql-178"><a href="#Spark.Generator.cast_sql-178"><span class="linenos">178</span></a> <span class="n">schema</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">'"</span> +</span><span id="Spark.Generator.cast_sql-179"><a href="#Spark.Generator.cast_sql-179"><span class="linenos">179</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"FROM_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> +</span><span id="Spark.Generator.cast_sql-180"><a href="#Spark.Generator.cast_sql-180"><span class="linenos">180</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">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="Spark.Generator.cast_sql-181"><a href="#Spark.Generator.cast_sql-181"><span class="linenos">181</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TO_JSON"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Spark.Generator.cast_sql-182"><a href="#Spark.Generator.cast_sql-182"><span class="linenos">182</span></a> +</span><span id="Spark.Generator.cast_sql-183"><a href="#Spark.Generator.cast_sql-183"><span class="linenos">183</span></a> <span class="k">return</span> <span class="nb">super</span><span class="p">(</span><span class="n">Spark</span><span class="o">.</span><span class="n">Generator</span><span class="p">,</span> <span class="bp">self</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></pre></div> @@ -796,6 +799,8 @@ Default: True</li> <dd id="Spark.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Spark.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Spark.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Spark.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Spark.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Spark.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Spark.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Spark.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -879,7 +884,6 @@ Default: True</li> <dd id="Spark.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Spark.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Spark.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Spark.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Spark.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Spark.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Spark.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -921,10 +925,12 @@ Default: True</li> <dd id="Spark.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Spark.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Spark.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Spark.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> <div><dt><a href="hive.html#Hive.Generator">sqlglot.dialects.hive.Hive.Generator</a></dt> - <dd id="Spark.Generator.with_properties" class="function"><a href="hive.html#Hive.Generator.with_properties">with_properties</a></dd> + <dd id="Spark.Generator.arrayagg_sql" class="function"><a href="hive.html#Hive.Generator.arrayagg_sql">arrayagg_sql</a></dd> + <dd id="Spark.Generator.with_properties" class="function"><a href="hive.html#Hive.Generator.with_properties">with_properties</a></dd> <dd id="Spark.Generator.datatype_sql" class="function"><a href="hive.html#Hive.Generator.datatype_sql">datatype_sql</a></dd> </div> @@ -942,8 +948,8 @@ Default: True</li> </div> <a class="headerlink" href="#Spark.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Spark.Tokenizer-184"><a href="#Spark.Tokenizer-184"><span class="linenos">184</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="Spark.Tokenizer-185"><a href="#Spark.Tokenizer-185"><span class="linenos">185</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">)]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Spark.Tokenizer-185"><a href="#Spark.Tokenizer-185"><span class="linenos">185</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">Hive</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="Spark.Tokenizer-186"><a href="#Spark.Tokenizer-186"><span class="linenos">186</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">)]</span> </span></pre></div> diff --git a/docs/sqlglot/dialects/sqlite.html b/docs/sqlglot/dialects/sqlite.html index 37cb29d..c8f1fd6 100644 --- a/docs/sqlglot/dialects/sqlite.html +++ b/docs/sqlglot/dialects/sqlite.html @@ -49,12 +49,18 @@ <a class="class" href="#SQLite.Generator">SQLite.Generator</a> <ul class="memberlist"> <li> + <a class="function" href="#SQLite.Generator.cast_sql">cast_sql</a> + </li> + <li> <a class="function" href="#SQLite.Generator.datediff_sql">datediff_sql</a> </li> <li> <a class="function" href="#SQLite.Generator.fetch_sql">fetch_sql</a> </li> <li> + <a class="function" href="#SQLite.Generator.groupconcat_sql">groupconcat_sql</a> + </li> + <li> <a class="function" href="#SQLite.Generator.least_sql">least_sql</a> </li> <li> @@ -91,138 +97,150 @@ <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">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span><span class="p">,</span> <span class="n">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</span> +</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</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">generator</span><span class="p">,</span> <span class="n">parser</span><span class="p">,</span> <span class="n">tokens</span><span class="p">,</span> <span class="n">transforms</span> </span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</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-5"><a href="#L-5"><span class="linenos"> 5</span></a> <span class="n">Dialect</span><span class="p">,</span> </span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> </span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">no_tablesample_sql</span><span class="p">,</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">rename_func</span><span class="p">,</span> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="p">)</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</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-14"><a href="#L-14"><span class="linenos"> 14</span></a> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="n">count_if_to_sum</span><span class="p">,</span> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">no_tablesample_sql</span><span class="p">,</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">rename_func</span><span class="p">,</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="p">)</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</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-15"><a href="#L-15"><span class="linenos"> 15</span></a> -</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="c1"># https://www.sqlite.org/lang_aggfunc.html#group_concat</span> -</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="k">def</span> <span class="nf">_group_concat_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><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">)</span> -</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> -</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</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-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="s2">"DISTINCT "</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="k">def</span> <span class="nf">_date_add_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><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> <span class="n">modifier</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span> +</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> <span class="n">modifier</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">modifier</span><span class="o">.</span><span class="n">is_string</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">modifier</span><span class="p">)</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a> <span class="n">modifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">modifier</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">modifier</span><span class="si">}</span><span class="s2">'"</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">modifier</span><span class="p">)</span> </span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Order</span><span class="p">):</span> -</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"SQLite GROUP_CONCAT doesn't support ORDER BY."</span><span class="p">)</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">distinct</span><span class="p">:</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">separator</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">"separator"</span><span class="p">)</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GROUP_CONCAT(</span><span class="si">{</span><span class="n">distinct</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="k">def</span> <span class="nf">_date_add_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><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">modifier</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="n">modifier</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">modifier</span><span class="o">.</span><span class="n">is_string</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">modifier</span><span class="p">)</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="n">modifier</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">modifier</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">'"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"'</span><span class="si">{</span><span class="n">modifier</span><span class="si">}</span><span class="s2">'"</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">modifier</span><span class="p">)</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 class="k">class</span> <span class="nc">SQLite</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">),</span> <span class="s2">"`"</span><span class="p">]</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0x"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0X"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)]</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="o">**</span><span class="n">tokens</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-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><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="s2">"EDITDIST3"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="p">}</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">SQLite</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">),</span> <span class="s2">"`"</span><span class="p">]</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0x"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0X"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)]</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="o">**</span><span class="n">tokens</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-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="p">}</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="s2">"EDITDIST3"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="p">}</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</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-63"><a href="#L-63"><span class="linenos"> 63</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">BIGINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</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">DOUBLE</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</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">DECIMAL</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</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">"BLOB"</span><span class="p">,</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</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">"BLOB"</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><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">TOKEN_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">:</span> <span class="s2">"AUTOINCREMENT"</span><span class="p">,</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="p">}</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">,</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EDITDIST3"</span><span class="p">),</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</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-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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">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-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">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-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_group_concat_sql</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><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</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-47"><a href="#L-47"><span class="linenos"> 47</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">BIGINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</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">DOUBLE</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</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">DECIMAL</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</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">"BLOB"</span><span class="p">,</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</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">"BLOB"</span><span class="p">,</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="p">}</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">TOKEN_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">:</span> <span class="s2">"AUTOINCREMENT"</span><span class="p">,</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="p">}</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CountIf</span><span class="p">:</span> <span class="n">count_if_to_sum</span><span class="p">,</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_DATE"</span><span class="p">,</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIME"</span><span class="p">,</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">,</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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">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-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EDITDIST3"</span><span class="p">),</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">),</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</span><span class="p">),</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</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-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">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-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="p">}</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">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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</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><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> </span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">def</span> <span class="nf">fetch_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><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">def</span> <span class="nf">least_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><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</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">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</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">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="c1"># https://www.sqlite.org/lang_aggfunc.html#group_concat</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="k">def</span> <span class="nf">groupconcat_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><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">)</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</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-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="s2">"DISTINCT "</span> </span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="k">return</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><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"SQLite GROUP_CONCAT doesn't support ORDER BY."</span><span class="p">)</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">separator</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">"separator"</span><span class="p">)</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GROUP_CONCAT(</span><span class="si">{</span><span class="n">distinct</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="k">def</span> <span class="nf">least_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">Least</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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-140"><a href="#L-140"><span class="linenos">140</span></a> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">return</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><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> </span></pre></div> @@ -238,100 +256,128 @@ </div> <a class="headerlink" href="#SQLite"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite-42"><a href="#SQLite-42"><span class="linenos"> 42</span></a><span class="k">class</span> <span class="nc">SQLite</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="SQLite-43"><a href="#SQLite-43"><span class="linenos"> 43</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="SQLite-44"><a href="#SQLite-44"><span class="linenos"> 44</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">),</span> <span class="s2">"`"</span><span class="p">]</span> -</span><span id="SQLite-45"><a href="#SQLite-45"><span class="linenos"> 45</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0x"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0X"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)]</span> -</span><span id="SQLite-46"><a href="#SQLite-46"><span class="linenos"> 46</span></a> -</span><span id="SQLite-47"><a href="#SQLite-47"><span class="linenos"> 47</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite-48"><a href="#SQLite-48"><span class="linenos"> 48</span></a> <span class="o">**</span><span class="n">tokens</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="SQLite-49"><a href="#SQLite-49"><span class="linenos"> 49</span></a> <span class="p">}</span> -</span><span id="SQLite-50"><a href="#SQLite-50"><span class="linenos"> 50</span></a> -</span><span id="SQLite-51"><a href="#SQLite-51"><span class="linenos"> 51</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="SQLite-52"><a href="#SQLite-52"><span class="linenos"> 52</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite-53"><a href="#SQLite-53"><span class="linenos"> 53</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="SQLite-54"><a href="#SQLite-54"><span class="linenos"> 54</span></a> <span class="s2">"EDITDIST3"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="SQLite-55"><a href="#SQLite-55"><span class="linenos"> 55</span></a> <span class="p">}</span> -</span><span id="SQLite-56"><a href="#SQLite-56"><span class="linenos"> 56</span></a> -</span><span id="SQLite-57"><a href="#SQLite-57"><span class="linenos"> 57</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="SQLite-58"><a href="#SQLite-58"><span class="linenos"> 58</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite-59"><a href="#SQLite-59"><span class="linenos"> 59</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="SQLite-60"><a href="#SQLite-60"><span class="linenos"> 60</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite-61"><a href="#SQLite-61"><span class="linenos"> 61</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite-62"><a href="#SQLite-62"><span class="linenos"> 62</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite-63"><a href="#SQLite-63"><span class="linenos"> 63</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="SQLite-64"><a href="#SQLite-64"><span class="linenos"> 64</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">BIGINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite-65"><a href="#SQLite-65"><span class="linenos"> 65</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="SQLite-66"><a href="#SQLite-66"><span class="linenos"> 66</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">DOUBLE</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="SQLite-67"><a href="#SQLite-67"><span class="linenos"> 67</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">DECIMAL</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="SQLite-68"><a href="#SQLite-68"><span class="linenos"> 68</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite-69"><a href="#SQLite-69"><span class="linenos"> 69</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite-70"><a href="#SQLite-70"><span class="linenos"> 70</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite-71"><a href="#SQLite-71"><span class="linenos"> 71</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite-72"><a href="#SQLite-72"><span class="linenos"> 72</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">"BLOB"</span><span class="p">,</span> -</span><span id="SQLite-73"><a href="#SQLite-73"><span class="linenos"> 73</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">"BLOB"</span><span class="p">,</span> -</span><span id="SQLite-74"><a href="#SQLite-74"><span class="linenos"> 74</span></a> <span class="p">}</span> -</span><span id="SQLite-75"><a href="#SQLite-75"><span class="linenos"> 75</span></a> -</span><span id="SQLite-76"><a href="#SQLite-76"><span class="linenos"> 76</span></a> <span class="n">TOKEN_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite-77"><a href="#SQLite-77"><span class="linenos"> 77</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">:</span> <span class="s2">"AUTOINCREMENT"</span><span class="p">,</span> -</span><span id="SQLite-78"><a href="#SQLite-78"><span class="linenos"> 78</span></a> <span class="p">}</span> -</span><span id="SQLite-79"><a href="#SQLite-79"><span class="linenos"> 79</span></a> -</span><span id="SQLite-80"><a href="#SQLite-80"><span class="linenos"> 80</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite-81"><a href="#SQLite-81"><span class="linenos"> 81</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="SQLite-82"><a href="#SQLite-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">,</span> -</span><span id="SQLite-83"><a href="#SQLite-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="SQLite-84"><a href="#SQLite-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="SQLite-85"><a href="#SQLite-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="SQLite-86"><a href="#SQLite-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="SQLite-87"><a href="#SQLite-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="SQLite-88"><a href="#SQLite-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EDITDIST3"</span><span class="p">),</span> -</span><span id="SQLite-89"><a href="#SQLite-89"><span class="linenos"> 89</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="SQLite-90"><a href="#SQLite-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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">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="SQLite-91"><a href="#SQLite-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">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="SQLite-92"><a href="#SQLite-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="SQLite-93"><a href="#SQLite-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_group_concat_sql</span><span class="p">,</span> -</span><span id="SQLite-94"><a href="#SQLite-94"><span class="linenos"> 94</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite-26"><a href="#SQLite-26"><span class="linenos"> 26</span></a><span class="k">class</span> <span class="nc">SQLite</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="SQLite-27"><a href="#SQLite-27"><span class="linenos"> 27</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="SQLite-28"><a href="#SQLite-28"><span class="linenos"> 28</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">),</span> <span class="s2">"`"</span><span class="p">]</span> +</span><span id="SQLite-29"><a href="#SQLite-29"><span class="linenos"> 29</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0x"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0X"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)]</span> +</span><span id="SQLite-30"><a href="#SQLite-30"><span class="linenos"> 30</span></a> +</span><span id="SQLite-31"><a href="#SQLite-31"><span class="linenos"> 31</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite-32"><a href="#SQLite-32"><span class="linenos"> 32</span></a> <span class="o">**</span><span class="n">tokens</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="SQLite-33"><a href="#SQLite-33"><span class="linenos"> 33</span></a> <span class="p">}</span> +</span><span id="SQLite-34"><a href="#SQLite-34"><span class="linenos"> 34</span></a> +</span><span id="SQLite-35"><a href="#SQLite-35"><span class="linenos"> 35</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="SQLite-36"><a href="#SQLite-36"><span class="linenos"> 36</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite-37"><a href="#SQLite-37"><span class="linenos"> 37</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="SQLite-38"><a href="#SQLite-38"><span class="linenos"> 38</span></a> <span class="s2">"EDITDIST3"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="SQLite-39"><a href="#SQLite-39"><span class="linenos"> 39</span></a> <span class="p">}</span> +</span><span id="SQLite-40"><a href="#SQLite-40"><span class="linenos"> 40</span></a> +</span><span id="SQLite-41"><a href="#SQLite-41"><span class="linenos"> 41</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="SQLite-42"><a href="#SQLite-42"><span class="linenos"> 42</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite-43"><a href="#SQLite-43"><span class="linenos"> 43</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="SQLite-44"><a href="#SQLite-44"><span class="linenos"> 44</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite-45"><a href="#SQLite-45"><span class="linenos"> 45</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite-46"><a href="#SQLite-46"><span class="linenos"> 46</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite-47"><a href="#SQLite-47"><span class="linenos"> 47</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="SQLite-48"><a href="#SQLite-48"><span class="linenos"> 48</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">BIGINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite-49"><a href="#SQLite-49"><span class="linenos"> 49</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="SQLite-50"><a href="#SQLite-50"><span class="linenos"> 50</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">DOUBLE</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="SQLite-51"><a href="#SQLite-51"><span class="linenos"> 51</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">DECIMAL</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="SQLite-52"><a href="#SQLite-52"><span class="linenos"> 52</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite-53"><a href="#SQLite-53"><span class="linenos"> 53</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite-54"><a href="#SQLite-54"><span class="linenos"> 54</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite-55"><a href="#SQLite-55"><span class="linenos"> 55</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite-56"><a href="#SQLite-56"><span class="linenos"> 56</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">"BLOB"</span><span class="p">,</span> +</span><span id="SQLite-57"><a href="#SQLite-57"><span class="linenos"> 57</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">"BLOB"</span><span class="p">,</span> +</span><span id="SQLite-58"><a href="#SQLite-58"><span class="linenos"> 58</span></a> <span class="p">}</span> +</span><span id="SQLite-59"><a href="#SQLite-59"><span class="linenos"> 59</span></a> +</span><span id="SQLite-60"><a href="#SQLite-60"><span class="linenos"> 60</span></a> <span class="n">TOKEN_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite-61"><a href="#SQLite-61"><span class="linenos"> 61</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">:</span> <span class="s2">"AUTOINCREMENT"</span><span class="p">,</span> +</span><span id="SQLite-62"><a href="#SQLite-62"><span class="linenos"> 62</span></a> <span class="p">}</span> +</span><span id="SQLite-63"><a href="#SQLite-63"><span class="linenos"> 63</span></a> +</span><span id="SQLite-64"><a href="#SQLite-64"><span class="linenos"> 64</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite-65"><a href="#SQLite-65"><span class="linenos"> 65</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="SQLite-66"><a href="#SQLite-66"><span class="linenos"> 66</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="SQLite-67"><a href="#SQLite-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CountIf</span><span class="p">:</span> <span class="n">count_if_to_sum</span><span class="p">,</span> +</span><span id="SQLite-68"><a href="#SQLite-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_DATE"</span><span class="p">,</span> +</span><span id="SQLite-69"><a href="#SQLite-69"><span class="linenos"> 69</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIME"</span><span class="p">,</span> +</span><span id="SQLite-70"><a href="#SQLite-70"><span class="linenos"> 70</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="SQLite-71"><a href="#SQLite-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">,</span> +</span><span id="SQLite-72"><a href="#SQLite-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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">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="SQLite-73"><a href="#SQLite-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="SQLite-74"><a href="#SQLite-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="SQLite-75"><a href="#SQLite-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="SQLite-76"><a href="#SQLite-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="SQLite-77"><a href="#SQLite-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="SQLite-78"><a href="#SQLite-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EDITDIST3"</span><span class="p">),</span> +</span><span id="SQLite-79"><a href="#SQLite-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">),</span> +</span><span id="SQLite-80"><a href="#SQLite-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</span><span class="p">),</span> +</span><span id="SQLite-81"><a href="#SQLite-81"><span class="linenos"> 81</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="SQLite-82"><a href="#SQLite-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">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="SQLite-83"><a href="#SQLite-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="SQLite-84"><a href="#SQLite-84"><span class="linenos"> 84</span></a> <span class="p">}</span> +</span><span id="SQLite-85"><a href="#SQLite-85"><span class="linenos"> 85</span></a> +</span><span id="SQLite-86"><a href="#SQLite-86"><span class="linenos"> 86</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite-87"><a href="#SQLite-87"><span class="linenos"> 87</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="SQLite-88"><a href="#SQLite-88"><span class="linenos"> 88</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="SQLite-89"><a href="#SQLite-89"><span class="linenos"> 89</span></a> +</span><span id="SQLite-90"><a href="#SQLite-90"><span class="linenos"> 90</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><span id="SQLite-91"><a href="#SQLite-91"><span class="linenos"> 91</span></a> +</span><span id="SQLite-92"><a href="#SQLite-92"><span class="linenos"> 92</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite-93"><a href="#SQLite-93"><span class="linenos"> 93</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="SQLite-94"><a href="#SQLite-94"><span class="linenos"> 94</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> </span><span id="SQLite-95"><a href="#SQLite-95"><span class="linenos"> 95</span></a> -</span><span id="SQLite-96"><a href="#SQLite-96"><span class="linenos"> 96</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="SQLite-97"><a href="#SQLite-97"><span class="linenos"> 97</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="SQLite-98"><a href="#SQLite-98"><span class="linenos"> 98</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> -</span><span id="SQLite-99"><a href="#SQLite-99"><span class="linenos"> 99</span></a> -</span><span id="SQLite-100"><a href="#SQLite-100"><span class="linenos">100</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> -</span><span id="SQLite-101"><a href="#SQLite-101"><span class="linenos">101</span></a> -</span><span id="SQLite-102"><a href="#SQLite-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> -</span><span id="SQLite-103"><a href="#SQLite-103"><span class="linenos">103</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> -</span><span id="SQLite-104"><a href="#SQLite-104"><span class="linenos">104</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> -</span><span id="SQLite-105"><a href="#SQLite-105"><span class="linenos">105</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> -</span><span id="SQLite-106"><a href="#SQLite-106"><span class="linenos">106</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> -</span><span id="SQLite-107"><a href="#SQLite-107"><span class="linenos">107</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> -</span><span id="SQLite-108"><a href="#SQLite-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> -</span><span id="SQLite-109"><a href="#SQLite-109"><span class="linenos">109</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> -</span><span id="SQLite-110"><a href="#SQLite-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> -</span><span id="SQLite-111"><a href="#SQLite-111"><span class="linenos">111</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> -</span><span id="SQLite-112"><a href="#SQLite-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> -</span><span id="SQLite-113"><a href="#SQLite-113"><span class="linenos">113</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> -</span><span id="SQLite-114"><a href="#SQLite-114"><span class="linenos">114</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> -</span><span id="SQLite-115"><a href="#SQLite-115"><span class="linenos">115</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> -</span><span id="SQLite-116"><a href="#SQLite-116"><span class="linenos">116</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> -</span><span id="SQLite-117"><a href="#SQLite-117"><span class="linenos">117</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> -</span><span id="SQLite-118"><a href="#SQLite-118"><span class="linenos">118</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="SQLite-119"><a href="#SQLite-119"><span class="linenos">119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> -</span><span id="SQLite-120"><a href="#SQLite-120"><span class="linenos">120</span></a> -</span><span id="SQLite-121"><a href="#SQLite-121"><span class="linenos">121</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> -</span><span id="SQLite-122"><a href="#SQLite-122"><span class="linenos">122</span></a> -</span><span id="SQLite-123"><a href="#SQLite-123"><span class="linenos">123</span></a> <span class="k">def</span> <span class="nf">fetch_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><span id="SQLite-124"><a href="#SQLite-124"><span class="linenos">124</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> -</span><span id="SQLite-125"><a href="#SQLite-125"><span class="linenos">125</span></a> -</span><span id="SQLite-126"><a href="#SQLite-126"><span class="linenos">126</span></a> <span class="k">def</span> <span class="nf">least_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><span id="SQLite-127"><a href="#SQLite-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="SQLite-128"><a href="#SQLite-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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="SQLite-96"><a href="#SQLite-96"><span class="linenos"> 96</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> +</span><span id="SQLite-97"><a href="#SQLite-97"><span class="linenos"> 97</span></a> +</span><span id="SQLite-98"><a href="#SQLite-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> +</span><span id="SQLite-99"><a href="#SQLite-99"><span class="linenos"> 99</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> +</span><span id="SQLite-100"><a href="#SQLite-100"><span class="linenos">100</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> +</span><span id="SQLite-101"><a href="#SQLite-101"><span class="linenos">101</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> +</span><span id="SQLite-102"><a href="#SQLite-102"><span class="linenos">102</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> +</span><span id="SQLite-103"><a href="#SQLite-103"><span class="linenos">103</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> +</span><span id="SQLite-104"><a href="#SQLite-104"><span class="linenos">104</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> +</span><span id="SQLite-105"><a href="#SQLite-105"><span class="linenos">105</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> +</span><span id="SQLite-106"><a href="#SQLite-106"><span class="linenos">106</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> +</span><span id="SQLite-107"><a href="#SQLite-107"><span class="linenos">107</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> +</span><span id="SQLite-108"><a href="#SQLite-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> +</span><span id="SQLite-109"><a href="#SQLite-109"><span class="linenos">109</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> +</span><span id="SQLite-110"><a href="#SQLite-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> +</span><span id="SQLite-111"><a href="#SQLite-111"><span class="linenos">111</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> +</span><span id="SQLite-112"><a href="#SQLite-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> +</span><span id="SQLite-113"><a href="#SQLite-113"><span class="linenos">113</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> +</span><span id="SQLite-114"><a href="#SQLite-114"><span class="linenos">114</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="SQLite-115"><a href="#SQLite-115"><span class="linenos">115</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> +</span><span id="SQLite-116"><a href="#SQLite-116"><span class="linenos">116</span></a> +</span><span id="SQLite-117"><a href="#SQLite-117"><span class="linenos">117</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> +</span><span id="SQLite-118"><a href="#SQLite-118"><span class="linenos">118</span></a> +</span><span id="SQLite-119"><a href="#SQLite-119"><span class="linenos">119</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite-120"><a href="#SQLite-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> +</span><span id="SQLite-121"><a href="#SQLite-121"><span class="linenos">121</span></a> +</span><span id="SQLite-122"><a href="#SQLite-122"><span class="linenos">122</span></a> <span class="c1"># https://www.sqlite.org/lang_aggfunc.html#group_concat</span> +</span><span id="SQLite-123"><a href="#SQLite-123"><span class="linenos">123</span></a> <span class="k">def</span> <span class="nf">groupconcat_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><span id="SQLite-124"><a href="#SQLite-124"><span class="linenos">124</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite-125"><a href="#SQLite-125"><span class="linenos">125</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">)</span> +</span><span id="SQLite-126"><a href="#SQLite-126"><span class="linenos">126</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="SQLite-127"><a href="#SQLite-127"><span class="linenos">127</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</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="SQLite-128"><a href="#SQLite-128"><span class="linenos">128</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="s2">"DISTINCT "</span> </span><span id="SQLite-129"><a href="#SQLite-129"><span class="linenos">129</span></a> -</span><span id="SQLite-130"><a href="#SQLite-130"><span class="linenos">130</span></a> <span class="k">return</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><span id="SQLite-131"><a href="#SQLite-131"><span class="linenos">131</span></a> -</span><span id="SQLite-132"><a href="#SQLite-132"><span class="linenos">132</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="SQLite-133"><a href="#SQLite-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="SQLite-134"><a href="#SQLite-134"><span class="linenos">134</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="SQLite-135"><a href="#SQLite-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> +</span><span id="SQLite-130"><a href="#SQLite-130"><span class="linenos">130</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> +</span><span id="SQLite-131"><a href="#SQLite-131"><span class="linenos">131</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"SQLite GROUP_CONCAT doesn't support ORDER BY."</span><span class="p">)</span> +</span><span id="SQLite-132"><a href="#SQLite-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="SQLite-133"><a href="#SQLite-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite-134"><a href="#SQLite-134"><span class="linenos">134</span></a> +</span><span id="SQLite-135"><a href="#SQLite-135"><span class="linenos">135</span></a> <span class="n">separator</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">"separator"</span><span class="p">)</span> +</span><span id="SQLite-136"><a href="#SQLite-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GROUP_CONCAT(</span><span class="si">{</span><span class="n">distinct</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="SQLite-137"><a href="#SQLite-137"><span class="linenos">137</span></a> +</span><span id="SQLite-138"><a href="#SQLite-138"><span class="linenos">138</span></a> <span class="k">def</span> <span class="nf">least_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">Least</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite-139"><a href="#SQLite-139"><span class="linenos">139</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="SQLite-140"><a href="#SQLite-140"><span class="linenos">140</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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="SQLite-141"><a href="#SQLite-141"><span class="linenos">141</span></a> +</span><span id="SQLite-142"><a href="#SQLite-142"><span class="linenos">142</span></a> <span class="k">return</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><span id="SQLite-143"><a href="#SQLite-143"><span class="linenos">143</span></a> +</span><span id="SQLite-144"><a href="#SQLite-144"><span class="linenos">144</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite-145"><a href="#SQLite-145"><span class="linenos">145</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite-146"><a href="#SQLite-146"><span class="linenos">146</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="SQLite-147"><a href="#SQLite-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> </span></pre></div> @@ -347,6 +393,7 @@ <dd id="SQLite.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="SQLite.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="SQLite.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="SQLite.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="SQLite.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="SQLite.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -365,13 +412,13 @@ </div> <a class="headerlink" href="#SQLite.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Tokenizer-43"><a href="#SQLite.Tokenizer-43"><span class="linenos">43</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="SQLite.Tokenizer-44"><a href="#SQLite.Tokenizer-44"><span class="linenos">44</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">),</span> <span class="s2">"`"</span><span class="p">]</span> -</span><span id="SQLite.Tokenizer-45"><a href="#SQLite.Tokenizer-45"><span class="linenos">45</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0x"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0X"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)]</span> -</span><span id="SQLite.Tokenizer-46"><a href="#SQLite.Tokenizer-46"><span class="linenos">46</span></a> -</span><span id="SQLite.Tokenizer-47"><a href="#SQLite.Tokenizer-47"><span class="linenos">47</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite.Tokenizer-48"><a href="#SQLite.Tokenizer-48"><span class="linenos">48</span></a> <span class="o">**</span><span class="n">tokens</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="SQLite.Tokenizer-49"><a href="#SQLite.Tokenizer-49"><span class="linenos">49</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Tokenizer-27"><a href="#SQLite.Tokenizer-27"><span class="linenos">27</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="SQLite.Tokenizer-28"><a href="#SQLite.Tokenizer-28"><span class="linenos">28</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">),</span> <span class="s2">"`"</span><span class="p">]</span> +</span><span id="SQLite.Tokenizer-29"><a href="#SQLite.Tokenizer-29"><span class="linenos">29</span></a> <span class="n">HEX_STRINGS</span> <span class="o">=</span> <span class="p">[(</span><span class="s2">"x'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"X'"</span><span class="p">,</span> <span class="s2">"'"</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0x"</span><span class="p">,</span> <span class="s2">""</span><span class="p">),</span> <span class="p">(</span><span class="s2">"0X"</span><span class="p">,</span> <span class="s2">""</span><span class="p">)]</span> +</span><span id="SQLite.Tokenizer-30"><a href="#SQLite.Tokenizer-30"><span class="linenos">30</span></a> +</span><span id="SQLite.Tokenizer-31"><a href="#SQLite.Tokenizer-31"><span class="linenos">31</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite.Tokenizer-32"><a href="#SQLite.Tokenizer-32"><span class="linenos">32</span></a> <span class="o">**</span><span class="n">tokens</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="SQLite.Tokenizer-33"><a href="#SQLite.Tokenizer-33"><span class="linenos">33</span></a> <span class="p">}</span> </span></pre></div> @@ -399,11 +446,11 @@ </div> <a class="headerlink" href="#SQLite.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Parser-51"><a href="#SQLite.Parser-51"><span class="linenos">51</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="SQLite.Parser-52"><a href="#SQLite.Parser-52"><span class="linenos">52</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite.Parser-53"><a href="#SQLite.Parser-53"><span class="linenos">53</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="SQLite.Parser-54"><a href="#SQLite.Parser-54"><span class="linenos">54</span></a> <span class="s2">"EDITDIST3"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="SQLite.Parser-55"><a href="#SQLite.Parser-55"><span class="linenos">55</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Parser-35"><a href="#SQLite.Parser-35"><span class="linenos">35</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="SQLite.Parser-36"><a href="#SQLite.Parser-36"><span class="linenos">36</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite.Parser-37"><a href="#SQLite.Parser-37"><span class="linenos">37</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="SQLite.Parser-38"><a href="#SQLite.Parser-38"><span class="linenos">38</span></a> <span class="s2">"EDITDIST3"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="SQLite.Parser-39"><a href="#SQLite.Parser-39"><span class="linenos">39</span></a> <span class="p">}</span> </span></pre></div> @@ -460,85 +507,113 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#SQLite.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator-57"><a href="#SQLite.Generator-57"><span class="linenos"> 57</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="SQLite.Generator-58"><a href="#SQLite.Generator-58"><span class="linenos"> 58</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite.Generator-59"><a href="#SQLite.Generator-59"><span class="linenos"> 59</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="SQLite.Generator-60"><a href="#SQLite.Generator-60"><span class="linenos"> 60</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite.Generator-61"><a href="#SQLite.Generator-61"><span class="linenos"> 61</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite.Generator-62"><a href="#SQLite.Generator-62"><span class="linenos"> 62</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite.Generator-63"><a href="#SQLite.Generator-63"><span class="linenos"> 63</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="SQLite.Generator-64"><a href="#SQLite.Generator-64"><span class="linenos"> 64</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">BIGINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> -</span><span id="SQLite.Generator-65"><a href="#SQLite.Generator-65"><span class="linenos"> 65</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="SQLite.Generator-66"><a href="#SQLite.Generator-66"><span class="linenos"> 66</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">DOUBLE</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="SQLite.Generator-67"><a href="#SQLite.Generator-67"><span class="linenos"> 67</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">DECIMAL</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> -</span><span id="SQLite.Generator-68"><a href="#SQLite.Generator-68"><span class="linenos"> 68</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite.Generator-69"><a href="#SQLite.Generator-69"><span class="linenos"> 69</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite.Generator-70"><a href="#SQLite.Generator-70"><span class="linenos"> 70</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite.Generator-71"><a href="#SQLite.Generator-71"><span class="linenos"> 71</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="SQLite.Generator-72"><a href="#SQLite.Generator-72"><span class="linenos"> 72</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">"BLOB"</span><span class="p">,</span> -</span><span id="SQLite.Generator-73"><a href="#SQLite.Generator-73"><span class="linenos"> 73</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">"BLOB"</span><span class="p">,</span> -</span><span id="SQLite.Generator-74"><a href="#SQLite.Generator-74"><span class="linenos"> 74</span></a> <span class="p">}</span> -</span><span id="SQLite.Generator-75"><a href="#SQLite.Generator-75"><span class="linenos"> 75</span></a> -</span><span id="SQLite.Generator-76"><a href="#SQLite.Generator-76"><span class="linenos"> 76</span></a> <span class="n">TOKEN_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite.Generator-77"><a href="#SQLite.Generator-77"><span class="linenos"> 77</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">:</span> <span class="s2">"AUTOINCREMENT"</span><span class="p">,</span> -</span><span id="SQLite.Generator-78"><a href="#SQLite.Generator-78"><span class="linenos"> 78</span></a> <span class="p">}</span> -</span><span id="SQLite.Generator-79"><a href="#SQLite.Generator-79"><span class="linenos"> 79</span></a> -</span><span id="SQLite.Generator-80"><a href="#SQLite.Generator-80"><span class="linenos"> 80</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SQLite.Generator-81"><a href="#SQLite.Generator-81"><span class="linenos"> 81</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="SQLite.Generator-82"><a href="#SQLite.Generator-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-83"><a href="#SQLite.Generator-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-84"><a href="#SQLite.Generator-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-85"><a href="#SQLite.Generator-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-86"><a href="#SQLite.Generator-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-87"><a href="#SQLite.Generator-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-88"><a href="#SQLite.Generator-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EDITDIST3"</span><span class="p">),</span> -</span><span id="SQLite.Generator-89"><a href="#SQLite.Generator-89"><span class="linenos"> 89</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="SQLite.Generator-90"><a href="#SQLite.Generator-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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">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="SQLite.Generator-91"><a href="#SQLite.Generator-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">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="SQLite.Generator-92"><a href="#SQLite.Generator-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-93"><a href="#SQLite.Generator-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_group_concat_sql</span><span class="p">,</span> -</span><span id="SQLite.Generator-94"><a href="#SQLite.Generator-94"><span class="linenos"> 94</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator-41"><a href="#SQLite.Generator-41"><span class="linenos"> 41</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="SQLite.Generator-42"><a href="#SQLite.Generator-42"><span class="linenos"> 42</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite.Generator-43"><a href="#SQLite.Generator-43"><span class="linenos"> 43</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="SQLite.Generator-44"><a href="#SQLite.Generator-44"><span class="linenos"> 44</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">BOOLEAN</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite.Generator-45"><a href="#SQLite.Generator-45"><span class="linenos"> 45</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">TINYINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite.Generator-46"><a href="#SQLite.Generator-46"><span class="linenos"> 46</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">SMALLINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite.Generator-47"><a href="#SQLite.Generator-47"><span class="linenos"> 47</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="SQLite.Generator-48"><a href="#SQLite.Generator-48"><span class="linenos"> 48</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">BIGINT</span><span class="p">:</span> <span class="s2">"INTEGER"</span><span class="p">,</span> +</span><span id="SQLite.Generator-49"><a href="#SQLite.Generator-49"><span class="linenos"> 49</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">FLOAT</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="SQLite.Generator-50"><a href="#SQLite.Generator-50"><span class="linenos"> 50</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">DOUBLE</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="SQLite.Generator-51"><a href="#SQLite.Generator-51"><span class="linenos"> 51</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">DECIMAL</span><span class="p">:</span> <span class="s2">"REAL"</span><span class="p">,</span> +</span><span id="SQLite.Generator-52"><a href="#SQLite.Generator-52"><span class="linenos"> 52</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">CHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite.Generator-53"><a href="#SQLite.Generator-53"><span class="linenos"> 53</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">NCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite.Generator-54"><a href="#SQLite.Generator-54"><span class="linenos"> 54</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">VARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite.Generator-55"><a href="#SQLite.Generator-55"><span class="linenos"> 55</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="SQLite.Generator-56"><a href="#SQLite.Generator-56"><span class="linenos"> 56</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">"BLOB"</span><span class="p">,</span> +</span><span id="SQLite.Generator-57"><a href="#SQLite.Generator-57"><span class="linenos"> 57</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">"BLOB"</span><span class="p">,</span> +</span><span id="SQLite.Generator-58"><a href="#SQLite.Generator-58"><span class="linenos"> 58</span></a> <span class="p">}</span> +</span><span id="SQLite.Generator-59"><a href="#SQLite.Generator-59"><span class="linenos"> 59</span></a> +</span><span id="SQLite.Generator-60"><a href="#SQLite.Generator-60"><span class="linenos"> 60</span></a> <span class="n">TOKEN_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite.Generator-61"><a href="#SQLite.Generator-61"><span class="linenos"> 61</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">:</span> <span class="s2">"AUTOINCREMENT"</span><span class="p">,</span> +</span><span id="SQLite.Generator-62"><a href="#SQLite.Generator-62"><span class="linenos"> 62</span></a> <span class="p">}</span> +</span><span id="SQLite.Generator-63"><a href="#SQLite.Generator-63"><span class="linenos"> 63</span></a> +</span><span id="SQLite.Generator-64"><a href="#SQLite.Generator-64"><span class="linenos"> 64</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SQLite.Generator-65"><a href="#SQLite.Generator-65"><span class="linenos"> 65</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="SQLite.Generator-66"><a href="#SQLite.Generator-66"><span class="linenos"> 66</span></a> <span class="o">**</span><span class="n">transforms</span><span class="o">.</span><span class="n">ELIMINATE_QUALIFY</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="SQLite.Generator-67"><a href="#SQLite.Generator-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CountIf</span><span class="p">:</span> <span class="n">count_if_to_sum</span><span class="p">,</span> +</span><span id="SQLite.Generator-68"><a href="#SQLite.Generator-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_DATE"</span><span class="p">,</span> +</span><span id="SQLite.Generator-69"><a href="#SQLite.Generator-69"><span class="linenos"> 69</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">:</span> <span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIME"</span><span class="p">,</span> +</span><span id="SQLite.Generator-70"><a href="#SQLite.Generator-70"><span class="linenos"> 70</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="o">*</span><span class="n">_</span><span class="p">:</span> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">,</span> +</span><span id="SQLite.Generator-71"><a href="#SQLite.Generator-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">_date_add_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-72"><a href="#SQLite.Generator-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateStrToDate</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">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="SQLite.Generator-73"><a href="#SQLite.Generator-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">:</span> <span class="n">no_ilike_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-74"><a href="#SQLite.Generator-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-75"><a href="#SQLite.Generator-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-76"><a href="#SQLite.Generator-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-77"><a href="#SQLite.Generator-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_scalar_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-78"><a href="#SQLite.Generator-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Levenshtein</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"EDITDIST3"</span><span class="p">),</span> +</span><span id="SQLite.Generator-79"><a href="#SQLite.Generator-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalOr</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MAX"</span><span class="p">),</span> +</span><span id="SQLite.Generator-80"><a href="#SQLite.Generator-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogicalAnd</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</span><span class="p">),</span> +</span><span id="SQLite.Generator-81"><a href="#SQLite.Generator-81"><span class="linenos"> 81</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="SQLite.Generator-82"><a href="#SQLite.Generator-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToTime</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">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="SQLite.Generator-83"><a href="#SQLite.Generator-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">:</span> <span class="n">no_trycast_sql</span><span class="p">,</span> +</span><span id="SQLite.Generator-84"><a href="#SQLite.Generator-84"><span class="linenos"> 84</span></a> <span class="p">}</span> +</span><span id="SQLite.Generator-85"><a href="#SQLite.Generator-85"><span class="linenos"> 85</span></a> +</span><span id="SQLite.Generator-86"><a href="#SQLite.Generator-86"><span class="linenos"> 86</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator-87"><a href="#SQLite.Generator-87"><span class="linenos"> 87</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="SQLite.Generator-88"><a href="#SQLite.Generator-88"><span class="linenos"> 88</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="SQLite.Generator-89"><a href="#SQLite.Generator-89"><span class="linenos"> 89</span></a> +</span><span id="SQLite.Generator-90"><a href="#SQLite.Generator-90"><span class="linenos"> 90</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><span id="SQLite.Generator-91"><a href="#SQLite.Generator-91"><span class="linenos"> 91</span></a> +</span><span id="SQLite.Generator-92"><a href="#SQLite.Generator-92"><span class="linenos"> 92</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator-93"><a href="#SQLite.Generator-93"><span class="linenos"> 93</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="SQLite.Generator-94"><a href="#SQLite.Generator-94"><span class="linenos"> 94</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> </span><span id="SQLite.Generator-95"><a href="#SQLite.Generator-95"><span class="linenos"> 95</span></a> -</span><span id="SQLite.Generator-96"><a href="#SQLite.Generator-96"><span class="linenos"> 96</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="SQLite.Generator-97"><a href="#SQLite.Generator-97"><span class="linenos"> 97</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="SQLite.Generator-98"><a href="#SQLite.Generator-98"><span class="linenos"> 98</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> -</span><span id="SQLite.Generator-99"><a href="#SQLite.Generator-99"><span class="linenos"> 99</span></a> -</span><span id="SQLite.Generator-100"><a href="#SQLite.Generator-100"><span class="linenos">100</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> -</span><span id="SQLite.Generator-101"><a href="#SQLite.Generator-101"><span class="linenos">101</span></a> -</span><span id="SQLite.Generator-102"><a href="#SQLite.Generator-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> -</span><span id="SQLite.Generator-103"><a href="#SQLite.Generator-103"><span class="linenos">103</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> -</span><span id="SQLite.Generator-104"><a href="#SQLite.Generator-104"><span class="linenos">104</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> -</span><span id="SQLite.Generator-105"><a href="#SQLite.Generator-105"><span class="linenos">105</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> -</span><span id="SQLite.Generator-106"><a href="#SQLite.Generator-106"><span class="linenos">106</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> -</span><span id="SQLite.Generator-107"><a href="#SQLite.Generator-107"><span class="linenos">107</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> -</span><span id="SQLite.Generator-108"><a href="#SQLite.Generator-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> -</span><span id="SQLite.Generator-109"><a href="#SQLite.Generator-109"><span class="linenos">109</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> -</span><span id="SQLite.Generator-110"><a href="#SQLite.Generator-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator-111"><a href="#SQLite.Generator-111"><span class="linenos">111</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> -</span><span id="SQLite.Generator-112"><a href="#SQLite.Generator-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator-113"><a href="#SQLite.Generator-113"><span class="linenos">113</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> -</span><span id="SQLite.Generator-114"><a href="#SQLite.Generator-114"><span class="linenos">114</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator-115"><a href="#SQLite.Generator-115"><span class="linenos">115</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> -</span><span id="SQLite.Generator-116"><a href="#SQLite.Generator-116"><span class="linenos">116</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator-117"><a href="#SQLite.Generator-117"><span class="linenos">117</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> -</span><span id="SQLite.Generator-118"><a href="#SQLite.Generator-118"><span class="linenos">118</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="SQLite.Generator-119"><a href="#SQLite.Generator-119"><span class="linenos">119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> -</span><span id="SQLite.Generator-120"><a href="#SQLite.Generator-120"><span class="linenos">120</span></a> -</span><span id="SQLite.Generator-121"><a href="#SQLite.Generator-121"><span class="linenos">121</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> -</span><span id="SQLite.Generator-122"><a href="#SQLite.Generator-122"><span class="linenos">122</span></a> -</span><span id="SQLite.Generator-123"><a href="#SQLite.Generator-123"><span class="linenos">123</span></a> <span class="k">def</span> <span class="nf">fetch_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><span id="SQLite.Generator-124"><a href="#SQLite.Generator-124"><span class="linenos">124</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> -</span><span id="SQLite.Generator-125"><a href="#SQLite.Generator-125"><span class="linenos">125</span></a> -</span><span id="SQLite.Generator-126"><a href="#SQLite.Generator-126"><span class="linenos">126</span></a> <span class="k">def</span> <span class="nf">least_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><span id="SQLite.Generator-127"><a href="#SQLite.Generator-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="SQLite.Generator-128"><a href="#SQLite.Generator-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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="SQLite.Generator-96"><a href="#SQLite.Generator-96"><span class="linenos"> 96</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> +</span><span id="SQLite.Generator-97"><a href="#SQLite.Generator-97"><span class="linenos"> 97</span></a> +</span><span id="SQLite.Generator-98"><a href="#SQLite.Generator-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> +</span><span id="SQLite.Generator-99"><a href="#SQLite.Generator-99"><span class="linenos"> 99</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> +</span><span id="SQLite.Generator-100"><a href="#SQLite.Generator-100"><span class="linenos">100</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> +</span><span id="SQLite.Generator-101"><a href="#SQLite.Generator-101"><span class="linenos">101</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> +</span><span id="SQLite.Generator-102"><a href="#SQLite.Generator-102"><span class="linenos">102</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> +</span><span id="SQLite.Generator-103"><a href="#SQLite.Generator-103"><span class="linenos">103</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> +</span><span id="SQLite.Generator-104"><a href="#SQLite.Generator-104"><span class="linenos">104</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> +</span><span id="SQLite.Generator-105"><a href="#SQLite.Generator-105"><span class="linenos">105</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> +</span><span id="SQLite.Generator-106"><a href="#SQLite.Generator-106"><span class="linenos">106</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator-107"><a href="#SQLite.Generator-107"><span class="linenos">107</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> +</span><span id="SQLite.Generator-108"><a href="#SQLite.Generator-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator-109"><a href="#SQLite.Generator-109"><span class="linenos">109</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> +</span><span id="SQLite.Generator-110"><a href="#SQLite.Generator-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator-111"><a href="#SQLite.Generator-111"><span class="linenos">111</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> +</span><span id="SQLite.Generator-112"><a href="#SQLite.Generator-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator-113"><a href="#SQLite.Generator-113"><span class="linenos">113</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> +</span><span id="SQLite.Generator-114"><a href="#SQLite.Generator-114"><span class="linenos">114</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="SQLite.Generator-115"><a href="#SQLite.Generator-115"><span class="linenos">115</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> +</span><span id="SQLite.Generator-116"><a href="#SQLite.Generator-116"><span class="linenos">116</span></a> +</span><span id="SQLite.Generator-117"><a href="#SQLite.Generator-117"><span class="linenos">117</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> +</span><span id="SQLite.Generator-118"><a href="#SQLite.Generator-118"><span class="linenos">118</span></a> +</span><span id="SQLite.Generator-119"><a href="#SQLite.Generator-119"><span class="linenos">119</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator-120"><a href="#SQLite.Generator-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> +</span><span id="SQLite.Generator-121"><a href="#SQLite.Generator-121"><span class="linenos">121</span></a> +</span><span id="SQLite.Generator-122"><a href="#SQLite.Generator-122"><span class="linenos">122</span></a> <span class="c1"># https://www.sqlite.org/lang_aggfunc.html#group_concat</span> +</span><span id="SQLite.Generator-123"><a href="#SQLite.Generator-123"><span class="linenos">123</span></a> <span class="k">def</span> <span class="nf">groupconcat_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><span id="SQLite.Generator-124"><a href="#SQLite.Generator-124"><span class="linenos">124</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite.Generator-125"><a href="#SQLite.Generator-125"><span class="linenos">125</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">)</span> +</span><span id="SQLite.Generator-126"><a href="#SQLite.Generator-126"><span class="linenos">126</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="SQLite.Generator-127"><a href="#SQLite.Generator-127"><span class="linenos">127</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</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="SQLite.Generator-128"><a href="#SQLite.Generator-128"><span class="linenos">128</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="s2">"DISTINCT "</span> </span><span id="SQLite.Generator-129"><a href="#SQLite.Generator-129"><span class="linenos">129</span></a> -</span><span id="SQLite.Generator-130"><a href="#SQLite.Generator-130"><span class="linenos">130</span></a> <span class="k">return</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><span id="SQLite.Generator-131"><a href="#SQLite.Generator-131"><span class="linenos">131</span></a> -</span><span id="SQLite.Generator-132"><a href="#SQLite.Generator-132"><span class="linenos">132</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="SQLite.Generator-133"><a href="#SQLite.Generator-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="SQLite.Generator-134"><a href="#SQLite.Generator-134"><span class="linenos">134</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="SQLite.Generator-135"><a href="#SQLite.Generator-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> +</span><span id="SQLite.Generator-130"><a href="#SQLite.Generator-130"><span class="linenos">130</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> +</span><span id="SQLite.Generator-131"><a href="#SQLite.Generator-131"><span class="linenos">131</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"SQLite GROUP_CONCAT doesn't support ORDER BY."</span><span class="p">)</span> +</span><span id="SQLite.Generator-132"><a href="#SQLite.Generator-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="SQLite.Generator-133"><a href="#SQLite.Generator-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite.Generator-134"><a href="#SQLite.Generator-134"><span class="linenos">134</span></a> +</span><span id="SQLite.Generator-135"><a href="#SQLite.Generator-135"><span class="linenos">135</span></a> <span class="n">separator</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">"separator"</span><span class="p">)</span> +</span><span id="SQLite.Generator-136"><a href="#SQLite.Generator-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GROUP_CONCAT(</span><span class="si">{</span><span class="n">distinct</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="SQLite.Generator-137"><a href="#SQLite.Generator-137"><span class="linenos">137</span></a> +</span><span id="SQLite.Generator-138"><a href="#SQLite.Generator-138"><span class="linenos">138</span></a> <span class="k">def</span> <span class="nf">least_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">Least</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator-139"><a href="#SQLite.Generator-139"><span class="linenos">139</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="SQLite.Generator-140"><a href="#SQLite.Generator-140"><span class="linenos">140</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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="SQLite.Generator-141"><a href="#SQLite.Generator-141"><span class="linenos">141</span></a> +</span><span id="SQLite.Generator-142"><a href="#SQLite.Generator-142"><span class="linenos">142</span></a> <span class="k">return</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><span id="SQLite.Generator-143"><a href="#SQLite.Generator-143"><span class="linenos">143</span></a> +</span><span id="SQLite.Generator-144"><a href="#SQLite.Generator-144"><span class="linenos">144</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator-145"><a href="#SQLite.Generator-145"><span class="linenos">145</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite.Generator-146"><a href="#SQLite.Generator-146"><span class="linenos">146</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="SQLite.Generator-147"><a href="#SQLite.Generator-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> </span></pre></div> @@ -555,8 +630,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -587,6 +661,28 @@ Default: True</li> </div> + <div id="SQLite.Generator.cast_sql" class="classattr"> + <input id="SQLite.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 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#Cast">sqlglot.expressions.Cast</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="SQLite.Generator.cast_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#SQLite.Generator.cast_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.cast_sql-86"><a href="#SQLite.Generator.cast_sql-86"><span class="linenos">86</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator.cast_sql-87"><a href="#SQLite.Generator.cast_sql-87"><span class="linenos">87</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="SQLite.Generator.cast_sql-88"><a href="#SQLite.Generator.cast_sql-88"><span class="linenos">88</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"DATE"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="SQLite.Generator.cast_sql-89"><a href="#SQLite.Generator.cast_sql-89"><span class="linenos">89</span></a> +</span><span id="SQLite.Generator.cast_sql-90"><a href="#SQLite.Generator.cast_sql-90"><span class="linenos">90</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></pre></div> + + + + + </div> <div id="SQLite.Generator.datediff_sql" class="classattr"> <input id="SQLite.Generator.datediff_sql-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> @@ -598,32 +694,32 @@ Default: True</li> </div> <a class="headerlink" href="#SQLite.Generator.datediff_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.datediff_sql-96"><a href="#SQLite.Generator.datediff_sql-96"><span class="linenos"> 96</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-97"><a href="#SQLite.Generator.datediff_sql-97"><span class="linenos"> 97</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="SQLite.Generator.datediff_sql-98"><a href="#SQLite.Generator.datediff_sql-98"><span class="linenos"> 98</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> -</span><span id="SQLite.Generator.datediff_sql-99"><a href="#SQLite.Generator.datediff_sql-99"><span class="linenos"> 99</span></a> -</span><span id="SQLite.Generator.datediff_sql-100"><a href="#SQLite.Generator.datediff_sql-100"><span class="linenos">100</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> -</span><span id="SQLite.Generator.datediff_sql-101"><a href="#SQLite.Generator.datediff_sql-101"><span class="linenos">101</span></a> -</span><span id="SQLite.Generator.datediff_sql-102"><a href="#SQLite.Generator.datediff_sql-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-103"><a href="#SQLite.Generator.datediff_sql-103"><span class="linenos">103</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> -</span><span id="SQLite.Generator.datediff_sql-104"><a href="#SQLite.Generator.datediff_sql-104"><span class="linenos">104</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-105"><a href="#SQLite.Generator.datediff_sql-105"><span class="linenos">105</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> -</span><span id="SQLite.Generator.datediff_sql-106"><a href="#SQLite.Generator.datediff_sql-106"><span class="linenos">106</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-107"><a href="#SQLite.Generator.datediff_sql-107"><span class="linenos">107</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> -</span><span id="SQLite.Generator.datediff_sql-108"><a href="#SQLite.Generator.datediff_sql-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-109"><a href="#SQLite.Generator.datediff_sql-109"><span class="linenos">109</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> -</span><span id="SQLite.Generator.datediff_sql-110"><a href="#SQLite.Generator.datediff_sql-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-111"><a href="#SQLite.Generator.datediff_sql-111"><span class="linenos">111</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> -</span><span id="SQLite.Generator.datediff_sql-112"><a href="#SQLite.Generator.datediff_sql-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-113"><a href="#SQLite.Generator.datediff_sql-113"><span class="linenos">113</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> -</span><span id="SQLite.Generator.datediff_sql-114"><a href="#SQLite.Generator.datediff_sql-114"><span class="linenos">114</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-115"><a href="#SQLite.Generator.datediff_sql-115"><span class="linenos">115</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> -</span><span id="SQLite.Generator.datediff_sql-116"><a href="#SQLite.Generator.datediff_sql-116"><span class="linenos">116</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-117"><a href="#SQLite.Generator.datediff_sql-117"><span class="linenos">117</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> -</span><span id="SQLite.Generator.datediff_sql-118"><a href="#SQLite.Generator.datediff_sql-118"><span class="linenos">118</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="SQLite.Generator.datediff_sql-119"><a href="#SQLite.Generator.datediff_sql-119"><span class="linenos">119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> -</span><span id="SQLite.Generator.datediff_sql-120"><a href="#SQLite.Generator.datediff_sql-120"><span class="linenos">120</span></a> -</span><span id="SQLite.Generator.datediff_sql-121"><a href="#SQLite.Generator.datediff_sql-121"><span class="linenos">121</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.datediff_sql-92"><a href="#SQLite.Generator.datediff_sql-92"><span class="linenos"> 92</span></a> <span class="k">def</span> <span class="nf">datediff_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">DateDiff</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-93"><a href="#SQLite.Generator.datediff_sql-93"><span class="linenos"> 93</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="SQLite.Generator.datediff_sql-94"><a href="#SQLite.Generator.datediff_sql-94"><span class="linenos"> 94</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">"DAY"</span> +</span><span id="SQLite.Generator.datediff_sql-95"><a href="#SQLite.Generator.datediff_sql-95"><span class="linenos"> 95</span></a> +</span><span id="SQLite.Generator.datediff_sql-96"><a href="#SQLite.Generator.datediff_sql-96"><span class="linenos"> 96</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(JULIANDAY(</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">expression</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">) - JULIANDAY(</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">))"</span> +</span><span id="SQLite.Generator.datediff_sql-97"><a href="#SQLite.Generator.datediff_sql-97"><span class="linenos"> 97</span></a> +</span><span id="SQLite.Generator.datediff_sql-98"><a href="#SQLite.Generator.datediff_sql-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MONTH"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-99"><a href="#SQLite.Generator.datediff_sql-99"><span class="linenos"> 99</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 30.0"</span> +</span><span id="SQLite.Generator.datediff_sql-100"><a href="#SQLite.Generator.datediff_sql-100"><span class="linenos">100</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"YEAR"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-101"><a href="#SQLite.Generator.datediff_sql-101"><span class="linenos">101</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> / 365.0"</span> +</span><span id="SQLite.Generator.datediff_sql-102"><a href="#SQLite.Generator.datediff_sql-102"><span class="linenos">102</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"HOUR"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-103"><a href="#SQLite.Generator.datediff_sql-103"><span class="linenos">103</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 24.0"</span> +</span><span id="SQLite.Generator.datediff_sql-104"><a href="#SQLite.Generator.datediff_sql-104"><span class="linenos">104</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MINUTE"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-105"><a href="#SQLite.Generator.datediff_sql-105"><span class="linenos">105</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 1440.0"</span> +</span><span id="SQLite.Generator.datediff_sql-106"><a href="#SQLite.Generator.datediff_sql-106"><span class="linenos">106</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"SECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-107"><a href="#SQLite.Generator.datediff_sql-107"><span class="linenos">107</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400.0"</span> +</span><span id="SQLite.Generator.datediff_sql-108"><a href="#SQLite.Generator.datediff_sql-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MILLISECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-109"><a href="#SQLite.Generator.datediff_sql-109"><span class="linenos">109</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000.0"</span> +</span><span id="SQLite.Generator.datediff_sql-110"><a href="#SQLite.Generator.datediff_sql-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"MICROSECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-111"><a href="#SQLite.Generator.datediff_sql-111"><span class="linenos">111</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 86400000000.0"</span> +</span><span id="SQLite.Generator.datediff_sql-112"><a href="#SQLite.Generator.datediff_sql-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="n">unit</span> <span class="o">==</span> <span class="s2">"NANOSECOND"</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-113"><a href="#SQLite.Generator.datediff_sql-113"><span class="linenos">113</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> * 8640000000000.0"</span> +</span><span id="SQLite.Generator.datediff_sql-114"><a href="#SQLite.Generator.datediff_sql-114"><span class="linenos">114</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="SQLite.Generator.datediff_sql-115"><a href="#SQLite.Generator.datediff_sql-115"><span class="linenos">115</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"DATEDIFF unsupported for '</span><span class="si">{unit}</span><span class="s2">'."</span><span class="p">)</span> +</span><span id="SQLite.Generator.datediff_sql-116"><a href="#SQLite.Generator.datediff_sql-116"><span class="linenos">116</span></a> +</span><span id="SQLite.Generator.datediff_sql-117"><a href="#SQLite.Generator.datediff_sql-117"><span class="linenos">117</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> AS INTEGER)"</span> </span></pre></div> @@ -635,14 +731,45 @@ Default: True</li> <div class="attr function"> <span class="def">def</span> - <span class="name">fetch_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><span class="return-annotation">):</span></span> + <span class="name">fetch_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#Fetch">sqlglot.expressions.Fetch</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> <label class="view-source-button" for="SQLite.Generator.fetch_sql-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#SQLite.Generator.fetch_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.fetch_sql-123"><a href="#SQLite.Generator.fetch_sql-123"><span class="linenos">123</span></a> <span class="k">def</span> <span class="nf">fetch_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><span id="SQLite.Generator.fetch_sql-124"><a href="#SQLite.Generator.fetch_sql-124"><span class="linenos">124</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.fetch_sql-119"><a href="#SQLite.Generator.fetch_sql-119"><span class="linenos">119</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator.fetch_sql-120"><a href="#SQLite.Generator.fetch_sql-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">limit_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">(</span><span class="n">expression</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">"count"</span><span class="p">)))</span> +</span></pre></div> + + + + + </div> + <div id="SQLite.Generator.groupconcat_sql" class="classattr"> + <input id="SQLite.Generator.groupconcat_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">groupconcat_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><span class="return-annotation">):</span></span> + + <label class="view-source-button" for="SQLite.Generator.groupconcat_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#SQLite.Generator.groupconcat_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.groupconcat_sql-123"><a href="#SQLite.Generator.groupconcat_sql-123"><span class="linenos">123</span></a> <span class="k">def</span> <span class="nf">groupconcat_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><span id="SQLite.Generator.groupconcat_sql-124"><a href="#SQLite.Generator.groupconcat_sql-124"><span class="linenos">124</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite.Generator.groupconcat_sql-125"><a href="#SQLite.Generator.groupconcat_sql-125"><span class="linenos">125</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">find</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">)</span> +</span><span id="SQLite.Generator.groupconcat_sql-126"><a href="#SQLite.Generator.groupconcat_sql-126"><span class="linenos">126</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="SQLite.Generator.groupconcat_sql-127"><a href="#SQLite.Generator.groupconcat_sql-127"><span class="linenos">127</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</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="SQLite.Generator.groupconcat_sql-128"><a href="#SQLite.Generator.groupconcat_sql-128"><span class="linenos">128</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="s2">"DISTINCT "</span> +</span><span id="SQLite.Generator.groupconcat_sql-129"><a href="#SQLite.Generator.groupconcat_sql-129"><span class="linenos">129</span></a> +</span><span id="SQLite.Generator.groupconcat_sql-130"><a href="#SQLite.Generator.groupconcat_sql-130"><span class="linenos">130</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> +</span><span id="SQLite.Generator.groupconcat_sql-131"><a href="#SQLite.Generator.groupconcat_sql-131"><span class="linenos">131</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"SQLite GROUP_CONCAT doesn't support ORDER BY."</span><span class="p">)</span> +</span><span id="SQLite.Generator.groupconcat_sql-132"><a href="#SQLite.Generator.groupconcat_sql-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="SQLite.Generator.groupconcat_sql-133"><a href="#SQLite.Generator.groupconcat_sql-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite.Generator.groupconcat_sql-134"><a href="#SQLite.Generator.groupconcat_sql-134"><span class="linenos">134</span></a> +</span><span id="SQLite.Generator.groupconcat_sql-135"><a href="#SQLite.Generator.groupconcat_sql-135"><span class="linenos">135</span></a> <span class="n">separator</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">"separator"</span><span class="p">)</span> +</span><span id="SQLite.Generator.groupconcat_sql-136"><a href="#SQLite.Generator.groupconcat_sql-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GROUP_CONCAT(</span><span class="si">{</span><span class="n">distinct</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -654,17 +781,17 @@ Default: True</li> <div class="attr function"> <span class="def">def</span> - <span class="name">least_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><span class="return-annotation">):</span></span> + <span class="name">least_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#Least">sqlglot.expressions.Least</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> <label class="view-source-button" for="SQLite.Generator.least_sql-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#SQLite.Generator.least_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.least_sql-126"><a href="#SQLite.Generator.least_sql-126"><span class="linenos">126</span></a> <span class="k">def</span> <span class="nf">least_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><span id="SQLite.Generator.least_sql-127"><a href="#SQLite.Generator.least_sql-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="SQLite.Generator.least_sql-128"><a href="#SQLite.Generator.least_sql-128"><span class="linenos">128</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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="SQLite.Generator.least_sql-129"><a href="#SQLite.Generator.least_sql-129"><span class="linenos">129</span></a> -</span><span id="SQLite.Generator.least_sql-130"><a href="#SQLite.Generator.least_sql-130"><span class="linenos">130</span></a> <span class="k">return</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.least_sql-138"><a href="#SQLite.Generator.least_sql-138"><span class="linenos">138</span></a> <span class="k">def</span> <span class="nf">least_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">Least</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator.least_sql-139"><a href="#SQLite.Generator.least_sql-139"><span class="linenos">139</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="SQLite.Generator.least_sql-140"><a href="#SQLite.Generator.least_sql-140"><span class="linenos">140</span></a> <span class="k">return</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"MIN"</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="SQLite.Generator.least_sql-141"><a href="#SQLite.Generator.least_sql-141"><span class="linenos">141</span></a> +</span><span id="SQLite.Generator.least_sql-142"><a href="#SQLite.Generator.least_sql-142"><span class="linenos">142</span></a> <span class="k">return</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></pre></div> @@ -676,16 +803,16 @@ Default: True</li> <div class="attr function"> <span class="def">def</span> - <span class="name">transaction_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><span class="return-annotation">):</span></span> + <span class="name">transaction_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#Transaction">sqlglot.expressions.Transaction</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> <label class="view-source-button" for="SQLite.Generator.transaction_sql-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#SQLite.Generator.transaction_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.transaction_sql-132"><a href="#SQLite.Generator.transaction_sql-132"><span class="linenos">132</span></a> <span class="k">def</span> <span class="nf">transaction_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><span id="SQLite.Generator.transaction_sql-133"><a href="#SQLite.Generator.transaction_sql-133"><span class="linenos">133</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="SQLite.Generator.transaction_sql-134"><a href="#SQLite.Generator.transaction_sql-134"><span class="linenos">134</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="SQLite.Generator.transaction_sql-135"><a href="#SQLite.Generator.transaction_sql-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SQLite.Generator.transaction_sql-144"><a href="#SQLite.Generator.transaction_sql-144"><span class="linenos">144</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="SQLite.Generator.transaction_sql-145"><a href="#SQLite.Generator.transaction_sql-145"><span class="linenos">145</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="SQLite.Generator.transaction_sql-146"><a href="#SQLite.Generator.transaction_sql-146"><span class="linenos">146</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="SQLite.Generator.transaction_sql-147"><a href="#SQLite.Generator.transaction_sql-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BEGIN</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TRANSACTION"</span> </span></pre></div> @@ -781,6 +908,8 @@ Default: True</li> <dd id="SQLite.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="SQLite.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="SQLite.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="SQLite.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="SQLite.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="SQLite.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="SQLite.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="SQLite.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -846,7 +975,6 @@ Default: True</li> <dd id="SQLite.Generator.bitwiseor_sql" class="function"><a href="../generator.html#Generator.bitwiseor_sql">bitwiseor_sql</a></dd> <dd id="SQLite.Generator.bitwiserightshift_sql" class="function"><a href="../generator.html#Generator.bitwiserightshift_sql">bitwiserightshift_sql</a></dd> <dd id="SQLite.Generator.bitwisexor_sql" class="function"><a href="../generator.html#Generator.bitwisexor_sql">bitwisexor_sql</a></dd> - <dd id="SQLite.Generator.cast_sql" class="function"><a href="../generator.html#Generator.cast_sql">cast_sql</a></dd> <dd id="SQLite.Generator.currentdate_sql" class="function"><a href="../generator.html#Generator.currentdate_sql">currentdate_sql</a></dd> <dd id="SQLite.Generator.collate_sql" class="function"><a href="../generator.html#Generator.collate_sql">collate_sql</a></dd> <dd id="SQLite.Generator.command_sql" class="function"><a href="../generator.html#Generator.command_sql">command_sql</a></dd> @@ -864,7 +992,6 @@ Default: True</li> <dd id="SQLite.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="SQLite.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="SQLite.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="SQLite.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="SQLite.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="SQLite.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="SQLite.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -906,6 +1033,7 @@ Default: True</li> <dd id="SQLite.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="SQLite.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="SQLite.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="SQLite.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/starrocks.html b/docs/sqlglot/dialects/starrocks.html index 0377917..f1c9924 100644 --- a/docs/sqlglot/dialects/starrocks.html +++ b/docs/sqlglot/dialects/starrocks.html @@ -34,6 +34,12 @@ <a class="class" href="#StarRocks">StarRocks</a> <ul class="memberlist"> <li> + <a class="class" href="#StarRocks.Parser">StarRocks.Parser</a> + <ul class="memberlist"> + </ul> + + </li> + <li> <a class="class" href="#StarRocks.Generator">StarRocks.Generator</a> <ul class="memberlist"> </ul> @@ -70,28 +76,40 @@ </span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span> </span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> <span class="n">rename_func</span> </span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">sqlglot.dialects.mysql</span> <span class="kn">import</span> <span class="n">MySQL</span> -</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> +</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</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-7"><a href="#L-7"><span class="linenos"> 7</span></a> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="k">class</span> <span class="nc">StarRocks</span><span class="p">(</span><span class="n">MySQL</span><span class="p">):</span> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> <span class="c1"># type: ignore</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a> <span class="o">**</span><span class="n">MySQL</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 class="c1"># type: ignore</span> -</span><span id="L-12"><a href="#L-12"><span class="linenos">12</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos">13</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"DATETIME"</span><span class="p">,</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos">14</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">"DATETIME"</span><span class="p">,</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="p">}</span> -</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> -</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="o">**</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span> -</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"UNIX_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="L-25"><a href="#L-25"><span class="linenos">25</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a> <span class="p">}</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos">27</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">DateTrunc</span><span class="p">)</span> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="k">class</span> <span class="nc">StarRocks</span><span class="p">(</span><span class="n">MySQL</span><span class="p">):</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> <span class="c1"># type: ignore</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a> <span class="o">**</span><span class="n">MySQL</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-13"><a href="#L-13"><span class="linenos">13</span></a> <span class="s2">"DATE_TRUNC"</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">TimestampTrunc</span><span class="p">(</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos">14</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">1</span><span class="p">),</span> <span class="n">unit</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-15"><a href="#L-15"><span class="linenos">15</span></a> <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><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> <span class="c1"># type: ignore</span> +</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> <span class="o">**</span><span class="n">MySQL</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 class="c1"># type: ignore</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos">21</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos">22</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"DATETIME"</span><span class="p">,</span> +</span><span id="L-23"><a href="#L-23"><span class="linenos">23</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">"DATETIME"</span><span class="p">,</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="p">}</span> +</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="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="o">**</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"UNIX_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</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><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="p">),</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="p">}</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos">39</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">DateTrunc</span><span class="p">)</span> </span></pre></div> @@ -107,26 +125,37 @@ </div> <a class="headerlink" href="#StarRocks"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StarRocks-9"><a href="#StarRocks-9"><span class="linenos"> 9</span></a><span class="k">class</span> <span class="nc">StarRocks</span><span class="p">(</span><span class="n">MySQL</span><span class="p">):</span> -</span><span id="StarRocks-10"><a href="#StarRocks-10"><span class="linenos">10</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> <span class="c1"># type: ignore</span> -</span><span id="StarRocks-11"><a href="#StarRocks-11"><span class="linenos">11</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="StarRocks-12"><a href="#StarRocks-12"><span class="linenos">12</span></a> <span class="o">**</span><span class="n">MySQL</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 class="c1"># type: ignore</span> -</span><span id="StarRocks-13"><a href="#StarRocks-13"><span class="linenos">13</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="StarRocks-14"><a href="#StarRocks-14"><span class="linenos">14</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"DATETIME"</span><span class="p">,</span> -</span><span id="StarRocks-15"><a href="#StarRocks-15"><span class="linenos">15</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">"DATETIME"</span><span class="p">,</span> -</span><span id="StarRocks-16"><a href="#StarRocks-16"><span class="linenos">16</span></a> <span class="p">}</span> -</span><span id="StarRocks-17"><a href="#StarRocks-17"><span class="linenos">17</span></a> -</span><span id="StarRocks-18"><a href="#StarRocks-18"><span class="linenos">18</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="StarRocks-19"><a href="#StarRocks-19"><span class="linenos">19</span></a> <span class="o">**</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="StarRocks-20"><a href="#StarRocks-20"><span class="linenos">20</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="StarRocks-21"><a href="#StarRocks-21"><span class="linenos">21</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="StarRocks-22"><a href="#StarRocks-22"><span class="linenos">22</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span> -</span><span id="StarRocks-23"><a href="#StarRocks-23"><span class="linenos">23</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"UNIX_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="StarRocks-24"><a href="#StarRocks-24"><span class="linenos">24</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="StarRocks-25"><a href="#StarRocks-25"><span class="linenos">25</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="StarRocks-26"><a href="#StarRocks-26"><span class="linenos">26</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="StarRocks-27"><a href="#StarRocks-27"><span class="linenos">27</span></a> <span class="p">}</span> -</span><span id="StarRocks-28"><a href="#StarRocks-28"><span class="linenos">28</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">DateTrunc</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StarRocks-10"><a href="#StarRocks-10"><span class="linenos">10</span></a><span class="k">class</span> <span class="nc">StarRocks</span><span class="p">(</span><span class="n">MySQL</span><span class="p">):</span> +</span><span id="StarRocks-11"><a href="#StarRocks-11"><span class="linenos">11</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> <span class="c1"># type: ignore</span> +</span><span id="StarRocks-12"><a href="#StarRocks-12"><span class="linenos">12</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StarRocks-13"><a href="#StarRocks-13"><span class="linenos">13</span></a> <span class="o">**</span><span class="n">MySQL</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="StarRocks-14"><a href="#StarRocks-14"><span class="linenos">14</span></a> <span class="s2">"DATE_TRUNC"</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">TimestampTrunc</span><span class="p">(</span> +</span><span id="StarRocks-15"><a href="#StarRocks-15"><span class="linenos">15</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">1</span><span class="p">),</span> <span class="n">unit</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="StarRocks-16"><a href="#StarRocks-16"><span class="linenos">16</span></a> <span class="p">),</span> +</span><span id="StarRocks-17"><a href="#StarRocks-17"><span class="linenos">17</span></a> <span class="p">}</span> +</span><span id="StarRocks-18"><a href="#StarRocks-18"><span class="linenos">18</span></a> +</span><span id="StarRocks-19"><a href="#StarRocks-19"><span class="linenos">19</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> <span class="c1"># type: ignore</span> +</span><span id="StarRocks-20"><a href="#StarRocks-20"><span class="linenos">20</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StarRocks-21"><a href="#StarRocks-21"><span class="linenos">21</span></a> <span class="o">**</span><span class="n">MySQL</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 class="c1"># type: ignore</span> +</span><span id="StarRocks-22"><a href="#StarRocks-22"><span class="linenos">22</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="StarRocks-23"><a href="#StarRocks-23"><span class="linenos">23</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"DATETIME"</span><span class="p">,</span> +</span><span id="StarRocks-24"><a href="#StarRocks-24"><span class="linenos">24</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">"DATETIME"</span><span class="p">,</span> +</span><span id="StarRocks-25"><a href="#StarRocks-25"><span class="linenos">25</span></a> <span class="p">}</span> +</span><span id="StarRocks-26"><a href="#StarRocks-26"><span class="linenos">26</span></a> +</span><span id="StarRocks-27"><a href="#StarRocks-27"><span class="linenos">27</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StarRocks-28"><a href="#StarRocks-28"><span class="linenos">28</span></a> <span class="o">**</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="StarRocks-29"><a href="#StarRocks-29"><span class="linenos">29</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="StarRocks-30"><a href="#StarRocks-30"><span class="linenos">30</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="StarRocks-31"><a href="#StarRocks-31"><span class="linenos">31</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span> +</span><span id="StarRocks-32"><a href="#StarRocks-32"><span class="linenos">32</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"UNIX_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="StarRocks-33"><a href="#StarRocks-33"><span class="linenos">33</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</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><span id="StarRocks-34"><a href="#StarRocks-34"><span class="linenos">34</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="StarRocks-35"><a href="#StarRocks-35"><span class="linenos">35</span></a> <span class="p">),</span> +</span><span id="StarRocks-36"><a href="#StarRocks-36"><span class="linenos">36</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="StarRocks-37"><a href="#StarRocks-37"><span class="linenos">37</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="StarRocks-38"><a href="#StarRocks-38"><span class="linenos">38</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="StarRocks-39"><a href="#StarRocks-39"><span class="linenos">39</span></a> <span class="p">}</span> +</span><span id="StarRocks-40"><a href="#StarRocks-40"><span class="linenos">40</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">DateTrunc</span><span class="p">)</span> </span></pre></div> @@ -137,7 +166,6 @@ <dl> <div><dt><a href="mysql.html#MySQL">sqlglot.dialects.mysql.MySQL</a></dt> <dd id="StarRocks.Tokenizer" class="class"><a href="mysql.html#MySQL.Tokenizer">Tokenizer</a></dd> - <dd id="StarRocks.Parser" class="class"><a href="mysql.html#MySQL.Parser">Parser</a></dd> </div> <div><dt><a href="dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></dt> @@ -147,6 +175,7 @@ <dd id="StarRocks.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="StarRocks.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="StarRocks.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="StarRocks.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="StarRocks.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="StarRocks.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -154,6 +183,69 @@ </dl> </div> </section> + <section id="StarRocks.Parser"> + <input id="StarRocks.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">StarRocks.Parser</span><wbr>(<span class="base"><a href="mysql.html#MySQL.Parser">sqlglot.dialects.mysql.MySQL.Parser</a></span>): + + <label class="view-source-button" for="StarRocks.Parser-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#StarRocks.Parser"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="StarRocks.Parser-11"><a href="#StarRocks.Parser-11"><span class="linenos">11</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> <span class="c1"># type: ignore</span> +</span><span id="StarRocks.Parser-12"><a href="#StarRocks.Parser-12"><span class="linenos">12</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StarRocks.Parser-13"><a href="#StarRocks.Parser-13"><span class="linenos">13</span></a> <span class="o">**</span><span class="n">MySQL</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="StarRocks.Parser-14"><a href="#StarRocks.Parser-14"><span class="linenos">14</span></a> <span class="s2">"DATE_TRUNC"</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">TimestampTrunc</span><span class="p">(</span> +</span><span id="StarRocks.Parser-15"><a href="#StarRocks.Parser-15"><span class="linenos">15</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">1</span><span class="p">),</span> <span class="n">unit</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="StarRocks.Parser-16"><a href="#StarRocks.Parser-16"><span class="linenos">16</span></a> <span class="p">),</span> +</span><span id="StarRocks.Parser-17"><a href="#StarRocks.Parser-17"><span class="linenos">17</span></a> <span class="p">}</span> +</span></pre></div> + + + <div class="docstring"><p>Parser consumes a list of tokens produced by the <code><a href="../tokens.html#Tokenizer">sqlglot.tokens.Tokenizer</a></code> and produces +a parsed syntax tree.</p> + +<h6 id="arguments">Arguments:</h6> + +<ul> +<li><strong>error_level:</strong> the desired error level. +Default: ErrorLevel.RAISE</li> +<li><strong>error_message_context:</strong> determines the amount of context to capture from a +query string when displaying the error message (in number of characters). +Default: 50.</li> +<li><strong>index_offset:</strong> Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list. +Default: 0</li> +<li><strong>alias_post_tablesample:</strong> If the table alias comes after tablesample. +Default: False</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> +<li><strong>null_ordering:</strong> Indicates the default null ordering method to use if not explicitly set. +Options are "nulls_are_small", "nulls_are_large", "nulls_are_last". +Default: "nulls_are_small"</li> +</ul> +</div> + + + <div class="inherited"> + <h5>Inherited Members</h5> + <dl> + <div><dt><a href="../parser.html#Parser">sqlglot.parser.Parser</a></dt> + <dd id="StarRocks.Parser.__init__" class="function"><a href="../parser.html#Parser.__init__">Parser</a></dd> + <dd id="StarRocks.Parser.reset" class="function"><a href="../parser.html#Parser.reset">reset</a></dd> + <dd id="StarRocks.Parser.parse" class="function"><a href="../parser.html#Parser.parse">parse</a></dd> + <dd id="StarRocks.Parser.parse_into" class="function"><a href="../parser.html#Parser.parse_into">parse_into</a></dd> + <dd id="StarRocks.Parser.check_errors" class="function"><a href="../parser.html#Parser.check_errors">check_errors</a></dd> + <dd id="StarRocks.Parser.raise_error" class="function"><a href="../parser.html#Parser.raise_error">raise_error</a></dd> + <dd id="StarRocks.Parser.expression" class="function"><a href="../parser.html#Parser.expression">expression</a></dd> + <dd id="StarRocks.Parser.validate_expression" class="function"><a href="../parser.html#Parser.validate_expression">validate_expression</a></dd> + + </div> + </dl> + </div> + </section> <section id="StarRocks.Generator"> <input id="StarRocks.Generator-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr class"> @@ -165,25 +257,28 @@ </div> <a class="headerlink" href="#StarRocks.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StarRocks.Generator-10"><a href="#StarRocks.Generator-10"><span class="linenos">10</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> <span class="c1"># type: ignore</span> -</span><span id="StarRocks.Generator-11"><a href="#StarRocks.Generator-11"><span class="linenos">11</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="StarRocks.Generator-12"><a href="#StarRocks.Generator-12"><span class="linenos">12</span></a> <span class="o">**</span><span class="n">MySQL</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 class="c1"># type: ignore</span> -</span><span id="StarRocks.Generator-13"><a href="#StarRocks.Generator-13"><span class="linenos">13</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> -</span><span id="StarRocks.Generator-14"><a href="#StarRocks.Generator-14"><span class="linenos">14</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"DATETIME"</span><span class="p">,</span> -</span><span id="StarRocks.Generator-15"><a href="#StarRocks.Generator-15"><span class="linenos">15</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">"DATETIME"</span><span class="p">,</span> -</span><span id="StarRocks.Generator-16"><a href="#StarRocks.Generator-16"><span class="linenos">16</span></a> <span class="p">}</span> -</span><span id="StarRocks.Generator-17"><a href="#StarRocks.Generator-17"><span class="linenos">17</span></a> -</span><span id="StarRocks.Generator-18"><a href="#StarRocks.Generator-18"><span class="linenos">18</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="StarRocks.Generator-19"><a href="#StarRocks.Generator-19"><span class="linenos">19</span></a> <span class="o">**</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="StarRocks.Generator-20"><a href="#StarRocks.Generator-20"><span class="linenos">20</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="StarRocks.Generator-21"><a href="#StarRocks.Generator-21"><span class="linenos">21</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> -</span><span id="StarRocks.Generator-22"><a href="#StarRocks.Generator-22"><span class="linenos">22</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span> -</span><span id="StarRocks.Generator-23"><a href="#StarRocks.Generator-23"><span class="linenos">23</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"UNIX_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="StarRocks.Generator-24"><a href="#StarRocks.Generator-24"><span class="linenos">24</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> -</span><span id="StarRocks.Generator-25"><a href="#StarRocks.Generator-25"><span class="linenos">25</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> -</span><span id="StarRocks.Generator-26"><a href="#StarRocks.Generator-26"><span class="linenos">26</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> -</span><span id="StarRocks.Generator-27"><a href="#StarRocks.Generator-27"><span class="linenos">27</span></a> <span class="p">}</span> -</span><span id="StarRocks.Generator-28"><a href="#StarRocks.Generator-28"><span class="linenos">28</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">DateTrunc</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StarRocks.Generator-19"><a href="#StarRocks.Generator-19"><span class="linenos">19</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> <span class="c1"># type: ignore</span> +</span><span id="StarRocks.Generator-20"><a href="#StarRocks.Generator-20"><span class="linenos">20</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StarRocks.Generator-21"><a href="#StarRocks.Generator-21"><span class="linenos">21</span></a> <span class="o">**</span><span class="n">MySQL</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 class="c1"># type: ignore</span> +</span><span id="StarRocks.Generator-22"><a href="#StarRocks.Generator-22"><span class="linenos">22</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">TEXT</span><span class="p">:</span> <span class="s2">"STRING"</span><span class="p">,</span> +</span><span id="StarRocks.Generator-23"><a href="#StarRocks.Generator-23"><span class="linenos">23</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">TIMESTAMP</span><span class="p">:</span> <span class="s2">"DATETIME"</span><span class="p">,</span> +</span><span id="StarRocks.Generator-24"><a href="#StarRocks.Generator-24"><span class="linenos">24</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">"DATETIME"</span><span class="p">,</span> +</span><span id="StarRocks.Generator-25"><a href="#StarRocks.Generator-25"><span class="linenos">25</span></a> <span class="p">}</span> +</span><span id="StarRocks.Generator-26"><a href="#StarRocks.Generator-26"><span class="linenos">26</span></a> +</span><span id="StarRocks.Generator-27"><a href="#StarRocks.Generator-27"><span class="linenos">27</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StarRocks.Generator-28"><a href="#StarRocks.Generator-28"><span class="linenos">28</span></a> <span class="o">**</span><span class="n">MySQL</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="StarRocks.Generator-29"><a href="#StarRocks.Generator-29"><span class="linenos">29</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="StarRocks.Generator-30"><a href="#StarRocks.Generator-30"><span class="linenos">30</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">:</span> <span class="n">arrow_json_extract_sql</span><span class="p">,</span> +</span><span id="StarRocks.Generator-31"><a href="#StarRocks.Generator-31"><span class="linenos">31</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"DATEDIFF"</span><span class="p">),</span> +</span><span id="StarRocks.Generator-32"><a href="#StarRocks.Generator-32"><span class="linenos">32</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrToUnix</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="sa">f</span><span class="s2">"UNIX_TIMESTAMP(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="StarRocks.Generator-33"><a href="#StarRocks.Generator-33"><span class="linenos">33</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimestampTrunc</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><span id="StarRocks.Generator-34"><a href="#StarRocks.Generator-34"><span class="linenos">34</span></a> <span class="s2">"DATE_TRUNC"</span><span class="p">,</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="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)),</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span> +</span><span id="StarRocks.Generator-35"><a href="#StarRocks.Generator-35"><span class="linenos">35</span></a> <span class="p">),</span> +</span><span id="StarRocks.Generator-36"><a href="#StarRocks.Generator-36"><span class="linenos">36</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeStrToDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"TO_DATE"</span><span class="p">),</span> +</span><span id="StarRocks.Generator-37"><a href="#StarRocks.Generator-37"><span class="linenos">37</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToStr</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="sa">f</span><span class="s2">"FROM_UNIXTIME(</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="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">format_time</span><span class="p">(</span><span class="n">e</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span><span class="p">,</span> +</span><span id="StarRocks.Generator-38"><a href="#StarRocks.Generator-38"><span class="linenos">38</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UnixToTime</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"FROM_UNIXTIME"</span><span class="p">),</span> +</span><span id="StarRocks.Generator-39"><a href="#StarRocks.Generator-39"><span class="linenos">39</span></a> <span class="p">}</span> +</span><span id="StarRocks.Generator-40"><a href="#StarRocks.Generator-40"><span class="linenos">40</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">DateTrunc</span><span class="p">)</span> </span></pre></div> @@ -200,8 +295,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -322,6 +416,8 @@ Default: True</li> <dd id="StarRocks.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="StarRocks.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="StarRocks.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="StarRocks.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="StarRocks.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="StarRocks.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="StarRocks.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="StarRocks.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -406,7 +502,6 @@ Default: True</li> <dd id="StarRocks.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="StarRocks.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="StarRocks.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="StarRocks.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="StarRocks.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="StarRocks.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="StarRocks.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -448,12 +543,11 @@ Default: True</li> <dd id="StarRocks.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="StarRocks.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="StarRocks.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="StarRocks.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> <div><dt><a href="mysql.html#MySQL.Generator">sqlglot.dialects.mysql.MySQL.Generator</a></dt> <dd id="StarRocks.Generator.show_sql" class="function"><a href="mysql.html#MySQL.Generator.show_sql">show_sql</a></dd> - <dd id="StarRocks.Generator.setitem_sql" class="function"><a href="mysql.html#MySQL.Generator.setitem_sql">setitem_sql</a></dd> - <dd id="StarRocks.Generator.set_sql" class="function"><a href="mysql.html#MySQL.Generator.set_sql">set_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/tableau.html b/docs/sqlglot/dialects/tableau.html index 3edc9bc..b8f34d8 100644 --- a/docs/sqlglot/dialects/tableau.html +++ b/docs/sqlglot/dialects/tableau.html @@ -150,6 +150,7 @@ <dd id="Tableau.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Tableau.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Tableau.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Tableau.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Tableau.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Tableau.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -191,8 +192,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -313,6 +313,8 @@ Default: True</li> <dd id="Tableau.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Tableau.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Tableau.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Tableau.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Tableau.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Tableau.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Tableau.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Tableau.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -397,7 +399,6 @@ Default: True</li> <dd id="Tableau.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Tableau.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Tableau.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Tableau.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Tableau.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Tableau.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Tableau.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -439,6 +440,7 @@ Default: True</li> <dd id="Tableau.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Tableau.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Tableau.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Tableau.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/teradata.html b/docs/sqlglot/dialects/teradata.html index 91906a1..91b5d18 100644 --- a/docs/sqlglot/dialects/teradata.html +++ b/docs/sqlglot/dialects/teradata.html @@ -223,36 +223,37 @@ </span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="o">**</span><span class="n">generator</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-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="p">}</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="c1"># FROM before SET in Teradata UPDATE syntax</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="c1"># https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-SQL-Data-Manipulation-Language-17.20/Statement-Syntax/UPDATE/UPDATE-Syntax-Basic-Form-FROM-Clause</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">set_sql</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-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</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-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="n">type_sql</span> <span class="o">=</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-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">expressions_sql</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><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="p">}</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="c1"># FROM before SET in Teradata UPDATE syntax</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="c1"># https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-SQL-Data-Manipulation-Language-17.20/Statement-Syntax/UPDATE/UPDATE-Syntax-Basic-Form-FROM-Clause</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">set_sql</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-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</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-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">type_sql</span> <span class="o">=</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-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">expressions_sql</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><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</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="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -392,36 +393,37 @@ </span><span id="Teradata-130"><a href="#Teradata-130"><span class="linenos">130</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Teradata-131"><a href="#Teradata-131"><span class="linenos">131</span></a> <span class="o">**</span><span class="n">generator</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="Teradata-132"><a href="#Teradata-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Teradata-133"><a href="#Teradata-133"><span class="linenos">133</span></a> <span class="p">}</span> -</span><span id="Teradata-134"><a href="#Teradata-134"><span class="linenos">134</span></a> -</span><span id="Teradata-135"><a href="#Teradata-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata-136"><a href="#Teradata-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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><span id="Teradata-137"><a href="#Teradata-137"><span class="linenos">137</span></a> -</span><span id="Teradata-138"><a href="#Teradata-138"><span class="linenos">138</span></a> <span class="c1"># FROM before SET in Teradata UPDATE syntax</span> -</span><span id="Teradata-139"><a href="#Teradata-139"><span class="linenos">139</span></a> <span class="c1"># https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-SQL-Data-Manipulation-Language-17.20/Statement-Syntax/UPDATE/UPDATE-Syntax-Basic-Form-FROM-Clause</span> -</span><span id="Teradata-140"><a href="#Teradata-140"><span class="linenos">140</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata-141"><a href="#Teradata-141"><span class="linenos">141</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Teradata-142"><a href="#Teradata-142"><span class="linenos">142</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="Teradata-143"><a href="#Teradata-143"><span class="linenos">143</span></a> <span class="n">set_sql</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="Teradata-144"><a href="#Teradata-144"><span class="linenos">144</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Teradata-145"><a href="#Teradata-145"><span class="linenos">145</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Teradata-146"><a href="#Teradata-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Teradata-147"><a href="#Teradata-147"><span class="linenos">147</span></a> -</span><span id="Teradata-148"><a href="#Teradata-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata-149"><a href="#Teradata-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> -</span><span id="Teradata-150"><a href="#Teradata-150"><span class="linenos">150</span></a> -</span><span id="Teradata-151"><a href="#Teradata-151"><span class="linenos">151</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="Teradata-152"><a href="#Teradata-152"><span class="linenos">152</span></a> <span class="n">type_sql</span> <span class="o">=</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="Teradata-153"><a href="#Teradata-153"><span class="linenos">153</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> -</span><span id="Teradata-154"><a href="#Teradata-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> -</span><span id="Teradata-155"><a href="#Teradata-155"><span class="linenos">155</span></a> -</span><span id="Teradata-156"><a href="#Teradata-156"><span class="linenos">156</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata-157"><a href="#Teradata-157"><span class="linenos">157</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Teradata-158"><a href="#Teradata-158"><span class="linenos">158</span></a> <span class="n">expressions_sql</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><span id="Teradata-159"><a href="#Teradata-159"><span class="linenos">159</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> -</span><span id="Teradata-160"><a href="#Teradata-160"><span class="linenos">160</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Teradata-161"><a href="#Teradata-161"><span class="linenos">161</span></a> -</span><span id="Teradata-162"><a href="#Teradata-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Teradata-133"><a href="#Teradata-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Teradata-134"><a href="#Teradata-134"><span class="linenos">134</span></a> <span class="p">}</span> +</span><span id="Teradata-135"><a href="#Teradata-135"><span class="linenos">135</span></a> +</span><span id="Teradata-136"><a href="#Teradata-136"><span class="linenos">136</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata-137"><a href="#Teradata-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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><span id="Teradata-138"><a href="#Teradata-138"><span class="linenos">138</span></a> +</span><span id="Teradata-139"><a href="#Teradata-139"><span class="linenos">139</span></a> <span class="c1"># FROM before SET in Teradata UPDATE syntax</span> +</span><span id="Teradata-140"><a href="#Teradata-140"><span class="linenos">140</span></a> <span class="c1"># https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-SQL-Data-Manipulation-Language-17.20/Statement-Syntax/UPDATE/UPDATE-Syntax-Basic-Form-FROM-Clause</span> +</span><span id="Teradata-141"><a href="#Teradata-141"><span class="linenos">141</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata-142"><a href="#Teradata-142"><span class="linenos">142</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Teradata-143"><a href="#Teradata-143"><span class="linenos">143</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="Teradata-144"><a href="#Teradata-144"><span class="linenos">144</span></a> <span class="n">set_sql</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="Teradata-145"><a href="#Teradata-145"><span class="linenos">145</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Teradata-146"><a href="#Teradata-146"><span class="linenos">146</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Teradata-147"><a href="#Teradata-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Teradata-148"><a href="#Teradata-148"><span class="linenos">148</span></a> +</span><span id="Teradata-149"><a href="#Teradata-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata-150"><a href="#Teradata-150"><span class="linenos">150</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> +</span><span id="Teradata-151"><a href="#Teradata-151"><span class="linenos">151</span></a> +</span><span id="Teradata-152"><a href="#Teradata-152"><span class="linenos">152</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="Teradata-153"><a href="#Teradata-153"><span class="linenos">153</span></a> <span class="n">type_sql</span> <span class="o">=</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="Teradata-154"><a href="#Teradata-154"><span class="linenos">154</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> +</span><span id="Teradata-155"><a href="#Teradata-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> +</span><span id="Teradata-156"><a href="#Teradata-156"><span class="linenos">156</span></a> +</span><span id="Teradata-157"><a href="#Teradata-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata-158"><a href="#Teradata-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Teradata-159"><a href="#Teradata-159"><span class="linenos">159</span></a> <span class="n">expressions_sql</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><span id="Teradata-160"><a href="#Teradata-160"><span class="linenos">160</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> +</span><span id="Teradata-161"><a href="#Teradata-161"><span class="linenos">161</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Teradata-162"><a href="#Teradata-162"><span class="linenos">162</span></a> +</span><span id="Teradata-163"><a href="#Teradata-163"><span class="linenos">163</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -437,6 +439,7 @@ <dd id="Teradata.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Teradata.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Teradata.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Teradata.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Teradata.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Teradata.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -659,36 +662,37 @@ Default: "nulls_are_small"</li> </span><span id="Teradata.Generator-130"><a href="#Teradata.Generator-130"><span class="linenos">130</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> </span><span id="Teradata.Generator-131"><a href="#Teradata.Generator-131"><span class="linenos">131</span></a> <span class="o">**</span><span class="n">generator</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="Teradata.Generator-132"><a href="#Teradata.Generator-132"><span class="linenos">132</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="Teradata.Generator-133"><a href="#Teradata.Generator-133"><span class="linenos">133</span></a> <span class="p">}</span> -</span><span id="Teradata.Generator-134"><a href="#Teradata.Generator-134"><span class="linenos">134</span></a> -</span><span id="Teradata.Generator-135"><a href="#Teradata.Generator-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator-136"><a href="#Teradata.Generator-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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><span id="Teradata.Generator-137"><a href="#Teradata.Generator-137"><span class="linenos">137</span></a> -</span><span id="Teradata.Generator-138"><a href="#Teradata.Generator-138"><span class="linenos">138</span></a> <span class="c1"># FROM before SET in Teradata UPDATE syntax</span> -</span><span id="Teradata.Generator-139"><a href="#Teradata.Generator-139"><span class="linenos">139</span></a> <span class="c1"># https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-SQL-Data-Manipulation-Language-17.20/Statement-Syntax/UPDATE/UPDATE-Syntax-Basic-Form-FROM-Clause</span> -</span><span id="Teradata.Generator-140"><a href="#Teradata.Generator-140"><span class="linenos">140</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator-141"><a href="#Teradata.Generator-141"><span class="linenos">141</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Teradata.Generator-142"><a href="#Teradata.Generator-142"><span class="linenos">142</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="Teradata.Generator-143"><a href="#Teradata.Generator-143"><span class="linenos">143</span></a> <span class="n">set_sql</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="Teradata.Generator-144"><a href="#Teradata.Generator-144"><span class="linenos">144</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Teradata.Generator-145"><a href="#Teradata.Generator-145"><span class="linenos">145</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Teradata.Generator-146"><a href="#Teradata.Generator-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Teradata.Generator-147"><a href="#Teradata.Generator-147"><span class="linenos">147</span></a> -</span><span id="Teradata.Generator-148"><a href="#Teradata.Generator-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator-149"><a href="#Teradata.Generator-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> -</span><span id="Teradata.Generator-150"><a href="#Teradata.Generator-150"><span class="linenos">150</span></a> -</span><span id="Teradata.Generator-151"><a href="#Teradata.Generator-151"><span class="linenos">151</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="Teradata.Generator-152"><a href="#Teradata.Generator-152"><span class="linenos">152</span></a> <span class="n">type_sql</span> <span class="o">=</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="Teradata.Generator-153"><a href="#Teradata.Generator-153"><span class="linenos">153</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> -</span><span id="Teradata.Generator-154"><a href="#Teradata.Generator-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> -</span><span id="Teradata.Generator-155"><a href="#Teradata.Generator-155"><span class="linenos">155</span></a> -</span><span id="Teradata.Generator-156"><a href="#Teradata.Generator-156"><span class="linenos">156</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator-157"><a href="#Teradata.Generator-157"><span class="linenos">157</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Teradata.Generator-158"><a href="#Teradata.Generator-158"><span class="linenos">158</span></a> <span class="n">expressions_sql</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><span id="Teradata.Generator-159"><a href="#Teradata.Generator-159"><span class="linenos">159</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> -</span><span id="Teradata.Generator-160"><a href="#Teradata.Generator-160"><span class="linenos">160</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Teradata.Generator-161"><a href="#Teradata.Generator-161"><span class="linenos">161</span></a> -</span><span id="Teradata.Generator-162"><a href="#Teradata.Generator-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Teradata.Generator-133"><a href="#Teradata.Generator-133"><span class="linenos">133</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ToChar</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">function_fallback_sql</span><span class="p">(</span><span class="n">e</span><span class="p">),</span> +</span><span id="Teradata.Generator-134"><a href="#Teradata.Generator-134"><span class="linenos">134</span></a> <span class="p">}</span> +</span><span id="Teradata.Generator-135"><a href="#Teradata.Generator-135"><span class="linenos">135</span></a> +</span><span id="Teradata.Generator-136"><a href="#Teradata.Generator-136"><span class="linenos">136</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator-137"><a href="#Teradata.Generator-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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><span id="Teradata.Generator-138"><a href="#Teradata.Generator-138"><span class="linenos">138</span></a> +</span><span id="Teradata.Generator-139"><a href="#Teradata.Generator-139"><span class="linenos">139</span></a> <span class="c1"># FROM before SET in Teradata UPDATE syntax</span> +</span><span id="Teradata.Generator-140"><a href="#Teradata.Generator-140"><span class="linenos">140</span></a> <span class="c1"># https://docs.teradata.com/r/Enterprise_IntelliFlex_VMware/Teradata-VantageTM-SQL-Data-Manipulation-Language-17.20/Statement-Syntax/UPDATE/UPDATE-Syntax-Basic-Form-FROM-Clause</span> +</span><span id="Teradata.Generator-141"><a href="#Teradata.Generator-141"><span class="linenos">141</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator-142"><a href="#Teradata.Generator-142"><span class="linenos">142</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Teradata.Generator-143"><a href="#Teradata.Generator-143"><span class="linenos">143</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="Teradata.Generator-144"><a href="#Teradata.Generator-144"><span class="linenos">144</span></a> <span class="n">set_sql</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="Teradata.Generator-145"><a href="#Teradata.Generator-145"><span class="linenos">145</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Teradata.Generator-146"><a href="#Teradata.Generator-146"><span class="linenos">146</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Teradata.Generator-147"><a href="#Teradata.Generator-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Teradata.Generator-148"><a href="#Teradata.Generator-148"><span class="linenos">148</span></a> +</span><span id="Teradata.Generator-149"><a href="#Teradata.Generator-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator-150"><a href="#Teradata.Generator-150"><span class="linenos">150</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> +</span><span id="Teradata.Generator-151"><a href="#Teradata.Generator-151"><span class="linenos">151</span></a> +</span><span id="Teradata.Generator-152"><a href="#Teradata.Generator-152"><span class="linenos">152</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="Teradata.Generator-153"><a href="#Teradata.Generator-153"><span class="linenos">153</span></a> <span class="n">type_sql</span> <span class="o">=</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="Teradata.Generator-154"><a href="#Teradata.Generator-154"><span class="linenos">154</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> +</span><span id="Teradata.Generator-155"><a href="#Teradata.Generator-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> +</span><span id="Teradata.Generator-156"><a href="#Teradata.Generator-156"><span class="linenos">156</span></a> +</span><span id="Teradata.Generator-157"><a href="#Teradata.Generator-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator-158"><a href="#Teradata.Generator-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Teradata.Generator-159"><a href="#Teradata.Generator-159"><span class="linenos">159</span></a> <span class="n">expressions_sql</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><span id="Teradata.Generator-160"><a href="#Teradata.Generator-160"><span class="linenos">160</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> +</span><span id="Teradata.Generator-161"><a href="#Teradata.Generator-161"><span class="linenos">161</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Teradata.Generator-162"><a href="#Teradata.Generator-162"><span class="linenos">162</span></a> +</span><span id="Teradata.Generator-163"><a href="#Teradata.Generator-163"><span class="linenos">163</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -705,8 +709,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -748,8 +751,8 @@ Default: True</li> </div> <a class="headerlink" href="#Teradata.Generator.partitionedbyproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.partitionedbyproperty_sql-135"><a href="#Teradata.Generator.partitionedbyproperty_sql-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator.partitionedbyproperty_sql-136"><a href="#Teradata.Generator.partitionedbyproperty_sql-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.partitionedbyproperty_sql-136"><a href="#Teradata.Generator.partitionedbyproperty_sql-136"><span class="linenos">136</span></a> <span class="k">def</span> <span class="nf">partitionedbyproperty_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">PartitionedByProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator.partitionedbyproperty_sql-137"><a href="#Teradata.Generator.partitionedbyproperty_sql-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </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">expression</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></pre></div> @@ -767,13 +770,13 @@ Default: True</li> </div> <a class="headerlink" href="#Teradata.Generator.update_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.update_sql-140"><a href="#Teradata.Generator.update_sql-140"><span class="linenos">140</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator.update_sql-141"><a href="#Teradata.Generator.update_sql-141"><span class="linenos">141</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Teradata.Generator.update_sql-142"><a href="#Teradata.Generator.update_sql-142"><span class="linenos">142</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="Teradata.Generator.update_sql-143"><a href="#Teradata.Generator.update_sql-143"><span class="linenos">143</span></a> <span class="n">set_sql</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="Teradata.Generator.update_sql-144"><a href="#Teradata.Generator.update_sql-144"><span class="linenos">144</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Teradata.Generator.update_sql-145"><a href="#Teradata.Generator.update_sql-145"><span class="linenos">145</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Teradata.Generator.update_sql-146"><a href="#Teradata.Generator.update_sql-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.update_sql-141"><a href="#Teradata.Generator.update_sql-141"><span class="linenos">141</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator.update_sql-142"><a href="#Teradata.Generator.update_sql-142"><span class="linenos">142</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Teradata.Generator.update_sql-143"><a href="#Teradata.Generator.update_sql-143"><span class="linenos">143</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="Teradata.Generator.update_sql-144"><a href="#Teradata.Generator.update_sql-144"><span class="linenos">144</span></a> <span class="n">set_sql</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="Teradata.Generator.update_sql-145"><a href="#Teradata.Generator.update_sql-145"><span class="linenos">145</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Teradata.Generator.update_sql-146"><a href="#Teradata.Generator.update_sql-146"><span class="linenos">146</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Teradata.Generator.update_sql-147"><a href="#Teradata.Generator.update_sql-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -791,8 +794,8 @@ Default: True</li> </div> <a class="headerlink" href="#Teradata.Generator.mod_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.mod_sql-148"><a href="#Teradata.Generator.mod_sql-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator.mod_sql-149"><a href="#Teradata.Generator.mod_sql-149"><span class="linenos">149</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.mod_sql-149"><a href="#Teradata.Generator.mod_sql-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator.mod_sql-150"><a href="#Teradata.Generator.mod_sql-150"><span class="linenos">150</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"MOD"</span><span class="p">)</span> </span></pre></div> @@ -810,10 +813,10 @@ Default: True</li> </div> <a class="headerlink" href="#Teradata.Generator.datatype_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.datatype_sql-151"><a href="#Teradata.Generator.datatype_sql-151"><span class="linenos">151</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="Teradata.Generator.datatype_sql-152"><a href="#Teradata.Generator.datatype_sql-152"><span class="linenos">152</span></a> <span class="n">type_sql</span> <span class="o">=</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="Teradata.Generator.datatype_sql-153"><a href="#Teradata.Generator.datatype_sql-153"><span class="linenos">153</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> -</span><span id="Teradata.Generator.datatype_sql-154"><a href="#Teradata.Generator.datatype_sql-154"><span class="linenos">154</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.datatype_sql-152"><a href="#Teradata.Generator.datatype_sql-152"><span class="linenos">152</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="Teradata.Generator.datatype_sql-153"><a href="#Teradata.Generator.datatype_sql-153"><span class="linenos">153</span></a> <span class="n">type_sql</span> <span class="o">=</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="Teradata.Generator.datatype_sql-154"><a href="#Teradata.Generator.datatype_sql-154"><span class="linenos">154</span></a> <span class="n">prefix_sql</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">"prefix"</span><span class="p">)</span> +</span><span id="Teradata.Generator.datatype_sql-155"><a href="#Teradata.Generator.datatype_sql-155"><span class="linenos">155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SYSUDTLIB.</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">prefix_sql</span> <span class="k">else</span> <span class="n">type_sql</span> </span></pre></div> @@ -831,13 +834,13 @@ Default: True</li> </div> <a class="headerlink" href="#Teradata.Generator.rangen_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.rangen_sql-156"><a href="#Teradata.Generator.rangen_sql-156"><span class="linenos">156</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Teradata.Generator.rangen_sql-157"><a href="#Teradata.Generator.rangen_sql-157"><span class="linenos">157</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Teradata.Generator.rangen_sql-158"><a href="#Teradata.Generator.rangen_sql-158"><span class="linenos">158</span></a> <span class="n">expressions_sql</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><span id="Teradata.Generator.rangen_sql-159"><a href="#Teradata.Generator.rangen_sql-159"><span class="linenos">159</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> -</span><span id="Teradata.Generator.rangen_sql-160"><a href="#Teradata.Generator.rangen_sql-160"><span class="linenos">160</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Teradata.Generator.rangen_sql-161"><a href="#Teradata.Generator.rangen_sql-161"><span class="linenos">161</span></a> -</span><span id="Teradata.Generator.rangen_sql-162"><a href="#Teradata.Generator.rangen_sql-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Teradata.Generator.rangen_sql-157"><a href="#Teradata.Generator.rangen_sql-157"><span class="linenos">157</span></a> <span class="k">def</span> <span class="nf">rangen_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">RangeN</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Teradata.Generator.rangen_sql-158"><a href="#Teradata.Generator.rangen_sql-158"><span class="linenos">158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Teradata.Generator.rangen_sql-159"><a href="#Teradata.Generator.rangen_sql-159"><span class="linenos">159</span></a> <span class="n">expressions_sql</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><span id="Teradata.Generator.rangen_sql-160"><a href="#Teradata.Generator.rangen_sql-160"><span class="linenos">160</span></a> <span class="n">each_sql</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">"each"</span><span class="p">)</span> +</span><span id="Teradata.Generator.rangen_sql-161"><a href="#Teradata.Generator.rangen_sql-161"><span class="linenos">161</span></a> <span class="n">each_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" EACH </span><span class="si">{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">each_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Teradata.Generator.rangen_sql-162"><a href="#Teradata.Generator.rangen_sql-162"><span class="linenos">162</span></a> +</span><span id="Teradata.Generator.rangen_sql-163"><a href="#Teradata.Generator.rangen_sql-163"><span class="linenos">163</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RANGE_N(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}{</span><span class="n">each_sql</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -932,6 +935,8 @@ Default: True</li> <dd id="Teradata.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Teradata.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Teradata.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Teradata.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Teradata.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Teradata.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Teradata.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Teradata.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1016,7 +1021,6 @@ Default: True</li> <dd id="Teradata.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Teradata.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Teradata.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Teradata.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Teradata.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Teradata.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Teradata.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1057,6 +1061,7 @@ Default: True</li> <dd id="Teradata.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Teradata.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Teradata.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Teradata.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/dialects/trino.html b/docs/sqlglot/dialects/trino.html index 053a96e..41a1653 100644 --- a/docs/sqlglot/dialects/trino.html +++ b/docs/sqlglot/dialects/trino.html @@ -129,6 +129,7 @@ <dd id="Trino.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Trino.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="Trino.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Trino.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Trino.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="Trino.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -168,8 +169,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -290,6 +290,8 @@ Default: True</li> <dd id="Trino.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Trino.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Trino.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Trino.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Trino.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Trino.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Trino.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Trino.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -373,7 +375,6 @@ Default: True</li> <dd id="Trino.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Trino.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Trino.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Trino.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Trino.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Trino.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Trino.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -415,6 +416,7 @@ Default: True</li> <dd id="Trino.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Trino.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Trino.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Trino.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> <div><dt><a href="presto.html#Presto.Generator">sqlglot.dialects.presto.Presto.Generator</a></dt> diff --git a/docs/sqlglot/dialects/tsql.html b/docs/sqlglot/dialects/tsql.html index b27f58e..062bcfa 100644 --- a/docs/sqlglot/dialects/tsql.html +++ b/docs/sqlglot/dialects/tsql.html @@ -205,351 +205,350 @@ </span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> </span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="c1"># exp.Distinct can appear below an exp.Order or an exp.GroupConcat expression</span> </span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"T-SQL STRING_AGG doesn't support DISTINCT."</span><span class="p">)</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</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-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">distinct</span><span class="o">.</span><span class="n">pop</span><span class="p">()</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="n">order</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">if</span> <span class="nb">isinstance</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="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">order</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITHIN GROUP (</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="mi">1</span><span class="p">:]</span><span class="si">}</span><span class="s2">)"</span> <span class="c1"># Order has a leading space</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="n">separator</span> <span class="o">=</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">"separator"</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-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRING_AGG(</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">order</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="k">class</span> <span class="nc">TSQL</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_small"</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-mm-dd hh:mm:ss'"</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="s2">"year"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="s2">"qq"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="s2">"q"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="s2">"quarter"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="s2">"dayofyear"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="s2">"day"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"week"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"ww"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"wk"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"hour"</span><span class="p">:</span> <span class="s2">"%h"</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"minute"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"n"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">"second"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"millisecond"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"ms"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"weekday"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="s2">"dw"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="s2">"month"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> -</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="p">}</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> -</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="n">convert_format_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="s2">"1"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y"</span><span class="p">,</span> -</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"2"</span><span class="p">:</span> <span class="s2">"%y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="s2">"3"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%y"</span><span class="p">,</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="s2">"4"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%y"</span><span class="p">,</span> -</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"5"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%y"</span><span class="p">,</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %y"</span><span class="p">,</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="s2">"7"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %y"</span><span class="p">,</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="s2">"8"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"9"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="s2">"10"</span><span class="p">:</span> <span class="s2">"mm-dd-yy"</span><span class="p">,</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="s2">"11"</span><span class="p">:</span> <span class="s2">"yy/mm/dd"</span><span class="p">,</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="s2">"12"</span><span class="p">:</span> <span class="s2">"yymmdd"</span><span class="p">,</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"13"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:ss:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"14"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"20"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"21"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"22"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y %-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"23"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="s2">"24"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="s2">"25"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="s2">"100"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"101"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"102"</span><span class="p">:</span> <span class="s2">"%Y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"103"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%Y"</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"104"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%Y"</span><span class="p">,</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="s2">"105"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%Y"</span><span class="p">,</span> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="s2">"106"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y"</span><span class="p">,</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="s2">"107"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %Y"</span><span class="p">,</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="s2">"108"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="s2">"109"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="s2">"110"</span><span class="p">:</span> <span class="s2">"%m-</span><span class="si">%d</span><span class="s2">-%Y"</span><span class="p">,</span> -</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="s2">"111"</span><span class="p">:</span> <span class="s2">"%Y/%m/</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="s2">"112"</span><span class="p">:</span> <span class="s2">"%Y%m</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="s2">"113"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"114"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="s2">"120"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="s2">"121"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="p">}</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="c1"># not sure if complete</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="n">format_time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%B %Y"</span><span class="p">,</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y"</span><span class="p">,</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="s2">"f"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M %p"</span><span class="p">,</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"g"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M %p"</span><span class="p">,</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"G"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"O"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">T%H:%M:%S"</span><span class="p">,</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="s2">"u"</span><span class="p">:</span> <span class="s2">"%Y-%M-%D %H:%M:%S%z"</span><span class="p">,</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="s2">"U"</span><span class="p">:</span> <span class="s2">"%A, %B %D, %Y %H:%M:%S%z"</span><span class="p">,</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="s2">"T"</span><span class="p">:</span> <span class="s2">"%-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="s2">"t"</span><span class="p">:</span> <span class="s2">"%-I:%M"</span><span class="p">,</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2"> %Y"</span><span class="p">,</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="p">}</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)]</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">distinct</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">order</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="k">if</span> <span class="nb">isinstance</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="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">):</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">order</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITHIN GROUP (</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="mi">1</span><span class="p">:]</span><span class="si">}</span><span class="s2">)"</span> <span class="c1"># Order has a leading space</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">separator</span> <span class="o">=</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">"separator"</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-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"STRING_AGG(</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="n">this</span><span class="p">,</span><span class="w"> </span><span class="n">separator</span><span class="p">)</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">order</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="k">class</span> <span class="nc">TSQL</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_small"</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-mm-dd hh:mm:ss'"</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="s2">"year"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="s2">"qq"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="s2">"q"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="s2">"quarter"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="s2">"dayofyear"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="s2">"day"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</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 class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="s2">"week"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="s2">"ww"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="s2">"wk"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="s2">"hour"</span><span class="p">:</span> <span class="s2">"%h"</span><span class="p">,</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="s2">"minute"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="s2">"n"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="s2">"second"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="s2">"millisecond"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="s2">"ms"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="s2">"weekday"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="s2">"dw"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="s2">"month"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="p">}</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="n">convert_format_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="s2">"1"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y"</span><span class="p">,</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="s2">"2"</span><span class="p">:</span> <span class="s2">"%y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="s2">"3"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%y"</span><span class="p">,</span> +</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="s2">"4"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%y"</span><span class="p">,</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="s2">"5"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%y"</span><span class="p">,</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %y"</span><span class="p">,</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="s2">"7"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %y"</span><span class="p">,</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="s2">"8"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="s2">"9"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="s2">"10"</span><span class="p">:</span> <span class="s2">"mm-dd-yy"</span><span class="p">,</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="s2">"11"</span><span class="p">:</span> <span class="s2">"yy/mm/dd"</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="s2">"12"</span><span class="p">:</span> <span class="s2">"yymmdd"</span><span class="p">,</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="s2">"13"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:ss:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="s2">"14"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="s2">"20"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="s2">"21"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="s2">"22"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y %-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="s2">"23"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="s2">"24"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="s2">"25"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="s2">"100"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="s2">"101"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="s2">"102"</span><span class="p">:</span> <span class="s2">"%Y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="s2">"103"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%Y"</span><span class="p">,</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="s2">"104"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%Y"</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="s2">"105"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%Y"</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="s2">"106"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y"</span><span class="p">,</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="s2">"107"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %Y"</span><span class="p">,</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="s2">"108"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="s2">"109"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="s2">"110"</span><span class="p">:</span> <span class="s2">"%m-</span><span class="si">%d</span><span class="s2">-%Y"</span><span class="p">,</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="s2">"111"</span><span class="p">:</span> <span class="s2">"%Y/%m/</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="s2">"112"</span><span class="p">:</span> <span class="s2">"%Y%m</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="s2">"113"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="s2">"114"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="s2">"120"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="s2">"121"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="p">}</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="c1"># not sure if complete</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="n">format_time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%B %Y"</span><span class="p">,</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y"</span><span class="p">,</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="s2">"f"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M %p"</span><span class="p">,</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="s2">"g"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M %p"</span><span class="p">,</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="s2">"G"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="s2">"O"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">T%H:%M:%S"</span><span class="p">,</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="s2">"u"</span><span class="p">:</span> <span class="s2">"%Y-%M-%D %H:%M:%S%z"</span><span class="p">,</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="s2">"U"</span><span class="p">:</span> <span class="s2">"%A, %B %D, %Y %H:%M:%S%z"</span><span class="p">,</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="s2">"T"</span><span class="p">:</span> <span class="s2">"%-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="s2">"t"</span><span class="p">:</span> <span class="s2">"%-I:%M"</span><span class="p">,</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2"> %Y"</span><span class="p">,</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="p">}</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)]</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> </span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="o">**</span><span class="n">tokens</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-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"DATETIME2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"DATETIMEOFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"DECLARE"</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-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"IMAGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"MONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"NTEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"NVARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"PRINT"</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-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"PROC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">"ROWVERSION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="s2">"SMALLDATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="s2">"SMALLMONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="s2">"SQL_VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</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-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">"UNIQUEIDENTIFIER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="s2">"VARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="s2">"XML"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="p">}</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="c1"># TSQL allows @, # to appear as a variable/identifier prefix</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">tokens</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-274"><a href="#L-274"><span class="linenos">274</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-275"><a href="#L-275"><span class="linenos">275</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-276"><a href="#L-276"><span class="linenos">276</span></a> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="s2">"CHARINDEX"</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">StrPosition</span><span class="p">(</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</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">1</span><span class="p">),</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">substr</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-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">position</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-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="p">),</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="s2">"DATENAME"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="n">full_format_mapping</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="s2">"DATEPART"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">),</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</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-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="s2">"SYSDATETIME"</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-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="s2">"IIF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="o">**</span><span class="n">tokens</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-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="s2">"DATETIME2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="s2">"DATETIMEOFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="s2">"DECLARE"</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-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="s2">"IMAGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="s2">"MONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="s2">"NTEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="s2">"NVARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="s2">"PRINT"</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-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="s2">"PROC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="s2">"ROWVERSION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="s2">"SMALLDATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="s2">"SMALLMONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="s2">"SQL_VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</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-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="s2">"UNIQUEIDENTIFIER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="s2">"VARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="s2">"XML"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="p">}</span> +</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="c1"># TSQL allows @, # to appear as a variable/identifier prefix</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">tokens</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-272"><a href="#L-272"><span class="linenos">272</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-273"><a href="#L-273"><span class="linenos">273</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-274"><a href="#L-274"><span class="linenos">274</span></a> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="s2">"CHARINDEX"</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">StrPosition</span><span class="p">(</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</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">1</span><span class="p">),</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">substr</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-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">position</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-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="p">),</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="s2">"DATENAME"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="n">full_format_mapping</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="s2">"DATEPART"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">),</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="s2">"EOMONTH"</span><span class="p">:</span> <span class="n">_parse_eomonth</span><span class="p">,</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">_parse_format</span><span class="p">,</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</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-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="s2">"IIF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="s2">"JSON_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> </span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="s2">"LEN"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Length</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> </span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="s2">"REPLICATE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Repeat</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="s2">"JSON_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">_parse_format</span><span class="p">,</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="s2">"EOMONTH"</span><span class="p">:</span> <span class="n">_parse_eomonth</span><span class="p">,</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="p">}</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">VAR_LENGTH_DATATYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <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-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="p">}</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">RETURNS_TABLE_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> <span class="c1"># type: ignore</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="p">}</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_command</span><span class="p">(),</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="p">}</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="k">def</span> <span class="nf">_parse_system_time</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">Expression</span><span class="p">]:</span> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SYSTEM_TIME"</span><span class="p">):</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"OF"</span><span class="p">):</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <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 class="n">kind</span><span class="o">=</span><span class="s2">"AS OF"</span> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="p">)</span> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">)):</span> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos">327</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-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">))</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">expression</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-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="p">)</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONTAINED"</span><span class="p">,</span> <span class="s2">"IN"</span><span class="p">):</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</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-338"><a href="#L-338"><span class="linenos">338</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-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"CONTAINED IN"</span><span class="p">,</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="p">)</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="k">elif</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">ALL</span><span class="p">):</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="n">system_time</span> <span class="o">=</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">SystemTime</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s2">"ALL"</span><span class="p">)</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unable to parse FOR SYSTEM_TIME clause"</span><span class="p">)</span> -</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> -</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="n">system_time</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos">350</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_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"system_time"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_system_time</span><span class="p">())</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="n">table</span> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">RETURNS_TABLE_TOKENS</span><span class="p">)</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="n">returns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_returns</span><span class="p">()</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="n">returns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> -</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="k">return</span> <span class="n">returns</span> -</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> -</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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-361"><a href="#L-361"><span class="linenos">361</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-362"><a href="#L-362"><span class="linenos">362</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-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> -</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> -</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="c1"># Retrieve length of datatype and override to default if not specified</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">to</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="n">to</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="n">to</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">30</span><span class="p">)],</span> <span class="n">nested</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> -</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="c1"># Check whether a conversion with format is applicable</span> -</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> -</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">format_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="n">format_val_name</span> <span class="o">=</span> <span class="n">format_val</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">format_val</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> -</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">if</span> <span class="n">format_val_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">:</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="sa">f</span><span class="s2">"CONVERT function at T-SQL does not support format style </span><span class="si">{</span><span class="n">format_val_name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="p">)</span> -</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> -</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="n">format_norm</span> <span class="o">=</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="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">[</span><span class="n">format_val_name</span><span class="p">])</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> -</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="c1"># Check whether the convert entails a string to date format</span> -</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos">386</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">StrToDate</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="c1"># Check whether the convert entails a string to datetime format</span> -</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> -</span><span id="L-389"><a href="#L-389"><span class="linenos">389</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">StrToTime</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="c1"># Check whether the convert entails a date to string format</span> -</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos">392</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><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">,</span> -</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> -</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="n">this</span><span class="o">=</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">),</span> -</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="p">)</span> -</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="L-398"><a href="#L-398"><span class="linenos">398</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> -</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="c1"># Entails a simple cast without any format requirement</span> -</span><span id="L-401"><a href="#L-401"><span class="linenos">401</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> -</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> -</span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-405"><a href="#L-405"><span class="linenos">405</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-406"><a href="#L-406"><span class="linenos">406</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> -</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> -</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span> -</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</span><span class="p">)</span> -</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="ow">or</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">ALIAS</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="p">):</span> -</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> -</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="L-416"><a href="#L-416"><span class="linenos">416</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">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> -</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> -</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="L-423"><a href="#L-423"><span class="linenos">423</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-424"><a href="#L-424"><span class="linenos">424</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> -</span><span id="L-425"><a href="#L-425"><span class="linenos">425</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">DATETIME</span><span class="p">:</span> <span class="s2">"DATETIME2"</span><span class="p">,</span> -</span><span id="L-426"><a href="#L-426"><span class="linenos">426</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">VARIANT</span><span class="p">:</span> <span class="s2">"SQL_VARIANT"</span><span class="p">,</span> -</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="p">}</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> -</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> -</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> -</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IIF"</span><span class="p">),</span> -</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> -</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> -</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> -</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="p">}</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> -</span><span id="L-442"><a href="#L-442"><span class="linenos">442</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">ReturnsProperty</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">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> -</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> -</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> -</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> -</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> -</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a> -</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> -</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> -</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> -</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> -</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> -</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="s2">"SYSDATETIME"</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-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="p">}</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="n">VAR_LENGTH_DATATYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <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-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="p">}</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="n">RETURNS_TABLE_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> <span class="c1"># type: ignore</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="p">}</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_command</span><span class="p">(),</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="p">}</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">def</span> <span class="nf">_parse_system_time</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">Expression</span><span class="p">]:</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SYSTEM_TIME"</span><span class="p">):</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"OF"</span><span class="p">):</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <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 class="n">kind</span><span class="o">=</span><span class="s2">"AS OF"</span> +</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="p">)</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">)):</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</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-327"><a href="#L-327"><span class="linenos">327</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">))</span> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="n">expression</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-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="p">)</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONTAINED"</span><span class="p">,</span> <span class="s2">"IN"</span><span class="p">):</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</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-337"><a href="#L-337"><span class="linenos">337</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-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"CONTAINED IN"</span><span class="p">,</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="p">)</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">elif</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">ALL</span><span class="p">):</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="n">system_time</span> <span class="o">=</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">SystemTime</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s2">"ALL"</span><span class="p">)</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unable to parse FOR SYSTEM_TIME clause"</span><span class="p">)</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> +</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">return</span> <span class="n">system_time</span> +</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</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_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> +</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"system_time"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_system_time</span><span class="p">())</span> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="k">return</span> <span class="n">table</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">RETURNS_TABLE_TOKENS</span><span class="p">)</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="n">returns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_returns</span><span class="p">()</span> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="n">returns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="k">return</span> <span class="n">returns</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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-360"><a href="#L-360"><span class="linenos">360</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-361"><a href="#L-361"><span class="linenos">361</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-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> +</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> +</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="c1"># Retrieve length of datatype and override to default if not specified</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">to</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="n">to</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="n">to</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">30</span><span class="p">)],</span> <span class="n">nested</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> +</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="c1"># Check whether a conversion with format is applicable</span> +</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> +</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="n">format_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="n">format_val_name</span> <span class="o">=</span> <span class="n">format_val</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">format_val</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> +</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="k">if</span> <span class="n">format_val_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">:</span> +</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="sa">f</span><span class="s2">"CONVERT function at T-SQL does not support format style </span><span class="si">{</span><span class="n">format_val_name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="p">)</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> +</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="n">format_norm</span> <span class="o">=</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="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">[</span><span class="n">format_val_name</span><span class="p">])</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> +</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="c1"># Check whether the convert entails a string to date format</span> +</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="k">if</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="L-385"><a href="#L-385"><span class="linenos">385</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">StrToDate</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="c1"># Check whether the convert entails a string to datetime format</span> +</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos">388</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">StrToTime</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="c1"># Check whether the convert entails a date to string format</span> +</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos">391</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><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">,</span> +</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> +</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="n">this</span><span class="o">=</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">),</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="p">)</span> +</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos">397</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> +</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="c1"># Entails a simple cast without any format requirement</span> +</span><span id="L-400"><a href="#L-400"><span class="linenos">400</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><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="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> +</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-404"><a href="#L-404"><span class="linenos">404</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-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</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">if</span> <span class="p">(</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</span><span class="p">)</span> +</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="ow">or</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">ALIAS</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="p">):</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">return</span> <span class="n">this</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="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="L-415"><a href="#L-415"><span class="linenos">415</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">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> +</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> +</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos">422</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-423"><a href="#L-423"><span class="linenos">423</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> +</span><span id="L-424"><a href="#L-424"><span class="linenos">424</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">DATETIME</span><span class="p">:</span> <span class="s2">"DATETIME2"</span><span class="p">,</span> +</span><span id="L-425"><a href="#L-425"><span class="linenos">425</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">VARIANT</span><span class="p">:</span> <span class="s2">"SQL_VARIANT"</span><span class="p">,</span> +</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <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="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> +</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> +</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> +</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> +</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IIF"</span><span class="p">),</span> +</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> +</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> +</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="p">}</span> +</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> +</span><span id="L-441"><a href="#L-441"><span class="linenos">441</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">ReturnsProperty</span><span class="p">)</span> +</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> +</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> +</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> +</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> +</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> +</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a> +</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> +</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> +</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> +</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> +</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> +</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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></pre></div> @@ -585,337 +584,338 @@ </div> <a class="headerlink" href="#TSQL"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL-135"><a href="#TSQL-135"><span class="linenos">135</span></a><span class="k">class</span> <span class="nc">TSQL</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> -</span><span id="TSQL-136"><a href="#TSQL-136"><span class="linenos">136</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_small"</span> -</span><span id="TSQL-137"><a href="#TSQL-137"><span class="linenos">137</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-mm-dd hh:mm:ss'"</span> -</span><span id="TSQL-138"><a href="#TSQL-138"><span class="linenos">138</span></a> -</span><span id="TSQL-139"><a href="#TSQL-139"><span class="linenos">139</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-140"><a href="#TSQL-140"><span class="linenos">140</span></a> <span class="s2">"year"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="TSQL-141"><a href="#TSQL-141"><span class="linenos">141</span></a> <span class="s2">"qq"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> -</span><span id="TSQL-142"><a href="#TSQL-142"><span class="linenos">142</span></a> <span class="s2">"q"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> -</span><span id="TSQL-143"><a href="#TSQL-143"><span class="linenos">143</span></a> <span class="s2">"quarter"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> -</span><span id="TSQL-144"><a href="#TSQL-144"><span class="linenos">144</span></a> <span class="s2">"dayofyear"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> -</span><span id="TSQL-145"><a href="#TSQL-145"><span class="linenos">145</span></a> <span class="s2">"day"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-146"><a href="#TSQL-146"><span class="linenos">146</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-147"><a href="#TSQL-147"><span class="linenos">147</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="TSQL-148"><a href="#TSQL-148"><span class="linenos">148</span></a> <span class="s2">"week"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="TSQL-149"><a href="#TSQL-149"><span class="linenos">149</span></a> <span class="s2">"ww"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="TSQL-150"><a href="#TSQL-150"><span class="linenos">150</span></a> <span class="s2">"wk"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="TSQL-151"><a href="#TSQL-151"><span class="linenos">151</span></a> <span class="s2">"hour"</span><span class="p">:</span> <span class="s2">"%h"</span><span class="p">,</span> -</span><span id="TSQL-152"><a href="#TSQL-152"><span class="linenos">152</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> -</span><span id="TSQL-153"><a href="#TSQL-153"><span class="linenos">153</span></a> <span class="s2">"minute"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="TSQL-154"><a href="#TSQL-154"><span class="linenos">154</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="TSQL-155"><a href="#TSQL-155"><span class="linenos">155</span></a> <span class="s2">"n"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="TSQL-156"><a href="#TSQL-156"><span class="linenos">156</span></a> <span class="s2">"second"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="TSQL-157"><a href="#TSQL-157"><span class="linenos">157</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> -</span><span id="TSQL-158"><a href="#TSQL-158"><span class="linenos">158</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> -</span><span id="TSQL-159"><a href="#TSQL-159"><span class="linenos">159</span></a> <span class="s2">"millisecond"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-160"><a href="#TSQL-160"><span class="linenos">160</span></a> <span class="s2">"ms"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-161"><a href="#TSQL-161"><span class="linenos">161</span></a> <span class="s2">"weekday"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="TSQL-162"><a href="#TSQL-162"><span class="linenos">162</span></a> <span class="s2">"dw"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> -</span><span id="TSQL-163"><a href="#TSQL-163"><span class="linenos">163</span></a> <span class="s2">"month"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="TSQL-164"><a href="#TSQL-164"><span class="linenos">164</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> -</span><span id="TSQL-165"><a href="#TSQL-165"><span class="linenos">165</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> -</span><span id="TSQL-166"><a href="#TSQL-166"><span class="linenos">166</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="TSQL-167"><a href="#TSQL-167"><span class="linenos">167</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="TSQL-168"><a href="#TSQL-168"><span class="linenos">168</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="TSQL-169"><a href="#TSQL-169"><span class="linenos">169</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> -</span><span id="TSQL-170"><a href="#TSQL-170"><span class="linenos">170</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> -</span><span id="TSQL-171"><a href="#TSQL-171"><span class="linenos">171</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> -</span><span id="TSQL-172"><a href="#TSQL-172"><span class="linenos">172</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> -</span><span id="TSQL-173"><a href="#TSQL-173"><span class="linenos">173</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-174"><a href="#TSQL-174"><span class="linenos">174</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-175"><a href="#TSQL-175"><span class="linenos">175</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> -</span><span id="TSQL-176"><a href="#TSQL-176"><span class="linenos">176</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> -</span><span id="TSQL-177"><a href="#TSQL-177"><span class="linenos">177</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> -</span><span id="TSQL-178"><a href="#TSQL-178"><span class="linenos">178</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-179"><a href="#TSQL-179"><span class="linenos">179</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> -</span><span id="TSQL-180"><a href="#TSQL-180"><span class="linenos">180</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> -</span><span id="TSQL-181"><a href="#TSQL-181"><span class="linenos">181</span></a> <span class="p">}</span> -</span><span id="TSQL-182"><a href="#TSQL-182"><span class="linenos">182</span></a> -</span><span id="TSQL-183"><a href="#TSQL-183"><span class="linenos">183</span></a> <span class="n">convert_format_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-184"><a href="#TSQL-184"><span class="linenos">184</span></a> <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> -</span><span id="TSQL-185"><a href="#TSQL-185"><span class="linenos">185</span></a> <span class="s2">"1"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y"</span><span class="p">,</span> -</span><span id="TSQL-186"><a href="#TSQL-186"><span class="linenos">186</span></a> <span class="s2">"2"</span><span class="p">:</span> <span class="s2">"%y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-187"><a href="#TSQL-187"><span class="linenos">187</span></a> <span class="s2">"3"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%y"</span><span class="p">,</span> -</span><span id="TSQL-188"><a href="#TSQL-188"><span class="linenos">188</span></a> <span class="s2">"4"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%y"</span><span class="p">,</span> -</span><span id="TSQL-189"><a href="#TSQL-189"><span class="linenos">189</span></a> <span class="s2">"5"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%y"</span><span class="p">,</span> -</span><span id="TSQL-190"><a href="#TSQL-190"><span class="linenos">190</span></a> <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %y"</span><span class="p">,</span> -</span><span id="TSQL-191"><a href="#TSQL-191"><span class="linenos">191</span></a> <span class="s2">"7"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %y"</span><span class="p">,</span> -</span><span id="TSQL-192"><a href="#TSQL-192"><span class="linenos">192</span></a> <span class="s2">"8"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-193"><a href="#TSQL-193"><span class="linenos">193</span></a> <span class="s2">"9"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> -</span><span id="TSQL-194"><a href="#TSQL-194"><span class="linenos">194</span></a> <span class="s2">"10"</span><span class="p">:</span> <span class="s2">"mm-dd-yy"</span><span class="p">,</span> -</span><span id="TSQL-195"><a href="#TSQL-195"><span class="linenos">195</span></a> <span class="s2">"11"</span><span class="p">:</span> <span class="s2">"yy/mm/dd"</span><span class="p">,</span> -</span><span id="TSQL-196"><a href="#TSQL-196"><span class="linenos">196</span></a> <span class="s2">"12"</span><span class="p">:</span> <span class="s2">"yymmdd"</span><span class="p">,</span> -</span><span id="TSQL-197"><a href="#TSQL-197"><span class="linenos">197</span></a> <span class="s2">"13"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:ss:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-198"><a href="#TSQL-198"><span class="linenos">198</span></a> <span class="s2">"14"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-199"><a href="#TSQL-199"><span class="linenos">199</span></a> <span class="s2">"20"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-200"><a href="#TSQL-200"><span class="linenos">200</span></a> <span class="s2">"21"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-201"><a href="#TSQL-201"><span class="linenos">201</span></a> <span class="s2">"22"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y %-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="TSQL-202"><a href="#TSQL-202"><span class="linenos">202</span></a> <span class="s2">"23"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-203"><a href="#TSQL-203"><span class="linenos">203</span></a> <span class="s2">"24"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-204"><a href="#TSQL-204"><span class="linenos">204</span></a> <span class="s2">"25"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-205"><a href="#TSQL-205"><span class="linenos">205</span></a> <span class="s2">"100"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> -</span><span id="TSQL-206"><a href="#TSQL-206"><span class="linenos">206</span></a> <span class="s2">"101"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> -</span><span id="TSQL-207"><a href="#TSQL-207"><span class="linenos">207</span></a> <span class="s2">"102"</span><span class="p">:</span> <span class="s2">"%Y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-208"><a href="#TSQL-208"><span class="linenos">208</span></a> <span class="s2">"103"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%Y"</span><span class="p">,</span> -</span><span id="TSQL-209"><a href="#TSQL-209"><span class="linenos">209</span></a> <span class="s2">"104"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%Y"</span><span class="p">,</span> -</span><span id="TSQL-210"><a href="#TSQL-210"><span class="linenos">210</span></a> <span class="s2">"105"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%Y"</span><span class="p">,</span> -</span><span id="TSQL-211"><a href="#TSQL-211"><span class="linenos">211</span></a> <span class="s2">"106"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y"</span><span class="p">,</span> -</span><span id="TSQL-212"><a href="#TSQL-212"><span class="linenos">212</span></a> <span class="s2">"107"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %Y"</span><span class="p">,</span> -</span><span id="TSQL-213"><a href="#TSQL-213"><span class="linenos">213</span></a> <span class="s2">"108"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-214"><a href="#TSQL-214"><span class="linenos">214</span></a> <span class="s2">"109"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> -</span><span id="TSQL-215"><a href="#TSQL-215"><span class="linenos">215</span></a> <span class="s2">"110"</span><span class="p">:</span> <span class="s2">"%m-</span><span class="si">%d</span><span class="s2">-%Y"</span><span class="p">,</span> -</span><span id="TSQL-216"><a href="#TSQL-216"><span class="linenos">216</span></a> <span class="s2">"111"</span><span class="p">:</span> <span class="s2">"%Y/%m/</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-217"><a href="#TSQL-217"><span class="linenos">217</span></a> <span class="s2">"112"</span><span class="p">:</span> <span class="s2">"%Y%m</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-218"><a href="#TSQL-218"><span class="linenos">218</span></a> <span class="s2">"113"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-219"><a href="#TSQL-219"><span class="linenos">219</span></a> <span class="s2">"114"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-220"><a href="#TSQL-220"><span class="linenos">220</span></a> <span class="s2">"120"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-221"><a href="#TSQL-221"><span class="linenos">221</span></a> <span class="s2">"121"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-222"><a href="#TSQL-222"><span class="linenos">222</span></a> <span class="p">}</span> -</span><span id="TSQL-223"><a href="#TSQL-223"><span class="linenos">223</span></a> <span class="c1"># not sure if complete</span> -</span><span id="TSQL-224"><a href="#TSQL-224"><span class="linenos">224</span></a> <span class="n">format_time_mapping</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-225"><a href="#TSQL-225"><span class="linenos">225</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%B %Y"</span><span class="p">,</span> -</span><span id="TSQL-226"><a href="#TSQL-226"><span class="linenos">226</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> -</span><span id="TSQL-227"><a href="#TSQL-227"><span class="linenos">227</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> -</span><span id="TSQL-228"><a href="#TSQL-228"><span class="linenos">228</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> -</span><span id="TSQL-229"><a href="#TSQL-229"><span class="linenos">229</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-230"><a href="#TSQL-230"><span class="linenos">230</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y"</span><span class="p">,</span> -</span><span id="TSQL-231"><a href="#TSQL-231"><span class="linenos">231</span></a> <span class="s2">"f"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M %p"</span><span class="p">,</span> -</span><span id="TSQL-232"><a href="#TSQL-232"><span class="linenos">232</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="TSQL-233"><a href="#TSQL-233"><span class="linenos">233</span></a> <span class="s2">"g"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M %p"</span><span class="p">,</span> -</span><span id="TSQL-234"><a href="#TSQL-234"><span class="linenos">234</span></a> <span class="s2">"G"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="TSQL-235"><a href="#TSQL-235"><span class="linenos">235</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-236"><a href="#TSQL-236"><span class="linenos">236</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> -</span><span id="TSQL-237"><a href="#TSQL-237"><span class="linenos">237</span></a> <span class="s2">"O"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">T%H:%M:%S"</span><span class="p">,</span> -</span><span id="TSQL-238"><a href="#TSQL-238"><span class="linenos">238</span></a> <span class="s2">"u"</span><span class="p">:</span> <span class="s2">"%Y-%M-%D %H:%M:%S%z"</span><span class="p">,</span> -</span><span id="TSQL-239"><a href="#TSQL-239"><span class="linenos">239</span></a> <span class="s2">"U"</span><span class="p">:</span> <span class="s2">"%A, %B %D, %Y %H:%M:%S%z"</span><span class="p">,</span> -</span><span id="TSQL-240"><a href="#TSQL-240"><span class="linenos">240</span></a> <span class="s2">"T"</span><span class="p">:</span> <span class="s2">"%-I:%M:%S %p"</span><span class="p">,</span> -</span><span id="TSQL-241"><a href="#TSQL-241"><span class="linenos">241</span></a> <span class="s2">"t"</span><span class="p">:</span> <span class="s2">"%-I:%M"</span><span class="p">,</span> -</span><span id="TSQL-242"><a href="#TSQL-242"><span class="linenos">242</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2"> %Y"</span><span class="p">,</span> -</span><span id="TSQL-243"><a href="#TSQL-243"><span class="linenos">243</span></a> <span class="p">}</span> -</span><span id="TSQL-244"><a href="#TSQL-244"><span class="linenos">244</span></a> -</span><span id="TSQL-245"><a href="#TSQL-245"><span class="linenos">245</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="TSQL-246"><a href="#TSQL-246"><span class="linenos">246</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL-133"><a href="#TSQL-133"><span class="linenos">133</span></a><span class="k">class</span> <span class="nc">TSQL</span><span class="p">(</span><span class="n">Dialect</span><span class="p">):</span> +</span><span id="TSQL-134"><a href="#TSQL-134"><span class="linenos">134</span></a> <span class="n">null_ordering</span> <span class="o">=</span> <span class="s2">"nulls_are_small"</span> +</span><span id="TSQL-135"><a href="#TSQL-135"><span class="linenos">135</span></a> <span class="n">time_format</span> <span class="o">=</span> <span class="s2">"'yyyy-mm-dd hh:mm:ss'"</span> +</span><span id="TSQL-136"><a href="#TSQL-136"><span class="linenos">136</span></a> +</span><span id="TSQL-137"><a href="#TSQL-137"><span class="linenos">137</span></a> <span class="n">time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-138"><a href="#TSQL-138"><span class="linenos">138</span></a> <span class="s2">"year"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="TSQL-139"><a href="#TSQL-139"><span class="linenos">139</span></a> <span class="s2">"qq"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> +</span><span id="TSQL-140"><a href="#TSQL-140"><span class="linenos">140</span></a> <span class="s2">"q"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> +</span><span id="TSQL-141"><a href="#TSQL-141"><span class="linenos">141</span></a> <span class="s2">"quarter"</span><span class="p">:</span> <span class="s2">"%q"</span><span class="p">,</span> +</span><span id="TSQL-142"><a href="#TSQL-142"><span class="linenos">142</span></a> <span class="s2">"dayofyear"</span><span class="p">:</span> <span class="s2">"%j"</span><span class="p">,</span> +</span><span id="TSQL-143"><a href="#TSQL-143"><span class="linenos">143</span></a> <span class="s2">"day"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-144"><a href="#TSQL-144"><span class="linenos">144</span></a> <span class="s2">"dy"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-145"><a href="#TSQL-145"><span class="linenos">145</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="TSQL-146"><a href="#TSQL-146"><span class="linenos">146</span></a> <span class="s2">"week"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="TSQL-147"><a href="#TSQL-147"><span class="linenos">147</span></a> <span class="s2">"ww"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="TSQL-148"><a href="#TSQL-148"><span class="linenos">148</span></a> <span class="s2">"wk"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="TSQL-149"><a href="#TSQL-149"><span class="linenos">149</span></a> <span class="s2">"hour"</span><span class="p">:</span> <span class="s2">"%h"</span><span class="p">,</span> +</span><span id="TSQL-150"><a href="#TSQL-150"><span class="linenos">150</span></a> <span class="s2">"hh"</span><span class="p">:</span> <span class="s2">"%I"</span><span class="p">,</span> +</span><span id="TSQL-151"><a href="#TSQL-151"><span class="linenos">151</span></a> <span class="s2">"minute"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="TSQL-152"><a href="#TSQL-152"><span class="linenos">152</span></a> <span class="s2">"mi"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="TSQL-153"><a href="#TSQL-153"><span class="linenos">153</span></a> <span class="s2">"n"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="TSQL-154"><a href="#TSQL-154"><span class="linenos">154</span></a> <span class="s2">"second"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="TSQL-155"><a href="#TSQL-155"><span class="linenos">155</span></a> <span class="s2">"ss"</span><span class="p">:</span> <span class="s2">"%S"</span><span class="p">,</span> +</span><span id="TSQL-156"><a href="#TSQL-156"><span class="linenos">156</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%-S"</span><span class="p">,</span> +</span><span id="TSQL-157"><a href="#TSQL-157"><span class="linenos">157</span></a> <span class="s2">"millisecond"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-158"><a href="#TSQL-158"><span class="linenos">158</span></a> <span class="s2">"ms"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-159"><a href="#TSQL-159"><span class="linenos">159</span></a> <span class="s2">"weekday"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="TSQL-160"><a href="#TSQL-160"><span class="linenos">160</span></a> <span class="s2">"dw"</span><span class="p">:</span> <span class="s2">"%W"</span><span class="p">,</span> +</span><span id="TSQL-161"><a href="#TSQL-161"><span class="linenos">161</span></a> <span class="s2">"month"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="TSQL-162"><a href="#TSQL-162"><span class="linenos">162</span></a> <span class="s2">"mm"</span><span class="p">:</span> <span class="s2">"%M"</span><span class="p">,</span> +</span><span id="TSQL-163"><a href="#TSQL-163"><span class="linenos">163</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%-M"</span><span class="p">,</span> +</span><span id="TSQL-164"><a href="#TSQL-164"><span class="linenos">164</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="TSQL-165"><a href="#TSQL-165"><span class="linenos">165</span></a> <span class="s2">"YYYY"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="TSQL-166"><a href="#TSQL-166"><span class="linenos">166</span></a> <span class="s2">"YY"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="TSQL-167"><a href="#TSQL-167"><span class="linenos">167</span></a> <span class="s2">"MMMM"</span><span class="p">:</span> <span class="s2">"%B"</span><span class="p">,</span> +</span><span id="TSQL-168"><a href="#TSQL-168"><span class="linenos">168</span></a> <span class="s2">"MMM"</span><span class="p">:</span> <span class="s2">"%b"</span><span class="p">,</span> +</span><span id="TSQL-169"><a href="#TSQL-169"><span class="linenos">169</span></a> <span class="s2">"MM"</span><span class="p">:</span> <span class="s2">"%m"</span><span class="p">,</span> +</span><span id="TSQL-170"><a href="#TSQL-170"><span class="linenos">170</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%-m"</span><span class="p">,</span> +</span><span id="TSQL-171"><a href="#TSQL-171"><span class="linenos">171</span></a> <span class="s2">"dd"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-172"><a href="#TSQL-172"><span class="linenos">172</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-173"><a href="#TSQL-173"><span class="linenos">173</span></a> <span class="s2">"HH"</span><span class="p">:</span> <span class="s2">"%H"</span><span class="p">,</span> +</span><span id="TSQL-174"><a href="#TSQL-174"><span class="linenos">174</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> +</span><span id="TSQL-175"><a href="#TSQL-175"><span class="linenos">175</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> +</span><span id="TSQL-176"><a href="#TSQL-176"><span class="linenos">176</span></a> <span class="s2">"S"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-177"><a href="#TSQL-177"><span class="linenos">177</span></a> <span class="s2">"yyyy"</span><span class="p">:</span> <span class="s2">"%Y"</span><span class="p">,</span> +</span><span id="TSQL-178"><a href="#TSQL-178"><span class="linenos">178</span></a> <span class="s2">"yy"</span><span class="p">:</span> <span class="s2">"%y"</span><span class="p">,</span> +</span><span id="TSQL-179"><a href="#TSQL-179"><span class="linenos">179</span></a> <span class="p">}</span> +</span><span id="TSQL-180"><a href="#TSQL-180"><span class="linenos">180</span></a> +</span><span id="TSQL-181"><a href="#TSQL-181"><span class="linenos">181</span></a> <span class="n">convert_format_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-182"><a href="#TSQL-182"><span class="linenos">182</span></a> <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> +</span><span id="TSQL-183"><a href="#TSQL-183"><span class="linenos">183</span></a> <span class="s2">"1"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y"</span><span class="p">,</span> +</span><span id="TSQL-184"><a href="#TSQL-184"><span class="linenos">184</span></a> <span class="s2">"2"</span><span class="p">:</span> <span class="s2">"%y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-185"><a href="#TSQL-185"><span class="linenos">185</span></a> <span class="s2">"3"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%y"</span><span class="p">,</span> +</span><span id="TSQL-186"><a href="#TSQL-186"><span class="linenos">186</span></a> <span class="s2">"4"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%y"</span><span class="p">,</span> +</span><span id="TSQL-187"><a href="#TSQL-187"><span class="linenos">187</span></a> <span class="s2">"5"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%y"</span><span class="p">,</span> +</span><span id="TSQL-188"><a href="#TSQL-188"><span class="linenos">188</span></a> <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %y"</span><span class="p">,</span> +</span><span id="TSQL-189"><a href="#TSQL-189"><span class="linenos">189</span></a> <span class="s2">"7"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %y"</span><span class="p">,</span> +</span><span id="TSQL-190"><a href="#TSQL-190"><span class="linenos">190</span></a> <span class="s2">"8"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-191"><a href="#TSQL-191"><span class="linenos">191</span></a> <span class="s2">"9"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> +</span><span id="TSQL-192"><a href="#TSQL-192"><span class="linenos">192</span></a> <span class="s2">"10"</span><span class="p">:</span> <span class="s2">"mm-dd-yy"</span><span class="p">,</span> +</span><span id="TSQL-193"><a href="#TSQL-193"><span class="linenos">193</span></a> <span class="s2">"11"</span><span class="p">:</span> <span class="s2">"yy/mm/dd"</span><span class="p">,</span> +</span><span id="TSQL-194"><a href="#TSQL-194"><span class="linenos">194</span></a> <span class="s2">"12"</span><span class="p">:</span> <span class="s2">"yymmdd"</span><span class="p">,</span> +</span><span id="TSQL-195"><a href="#TSQL-195"><span class="linenos">195</span></a> <span class="s2">"13"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:ss:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-196"><a href="#TSQL-196"><span class="linenos">196</span></a> <span class="s2">"14"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-197"><a href="#TSQL-197"><span class="linenos">197</span></a> <span class="s2">"20"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-198"><a href="#TSQL-198"><span class="linenos">198</span></a> <span class="s2">"21"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-199"><a href="#TSQL-199"><span class="linenos">199</span></a> <span class="s2">"22"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%y %-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="TSQL-200"><a href="#TSQL-200"><span class="linenos">200</span></a> <span class="s2">"23"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-201"><a href="#TSQL-201"><span class="linenos">201</span></a> <span class="s2">"24"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-202"><a href="#TSQL-202"><span class="linenos">202</span></a> <span class="s2">"25"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-203"><a href="#TSQL-203"><span class="linenos">203</span></a> <span class="s2">"100"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M%p"</span><span class="p">,</span> +</span><span id="TSQL-204"><a href="#TSQL-204"><span class="linenos">204</span></a> <span class="s2">"101"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> +</span><span id="TSQL-205"><a href="#TSQL-205"><span class="linenos">205</span></a> <span class="s2">"102"</span><span class="p">:</span> <span class="s2">"%Y.%m.</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-206"><a href="#TSQL-206"><span class="linenos">206</span></a> <span class="s2">"103"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%Y"</span><span class="p">,</span> +</span><span id="TSQL-207"><a href="#TSQL-207"><span class="linenos">207</span></a> <span class="s2">"104"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">.%m.%Y"</span><span class="p">,</span> +</span><span id="TSQL-208"><a href="#TSQL-208"><span class="linenos">208</span></a> <span class="s2">"105"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2">-%m-%Y"</span><span class="p">,</span> +</span><span id="TSQL-209"><a href="#TSQL-209"><span class="linenos">209</span></a> <span class="s2">"106"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y"</span><span class="p">,</span> +</span><span id="TSQL-210"><a href="#TSQL-210"><span class="linenos">210</span></a> <span class="s2">"107"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2">, %Y"</span><span class="p">,</span> +</span><span id="TSQL-211"><a href="#TSQL-211"><span class="linenos">211</span></a> <span class="s2">"108"</span><span class="p">:</span> <span class="s2">"%H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-212"><a href="#TSQL-212"><span class="linenos">212</span></a> <span class="s2">"109"</span><span class="p">:</span> <span class="s2">"%b </span><span class="si">%d</span><span class="s2"> %Y %-I:%M:%S:</span><span class="si">%f</span><span class="s2">%p"</span><span class="p">,</span> +</span><span id="TSQL-213"><a href="#TSQL-213"><span class="linenos">213</span></a> <span class="s2">"110"</span><span class="p">:</span> <span class="s2">"%m-</span><span class="si">%d</span><span class="s2">-%Y"</span><span class="p">,</span> +</span><span id="TSQL-214"><a href="#TSQL-214"><span class="linenos">214</span></a> <span class="s2">"111"</span><span class="p">:</span> <span class="s2">"%Y/%m/</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-215"><a href="#TSQL-215"><span class="linenos">215</span></a> <span class="s2">"112"</span><span class="p">:</span> <span class="s2">"%Y%m</span><span class="si">%d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-216"><a href="#TSQL-216"><span class="linenos">216</span></a> <span class="s2">"113"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%d</span><span class="s2"> %b %Y %H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-217"><a href="#TSQL-217"><span class="linenos">217</span></a> <span class="s2">"114"</span><span class="p">:</span> <span class="s2">"%H:%M:%S:</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-218"><a href="#TSQL-218"><span class="linenos">218</span></a> <span class="s2">"120"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-219"><a href="#TSQL-219"><span class="linenos">219</span></a> <span class="s2">"121"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S.</span><span class="si">%f</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-220"><a href="#TSQL-220"><span class="linenos">220</span></a> <span class="p">}</span> +</span><span id="TSQL-221"><a href="#TSQL-221"><span class="linenos">221</span></a> <span class="c1"># not sure if complete</span> +</span><span id="TSQL-222"><a href="#TSQL-222"><span class="linenos">222</span></a> <span class="n">format_time_mapping</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-223"><a href="#TSQL-223"><span class="linenos">223</span></a> <span class="s2">"y"</span><span class="p">:</span> <span class="s2">"%B %Y"</span><span class="p">,</span> +</span><span id="TSQL-224"><a href="#TSQL-224"><span class="linenos">224</span></a> <span class="s2">"d"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y"</span><span class="p">,</span> +</span><span id="TSQL-225"><a href="#TSQL-225"><span class="linenos">225</span></a> <span class="s2">"H"</span><span class="p">:</span> <span class="s2">"%-H"</span><span class="p">,</span> +</span><span id="TSQL-226"><a href="#TSQL-226"><span class="linenos">226</span></a> <span class="s2">"h"</span><span class="p">:</span> <span class="s2">"%-I"</span><span class="p">,</span> +</span><span id="TSQL-227"><a href="#TSQL-227"><span class="linenos">227</span></a> <span class="s2">"s"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2"> %H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-228"><a href="#TSQL-228"><span class="linenos">228</span></a> <span class="s2">"D"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y"</span><span class="p">,</span> +</span><span id="TSQL-229"><a href="#TSQL-229"><span class="linenos">229</span></a> <span class="s2">"f"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M %p"</span><span class="p">,</span> +</span><span id="TSQL-230"><a href="#TSQL-230"><span class="linenos">230</span></a> <span class="s2">"F"</span><span class="p">:</span> <span class="s2">"%A,%B,%Y %-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="TSQL-231"><a href="#TSQL-231"><span class="linenos">231</span></a> <span class="s2">"g"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M %p"</span><span class="p">,</span> +</span><span id="TSQL-232"><a href="#TSQL-232"><span class="linenos">232</span></a> <span class="s2">"G"</span><span class="p">:</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">/%Y %-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="TSQL-233"><a href="#TSQL-233"><span class="linenos">233</span></a> <span class="s2">"M"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-234"><a href="#TSQL-234"><span class="linenos">234</span></a> <span class="s2">"m"</span><span class="p">:</span> <span class="s2">"%B </span><span class="si">%-d</span><span class="s2">"</span><span class="p">,</span> +</span><span id="TSQL-235"><a href="#TSQL-235"><span class="linenos">235</span></a> <span class="s2">"O"</span><span class="p">:</span> <span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">T%H:%M:%S"</span><span class="p">,</span> +</span><span id="TSQL-236"><a href="#TSQL-236"><span class="linenos">236</span></a> <span class="s2">"u"</span><span class="p">:</span> <span class="s2">"%Y-%M-%D %H:%M:%S%z"</span><span class="p">,</span> +</span><span id="TSQL-237"><a href="#TSQL-237"><span class="linenos">237</span></a> <span class="s2">"U"</span><span class="p">:</span> <span class="s2">"%A, %B %D, %Y %H:%M:%S%z"</span><span class="p">,</span> +</span><span id="TSQL-238"><a href="#TSQL-238"><span class="linenos">238</span></a> <span class="s2">"T"</span><span class="p">:</span> <span class="s2">"%-I:%M:%S %p"</span><span class="p">,</span> +</span><span id="TSQL-239"><a href="#TSQL-239"><span class="linenos">239</span></a> <span class="s2">"t"</span><span class="p">:</span> <span class="s2">"%-I:%M"</span><span class="p">,</span> +</span><span id="TSQL-240"><a href="#TSQL-240"><span class="linenos">240</span></a> <span class="s2">"Y"</span><span class="p">:</span> <span class="s2">"</span><span class="si">%a</span><span class="s2"> %Y"</span><span class="p">,</span> +</span><span id="TSQL-241"><a href="#TSQL-241"><span class="linenos">241</span></a> <span class="p">}</span> +</span><span id="TSQL-242"><a href="#TSQL-242"><span class="linenos">242</span></a> +</span><span id="TSQL-243"><a href="#TSQL-243"><span class="linenos">243</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="TSQL-244"><a href="#TSQL-244"><span class="linenos">244</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)]</span> +</span><span id="TSQL-245"><a href="#TSQL-245"><span class="linenos">245</span></a> +</span><span id="TSQL-246"><a href="#TSQL-246"><span class="linenos">246</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> </span><span id="TSQL-247"><a href="#TSQL-247"><span class="linenos">247</span></a> -</span><span id="TSQL-248"><a href="#TSQL-248"><span class="linenos">248</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> -</span><span id="TSQL-249"><a href="#TSQL-249"><span class="linenos">249</span></a> -</span><span id="TSQL-250"><a href="#TSQL-250"><span class="linenos">250</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-251"><a href="#TSQL-251"><span class="linenos">251</span></a> <span class="o">**</span><span class="n">tokens</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="TSQL-252"><a href="#TSQL-252"><span class="linenos">252</span></a> <span class="s2">"DATETIME2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="TSQL-253"><a href="#TSQL-253"><span class="linenos">253</span></a> <span class="s2">"DATETIMEOFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="TSQL-254"><a href="#TSQL-254"><span class="linenos">254</span></a> <span class="s2">"DECLARE"</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="TSQL-255"><a href="#TSQL-255"><span class="linenos">255</span></a> <span class="s2">"IMAGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> -</span><span id="TSQL-256"><a href="#TSQL-256"><span class="linenos">256</span></a> <span class="s2">"MONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> -</span><span id="TSQL-257"><a href="#TSQL-257"><span class="linenos">257</span></a> <span class="s2">"NTEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="TSQL-258"><a href="#TSQL-258"><span class="linenos">258</span></a> <span class="s2">"NVARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="TSQL-259"><a href="#TSQL-259"><span class="linenos">259</span></a> <span class="s2">"PRINT"</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="TSQL-260"><a href="#TSQL-260"><span class="linenos">260</span></a> <span class="s2">"PROC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="TSQL-261"><a href="#TSQL-261"><span class="linenos">261</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="TSQL-262"><a href="#TSQL-262"><span class="linenos">262</span></a> <span class="s2">"ROWVERSION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> -</span><span id="TSQL-263"><a href="#TSQL-263"><span class="linenos">263</span></a> <span class="s2">"SMALLDATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="TSQL-264"><a href="#TSQL-264"><span class="linenos">264</span></a> <span class="s2">"SMALLMONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> -</span><span id="TSQL-265"><a href="#TSQL-265"><span class="linenos">265</span></a> <span class="s2">"SQL_VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="TSQL-266"><a href="#TSQL-266"><span class="linenos">266</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="TSQL-267"><a href="#TSQL-267"><span class="linenos">267</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="TSQL-268"><a href="#TSQL-268"><span class="linenos">268</span></a> <span class="s2">"UNIQUEIDENTIFIER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> -</span><span id="TSQL-269"><a href="#TSQL-269"><span class="linenos">269</span></a> <span class="s2">"VARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="TSQL-270"><a href="#TSQL-270"><span class="linenos">270</span></a> <span class="s2">"XML"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> -</span><span id="TSQL-271"><a href="#TSQL-271"><span class="linenos">271</span></a> <span class="p">}</span> -</span><span id="TSQL-272"><a href="#TSQL-272"><span class="linenos">272</span></a> -</span><span id="TSQL-273"><a href="#TSQL-273"><span class="linenos">273</span></a> <span class="c1"># TSQL allows @, # to appear as a variable/identifier prefix</span> -</span><span id="TSQL-274"><a href="#TSQL-274"><span class="linenos">274</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">tokens</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="TSQL-275"><a href="#TSQL-275"><span class="linenos">275</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="TSQL-276"><a href="#TSQL-276"><span class="linenos">276</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="TSQL-277"><a href="#TSQL-277"><span class="linenos">277</span></a> -</span><span id="TSQL-278"><a href="#TSQL-278"><span class="linenos">278</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="TSQL-279"><a href="#TSQL-279"><span class="linenos">279</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-280"><a href="#TSQL-280"><span class="linenos">280</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL-281"><a href="#TSQL-281"><span class="linenos">281</span></a> <span class="s2">"CHARINDEX"</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">StrPosition</span><span class="p">(</span> -</span><span id="TSQL-282"><a href="#TSQL-282"><span class="linenos">282</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">1</span><span class="p">),</span> -</span><span id="TSQL-283"><a href="#TSQL-283"><span class="linenos">283</span></a> <span class="n">substr</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="TSQL-284"><a href="#TSQL-284"><span class="linenos">284</span></a> <span class="n">position</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="TSQL-285"><a href="#TSQL-285"><span class="linenos">285</span></a> <span class="p">),</span> -</span><span id="TSQL-286"><a href="#TSQL-286"><span class="linenos">286</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="TSQL-287"><a href="#TSQL-287"><span class="linenos">287</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> -</span><span id="TSQL-288"><a href="#TSQL-288"><span class="linenos">288</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> -</span><span id="TSQL-289"><a href="#TSQL-289"><span class="linenos">289</span></a> <span class="s2">"DATENAME"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="n">full_format_mapping</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="TSQL-290"><a href="#TSQL-290"><span class="linenos">290</span></a> <span class="s2">"DATEPART"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">),</span> -</span><span id="TSQL-291"><a href="#TSQL-291"><span class="linenos">291</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="TSQL-292"><a href="#TSQL-292"><span class="linenos">292</span></a> <span class="s2">"SYSDATETIME"</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="TSQL-293"><a href="#TSQL-293"><span class="linenos">293</span></a> <span class="s2">"IIF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="TSQL-248"><a href="#TSQL-248"><span class="linenos">248</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-249"><a href="#TSQL-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">tokens</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="TSQL-250"><a href="#TSQL-250"><span class="linenos">250</span></a> <span class="s2">"DATETIME2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="TSQL-251"><a href="#TSQL-251"><span class="linenos">251</span></a> <span class="s2">"DATETIMEOFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="TSQL-252"><a href="#TSQL-252"><span class="linenos">252</span></a> <span class="s2">"DECLARE"</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="TSQL-253"><a href="#TSQL-253"><span class="linenos">253</span></a> <span class="s2">"IMAGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> +</span><span id="TSQL-254"><a href="#TSQL-254"><span class="linenos">254</span></a> <span class="s2">"MONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> +</span><span id="TSQL-255"><a href="#TSQL-255"><span class="linenos">255</span></a> <span class="s2">"NTEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="TSQL-256"><a href="#TSQL-256"><span class="linenos">256</span></a> <span class="s2">"NVARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="TSQL-257"><a href="#TSQL-257"><span class="linenos">257</span></a> <span class="s2">"PRINT"</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="TSQL-258"><a href="#TSQL-258"><span class="linenos">258</span></a> <span class="s2">"PROC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="TSQL-259"><a href="#TSQL-259"><span class="linenos">259</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="TSQL-260"><a href="#TSQL-260"><span class="linenos">260</span></a> <span class="s2">"ROWVERSION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> +</span><span id="TSQL-261"><a href="#TSQL-261"><span class="linenos">261</span></a> <span class="s2">"SMALLDATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="TSQL-262"><a href="#TSQL-262"><span class="linenos">262</span></a> <span class="s2">"SMALLMONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> +</span><span id="TSQL-263"><a href="#TSQL-263"><span class="linenos">263</span></a> <span class="s2">"SQL_VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="TSQL-264"><a href="#TSQL-264"><span class="linenos">264</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="TSQL-265"><a href="#TSQL-265"><span class="linenos">265</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="TSQL-266"><a href="#TSQL-266"><span class="linenos">266</span></a> <span class="s2">"UNIQUEIDENTIFIER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> +</span><span id="TSQL-267"><a href="#TSQL-267"><span class="linenos">267</span></a> <span class="s2">"VARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="TSQL-268"><a href="#TSQL-268"><span class="linenos">268</span></a> <span class="s2">"XML"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> +</span><span id="TSQL-269"><a href="#TSQL-269"><span class="linenos">269</span></a> <span class="p">}</span> +</span><span id="TSQL-270"><a href="#TSQL-270"><span class="linenos">270</span></a> +</span><span id="TSQL-271"><a href="#TSQL-271"><span class="linenos">271</span></a> <span class="c1"># TSQL allows @, # to appear as a variable/identifier prefix</span> +</span><span id="TSQL-272"><a href="#TSQL-272"><span class="linenos">272</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">tokens</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="TSQL-273"><a href="#TSQL-273"><span class="linenos">273</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="TSQL-274"><a href="#TSQL-274"><span class="linenos">274</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="TSQL-275"><a href="#TSQL-275"><span class="linenos">275</span></a> +</span><span id="TSQL-276"><a href="#TSQL-276"><span class="linenos">276</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="TSQL-277"><a href="#TSQL-277"><span class="linenos">277</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-278"><a href="#TSQL-278"><span class="linenos">278</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL-279"><a href="#TSQL-279"><span class="linenos">279</span></a> <span class="s2">"CHARINDEX"</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">StrPosition</span><span class="p">(</span> +</span><span id="TSQL-280"><a href="#TSQL-280"><span class="linenos">280</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">1</span><span class="p">),</span> +</span><span id="TSQL-281"><a href="#TSQL-281"><span class="linenos">281</span></a> <span class="n">substr</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="TSQL-282"><a href="#TSQL-282"><span class="linenos">282</span></a> <span class="n">position</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="TSQL-283"><a href="#TSQL-283"><span class="linenos">283</span></a> <span class="p">),</span> +</span><span id="TSQL-284"><a href="#TSQL-284"><span class="linenos">284</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> +</span><span id="TSQL-285"><a href="#TSQL-285"><span class="linenos">285</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> +</span><span id="TSQL-286"><a href="#TSQL-286"><span class="linenos">286</span></a> <span class="s2">"DATENAME"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="n">full_format_mapping</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="TSQL-287"><a href="#TSQL-287"><span class="linenos">287</span></a> <span class="s2">"DATEPART"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">),</span> +</span><span id="TSQL-288"><a href="#TSQL-288"><span class="linenos">288</span></a> <span class="s2">"EOMONTH"</span><span class="p">:</span> <span class="n">_parse_eomonth</span><span class="p">,</span> +</span><span id="TSQL-289"><a href="#TSQL-289"><span class="linenos">289</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">_parse_format</span><span class="p">,</span> +</span><span id="TSQL-290"><a href="#TSQL-290"><span class="linenos">290</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="TSQL-291"><a href="#TSQL-291"><span class="linenos">291</span></a> <span class="s2">"IIF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="TSQL-292"><a href="#TSQL-292"><span class="linenos">292</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="TSQL-293"><a href="#TSQL-293"><span class="linenos">293</span></a> <span class="s2">"JSON_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> </span><span id="TSQL-294"><a href="#TSQL-294"><span class="linenos">294</span></a> <span class="s2">"LEN"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Length</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> </span><span id="TSQL-295"><a href="#TSQL-295"><span class="linenos">295</span></a> <span class="s2">"REPLICATE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Repeat</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="TSQL-296"><a href="#TSQL-296"><span class="linenos">296</span></a> <span class="s2">"JSON_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="TSQL-297"><a href="#TSQL-297"><span class="linenos">297</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">_parse_format</span><span class="p">,</span> -</span><span id="TSQL-298"><a href="#TSQL-298"><span class="linenos">298</span></a> <span class="s2">"EOMONTH"</span><span class="p">:</span> <span class="n">_parse_eomonth</span><span class="p">,</span> -</span><span id="TSQL-299"><a href="#TSQL-299"><span class="linenos">299</span></a> <span class="p">}</span> -</span><span id="TSQL-300"><a href="#TSQL-300"><span class="linenos">300</span></a> -</span><span id="TSQL-301"><a href="#TSQL-301"><span class="linenos">301</span></a> <span class="n">VAR_LENGTH_DATATYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-302"><a href="#TSQL-302"><span class="linenos">302</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="TSQL-303"><a href="#TSQL-303"><span class="linenos">303</span></a> <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="TSQL-304"><a href="#TSQL-304"><span class="linenos">304</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="TSQL-305"><a href="#TSQL-305"><span class="linenos">305</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="TSQL-306"><a href="#TSQL-306"><span class="linenos">306</span></a> <span class="p">}</span> -</span><span id="TSQL-307"><a href="#TSQL-307"><span class="linenos">307</span></a> -</span><span id="TSQL-308"><a href="#TSQL-308"><span class="linenos">308</span></a> <span class="n">RETURNS_TABLE_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL-309"><a href="#TSQL-309"><span class="linenos">309</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="TSQL-310"><a href="#TSQL-310"><span class="linenos">310</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL-311"><a href="#TSQL-311"><span class="linenos">311</span></a> <span class="p">}</span> -</span><span id="TSQL-312"><a href="#TSQL-312"><span class="linenos">312</span></a> -</span><span id="TSQL-313"><a href="#TSQL-313"><span class="linenos">313</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-314"><a href="#TSQL-314"><span class="linenos">314</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL-315"><a href="#TSQL-315"><span class="linenos">315</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_command</span><span class="p">(),</span> -</span><span id="TSQL-316"><a href="#TSQL-316"><span class="linenos">316</span></a> <span class="p">}</span> -</span><span id="TSQL-317"><a href="#TSQL-317"><span class="linenos">317</span></a> -</span><span id="TSQL-318"><a href="#TSQL-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">_parse_system_time</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">Expression</span><span class="p">]:</span> -</span><span id="TSQL-319"><a href="#TSQL-319"><span class="linenos">319</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SYSTEM_TIME"</span><span class="p">):</span> -</span><span id="TSQL-320"><a href="#TSQL-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="TSQL-321"><a href="#TSQL-321"><span class="linenos">321</span></a> -</span><span id="TSQL-322"><a href="#TSQL-322"><span class="linenos">322</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"OF"</span><span class="p">):</span> -</span><span id="TSQL-323"><a href="#TSQL-323"><span class="linenos">323</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="TSQL-324"><a href="#TSQL-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <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 class="n">kind</span><span class="o">=</span><span class="s2">"AS OF"</span> -</span><span id="TSQL-325"><a href="#TSQL-325"><span class="linenos">325</span></a> <span class="p">)</span> -</span><span id="TSQL-326"><a href="#TSQL-326"><span class="linenos">326</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">)):</span> -</span><span id="TSQL-327"><a href="#TSQL-327"><span class="linenos">327</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="TSQL-328"><a href="#TSQL-328"><span class="linenos">328</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="TSQL-329"><a href="#TSQL-329"><span class="linenos">329</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">))</span> -</span><span id="TSQL-330"><a href="#TSQL-330"><span class="linenos">330</span></a> <span class="n">expression</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="TSQL-331"><a href="#TSQL-331"><span class="linenos">331</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="TSQL-332"><a href="#TSQL-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span> -</span><span id="TSQL-333"><a href="#TSQL-333"><span class="linenos">333</span></a> <span class="p">)</span> -</span><span id="TSQL-334"><a href="#TSQL-334"><span class="linenos">334</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONTAINED"</span><span class="p">,</span> <span class="s2">"IN"</span><span class="p">):</span> -</span><span id="TSQL-335"><a href="#TSQL-335"><span class="linenos">335</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="TSQL-336"><a href="#TSQL-336"><span class="linenos">336</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="TSQL-337"><a href="#TSQL-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> -</span><span id="TSQL-338"><a href="#TSQL-338"><span class="linenos">338</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="TSQL-339"><a href="#TSQL-339"><span class="linenos">339</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="TSQL-340"><a href="#TSQL-340"><span class="linenos">340</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"CONTAINED IN"</span><span class="p">,</span> -</span><span id="TSQL-341"><a href="#TSQL-341"><span class="linenos">341</span></a> <span class="p">)</span> -</span><span id="TSQL-342"><a href="#TSQL-342"><span class="linenos">342</span></a> <span class="k">elif</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">ALL</span><span class="p">):</span> -</span><span id="TSQL-343"><a href="#TSQL-343"><span class="linenos">343</span></a> <span class="n">system_time</span> <span class="o">=</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">SystemTime</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s2">"ALL"</span><span class="p">)</span> -</span><span id="TSQL-344"><a href="#TSQL-344"><span class="linenos">344</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="TSQL-345"><a href="#TSQL-345"><span class="linenos">345</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="TSQL-346"><a href="#TSQL-346"><span class="linenos">346</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unable to parse FOR SYSTEM_TIME clause"</span><span class="p">)</span> -</span><span id="TSQL-347"><a href="#TSQL-347"><span class="linenos">347</span></a> -</span><span id="TSQL-348"><a href="#TSQL-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="n">system_time</span> -</span><span id="TSQL-349"><a href="#TSQL-349"><span class="linenos">349</span></a> -</span><span id="TSQL-350"><a href="#TSQL-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="TSQL-351"><a href="#TSQL-351"><span class="linenos">351</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_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> -</span><span id="TSQL-352"><a href="#TSQL-352"><span class="linenos">352</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"system_time"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_system_time</span><span class="p">())</span> -</span><span id="TSQL-353"><a href="#TSQL-353"><span class="linenos">353</span></a> <span class="k">return</span> <span class="n">table</span> -</span><span id="TSQL-354"><a href="#TSQL-354"><span class="linenos">354</span></a> -</span><span id="TSQL-355"><a href="#TSQL-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="TSQL-356"><a href="#TSQL-356"><span class="linenos">356</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">RETURNS_TABLE_TOKENS</span><span class="p">)</span> -</span><span id="TSQL-357"><a href="#TSQL-357"><span class="linenos">357</span></a> <span class="n">returns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_returns</span><span class="p">()</span> -</span><span id="TSQL-358"><a href="#TSQL-358"><span class="linenos">358</span></a> <span class="n">returns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> -</span><span id="TSQL-359"><a href="#TSQL-359"><span class="linenos">359</span></a> <span class="k">return</span> <span class="n">returns</span> -</span><span id="TSQL-360"><a href="#TSQL-360"><span class="linenos">360</span></a> -</span><span id="TSQL-361"><a href="#TSQL-361"><span class="linenos">361</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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="TSQL-362"><a href="#TSQL-362"><span class="linenos">362</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="TSQL-363"><a href="#TSQL-363"><span class="linenos">363</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="TSQL-364"><a href="#TSQL-364"><span class="linenos">364</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="TSQL-365"><a href="#TSQL-365"><span class="linenos">365</span></a> -</span><span id="TSQL-366"><a href="#TSQL-366"><span class="linenos">366</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="TSQL-367"><a href="#TSQL-367"><span class="linenos">367</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="TSQL-368"><a href="#TSQL-368"><span class="linenos">368</span></a> -</span><span id="TSQL-369"><a href="#TSQL-369"><span class="linenos">369</span></a> <span class="c1"># Retrieve length of datatype and override to default if not specified</span> -</span><span id="TSQL-370"><a href="#TSQL-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">to</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> -</span><span id="TSQL-371"><a href="#TSQL-371"><span class="linenos">371</span></a> <span class="n">to</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="n">to</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">30</span><span class="p">)],</span> <span class="n">nested</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="TSQL-372"><a href="#TSQL-372"><span class="linenos">372</span></a> -</span><span id="TSQL-373"><a href="#TSQL-373"><span class="linenos">373</span></a> <span class="c1"># Check whether a conversion with format is applicable</span> -</span><span id="TSQL-374"><a href="#TSQL-374"><span class="linenos">374</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> -</span><span id="TSQL-375"><a href="#TSQL-375"><span class="linenos">375</span></a> <span class="n">format_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="TSQL-376"><a href="#TSQL-376"><span class="linenos">376</span></a> <span class="n">format_val_name</span> <span class="o">=</span> <span class="n">format_val</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">format_val</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="TSQL-377"><a href="#TSQL-377"><span class="linenos">377</span></a> -</span><span id="TSQL-378"><a href="#TSQL-378"><span class="linenos">378</span></a> <span class="k">if</span> <span class="n">format_val_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">:</span> -</span><span id="TSQL-379"><a href="#TSQL-379"><span class="linenos">379</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> -</span><span id="TSQL-380"><a href="#TSQL-380"><span class="linenos">380</span></a> <span class="sa">f</span><span class="s2">"CONVERT function at T-SQL does not support format style </span><span class="si">{</span><span class="n">format_val_name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL-381"><a href="#TSQL-381"><span class="linenos">381</span></a> <span class="p">)</span> -</span><span id="TSQL-382"><a href="#TSQL-382"><span class="linenos">382</span></a> -</span><span id="TSQL-383"><a href="#TSQL-383"><span class="linenos">383</span></a> <span class="n">format_norm</span> <span class="o">=</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="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">[</span><span class="n">format_val_name</span><span class="p">])</span> -</span><span id="TSQL-384"><a href="#TSQL-384"><span class="linenos">384</span></a> -</span><span id="TSQL-385"><a href="#TSQL-385"><span class="linenos">385</span></a> <span class="c1"># Check whether the convert entails a string to date format</span> -</span><span id="TSQL-386"><a href="#TSQL-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> -</span><span id="TSQL-387"><a href="#TSQL-387"><span class="linenos">387</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">StrToDate</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="TSQL-388"><a href="#TSQL-388"><span class="linenos">388</span></a> <span class="c1"># Check whether the convert entails a string to datetime format</span> -</span><span id="TSQL-389"><a href="#TSQL-389"><span class="linenos">389</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> -</span><span id="TSQL-390"><a href="#TSQL-390"><span class="linenos">390</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">StrToTime</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="TSQL-391"><a href="#TSQL-391"><span class="linenos">391</span></a> <span class="c1"># Check whether the convert entails a date to string format</span> -</span><span id="TSQL-392"><a href="#TSQL-392"><span class="linenos">392</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> -</span><span id="TSQL-393"><a href="#TSQL-393"><span class="linenos">393</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><span id="TSQL-394"><a href="#TSQL-394"><span class="linenos">394</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">,</span> -</span><span id="TSQL-395"><a href="#TSQL-395"><span class="linenos">395</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> -</span><span id="TSQL-396"><a href="#TSQL-396"><span class="linenos">396</span></a> <span class="n">this</span><span class="o">=</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">),</span> -</span><span id="TSQL-397"><a href="#TSQL-397"><span class="linenos">397</span></a> <span class="p">)</span> -</span><span id="TSQL-398"><a href="#TSQL-398"><span class="linenos">398</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="TSQL-399"><a href="#TSQL-399"><span class="linenos">399</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="TSQL-400"><a href="#TSQL-400"><span class="linenos">400</span></a> -</span><span id="TSQL-401"><a href="#TSQL-401"><span class="linenos">401</span></a> <span class="c1"># Entails a simple cast without any format requirement</span> -</span><span id="TSQL-402"><a href="#TSQL-402"><span class="linenos">402</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="TSQL-403"><a href="#TSQL-403"><span class="linenos">403</span></a> -</span><span id="TSQL-404"><a href="#TSQL-404"><span class="linenos">404</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> -</span><span id="TSQL-405"><a href="#TSQL-405"><span class="linenos">405</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="TSQL-406"><a href="#TSQL-406"><span class="linenos">406</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="TSQL-407"><a href="#TSQL-407"><span class="linenos">407</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> -</span><span id="TSQL-408"><a href="#TSQL-408"><span class="linenos">408</span></a> -</span><span id="TSQL-409"><a href="#TSQL-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="TSQL-410"><a href="#TSQL-410"><span class="linenos">410</span></a> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span> -</span><span id="TSQL-411"><a href="#TSQL-411"><span class="linenos">411</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</span><span class="p">)</span> -</span><span id="TSQL-412"><a href="#TSQL-412"><span class="linenos">412</span></a> <span class="ow">or</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">ALIAS</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="TSQL-413"><a href="#TSQL-413"><span class="linenos">413</span></a> <span class="p">):</span> -</span><span id="TSQL-414"><a href="#TSQL-414"><span class="linenos">414</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="TSQL-415"><a href="#TSQL-415"><span class="linenos">415</span></a> -</span><span id="TSQL-416"><a href="#TSQL-416"><span class="linenos">416</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="TSQL-417"><a href="#TSQL-417"><span class="linenos">417</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">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="TSQL-418"><a href="#TSQL-418"><span class="linenos">418</span></a> -</span><span id="TSQL-419"><a href="#TSQL-419"><span class="linenos">419</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="TSQL-420"><a href="#TSQL-420"><span class="linenos">420</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="TSQL-421"><a href="#TSQL-421"><span class="linenos">421</span></a> -</span><span id="TSQL-422"><a href="#TSQL-422"><span class="linenos">422</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-423"><a href="#TSQL-423"><span class="linenos">423</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="TSQL-424"><a href="#TSQL-424"><span class="linenos">424</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="TSQL-425"><a href="#TSQL-425"><span class="linenos">425</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> -</span><span id="TSQL-426"><a href="#TSQL-426"><span class="linenos">426</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">DATETIME</span><span class="p">:</span> <span class="s2">"DATETIME2"</span><span class="p">,</span> -</span><span id="TSQL-427"><a href="#TSQL-427"><span class="linenos">427</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">VARIANT</span><span class="p">:</span> <span class="s2">"SQL_VARIANT"</span><span class="p">,</span> -</span><span id="TSQL-428"><a href="#TSQL-428"><span class="linenos">428</span></a> <span class="p">}</span> -</span><span id="TSQL-429"><a href="#TSQL-429"><span class="linenos">429</span></a> -</span><span id="TSQL-430"><a href="#TSQL-430"><span class="linenos">430</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL-431"><a href="#TSQL-431"><span class="linenos">431</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL-432"><a href="#TSQL-432"><span class="linenos">432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="TSQL-433"><a href="#TSQL-433"><span class="linenos">433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="TSQL-434"><a href="#TSQL-434"><span class="linenos">434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> -</span><span id="TSQL-435"><a href="#TSQL-435"><span class="linenos">435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> -</span><span id="TSQL-436"><a href="#TSQL-436"><span class="linenos">436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IIF"</span><span class="p">),</span> -</span><span id="TSQL-437"><a href="#TSQL-437"><span class="linenos">437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> -</span><span id="TSQL-438"><a href="#TSQL-438"><span class="linenos">438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> -</span><span id="TSQL-439"><a href="#TSQL-439"><span class="linenos">439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> -</span><span id="TSQL-440"><a href="#TSQL-440"><span class="linenos">440</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="TSQL-441"><a href="#TSQL-441"><span class="linenos">441</span></a> <span class="p">}</span> -</span><span id="TSQL-442"><a href="#TSQL-442"><span class="linenos">442</span></a> -</span><span id="TSQL-443"><a href="#TSQL-443"><span class="linenos">443</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">ReturnsProperty</span><span class="p">)</span> -</span><span id="TSQL-444"><a href="#TSQL-444"><span class="linenos">444</span></a> -</span><span id="TSQL-445"><a href="#TSQL-445"><span class="linenos">445</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="TSQL-446"><a href="#TSQL-446"><span class="linenos">446</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="TSQL-447"><a href="#TSQL-447"><span class="linenos">447</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> -</span><span id="TSQL-448"><a href="#TSQL-448"><span class="linenos">448</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> -</span><span id="TSQL-449"><a href="#TSQL-449"><span class="linenos">449</span></a> -</span><span id="TSQL-450"><a href="#TSQL-450"><span class="linenos">450</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> -</span><span id="TSQL-451"><a href="#TSQL-451"><span class="linenos">451</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> -</span><span id="TSQL-452"><a href="#TSQL-452"><span class="linenos">452</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL-453"><a href="#TSQL-453"><span class="linenos">453</span></a> -</span><span id="TSQL-454"><a href="#TSQL-454"><span class="linenos">454</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> -</span><span id="TSQL-455"><a href="#TSQL-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> -</span><span id="TSQL-456"><a href="#TSQL-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL-457"><a href="#TSQL-457"><span class="linenos">457</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> -</span><span id="TSQL-458"><a href="#TSQL-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL-459"><a href="#TSQL-459"><span class="linenos">459</span></a> -</span><span id="TSQL-460"><a href="#TSQL-460"><span class="linenos">460</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="TSQL-461"><a href="#TSQL-461"><span class="linenos">461</span></a> -</span><span id="TSQL-462"><a href="#TSQL-462"><span class="linenos">462</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="TSQL-463"><a href="#TSQL-463"><span class="linenos">463</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="TSQL-464"><a href="#TSQL-464"><span class="linenos">464</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="TSQL-465"><a href="#TSQL-465"><span class="linenos">465</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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><span id="TSQL-296"><a href="#TSQL-296"><span class="linenos">296</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="TSQL-297"><a href="#TSQL-297"><span class="linenos">297</span></a> <span class="s2">"SYSDATETIME"</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="TSQL-298"><a href="#TSQL-298"><span class="linenos">298</span></a> <span class="p">}</span> +</span><span id="TSQL-299"><a href="#TSQL-299"><span class="linenos">299</span></a> +</span><span id="TSQL-300"><a href="#TSQL-300"><span class="linenos">300</span></a> <span class="n">VAR_LENGTH_DATATYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-301"><a href="#TSQL-301"><span class="linenos">301</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="TSQL-302"><a href="#TSQL-302"><span class="linenos">302</span></a> <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="TSQL-303"><a href="#TSQL-303"><span class="linenos">303</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="TSQL-304"><a href="#TSQL-304"><span class="linenos">304</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="TSQL-305"><a href="#TSQL-305"><span class="linenos">305</span></a> <span class="p">}</span> +</span><span id="TSQL-306"><a href="#TSQL-306"><span class="linenos">306</span></a> +</span><span id="TSQL-307"><a href="#TSQL-307"><span class="linenos">307</span></a> <span class="n">RETURNS_TABLE_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL-308"><a href="#TSQL-308"><span class="linenos">308</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="TSQL-309"><a href="#TSQL-309"><span class="linenos">309</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL-310"><a href="#TSQL-310"><span class="linenos">310</span></a> <span class="p">}</span> +</span><span id="TSQL-311"><a href="#TSQL-311"><span class="linenos">311</span></a> +</span><span id="TSQL-312"><a href="#TSQL-312"><span class="linenos">312</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-313"><a href="#TSQL-313"><span class="linenos">313</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL-314"><a href="#TSQL-314"><span class="linenos">314</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_command</span><span class="p">(),</span> +</span><span id="TSQL-315"><a href="#TSQL-315"><span class="linenos">315</span></a> <span class="p">}</span> +</span><span id="TSQL-316"><a href="#TSQL-316"><span class="linenos">316</span></a> +</span><span id="TSQL-317"><a href="#TSQL-317"><span class="linenos">317</span></a> <span class="k">def</span> <span class="nf">_parse_system_time</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">Expression</span><span class="p">]:</span> +</span><span id="TSQL-318"><a href="#TSQL-318"><span class="linenos">318</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SYSTEM_TIME"</span><span class="p">):</span> +</span><span id="TSQL-319"><a href="#TSQL-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="TSQL-320"><a href="#TSQL-320"><span class="linenos">320</span></a> +</span><span id="TSQL-321"><a href="#TSQL-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"OF"</span><span class="p">):</span> +</span><span id="TSQL-322"><a href="#TSQL-322"><span class="linenos">322</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="TSQL-323"><a href="#TSQL-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <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 class="n">kind</span><span class="o">=</span><span class="s2">"AS OF"</span> +</span><span id="TSQL-324"><a href="#TSQL-324"><span class="linenos">324</span></a> <span class="p">)</span> +</span><span id="TSQL-325"><a href="#TSQL-325"><span class="linenos">325</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">)):</span> +</span><span id="TSQL-326"><a href="#TSQL-326"><span class="linenos">326</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="TSQL-327"><a href="#TSQL-327"><span class="linenos">327</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="TSQL-328"><a href="#TSQL-328"><span class="linenos">328</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">))</span> +</span><span id="TSQL-329"><a href="#TSQL-329"><span class="linenos">329</span></a> <span class="n">expression</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="TSQL-330"><a href="#TSQL-330"><span class="linenos">330</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="TSQL-331"><a href="#TSQL-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span> +</span><span id="TSQL-332"><a href="#TSQL-332"><span class="linenos">332</span></a> <span class="p">)</span> +</span><span id="TSQL-333"><a href="#TSQL-333"><span class="linenos">333</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONTAINED"</span><span class="p">,</span> <span class="s2">"IN"</span><span class="p">):</span> +</span><span id="TSQL-334"><a href="#TSQL-334"><span class="linenos">334</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="TSQL-335"><a href="#TSQL-335"><span class="linenos">335</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="TSQL-336"><a href="#TSQL-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> +</span><span id="TSQL-337"><a href="#TSQL-337"><span class="linenos">337</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="TSQL-338"><a href="#TSQL-338"><span class="linenos">338</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="TSQL-339"><a href="#TSQL-339"><span class="linenos">339</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"CONTAINED IN"</span><span class="p">,</span> +</span><span id="TSQL-340"><a href="#TSQL-340"><span class="linenos">340</span></a> <span class="p">)</span> +</span><span id="TSQL-341"><a href="#TSQL-341"><span class="linenos">341</span></a> <span class="k">elif</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">ALL</span><span class="p">):</span> +</span><span id="TSQL-342"><a href="#TSQL-342"><span class="linenos">342</span></a> <span class="n">system_time</span> <span class="o">=</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">SystemTime</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s2">"ALL"</span><span class="p">)</span> +</span><span id="TSQL-343"><a href="#TSQL-343"><span class="linenos">343</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="TSQL-344"><a href="#TSQL-344"><span class="linenos">344</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="TSQL-345"><a href="#TSQL-345"><span class="linenos">345</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unable to parse FOR SYSTEM_TIME clause"</span><span class="p">)</span> +</span><span id="TSQL-346"><a href="#TSQL-346"><span class="linenos">346</span></a> +</span><span id="TSQL-347"><a href="#TSQL-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="n">system_time</span> +</span><span id="TSQL-348"><a href="#TSQL-348"><span class="linenos">348</span></a> +</span><span id="TSQL-349"><a href="#TSQL-349"><span class="linenos">349</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="TSQL-350"><a href="#TSQL-350"><span class="linenos">350</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_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> +</span><span id="TSQL-351"><a href="#TSQL-351"><span class="linenos">351</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"system_time"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_system_time</span><span class="p">())</span> +</span><span id="TSQL-352"><a href="#TSQL-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="n">table</span> +</span><span id="TSQL-353"><a href="#TSQL-353"><span class="linenos">353</span></a> +</span><span id="TSQL-354"><a href="#TSQL-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="TSQL-355"><a href="#TSQL-355"><span class="linenos">355</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">RETURNS_TABLE_TOKENS</span><span class="p">)</span> +</span><span id="TSQL-356"><a href="#TSQL-356"><span class="linenos">356</span></a> <span class="n">returns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_returns</span><span class="p">()</span> +</span><span id="TSQL-357"><a href="#TSQL-357"><span class="linenos">357</span></a> <span class="n">returns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> +</span><span id="TSQL-358"><a href="#TSQL-358"><span class="linenos">358</span></a> <span class="k">return</span> <span class="n">returns</span> +</span><span id="TSQL-359"><a href="#TSQL-359"><span class="linenos">359</span></a> +</span><span id="TSQL-360"><a href="#TSQL-360"><span class="linenos">360</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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="TSQL-361"><a href="#TSQL-361"><span class="linenos">361</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="TSQL-362"><a href="#TSQL-362"><span class="linenos">362</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="TSQL-363"><a href="#TSQL-363"><span class="linenos">363</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="TSQL-364"><a href="#TSQL-364"><span class="linenos">364</span></a> +</span><span id="TSQL-365"><a href="#TSQL-365"><span class="linenos">365</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="TSQL-366"><a href="#TSQL-366"><span class="linenos">366</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="TSQL-367"><a href="#TSQL-367"><span class="linenos">367</span></a> +</span><span id="TSQL-368"><a href="#TSQL-368"><span class="linenos">368</span></a> <span class="c1"># Retrieve length of datatype and override to default if not specified</span> +</span><span id="TSQL-369"><a href="#TSQL-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">to</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> +</span><span id="TSQL-370"><a href="#TSQL-370"><span class="linenos">370</span></a> <span class="n">to</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="n">to</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">30</span><span class="p">)],</span> <span class="n">nested</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="TSQL-371"><a href="#TSQL-371"><span class="linenos">371</span></a> +</span><span id="TSQL-372"><a href="#TSQL-372"><span class="linenos">372</span></a> <span class="c1"># Check whether a conversion with format is applicable</span> +</span><span id="TSQL-373"><a href="#TSQL-373"><span class="linenos">373</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> +</span><span id="TSQL-374"><a href="#TSQL-374"><span class="linenos">374</span></a> <span class="n">format_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="TSQL-375"><a href="#TSQL-375"><span class="linenos">375</span></a> <span class="n">format_val_name</span> <span class="o">=</span> <span class="n">format_val</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">format_val</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="TSQL-376"><a href="#TSQL-376"><span class="linenos">376</span></a> +</span><span id="TSQL-377"><a href="#TSQL-377"><span class="linenos">377</span></a> <span class="k">if</span> <span class="n">format_val_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">:</span> +</span><span id="TSQL-378"><a href="#TSQL-378"><span class="linenos">378</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> +</span><span id="TSQL-379"><a href="#TSQL-379"><span class="linenos">379</span></a> <span class="sa">f</span><span class="s2">"CONVERT function at T-SQL does not support format style </span><span class="si">{</span><span class="n">format_val_name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL-380"><a href="#TSQL-380"><span class="linenos">380</span></a> <span class="p">)</span> +</span><span id="TSQL-381"><a href="#TSQL-381"><span class="linenos">381</span></a> +</span><span id="TSQL-382"><a href="#TSQL-382"><span class="linenos">382</span></a> <span class="n">format_norm</span> <span class="o">=</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="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">[</span><span class="n">format_val_name</span><span class="p">])</span> +</span><span id="TSQL-383"><a href="#TSQL-383"><span class="linenos">383</span></a> +</span><span id="TSQL-384"><a href="#TSQL-384"><span class="linenos">384</span></a> <span class="c1"># Check whether the convert entails a string to date format</span> +</span><span id="TSQL-385"><a href="#TSQL-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="TSQL-386"><a href="#TSQL-386"><span class="linenos">386</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">StrToDate</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="TSQL-387"><a href="#TSQL-387"><span class="linenos">387</span></a> <span class="c1"># Check whether the convert entails a string to datetime format</span> +</span><span id="TSQL-388"><a href="#TSQL-388"><span class="linenos">388</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> +</span><span id="TSQL-389"><a href="#TSQL-389"><span class="linenos">389</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">StrToTime</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="TSQL-390"><a href="#TSQL-390"><span class="linenos">390</span></a> <span class="c1"># Check whether the convert entails a date to string format</span> +</span><span id="TSQL-391"><a href="#TSQL-391"><span class="linenos">391</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> +</span><span id="TSQL-392"><a href="#TSQL-392"><span class="linenos">392</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><span id="TSQL-393"><a href="#TSQL-393"><span class="linenos">393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">,</span> +</span><span id="TSQL-394"><a href="#TSQL-394"><span class="linenos">394</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> +</span><span id="TSQL-395"><a href="#TSQL-395"><span class="linenos">395</span></a> <span class="n">this</span><span class="o">=</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">),</span> +</span><span id="TSQL-396"><a href="#TSQL-396"><span class="linenos">396</span></a> <span class="p">)</span> +</span><span id="TSQL-397"><a href="#TSQL-397"><span class="linenos">397</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> +</span><span id="TSQL-398"><a href="#TSQL-398"><span class="linenos">398</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="TSQL-399"><a href="#TSQL-399"><span class="linenos">399</span></a> +</span><span id="TSQL-400"><a href="#TSQL-400"><span class="linenos">400</span></a> <span class="c1"># Entails a simple cast without any format requirement</span> +</span><span id="TSQL-401"><a href="#TSQL-401"><span class="linenos">401</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="TSQL-402"><a href="#TSQL-402"><span class="linenos">402</span></a> +</span><span id="TSQL-403"><a href="#TSQL-403"><span class="linenos">403</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> +</span><span id="TSQL-404"><a href="#TSQL-404"><span class="linenos">404</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="TSQL-405"><a href="#TSQL-405"><span class="linenos">405</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="TSQL-406"><a href="#TSQL-406"><span class="linenos">406</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="TSQL-407"><a href="#TSQL-407"><span class="linenos">407</span></a> +</span><span id="TSQL-408"><a href="#TSQL-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="TSQL-409"><a href="#TSQL-409"><span class="linenos">409</span></a> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span> +</span><span id="TSQL-410"><a href="#TSQL-410"><span class="linenos">410</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</span><span class="p">)</span> +</span><span id="TSQL-411"><a href="#TSQL-411"><span class="linenos">411</span></a> <span class="ow">or</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">ALIAS</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="TSQL-412"><a href="#TSQL-412"><span class="linenos">412</span></a> <span class="p">):</span> +</span><span id="TSQL-413"><a href="#TSQL-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="TSQL-414"><a href="#TSQL-414"><span class="linenos">414</span></a> +</span><span id="TSQL-415"><a href="#TSQL-415"><span class="linenos">415</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="TSQL-416"><a href="#TSQL-416"><span class="linenos">416</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">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="TSQL-417"><a href="#TSQL-417"><span class="linenos">417</span></a> +</span><span id="TSQL-418"><a href="#TSQL-418"><span class="linenos">418</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="TSQL-419"><a href="#TSQL-419"><span class="linenos">419</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="TSQL-420"><a href="#TSQL-420"><span class="linenos">420</span></a> +</span><span id="TSQL-421"><a href="#TSQL-421"><span class="linenos">421</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-422"><a href="#TSQL-422"><span class="linenos">422</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="TSQL-423"><a href="#TSQL-423"><span class="linenos">423</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="TSQL-424"><a href="#TSQL-424"><span class="linenos">424</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> +</span><span id="TSQL-425"><a href="#TSQL-425"><span class="linenos">425</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">DATETIME</span><span class="p">:</span> <span class="s2">"DATETIME2"</span><span class="p">,</span> +</span><span id="TSQL-426"><a href="#TSQL-426"><span class="linenos">426</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">VARIANT</span><span class="p">:</span> <span class="s2">"SQL_VARIANT"</span><span class="p">,</span> +</span><span id="TSQL-427"><a href="#TSQL-427"><span class="linenos">427</span></a> <span class="p">}</span> +</span><span id="TSQL-428"><a href="#TSQL-428"><span class="linenos">428</span></a> +</span><span id="TSQL-429"><a href="#TSQL-429"><span class="linenos">429</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL-430"><a href="#TSQL-430"><span class="linenos">430</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL-431"><a href="#TSQL-431"><span class="linenos">431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> +</span><span id="TSQL-432"><a href="#TSQL-432"><span class="linenos">432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> +</span><span id="TSQL-433"><a href="#TSQL-433"><span class="linenos">433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> +</span><span id="TSQL-434"><a href="#TSQL-434"><span class="linenos">434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> +</span><span id="TSQL-435"><a href="#TSQL-435"><span class="linenos">435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IIF"</span><span class="p">),</span> +</span><span id="TSQL-436"><a href="#TSQL-436"><span class="linenos">436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> +</span><span id="TSQL-437"><a href="#TSQL-437"><span class="linenos">437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> +</span><span id="TSQL-438"><a href="#TSQL-438"><span class="linenos">438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> +</span><span id="TSQL-439"><a href="#TSQL-439"><span class="linenos">439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="TSQL-440"><a href="#TSQL-440"><span class="linenos">440</span></a> <span class="p">}</span> +</span><span id="TSQL-441"><a href="#TSQL-441"><span class="linenos">441</span></a> +</span><span id="TSQL-442"><a href="#TSQL-442"><span class="linenos">442</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">ReturnsProperty</span><span class="p">)</span> +</span><span id="TSQL-443"><a href="#TSQL-443"><span class="linenos">443</span></a> +</span><span id="TSQL-444"><a href="#TSQL-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="TSQL-445"><a href="#TSQL-445"><span class="linenos">445</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="TSQL-446"><a href="#TSQL-446"><span class="linenos">446</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> +</span><span id="TSQL-447"><a href="#TSQL-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> +</span><span id="TSQL-448"><a href="#TSQL-448"><span class="linenos">448</span></a> +</span><span id="TSQL-449"><a href="#TSQL-449"><span class="linenos">449</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> +</span><span id="TSQL-450"><a href="#TSQL-450"><span class="linenos">450</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> +</span><span id="TSQL-451"><a href="#TSQL-451"><span class="linenos">451</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL-452"><a href="#TSQL-452"><span class="linenos">452</span></a> +</span><span id="TSQL-453"><a href="#TSQL-453"><span class="linenos">453</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> +</span><span id="TSQL-454"><a href="#TSQL-454"><span class="linenos">454</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> +</span><span id="TSQL-455"><a href="#TSQL-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL-456"><a href="#TSQL-456"><span class="linenos">456</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> +</span><span id="TSQL-457"><a href="#TSQL-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL-458"><a href="#TSQL-458"><span class="linenos">458</span></a> +</span><span id="TSQL-459"><a href="#TSQL-459"><span class="linenos">459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="TSQL-460"><a href="#TSQL-460"><span class="linenos">460</span></a> +</span><span id="TSQL-461"><a href="#TSQL-461"><span class="linenos">461</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="TSQL-462"><a href="#TSQL-462"><span class="linenos">462</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="TSQL-463"><a href="#TSQL-463"><span class="linenos">463</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="TSQL-464"><a href="#TSQL-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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></pre></div> @@ -931,6 +931,7 @@ <dd id="TSQL.parse_into" class="function"><a href="dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="TSQL.generate" class="function"><a href="dialect.html#Dialect.generate">generate</a></dd> <dd id="TSQL.transpile" class="function"><a href="dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="TSQL.tokenize" class="function"><a href="dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="TSQL.parser" class="function"><a href="dialect.html#Dialect.parser">parser</a></dd> <dd id="TSQL.generator" class="function"><a href="dialect.html#Dialect.generator">generator</a></dd> @@ -949,38 +950,38 @@ </div> <a class="headerlink" href="#TSQL.Tokenizer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Tokenizer-245"><a href="#TSQL.Tokenizer-245"><span class="linenos">245</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> -</span><span id="TSQL.Tokenizer-246"><a href="#TSQL.Tokenizer-246"><span class="linenos">246</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Tokenizer-243"><a href="#TSQL.Tokenizer-243"><span class="linenos">243</span></a> <span class="k">class</span> <span class="nc">Tokenizer</span><span class="p">(</span><span class="n">tokens</span><span class="o">.</span><span class="n">Tokenizer</span><span class="p">):</span> +</span><span id="TSQL.Tokenizer-244"><a href="#TSQL.Tokenizer-244"><span class="linenos">244</span></a> <span class="n">IDENTIFIERS</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'"'</span><span class="p">,</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)]</span> +</span><span id="TSQL.Tokenizer-245"><a href="#TSQL.Tokenizer-245"><span class="linenos">245</span></a> +</span><span id="TSQL.Tokenizer-246"><a href="#TSQL.Tokenizer-246"><span class="linenos">246</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> </span><span id="TSQL.Tokenizer-247"><a href="#TSQL.Tokenizer-247"><span class="linenos">247</span></a> -</span><span id="TSQL.Tokenizer-248"><a href="#TSQL.Tokenizer-248"><span class="linenos">248</span></a> <span class="n">QUOTES</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"'"</span><span class="p">,</span> <span class="s1">'"'</span><span class="p">]</span> -</span><span id="TSQL.Tokenizer-249"><a href="#TSQL.Tokenizer-249"><span class="linenos">249</span></a> -</span><span id="TSQL.Tokenizer-250"><a href="#TSQL.Tokenizer-250"><span class="linenos">250</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL.Tokenizer-251"><a href="#TSQL.Tokenizer-251"><span class="linenos">251</span></a> <span class="o">**</span><span class="n">tokens</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="TSQL.Tokenizer-252"><a href="#TSQL.Tokenizer-252"><span class="linenos">252</span></a> <span class="s2">"DATETIME2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-253"><a href="#TSQL.Tokenizer-253"><span class="linenos">253</span></a> <span class="s2">"DATETIMEOFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-254"><a href="#TSQL.Tokenizer-254"><span class="linenos">254</span></a> <span class="s2">"DECLARE"</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="TSQL.Tokenizer-255"><a href="#TSQL.Tokenizer-255"><span class="linenos">255</span></a> <span class="s2">"IMAGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-256"><a href="#TSQL.Tokenizer-256"><span class="linenos">256</span></a> <span class="s2">"MONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-257"><a href="#TSQL.Tokenizer-257"><span class="linenos">257</span></a> <span class="s2">"NTEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-258"><a href="#TSQL.Tokenizer-258"><span class="linenos">258</span></a> <span class="s2">"NVARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-259"><a href="#TSQL.Tokenizer-259"><span class="linenos">259</span></a> <span class="s2">"PRINT"</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="TSQL.Tokenizer-260"><a href="#TSQL.Tokenizer-260"><span class="linenos">260</span></a> <span class="s2">"PROC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-261"><a href="#TSQL.Tokenizer-261"><span class="linenos">261</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-262"><a href="#TSQL.Tokenizer-262"><span class="linenos">262</span></a> <span class="s2">"ROWVERSION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-263"><a href="#TSQL.Tokenizer-263"><span class="linenos">263</span></a> <span class="s2">"SMALLDATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-264"><a href="#TSQL.Tokenizer-264"><span class="linenos">264</span></a> <span class="s2">"SMALLMONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-265"><a href="#TSQL.Tokenizer-265"><span class="linenos">265</span></a> <span class="s2">"SQL_VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-266"><a href="#TSQL.Tokenizer-266"><span class="linenos">266</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-267"><a href="#TSQL.Tokenizer-267"><span class="linenos">267</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="TSQL.Tokenizer-268"><a href="#TSQL.Tokenizer-268"><span class="linenos">268</span></a> <span class="s2">"UNIQUEIDENTIFIER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-269"><a href="#TSQL.Tokenizer-269"><span class="linenos">269</span></a> <span class="s2">"VARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-270"><a href="#TSQL.Tokenizer-270"><span class="linenos">270</span></a> <span class="s2">"XML"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> -</span><span id="TSQL.Tokenizer-271"><a href="#TSQL.Tokenizer-271"><span class="linenos">271</span></a> <span class="p">}</span> -</span><span id="TSQL.Tokenizer-272"><a href="#TSQL.Tokenizer-272"><span class="linenos">272</span></a> -</span><span id="TSQL.Tokenizer-273"><a href="#TSQL.Tokenizer-273"><span class="linenos">273</span></a> <span class="c1"># TSQL allows @, # to appear as a variable/identifier prefix</span> -</span><span id="TSQL.Tokenizer-274"><a href="#TSQL.Tokenizer-274"><span class="linenos">274</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">tokens</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="TSQL.Tokenizer-275"><a href="#TSQL.Tokenizer-275"><span class="linenos">275</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="TSQL.Tokenizer-276"><a href="#TSQL.Tokenizer-276"><span class="linenos">276</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="TSQL.Tokenizer-248"><a href="#TSQL.Tokenizer-248"><span class="linenos">248</span></a> <span class="n">KEYWORDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL.Tokenizer-249"><a href="#TSQL.Tokenizer-249"><span class="linenos">249</span></a> <span class="o">**</span><span class="n">tokens</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="TSQL.Tokenizer-250"><a href="#TSQL.Tokenizer-250"><span class="linenos">250</span></a> <span class="s2">"DATETIME2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-251"><a href="#TSQL.Tokenizer-251"><span class="linenos">251</span></a> <span class="s2">"DATETIMEOFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-252"><a href="#TSQL.Tokenizer-252"><span class="linenos">252</span></a> <span class="s2">"DECLARE"</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="TSQL.Tokenizer-253"><a href="#TSQL.Tokenizer-253"><span class="linenos">253</span></a> <span class="s2">"IMAGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-254"><a href="#TSQL.Tokenizer-254"><span class="linenos">254</span></a> <span class="s2">"MONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-255"><a href="#TSQL.Tokenizer-255"><span class="linenos">255</span></a> <span class="s2">"NTEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-256"><a href="#TSQL.Tokenizer-256"><span class="linenos">256</span></a> <span class="s2">"NVARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-257"><a href="#TSQL.Tokenizer-257"><span class="linenos">257</span></a> <span class="s2">"PRINT"</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="TSQL.Tokenizer-258"><a href="#TSQL.Tokenizer-258"><span class="linenos">258</span></a> <span class="s2">"PROC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-259"><a href="#TSQL.Tokenizer-259"><span class="linenos">259</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-260"><a href="#TSQL.Tokenizer-260"><span class="linenos">260</span></a> <span class="s2">"ROWVERSION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-261"><a href="#TSQL.Tokenizer-261"><span class="linenos">261</span></a> <span class="s2">"SMALLDATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-262"><a href="#TSQL.Tokenizer-262"><span class="linenos">262</span></a> <span class="s2">"SMALLMONEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-263"><a href="#TSQL.Tokenizer-263"><span class="linenos">263</span></a> <span class="s2">"SQL_VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-264"><a href="#TSQL.Tokenizer-264"><span class="linenos">264</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-265"><a href="#TSQL.Tokenizer-265"><span class="linenos">265</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="TSQL.Tokenizer-266"><a href="#TSQL.Tokenizer-266"><span class="linenos">266</span></a> <span class="s2">"UNIQUEIDENTIFIER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-267"><a href="#TSQL.Tokenizer-267"><span class="linenos">267</span></a> <span class="s2">"VARCHAR(MAX)"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-268"><a href="#TSQL.Tokenizer-268"><span class="linenos">268</span></a> <span class="s2">"XML"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> +</span><span id="TSQL.Tokenizer-269"><a href="#TSQL.Tokenizer-269"><span class="linenos">269</span></a> <span class="p">}</span> +</span><span id="TSQL.Tokenizer-270"><a href="#TSQL.Tokenizer-270"><span class="linenos">270</span></a> +</span><span id="TSQL.Tokenizer-271"><a href="#TSQL.Tokenizer-271"><span class="linenos">271</span></a> <span class="c1"># TSQL allows @, # to appear as a variable/identifier prefix</span> +</span><span id="TSQL.Tokenizer-272"><a href="#TSQL.Tokenizer-272"><span class="linenos">272</span></a> <span class="n">SINGLE_TOKENS</span> <span class="o">=</span> <span class="n">tokens</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="TSQL.Tokenizer-273"><a href="#TSQL.Tokenizer-273"><span class="linenos">273</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="TSQL.Tokenizer-274"><a href="#TSQL.Tokenizer-274"><span class="linenos">274</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> @@ -1008,146 +1009,147 @@ </div> <a class="headerlink" href="#TSQL.Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Parser-278"><a href="#TSQL.Parser-278"><span class="linenos">278</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> -</span><span id="TSQL.Parser-279"><a href="#TSQL.Parser-279"><span class="linenos">279</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL.Parser-280"><a href="#TSQL.Parser-280"><span class="linenos">280</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL.Parser-281"><a href="#TSQL.Parser-281"><span class="linenos">281</span></a> <span class="s2">"CHARINDEX"</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">StrPosition</span><span class="p">(</span> -</span><span id="TSQL.Parser-282"><a href="#TSQL.Parser-282"><span class="linenos">282</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">1</span><span class="p">),</span> -</span><span id="TSQL.Parser-283"><a href="#TSQL.Parser-283"><span class="linenos">283</span></a> <span class="n">substr</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="TSQL.Parser-284"><a href="#TSQL.Parser-284"><span class="linenos">284</span></a> <span class="n">position</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="TSQL.Parser-285"><a href="#TSQL.Parser-285"><span class="linenos">285</span></a> <span class="p">),</span> -</span><span id="TSQL.Parser-286"><a href="#TSQL.Parser-286"><span class="linenos">286</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="TSQL.Parser-287"><a href="#TSQL.Parser-287"><span class="linenos">287</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> -</span><span id="TSQL.Parser-288"><a href="#TSQL.Parser-288"><span class="linenos">288</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> -</span><span id="TSQL.Parser-289"><a href="#TSQL.Parser-289"><span class="linenos">289</span></a> <span class="s2">"DATENAME"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="n">full_format_mapping</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="TSQL.Parser-290"><a href="#TSQL.Parser-290"><span class="linenos">290</span></a> <span class="s2">"DATEPART"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">),</span> -</span><span id="TSQL.Parser-291"><a href="#TSQL.Parser-291"><span class="linenos">291</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="TSQL.Parser-292"><a href="#TSQL.Parser-292"><span class="linenos">292</span></a> <span class="s2">"SYSDATETIME"</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="TSQL.Parser-293"><a href="#TSQL.Parser-293"><span class="linenos">293</span></a> <span class="s2">"IIF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Parser-276"><a href="#TSQL.Parser-276"><span class="linenos">276</span></a> <span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="p">):</span> +</span><span id="TSQL.Parser-277"><a href="#TSQL.Parser-277"><span class="linenos">277</span></a> <span class="n">FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL.Parser-278"><a href="#TSQL.Parser-278"><span class="linenos">278</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL.Parser-279"><a href="#TSQL.Parser-279"><span class="linenos">279</span></a> <span class="s2">"CHARINDEX"</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">StrPosition</span><span class="p">(</span> +</span><span id="TSQL.Parser-280"><a href="#TSQL.Parser-280"><span class="linenos">280</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">1</span><span class="p">),</span> +</span><span id="TSQL.Parser-281"><a href="#TSQL.Parser-281"><span class="linenos">281</span></a> <span class="n">substr</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="TSQL.Parser-282"><a href="#TSQL.Parser-282"><span class="linenos">282</span></a> <span class="n">position</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="TSQL.Parser-283"><a href="#TSQL.Parser-283"><span class="linenos">283</span></a> <span class="p">),</span> +</span><span id="TSQL.Parser-284"><a href="#TSQL.Parser-284"><span class="linenos">284</span></a> <span class="s2">"DATEADD"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> +</span><span id="TSQL.Parser-285"><a href="#TSQL.Parser-285"><span class="linenos">285</span></a> <span class="s2">"DATEDIFF"</span><span class="p">:</span> <span class="n">parse_date_delta</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">,</span> <span class="n">unit_mapping</span><span class="o">=</span><span class="n">DATE_DELTA_INTERVAL</span><span class="p">),</span> +</span><span id="TSQL.Parser-286"><a href="#TSQL.Parser-286"><span class="linenos">286</span></a> <span class="s2">"DATENAME"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">,</span> <span class="n">full_format_mapping</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="TSQL.Parser-287"><a href="#TSQL.Parser-287"><span class="linenos">287</span></a> <span class="s2">"DATEPART"</span><span class="p">:</span> <span class="n">_format_time_lambda</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">),</span> +</span><span id="TSQL.Parser-288"><a href="#TSQL.Parser-288"><span class="linenos">288</span></a> <span class="s2">"EOMONTH"</span><span class="p">:</span> <span class="n">_parse_eomonth</span><span class="p">,</span> +</span><span id="TSQL.Parser-289"><a href="#TSQL.Parser-289"><span class="linenos">289</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">_parse_format</span><span class="p">,</span> +</span><span id="TSQL.Parser-290"><a href="#TSQL.Parser-290"><span class="linenos">290</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="TSQL.Parser-291"><a href="#TSQL.Parser-291"><span class="linenos">291</span></a> <span class="s2">"IIF"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="TSQL.Parser-292"><a href="#TSQL.Parser-292"><span class="linenos">292</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="TSQL.Parser-293"><a href="#TSQL.Parser-293"><span class="linenos">293</span></a> <span class="s2">"JSON_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> </span><span id="TSQL.Parser-294"><a href="#TSQL.Parser-294"><span class="linenos">294</span></a> <span class="s2">"LEN"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Length</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> </span><span id="TSQL.Parser-295"><a href="#TSQL.Parser-295"><span class="linenos">295</span></a> <span class="s2">"REPLICATE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Repeat</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="TSQL.Parser-296"><a href="#TSQL.Parser-296"><span class="linenos">296</span></a> <span class="s2">"JSON_VALUE"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="TSQL.Parser-297"><a href="#TSQL.Parser-297"><span class="linenos">297</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">_parse_format</span><span class="p">,</span> -</span><span id="TSQL.Parser-298"><a href="#TSQL.Parser-298"><span class="linenos">298</span></a> <span class="s2">"EOMONTH"</span><span class="p">:</span> <span class="n">_parse_eomonth</span><span class="p">,</span> -</span><span id="TSQL.Parser-299"><a href="#TSQL.Parser-299"><span class="linenos">299</span></a> <span class="p">}</span> -</span><span id="TSQL.Parser-300"><a href="#TSQL.Parser-300"><span class="linenos">300</span></a> -</span><span id="TSQL.Parser-301"><a href="#TSQL.Parser-301"><span class="linenos">301</span></a> <span class="n">VAR_LENGTH_DATATYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL.Parser-302"><a href="#TSQL.Parser-302"><span class="linenos">302</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="TSQL.Parser-303"><a href="#TSQL.Parser-303"><span class="linenos">303</span></a> <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="TSQL.Parser-304"><a href="#TSQL.Parser-304"><span class="linenos">304</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="TSQL.Parser-305"><a href="#TSQL.Parser-305"><span class="linenos">305</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="TSQL.Parser-306"><a href="#TSQL.Parser-306"><span class="linenos">306</span></a> <span class="p">}</span> -</span><span id="TSQL.Parser-307"><a href="#TSQL.Parser-307"><span class="linenos">307</span></a> -</span><span id="TSQL.Parser-308"><a href="#TSQL.Parser-308"><span class="linenos">308</span></a> <span class="n">RETURNS_TABLE_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL.Parser-309"><a href="#TSQL.Parser-309"><span class="linenos">309</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="TSQL.Parser-310"><a href="#TSQL.Parser-310"><span class="linenos">310</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL.Parser-311"><a href="#TSQL.Parser-311"><span class="linenos">311</span></a> <span class="p">}</span> -</span><span id="TSQL.Parser-312"><a href="#TSQL.Parser-312"><span class="linenos">312</span></a> -</span><span id="TSQL.Parser-313"><a href="#TSQL.Parser-313"><span class="linenos">313</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL.Parser-314"><a href="#TSQL.Parser-314"><span class="linenos">314</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL.Parser-315"><a href="#TSQL.Parser-315"><span class="linenos">315</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_command</span><span class="p">(),</span> -</span><span id="TSQL.Parser-316"><a href="#TSQL.Parser-316"><span class="linenos">316</span></a> <span class="p">}</span> -</span><span id="TSQL.Parser-317"><a href="#TSQL.Parser-317"><span class="linenos">317</span></a> -</span><span id="TSQL.Parser-318"><a href="#TSQL.Parser-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">_parse_system_time</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">Expression</span><span class="p">]:</span> -</span><span id="TSQL.Parser-319"><a href="#TSQL.Parser-319"><span class="linenos">319</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SYSTEM_TIME"</span><span class="p">):</span> -</span><span id="TSQL.Parser-320"><a href="#TSQL.Parser-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="TSQL.Parser-321"><a href="#TSQL.Parser-321"><span class="linenos">321</span></a> -</span><span id="TSQL.Parser-322"><a href="#TSQL.Parser-322"><span class="linenos">322</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"OF"</span><span class="p">):</span> -</span><span id="TSQL.Parser-323"><a href="#TSQL.Parser-323"><span class="linenos">323</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="TSQL.Parser-324"><a href="#TSQL.Parser-324"><span class="linenos">324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <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 class="n">kind</span><span class="o">=</span><span class="s2">"AS OF"</span> -</span><span id="TSQL.Parser-325"><a href="#TSQL.Parser-325"><span class="linenos">325</span></a> <span class="p">)</span> -</span><span id="TSQL.Parser-326"><a href="#TSQL.Parser-326"><span class="linenos">326</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">)):</span> -</span><span id="TSQL.Parser-327"><a href="#TSQL.Parser-327"><span class="linenos">327</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="TSQL.Parser-328"><a href="#TSQL.Parser-328"><span class="linenos">328</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="TSQL.Parser-329"><a href="#TSQL.Parser-329"><span class="linenos">329</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">))</span> -</span><span id="TSQL.Parser-330"><a href="#TSQL.Parser-330"><span class="linenos">330</span></a> <span class="n">expression</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="TSQL.Parser-331"><a href="#TSQL.Parser-331"><span class="linenos">331</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="TSQL.Parser-332"><a href="#TSQL.Parser-332"><span class="linenos">332</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span> -</span><span id="TSQL.Parser-333"><a href="#TSQL.Parser-333"><span class="linenos">333</span></a> <span class="p">)</span> -</span><span id="TSQL.Parser-334"><a href="#TSQL.Parser-334"><span class="linenos">334</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONTAINED"</span><span class="p">,</span> <span class="s2">"IN"</span><span class="p">):</span> -</span><span id="TSQL.Parser-335"><a href="#TSQL.Parser-335"><span class="linenos">335</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="TSQL.Parser-336"><a href="#TSQL.Parser-336"><span class="linenos">336</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="TSQL.Parser-337"><a href="#TSQL.Parser-337"><span class="linenos">337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> -</span><span id="TSQL.Parser-338"><a href="#TSQL.Parser-338"><span class="linenos">338</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="TSQL.Parser-339"><a href="#TSQL.Parser-339"><span class="linenos">339</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="TSQL.Parser-340"><a href="#TSQL.Parser-340"><span class="linenos">340</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"CONTAINED IN"</span><span class="p">,</span> -</span><span id="TSQL.Parser-341"><a href="#TSQL.Parser-341"><span class="linenos">341</span></a> <span class="p">)</span> -</span><span id="TSQL.Parser-342"><a href="#TSQL.Parser-342"><span class="linenos">342</span></a> <span class="k">elif</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">ALL</span><span class="p">):</span> -</span><span id="TSQL.Parser-343"><a href="#TSQL.Parser-343"><span class="linenos">343</span></a> <span class="n">system_time</span> <span class="o">=</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">SystemTime</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s2">"ALL"</span><span class="p">)</span> -</span><span id="TSQL.Parser-344"><a href="#TSQL.Parser-344"><span class="linenos">344</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="TSQL.Parser-345"><a href="#TSQL.Parser-345"><span class="linenos">345</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="TSQL.Parser-346"><a href="#TSQL.Parser-346"><span class="linenos">346</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unable to parse FOR SYSTEM_TIME clause"</span><span class="p">)</span> -</span><span id="TSQL.Parser-347"><a href="#TSQL.Parser-347"><span class="linenos">347</span></a> -</span><span id="TSQL.Parser-348"><a href="#TSQL.Parser-348"><span class="linenos">348</span></a> <span class="k">return</span> <span class="n">system_time</span> -</span><span id="TSQL.Parser-349"><a href="#TSQL.Parser-349"><span class="linenos">349</span></a> -</span><span id="TSQL.Parser-350"><a href="#TSQL.Parser-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="TSQL.Parser-351"><a href="#TSQL.Parser-351"><span class="linenos">351</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_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> -</span><span id="TSQL.Parser-352"><a href="#TSQL.Parser-352"><span class="linenos">352</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"system_time"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_system_time</span><span class="p">())</span> -</span><span id="TSQL.Parser-353"><a href="#TSQL.Parser-353"><span class="linenos">353</span></a> <span class="k">return</span> <span class="n">table</span> -</span><span id="TSQL.Parser-354"><a href="#TSQL.Parser-354"><span class="linenos">354</span></a> -</span><span id="TSQL.Parser-355"><a href="#TSQL.Parser-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="TSQL.Parser-356"><a href="#TSQL.Parser-356"><span class="linenos">356</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">RETURNS_TABLE_TOKENS</span><span class="p">)</span> -</span><span id="TSQL.Parser-357"><a href="#TSQL.Parser-357"><span class="linenos">357</span></a> <span class="n">returns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_returns</span><span class="p">()</span> -</span><span id="TSQL.Parser-358"><a href="#TSQL.Parser-358"><span class="linenos">358</span></a> <span class="n">returns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> -</span><span id="TSQL.Parser-359"><a href="#TSQL.Parser-359"><span class="linenos">359</span></a> <span class="k">return</span> <span class="n">returns</span> -</span><span id="TSQL.Parser-360"><a href="#TSQL.Parser-360"><span class="linenos">360</span></a> -</span><span id="TSQL.Parser-361"><a href="#TSQL.Parser-361"><span class="linenos">361</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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="TSQL.Parser-362"><a href="#TSQL.Parser-362"><span class="linenos">362</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="TSQL.Parser-363"><a href="#TSQL.Parser-363"><span class="linenos">363</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="TSQL.Parser-364"><a href="#TSQL.Parser-364"><span class="linenos">364</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="TSQL.Parser-365"><a href="#TSQL.Parser-365"><span class="linenos">365</span></a> -</span><span id="TSQL.Parser-366"><a href="#TSQL.Parser-366"><span class="linenos">366</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="TSQL.Parser-367"><a href="#TSQL.Parser-367"><span class="linenos">367</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="TSQL.Parser-368"><a href="#TSQL.Parser-368"><span class="linenos">368</span></a> -</span><span id="TSQL.Parser-369"><a href="#TSQL.Parser-369"><span class="linenos">369</span></a> <span class="c1"># Retrieve length of datatype and override to default if not specified</span> -</span><span id="TSQL.Parser-370"><a href="#TSQL.Parser-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">to</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> -</span><span id="TSQL.Parser-371"><a href="#TSQL.Parser-371"><span class="linenos">371</span></a> <span class="n">to</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="n">to</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">30</span><span class="p">)],</span> <span class="n">nested</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="TSQL.Parser-372"><a href="#TSQL.Parser-372"><span class="linenos">372</span></a> -</span><span id="TSQL.Parser-373"><a href="#TSQL.Parser-373"><span class="linenos">373</span></a> <span class="c1"># Check whether a conversion with format is applicable</span> -</span><span id="TSQL.Parser-374"><a href="#TSQL.Parser-374"><span class="linenos">374</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> -</span><span id="TSQL.Parser-375"><a href="#TSQL.Parser-375"><span class="linenos">375</span></a> <span class="n">format_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="TSQL.Parser-376"><a href="#TSQL.Parser-376"><span class="linenos">376</span></a> <span class="n">format_val_name</span> <span class="o">=</span> <span class="n">format_val</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">format_val</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="TSQL.Parser-377"><a href="#TSQL.Parser-377"><span class="linenos">377</span></a> -</span><span id="TSQL.Parser-378"><a href="#TSQL.Parser-378"><span class="linenos">378</span></a> <span class="k">if</span> <span class="n">format_val_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">:</span> -</span><span id="TSQL.Parser-379"><a href="#TSQL.Parser-379"><span class="linenos">379</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> -</span><span id="TSQL.Parser-380"><a href="#TSQL.Parser-380"><span class="linenos">380</span></a> <span class="sa">f</span><span class="s2">"CONVERT function at T-SQL does not support format style </span><span class="si">{</span><span class="n">format_val_name</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Parser-381"><a href="#TSQL.Parser-381"><span class="linenos">381</span></a> <span class="p">)</span> -</span><span id="TSQL.Parser-382"><a href="#TSQL.Parser-382"><span class="linenos">382</span></a> -</span><span id="TSQL.Parser-383"><a href="#TSQL.Parser-383"><span class="linenos">383</span></a> <span class="n">format_norm</span> <span class="o">=</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="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">[</span><span class="n">format_val_name</span><span class="p">])</span> -</span><span id="TSQL.Parser-384"><a href="#TSQL.Parser-384"><span class="linenos">384</span></a> -</span><span id="TSQL.Parser-385"><a href="#TSQL.Parser-385"><span class="linenos">385</span></a> <span class="c1"># Check whether the convert entails a string to date format</span> -</span><span id="TSQL.Parser-386"><a href="#TSQL.Parser-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> -</span><span id="TSQL.Parser-387"><a href="#TSQL.Parser-387"><span class="linenos">387</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">StrToDate</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="TSQL.Parser-388"><a href="#TSQL.Parser-388"><span class="linenos">388</span></a> <span class="c1"># Check whether the convert entails a string to datetime format</span> -</span><span id="TSQL.Parser-389"><a href="#TSQL.Parser-389"><span class="linenos">389</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> -</span><span id="TSQL.Parser-390"><a href="#TSQL.Parser-390"><span class="linenos">390</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">StrToTime</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="TSQL.Parser-391"><a href="#TSQL.Parser-391"><span class="linenos">391</span></a> <span class="c1"># Check whether the convert entails a date to string format</span> -</span><span id="TSQL.Parser-392"><a href="#TSQL.Parser-392"><span class="linenos">392</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> -</span><span id="TSQL.Parser-393"><a href="#TSQL.Parser-393"><span class="linenos">393</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><span id="TSQL.Parser-394"><a href="#TSQL.Parser-394"><span class="linenos">394</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">,</span> -</span><span id="TSQL.Parser-395"><a href="#TSQL.Parser-395"><span class="linenos">395</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> -</span><span id="TSQL.Parser-396"><a href="#TSQL.Parser-396"><span class="linenos">396</span></a> <span class="n">this</span><span class="o">=</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">),</span> -</span><span id="TSQL.Parser-397"><a href="#TSQL.Parser-397"><span class="linenos">397</span></a> <span class="p">)</span> -</span><span id="TSQL.Parser-398"><a href="#TSQL.Parser-398"><span class="linenos">398</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> -</span><span id="TSQL.Parser-399"><a href="#TSQL.Parser-399"><span class="linenos">399</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> -</span><span id="TSQL.Parser-400"><a href="#TSQL.Parser-400"><span class="linenos">400</span></a> -</span><span id="TSQL.Parser-401"><a href="#TSQL.Parser-401"><span class="linenos">401</span></a> <span class="c1"># Entails a simple cast without any format requirement</span> -</span><span id="TSQL.Parser-402"><a href="#TSQL.Parser-402"><span class="linenos">402</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="TSQL.Parser-403"><a href="#TSQL.Parser-403"><span class="linenos">403</span></a> -</span><span id="TSQL.Parser-404"><a href="#TSQL.Parser-404"><span class="linenos">404</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> -</span><span id="TSQL.Parser-405"><a href="#TSQL.Parser-405"><span class="linenos">405</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="TSQL.Parser-406"><a href="#TSQL.Parser-406"><span class="linenos">406</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="TSQL.Parser-407"><a href="#TSQL.Parser-407"><span class="linenos">407</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> -</span><span id="TSQL.Parser-408"><a href="#TSQL.Parser-408"><span class="linenos">408</span></a> -</span><span id="TSQL.Parser-409"><a href="#TSQL.Parser-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="TSQL.Parser-410"><a href="#TSQL.Parser-410"><span class="linenos">410</span></a> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span> -</span><span id="TSQL.Parser-411"><a href="#TSQL.Parser-411"><span class="linenos">411</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</span><span class="p">)</span> -</span><span id="TSQL.Parser-412"><a href="#TSQL.Parser-412"><span class="linenos">412</span></a> <span class="ow">or</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">ALIAS</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="TSQL.Parser-413"><a href="#TSQL.Parser-413"><span class="linenos">413</span></a> <span class="p">):</span> -</span><span id="TSQL.Parser-414"><a href="#TSQL.Parser-414"><span class="linenos">414</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="TSQL.Parser-415"><a href="#TSQL.Parser-415"><span class="linenos">415</span></a> -</span><span id="TSQL.Parser-416"><a href="#TSQL.Parser-416"><span class="linenos">416</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="TSQL.Parser-417"><a href="#TSQL.Parser-417"><span class="linenos">417</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">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="TSQL.Parser-296"><a href="#TSQL.Parser-296"><span class="linenos">296</span></a> <span class="s2">"SQUARE"</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">Pow</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">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">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="TSQL.Parser-297"><a href="#TSQL.Parser-297"><span class="linenos">297</span></a> <span class="s2">"SYSDATETIME"</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="TSQL.Parser-298"><a href="#TSQL.Parser-298"><span class="linenos">298</span></a> <span class="p">}</span> +</span><span id="TSQL.Parser-299"><a href="#TSQL.Parser-299"><span class="linenos">299</span></a> +</span><span id="TSQL.Parser-300"><a href="#TSQL.Parser-300"><span class="linenos">300</span></a> <span class="n">VAR_LENGTH_DATATYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL.Parser-301"><a href="#TSQL.Parser-301"><span class="linenos">301</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="TSQL.Parser-302"><a href="#TSQL.Parser-302"><span class="linenos">302</span></a> <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="TSQL.Parser-303"><a href="#TSQL.Parser-303"><span class="linenos">303</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="TSQL.Parser-304"><a href="#TSQL.Parser-304"><span class="linenos">304</span></a> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="TSQL.Parser-305"><a href="#TSQL.Parser-305"><span class="linenos">305</span></a> <span class="p">}</span> +</span><span id="TSQL.Parser-306"><a href="#TSQL.Parser-306"><span class="linenos">306</span></a> +</span><span id="TSQL.Parser-307"><a href="#TSQL.Parser-307"><span class="linenos">307</span></a> <span class="n">RETURNS_TABLE_TOKENS</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL.Parser-308"><a href="#TSQL.Parser-308"><span class="linenos">308</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="TSQL.Parser-309"><a href="#TSQL.Parser-309"><span class="linenos">309</span></a> <span class="o">*</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL.Parser-310"><a href="#TSQL.Parser-310"><span class="linenos">310</span></a> <span class="p">}</span> +</span><span id="TSQL.Parser-311"><a href="#TSQL.Parser-311"><span class="linenos">311</span></a> +</span><span id="TSQL.Parser-312"><a href="#TSQL.Parser-312"><span class="linenos">312</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL.Parser-313"><a href="#TSQL.Parser-313"><span class="linenos">313</span></a> <span class="o">**</span><span class="n">parser</span><span class="o">.</span><span class="n">Parser</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL.Parser-314"><a href="#TSQL.Parser-314"><span class="linenos">314</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_command</span><span class="p">(),</span> +</span><span id="TSQL.Parser-315"><a href="#TSQL.Parser-315"><span class="linenos">315</span></a> <span class="p">}</span> +</span><span id="TSQL.Parser-316"><a href="#TSQL.Parser-316"><span class="linenos">316</span></a> +</span><span id="TSQL.Parser-317"><a href="#TSQL.Parser-317"><span class="linenos">317</span></a> <span class="k">def</span> <span class="nf">_parse_system_time</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">Expression</span><span class="p">]:</span> +</span><span id="TSQL.Parser-318"><a href="#TSQL.Parser-318"><span class="linenos">318</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SYSTEM_TIME"</span><span class="p">):</span> +</span><span id="TSQL.Parser-319"><a href="#TSQL.Parser-319"><span class="linenos">319</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="TSQL.Parser-320"><a href="#TSQL.Parser-320"><span class="linenos">320</span></a> +</span><span id="TSQL.Parser-321"><a href="#TSQL.Parser-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"OF"</span><span class="p">):</span> +</span><span id="TSQL.Parser-322"><a href="#TSQL.Parser-322"><span class="linenos">322</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="TSQL.Parser-323"><a href="#TSQL.Parser-323"><span class="linenos">323</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <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 class="n">kind</span><span class="o">=</span><span class="s2">"AS OF"</span> +</span><span id="TSQL.Parser-324"><a href="#TSQL.Parser-324"><span class="linenos">324</span></a> <span class="p">)</span> +</span><span id="TSQL.Parser-325"><a href="#TSQL.Parser-325"><span class="linenos">325</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">)):</span> +</span><span id="TSQL.Parser-326"><a href="#TSQL.Parser-326"><span class="linenos">326</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="TSQL.Parser-327"><a href="#TSQL.Parser-327"><span class="linenos">327</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="TSQL.Parser-328"><a href="#TSQL.Parser-328"><span class="linenos">328</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">))</span> +</span><span id="TSQL.Parser-329"><a href="#TSQL.Parser-329"><span class="linenos">329</span></a> <span class="n">expression</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="TSQL.Parser-330"><a href="#TSQL.Parser-330"><span class="linenos">330</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="TSQL.Parser-331"><a href="#TSQL.Parser-331"><span class="linenos">331</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span> +</span><span id="TSQL.Parser-332"><a href="#TSQL.Parser-332"><span class="linenos">332</span></a> <span class="p">)</span> +</span><span id="TSQL.Parser-333"><a href="#TSQL.Parser-333"><span class="linenos">333</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONTAINED"</span><span class="p">,</span> <span class="s2">"IN"</span><span class="p">):</span> +</span><span id="TSQL.Parser-334"><a href="#TSQL.Parser-334"><span class="linenos">334</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="TSQL.Parser-335"><a href="#TSQL.Parser-335"><span class="linenos">335</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="TSQL.Parser-336"><a href="#TSQL.Parser-336"><span class="linenos">336</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SystemTime</span><span class="p">,</span> +</span><span id="TSQL.Parser-337"><a href="#TSQL.Parser-337"><span class="linenos">337</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="TSQL.Parser-338"><a href="#TSQL.Parser-338"><span class="linenos">338</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="TSQL.Parser-339"><a href="#TSQL.Parser-339"><span class="linenos">339</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"CONTAINED IN"</span><span class="p">,</span> +</span><span id="TSQL.Parser-340"><a href="#TSQL.Parser-340"><span class="linenos">340</span></a> <span class="p">)</span> +</span><span id="TSQL.Parser-341"><a href="#TSQL.Parser-341"><span class="linenos">341</span></a> <span class="k">elif</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">ALL</span><span class="p">):</span> +</span><span id="TSQL.Parser-342"><a href="#TSQL.Parser-342"><span class="linenos">342</span></a> <span class="n">system_time</span> <span class="o">=</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">SystemTime</span><span class="p">,</span> <span class="n">kind</span><span class="o">=</span><span class="s2">"ALL"</span><span class="p">)</span> +</span><span id="TSQL.Parser-343"><a href="#TSQL.Parser-343"><span class="linenos">343</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="TSQL.Parser-344"><a href="#TSQL.Parser-344"><span class="linenos">344</span></a> <span class="n">system_time</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="TSQL.Parser-345"><a href="#TSQL.Parser-345"><span class="linenos">345</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unable to parse FOR SYSTEM_TIME clause"</span><span class="p">)</span> +</span><span id="TSQL.Parser-346"><a href="#TSQL.Parser-346"><span class="linenos">346</span></a> +</span><span id="TSQL.Parser-347"><a href="#TSQL.Parser-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="n">system_time</span> +</span><span id="TSQL.Parser-348"><a href="#TSQL.Parser-348"><span class="linenos">348</span></a> +</span><span id="TSQL.Parser-349"><a href="#TSQL.Parser-349"><span class="linenos">349</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="TSQL.Parser-350"><a href="#TSQL.Parser-350"><span class="linenos">350</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_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> +</span><span id="TSQL.Parser-351"><a href="#TSQL.Parser-351"><span class="linenos">351</span></a> <span class="n">table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"system_time"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_system_time</span><span class="p">())</span> +</span><span id="TSQL.Parser-352"><a href="#TSQL.Parser-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="n">table</span> +</span><span id="TSQL.Parser-353"><a href="#TSQL.Parser-353"><span class="linenos">353</span></a> +</span><span id="TSQL.Parser-354"><a href="#TSQL.Parser-354"><span class="linenos">354</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="TSQL.Parser-355"><a href="#TSQL.Parser-355"><span class="linenos">355</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">RETURNS_TABLE_TOKENS</span><span class="p">)</span> +</span><span id="TSQL.Parser-356"><a href="#TSQL.Parser-356"><span class="linenos">356</span></a> <span class="n">returns</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_returns</span><span class="p">()</span> +</span><span id="TSQL.Parser-357"><a href="#TSQL.Parser-357"><span class="linenos">357</span></a> <span class="n">returns</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> +</span><span id="TSQL.Parser-358"><a href="#TSQL.Parser-358"><span class="linenos">358</span></a> <span class="k">return</span> <span class="n">returns</span> +</span><span id="TSQL.Parser-359"><a href="#TSQL.Parser-359"><span class="linenos">359</span></a> +</span><span id="TSQL.Parser-360"><a href="#TSQL.Parser-360"><span class="linenos">360</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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="TSQL.Parser-361"><a href="#TSQL.Parser-361"><span class="linenos">361</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="TSQL.Parser-362"><a href="#TSQL.Parser-362"><span class="linenos">362</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="TSQL.Parser-363"><a href="#TSQL.Parser-363"><span class="linenos">363</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="TSQL.Parser-364"><a href="#TSQL.Parser-364"><span class="linenos">364</span></a> +</span><span id="TSQL.Parser-365"><a href="#TSQL.Parser-365"><span class="linenos">365</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="TSQL.Parser-366"><a href="#TSQL.Parser-366"><span class="linenos">366</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="TSQL.Parser-367"><a href="#TSQL.Parser-367"><span class="linenos">367</span></a> +</span><span id="TSQL.Parser-368"><a href="#TSQL.Parser-368"><span class="linenos">368</span></a> <span class="c1"># Retrieve length of datatype and override to default if not specified</span> +</span><span id="TSQL.Parser-369"><a href="#TSQL.Parser-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">to</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> +</span><span id="TSQL.Parser-370"><a href="#TSQL.Parser-370"><span class="linenos">370</span></a> <span class="n">to</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="n">to</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">30</span><span class="p">)],</span> <span class="n">nested</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="TSQL.Parser-371"><a href="#TSQL.Parser-371"><span class="linenos">371</span></a> +</span><span id="TSQL.Parser-372"><a href="#TSQL.Parser-372"><span class="linenos">372</span></a> <span class="c1"># Check whether a conversion with format is applicable</span> +</span><span id="TSQL.Parser-373"><a href="#TSQL.Parser-373"><span class="linenos">373</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> +</span><span id="TSQL.Parser-374"><a href="#TSQL.Parser-374"><span class="linenos">374</span></a> <span class="n">format_val</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="TSQL.Parser-375"><a href="#TSQL.Parser-375"><span class="linenos">375</span></a> <span class="n">format_val_name</span> <span class="o">=</span> <span class="n">format_val</span><span class="o">.</span><span class="n">name</span> <span class="k">if</span> <span class="n">format_val</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="TSQL.Parser-376"><a href="#TSQL.Parser-376"><span class="linenos">376</span></a> +</span><span id="TSQL.Parser-377"><a href="#TSQL.Parser-377"><span class="linenos">377</span></a> <span class="k">if</span> <span class="n">format_val_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">:</span> +</span><span id="TSQL.Parser-378"><a href="#TSQL.Parser-378"><span class="linenos">378</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span> +</span><span id="TSQL.Parser-379"><a href="#TSQL.Parser-379"><span class="linenos">379</span></a> <span class="sa">f</span><span class="s2">"CONVERT function at T-SQL does not support format style </span><span class="si">{</span><span class="n">format_val_name</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Parser-380"><a href="#TSQL.Parser-380"><span class="linenos">380</span></a> <span class="p">)</span> +</span><span id="TSQL.Parser-381"><a href="#TSQL.Parser-381"><span class="linenos">381</span></a> +</span><span id="TSQL.Parser-382"><a href="#TSQL.Parser-382"><span class="linenos">382</span></a> <span class="n">format_norm</span> <span class="o">=</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="n">TSQL</span><span class="o">.</span><span class="n">convert_format_mapping</span><span class="p">[</span><span class="n">format_val_name</span><span class="p">])</span> +</span><span id="TSQL.Parser-383"><a href="#TSQL.Parser-383"><span class="linenos">383</span></a> +</span><span id="TSQL.Parser-384"><a href="#TSQL.Parser-384"><span class="linenos">384</span></a> <span class="c1"># Check whether the convert entails a string to date format</span> +</span><span id="TSQL.Parser-385"><a href="#TSQL.Parser-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">:</span> +</span><span id="TSQL.Parser-386"><a href="#TSQL.Parser-386"><span class="linenos">386</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">StrToDate</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="TSQL.Parser-387"><a href="#TSQL.Parser-387"><span class="linenos">387</span></a> <span class="c1"># Check whether the convert entails a string to datetime format</span> +</span><span id="TSQL.Parser-388"><a href="#TSQL.Parser-388"><span class="linenos">388</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">:</span> +</span><span id="TSQL.Parser-389"><a href="#TSQL.Parser-389"><span class="linenos">389</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">StrToTime</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="TSQL.Parser-390"><a href="#TSQL.Parser-390"><span class="linenos">390</span></a> <span class="c1"># Check whether the convert entails a date to string format</span> +</span><span id="TSQL.Parser-391"><a href="#TSQL.Parser-391"><span class="linenos">391</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">VAR_LENGTH_DATATYPES</span><span class="p">:</span> +</span><span id="TSQL.Parser-392"><a href="#TSQL.Parser-392"><span class="linenos">392</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><span id="TSQL.Parser-393"><a href="#TSQL.Parser-393"><span class="linenos">393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">TryCast</span><span class="p">,</span> +</span><span id="TSQL.Parser-394"><a href="#TSQL.Parser-394"><span class="linenos">394</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> +</span><span id="TSQL.Parser-395"><a href="#TSQL.Parser-395"><span class="linenos">395</span></a> <span class="n">this</span><span class="o">=</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">),</span> +</span><span id="TSQL.Parser-396"><a href="#TSQL.Parser-396"><span class="linenos">396</span></a> <span class="p">)</span> +</span><span id="TSQL.Parser-397"><a href="#TSQL.Parser-397"><span class="linenos">397</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">:</span> +</span><span id="TSQL.Parser-398"><a href="#TSQL.Parser-398"><span class="linenos">398</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">TimeToStr</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="nb">format</span><span class="o">=</span><span class="n">format_norm</span><span class="p">)</span> +</span><span id="TSQL.Parser-399"><a href="#TSQL.Parser-399"><span class="linenos">399</span></a> +</span><span id="TSQL.Parser-400"><a href="#TSQL.Parser-400"><span class="linenos">400</span></a> <span class="c1"># Entails a simple cast without any format requirement</span> +</span><span id="TSQL.Parser-401"><a href="#TSQL.Parser-401"><span class="linenos">401</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="TSQL.Parser-402"><a href="#TSQL.Parser-402"><span class="linenos">402</span></a> +</span><span id="TSQL.Parser-403"><a href="#TSQL.Parser-403"><span class="linenos">403</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> +</span><span id="TSQL.Parser-404"><a href="#TSQL.Parser-404"><span class="linenos">404</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="TSQL.Parser-405"><a href="#TSQL.Parser-405"><span class="linenos">405</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="TSQL.Parser-406"><a href="#TSQL.Parser-406"><span class="linenos">406</span></a> <span class="n">this</span> <span class="o">=</span> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="TSQL.Parser-407"><a href="#TSQL.Parser-407"><span class="linenos">407</span></a> +</span><span id="TSQL.Parser-408"><a href="#TSQL.Parser-408"><span class="linenos">408</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="TSQL.Parser-409"><a href="#TSQL.Parser-409"><span class="linenos">409</span></a> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span> +</span><span id="TSQL.Parser-410"><a href="#TSQL.Parser-410"><span class="linenos">410</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</span><span class="p">)</span> +</span><span id="TSQL.Parser-411"><a href="#TSQL.Parser-411"><span class="linenos">411</span></a> <span class="ow">or</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">ALIAS</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="TSQL.Parser-412"><a href="#TSQL.Parser-412"><span class="linenos">412</span></a> <span class="p">):</span> +</span><span id="TSQL.Parser-413"><a href="#TSQL.Parser-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="TSQL.Parser-414"><a href="#TSQL.Parser-414"><span class="linenos">414</span></a> +</span><span id="TSQL.Parser-415"><a href="#TSQL.Parser-415"><span class="linenos">415</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="TSQL.Parser-416"><a href="#TSQL.Parser-416"><span class="linenos">416</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">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span></pre></div> @@ -1204,53 +1206,53 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#TSQL.Generator"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator-419"><a href="#TSQL.Generator-419"><span class="linenos">419</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> -</span><span id="TSQL.Generator-420"><a href="#TSQL.Generator-420"><span class="linenos">420</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="TSQL.Generator-421"><a href="#TSQL.Generator-421"><span class="linenos">421</span></a> -</span><span id="TSQL.Generator-422"><a href="#TSQL.Generator-422"><span class="linenos">422</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL.Generator-423"><a href="#TSQL.Generator-423"><span class="linenos">423</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> -</span><span id="TSQL.Generator-424"><a href="#TSQL.Generator-424"><span class="linenos">424</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="TSQL.Generator-425"><a href="#TSQL.Generator-425"><span class="linenos">425</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> -</span><span id="TSQL.Generator-426"><a href="#TSQL.Generator-426"><span class="linenos">426</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">DATETIME</span><span class="p">:</span> <span class="s2">"DATETIME2"</span><span class="p">,</span> -</span><span id="TSQL.Generator-427"><a href="#TSQL.Generator-427"><span class="linenos">427</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">VARIANT</span><span class="p">:</span> <span class="s2">"SQL_VARIANT"</span><span class="p">,</span> -</span><span id="TSQL.Generator-428"><a href="#TSQL.Generator-428"><span class="linenos">428</span></a> <span class="p">}</span> -</span><span id="TSQL.Generator-429"><a href="#TSQL.Generator-429"><span class="linenos">429</span></a> -</span><span id="TSQL.Generator-430"><a href="#TSQL.Generator-430"><span class="linenos">430</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TSQL.Generator-431"><a href="#TSQL.Generator-431"><span class="linenos">431</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> -</span><span id="TSQL.Generator-432"><a href="#TSQL.Generator-432"><span class="linenos">432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="TSQL.Generator-433"><a href="#TSQL.Generator-433"><span class="linenos">433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> -</span><span id="TSQL.Generator-434"><a href="#TSQL.Generator-434"><span class="linenos">434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> -</span><span id="TSQL.Generator-435"><a href="#TSQL.Generator-435"><span class="linenos">435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> -</span><span id="TSQL.Generator-436"><a href="#TSQL.Generator-436"><span class="linenos">436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IIF"</span><span class="p">),</span> -</span><span id="TSQL.Generator-437"><a href="#TSQL.Generator-437"><span class="linenos">437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> -</span><span id="TSQL.Generator-438"><a href="#TSQL.Generator-438"><span class="linenos">438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> -</span><span id="TSQL.Generator-439"><a href="#TSQL.Generator-439"><span class="linenos">439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> -</span><span id="TSQL.Generator-440"><a href="#TSQL.Generator-440"><span class="linenos">440</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> -</span><span id="TSQL.Generator-441"><a href="#TSQL.Generator-441"><span class="linenos">441</span></a> <span class="p">}</span> -</span><span id="TSQL.Generator-442"><a href="#TSQL.Generator-442"><span class="linenos">442</span></a> -</span><span id="TSQL.Generator-443"><a href="#TSQL.Generator-443"><span class="linenos">443</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">ReturnsProperty</span><span class="p">)</span> -</span><span id="TSQL.Generator-444"><a href="#TSQL.Generator-444"><span class="linenos">444</span></a> -</span><span id="TSQL.Generator-445"><a href="#TSQL.Generator-445"><span class="linenos">445</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="TSQL.Generator-446"><a href="#TSQL.Generator-446"><span class="linenos">446</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="TSQL.Generator-447"><a href="#TSQL.Generator-447"><span class="linenos">447</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> -</span><span id="TSQL.Generator-448"><a href="#TSQL.Generator-448"><span class="linenos">448</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> -</span><span id="TSQL.Generator-449"><a href="#TSQL.Generator-449"><span class="linenos">449</span></a> -</span><span id="TSQL.Generator-450"><a href="#TSQL.Generator-450"><span class="linenos">450</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> -</span><span id="TSQL.Generator-451"><a href="#TSQL.Generator-451"><span class="linenos">451</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> -</span><span id="TSQL.Generator-452"><a href="#TSQL.Generator-452"><span class="linenos">452</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Generator-453"><a href="#TSQL.Generator-453"><span class="linenos">453</span></a> -</span><span id="TSQL.Generator-454"><a href="#TSQL.Generator-454"><span class="linenos">454</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> -</span><span id="TSQL.Generator-455"><a href="#TSQL.Generator-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> -</span><span id="TSQL.Generator-456"><a href="#TSQL.Generator-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Generator-457"><a href="#TSQL.Generator-457"><span class="linenos">457</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> -</span><span id="TSQL.Generator-458"><a href="#TSQL.Generator-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Generator-459"><a href="#TSQL.Generator-459"><span class="linenos">459</span></a> -</span><span id="TSQL.Generator-460"><a href="#TSQL.Generator-460"><span class="linenos">460</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="TSQL.Generator-461"><a href="#TSQL.Generator-461"><span class="linenos">461</span></a> -</span><span id="TSQL.Generator-462"><a href="#TSQL.Generator-462"><span class="linenos">462</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="TSQL.Generator-463"><a href="#TSQL.Generator-463"><span class="linenos">463</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="TSQL.Generator-464"><a href="#TSQL.Generator-464"><span class="linenos">464</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="TSQL.Generator-465"><a href="#TSQL.Generator-465"><span class="linenos">465</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator-418"><a href="#TSQL.Generator-418"><span class="linenos">418</span></a> <span class="k">class</span> <span class="nc">Generator</span><span class="p">(</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="p">):</span> +</span><span id="TSQL.Generator-419"><a href="#TSQL.Generator-419"><span class="linenos">419</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="TSQL.Generator-420"><a href="#TSQL.Generator-420"><span class="linenos">420</span></a> +</span><span id="TSQL.Generator-421"><a href="#TSQL.Generator-421"><span class="linenos">421</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL.Generator-422"><a href="#TSQL.Generator-422"><span class="linenos">422</span></a> <span class="o">**</span><span class="n">generator</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 class="c1"># type: ignore</span> +</span><span id="TSQL.Generator-423"><a href="#TSQL.Generator-423"><span class="linenos">423</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="TSQL.Generator-424"><a href="#TSQL.Generator-424"><span class="linenos">424</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">DECIMAL</span><span class="p">:</span> <span class="s2">"NUMERIC"</span><span class="p">,</span> +</span><span id="TSQL.Generator-425"><a href="#TSQL.Generator-425"><span class="linenos">425</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">DATETIME</span><span class="p">:</span> <span class="s2">"DATETIME2"</span><span class="p">,</span> +</span><span id="TSQL.Generator-426"><a href="#TSQL.Generator-426"><span class="linenos">426</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">VARIANT</span><span class="p">:</span> <span class="s2">"SQL_VARIANT"</span><span class="p">,</span> +</span><span id="TSQL.Generator-427"><a href="#TSQL.Generator-427"><span class="linenos">427</span></a> <span class="p">}</span> +</span><span id="TSQL.Generator-428"><a href="#TSQL.Generator-428"><span class="linenos">428</span></a> +</span><span id="TSQL.Generator-429"><a href="#TSQL.Generator-429"><span class="linenos">429</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TSQL.Generator-430"><a href="#TSQL.Generator-430"><span class="linenos">430</span></a> <span class="o">**</span><span class="n">generator</span><span class="o">.</span><span class="n">Generator</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="p">,</span> <span class="c1"># type: ignore</span> +</span><span id="TSQL.Generator-431"><a href="#TSQL.Generator-431"><span class="linenos">431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> +</span><span id="TSQL.Generator-432"><a href="#TSQL.Generator-432"><span class="linenos">432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateDiff</span><span class="p">:</span> <span class="n">generate_date_delta_with_unit_sql</span><span class="p">,</span> +</span><span id="TSQL.Generator-433"><a href="#TSQL.Generator-433"><span class="linenos">433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> +</span><span id="TSQL.Generator-434"><a href="#TSQL.Generator-434"><span class="linenos">434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"GETDATE"</span><span class="p">),</span> +</span><span id="TSQL.Generator-435"><a href="#TSQL.Generator-435"><span class="linenos">435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="p">:</span> <span class="n">rename_func</span><span class="p">(</span><span class="s2">"IIF"</span><span class="p">),</span> +</span><span id="TSQL.Generator-436"><a href="#TSQL.Generator-436"><span class="linenos">436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NumberToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> +</span><span id="TSQL.Generator-437"><a href="#TSQL.Generator-437"><span class="linenos">437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TimeToStr</span><span class="p">:</span> <span class="n">_format_sql</span><span class="p">,</span> +</span><span id="TSQL.Generator-438"><a href="#TSQL.Generator-438"><span class="linenos">438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">GroupConcat</span><span class="p">:</span> <span class="n">_string_agg_sql</span><span class="p">,</span> +</span><span id="TSQL.Generator-439"><a href="#TSQL.Generator-439"><span class="linenos">439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Min</span><span class="p">:</span> <span class="n">min_or_least</span><span class="p">,</span> +</span><span id="TSQL.Generator-440"><a href="#TSQL.Generator-440"><span class="linenos">440</span></a> <span class="p">}</span> +</span><span id="TSQL.Generator-441"><a href="#TSQL.Generator-441"><span class="linenos">441</span></a> +</span><span id="TSQL.Generator-442"><a href="#TSQL.Generator-442"><span class="linenos">442</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">ReturnsProperty</span><span class="p">)</span> +</span><span id="TSQL.Generator-443"><a href="#TSQL.Generator-443"><span class="linenos">443</span></a> +</span><span id="TSQL.Generator-444"><a href="#TSQL.Generator-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="TSQL.Generator-445"><a href="#TSQL.Generator-445"><span class="linenos">445</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="TSQL.Generator-446"><a href="#TSQL.Generator-446"><span class="linenos">446</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> +</span><span id="TSQL.Generator-447"><a href="#TSQL.Generator-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> +</span><span id="TSQL.Generator-448"><a href="#TSQL.Generator-448"><span class="linenos">448</span></a> +</span><span id="TSQL.Generator-449"><a href="#TSQL.Generator-449"><span class="linenos">449</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> +</span><span id="TSQL.Generator-450"><a href="#TSQL.Generator-450"><span class="linenos">450</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> +</span><span id="TSQL.Generator-451"><a href="#TSQL.Generator-451"><span class="linenos">451</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Generator-452"><a href="#TSQL.Generator-452"><span class="linenos">452</span></a> +</span><span id="TSQL.Generator-453"><a href="#TSQL.Generator-453"><span class="linenos">453</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> +</span><span id="TSQL.Generator-454"><a href="#TSQL.Generator-454"><span class="linenos">454</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> +</span><span id="TSQL.Generator-455"><a href="#TSQL.Generator-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Generator-456"><a href="#TSQL.Generator-456"><span class="linenos">456</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> +</span><span id="TSQL.Generator-457"><a href="#TSQL.Generator-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Generator-458"><a href="#TSQL.Generator-458"><span class="linenos">458</span></a> +</span><span id="TSQL.Generator-459"><a href="#TSQL.Generator-459"><span class="linenos">459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="TSQL.Generator-460"><a href="#TSQL.Generator-460"><span class="linenos">460</span></a> +</span><span id="TSQL.Generator-461"><a href="#TSQL.Generator-461"><span class="linenos">461</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="TSQL.Generator-462"><a href="#TSQL.Generator-462"><span class="linenos">462</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="TSQL.Generator-463"><a href="#TSQL.Generator-463"><span class="linenos">463</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="TSQL.Generator-464"><a href="#TSQL.Generator-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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></pre></div> @@ -1267,8 +1269,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -1310,22 +1311,22 @@ Default: True</li> </div> <a class="headerlink" href="#TSQL.Generator.systemtime_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.systemtime_sql-445"><a href="#TSQL.Generator.systemtime_sql-445"><span class="linenos">445</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="TSQL.Generator.systemtime_sql-446"><a href="#TSQL.Generator.systemtime_sql-446"><span class="linenos">446</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="TSQL.Generator.systemtime_sql-447"><a href="#TSQL.Generator.systemtime_sql-447"><span class="linenos">447</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> -</span><span id="TSQL.Generator.systemtime_sql-448"><a href="#TSQL.Generator.systemtime_sql-448"><span class="linenos">448</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> -</span><span id="TSQL.Generator.systemtime_sql-449"><a href="#TSQL.Generator.systemtime_sql-449"><span class="linenos">449</span></a> -</span><span id="TSQL.Generator.systemtime_sql-450"><a href="#TSQL.Generator.systemtime_sql-450"><span class="linenos">450</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> -</span><span id="TSQL.Generator.systemtime_sql-451"><a href="#TSQL.Generator.systemtime_sql-451"><span class="linenos">451</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> -</span><span id="TSQL.Generator.systemtime_sql-452"><a href="#TSQL.Generator.systemtime_sql-452"><span class="linenos">452</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Generator.systemtime_sql-453"><a href="#TSQL.Generator.systemtime_sql-453"><span class="linenos">453</span></a> -</span><span id="TSQL.Generator.systemtime_sql-454"><a href="#TSQL.Generator.systemtime_sql-454"><span class="linenos">454</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> -</span><span id="TSQL.Generator.systemtime_sql-455"><a href="#TSQL.Generator.systemtime_sql-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> -</span><span id="TSQL.Generator.systemtime_sql-456"><a href="#TSQL.Generator.systemtime_sql-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Generator.systemtime_sql-457"><a href="#TSQL.Generator.systemtime_sql-457"><span class="linenos">457</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> -</span><span id="TSQL.Generator.systemtime_sql-458"><a href="#TSQL.Generator.systemtime_sql-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="TSQL.Generator.systemtime_sql-459"><a href="#TSQL.Generator.systemtime_sql-459"><span class="linenos">459</span></a> -</span><span id="TSQL.Generator.systemtime_sql-460"><a href="#TSQL.Generator.systemtime_sql-460"><span class="linenos">460</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.systemtime_sql-444"><a href="#TSQL.Generator.systemtime_sql-444"><span class="linenos">444</span></a> <span class="k">def</span> <span class="nf">systemtime_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">SystemTime</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="TSQL.Generator.systemtime_sql-445"><a href="#TSQL.Generator.systemtime_sql-445"><span class="linenos">445</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="TSQL.Generator.systemtime_sql-446"><a href="#TSQL.Generator.systemtime_sql-446"><span class="linenos">446</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"ALL"</span><span class="p">:</span> +</span><span id="TSQL.Generator.systemtime_sql-447"><a href="#TSQL.Generator.systemtime_sql-447"><span class="linenos">447</span></a> <span class="k">return</span> <span class="s2">"FOR SYSTEM_TIME ALL"</span> +</span><span id="TSQL.Generator.systemtime_sql-448"><a href="#TSQL.Generator.systemtime_sql-448"><span class="linenos">448</span></a> +</span><span id="TSQL.Generator.systemtime_sql-449"><a href="#TSQL.Generator.systemtime_sql-449"><span class="linenos">449</span></a> <span class="n">start</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">"this"</span><span class="p">)</span> +</span><span id="TSQL.Generator.systemtime_sql-450"><a href="#TSQL.Generator.systemtime_sql-450"><span class="linenos">450</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"AS OF"</span><span class="p">:</span> +</span><span id="TSQL.Generator.systemtime_sql-451"><a href="#TSQL.Generator.systemtime_sql-451"><span class="linenos">451</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME AS OF </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Generator.systemtime_sql-452"><a href="#TSQL.Generator.systemtime_sql-452"><span class="linenos">452</span></a> +</span><span id="TSQL.Generator.systemtime_sql-453"><a href="#TSQL.Generator.systemtime_sql-453"><span class="linenos">453</span></a> <span class="n">end</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">"expression"</span><span class="p">)</span> +</span><span id="TSQL.Generator.systemtime_sql-454"><a href="#TSQL.Generator.systemtime_sql-454"><span class="linenos">454</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"FROM"</span><span class="p">:</span> +</span><span id="TSQL.Generator.systemtime_sql-455"><a href="#TSQL.Generator.systemtime_sql-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME FROM </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> TO </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Generator.systemtime_sql-456"><a href="#TSQL.Generator.systemtime_sql-456"><span class="linenos">456</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"BETWEEN"</span><span class="p">:</span> +</span><span id="TSQL.Generator.systemtime_sql-457"><a href="#TSQL.Generator.systemtime_sql-457"><span class="linenos">457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="TSQL.Generator.systemtime_sql-458"><a href="#TSQL.Generator.systemtime_sql-458"><span class="linenos">458</span></a> +</span><span id="TSQL.Generator.systemtime_sql-459"><a href="#TSQL.Generator.systemtime_sql-459"><span class="linenos">459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOR SYSTEM_TIME CONTAINED IN (</span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -1343,10 +1344,10 @@ Default: True</li> </div> <a class="headerlink" href="#TSQL.Generator.returnsproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.returnsproperty_sql-462"><a href="#TSQL.Generator.returnsproperty_sql-462"><span class="linenos">462</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="TSQL.Generator.returnsproperty_sql-463"><a href="#TSQL.Generator.returnsproperty_sql-463"><span class="linenos">463</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="TSQL.Generator.returnsproperty_sql-464"><a href="#TSQL.Generator.returnsproperty_sql-464"><span class="linenos">464</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="TSQL.Generator.returnsproperty_sql-465"><a href="#TSQL.Generator.returnsproperty_sql-465"><span class="linenos">465</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="TSQL.Generator.returnsproperty_sql-461"><a href="#TSQL.Generator.returnsproperty_sql-461"><span class="linenos">461</span></a> <span class="k">def</span> <span class="nf">returnsproperty_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">ReturnsProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="TSQL.Generator.returnsproperty_sql-462"><a href="#TSQL.Generator.returnsproperty_sql-462"><span class="linenos">462</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="TSQL.Generator.returnsproperty_sql-463"><a href="#TSQL.Generator.returnsproperty_sql-463"><span class="linenos">463</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="TSQL.Generator.returnsproperty_sql-464"><a href="#TSQL.Generator.returnsproperty_sql-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURNS </span><span class="si">{</span><span class="n">table</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">expression</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></pre></div> @@ -1443,6 +1444,8 @@ Default: True</li> <dd id="TSQL.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="TSQL.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="TSQL.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="TSQL.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="TSQL.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="TSQL.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="TSQL.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="TSQL.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1527,7 +1530,6 @@ Default: True</li> <dd id="TSQL.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="TSQL.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="TSQL.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="TSQL.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="TSQL.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="TSQL.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="TSQL.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1569,6 +1571,7 @@ Default: True</li> <dd id="TSQL.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="TSQL.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="TSQL.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="TSQL.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/executor/python.html b/docs/sqlglot/executor/python.html index 8d6e46d..2c1a429 100644 --- a/docs/sqlglot/executor/python.html +++ b/docs/sqlglot/executor/python.html @@ -1591,6 +1591,7 @@ <dd id="Python.parse_into" class="function"><a href="../dialects/dialect.html#Dialect.parse_into">parse_into</a></dd> <dd id="Python.generate" class="function"><a href="../dialects/dialect.html#Dialect.generate">generate</a></dd> <dd id="Python.transpile" class="function"><a href="../dialects/dialect.html#Dialect.transpile">transpile</a></dd> + <dd id="Python.tokenize" class="function"><a href="../dialects/dialect.html#Dialect.tokenize">tokenize</a></dd> <dd id="Python.parser" class="function"><a href="../dialects/dialect.html#Dialect.parser">parser</a></dd> <dd id="Python.generator" class="function"><a href="../dialects/dialect.html#Dialect.generator">generator</a></dd> @@ -1677,8 +1678,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -1799,6 +1799,8 @@ Default: True</li> <dd id="Python.Generator.lateral_sql" class="function"><a href="../generator.html#Generator.lateral_sql">lateral_sql</a></dd> <dd id="Python.Generator.limit_sql" class="function"><a href="../generator.html#Generator.limit_sql">limit_sql</a></dd> <dd id="Python.Generator.offset_sql" class="function"><a href="../generator.html#Generator.offset_sql">offset_sql</a></dd> + <dd id="Python.Generator.setitem_sql" class="function"><a href="../generator.html#Generator.setitem_sql">setitem_sql</a></dd> + <dd id="Python.Generator.set_sql" class="function"><a href="../generator.html#Generator.set_sql">set_sql</a></dd> <dd id="Python.Generator.lock_sql" class="function"><a href="../generator.html#Generator.lock_sql">lock_sql</a></dd> <dd id="Python.Generator.literal_sql" class="function"><a href="../generator.html#Generator.literal_sql">literal_sql</a></dd> <dd id="Python.Generator.loaddata_sql" class="function"><a href="../generator.html#Generator.loaddata_sql">loaddata_sql</a></dd> @@ -1883,7 +1885,6 @@ Default: True</li> <dd id="Python.Generator.intdiv_sql" class="function"><a href="../generator.html#Generator.intdiv_sql">intdiv_sql</a></dd> <dd id="Python.Generator.dpipe_sql" class="function"><a href="../generator.html#Generator.dpipe_sql">dpipe_sql</a></dd> <dd id="Python.Generator.div_sql" class="function"><a href="../generator.html#Generator.div_sql">div_sql</a></dd> - <dd id="Python.Generator.floatdiv_sql" class="function"><a href="../generator.html#Generator.floatdiv_sql">floatdiv_sql</a></dd> <dd id="Python.Generator.overlaps_sql" class="function"><a href="../generator.html#Generator.overlaps_sql">overlaps_sql</a></dd> <dd id="Python.Generator.distance_sql" class="function"><a href="../generator.html#Generator.distance_sql">distance_sql</a></dd> <dd id="Python.Generator.dot_sql" class="function"><a href="../generator.html#Generator.dot_sql">dot_sql</a></dd> @@ -1925,6 +1926,7 @@ Default: True</li> <dd id="Python.Generator.kwarg_sql" class="function"><a href="../generator.html#Generator.kwarg_sql">kwarg_sql</a></dd> <dd id="Python.Generator.when_sql" class="function"><a href="../generator.html#Generator.when_sql">when_sql</a></dd> <dd id="Python.Generator.merge_sql" class="function"><a href="../generator.html#Generator.merge_sql">merge_sql</a></dd> + <dd id="Python.Generator.tochar_sql" class="function"><a href="../generator.html#Generator.tochar_sql">tochar_sql</a></dd> </div> </dl> diff --git a/docs/sqlglot/expressions.html b/docs/sqlglot/expressions.html index de9d437..0df7852 100644 --- a/docs/sqlglot/expressions.html +++ b/docs/sqlglot/expressions.html @@ -458,6 +458,15 @@ <li> <a class="class" href="#Delete">Delete</a> <ul class="memberlist"> + <li> + <a class="function" href="#Delete.delete">delete</a> + </li> + <li> + <a class="function" href="#Delete.where">where</a> + </li> + <li> + <a class="function" href="#Delete.returning">returning</a> + </li> </ul> </li> @@ -1590,12 +1599,6 @@ </li> <li> - <a class="class" href="#FloatDiv">FloatDiv</a> - <ul class="memberlist"> - </ul> - - </li> - <li> <a class="class" href="#Overlaps">Overlaps</a> <ul class="memberlist"> </ul> @@ -1908,6 +1911,12 @@ </li> <li> + <a class="class" href="#ToChar">ToChar</a> + <ul class="memberlist"> + </ul> + + </li> + <li> <a class="class" href="#GenerateSeries">GenerateSeries</a> <ul class="memberlist"> </ul> @@ -2058,6 +2067,12 @@ </li> <li> + <a class="class" href="#CountIf">CountIf</a> + <ul class="memberlist"> + </ul> + + </li> + <li> <a class="class" href="#CurrentDate">CurrentDate</a> <ul class="memberlist"> </ul> @@ -2394,6 +2409,12 @@ </li> <li> + <a class="class" href="#LogicalAnd">LogicalAnd</a> + <ul class="memberlist"> + </ul> + + </li> + <li> <a class="class" href="#Lower">Lower</a> <ul class="memberlist"> </ul> @@ -3485,4375 +3506,4511 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a>< </span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a><span class="w"> </span><span class="sd">"""</span> </span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a><span class="sd"> Remove this expression from its AST.</span> -</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a><span class="sd"> """</span> -</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> -</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> -</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">):</span> -</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span> +</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> +</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a><span class="sd"> Returns:</span> +</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a><span class="sd"> The popped expression.</span> +</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a><span class="sd"> """</span> +</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> +</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="k">return</span> <span class="bp">self</span> </span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> -</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span> -</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a><span class="sd"> Otherwise, this returns this expression.</span> -</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> -</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a><span class="sd"> Examples:</span> -</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a><span class="sd"> This is useful for type security in chained expressions:</span> -</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> -</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()</span> -</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> 'SELECT x, z FROM y'</span> -</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a><span class="sd"> """</span> -</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span> -</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="k">return</span> <span class="bp">self</span> -</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> -</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span> +</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">):</span> +</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span> +</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> +</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span> +</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a><span class="sd"> Otherwise, this returns this expression.</span> +</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> +</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a><span class="sd"> Examples:</span> +</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a><span class="sd"> This is useful for type security in chained expressions:</span> +</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> +</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()</span> +</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a><span class="sd"> 'SELECT x, z FROM y'</span> +</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a><span class="sd"> """</span> +</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span> +</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="k">return</span> <span class="bp">self</span> </span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> -</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a><span class="sd"> Args:</span> -</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span> -</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a><span class="sd"> to check that the provided arguments don't exceed the function argument limit.</span> +</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span> </span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> -</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="sd"> Returns:</span> -</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span> -</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a><span class="sd"> """</span> -</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> -</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> -</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> -</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span> -</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Required keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> -</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="n">args</span> -</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span> -</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> -</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span> -</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="p">):</span> -</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="sa">f</span><span class="s2">"The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than "</span> -</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="sa">f</span><span class="s2">"the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="p">)</span> -</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> -</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="k">return</span> <span class="n">errors</span> -</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> -</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span> -</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a><span class="sd"> """</span> -</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span> -</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> -</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> -</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="nd">@classmethod</span> -</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span> -</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span> -</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a><span class="sd"> """</span> -</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span> -</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> -</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> -</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> -</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> -</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span> -</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="nb">str</span><span class="p">,</span> -</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span> -</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span> -</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a><span class="p">]</span> -</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> -</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> -</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a><span class="sd"> AND this condition with one or multiple expressions.</span> +</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a><span class="sd"> Args:</span> +</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span> +</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a><span class="sd"> to check that the provided arguments don't exceed the function argument limit.</span> +</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> +</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a><span class="sd"> Returns:</span> +</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span> +</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a><span class="sd"> """</span> +</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> +</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> +</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> +</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span> +</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Required keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> +</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="n">args</span> +</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span> +</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> +</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span> +</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="p">):</span> +</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="sa">f</span><span class="s2">"The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than "</span> +</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="sa">f</span><span class="s2">"the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="p">)</span> +</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> +</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="k">return</span> <span class="n">errors</span> +</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> +</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span> +</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a><span class="sd"> """</span> +</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span> +</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> +</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> +</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="nd">@classmethod</span> +</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span> +</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span> +</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a><span class="sd"> """</span> +</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span> +</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> +</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> +</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> +</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> +</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a><span class="n">IntoType</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span> +</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="nb">str</span><span class="p">,</span> +</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">],</span> +</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="n">t</span><span class="o">.</span><span class="n">Collection</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">Expression</span><span class="p">]]],</span> +</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a><span class="p">]</span> +</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a><span class="n">ExpOrStr</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Expression</span><span class="p">]</span> +</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> </span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> -</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a><span class="sd"> Example:</span> -</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a><span class="sd"> >>> condition("x=1").and_("y=1").sql()</span> -</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a><span class="sd"> 'x = 1 AND y = 1'</span> -</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> -</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a><span class="sd"> Args:</span> -</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> -</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a><span class="sd"> Returns:</span> -</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a><span class="sd"> And: the new condition.</span> -</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a><span class="sd"> """</span> -</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a><span class="sd"> AND this condition with one or multiple expressions.</span> +</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> +</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a><span class="sd"> Example:</span> +</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a><span class="sd"> >>> condition("x=1").and_("y=1").sql()</span> +</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a><span class="sd"> 'x = 1 AND y = 1'</span> +</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> +</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a><span class="sd"> Args:</span> +</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> </span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> -</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a><span class="sd"> OR this condition with one or multiple expressions.</span> -</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> -</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a><span class="sd"> Example:</span> -</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a><span class="sd"> >>> condition("x=1").or_("y=1").sql()</span> -</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a><span class="sd"> 'x = 1 OR y = 1'</span> -</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> -</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a><span class="sd"> Args:</span> -</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> -</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="sd"> Returns:</span> -</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="sd"> Or: the new condition.</span> -</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a><span class="sd"> """</span> -</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a><span class="sd"> Returns:</span> +</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a><span class="sd"> And: the new condition.</span> +</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a><span class="sd"> """</span> +</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> +</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a><span class="sd"> OR this condition with one or multiple expressions.</span> +</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> +</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a><span class="sd"> Example:</span> +</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a><span class="sd"> >>> condition("x=1").or_("y=1").sql()</span> +</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a><span class="sd"> 'x = 1 OR y = 1'</span> +</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> +</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a><span class="sd"> Args:</span> +</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> </span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> -</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a><span class="sd"> Wrap this condition with NOT.</span> -</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> -</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a><span class="sd"> Example:</span> -</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a><span class="sd"> >>> condition("x=1").not_().sql()</span> -</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a><span class="sd"> 'NOT x = 1'</span> -</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> -</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a><span class="sd"> Returns:</span> -</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> Not: the new condition.</span> -</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a><span class="sd"> """</span> -</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a><span class="sd"> Returns:</span> +</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a><span class="sd"> Or: the new condition.</span> +</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a><span class="sd"> """</span> +</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> +</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a><span class="sd"> Wrap this condition with NOT.</span> +</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> +</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a><span class="sd"> Example:</span> +</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a><span class="sd"> >>> condition("x=1").not_().sql()</span> +</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a><span class="sd"> 'NOT x = 1'</span> </span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> -</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> -</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="w"> </span><span class="sd">"""Relationships like x = y, x > 1, x >= y."""</span> -</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> +</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a><span class="sd"> Returns:</span> +</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a><span class="sd"> Not: the new condition.</span> +</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a><span class="sd"> """</span> +</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> </span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> -</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a> <span class="nd">@property</span> -</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> -</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span> -</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> -</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">column_list</span><span class="p">]</span> -</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> -</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="nd">@property</span> -</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> -</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> -</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> -</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> -</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="nd">@property</span> -</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span> -</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> +</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> +</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a><span class="w"> </span><span class="sd">"""Relationships like x = y, x > 1, x >= y."""</span> +</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> +</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> +</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="nd">@property</span> +</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> +</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span> +</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> +</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">column_list</span><span class="p">]</span> +</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> +</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="nd">@property</span> +</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> +</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> +</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> +</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="k">return</span> <span class="p">[]</span> </span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a> -</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a><span class="sd"> Builds a UNION expression.</span> +</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a> <span class="nd">@property</span> +</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span> +</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a> </span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a> -</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a><span class="sd"> Example:</span> -</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()</span> -</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> +</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a><span class="sd"> Builds a UNION expression.</span> </span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> -</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a><span class="sd"> Args:</span> -</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a><span class="sd"> Returns:</span> -</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a><span class="sd"> Union: the Union expression.</span> -</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a><span class="sd"> """</span> -</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a> -</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a><span class="sd"> Builds an INTERSECT expression.</span> -</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a> -</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a><span class="sd"> Example:</span> -</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()</span> -</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a><span class="sd"> Example:</span> +</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()</span> +</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> +</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> +</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a><span class="sd"> Args:</span> +</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a><span class="sd"> Returns:</span> +</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a><span class="sd"> Union: the Union expression.</span> +</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a><span class="sd"> """</span> +</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> +</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a><span class="sd"> Builds an INTERSECT expression.</span> </span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> -</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a><span class="sd"> Args:</span> -</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a><span class="sd"> Returns:</span> -</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a><span class="sd"> Intersect: the Intersect expression</span> -</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a><span class="sd"> """</span> -</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> -</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a><span class="sd"> Builds an EXCEPT expression.</span> -</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> -</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a><span class="sd"> Example:</span> -</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()</span> -</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a><span class="sd"> Example:</span> +</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()</span> +</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> +</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a><span class="sd"> Args:</span> +</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a><span class="sd"> Returns:</span> +</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a><span class="sd"> Intersect: the Intersect expression</span> +</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a><span class="sd"> """</span> +</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> +</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a><span class="sd"> Builds an EXCEPT expression.</span> </span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> -</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a><span class="sd"> Args:</span> -</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a><span class="sd"> Returns:</span> -</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a><span class="sd"> Except: the Except expression</span> -</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a><span class="sd"> """</span> -</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> -</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> -</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a><span class="k">class</span> <span class="nc">UDTF</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> -</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="k">pass</span> -</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> +</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a><span class="sd"> Example:</span> +</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()</span> +</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> +</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a><span class="sd"> Args:</span> +</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a><span class="sd"> Returns:</span> +</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a><span class="sd"> Except: the Except expression</span> +</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a><span class="sd"> """</span> +</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> -</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="s2">"lazy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="p">}</span> -</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> -</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> -</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> +</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> +</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a><span class="k">class</span> <span class="nc">UDTF</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> +</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="k">pass</span> +</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> +</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> +</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="s2">"lazy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="p">}</span> </span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> -</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="s2">"properties"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="s2">"volatile"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="s2">"indexes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a> <span class="s2">"no_schema_binding"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="s2">"begin"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="p">}</span> -</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> -</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> -</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> +</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> +</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> +</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> +</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a> <span class="s2">"properties"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> <span class="s2">"volatile"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="s2">"indexes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="s2">"no_schema_binding"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="s2">"begin"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="p">}</span> </span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> -</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> +</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> +</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> -</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span> -</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="p">}</span> -</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> -</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> -</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="s2">"target"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="s2">"like"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="s2">"full"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="s2">"mutex"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="s2">"channel"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="s2">"log"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="s2">"types"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="p">}</span> -</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> -</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> -</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> +</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> +</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> +</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> +</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span> +</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="p">}</span> +</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> +</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> +</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="s2">"target"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="s2">"like"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="s2">"full"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="s2">"mutex"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="s2">"channel"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="s2">"log"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="s2">"types"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="p">}</span> </span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> -</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> +</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> +</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> -</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"recursive"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> -</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="nd">@property</span> -</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="nf">recursive</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">))</span> -</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> +</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> +</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> +</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> +</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"recursive"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> -</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> +</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="nd">@property</span> +</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="k">def</span> <span class="nf">recursive</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">))</span> </span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> -</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span> -</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> +</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> +</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> -</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> -</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="nd">@property</span> -</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> -</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> +</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> +</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span> +</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> +</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> +</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> -</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">pass</span> -</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> +</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="nd">@property</span> +</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> </span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> -</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">pass</span> -</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> +</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> +</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="k">pass</span> </span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> -</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="k">pass</span> -</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> +</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> +</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="k">pass</span> </span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> -</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"join_mark"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> -</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="nd">@property</span> -</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> <span class="k">def</span> <span class="nf">table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> -</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> -</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> <span class="nd">@property</span> -</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> -</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> -</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> <span class="nd">@property</span> -</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> -</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> -</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="nd">@property</span> -</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> +</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> +</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="k">pass</span> +</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> +</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> +</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"join_mark"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> +</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="nd">@property</span> +</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="k">def</span> <span class="nf">table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> +</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> +</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="nd">@property</span> +</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> +</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> +</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a> <span class="nd">@property</span> +</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> </span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> -</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="s2">"constraints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="p">}</span> -</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> -</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> -</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> <span class="s2">"dtype"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="s2">"drop"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> <span class="p">}</span> -</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> -</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> -</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="k">pass</span> -</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> +</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> <span class="nd">@property</span> +</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> +</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> +</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a> <span class="s2">"constraints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="p">}</span> +</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> +</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> +</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> <span class="s2">"dtype"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="s2">"drop"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="p">}</span> </span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> -</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> +</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> +</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="k">pass</span> </span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> -</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> +</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> +</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a> -</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> +</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> +</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> -</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="k">pass</span> -</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> +</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> +</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> -</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> <span class="k">pass</span> -</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> +</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> +</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="k">pass</span> </span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> -</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"not_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> +</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> +</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="k">pass</span> </span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> -</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> +</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> +</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"not_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> -</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="k">pass</span> -</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> +</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> +</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> -</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="k">pass</span> -</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> +</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> +</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="k">pass</span> </span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> -</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="k">pass</span> -</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> +</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> +</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="k">pass</span> </span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> -</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="k">pass</span> -</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> +</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> +</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="k">pass</span> </span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> -</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> +</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> +</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> <span class="k">pass</span> </span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a> -</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="k">pass</span> -</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> +</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> +</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> -</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="k">pass</span> -</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> +</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> +</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="k">pass</span> </span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> -</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="c1"># this: True -> ALWAYS, this: False -> BY DEFAULT</span> -</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="s2">"increment"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="s2">"minvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="s2">"maxvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="s2">"cycle"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="p">}</span> -</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> -</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> -</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> <span class="k">pass</span> -</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> +</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> +</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="k">pass</span> +</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> +</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> +</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="c1"># this: True -> ALWAYS, this: False -> BY DEFAULT</span> +</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> <span class="s2">"increment"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="s2">"minvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="s2">"maxvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> <span class="s2">"cycle"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="p">}</span> </span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> -</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"allow_null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> +</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> +</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="k">pass</span> </span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> -</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"desc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> +</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> +</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"allow_null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> -</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a> <span class="k">pass</span> -</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> +</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> +</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"desc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> -</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> +</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> +</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="k">pass</span> </span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> -</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> +</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> +</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> -</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a> <span class="k">pass</span> -</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> +</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> +</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> -</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> +</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> +</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="k">pass</span> </span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> -</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> +</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> +</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> -</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="s2">"materialized"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="s2">"cascade"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="p">}</span> -</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> -</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> -</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> +</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> +</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span> +</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span> </span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> -</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> -</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="k">pass</span> +</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a><span class="sd"> Example:</span> +</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a><span class="sd"> >>> delete("tbl").sql()</span> +</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a><span class="sd"> 'DELETE FROM tbl'</span> </span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> -</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> -</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span> -</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"row_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> +</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a><span class="sd"> Args:</span> +</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a><span class="sd"> table: the table from which to delete.</span> +</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> +</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> </span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> -</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="s2">"reference"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="s2">"delete"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="s2">"update"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="p">}</span> -</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> -</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> -</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> +</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a><span class="sd"> Returns:</span> +</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a><span class="sd"> """</span> +</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> +</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"this"</span><span class="p">,</span> +</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> +</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="p">)</span> </span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> -</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> -</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> -</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span> -</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples</span> -</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unlogged"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> -</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> -</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> -</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> -</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="k">pass</span> -</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> -</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> -</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> -</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> -</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span> +</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a><span class="sd"> Append to or set the WHERE expressions.</span> +</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> +</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a><span class="sd"> Example:</span> +</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a><span class="sd"> >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()</span> +</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a><span class="sd"> "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> +</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a><span class="sd"> Args:</span> +</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span> +</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> </span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> -</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> -</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> -</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="nd">@property</span> -</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">))</span> -</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> -</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> -</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> <span class="ow">and</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="o">==</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> -</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()))</span> +</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a><span class="sd"> Returns:</span> +</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a><span class="sd"> """</span> +</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> +</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> +</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="p">)</span> </span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> -</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="nd">@property</span> -</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> -</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> -</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="s2">"primary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="s2">"amp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span> -</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="p">}</span> -</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> -</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> -</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="s2">"alternative"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="p">}</span> -</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a> -</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a> -</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> -</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> -</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span> -</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> -</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> -</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a><span class="c1"># national char, like n'utf8'</span> -</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> <span class="k">pass</span> -</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> -</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> -</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a> <span class="s2">"inpath"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="s2">"input_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a> <span class="p">}</span> +</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span> +</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span> +</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> +</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a><span class="sd"> Example:</span> +</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a><span class="sd"> >>> delete("tbl").returning("*", dialect="postgres").sql()</span> +</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a><span class="sd"> 'DELETE FROM tbl RETURNING *'</span> +</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> +</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a><span class="sd"> Args:</span> +</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a><span class="sd"> expression: the SQL code strings to parse.</span> +</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> +</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a><span class="sd"> Returns:</span> +</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a><span class="sd"> """</span> +</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"returning"</span><span class="p">,</span> +</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"RETURNING"</span><span class="p">,</span> +</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span> +</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> <span class="p">)</span> +</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> +</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> +</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> <span class="s2">"materialized"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="s2">"cascade"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a> <span class="p">}</span> +</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a> +</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> +</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a> +</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> +</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <span class="k">pass</span> +</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a> </span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a> -</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a> -</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span> +</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"row_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a> </span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a> -</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"direction"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"count"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a> -</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a> -</span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> <span class="s2">"grouping_sets"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> <span class="s2">"cube"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="s2">"rollup"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="p">}</span> +</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a> <span class="s2">"reference"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a> <span class="s2">"delete"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a> <span class="s2">"update"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a> <span class="p">}</span> +</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> +</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> +</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> </span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> -</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> </span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a> -</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> -</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> -</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_string"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> -</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> -</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> -</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> -</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="p">)</span> +</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/sql-selectinto.html</span> +</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a><span class="c1"># https://docs.aws.amazon.com/redshift/latest/dg/r_SELECT_INTO.html#r_SELECT_INTO-examples</span> +</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unlogged"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a> +</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a> +</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> +</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> +</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> <span class="k">pass</span> +</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> </span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> -</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]))</span> +</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a> -</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a> <span class="nd">@classmethod</span> -</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> -</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a> +</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> -</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> <span class="nd">@classmethod</span> -</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> -</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> +</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a> </span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</span></a> <span class="nd">@property</span> -</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">))</span> </span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a> -</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a> -</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a> <span class="s2">"natural"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a> <span class="p">}</span> +</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> +</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> <span class="ow">and</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="o">==</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a> +</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()))</span> +</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a> +</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a> <span class="nd">@property</span> +</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a> </span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a> -</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="nd">@property</span> -</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> -</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="nd">@property</span> -</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"side"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a> -</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="nd">@property</span> -</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a> <span class="s2">"primary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="s2">"amp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span> +</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> <span class="p">}</span> +</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a> </span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a> -</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a><span class="sd"> Append to or set the ON expressions.</span> -</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> -</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a><span class="sd"> Example:</span> -</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()</span> -</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a><span class="sd"> 'JOIN x ON y = 1'</span> -</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> -</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a><span class="sd"> Args:</span> -</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a> -</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a><span class="sd"> Returns:</span> -</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a><span class="sd"> Join: the modified join expression.</span> -</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a><span class="sd"> """</span> -</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"on"</span><span class="p">,</span> -</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> <span class="p">)</span> -</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> -</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> -</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a> -</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="k">return</span> <span class="n">join</span> -</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> -</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a><span class="sd"> Append to or set the USING expressions.</span> -</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a> -</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a><span class="sd"> Example:</span> -</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()</span> -</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a><span class="sd"> 'JOIN x USING (foo, bla)'</span> +</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a> <span class="s2">"alternative"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a> <span class="p">}</span> +</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a> +</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a> +</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a> +</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> +</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/charset-introducer.html</span> +</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> +</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> +</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a><span class="c1"># national char, like n'utf8'</span> +</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a> <span class="k">pass</span> +</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> +</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> +</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> <span class="s2">"inpath"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a> <span class="s2">"input_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> <span class="p">}</span> +</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> +</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a> +</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a> +</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> +</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"direction"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"count"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a> -</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a><span class="sd"> Args:</span> -</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing "using" list.</span> -</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a> +</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a> <span class="s2">"grouping_sets"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a> <span class="s2">"cube"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a> <span class="s2">"rollup"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a> <span class="p">}</span> </span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a> -</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a><span class="sd"> Returns:</span> -</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a><span class="sd"> Join: the modified join expression.</span> -</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a><span class="sd"> """</span> -</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> -</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="p">)</span> -</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> -</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> -</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> -</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="k">return</span> <span class="n">join</span> -</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> +</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a> +</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a> +</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a> +</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a> +</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a> +</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_string"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> +</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> +</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> +</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> +</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> <span class="p">)</span> </span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a> -</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"view"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"outer"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]))</span> </span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> -</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> -</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> <span class="s2">"measures"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a> <span class="s2">"after"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a> <span class="s2">"pattern"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a> <span class="s2">"define"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="p">}</span> +</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <span class="nd">@classmethod</span> +</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> +</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> +</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a> <span class="nd">@classmethod</span> +</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> +</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a> +</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a> <span class="nd">@property</span> +</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> </span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> </span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> -</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span> -</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span> -</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <span class="k">pass</span> -</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> -</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> -</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> +</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a> <span class="s2">"natural"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="p">}</span> </span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> -</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> +</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="nd">@property</span> +</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> </span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a> -</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a><span class="c1"># hive specific sorts</span> -</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span> -</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> -</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a> <span class="k">pass</span> -</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a> -</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a> -</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> -</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a> <span class="k">pass</span> -</span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</span></a> -</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a> -</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> -</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a> <span class="k">pass</span> -</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a> -</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a> -</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"desc"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"nulls_first"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="nd">@property</span> +</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"side"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a> +</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="nd">@property</span> +</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a> +</span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a><span class="sd"> Append to or set the ON expressions.</span> +</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a> +</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a><span class="sd"> Example:</span> +</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()</span> +</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a><span class="sd"> 'JOIN x ON y = 1'</span> </span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a> -</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a> -</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"value"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a> -</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a> -</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> -</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> -</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> -</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a> -</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a> -</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a> -</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"autotemp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"always"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"manual"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"never"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> -</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> -</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a> -</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> -</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a><span class="sd"> Args:</span> +</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a> +</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a><span class="sd"> Returns:</span> +</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a><span class="sd"> Join: the modified join expression.</span> +</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a><span class="sd"> """</span> +</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"on"</span><span class="p">,</span> +</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="p">)</span> +</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> +</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> +</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a> +</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a> <span class="k">return</span> <span class="n">join</span> </span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a> -</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> -</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a><span class="sd"> Append to or set the USING expressions.</span> </span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a> -</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a> -</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"units"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a> +</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a><span class="sd"> Example:</span> +</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()</span> +</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a><span class="sd"> 'JOIN x USING (foo, bla)'</span> </span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a> -</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a> -</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> -</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> -</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a> -</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> -</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> -</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> -</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> -</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> -</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> -</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> -</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> -</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"protection"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a><span class="sd"> Args:</span> +</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing "using" list.</span> +</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a> +</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a><span class="sd"> Returns:</span> +</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a><span class="sd"> Join: the modified join expression.</span> +</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a><span class="sd"> """</span> +</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> +</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="p">)</span> +</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> +</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> +</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> +</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a> <span class="k">return</span> <span class="n">join</span> </span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a> </span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a> -</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"view"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"outer"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a> </span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a> -</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a> -</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a> -</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a> <span class="s2">"concurrent"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a> <span class="s2">"for_all"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a> <span class="s2">"for_insert"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a> <span class="s2">"for_none"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> <span class="p">}</span> -</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> -</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> -</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"before"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a> <span class="s2">"measures"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="s2">"after"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a> <span class="s2">"pattern"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a> <span class="s2">"define"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a> <span class="p">}</span> +</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a> +</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> +</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a><span class="c1"># Clickhouse FROM FINAL modifier</span> +</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/statements/select/from/#final-modifier</span> +</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="k">pass</span> </span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a> </span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a> -</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a> </span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a> -</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a> </span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a> -</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a> -</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> -</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> <span class="s2">"for_or_in"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> <span class="s2">"lock_type"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a> <span class="s2">"override"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="p">}</span> +</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a><span class="c1"># hive specific sorts</span> +</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a><span class="c1"># https://cwiki.apache.org/confluence/display/Hive/LanguageManual+SortBy</span> +</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> +</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="k">pass</span> +</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a> +</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a> +</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> +</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="k">pass</span> +</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> +</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> +</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> +</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="k">pass</span> </span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a> </span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a> -</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"desc"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"nulls_first"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a> </span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> -</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"value"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</span></a> </span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a> -</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> </span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> -</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> </span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</span></a> -</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a> </span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> -</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"autotemp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"always"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"manual"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"never"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a> </span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a> -</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a> </span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a> -</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span> -</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a> <span class="s2">"fields"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a> <span class="s2">"escaped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="s2">"collection_items"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="s2">"map_keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> <span class="s2">"lines"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="p">}</span> +</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a> +</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a> +</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> +</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> +</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"units"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> </span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a> -</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> -</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a> </span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a> -</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> -</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</span></a> </span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a> -</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a> -</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> </span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a> -</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> -</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"multi"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> </span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a> -</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a> -</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"compound"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> </span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a> -</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a> -</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"definer"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> </span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a> -</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> -</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"protection"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> </span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a> -</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a> -</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"global_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a> </span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a> -</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a> -</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> </span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a> -</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> -</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a><span class="k">class</span> <span class="nc">VolatilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> -</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> -</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"statistics"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> +</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> <span class="s2">"concurrent"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="s2">"for_all"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="s2">"for_insert"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="s2">"for_none"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> <span class="p">}</span> </span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a> -</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a> +</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a> +</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"before"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a> -</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a> -</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a> <span class="s2">"ALGORITHM"</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span> -</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="s2">"AUTO_INCREMENT"</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span> -</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span> -</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="s2">"COLLATE"</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span> -</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span> -</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="s2">"DEFINER"</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span> -</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> <span class="s2">"DISTKEY"</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span> -</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> <span class="s2">"DISTSTYLE"</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span> -</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span> -</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a> <span class="s2">"EXECUTE AS"</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span> -</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span> -</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a> <span class="s2">"LANGUAGE"</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span> -</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="s2">"LOCATION"</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span> -</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span> -</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a> <span class="s2">"RETURNS"</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span> -</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span> -</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</span></a> <span class="s2">"TABLE_FORMAT"</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span> -</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="p">}</span> +</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a> +</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> +</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a> +</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> +</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> +</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> +</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</span></a> +</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="s2">"for_or_in"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a> <span class="s2">"lock_type"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a> <span class="s2">"override"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</span></a> <span class="p">}</span> +</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> </span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</span></a> -</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> -</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a> -</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a> <span class="c1"># CREATE property locations</span> -</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="c1"># Form: schema specified</span> -</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a> <span class="c1"># create [POST_CREATE]</span> -</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="c1"># table a [POST_NAME]</span> -</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span> -</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="c1"># with ([POST_WITH])</span> -</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a> <span class="c1"># index (b) [POST_INDEX]</span> -</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="c1">#</span> -</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> <span class="c1"># Form: alias selection</span> -</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a> <span class="c1"># create [POST_CREATE]</span> -</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="c1"># table a [POST_NAME]</span> -</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span> -</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> <span class="c1"># index (c) [POST_INDEX]</span> -</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> -</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a> -</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="nd">@classmethod</span> -</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">Properties</span><span class="p">:</span> -</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> -</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span> -</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> -</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> -</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> -</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> -</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> -</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a> <span class="k">pass</span> +</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a> +</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> +</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> +</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> +</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> +</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a> +</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> +</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a> +</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</span></a> +</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> +</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> +</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> +</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> +</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> +</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span> +</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="s2">"fields"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</span></a> <span class="s2">"escaped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="s2">"collection_items"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="s2">"map_keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="s2">"lines"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="p">}</span> +</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a> </span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a> -</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a> -</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span> -</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a> <span class="k">pass</span> -</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a> -</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> -</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a> -</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> -</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a> -</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> -</span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span> -</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Subquery</span><span class="p">:</span> -</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span> +</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a> +</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a> +</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a> +</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a> +</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a> +</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a> +</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"multi"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a> +</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a> +</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"compound"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</span></a> -</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a><span class="sd"> Example:</span> -</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a><span class="sd"> >>> subquery = Select().select("x").from_("tbl").subquery()</span> -</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a><span class="sd"> >>> Select().select("x").from_(subquery).sql()</span> -</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl)'</span> +</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> +</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"definer"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</span></a> </span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a> -</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</span></a><span class="sd"> Args:</span> -</span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span> -</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a> </span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a> -</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a><span class="sd"> Returns:</span> -</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a><span class="sd"> Alias: the subquery</span> -</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a><span class="sd"> """</span> -</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span> -</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> -</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)),</span> -</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a> <span class="p">)</span> -</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a> -</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span> +</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"global_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a> +</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> +</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> +</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a> +</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a><span class="k">class</span> <span class="nc">VolatilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> </span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a> -</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="nd">@property</span> -</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="n">with_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"with"</span><span class="p">)</span> -</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span> -</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"statistics"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> +</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> +</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> -</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> <span class="nd">@property</span> -</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `selects`"</span><span class="p">)</span> +</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> +</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a> -</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a> <span class="nd">@property</span> -</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `named_selects`"</span><span class="p">)</span> -</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> -</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span> -</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="n">as_</span><span class="p">,</span> -</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a> <span class="p">):</span> -</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a><span class="sd"> Append to or set the common table expressions.</span> -</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> -</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a><span class="sd"> Example:</span> -</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a><span class="sd"> >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()</span> -</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a><span class="sd"> 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span> -</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> -</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a><span class="sd"> Args:</span> -</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span> -</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span> -</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span> -</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span> -</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a> -</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a><span class="sd"> Returns:</span> -</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a><span class="sd"> """</span> -</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> -</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="p">)</span> -</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="n">as_</span><span class="p">,</span> -</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="p">)</span> -</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span> -</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> -</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span> -</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="p">)</span> -</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="n">cte</span><span class="p">,</span> -</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"with"</span><span class="p">,</span> -</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span> -</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"recursive"</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span> -</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="p">)</span> +</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="s2">"ALGORITHM"</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span> +</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a> <span class="s2">"AUTO_INCREMENT"</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span> +</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span> +</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="s2">"COLLATE"</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span> +</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span> +</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="s2">"DEFINER"</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span> +</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="s2">"DISTKEY"</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span> +</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="s2">"DISTSTYLE"</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span> +</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span> +</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="s2">"EXECUTE AS"</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span> +</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span> +</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="s2">"LANGUAGE"</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span> +</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a> <span class="s2">"LOCATION"</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span> +</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span> +</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="s2">"RETURNS"</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span> +</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span> +</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a> <span class="s2">"TABLE_FORMAT"</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span> +</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="p">}</span> +</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a> +</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> +</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a> +</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="c1"># CREATE property locations</span> +</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> <span class="c1"># Form: schema specified</span> +</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a> <span class="c1"># create [POST_CREATE]</span> +</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a> <span class="c1"># table a [POST_NAME]</span> +</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span> +</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a> <span class="c1"># with ([POST_WITH])</span> +</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a> <span class="c1"># index (b) [POST_INDEX]</span> +</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a> <span class="c1">#</span> +</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a> <span class="c1"># Form: alias selection</span> +</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a> <span class="c1"># create [POST_CREATE]</span> +</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a> <span class="c1"># table a [POST_NAME]</span> +</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span> +</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a> <span class="c1"># index (c) [POST_INDEX]</span> +</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> +</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> +</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="nd">@classmethod</span> +</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">Properties</span><span class="p">:</span> +</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span> +</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> +</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> +</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> +</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> +</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a> +</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="k">pass</span> </span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a> </span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a> -</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a> <span class="s2">"match"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="s2">"laterals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> <span class="s2">"joins"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> <span class="s2">"pivots"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> <span class="s2">"group"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> <span class="s2">"having"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="s2">"qualify"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a> <span class="s2">"windows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a> <span class="s2">"distribute"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a> <span class="s2">"sort"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a> <span class="s2">"cluster"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a> <span class="s2">"lock"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> <span class="s2">"sample"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a><span class="p">}</span> -</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a> -</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a> -</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1762"><a href="#L-1762"><span class="linenos">1762</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</span></a> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a> <span class="s2">"laterals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a> <span class="s2">"joins"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a> <span class="s2">"pivots"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="s2">"hints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</span></a> <span class="s2">"system_time"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="p">}</span> -</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a> -</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a> <span class="nd">@property</span> -</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> -</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> -</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> <span class="nd">@property</span> -</span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> -</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> -</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> -</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a><span class="c1"># See the TSQL "Querying data in a system-versioned temporal table" page</span> -</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> <span class="p">}</span> -</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a> -</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> -</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> -</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a> <span class="p">}</span> -</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> -</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a><span class="sd"> Set the LIMIT expression.</span> -</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a> -</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a><span class="sd"> Example:</span> -</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a><span class="sd"> >>> select("1").union(select("1")).limit(1).sql()</span> -</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a><span class="sd"> 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span> -</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a> -</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a><span class="sd"> Args:</span> -</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> -</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> -</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> -</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a><span class="sd"> Returns:</span> -</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a><span class="sd"> Select: The limited subqueryable.</span> -</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a><span class="sd"> """</span> -</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> -</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_l_0"</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span> -</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="p">)</span> -</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a> -</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> -</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">:</span> -</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a><span class="w"> </span><span class="sd">"""Append to or set the SELECT of the union recursively.</span> -</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> -</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a><span class="sd"> Example:</span> -</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a><span class="sd"> >>> from sqlglot import parse_one</span> -</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a><span class="sd"> >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()</span> -</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a><span class="sd"> 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span> -</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> -</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a><span class="sd"> Args:</span> -</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> -</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> -</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> -</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a><span class="c1"># https://www.ibm.com/docs/en/ias?topic=procedures-return-statement-in-sql</span> +</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="k">pass</span> +</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> +</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> +</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> +</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a> +</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a> +</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a> +</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span> +</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Subquery</span><span class="p">:</span> +</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span> +</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> +</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a><span class="sd"> Example:</span> +</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a><span class="sd"> >>> subquery = Select().select("x").from_("tbl").subquery()</span> +</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a><span class="sd"> >>> Select().select("x").from_(subquery).sql()</span> +</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl)'</span> +</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> +</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a><span class="sd"> Args:</span> +</span><span id="L-1762"><a href="#L-1762"><span class="linenos">1762</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span> +</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</span></a> +</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a><span class="sd"> Returns:</span> +</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a><span class="sd"> Alias: the subquery</span> +</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a><span class="sd"> """</span> +</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span> +</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> +</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)),</span> +</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a> <span class="p">)</span> +</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a> +</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span> +</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> +</span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="nd">@property</span> +</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="n">with_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"with"</span><span class="p">)</span> +</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span> +</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> +</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="nd">@property</span> +</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `selects`"</span><span class="p">)</span> +</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> +</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a> <span class="nd">@property</span> +</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `named_selects`"</span><span class="p">)</span> +</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a> +</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span> +</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a> <span class="n">as_</span><span class="p">,</span> +</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a> <span class="p">):</span> +</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a><span class="sd"> Append to or set the common table expressions.</span> +</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a> +</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a><span class="sd"> Example:</span> +</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a><span class="sd"> >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()</span> +</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a><span class="sd"> 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span> +</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a> +</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a><span class="sd"> Args:</span> +</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span> +</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span> +</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span> +</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span> +</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a> +</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a><span class="sd"> Returns:</span> +</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a><span class="sd"> """</span> +</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> +</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="p">)</span> +</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="n">as_</span><span class="p">,</span> +</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> <span class="p">)</span> +</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span> +</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> +</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span> +</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a> <span class="p">)</span> +</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a> <span class="n">cte</span><span class="p">,</span> +</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"with"</span><span class="p">,</span> +</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span> +</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"recursive"</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span> +</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="p">)</span> </span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> -</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a><span class="sd"> Returns:</span> -</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a><span class="sd"> Union: the modified expression.</span> -</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a><span class="sd"> """</span> -</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span> -</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span> -</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> -</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="p">)</span> -</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> -</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> <span class="nd">@property</span> -</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span> -</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a> -</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="nd">@property</span> -</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> -</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> -</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> <span class="nd">@property</span> -</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> +</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> +</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a><span class="n">QUERY_MODIFIERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="s2">"match"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a> <span class="s2">"laterals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="s2">"joins"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="s2">"pivots"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="s2">"group"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="s2">"having"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> <span class="s2">"qualify"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> <span class="s2">"windows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a> <span class="s2">"distribute"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="s2">"sort"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a> <span class="s2">"cluster"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> <span class="s2">"lock"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> <span class="s2">"sample"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a><span class="p">}</span> +</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> </span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> -</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> <span class="nd">@property</span> -</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> -</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="nd">@property</span> -</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> -</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> -</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> -</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> -</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="k">pass</span> -</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> +</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="s2">"laterals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="s2">"joins"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> <span class="s2">"pivots"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a> <span class="s2">"hints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="s2">"system_time"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> <span class="p">}</span> </span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a> -</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> -</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="k">pass</span> -</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> +</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a> <span class="nd">@property</span> +</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> </span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a> -</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="p">}</span> -</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> -</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a> -</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="p">}</span> -</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> -</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> -</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="p">}</span> +</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a> <span class="nd">@property</span> +</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> +</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> +</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a> +</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a><span class="c1"># See the TSQL "Querying data in a system-versioned temporal table" page</span> +</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="p">}</span> +</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> +</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> +</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> +</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="p">}</span> +</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> +</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a><span class="sd"> Set the LIMIT expression.</span> </span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a> -</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a> -</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="k">pass</span> +</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a><span class="sd"> Example:</span> +</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a><span class="sd"> >>> select("1").union(select("1")).limit(1).sql()</span> +</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a><span class="sd"> 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span> </span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a> -</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a> -</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> -</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> -</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a><span class="c1"># Used to represent the FOR UPDATE and FOR SHARE locking read types.</span> -</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html</span> -</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"update"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a> -</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a> -</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="s2">"hint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a> <span class="s2">"into"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> -</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="p">}</span> -</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a> -</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a><span class="sd"> Set the FROM expression.</span> -</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</span></a> -</span><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a><span class="sd"> Example:</span> -</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sql()</span> -</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a><span class="sd"> 'SELECT x FROM tbl'</span> -</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a> -</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a><span class="sd"> Args:</span> -</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span> -</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span> -</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span> -</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a> -</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a><span class="sd"> Returns:</span> -</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a><span class="sd"> """</span> -</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"from"</span><span class="p">,</span> -</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> -</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> -</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="p">)</span> -</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> -</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a><span class="sd"> Set the GROUP BY expression.</span> -</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> -</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a><span class="sd"> Example:</span> -</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a><span class="sd"> >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()</span> -</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a><span class="sd"> 'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span> -</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> -</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a><span class="sd"> Args:</span> -</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span> -</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span> -</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span> -</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a> -</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a><span class="sd"> Returns:</span> -</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a><span class="sd"> """</span> -</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"group"</span><span class="p">,</span> -</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"GROUP BY"</span><span class="p">,</span> -</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span> -</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a> <span class="p">)</span> -</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a> -</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a><span class="sd"> Set the ORDER BY expression.</span> -</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a> -</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a><span class="sd"> Example:</span> -</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a><span class="sd"> >>> Select().from_("tbl").select("x").order_by("x DESC").sql()</span> -</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a><span class="sd"> 'SELECT x FROM tbl ORDER BY x DESC'</span> -</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a> -</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a><span class="sd"> Args:</span> -</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span> -</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a><span class="sd"> Args:</span> +</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> +</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> +</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> +</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a><span class="sd"> Returns:</span> +</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a><span class="sd"> Select: The limited subqueryable.</span> +</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a><span class="sd"> """</span> +</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> +</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_l_0"</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span> +</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="p">)</span> +</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a> +</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> +</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">:</span> +</span><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a><span class="w"> </span><span class="sd">"""Append to or set the SELECT of the union recursively.</span> +</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a> +</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a><span class="sd"> Example:</span> +</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a><span class="sd"> >>> from sqlglot import parse_one</span> +</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a><span class="sd"> >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()</span> +</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a><span class="sd"> 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span> +</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a> +</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a><span class="sd"> Args:</span> +</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> +</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a> +</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a><span class="sd"> Returns:</span> +</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a><span class="sd"> Union: the modified expression.</span> +</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a><span class="sd"> """</span> +</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span> +</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span> +</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> +</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="p">)</span> +</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> +</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="nd">@property</span> +</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span> +</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> +</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="nd">@property</span> +</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> +</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> +</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="nd">@property</span> +</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> +</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a> +</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a> <span class="nd">@property</span> +</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a> +</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a> <span class="nd">@property</span> +</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> +</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a> +</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a> +</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> +</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="k">pass</span> +</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a> +</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> +</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> +</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a> <span class="k">pass</span> +</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a> +</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a> +</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a> <span class="p">}</span> +</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a> +</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a> +</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a> <span class="p">}</span> +</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a> +</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a> +</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a> <span class="p">}</span> +</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a> </span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a> -</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a><span class="sd"> Returns:</span> -</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a><span class="sd"> """</span> -</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"order"</span><span class="p">,</span> -</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ORDER BY"</span><span class="p">,</span> -</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span> -</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="p">)</span> -</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a> -</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a><span class="sd"> Set the SORT BY expression.</span> -</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> -</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a><span class="sd"> Example:</span> -</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sort_by("x DESC").sql()</span> -</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a><span class="sd"> 'SELECT x FROM tbl SORT BY x DESC'</span> -</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a> -</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</span></a><span class="sd"> Args:</span> -</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span> -</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a> <span class="k">pass</span> +</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> +</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a> +</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> +</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a> +</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a><span class="c1"># Used to represent the FOR UPDATE and FOR SHARE locking read types.</span> +</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a><span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html</span> +</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"update"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> +</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> +</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> <span class="s2">"hint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="s2">"into"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> +</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</span></a> <span class="p">}</span> +</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a> +</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a><span class="sd"> Set the FROM expression.</span> +</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a> +</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a><span class="sd"> Example:</span> +</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sql()</span> +</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a><span class="sd"> 'SELECT x FROM tbl'</span> </span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> -</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a><span class="sd"> Returns:</span> -</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a><span class="sd"> """</span> -</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"sort"</span><span class="p">,</span> -</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"SORT BY"</span><span class="p">,</span> -</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span> -</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="p">)</span> -</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> -</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a><span class="sd"> Set the CLUSTER BY expression.</span> -</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a> -</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a><span class="sd"> Example:</span> -</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</span></a><span class="sd"> >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql()</span> -</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a><span class="sd"> 'SELECT x FROM tbl CLUSTER BY x DESC'</span> -</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> -</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a><span class="sd"> Args:</span> -</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span> -</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a><span class="sd"> Args:</span> +</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span> +</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span> +</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span> +</span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> +</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a><span class="sd"> Returns:</span> +</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a><span class="sd"> """</span> +</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"from"</span><span class="p">,</span> +</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> +</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> +</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> <span class="p">)</span> +</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a> +</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a><span class="sd"> Set the GROUP BY expression.</span> +</span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a> +</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a><span class="sd"> Example:</span> +</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a><span class="sd"> >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()</span> +</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a><span class="sd"> 'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span> </span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a> -</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a><span class="sd"> Returns:</span> -</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a><span class="sd"> """</span> -</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"cluster"</span><span class="p">,</span> -</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> -</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span> -</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a> <span class="p">)</span> -</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> -</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a><span class="sd"> Set the LIMIT expression.</span> -</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> -</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a><span class="sd"> Example:</span> -</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a><span class="sd"> >>> Select().from_("tbl").select("x").limit(10).sql()</span> -</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a><span class="sd"> 'SELECT x FROM tbl LIMIT 10'</span> -</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a> -</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a><span class="sd"> Args:</span> -</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> -</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> -</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a><span class="sd"> Args:</span> +</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span> +</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span> +</span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span> +</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a> +</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a><span class="sd"> Returns:</span> +</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a><span class="sd"> """</span> +</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"group"</span><span class="p">,</span> +</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"GROUP BY"</span><span class="p">,</span> +</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span> +</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a> <span class="p">)</span> +</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a> +</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a><span class="sd"> Set the ORDER BY expression.</span> </span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a> -</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a><span class="sd"> Returns:</span> -</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="sd"> """</span> -</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> -</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"limit"</span><span class="p">,</span> -</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span> -</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LIMIT"</span><span class="p">,</span> -</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a> <span class="p">)</span> +</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a><span class="sd"> Example:</span> +</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a><span class="sd"> >>> Select().from_("tbl").select("x").order_by("x DESC").sql()</span> +</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a><span class="sd"> 'SELECT x FROM tbl ORDER BY x DESC'</span> +</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a> +</span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a><span class="sd"> Args:</span> +</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span> +</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> </span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a> -</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a> <span class="k">def</span> <span class="nf">offset</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a><span class="sd"> Set the OFFSET expression.</span> -</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a> -</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a><span class="sd"> Example:</span> -</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a><span class="sd"> >>> Select().from_("tbl").select("x").offset(10).sql()</span> -</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a><span class="sd"> 'SELECT x FROM tbl OFFSET 10'</span> -</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a> -</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a><span class="sd"> Args:</span> -</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span> -</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span> -</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a> -</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a><span class="sd"> Returns:</span> -</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a><span class="sd"> """</span> -</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> -</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"offset"</span><span class="p">,</span> -</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span> -</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"OFFSET"</span><span class="p">,</span> -</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="p">)</span> -</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a> -</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> -</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a><span class="sd"> Append to or set the SELECT expressions.</span> -</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a> -</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a><span class="sd"> Example:</span> -</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a><span class="sd"> >>> Select().select("x", "y").sql()</span> -</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a><span class="sd"> 'SELECT x, y'</span> -</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a> -</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a><span class="sd"> Args:</span> -</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> -</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> -</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> -</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> -</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a> -</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a><span class="sd"> Returns:</span> -</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a><span class="sd"> """</span> -</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a> <span class="p">)</span> -</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a> -</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a><span class="sd"> Append to or set the LATERAL expressions.</span> -</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a> -</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a><span class="sd"> Example:</span> -</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a><span class="sd"> >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()</span> -</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a><span class="sd"> 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span> -</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> -</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a><span class="sd"> Args:</span> -</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a><span class="sd"> Returns:</span> +</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a><span class="sd"> """</span> +</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"order"</span><span class="p">,</span> +</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ORDER BY"</span><span class="p">,</span> +</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span> +</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a> <span class="p">)</span> +</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a> +</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a><span class="sd"> Set the SORT BY expression.</span> +</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> +</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a><span class="sd"> Example:</span> +</span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sort_by("x DESC").sql()</span> +</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a><span class="sd"> 'SELECT x FROM tbl SORT BY x DESC'</span> +</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> +</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a><span class="sd"> Args:</span> +</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span> +</span><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> +</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a><span class="sd"> Returns:</span> +</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a><span class="sd"> """</span> +</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"sort"</span><span class="p">,</span> +</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"SORT BY"</span><span class="p">,</span> +</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span> +</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> <span class="p">)</span> +</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a> +</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a><span class="sd"> Set the CLUSTER BY expression.</span> +</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a> +</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a><span class="sd"> Example:</span> +</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a><span class="sd"> >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql()</span> +</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a><span class="sd"> 'SELECT x FROM tbl CLUSTER BY x DESC'</span> +</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a> +</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a><span class="sd"> Args:</span> +</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span> +</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a> +</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a><span class="sd"> Returns:</span> +</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a><span class="sd"> """</span> +</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"cluster"</span><span class="p">,</span> +</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> +</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span> +</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a> <span class="p">)</span> +</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a> +</span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a><span class="sd"> Set the LIMIT expression.</span> </span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> -</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a><span class="sd"> Returns:</span> -</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a><span class="sd"> """</span> -</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"laterals"</span><span class="p">,</span> -</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span> -</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LATERAL VIEW"</span><span class="p">,</span> -</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="p">)</span> -</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a> -</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span> -</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2251"><a href="#L-2251"><span class="linenos">2251</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a><span class="sd"> Append to or set the JOIN expressions.</span> -</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a> -</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a><span class="sd"> Example:</span> -</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()</span> -</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a><span class="sd"> 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span> -</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a> -</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a><span class="sd"> >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()</span> -</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a><span class="sd"> 'SELECT 1 FROM a JOIN b USING (x, y, z)'</span> -</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a> -</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a><span class="sd"> Use `join_type` to change the type of join:</span> -</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a> -</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()</span> -</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a><span class="sd"> 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span> -</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a> -</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a><span class="sd"> Args:</span> -</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span> -</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a><span class="sd"> on (str | Expression): optionally specify the join "on" criteria as a SQL string.</span> -</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a><span class="sd"> using (str | Expression): optionally specify the join "using" criteria as a SQL string.</span> -</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span> -</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> -</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a><span class="sd"> Returns:</span> -</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a><span class="sd"> """</span> -</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"dialect"</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span> -</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a> -</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"JOIN"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> -</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> -</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> -</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a> -</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a> -</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span> -</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span> -</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a> -</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span> -</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a> -</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">"JOIN_TYPE"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a> -</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> -</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> -</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"side"</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a> -</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span> -</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span> -</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> -</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> -</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span> -</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span> -</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> -</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a> <span class="p">)</span> +</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a><span class="sd"> Example:</span> +</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a><span class="sd"> >>> Select().from_("tbl").select("x").limit(10).sql()</span> +</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a><span class="sd"> 'SELECT x FROM tbl LIMIT 10'</span> +</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> +</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a><span class="sd"> Args:</span> +</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> +</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> +</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> +</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a><span class="sd"> Returns:</span> +</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a><span class="sd"> """</span> +</span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"limit"</span><span class="p">,</span> +</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span> +</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LIMIT"</span><span class="p">,</span> +</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="p">)</span> +</span><span id="L-2251"><a href="#L-2251"><span class="linenos">2251</span></a> +</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a> <span class="k">def</span> <span class="nf">offset</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a><span class="sd"> Set the OFFSET expression.</span> +</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a> +</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a><span class="sd"> Example:</span> +</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a><span class="sd"> >>> Select().from_("tbl").select("x").offset(10).sql()</span> +</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a><span class="sd"> 'SELECT x FROM tbl OFFSET 10'</span> +</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a> +</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a><span class="sd"> Args:</span> +</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span> +</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span> +</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a> +</span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a><span class="sd"> Returns:</span> +</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a><span class="sd"> """</span> +</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"offset"</span><span class="p">,</span> +</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span> +</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"OFFSET"</span><span class="p">,</span> +</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a> <span class="p">)</span> +</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a> +</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> +</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a><span class="sd"> Append to or set the SELECT expressions.</span> +</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a> +</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a><span class="sd"> Example:</span> +</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a><span class="sd"> >>> Select().select("x", "y").sql()</span> +</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a><span class="sd"> 'SELECT x, y'</span> +</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> +</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a><span class="sd"> Args:</span> +</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> +</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a> +</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a><span class="sd"> Returns:</span> +</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a><span class="sd"> """</span> +</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="p">)</span> +</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> +</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a><span class="sd"> Append to or set the LATERAL expressions.</span> </span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a> -</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span> -</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="n">join</span><span class="p">,</span> -</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"joins"</span><span class="p">,</span> -</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="p">)</span> -</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> -</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a><span class="sd"> Append to or set the WHERE expressions.</span> -</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> -</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a><span class="sd"> Example:</span> -</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()</span> -</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span> -</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a> -</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a><span class="sd"> Args:</span> -</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a> -</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a><span class="sd"> Returns:</span> -</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a><span class="sd"> """</span> -</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> -</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> -</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a> <span class="p">)</span> +</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a><span class="sd"> Example:</span> +</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a><span class="sd"> >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()</span> +</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a><span class="sd"> 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span> +</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a> +</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a><span class="sd"> Args:</span> +</span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a> +</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a><span class="sd"> Returns:</span> +</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a><span class="sd"> """</span> +</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"laterals"</span><span class="p">,</span> +</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span> +</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LATERAL VIEW"</span><span class="p">,</span> +</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="p">)</span> +</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a> +</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span> +</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a><span class="sd"> Append to or set the JOIN expressions.</span> </span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a> -</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a><span class="sd"> Append to or set the HAVING expressions.</span> +</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a><span class="sd"> Example:</span> +</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()</span> +</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a><span class="sd"> 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span> </span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> -</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a><span class="sd"> Example:</span> -</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a><span class="sd"> >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()</span> -</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a><span class="sd"> 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span> -</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a> -</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a><span class="sd"> Args:</span> -</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a> -</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a><span class="sd"> Returns:</span> -</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a><span class="sd"> """</span> -</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"having"</span><span class="p">,</span> -</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span> -</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> <span class="p">)</span> -</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> -</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"windows"</span><span class="p">,</span> -</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span> -</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a> <span class="p">)</span> -</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> -</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"qualify"</span><span class="p">,</span> -</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span> -</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a> <span class="p">)</span> -</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> -</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a><span class="sd"> Set the OFFSET expression.</span> -</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a> -</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a><span class="sd"> Example:</span> -</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a><span class="sd"> >>> Select().from_("tbl").select("x").distinct().sql()</span> -</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a><span class="sd"> 'SELECT DISTINCT x FROM tbl'</span> -</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a> -</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a><span class="sd"> Args:</span> -</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span> -</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a> -</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a><span class="sd"> Returns:</span> -</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a><span class="sd"> """</span> -</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">()</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a> <span class="k">return</span> <span class="n">instance</span> -</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a> -</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Create</span><span class="p">:</span> -</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span> -</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> -</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a><span class="sd"> Example:</span> -</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a><span class="sd"> >>> Select().select("*").from_("tbl").ctas("x").sql()</span> -</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a><span class="sd"> 'CREATE TABLE x AS SELECT * FROM tbl'</span> -</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> -</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a><span class="sd"> Args:</span> -</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span> -</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span> -</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span> -</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span> -</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a> -</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a><span class="sd"> Returns:</span> -</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span> -</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a><span class="sd"> """</span> -</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a> <span class="n">table</span><span class="p">,</span> -</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> -</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a> <span class="p">)</span> -</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> -</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> -</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a> -</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span> -</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span> -</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"table"</span><span class="p">,</span> -</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> -</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span> +</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a><span class="sd"> >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()</span> +</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a><span class="sd"> 'SELECT 1 FROM a JOIN b USING (x, y, z)'</span> +</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a> +</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a><span class="sd"> Use `join_type` to change the type of join:</span> +</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> +</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()</span> +</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a><span class="sd"> 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span> +</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a> +</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a><span class="sd"> Args:</span> +</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span> +</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a><span class="sd"> on (str | Expression): optionally specify the join "on" criteria as a SQL string.</span> +</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a><span class="sd"> using (str | Expression): optionally specify the join "using" criteria as a SQL string.</span> +</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span> +</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a> +</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a><span class="sd"> Returns:</span> +</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a><span class="sd"> """</span> +</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"dialect"</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span> +</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> +</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"JOIN"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> +</span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> +</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> +</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a> +</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a> +</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span> +</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span> +</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a> +</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span> +</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a> +</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">"JOIN_TYPE"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> +</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> +</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> +</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"side"</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a> +</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span> +</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span> +</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a> +</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> +</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span> +</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span> +</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> +</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a> <span class="p">)</span> +</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a> +</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span> +</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="n">join</span><span class="p">,</span> +</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"joins"</span><span class="p">,</span> +</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="p">)</span> +</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> +</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a><span class="sd"> Append to or set the WHERE expressions.</span> +</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> +</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a><span class="sd"> Example:</span> +</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()</span> +</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> +</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a><span class="sd"> Args:</span> +</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a> +</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a><span class="sd"> Returns:</span> +</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a><span class="sd"> """</span> +</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> +</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> +</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> </span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a> <span class="p">)</span> </span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a> -</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> </span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a><span class="sd"> Set the locking read mode for this expression.</span> +</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a><span class="sd"> Append to or set the HAVING expressions.</span> </span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> -</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a><span class="sd"> Examples:</span> -</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")</span> -</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span> +</span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a><span class="sd"> Example:</span> +</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a><span class="sd"> >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()</span> +</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a><span class="sd"> 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span> </span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a> -</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")</span> -</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span> -</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a> -</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a><span class="sd"> Args:</span> -</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span> -</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a> -</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a><span class="sd"> Returns:</span> -</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a><span class="sd"> The modified expression.</span> -</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a><span class="sd"> """</span> -</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a> -</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"lock"</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span> -</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a> -</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="k">return</span> <span class="n">inst</span> -</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a> -</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="nd">@property</span> -</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span> -</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a> -</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="nd">@property</span> -</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a><span class="sd"> Args:</span> +</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a> +</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a><span class="sd"> Returns:</span> +</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a><span class="sd"> """</span> +</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"having"</span><span class="p">,</span> +</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span> +</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a> <span class="p">)</span> </span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a> -</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="nd">@property</span> -</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span> -</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a> -</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> -</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> -</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> -</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a> <span class="p">}</span> -</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> -</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a><span class="sd"> Returns the first non subquery.</span> -</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a><span class="sd"> """</span> -</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span> -</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span> -</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> -</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a> <span class="nd">@property</span> -</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> -</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a> -</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="nd">@property</span> -</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> -</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a> -</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> -</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="s2">"method"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> <span class="s2">"bucket_numerator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a> <span class="s2">"bucket_denominator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a> <span class="s2">"bucket_field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="s2">"seed"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a> <span class="p">}</span> -</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> -</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> -</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a><span class="w"> </span><span class="sd">"""Tags are used for generating arbitrary sql like SELECT <span>x</span>."""</span> -</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a> -</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a> <span class="s2">"postfix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a> <span class="p">}</span> -</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a> -</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a> -</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="s2">"unpivot"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="p">}</span> -</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> -</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a> -</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a> <span class="s2">"spec"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="p">}</span> -</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a> -</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a> -</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="s2">"start_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a> <span class="s2">"end_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a> <span class="p">}</span> -</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a> -</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a> -</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> <span class="k">pass</span> -</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> -</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a> -</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a> -</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a> <span class="nd">@property</span> -</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a> <span class="k">return</span> <span class="s2">"*"</span> -</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a> -</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a> <span class="nd">@property</span> -</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> +</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"windows"</span><span class="p">,</span> +</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span> +</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="p">)</span> +</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a> +</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"qualify"</span><span class="p">,</span> +</span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span> +</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a> <span class="p">)</span> +</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a> +</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a><span class="sd"> Set the OFFSET expression.</span> +</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> +</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a><span class="sd"> Example:</span> +</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a><span class="sd"> >>> Select().from_("tbl").select("x").distinct().sql()</span> +</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a><span class="sd"> 'SELECT DISTINCT x FROM tbl'</span> +</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a> +</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a><span class="sd"> Args:</span> +</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span> +</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> +</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a><span class="sd"> Returns:</span> +</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a><span class="sd"> """</span> +</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">()</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a> +</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Create</span><span class="p">:</span> +</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span> +</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a> +</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a><span class="sd"> Example:</span> +</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a><span class="sd"> >>> Select().select("*").from_("tbl").ctas("x").sql()</span> +</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a><span class="sd"> 'CREATE TABLE x AS SELECT * FROM tbl'</span> +</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a> +</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a><span class="sd"> Args:</span> +</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span> +</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span> +</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span> +</span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span> +</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a> +</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a><span class="sd"> Returns:</span> +</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span> +</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a><span class="sd"> """</span> +</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> <span class="n">table</span><span class="p">,</span> +</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> +</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a> <span class="p">)</span> +</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> +</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> +</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> +</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span> +</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span> +</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"table"</span><span class="p">,</span> +</span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> +</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span> +</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a> <span class="p">)</span> +</span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a> +</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a><span class="sd"> Set the locking read mode for this expression.</span> +</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a> +</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a><span class="sd"> Examples:</span> +</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")</span> +</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span> +</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> +</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")</span> +</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span> +</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> +</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a><span class="sd"> Args:</span> +</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span> +</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> +</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a><span class="sd"> Returns:</span> +</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a><span class="sd"> The modified expression.</span> +</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a><span class="sd"> """</span> +</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a> +</span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"lock"</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span> </span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> -</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> -</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> -</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> -</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a> -</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a> -</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a> -</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a> <span class="k">return</span> <span class="n">inst</span> +</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> +</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="nd">@property</span> +</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span> +</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> +</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="nd">@property</span> +</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a> +</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a> <span class="nd">@property</span> +</span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span> +</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a> </span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a> -</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a> <span class="nd">@property</span> -</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> -</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a> -</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a> -</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a> <span class="k">pass</span> +</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> +</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> +</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a> <span class="p">}</span> </span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a> -</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a> -</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="s2">"nested"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> <span class="p">}</span> -</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> -</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> -</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span> -</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a> -</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="p">}</span> +</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a><span class="sd"> Returns the first non subquery.</span> +</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a><span class="sd"> """</span> +</span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span> +</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span> +</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> +</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="nd">@property</span> +</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> +</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> +</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="nd">@property</span> +</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> +</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a> +</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a> +</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="s2">"method"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> <span class="s2">"bucket_numerator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="s2">"bucket_denominator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> <span class="s2">"bucket_field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="s2">"seed"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="p">}</span> +</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> +</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> +</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a><span class="w"> </span><span class="sd">"""Tags are used for generating arbitrary sql like SELECT <span>x</span>."""</span> +</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> +</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="s2">"postfix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="p">}</span> +</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</span></a> +</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> +</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="s2">"unpivot"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="p">}</span> +</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> +</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> +</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a> <span class="s2">"spec"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> <span class="p">}</span> +</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a> +</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a> +</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="s2">"start_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="s2">"end_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="p">}</span> +</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a> +</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> +</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="k">pass</span> +</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> </span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> -</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="p">}</span> +</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> +</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="nd">@property</span> +</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="k">return</span> <span class="s2">"*"</span> </span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a> -</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="p">}</span> +</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="nd">@property</span> +</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> </span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> -</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span> -</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> -</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="p">}</span> -</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a> -</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a> <span class="nd">@classmethod</span> -</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span> -</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> -</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">DataType</span><span class="p">:</span> -</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span> -</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a> -</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span> -</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> -</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span> -</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span> -</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span> -</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="k">return</span> <span class="n">dtype</span> -</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type"</span><span class="p">)</span> -</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span> -</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> -</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span> -</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a> -</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> -</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span> -</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="k">pass</span> -</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> -</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> -</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> -</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> -</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a><span class="c1"># WHERE x <OP> EXISTS|ALL|ANY|SOME(SELECT ...)</span> -</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="k">pass</span> -</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a> -</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a> -</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> -</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="k">pass</span> -</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> -</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a> -</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> -</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="k">pass</span> -</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> -</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> -</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> -</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="k">pass</span> -</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a> -</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a> -</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span> -</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a><span class="c1"># expressions we parse whatever comes after the command's name as a string.</span> -</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a> -</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a> -</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"modes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a> -</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> -</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"chain"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> -</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> -</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"savepoint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> -</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> -</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"actions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> -</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> -</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"enforced"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a> -</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> -</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> -</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> -</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a><span class="c1"># Binary expressions like (ADD a b)</span> -</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> -</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="nd">@property</span> -</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> -</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="nd">@property</span> -</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> -</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> -</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> -</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="k">pass</span> +</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> +</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> +</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> +</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> +</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a> +</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> +</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a> +</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a> <span class="nd">@property</span> +</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> +</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a> +</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> +</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a> <span class="k">pass</span> +</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> +</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> +</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> <span class="s2">"nested"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="p">}</span> +</span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> +</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> +</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span> +</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> +</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="p">}</span> +</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> +</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="p">}</span> </span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> -</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> -</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="k">pass</span> -</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> +</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="p">}</span> </span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> -</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> -</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="k">pass</span> -</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> -</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> -</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> -</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="k">pass</span> -</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> -</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> -</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="k">pass</span> -</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> -</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> -</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="k">pass</span> -</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> +</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span> +</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> +</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="p">}</span> +</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> +</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="nd">@classmethod</span> +</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span> +</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> +</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">DataType</span><span class="p">:</span> +</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span> </span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> -</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="k">pass</span> -</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a> -</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> -</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="k">pass</span> -</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> -</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> -</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="k">pass</span> -</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> -</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> -</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="k">pass</span> +</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span> +</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> +</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span> +</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span> +</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span> +</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="k">return</span> <span class="n">dtype</span> +</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type"</span><span class="p">)</span> +</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span> </span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> -</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> -</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a><span class="k">class</span> <span class="nc">FloatDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="k">pass</span> +</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span> +</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> </span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a> -</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> -</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a><span class="c1"># https://www.postgresql.org/docs/15/datatype-pseudo.html</span> +</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> </span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="k">pass</span> </span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</span></a> </span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a> -</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="nd">@property</span> -</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a> -</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> -</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="k">pass</span> +</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> +</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> +</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a><span class="c1"># WHERE x <OP> EXISTS|ALL|ANY|SOME(SELECT ...)</span> +</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> <span class="k">pass</span> +</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> </span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> -</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> -</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="k">pass</span> +</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> +</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="k">pass</span> +</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> </span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a> -</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a> -</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="k">pass</span> +</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> +</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="k">pass</span> +</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> </span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> -</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> -</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="k">pass</span> +</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> +</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="k">pass</span> +</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> </span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</span></a> -</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a> -</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="k">pass</span> -</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> +</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</span></a><span class="c1"># Commands to interact with the databases or engines. For most of the command</span> +</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a><span class="c1"># expressions we parse whatever comes after the command's name as a string.</span> +</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> -</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a> <span class="k">pass</span> -</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a> +</span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a> +</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"modes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a> -</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a> <span class="k">pass</span> -</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> +</span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a> +</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"chain"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a> -</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a> <span class="k">pass</span> -</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a> +</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a> +</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"savepoint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a> -</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="k">pass</span> -</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a> +</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> +</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"actions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</span></a> -</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="k">pass</span> -</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a> +</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> +</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"enforced"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a> -</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="k">pass</span> -</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a> +</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> +</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a> -</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="k">pass</span> -</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> -</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> -</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="k">pass</span> -</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a> -</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> -</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a><span class="w"> </span><span class="sd">"""Kwarg in special functions like func(kwarg => y)."""</span> -</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> -</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> -</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="k">pass</span> -</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> -</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> -</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="k">pass</span> -</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a> -</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> -</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="k">pass</span> -</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a> -</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a> -</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a> <span class="k">pass</span> -</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a> -</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> -</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="k">pass</span> -</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a> -</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> -</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="k">pass</span> -</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a> -</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> -</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="k">pass</span> -</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a> -</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> -</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="k">pass</span> -</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a> -</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> -</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a> -</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> -</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> <span class="k">pass</span> -</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a> -</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a> -</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="k">pass</span> -</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a> -</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a> -</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a><span class="c1"># Unary Expressions</span> -</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a><span class="c1"># (NOT a)</span> -</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="k">pass</span> -</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> -</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> -</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> -</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="k">pass</span> -</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a> -</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> -</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="k">pass</span> -</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> -</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> -</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> -</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> -</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> -</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="k">pass</span> -</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a> -</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a> -</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a><span class="c1"># Special Functions</span> -</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a> -</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a> <span class="nd">@property</span> -</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> -</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> +</span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> +</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a><span class="c1"># Binary expressions like (ADD a b)</span> +</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a> +</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="nd">@property</span> +</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> +</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="nd">@property</span> +</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> +</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> +</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> +</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">pass</span> +</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> +</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> +</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="k">pass</span> +</span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a> +</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> +</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> +</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a> <span class="k">pass</span> +</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> +</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a> +</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> +</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="k">pass</span> +</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> +</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> +</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="k">pass</span> +</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> +</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> +</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="k">pass</span> +</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> +</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> +</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="k">pass</span> +</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> +</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> +</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> <span class="k">pass</span> +</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> +</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> +</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="k">pass</span> +</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a> +</span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> +</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a> <span class="k">pass</span> +</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a> +</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> +</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a> <span class="k">pass</span> +</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a> +</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a> +</span><span id="L-2985"><a href="#L-2985"><span class="linenos">2985</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="nd">@property</span> +</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> +</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> +</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="k">pass</span> +</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> +</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> +</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> <span class="k">pass</span> +</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a> +</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> +</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="k">pass</span> +</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> +</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> +</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a> <span class="k">pass</span> +</span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a> +</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> +</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a> <span class="k">pass</span> +</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a> +</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> +</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="k">pass</span> </span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a> -</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> -</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="nd">@property</span> -</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> +</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a> +</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> <span class="k">pass</span> +</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> +</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a> +</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> <span class="k">pass</span> </span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a> -</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> +</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a> +</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="k">pass</span> </span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> -</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"low"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"high"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> +</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> +</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="k">pass</span> </span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a> -</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> +</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> +</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <span class="k">pass</span> </span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a> -</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> +</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> +</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="k">pass</span> </span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> -</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> -</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a> <span class="s2">"unnest"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="s2">"is_global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a> <span class="p">}</span> -</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> -</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> -</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a><span class="w"> </span><span class="sd">"""Automatically converts unit arg into a var."""</span> -</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a> -</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a> +</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a> <span class="k">pass</span> +</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> +</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a> +</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a><span class="w"> </span><span class="sd">"""Kwarg in special functions like func(kwarg => y)."""</span> +</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> +</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a> +</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="k">pass</span> +</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> +</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> +</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="k">pass</span> </span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a> -</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> -</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> -</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">"unit"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span> -</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="n">unit</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">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> -</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> +</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">pass</span> +</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> +</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> +</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a> <span class="k">pass</span> </span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> </span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a> -</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a> <span class="k">pass</span> </span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a> </span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a> -</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> </span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="k">pass</span> </span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a> </span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a> -</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> </span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="k">pass</span> </span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a> </span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a> -</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a><span class="c1"># Functions</span> -</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a><span class="sd"> The base class for all function expressions.</span> -</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a> -</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a><span class="sd"> Attributes:</span> -</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span> -</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a><span class="sd"> treated as a variable length argument and the argument's value will be stored as a list.</span> -</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span> -</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span> -</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a><span class="sd"> as well as to provide the function's name during SQL string generation. By default the SQL</span> -</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a><span class="sd"> name is set to the expression's class name transformed to snake case.</span> -</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="sd"> """</span> -</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> -</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a> <span class="k">pass</span> +</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a> +</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a> +</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a> +</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> +</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a> <span class="k">pass</span> +</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a> +</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a> +</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="k">pass</span> +</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> </span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> -</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="nd">@classmethod</span> -</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> -</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span> -</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> -</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span> -</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span> -</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span> -</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> -</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span> -</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span> -</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span> +</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a><span class="c1"># Unary Expressions</span> +</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a><span class="c1"># (NOT a)</span> +</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="k">pass</span> +</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> +</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> +</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> +</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">pass</span> +</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> +</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> +</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="k">pass</span> </span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a> -</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span> -</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a> -</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="nd">@classmethod</span> -</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span> -</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> -</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="s2">"SQL name is only supported by concrete function implementations"</span> -</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="p">)</span> -</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="k">if</span> <span class="s2">"_sql_names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span> -</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span> -</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> -</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a> -</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="nd">@classmethod</span> -</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a> -</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> <span class="nd">@classmethod</span> -</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span> -</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> +</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> +</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> +</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> +</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> +</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="k">pass</span> +</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> +</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> +</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a><span class="c1"># Special Functions</span> +</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> +</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="nd">@property</span> +</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> +</span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> +</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> +</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a> -</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a> <span class="k">pass</span> -</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a> +</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a> <span class="nd">@property</span> +</span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> </span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a> -</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="k">pass</span> -</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> +</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a> +</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a> -</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a> +</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"low"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"high"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a> </span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a> -</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a> </span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a> -</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> </span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a> -</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a> -</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"start"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"step"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a> -</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> -</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="k">pass</span> -</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a> -</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a> -</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a> -</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a> -</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> +</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a> <span class="s2">"unnest"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a> <span class="s2">"is_global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a> <span class="p">}</span> +</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a> +</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a> +</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a><span class="w"> </span><span class="sd">"""Automatically converts unit arg into a var."""</span> +</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a> +</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</span></a> -</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a> -</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> -</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> -</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> -</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="k">pass</span> +</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> +</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span> +</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">"unit"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span> +</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="n">unit</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">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> +</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> </span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> -</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a> -</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a> <span class="k">pass</span> +</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a> </span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a> -</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a> -</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"FILTER"</span><span class="p">,</span> <span class="s2">"ARRAY_FILTER"</span><span class="p">]</span> -</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a> -</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> -</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a> -</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a> -</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="k">pass</span> +</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> +</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a> +</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> <span class="k">pass</span> +</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a> +</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> +</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a><span class="c1"># Functions</span> +</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a><span class="sd"> The base class for all function expressions.</span> </span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a> -</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> -</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> -</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a> -</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a> <span class="k">pass</span> -</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a> +</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a><span class="sd"> Attributes:</span> +</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span> +</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a><span class="sd"> treated as a variable length argument and the argument's value will be stored as a list.</span> +</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span> +</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span> +</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a><span class="sd"> as well as to provide the function's name during SQL string generation. By default the SQL</span> +</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a><span class="sd"> name is set to the expression's class name transformed to snake case.</span> +</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a><span class="sd"> """</span> </span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a> -</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a> <span class="k">pass</span> -</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a> -</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> -</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="k">pass</span> -</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> -</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> -</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> <span class="k">pass</span> -</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> -</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> -</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"ifs"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a> +</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a> <span class="nd">@classmethod</span> +</span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> +</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span> +</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> +</span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span> +</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span> +</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span> +</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> +</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span> +</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span> +</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span> </span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a> -</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> -</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"to"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> -</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="nd">@property</span> -</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> -</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="nd">@property</span> -</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"to"</span><span class="p">]</span> +</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span> +</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> +</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="nd">@classmethod</span> +</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span> +</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> +</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="s2">"SQL name is only supported by concrete function implementations"</span> +</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="p">)</span> +</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="k">if</span> <span class="s2">"_sql_names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span> +</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span> +</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> </span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a> -</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="nd">@property</span> -</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="nd">@classmethod</span> +</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> </span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a> -</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span> -</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> +</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="nd">@classmethod</span> +</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span> </span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a> -</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="k">pass</span> -</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> +</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a> +</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="k">pass</span> </span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a> -</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="k">pass</span> -</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> +</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a> +</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="k">pass</span> </span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a> -</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CEIL"</span><span class="p">,</span> <span class="s2">"CEILING"</span><span class="p">]</span> -</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> +</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> +</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> -</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a> +</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> </span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> -</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> </span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> -</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span> -</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CONCAT_WS"</span><span class="p">]</span> -</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> +</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a><span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/to_char</span> +</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> -</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> +</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> +</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"start"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"step"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a> -</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> +</span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a> +</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="k">pass</span> </span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> -</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> +</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a> +</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> -</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> +</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> +</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> -</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> -</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> -</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a> -</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a> -</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a> -</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> -</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a><span class="k">class</span> <span class="nc">DateDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEDIFF"</span><span class="p">,</span> <span class="s2">"DATE_DIFF"</span><span class="p">]</span> -</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> -</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> -</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> -</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> -</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a> -</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> -</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a> -</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> -</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a> -</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> -</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a> -</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> -</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_WEEK"</span><span class="p">,</span> <span class="s2">"DAYOFWEEK"</span><span class="p">]</span> -</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a> -</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> -</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_MONTH"</span><span class="p">,</span> <span class="s2">"DAYOFMONTH"</span><span class="p">]</span> -</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a> -</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> -</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_YEAR"</span><span class="p">,</span> <span class="s2">"DAYOFYEAR"</span><span class="p">]</span> -</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a> -</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> -</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"WEEK_OF_YEAR"</span><span class="p">,</span> <span class="s2">"WEEKOFYEAR"</span><span class="p">]</span> -</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a> -</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> -</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="k">pass</span> -</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a> -</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> -</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a> -</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a> -</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a><span class="k">class</span> <span class="nc">TimestampAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a> -</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a> -</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a><span class="k">class</span> <span class="nc">TimestampSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a> +</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> +</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> +</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> +</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> +</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</span></a> <span class="k">pass</span> +</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> +</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</span></a> +</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="k">pass</span> +</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> +</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> +</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"FILTER"</span><span class="p">,</span> <span class="s2">"ARRAY_FILTER"</span><span class="p">]</span> +</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> +</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> +</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> +</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> +</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a> +</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> +</span><span id="L-3302"><a href="#L-3302"><span class="linenos">3302</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</span></a> +</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> +</span><span id="L-3306"><a href="#L-3306"><span class="linenos">3306</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="k">pass</span> +</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a> +</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a> +</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="k">pass</span> +</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> +</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> +</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="k">pass</span> +</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a> +</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> +</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="k">pass</span> +</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> +</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> +</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"ifs"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a> +</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> +</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"to"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a> +</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="nd">@property</span> +</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a> +</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <span class="nd">@property</span> +</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"to"</span><span class="p">]</span> +</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a> +</span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a> <span class="nd">@property</span> +</span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a> +</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span> </span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a> -</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a><span class="k">class</span> <span class="nc">TimestampDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a> +</span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a> +</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a> <span class="k">pass</span> </span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a> -</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a> +</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a> +</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a> <span class="k">pass</span> </span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a> -</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a><span class="k">class</span> <span class="nc">TimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> -</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> -</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a><span class="k">class</span> <span class="nc">TimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a> -</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a> -</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a><span class="k">class</span> <span class="nc">TimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a> +</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CEIL"</span><span class="p">,</span> <span class="s2">"CEILING"</span><span class="p">]</span> +</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a> +</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a> +</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a> </span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a> -</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a> -</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a><span class="k">class</span> <span class="nc">TimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a> </span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a> -</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEFROMPARTS"</span><span class="p">]</span> -</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"year"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"month"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"day"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span> +</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CONCAT_WS"</span><span class="p">]</span> +</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> </span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a> -</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a> -</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="k">pass</span> +</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> </span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a> -</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a> -</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="k">pass</span> +</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a> <span class="k">pass</span> +</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> </span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a> -</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> -</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="k">pass</span> +</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> </span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a> -</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a> -</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="k">pass</span> +</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> </span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a> -</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a> -</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> </span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a> -</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a> -</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> <span class="k">pass</span> +</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> </span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a> -</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a> -</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a> </span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a> -</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> -</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> <span class="k">pass</span> +</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> </span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a> -</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a> -</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> <span class="k">pass</span> +</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a><span class="k">class</span> <span class="nc">DateDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEDIFF"</span><span class="p">,</span> <span class="s2">"DATE_DIFF"</span><span class="p">]</span> +</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a> </span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a> -</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> </span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a> -</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> </span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a> -</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a> -</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"separator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> </span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a> -</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a> -</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="k">pass</span> +</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a> </span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a> -</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a> -</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a> </span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a> -</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a> -</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"IFNULL"</span><span class="p">,</span> <span class="s2">"NVL"</span><span class="p">]</span> -</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a> -</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> -</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="k">pass</span> -</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a> -</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> -</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_CONTAINS"</span><span class="p">]</span> -</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a> -</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a> -</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> -</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span> -</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a> -</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a> -</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> -</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span> -</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a> -</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a> -</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> -</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT"</span><span class="p">]</span> -</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a> -</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> -</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> -</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT_SCALAR"</span><span class="p">]</span> -</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a> -</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a> -</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a> +</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_WEEK"</span><span class="p">,</span> <span class="s2">"DAYOFWEEK"</span><span class="p">]</span> +</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a> +</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a> +</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_MONTH"</span><span class="p">,</span> <span class="s2">"DAYOFMONTH"</span><span class="p">]</span> +</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a> +</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> +</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_YEAR"</span><span class="p">,</span> <span class="s2">"DAYOFYEAR"</span><span class="p">]</span> +</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> +</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a> +</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"WEEK_OF_YEAR"</span><span class="p">,</span> <span class="s2">"WEEKOFYEAR"</span><span class="p">]</span> +</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a> +</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a> +</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a> <span class="k">pass</span> +</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a> +</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> +</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a> +</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a> +</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a><span class="k">class</span> <span class="nc">TimestampAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a> +</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a> +</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a><span class="k">class</span> <span class="nc">TimestampSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a> +</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a> +</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a><span class="k">class</span> <span class="nc">TimestampDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a> -</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="k">pass</span> -</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a> +</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a> +</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a> -</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a> <span class="s2">"ins_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="s2">"del_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="s2">"sub_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="p">}</span> +</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a> +</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a><span class="k">class</span> <span class="nc">TimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a> +</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a> +</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a><span class="k">class</span> <span class="nc">TimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> </span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a> -</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a> -</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="k">pass</span> +</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a><span class="k">class</span> <span class="nc">TimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> </span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a> -</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a> -</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a><span class="k">class</span> <span class="nc">TimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a> </span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a> -</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a> -</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="k">pass</span> +</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEFROMPARTS"</span><span class="p">]</span> +</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"year"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"month"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"day"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a> </span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a> -</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> </span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a> <span class="k">pass</span> </span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a> </span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a> -</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOGICAL_OR"</span><span class="p">,</span> <span class="s2">"BOOL_OR"</span><span class="p">]</span> +</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="k">pass</span> </span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</span></a> </span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a> -</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOWER"</span><span class="p">,</span> <span class="s2">"LCASE"</span><span class="p">]</span> +</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="k">pass</span> </span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a> </span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a> -</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <span class="k">pass</span> </span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a> </span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> -</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a> </span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</span></a> -</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a> -</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a><span class="w"> </span><span class="sd">"""Oracle/Snowflake decode.</span> -</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span> -</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span> -</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a><span class="sd"> """</span> +</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a> <span class="k">pass</span> +</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a> +</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a> +</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a> -</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a> +</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> +</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a> <span class="k">pass</span> </span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a> -</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a> +</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="k">pass</span> </span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a> </span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a> -</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a> </span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a> -</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a> -</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a> <span class="k">pass</span> +</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a> </span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a> -</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"separator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a> </span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a> -</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> </span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a> <span class="k">pass</span> </span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a> </span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a> -</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> -</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"POWER"</span><span class="p">,</span> <span class="s2">"POW"</span><span class="p">]</span> +</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a> </span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a> -</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="k">pass</span> -</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a> +</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"IFNULL"</span><span class="p">,</span> <span class="s2">"NVL"</span><span class="p">]</span> </span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> -</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="k">pass</span> -</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a> +</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a> +</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a> <span class="k">pass</span> </span><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a> -</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</span></a> +</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a> +</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_CONTAINS"</span><span class="p">]</span> </span><span id="L-3558"><a href="#L-3558"><span class="linenos">3558</span></a> -</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a><span class="c1"># Clickhouse-specific:</span> -</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span> -</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a> +</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> +</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span> +</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a> </span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</span></a> -</span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a> -</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> +</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span> +</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a> </span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a> -</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a> -</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span> -</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"weight"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> +</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT"</span><span class="p">]</span> +</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> </span><span id="L-3571"><a href="#L-3571"><span class="linenos">3571</span></a> -</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a> -</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"each"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> +</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT_SCALAR"</span><span class="p">]</span> +</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> </span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</span></a> -</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a> -</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"READ_CSV"</span><span class="p">]</span> -</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a> -</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a> -</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"initial"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"merge"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"finish"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a> -</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a> -</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> <span class="s2">"occurrence"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a> <span class="s2">"group"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="p">}</span> -</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a> -</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a> -</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> -</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a> -</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a> -</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a> -</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a> -</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a> -</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"times"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a> -</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a> -</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a> -</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> -</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a> -</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> -</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a> -</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a> -</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="k">pass</span> -</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> -</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> -</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"asc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a> +</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a> +</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a> <span class="k">pass</span> +</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a> +</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a> +</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="s2">"ins_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="s2">"del_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="s2">"sub_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> <span class="p">}</span> +</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a> +</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a> +</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a> <span class="k">pass</span> +</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a> +</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> +</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a> +</span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> +</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a> <span class="k">pass</span> +</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a> +</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> +</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a> <span class="k">pass</span> +</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a> +</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a> +</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOGICAL_OR"</span><span class="p">,</span> <span class="s2">"BOOL_OR"</span><span class="p">,</span> <span class="s2">"BOOLOR_AGG"</span><span class="p">]</span> +</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a> +</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a> +</span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOGICAL_AND"</span><span class="p">,</span> <span class="s2">"BOOL_AND"</span><span class="p">,</span> <span class="s2">"BOOLAND_AGG"</span><span class="p">]</span> +</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a> +</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a> +</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOWER"</span><span class="p">,</span> <span class="s2">"LCASE"</span><span class="p">]</span> +</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a> +</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> +</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a> +</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> +</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> </span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> -</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a> -</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> -</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> -</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a><span class="c1"># Start may be omitted in the case of postgres</span> -</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span> -</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"length"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a><span class="w"> </span><span class="sd">"""Oracle/Snowflake decode.</span> +</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span> +</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span> +</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a><span class="sd"> """</span> +</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a> +</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> </span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a> -</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a> -</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a> <span class="s2">"substr"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="s2">"instance"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="p">}</span> +</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a> +</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a> +</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a> </span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> -</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="k">pass</span> </span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> </span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> -</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a> </span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a> -</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a><span class="c1"># Spark allows unix_timestamp()</span> -</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a><span class="c1"># https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html</span> -</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> -</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> -</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> -</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> -</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> +</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="k">pass</span> +</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a> +</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> +</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> +</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"POWER"</span><span class="p">,</span> <span class="s2">"POW"</span><span class="p">]</span> +</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a> +</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> +</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="k">pass</span> +</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a> +</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> +</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="k">pass</span> </span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a> -</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a> +</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a> +</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> -</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="k">pass</span> -</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> -</span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a> -</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="k">pass</span> +</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> +</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a><span class="c1"># Clickhouse-specific:</span> +</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a><span class="c1"># https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles</span> +</span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a> </span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> -</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="k">pass</span> +</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a> </span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a> -</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="k">pass</span> +</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span> +</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"weight"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> </span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> -</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="k">pass</span> +</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"each"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> </span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> -</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</span></a> -</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a> -</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="k">pass</span> -</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> -</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a> -</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="k">pass</span> -</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> -</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> -</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a> <span class="k">pass</span> -</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a> -</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a> -</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="k">pass</span> +</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"READ_CSV"</span><span class="p">]</span> +</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a> +</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> +</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"initial"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"merge"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"finish"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a> +</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> +</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a> <span class="s2">"occurrence"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a> <span class="s2">"group"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="p">}</span> </span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> </span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a> -</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a> <span class="k">pass</span> +</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a> </span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a> -</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a> <span class="s2">"collation"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="p">}</span> +</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> +</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> +</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a> </span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a> -</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a> -</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"times"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> </span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a> -</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a> -</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="k">pass</span> +</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> </span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> -</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a> -</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a> </span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</span></a> -</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> -</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a> <span class="k">pass</span> +</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a> </span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a> -</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a> -</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> <span class="k">pass</span> +</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a> <span class="k">pass</span> +</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> </span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a> -</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a> -</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"asc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a> </span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a> -</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a> -</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span> -</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a><span class="c1"># presto has weird zone/hours/minutes</span> -</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"scale"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"hours"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"minutes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a> -</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"seconds"</span><span class="p">)</span> -</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"millis"</span><span class="p">)</span> -</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"micros"</span><span class="p">)</span> +</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a> +</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a> +</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a><span class="c1"># Start may be omitted in the case of postgres</span> +</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a><span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span> +</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"length"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a> </span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a> -</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a> -</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a> <span class="k">pass</span> -</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a> -</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> -</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="s2">"UCASE"</span><span class="p">]</span> +</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a> <span class="s2">"substr"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a> <span class="s2">"instance"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a> <span class="p">}</span> </span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a> </span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a> -</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE"</span><span class="p">,</span> <span class="s2">"VARIANCE_SAMP"</span><span class="p">,</span> <span class="s2">"VAR_SAMP"</span><span class="p">]</span> +</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a> </span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a> -</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE_POP"</span><span class="p">,</span> <span class="s2">"VAR_POP"</span><span class="p">]</span> +</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a> </span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a> -</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"mode"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a> -</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a> -</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"passing"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"by_ref"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a> -</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a> -</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="k">pass</span> -</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a> -</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a> -</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a><span class="c1"># Spark allows unix_timestamp()</span> +</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a><span class="c1"># https://spark.apache.org/docs/3.1.3/api/python/reference/api/pyspark.sql.functions.unix_timestamp.html</span> +</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> +</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> +</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a> +</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> +</span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> </span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a> -</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a> -</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> </span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a> -</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a> -</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"matched"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"source"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"condition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"then"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a> <span class="k">pass</span> +</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a> </span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a> -</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a> -</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a><span class="k">def</span> <span class="nf">_norm_args</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="k">pass</span> +</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> </span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a> -</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="p">[</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">arg</span><span class="p">]</span> -</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">arg</span><span class="p">:</span> -</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> +</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="k">pass</span> +</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> +</span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a> +</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="k">pass</span> +</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> </span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> -</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span><span class="p">:</span> -</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">arg</span> +</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="k">pass</span> </span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> -</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="k">return</span> <span class="n">args</span> -</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a> -</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> -</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a><span class="k">def</span> <span class="nf">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">):</span> -</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="n">arg</span> -</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> -</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a> -</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a><span class="n">ALL_FUNCTIONS</span> <span class="o">=</span> <span class="n">subclasses</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">Func</span><span class="p">,</span> <span class="p">(</span><span class="n">AggFunc</span><span class="p">,</span> <span class="n">Anonymous</span><span class="p">,</span> <span class="n">Func</span><span class="p">))</span> +</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> +</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> +</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> +</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a> <span class="k">pass</span> +</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a> </span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a> -</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a> -</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a><span class="c1"># Helpers</span> -</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span> -</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a> <span class="o">*</span><span class="p">,</span> -</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a><span class="w"> </span><span class="sd">"""Gracefully handle a possible string or expression.</span> -</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a> -</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a><span class="sd"> Example:</span> -</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a><span class="sd"> >>> maybe_parse("1")</span> -</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span> -</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a><span class="sd"> >>> maybe_parse(to_identifier("x"))</span> -</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span> -</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a> -</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a><span class="sd"> Args:</span> -</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span> -</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span> -</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> -</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span> -</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a><span class="sd"> (automatically includes a space)</span> -</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a><span class="sd"> copy: whether or not to copy the expression.</span> -</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a><span class="sd"> that an input expression is a SQL string).</span> -</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a> -</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a><span class="sd"> Returns:</span> -</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a><span class="sd"> Expression: the parsed or given expression.</span> -</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a><span class="sd"> """</span> -</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span> -</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span> -</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a> -</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> +</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="k">pass</span> +</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a> +</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a> +</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="k">pass</span> +</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a> +</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> +</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="k">pass</span> +</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a> +</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> +</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a> <span class="k">pass</span> +</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a> +</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> +</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a> <span class="s2">"collation"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a> <span class="p">}</span> +</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a> +</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a> +</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a> +</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> +</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="k">pass</span> +</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a> +</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a> +</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> +</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> +</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="k">pass</span> </span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a> -</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span> -</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span> -</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a> +</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="k">pass</span> +</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> </span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> -</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a> -</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a><span class="k">def</span> <span class="nf">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span> +</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> </span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> -</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a> -</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a><span class="k">def</span> <span class="nf">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span> -</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span> -</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a> +</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a><span class="c1"># https://prestodb.io/docs/current/functions/datetime.html</span> +</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a><span class="c1"># presto has weird zone/hours/minutes</span> +</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"scale"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"hours"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"minutes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a> -</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span> -</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">instance</span><span class="p">,</span> -</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">arg</span><span class="p">,</span> -</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a><span class="p">):</span> -</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span> -</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> -</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> -</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> <span class="p">)</span> -</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="k">return</span> <span class="n">instance</span> -</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a> +</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"seconds"</span><span class="p">)</span> +</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"millis"</span><span class="p">)</span> +</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"micros"</span><span class="p">)</span> +</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> +</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> +</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="k">pass</span> +</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> +</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> +</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="s2">"UCASE"</span><span class="p">]</span> +</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> +</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> +</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE"</span><span class="p">,</span> <span class="s2">"VARIANCE_SAMP"</span><span class="p">,</span> <span class="s2">"VAR_SAMP"</span><span class="p">]</span> +</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> +</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> +</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE_POP"</span><span class="p">,</span> <span class="s2">"VAR_POP"</span><span class="p">]</span> +</span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> +</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a> +</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"mode"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a> -</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="n">instance</span><span class="p">,</span> -</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="n">arg</span><span class="p">,</span> -</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a><span class="p">):</span> -</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span> -</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="p">])</span> -</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> -</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> -</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="p">)</span> -</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="n">parsed</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> -</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">instance</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> -</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span><span class="p">:</span> -</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="n">existing</span><span class="o">.</span><span class="n">expressions</span> <span class="o">+</span> <span class="n">parsed</span> -</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> -</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="n">child</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">parsed</span><span class="p">)</span> -</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="n">child</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> -</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">child</span><span class="p">)</span> -</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="k">return</span> <span class="n">instance</span> -</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a> +</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a> +</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"passing"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"by_ref"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> +</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> +</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="k">pass</span> +</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> +</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> +</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a> +</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a> +</span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a> +</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a> +</span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"matched"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"source"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"condition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"then"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> +</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> +</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a><span class="k">def</span> <span class="nf">_norm_args</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a> +</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="p">[</span><span class="n">_norm_arg</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="k">for</span> <span class="n">a</span> <span class="ow">in</span> <span class="n">arg</span><span class="p">]</span> +</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">arg</span><span class="p">:</span> +</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="n">arg</span> <span class="o">=</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> +</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> +</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">False</span><span class="p">:</span> +</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">arg</span> +</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> +</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a> <span class="k">return</span> <span class="n">args</span> </span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> -</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span> -</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="n">instance</span><span class="p">,</span> -</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="n">arg</span><span class="p">,</span> -</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a><span class="p">):</span> -</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a> -</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> -</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> -</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="p">)</span> -</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span> -</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="p">]</span> -</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a> -</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="n">existing_expressions</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> -</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing_expressions</span><span class="p">:</span> -</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">existing_expressions</span> <span class="o">+</span> <span class="n">expressions</span> -</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a> -</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="k">return</span> <span class="n">inst</span> -</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a> -</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a> -</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a> <span class="n">instance</span><span class="p">,</span> -</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a> <span class="n">arg</span><span class="p">,</span> -</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a><span class="p">):</span> -</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span> <span class="k">for</span> <span class="n">exp</span> <span class="ow">in</span> <span class="n">expressions</span> <span class="k">if</span> <span class="n">exp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">exp</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">]</span> -</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a> <span class="k">return</span> <span class="n">instance</span> -</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> -</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a> -</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> -</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">existing</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">existing</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> +</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a><span class="k">def</span> <span class="nf">_norm_arg</span><span class="p">(</span><span class="n">arg</span><span class="p">):</span> +</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="k">return</span> <span class="n">arg</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span> <span class="k">else</span> <span class="n">arg</span> +</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> +</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> +</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a><span class="n">ALL_FUNCTIONS</span> <span class="o">=</span> <span class="n">subclasses</span><span class="p">(</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">Func</span><span class="p">,</span> <span class="p">(</span><span class="n">AggFunc</span><span class="p">,</span> <span class="n">Anonymous</span><span class="p">,</span> <span class="n">Func</span><span class="p">))</span> +</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a> +</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a> +</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a><span class="c1"># Helpers</span> +</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span> +</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="o">*</span><span class="p">,</span> +</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a><span class="w"> </span><span class="sd">"""Gracefully handle a possible string or expression.</span> +</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> +</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a><span class="sd"> Example:</span> +</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a><span class="sd"> >>> maybe_parse("1")</span> +</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span> +</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a><span class="sd"> >>> maybe_parse(to_identifier("x"))</span> +</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span> +</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> +</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a><span class="sd"> Args:</span> +</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span> +</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span> +</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> +</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span> +</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a><span class="sd"> (automatically includes a space)</span> +</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a><span class="sd"> copy: whether or not to copy the expression.</span> +</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a><span class="sd"> that an input expression is a SQL string).</span> +</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a> +</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a><span class="sd"> Returns:</span> +</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a><span class="sd"> Expression: the parsed or given expression.</span> +</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a><span class="sd"> """</span> +</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span> +</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span> +</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a> +</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> +</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a> +</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span> +</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span> +</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a> -</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a> -</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">node</span><span class="p">)</span> -</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="k">return</span> <span class="n">inst</span> +</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a> +</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a><span class="k">def</span> <span class="nf">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a> <span class="k">return</span> <span class="n">instance</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="n">instance</span> +</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a> </span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a> -</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a> -</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">]</span> -</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a> <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-4005"><a href="#L-4005"><span class="linenos">4005</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> -</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a> -</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a> -</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a><span class="k">def</span> <span class="nf">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">Not</span><span class="p">)):</span> -</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a> -</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a> -</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span> -</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a> -</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a><span class="sd"> Example:</span> -</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a><span class="sd"> >>> union("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> -</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> -</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a> -</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</span></a><span class="sd"> Args:</span> -</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> -</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> -</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a><span class="sd"> Returns:</span> -</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span> -</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a><span class="sd"> """</span> -</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a> -</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> -</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a> -</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a> -</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span> -</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a> -</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a><span class="sd"> Example:</span> -</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a><span class="sd"> >>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> -</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> -</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a> -</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a><span class="sd"> Args:</span> -</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> -</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> -</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a><span class="sd"> Returns:</span> -</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span> -</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a><span class="sd"> """</span> -</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4063"><a href="#L-4063"><span class="linenos">4063</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a><span class="k">def</span> <span class="nf">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span> +</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span> +</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a> +</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a> +</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a><span class="k">def</span> <span class="nf">_apply_builder</span><span class="p">(</span> +</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a> <span class="n">instance</span><span class="p">,</span> +</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a> <span class="n">arg</span><span class="p">,</span> +</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a><span class="p">):</span> +</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span> +</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> +</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> +</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</span></a> <span class="p">)</span> +</span><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</span></a> +</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a> +</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</span></a><span class="k">def</span> <span class="nf">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="L-4030"><a href="#L-4030"><span class="linenos">4030</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a> <span class="n">instance</span><span class="p">,</span> +</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a> <span class="n">arg</span><span class="p">,</span> +</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4034"><a href="#L-4034"><span class="linenos">4034</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a><span class="p">):</span> +</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a> <span class="k">if</span> <span class="n">_is_wrong_expression</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="p">):</span> +</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="p">])</span> +</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> +</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> +</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a> <span class="p">)</span> +</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a> <span class="n">parsed</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a> +</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">instance</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> +</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span><span class="p">:</span> +</span><span id="L-4057"><a href="#L-4057"><span class="linenos">4057</span></a> <span class="n">parsed</span> <span class="o">=</span> <span class="n">existing</span><span class="o">.</span><span class="n">expressions</span> <span class="o">+</span> <span class="n">parsed</span> +</span><span id="L-4058"><a href="#L-4058"><span class="linenos">4058</span></a> +</span><span id="L-4059"><a href="#L-4059"><span class="linenos">4059</span></a> <span class="n">child</span> <span class="o">=</span> <span class="n">into</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">parsed</span><span class="p">)</span> +</span><span id="L-4060"><a href="#L-4060"><span class="linenos">4060</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="p">(</span><span class="n">properties</span> <span class="ow">or</span> <span class="p">{})</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-4061"><a href="#L-4061"><span class="linenos">4061</span></a> <span class="n">child</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span> +</span><span id="L-4062"><a href="#L-4062"><span class="linenos">4062</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">child</span><span class="p">)</span> +</span><span id="L-4063"><a href="#L-4063"><span class="linenos">4063</span></a> <span class="k">return</span> <span class="n">instance</span> </span><span id="L-4064"><a href="#L-4064"><span class="linenos">4064</span></a> -</span><span id="L-4065"><a href="#L-4065"><span class="linenos">4065</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> -</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</span></a> -</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a> -</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span> -</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a> -</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a><span class="sd"> Example:</span> -</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</span></a><span class="sd"> >>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> -</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> -</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a> -</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a><span class="sd"> Args:</span> -</span><span id="L-4077"><a href="#L-4077"><span class="linenos">4077</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> -</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> -</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a><span class="sd"> Returns:</span> -</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span> -</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a><span class="sd"> """</span> -</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4065"><a href="#L-4065"><span class="linenos">4065</span></a> +</span><span id="L-4066"><a href="#L-4066"><span class="linenos">4066</span></a><span class="k">def</span> <span class="nf">_apply_list_builder</span><span class="p">(</span> +</span><span id="L-4067"><a href="#L-4067"><span class="linenos">4067</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-4068"><a href="#L-4068"><span class="linenos">4068</span></a> <span class="n">instance</span><span class="p">,</span> +</span><span id="L-4069"><a href="#L-4069"><span class="linenos">4069</span></a> <span class="n">arg</span><span class="p">,</span> +</span><span id="L-4070"><a href="#L-4070"><span class="linenos">4070</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4071"><a href="#L-4071"><span class="linenos">4071</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4072"><a href="#L-4072"><span class="linenos">4072</span></a> <span class="n">prefix</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4073"><a href="#L-4073"><span class="linenos">4073</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4074"><a href="#L-4074"><span class="linenos">4074</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4075"><a href="#L-4075"><span class="linenos">4075</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4076"><a href="#L-4076"><span class="linenos">4076</span></a><span class="p">):</span> +</span><span id="L-4077"><a href="#L-4077"><span class="linenos">4077</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="L-4078"><a href="#L-4078"><span class="linenos">4078</span></a> +</span><span id="L-4079"><a href="#L-4079"><span class="linenos">4079</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-4080"><a href="#L-4080"><span class="linenos">4080</span></a> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="L-4081"><a href="#L-4081"><span class="linenos">4081</span></a> <span class="n">sql_or_expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-4082"><a href="#L-4082"><span class="linenos">4082</span></a> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> +</span><span id="L-4083"><a href="#L-4083"><span class="linenos">4083</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> +</span><span id="L-4084"><a href="#L-4084"><span class="linenos">4084</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-4085"><a href="#L-4085"><span class="linenos">4085</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4086"><a href="#L-4086"><span class="linenos">4086</span></a> <span class="p">)</span> +</span><span id="L-4087"><a href="#L-4087"><span class="linenos">4087</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span> +</span><span id="L-4088"><a href="#L-4088"><span class="linenos">4088</span></a> <span class="p">]</span> </span><span id="L-4089"><a href="#L-4089"><span class="linenos">4089</span></a> -</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> -</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</span></a> -</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a> -</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span> +</span><span id="L-4090"><a href="#L-4090"><span class="linenos">4090</span></a> <span class="n">existing_expressions</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> +</span><span id="L-4091"><a href="#L-4091"><span class="linenos">4091</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing_expressions</span><span class="p">:</span> +</span><span id="L-4092"><a href="#L-4092"><span class="linenos">4092</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">existing_expressions</span> <span class="o">+</span> <span class="n">expressions</span> +</span><span id="L-4093"><a href="#L-4093"><span class="linenos">4093</span></a> +</span><span id="L-4094"><a href="#L-4094"><span class="linenos">4094</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="L-4095"><a href="#L-4095"><span class="linenos">4095</span></a> <span class="k">return</span> <span class="n">inst</span> </span><span id="L-4096"><a href="#L-4096"><span class="linenos">4096</span></a> -</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a><span class="sd"> Example:</span> -</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a><span class="sd"> >>> select("col1", "col2").from_("tbl").sql()</span> -</span><span id="L-4099"><a href="#L-4099"><span class="linenos">4099</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> -</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a> -</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a><span class="sd"> Args:</span> -</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span> -</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> -</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a><span class="sd"> that an input expression is a SQL string).</span> -</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a> -</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a><span class="sd"> Returns:</span> -</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> -</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a><span class="sd"> """</span> -</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4097"><a href="#L-4097"><span class="linenos">4097</span></a> +</span><span id="L-4098"><a href="#L-4098"><span class="linenos">4098</span></a><span class="k">def</span> <span class="nf">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="L-4099"><a href="#L-4099"><span class="linenos">4099</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-4100"><a href="#L-4100"><span class="linenos">4100</span></a> <span class="n">instance</span><span class="p">,</span> +</span><span id="L-4101"><a href="#L-4101"><span class="linenos">4101</span></a> <span class="n">arg</span><span class="p">,</span> +</span><span id="L-4102"><a href="#L-4102"><span class="linenos">4102</span></a> <span class="n">into</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4103"><a href="#L-4103"><span class="linenos">4103</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4104"><a href="#L-4104"><span class="linenos">4104</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-4105"><a href="#L-4105"><span class="linenos">4105</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-4106"><a href="#L-4106"><span class="linenos">4106</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4107"><a href="#L-4107"><span class="linenos">4107</span></a><span class="p">):</span> +</span><span id="L-4108"><a href="#L-4108"><span class="linenos">4108</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span> <span class="k">for</span> <span class="n">exp</span> <span class="ow">in</span> <span class="n">expressions</span> <span class="k">if</span> <span class="n">exp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">and</span> <span class="n">exp</span> <span class="o">!=</span> <span class="s2">""</span><span class="p">]</span> +</span><span id="L-4109"><a href="#L-4109"><span class="linenos">4109</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-4110"><a href="#L-4110"><span class="linenos">4110</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="L-4111"><a href="#L-4111"><span class="linenos">4111</span></a> +</span><span id="L-4112"><a href="#L-4112"><span class="linenos">4112</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="n">instance</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> </span><span id="L-4113"><a href="#L-4113"><span class="linenos">4113</span></a> -</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a> -</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="L-4116"><a href="#L-4116"><span class="linenos">4116</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span> -</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a> -</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a><span class="sd"> Example:</span> -</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a><span class="sd"> >>> from_("tbl").select("col1", "col2").sql()</span> -</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> +</span><span id="L-4114"><a href="#L-4114"><span class="linenos">4114</span></a> <span class="n">existing</span> <span class="o">=</span> <span class="n">inst</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> +</span><span id="L-4115"><a href="#L-4115"><span class="linenos">4115</span></a> <span class="k">if</span> <span class="n">append</span> <span class="ow">and</span> <span class="n">existing</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-4116"><a href="#L-4116"><span class="linenos">4116</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">existing</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">existing</span><span class="p">]</span> <span class="o">+</span> <span class="nb">list</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-4117"><a href="#L-4117"><span class="linenos">4117</span></a> +</span><span id="L-4118"><a href="#L-4118"><span class="linenos">4118</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4119"><a href="#L-4119"><span class="linenos">4119</span></a> +</span><span id="L-4120"><a href="#L-4120"><span class="linenos">4120</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">arg</span><span class="p">,</span> <span class="n">into</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="p">)</span> <span class="k">if</span> <span class="n">into</span> <span class="k">else</span> <span class="n">node</span><span class="p">)</span> +</span><span id="L-4121"><a href="#L-4121"><span class="linenos">4121</span></a> <span class="k">return</span> <span class="n">inst</span> </span><span id="L-4122"><a href="#L-4122"><span class="linenos">4122</span></a> -</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a><span class="sd"> Args:</span> -</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span> -</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> -</span><span id="L-4127"><a href="#L-4127"><span class="linenos">4127</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a><span class="sd"> that the input expression is a SQL string).</span> -</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a> -</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a><span class="sd"> Returns:</span> -</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> -</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a><span class="sd"> """</span> -</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a> -</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a> -</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Update</span><span class="p">:</span> -</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a><span class="sd"> Creates an update statement.</span> -</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></a> -</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a><span class="sd"> Example:</span> -</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a><span class="sd"> >>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql()</span> -</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</span></a><span class="sd"> "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"</span> -</span><span id="L-4144"><a href="#L-4144"><span class="linenos">4144</span></a> -</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a><span class="sd"> Args:</span> -</span><span id="L-4146"><a href="#L-4146"><span class="linenos">4146</span></a><span class="sd"> *properties (Dict[str, Any]): dictionary of properties to set which are</span> -</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a><span class="sd"> auto converted to sql objects eg None -> NULL</span> -</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a><span class="sd"> where (str): sql conditional parsed into a WHERE statement</span> -</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a><span class="sd"> from_ (str): sql statement parsed into a FROM statement</span> -</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a> -</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a><span class="sd"> Returns:</span> -</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span> -</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a><span class="sd"> """</span> -</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a> <span class="n">update</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span> -</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a> <span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="p">[</span> -</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span> -</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a> <span class="p">],</span> -</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a> <span class="p">)</span> -</span><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> -</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a> <span class="s2">"from"</span><span class="p">,</span> -</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="L-4168"><a href="#L-4168"><span class="linenos">4168</span></a> <span class="p">)</span> -</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> -</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span> -</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a> <span class="s2">"where"</span><span class="p">,</span> -</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WHERE"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a> <span class="p">)</span> -</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a> <span class="k">return</span> <span class="n">update</span> -</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a> -</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a> -</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> -</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a><span class="sd"> Builds a delete statement.</span> -</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a> -</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a><span class="sd"> Example:</span> -</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</span></a><span class="sd"> >>> delete("my_table", where="id > 1").sql()</span> -</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a><span class="sd"> 'DELETE FROM my_table WHERE id > 1'</span> +</span><span id="L-4123"><a href="#L-4123"><span class="linenos">4123</span></a> +</span><span id="L-4124"><a href="#L-4124"><span class="linenos">4124</span></a><span class="k">def</span> <span class="nf">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">operator</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-4125"><a href="#L-4125"><span class="linenos">4125</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">]</span> +</span><span id="L-4126"><a href="#L-4126"><span class="linenos">4126</span></a> <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-4127"><a href="#L-4127"><span class="linenos">4127</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="L-4128"><a href="#L-4128"><span class="linenos">4128</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-4129"><a href="#L-4129"><span class="linenos">4129</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="L-4130"><a href="#L-4130"><span class="linenos">4130</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">operator</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">))</span> +</span><span id="L-4131"><a href="#L-4131"><span class="linenos">4131</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-4132"><a href="#L-4132"><span class="linenos">4132</span></a> +</span><span id="L-4133"><a href="#L-4133"><span class="linenos">4133</span></a> +</span><span id="L-4134"><a href="#L-4134"><span class="linenos">4134</span></a><span class="k">def</span> <span class="nf">_wrap_operator</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-4135"><a href="#L-4135"><span class="linenos">4135</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">And</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">Not</span><span class="p">)):</span> +</span><span id="L-4136"><a href="#L-4136"><span class="linenos">4136</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-4137"><a href="#L-4137"><span class="linenos">4137</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-4138"><a href="#L-4138"><span class="linenos">4138</span></a> +</span><span id="L-4139"><a href="#L-4139"><span class="linenos">4139</span></a> +</span><span id="L-4140"><a href="#L-4140"><span class="linenos">4140</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-4141"><a href="#L-4141"><span class="linenos">4141</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4142"><a href="#L-4142"><span class="linenos">4142</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span> +</span><span id="L-4143"><a href="#L-4143"><span class="linenos">4143</span></a> +</span><span id="L-4144"><a href="#L-4144"><span class="linenos">4144</span></a><span class="sd"> Example:</span> +</span><span id="L-4145"><a href="#L-4145"><span class="linenos">4145</span></a><span class="sd"> >>> union("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> +</span><span id="L-4146"><a href="#L-4146"><span class="linenos">4146</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> +</span><span id="L-4147"><a href="#L-4147"><span class="linenos">4147</span></a> +</span><span id="L-4148"><a href="#L-4148"><span class="linenos">4148</span></a><span class="sd"> Args:</span> +</span><span id="L-4149"><a href="#L-4149"><span class="linenos">4149</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> +</span><span id="L-4150"><a href="#L-4150"><span class="linenos">4150</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-4151"><a href="#L-4151"><span class="linenos">4151</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> +</span><span id="L-4152"><a href="#L-4152"><span class="linenos">4152</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-4153"><a href="#L-4153"><span class="linenos">4153</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="L-4154"><a href="#L-4154"><span class="linenos">4154</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4155"><a href="#L-4155"><span class="linenos">4155</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-4156"><a href="#L-4156"><span class="linenos">4156</span></a><span class="sd"> Returns:</span> +</span><span id="L-4157"><a href="#L-4157"><span class="linenos">4157</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span> +</span><span id="L-4158"><a href="#L-4158"><span class="linenos">4158</span></a><span class="sd"> """</span> +</span><span id="L-4159"><a href="#L-4159"><span class="linenos">4159</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4160"><a href="#L-4160"><span class="linenos">4160</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4161"><a href="#L-4161"><span class="linenos">4161</span></a> +</span><span id="L-4162"><a href="#L-4162"><span class="linenos">4162</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> +</span><span id="L-4163"><a href="#L-4163"><span class="linenos">4163</span></a> +</span><span id="L-4164"><a href="#L-4164"><span class="linenos">4164</span></a> +</span><span id="L-4165"><a href="#L-4165"><span class="linenos">4165</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-4166"><a href="#L-4166"><span class="linenos">4166</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4167"><a href="#L-4167"><span class="linenos">4167</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span> +</span><span id="L-4168"><a href="#L-4168"><span class="linenos">4168</span></a> +</span><span id="L-4169"><a href="#L-4169"><span class="linenos">4169</span></a><span class="sd"> Example:</span> +</span><span id="L-4170"><a href="#L-4170"><span class="linenos">4170</span></a><span class="sd"> >>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> +</span><span id="L-4171"><a href="#L-4171"><span class="linenos">4171</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="L-4172"><a href="#L-4172"><span class="linenos">4172</span></a> +</span><span id="L-4173"><a href="#L-4173"><span class="linenos">4173</span></a><span class="sd"> Args:</span> +</span><span id="L-4174"><a href="#L-4174"><span class="linenos">4174</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> +</span><span id="L-4175"><a href="#L-4175"><span class="linenos">4175</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-4176"><a href="#L-4176"><span class="linenos">4176</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> +</span><span id="L-4177"><a href="#L-4177"><span class="linenos">4177</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-4178"><a href="#L-4178"><span class="linenos">4178</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="L-4179"><a href="#L-4179"><span class="linenos">4179</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4180"><a href="#L-4180"><span class="linenos">4180</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-4181"><a href="#L-4181"><span class="linenos">4181</span></a><span class="sd"> Returns:</span> +</span><span id="L-4182"><a href="#L-4182"><span class="linenos">4182</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span> +</span><span id="L-4183"><a href="#L-4183"><span class="linenos">4183</span></a><span class="sd"> """</span> +</span><span id="L-4184"><a href="#L-4184"><span class="linenos">4184</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4185"><a href="#L-4185"><span class="linenos">4185</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span><span id="L-4186"><a href="#L-4186"><span class="linenos">4186</span></a> -</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a><span class="sd"> Args:</span> -</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a><span class="sd"> where (str|Condition): sql conditional parsed into a WHERE statement</span> -</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a> -</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a><span class="sd"> Returns:</span> -</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span> -</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a><span class="sd"> """</span> -</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a> <span class="k">return</span> <span class="n">Delete</span><span class="p">(</span> -</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a> <span class="n">where</span><span class="o">=</span><span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> -</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">)</span> -</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a> <span class="k">else</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WHERE"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</span></a> <span class="p">)</span> -</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a> -</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a> -</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Condition</span><span class="p">:</span> -</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a><span class="sd"> Initialize a logical condition expression.</span> -</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a> -</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a><span class="sd"> Example:</span> -</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a><span class="sd"> >>> condition("x=1").sql()</span> -</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a><span class="sd"> 'x = 1'</span> -</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</span></a> -</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span> -</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a><span class="sd"> >>> where = condition("x=1")</span> -</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a><span class="sd"> >>> where = where.and_("y=1")</span> -</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a><span class="sd"> >>> Select().from_("tbl").select("*").where(where).sql()</span> -</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a><span class="sd"> 'SELECT * FROM tbl WHERE x = 1 AND y = 1'</span> -</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a> -</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a><span class="sd"> Args:</span> -</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span> -</span><span id="L-4219"><a href="#L-4219"><span class="linenos">4219</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> -</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a><span class="sd"> that the input expression is a SQL string).</span> -</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a> -</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a><span class="sd"> Returns:</span> -</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="sd"> Condition: the expression</span> -</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a><span class="sd"> """</span> -</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span> -</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a> <span class="p">)</span> -</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a> +</span><span id="L-4187"><a href="#L-4187"><span class="linenos">4187</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> +</span><span id="L-4188"><a href="#L-4188"><span class="linenos">4188</span></a> +</span><span id="L-4189"><a href="#L-4189"><span class="linenos">4189</span></a> +</span><span id="L-4190"><a href="#L-4190"><span class="linenos">4190</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-4191"><a href="#L-4191"><span class="linenos">4191</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4192"><a href="#L-4192"><span class="linenos">4192</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span> +</span><span id="L-4193"><a href="#L-4193"><span class="linenos">4193</span></a> +</span><span id="L-4194"><a href="#L-4194"><span class="linenos">4194</span></a><span class="sd"> Example:</span> +</span><span id="L-4195"><a href="#L-4195"><span class="linenos">4195</span></a><span class="sd"> >>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> +</span><span id="L-4196"><a href="#L-4196"><span class="linenos">4196</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="L-4197"><a href="#L-4197"><span class="linenos">4197</span></a> +</span><span id="L-4198"><a href="#L-4198"><span class="linenos">4198</span></a><span class="sd"> Args:</span> +</span><span id="L-4199"><a href="#L-4199"><span class="linenos">4199</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> +</span><span id="L-4200"><a href="#L-4200"><span class="linenos">4200</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-4201"><a href="#L-4201"><span class="linenos">4201</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> +</span><span id="L-4202"><a href="#L-4202"><span class="linenos">4202</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="L-4203"><a href="#L-4203"><span class="linenos">4203</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="L-4204"><a href="#L-4204"><span class="linenos">4204</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4205"><a href="#L-4205"><span class="linenos">4205</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="L-4206"><a href="#L-4206"><span class="linenos">4206</span></a><span class="sd"> Returns:</span> +</span><span id="L-4207"><a href="#L-4207"><span class="linenos">4207</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span> +</span><span id="L-4208"><a href="#L-4208"><span class="linenos">4208</span></a><span class="sd"> """</span> +</span><span id="L-4209"><a href="#L-4209"><span class="linenos">4209</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4210"><a href="#L-4210"><span class="linenos">4210</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4211"><a href="#L-4211"><span class="linenos">4211</span></a> +</span><span id="L-4212"><a href="#L-4212"><span class="linenos">4212</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> +</span><span id="L-4213"><a href="#L-4213"><span class="linenos">4213</span></a> +</span><span id="L-4214"><a href="#L-4214"><span class="linenos">4214</span></a> +</span><span id="L-4215"><a href="#L-4215"><span class="linenos">4215</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-4216"><a href="#L-4216"><span class="linenos">4216</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4217"><a href="#L-4217"><span class="linenos">4217</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span> +</span><span id="L-4218"><a href="#L-4218"><span class="linenos">4218</span></a> +</span><span id="L-4219"><a href="#L-4219"><span class="linenos">4219</span></a><span class="sd"> Example:</span> +</span><span id="L-4220"><a href="#L-4220"><span class="linenos">4220</span></a><span class="sd"> >>> select("col1", "col2").from_("tbl").sql()</span> +</span><span id="L-4221"><a href="#L-4221"><span class="linenos">4221</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> +</span><span id="L-4222"><a href="#L-4222"><span class="linenos">4222</span></a> +</span><span id="L-4223"><a href="#L-4223"><span class="linenos">4223</span></a><span class="sd"> Args:</span> +</span><span id="L-4224"><a href="#L-4224"><span class="linenos">4224</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span> +</span><span id="L-4225"><a href="#L-4225"><span class="linenos">4225</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4226"><a href="#L-4226"><span class="linenos">4226</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> +</span><span id="L-4227"><a href="#L-4227"><span class="linenos">4227</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="L-4228"><a href="#L-4228"><span class="linenos">4228</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="L-4229"><a href="#L-4229"><span class="linenos">4229</span></a><span class="sd"> that an input expression is a SQL string).</span> +</span><span id="L-4230"><a href="#L-4230"><span class="linenos">4230</span></a> +</span><span id="L-4231"><a href="#L-4231"><span class="linenos">4231</span></a><span class="sd"> Returns:</span> +</span><span id="L-4232"><a href="#L-4232"><span class="linenos">4232</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> +</span><span id="L-4233"><a href="#L-4233"><span class="linenos">4233</span></a><span class="sd"> """</span> +</span><span id="L-4234"><a href="#L-4234"><span class="linenos">4234</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span><span id="L-4235"><a href="#L-4235"><span class="linenos">4235</span></a> -</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">And</span><span class="p">:</span> -</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span> -</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a> -</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a><span class="sd"> Example:</span> -</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a><span class="sd"> >>> and_("x=1", and_("y=1", "z=1")).sql()</span> -</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="sd"> 'x = 1 AND (y = 1 AND z = 1)'</span> -</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a> -</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a><span class="sd"> Args:</span> -</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a> -</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a><span class="sd"> Returns:</span> -</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a><span class="sd"> And: the new condition</span> -</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a><span class="sd"> """</span> -</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a> -</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a> -</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Or</span><span class="p">:</span> -</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span> -</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a> -</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a><span class="sd"> Example:</span> -</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a><span class="sd"> >>> or_("x=1", or_("y=1", "z=1")).sql()</span> -</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a><span class="sd"> 'x = 1 OR (y = 1 OR z = 1)'</span> -</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a> -</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a><span class="sd"> Args:</span> -</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4236"><a href="#L-4236"><span class="linenos">4236</span></a> +</span><span id="L-4237"><a href="#L-4237"><span class="linenos">4237</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="L-4238"><a href="#L-4238"><span class="linenos">4238</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4239"><a href="#L-4239"><span class="linenos">4239</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span> +</span><span id="L-4240"><a href="#L-4240"><span class="linenos">4240</span></a> +</span><span id="L-4241"><a href="#L-4241"><span class="linenos">4241</span></a><span class="sd"> Example:</span> +</span><span id="L-4242"><a href="#L-4242"><span class="linenos">4242</span></a><span class="sd"> >>> from_("tbl").select("col1", "col2").sql()</span> +</span><span id="L-4243"><a href="#L-4243"><span class="linenos">4243</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> +</span><span id="L-4244"><a href="#L-4244"><span class="linenos">4244</span></a> +</span><span id="L-4245"><a href="#L-4245"><span class="linenos">4245</span></a><span class="sd"> Args:</span> +</span><span id="L-4246"><a href="#L-4246"><span class="linenos">4246</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span> +</span><span id="L-4247"><a href="#L-4247"><span class="linenos">4247</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4248"><a href="#L-4248"><span class="linenos">4248</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> +</span><span id="L-4249"><a href="#L-4249"><span class="linenos">4249</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="L-4250"><a href="#L-4250"><span class="linenos">4250</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="L-4251"><a href="#L-4251"><span class="linenos">4251</span></a><span class="sd"> that the input expression is a SQL string).</span> +</span><span id="L-4252"><a href="#L-4252"><span class="linenos">4252</span></a> +</span><span id="L-4253"><a href="#L-4253"><span class="linenos">4253</span></a><span class="sd"> Returns:</span> +</span><span id="L-4254"><a href="#L-4254"><span class="linenos">4254</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> +</span><span id="L-4255"><a href="#L-4255"><span class="linenos">4255</span></a><span class="sd"> """</span> +</span><span id="L-4256"><a href="#L-4256"><span class="linenos">4256</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4257"><a href="#L-4257"><span class="linenos">4257</span></a> +</span><span id="L-4258"><a href="#L-4258"><span class="linenos">4258</span></a> +</span><span id="L-4259"><a href="#L-4259"><span class="linenos">4259</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span> +</span><span id="L-4260"><a href="#L-4260"><span class="linenos">4260</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> +</span><span id="L-4261"><a href="#L-4261"><span class="linenos">4261</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> +</span><span id="L-4262"><a href="#L-4262"><span class="linenos">4262</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4263"><a href="#L-4263"><span class="linenos">4263</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4264"><a href="#L-4264"><span class="linenos">4264</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4265"><a href="#L-4265"><span class="linenos">4265</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4266"><a href="#L-4266"><span class="linenos">4266</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Update</span><span class="p">:</span> +</span><span id="L-4267"><a href="#L-4267"><span class="linenos">4267</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4268"><a href="#L-4268"><span class="linenos">4268</span></a><span class="sd"> Creates an update statement.</span> </span><span id="L-4269"><a href="#L-4269"><span class="linenos">4269</span></a> -</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="sd"> Returns:</span> -</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="sd"> Or: the new condition</span> -</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="sd"> """</span> -</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a> -</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a> -</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Not</span><span class="p">:</span> -</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a><span class="sd"> Wrap a condition with a NOT operator.</span> -</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a> -</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a><span class="sd"> Example:</span> -</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a><span class="sd"> >>> not_("this_suit='black'").sql()</span> -</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a><span class="sd"> "NOT this_suit = 'black'"</span> -</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a> -</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a><span class="sd"> Args:</span> -</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> -</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a><span class="sd"> Returns:</span> -</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a><span class="sd"> Not: the new condition</span> -</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</span></a><span class="sd"> """</span> -</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span> -</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a> <span class="p">)</span> -</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> -</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a> -</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a> -</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">Paren</span><span class="p">:</span> -</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-4303"><a href="#L-4303"><span class="linenos">4303</span></a> -</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</span></a> -</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</span></a><span class="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^[_a-zA-Z][\w]*$"</span><span class="p">)</span> +</span><span id="L-4270"><a href="#L-4270"><span class="linenos">4270</span></a><span class="sd"> Example:</span> +</span><span id="L-4271"><a href="#L-4271"><span class="linenos">4271</span></a><span class="sd"> >>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql()</span> +</span><span id="L-4272"><a href="#L-4272"><span class="linenos">4272</span></a><span class="sd"> "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"</span> +</span><span id="L-4273"><a href="#L-4273"><span class="linenos">4273</span></a> +</span><span id="L-4274"><a href="#L-4274"><span class="linenos">4274</span></a><span class="sd"> Args:</span> +</span><span id="L-4275"><a href="#L-4275"><span class="linenos">4275</span></a><span class="sd"> *properties: dictionary of properties to set which are</span> +</span><span id="L-4276"><a href="#L-4276"><span class="linenos">4276</span></a><span class="sd"> auto converted to sql objects eg None -> NULL</span> +</span><span id="L-4277"><a href="#L-4277"><span class="linenos">4277</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span> +</span><span id="L-4278"><a href="#L-4278"><span class="linenos">4278</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span> +</span><span id="L-4279"><a href="#L-4279"><span class="linenos">4279</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="L-4280"><a href="#L-4280"><span class="linenos">4280</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4281"><a href="#L-4281"><span class="linenos">4281</span></a> +</span><span id="L-4282"><a href="#L-4282"><span class="linenos">4282</span></a><span class="sd"> Returns:</span> +</span><span id="L-4283"><a href="#L-4283"><span class="linenos">4283</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span> +</span><span id="L-4284"><a href="#L-4284"><span class="linenos">4284</span></a><span class="sd"> """</span> +</span><span id="L-4285"><a href="#L-4285"><span class="linenos">4285</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span> +</span><span id="L-4286"><a href="#L-4286"><span class="linenos">4286</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="L-4287"><a href="#L-4287"><span class="linenos">4287</span></a> <span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="L-4288"><a href="#L-4288"><span class="linenos">4288</span></a> <span class="p">[</span> +</span><span id="L-4289"><a href="#L-4289"><span class="linenos">4289</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span> +</span><span id="L-4290"><a href="#L-4290"><span class="linenos">4290</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="L-4291"><a href="#L-4291"><span class="linenos">4291</span></a> <span class="p">],</span> +</span><span id="L-4292"><a href="#L-4292"><span class="linenos">4292</span></a> <span class="p">)</span> +</span><span id="L-4293"><a href="#L-4293"><span class="linenos">4293</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> +</span><span id="L-4294"><a href="#L-4294"><span class="linenos">4294</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="L-4295"><a href="#L-4295"><span class="linenos">4295</span></a> <span class="s2">"from"</span><span class="p">,</span> +</span><span id="L-4296"><a href="#L-4296"><span class="linenos">4296</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> +</span><span id="L-4297"><a href="#L-4297"><span class="linenos">4297</span></a> <span class="p">)</span> +</span><span id="L-4298"><a href="#L-4298"><span class="linenos">4298</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="L-4299"><a href="#L-4299"><span class="linenos">4299</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> +</span><span id="L-4300"><a href="#L-4300"><span class="linenos">4300</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span> +</span><span id="L-4301"><a href="#L-4301"><span class="linenos">4301</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="L-4302"><a href="#L-4302"><span class="linenos">4302</span></a> <span class="s2">"where"</span><span class="p">,</span> +</span><span id="L-4303"><a href="#L-4303"><span class="linenos">4303</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WHERE"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> +</span><span id="L-4304"><a href="#L-4304"><span class="linenos">4304</span></a> <span class="p">)</span> +</span><span id="L-4305"><a href="#L-4305"><span class="linenos">4305</span></a> <span class="k">return</span> <span class="n">update_expr</span> </span><span id="L-4306"><a href="#L-4306"><span class="linenos">4306</span></a> </span><span id="L-4307"><a href="#L-4307"><span class="linenos">4307</span></a> -</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> -</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a> <span class="o">...</span> -</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a> -</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a> -</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> -</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Identifier</span><span class="p">:</span> -</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a> <span class="o">...</span> -</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a> +</span><span id="L-4308"><a href="#L-4308"><span class="linenos">4308</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span> +</span><span id="L-4309"><a href="#L-4309"><span class="linenos">4309</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-4310"><a href="#L-4310"><span class="linenos">4310</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4311"><a href="#L-4311"><span class="linenos">4311</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4312"><a href="#L-4312"><span class="linenos">4312</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4313"><a href="#L-4313"><span class="linenos">4313</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4314"><a href="#L-4314"><span class="linenos">4314</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="L-4315"><a href="#L-4315"><span class="linenos">4315</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4316"><a href="#L-4316"><span class="linenos">4316</span></a><span class="sd"> Builds a delete statement.</span> </span><span id="L-4317"><a href="#L-4317"><span class="linenos">4317</span></a> -</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a><span class="w"> </span><span class="sd">"""Builds an identifier.</span> -</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a> -</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a><span class="sd"> Args:</span> -</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a><span class="sd"> name: The name to turn into an identifier.</span> -</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span> -</span><span id="L-4324"><a href="#L-4324"><span class="linenos">4324</span></a> -</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a><span class="sd"> Returns:</span> -</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="sd"> The identifier ast node.</span> -</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a><span class="sd"> """</span> -</span><span id="L-4328"><a href="#L-4328"><span class="linenos">4328</span></a> -</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a> -</span><span id="L-4332"><a href="#L-4332"><span class="linenos">4332</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span> -</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span> -</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-4335"><a href="#L-4335"><span class="linenos">4335</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span> -</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> -</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span> -</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a> <span class="p">)</span> -</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a> <span class="k">return</span> <span class="n">identifier</span> +</span><span id="L-4318"><a href="#L-4318"><span class="linenos">4318</span></a><span class="sd"> Example:</span> +</span><span id="L-4319"><a href="#L-4319"><span class="linenos">4319</span></a><span class="sd"> >>> delete("my_table", where="id > 1").sql()</span> +</span><span id="L-4320"><a href="#L-4320"><span class="linenos">4320</span></a><span class="sd"> 'DELETE FROM my_table WHERE id > 1'</span> +</span><span id="L-4321"><a href="#L-4321"><span class="linenos">4321</span></a> +</span><span id="L-4322"><a href="#L-4322"><span class="linenos">4322</span></a><span class="sd"> Args:</span> +</span><span id="L-4323"><a href="#L-4323"><span class="linenos">4323</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span> +</span><span id="L-4324"><a href="#L-4324"><span class="linenos">4324</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span> +</span><span id="L-4325"><a href="#L-4325"><span class="linenos">4325</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="L-4326"><a href="#L-4326"><span class="linenos">4326</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4327"><a href="#L-4327"><span class="linenos">4327</span></a> +</span><span id="L-4328"><a href="#L-4328"><span class="linenos">4328</span></a><span class="sd"> Returns:</span> +</span><span id="L-4329"><a href="#L-4329"><span class="linenos">4329</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span> +</span><span id="L-4330"><a href="#L-4330"><span class="linenos">4330</span></a><span class="sd"> """</span> +</span><span id="L-4331"><a href="#L-4331"><span class="linenos">4331</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4332"><a href="#L-4332"><span class="linenos">4332</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span> +</span><span id="L-4333"><a href="#L-4333"><span class="linenos">4333</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4334"><a href="#L-4334"><span class="linenos">4334</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span> +</span><span id="L-4335"><a href="#L-4335"><span class="linenos">4335</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4336"><a href="#L-4336"><span class="linenos">4336</span></a> <span class="k">return</span> <span class="n">delete_expr</span> +</span><span id="L-4337"><a href="#L-4337"><span class="linenos">4337</span></a> +</span><span id="L-4338"><a href="#L-4338"><span class="linenos">4338</span></a> +</span><span id="L-4339"><a href="#L-4339"><span class="linenos">4339</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Condition</span><span class="p">:</span> +</span><span id="L-4340"><a href="#L-4340"><span class="linenos">4340</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4341"><a href="#L-4341"><span class="linenos">4341</span></a><span class="sd"> Initialize a logical condition expression.</span> </span><span id="L-4342"><a href="#L-4342"><span class="linenos">4342</span></a> -</span><span id="L-4343"><a href="#L-4343"><span class="linenos">4343</span></a> -</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a><span class="n">INTERVAL_STRING_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\s*([0-9]+)\s*([a-zA-Z]+)\s*"</span><span class="p">)</span> -</span><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a> +</span><span id="L-4343"><a href="#L-4343"><span class="linenos">4343</span></a><span class="sd"> Example:</span> +</span><span id="L-4344"><a href="#L-4344"><span class="linenos">4344</span></a><span class="sd"> >>> condition("x=1").sql()</span> +</span><span id="L-4345"><a href="#L-4345"><span class="linenos">4345</span></a><span class="sd"> 'x = 1'</span> </span><span id="L-4346"><a href="#L-4346"><span class="linenos">4346</span></a> -</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="n">Interval</span><span class="p">:</span> -</span><span id="L-4348"><a href="#L-4348"><span class="linenos">4348</span></a><span class="w"> </span><span class="sd">"""Builds an interval expression from a string like '1 day' or '5 months'."""</span> -</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span> -</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> +</span><span id="L-4347"><a href="#L-4347"><span class="linenos">4347</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span> +</span><span id="L-4348"><a href="#L-4348"><span class="linenos">4348</span></a><span class="sd"> >>> where = condition("x=1")</span> +</span><span id="L-4349"><a href="#L-4349"><span class="linenos">4349</span></a><span class="sd"> >>> where = where.and_("y=1")</span> +</span><span id="L-4350"><a href="#L-4350"><span class="linenos">4350</span></a><span class="sd"> >>> Select().from_("tbl").select("*").where(where).sql()</span> +</span><span id="L-4351"><a href="#L-4351"><span class="linenos">4351</span></a><span class="sd"> 'SELECT * FROM tbl WHERE x = 1 AND y = 1'</span> </span><span id="L-4352"><a href="#L-4352"><span class="linenos">4352</span></a> -</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</span></a> -</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-4356"><a href="#L-4356"><span class="linenos">4356</span></a> -</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span> -</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> -</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a> -</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span> -</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span> -</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> -</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a> <span class="p">)</span> -</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a> -</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a> -</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> -</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Table</span><span class="p">:</span> -</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="o">...</span> -</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</span></a> +</span><span id="L-4353"><a href="#L-4353"><span class="linenos">4353</span></a><span class="sd"> Args:</span> +</span><span id="L-4354"><a href="#L-4354"><span class="linenos">4354</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span> +</span><span id="L-4355"><a href="#L-4355"><span class="linenos">4355</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4356"><a href="#L-4356"><span class="linenos">4356</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> +</span><span id="L-4357"><a href="#L-4357"><span class="linenos">4357</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="L-4358"><a href="#L-4358"><span class="linenos">4358</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="L-4359"><a href="#L-4359"><span class="linenos">4359</span></a><span class="sd"> that the input expression is a SQL string).</span> +</span><span id="L-4360"><a href="#L-4360"><span class="linenos">4360</span></a> +</span><span id="L-4361"><a href="#L-4361"><span class="linenos">4361</span></a><span class="sd"> Returns:</span> +</span><span id="L-4362"><a href="#L-4362"><span class="linenos">4362</span></a><span class="sd"> Condition: the expression</span> +</span><span id="L-4363"><a href="#L-4363"><span class="linenos">4363</span></a><span class="sd"> """</span> +</span><span id="L-4364"><a href="#L-4364"><span class="linenos">4364</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="L-4365"><a href="#L-4365"><span class="linenos">4365</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-4366"><a href="#L-4366"><span class="linenos">4366</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span> +</span><span id="L-4367"><a href="#L-4367"><span class="linenos">4367</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-4368"><a href="#L-4368"><span class="linenos">4368</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4369"><a href="#L-4369"><span class="linenos">4369</span></a> <span class="p">)</span> </span><span id="L-4370"><a href="#L-4370"><span class="linenos">4370</span></a> -</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> -</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</span></a> <span class="o">...</span> -</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</span></a> +</span><span id="L-4371"><a href="#L-4371"><span class="linenos">4371</span></a> +</span><span id="L-4372"><a href="#L-4372"><span class="linenos">4372</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">And</span><span class="p">:</span> +</span><span id="L-4373"><a href="#L-4373"><span class="linenos">4373</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4374"><a href="#L-4374"><span class="linenos">4374</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span> </span><span id="L-4375"><a href="#L-4375"><span class="linenos">4375</span></a> -</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</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">Table</span><span class="p">]:</span> -</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span> -</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a><span class="sd"> If a table is passed in then that table is returned.</span> -</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a> -</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a><span class="sd"> Args:</span> -</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span> -</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a> -</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a><span class="sd"> Returns:</span> -</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a><span class="sd"> A table expression.</span> -</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a><span class="sd"> """</span> -</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> -</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a> <span class="k">return</span> <span class="n">sql_path</span> -</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-4376"><a href="#L-4376"><span class="linenos">4376</span></a><span class="sd"> Example:</span> +</span><span id="L-4377"><a href="#L-4377"><span class="linenos">4377</span></a><span class="sd"> >>> and_("x=1", and_("y=1", "z=1")).sql()</span> +</span><span id="L-4378"><a href="#L-4378"><span class="linenos">4378</span></a><span class="sd"> 'x = 1 AND (y = 1 AND z = 1)'</span> +</span><span id="L-4379"><a href="#L-4379"><span class="linenos">4379</span></a> +</span><span id="L-4380"><a href="#L-4380"><span class="linenos">4380</span></a><span class="sd"> Args:</span> +</span><span id="L-4381"><a href="#L-4381"><span class="linenos">4381</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-4382"><a href="#L-4382"><span class="linenos">4382</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4383"><a href="#L-4383"><span class="linenos">4383</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4384"><a href="#L-4384"><span class="linenos">4384</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4385"><a href="#L-4385"><span class="linenos">4385</span></a> +</span><span id="L-4386"><a href="#L-4386"><span class="linenos">4386</span></a><span class="sd"> Returns:</span> +</span><span id="L-4387"><a href="#L-4387"><span class="linenos">4387</span></a><span class="sd"> And: the new condition</span> +</span><span id="L-4388"><a href="#L-4388"><span class="linenos">4388</span></a><span class="sd"> """</span> +</span><span id="L-4389"><a href="#L-4389"><span class="linenos">4389</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4390"><a href="#L-4390"><span class="linenos">4390</span></a> </span><span id="L-4391"><a href="#L-4391"><span class="linenos">4391</span></a> -</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span> -</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a> +</span><span id="L-4392"><a href="#L-4392"><span class="linenos">4392</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Or</span><span class="p">:</span> +</span><span id="L-4393"><a href="#L-4393"><span class="linenos">4393</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4394"><a href="#L-4394"><span class="linenos">4394</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span> </span><span id="L-4395"><a href="#L-4395"><span class="linenos">4395</span></a> -</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span> +</span><span id="L-4396"><a href="#L-4396"><span class="linenos">4396</span></a><span class="sd"> Example:</span> +</span><span id="L-4397"><a href="#L-4397"><span class="linenos">4397</span></a><span class="sd"> >>> or_("x=1", or_("y=1", "z=1")).sql()</span> +</span><span id="L-4398"><a href="#L-4398"><span class="linenos">4398</span></a><span class="sd"> 'x = 1 OR (y = 1 OR z = 1)'</span> </span><span id="L-4399"><a href="#L-4399"><span class="linenos">4399</span></a> -</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a><span class="sd"> If a column is passed in then that column is returned.</span> -</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a> -</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a><span class="sd"> Args:</span> -</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a><span class="sd"> sql_path: `[table].[column]` string</span> -</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</span></a><span class="sd"> Returns:</span> -</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a><span class="sd"> Table: A column expression</span> -</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a><span class="sd"> """</span> -</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> -</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</span></a> <span class="k">return</span> <span class="n">sql_path</span> -</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span> -</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a> -</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a> -</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span> -</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</span></a> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> -</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4420"><a href="#L-4420"><span class="linenos">4420</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a><span class="p">):</span> -</span><span id="L-4423"><a href="#L-4423"><span class="linenos">4423</span></a><span class="w"> </span><span class="sd">"""Create an Alias expression.</span> -</span><span id="L-4424"><a href="#L-4424"><span class="linenos">4424</span></a> -</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a><span class="sd"> Example:</span> -</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a><span class="sd"> >>> alias_('foo', 'bar').sql()</span> -</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a><span class="sd"> 'foo AS bar'</span> -</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a> -</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a><span class="sd"> >>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql()</span> -</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a><span class="sd"> '(SELECT 1, 2) AS bar(a, b)'</span> -</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a> -</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a><span class="sd"> Args:</span> -</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a><span class="sd"> expression: the SQL code strings to parse.</span> -</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a><span class="sd"> alias: the alias name to use. If the name has</span> -</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a><span class="sd"> special characters it is quoted.</span> -</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span> -</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a><span class="sd"> quoted: whether or not to quote the alias</span> -</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> -</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a> -</span><span id="L-4442"><a href="#L-4442"><span class="linenos">4442</span></a><span class="sd"> Returns:</span> -</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a><span class="sd"> Alias: the aliased expression</span> -</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a><span class="sd"> """</span> -</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> +</span><span id="L-4400"><a href="#L-4400"><span class="linenos">4400</span></a><span class="sd"> Args:</span> +</span><span id="L-4401"><a href="#L-4401"><span class="linenos">4401</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-4402"><a href="#L-4402"><span class="linenos">4402</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4403"><a href="#L-4403"><span class="linenos">4403</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4404"><a href="#L-4404"><span class="linenos">4404</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4405"><a href="#L-4405"><span class="linenos">4405</span></a> +</span><span id="L-4406"><a href="#L-4406"><span class="linenos">4406</span></a><span class="sd"> Returns:</span> +</span><span id="L-4407"><a href="#L-4407"><span class="linenos">4407</span></a><span class="sd"> Or: the new condition</span> +</span><span id="L-4408"><a href="#L-4408"><span class="linenos">4408</span></a><span class="sd"> """</span> +</span><span id="L-4409"><a href="#L-4409"><span class="linenos">4409</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4410"><a href="#L-4410"><span class="linenos">4410</span></a> +</span><span id="L-4411"><a href="#L-4411"><span class="linenos">4411</span></a> +</span><span id="L-4412"><a href="#L-4412"><span class="linenos">4412</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Not</span><span class="p">:</span> +</span><span id="L-4413"><a href="#L-4413"><span class="linenos">4413</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4414"><a href="#L-4414"><span class="linenos">4414</span></a><span class="sd"> Wrap a condition with a NOT operator.</span> +</span><span id="L-4415"><a href="#L-4415"><span class="linenos">4415</span></a> +</span><span id="L-4416"><a href="#L-4416"><span class="linenos">4416</span></a><span class="sd"> Example:</span> +</span><span id="L-4417"><a href="#L-4417"><span class="linenos">4417</span></a><span class="sd"> >>> not_("this_suit='black'").sql()</span> +</span><span id="L-4418"><a href="#L-4418"><span class="linenos">4418</span></a><span class="sd"> "NOT this_suit = 'black'"</span> +</span><span id="L-4419"><a href="#L-4419"><span class="linenos">4419</span></a> +</span><span id="L-4420"><a href="#L-4420"><span class="linenos">4420</span></a><span class="sd"> Args:</span> +</span><span id="L-4421"><a href="#L-4421"><span class="linenos">4421</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-4422"><a href="#L-4422"><span class="linenos">4422</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4423"><a href="#L-4423"><span class="linenos">4423</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4424"><a href="#L-4424"><span class="linenos">4424</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4425"><a href="#L-4425"><span class="linenos">4425</span></a> +</span><span id="L-4426"><a href="#L-4426"><span class="linenos">4426</span></a><span class="sd"> Returns:</span> +</span><span id="L-4427"><a href="#L-4427"><span class="linenos">4427</span></a><span class="sd"> Not: the new condition</span> +</span><span id="L-4428"><a href="#L-4428"><span class="linenos">4428</span></a><span class="sd"> """</span> +</span><span id="L-4429"><a href="#L-4429"><span class="linenos">4429</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span> +</span><span id="L-4430"><a href="#L-4430"><span class="linenos">4430</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-4431"><a href="#L-4431"><span class="linenos">4431</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="L-4432"><a href="#L-4432"><span class="linenos">4432</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4433"><a href="#L-4433"><span class="linenos">4433</span></a> <span class="p">)</span> +</span><span id="L-4434"><a href="#L-4434"><span class="linenos">4434</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> +</span><span id="L-4435"><a href="#L-4435"><span class="linenos">4435</span></a> +</span><span id="L-4436"><a href="#L-4436"><span class="linenos">4436</span></a> +</span><span id="L-4437"><a href="#L-4437"><span class="linenos">4437</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">Paren</span><span class="p">:</span> +</span><span id="L-4438"><a href="#L-4438"><span class="linenos">4438</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-4439"><a href="#L-4439"><span class="linenos">4439</span></a> +</span><span id="L-4440"><a href="#L-4440"><span class="linenos">4440</span></a> +</span><span id="L-4441"><a href="#L-4441"><span class="linenos">4441</span></a><span class="n">SAFE_IDENTIFIER_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"^[_a-zA-Z][\w]*$"</span><span class="p">)</span> +</span><span id="L-4442"><a href="#L-4442"><span class="linenos">4442</span></a> +</span><span id="L-4443"><a href="#L-4443"><span class="linenos">4443</span></a> +</span><span id="L-4444"><a href="#L-4444"><span class="linenos">4444</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> +</span><span id="L-4445"><a href="#L-4445"><span class="linenos">4445</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-4446"><a href="#L-4446"><span class="linenos">4446</span></a> <span class="o">...</span> </span><span id="L-4447"><a href="#L-4447"><span class="linenos">4447</span></a> -</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span> -</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> -</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> -</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a> -</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> -</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span> -</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span> -</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</span></a> -</span><span id="L-4456"><a href="#L-4456"><span class="linenos">4456</span></a> <span class="k">return</span> <span class="n">exp</span> -</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</span></a> -</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a> <span class="c1"># We don't set the "alias" arg for Window expressions, because that would add an IDENTIFIER node in</span> -</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a> <span class="c1"># the AST, representing a "named_window" [1] construct (eg. bigquery). What we want is an ALIAS node</span> -</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a> <span class="c1"># for the complete Window expression.</span> -</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a> <span class="c1">#</span> -</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span> -</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</span></a> -</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a> <span class="k">if</span> <span class="s2">"alias"</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span> -</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> -</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a> <span class="k">return</span> <span class="n">exp</span> -</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> -</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a> -</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a> -</span><span id="L-4471"><a href="#L-4471"><span class="linenos">4471</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a><span class="sd"> Build a subquery expression.</span> -</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a> -</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a><span class="sd"> Example:</span> -</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a><span class="sd"> >>> subquery('select x from tbl', 'bar').select('x').sql()</span> -</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl) AS bar'</span> +</span><span id="L-4448"><a href="#L-4448"><span class="linenos">4448</span></a> +</span><span id="L-4449"><a href="#L-4449"><span class="linenos">4449</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> +</span><span id="L-4450"><a href="#L-4450"><span class="linenos">4450</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Identifier</span><span class="p">:</span> +</span><span id="L-4451"><a href="#L-4451"><span class="linenos">4451</span></a> <span class="o">...</span> +</span><span id="L-4452"><a href="#L-4452"><span class="linenos">4452</span></a> +</span><span id="L-4453"><a href="#L-4453"><span class="linenos">4453</span></a> +</span><span id="L-4454"><a href="#L-4454"><span class="linenos">4454</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="L-4455"><a href="#L-4455"><span class="linenos">4455</span></a><span class="w"> </span><span class="sd">"""Builds an identifier.</span> +</span><span id="L-4456"><a href="#L-4456"><span class="linenos">4456</span></a> +</span><span id="L-4457"><a href="#L-4457"><span class="linenos">4457</span></a><span class="sd"> Args:</span> +</span><span id="L-4458"><a href="#L-4458"><span class="linenos">4458</span></a><span class="sd"> name: The name to turn into an identifier.</span> +</span><span id="L-4459"><a href="#L-4459"><span class="linenos">4459</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span> +</span><span id="L-4460"><a href="#L-4460"><span class="linenos">4460</span></a> +</span><span id="L-4461"><a href="#L-4461"><span class="linenos">4461</span></a><span class="sd"> Returns:</span> +</span><span id="L-4462"><a href="#L-4462"><span class="linenos">4462</span></a><span class="sd"> The identifier ast node.</span> +</span><span id="L-4463"><a href="#L-4463"><span class="linenos">4463</span></a><span class="sd"> """</span> +</span><span id="L-4464"><a href="#L-4464"><span class="linenos">4464</span></a> +</span><span id="L-4465"><a href="#L-4465"><span class="linenos">4465</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-4466"><a href="#L-4466"><span class="linenos">4466</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-4467"><a href="#L-4467"><span class="linenos">4467</span></a> +</span><span id="L-4468"><a href="#L-4468"><span class="linenos">4468</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span> +</span><span id="L-4469"><a href="#L-4469"><span class="linenos">4469</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span> +</span><span id="L-4470"><a href="#L-4470"><span class="linenos">4470</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-4471"><a href="#L-4471"><span class="linenos">4471</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span> +</span><span id="L-4472"><a href="#L-4472"><span class="linenos">4472</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> +</span><span id="L-4473"><a href="#L-4473"><span class="linenos">4473</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span> +</span><span id="L-4474"><a href="#L-4474"><span class="linenos">4474</span></a> <span class="p">)</span> +</span><span id="L-4475"><a href="#L-4475"><span class="linenos">4475</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-4476"><a href="#L-4476"><span class="linenos">4476</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-4477"><a href="#L-4477"><span class="linenos">4477</span></a> <span class="k">return</span> <span class="n">identifier</span> </span><span id="L-4478"><a href="#L-4478"><span class="linenos">4478</span></a> -</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a><span class="sd"> Args:</span> -</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> -</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span> -</span><span id="L-4483"><a href="#L-4483"><span class="linenos">4483</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a> -</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a><span class="sd"> Returns:</span> -</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a><span class="sd"> Select: a new select with the subquery expression included</span> -</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a><span class="sd"> """</span> -</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a> -</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> -</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4479"><a href="#L-4479"><span class="linenos">4479</span></a> +</span><span id="L-4480"><a href="#L-4480"><span class="linenos">4480</span></a><span class="n">INTERVAL_STRING_RE</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">compile</span><span class="p">(</span><span class="sa">r</span><span class="s2">"\s*([0-9]+)\s*([a-zA-Z]+)\s*"</span><span class="p">)</span> +</span><span id="L-4481"><a href="#L-4481"><span class="linenos">4481</span></a> +</span><span id="L-4482"><a href="#L-4482"><span class="linenos">4482</span></a> +</span><span id="L-4483"><a href="#L-4483"><span class="linenos">4483</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="n">Interval</span><span class="p">:</span> +</span><span id="L-4484"><a href="#L-4484"><span class="linenos">4484</span></a><span class="w"> </span><span class="sd">"""Builds an interval expression from a string like '1 day' or '5 months'."""</span> +</span><span id="L-4485"><a href="#L-4485"><span class="linenos">4485</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span> +</span><span id="L-4486"><a href="#L-4486"><span class="linenos">4486</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="L-4487"><a href="#L-4487"><span class="linenos">4487</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> +</span><span id="L-4488"><a href="#L-4488"><span class="linenos">4488</span></a> +</span><span id="L-4489"><a href="#L-4489"><span class="linenos">4489</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-4490"><a href="#L-4490"><span class="linenos">4490</span></a> +</span><span id="L-4491"><a href="#L-4491"><span class="linenos">4491</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span> </span><span id="L-4492"><a href="#L-4492"><span class="linenos">4492</span></a> -</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a> -</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span> -</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> -</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a> <span class="n">schema</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a><span class="sd"> Build a Column.</span> -</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a> -</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a><span class="sd"> Args:</span> -</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a><span class="sd"> col: column name</span> -</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a><span class="sd"> table: table name</span> -</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a><span class="sd"> schema: schema name</span> -</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a><span class="sd"> quoted: whether or not to force quote each part</span> -</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="sd"> Returns:</span> -</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a><span class="sd"> Column: column instance</span> -</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a><span class="sd"> """</span> -</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span> -</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a> <span class="p">)</span> +</span><span id="L-4493"><a href="#L-4493"><span class="linenos">4493</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span> +</span><span id="L-4494"><a href="#L-4494"><span class="linenos">4494</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> +</span><span id="L-4495"><a href="#L-4495"><span class="linenos">4495</span></a> +</span><span id="L-4496"><a href="#L-4496"><span class="linenos">4496</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span> +</span><span id="L-4497"><a href="#L-4497"><span class="linenos">4497</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span> +</span><span id="L-4498"><a href="#L-4498"><span class="linenos">4498</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="L-4499"><a href="#L-4499"><span class="linenos">4499</span></a> <span class="p">)</span> +</span><span id="L-4500"><a href="#L-4500"><span class="linenos">4500</span></a> +</span><span id="L-4501"><a href="#L-4501"><span class="linenos">4501</span></a> +</span><span id="L-4502"><a href="#L-4502"><span class="linenos">4502</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> +</span><span id="L-4503"><a href="#L-4503"><span class="linenos">4503</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Table</span><span class="p">:</span> +</span><span id="L-4504"><a href="#L-4504"><span class="linenos">4504</span></a> <span class="o">...</span> +</span><span id="L-4505"><a href="#L-4505"><span class="linenos">4505</span></a> +</span><span id="L-4506"><a href="#L-4506"><span class="linenos">4506</span></a> +</span><span id="L-4507"><a href="#L-4507"><span class="linenos">4507</span></a><span class="nd">@t</span><span class="o">.</span><span class="n">overload</span> +</span><span id="L-4508"><a href="#L-4508"><span class="linenos">4508</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-4509"><a href="#L-4509"><span class="linenos">4509</span></a> <span class="o">...</span> +</span><span id="L-4510"><a href="#L-4510"><span class="linenos">4510</span></a> +</span><span id="L-4511"><a href="#L-4511"><span class="linenos">4511</span></a> +</span><span id="L-4512"><a href="#L-4512"><span class="linenos">4512</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</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">Table</span><span class="p">]:</span> +</span><span id="L-4513"><a href="#L-4513"><span class="linenos">4513</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4514"><a href="#L-4514"><span class="linenos">4514</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span> +</span><span id="L-4515"><a href="#L-4515"><span class="linenos">4515</span></a><span class="sd"> If a table is passed in then that table is returned.</span> </span><span id="L-4516"><a href="#L-4516"><span class="linenos">4516</span></a> -</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a> -</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Cast</span><span class="p">:</span> -</span><span id="L-4519"><a href="#L-4519"><span class="linenos">4519</span></a><span class="w"> </span><span class="sd">"""Cast an expression to a data type.</span> -</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</span></a> -</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a><span class="sd"> Example:</span> -</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="sd"> >>> cast('x + 1', 'int').sql()</span> -</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a><span class="sd"> 'CAST(x + 1 AS INT)'</span> -</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a> -</span><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a><span class="sd"> Args:</span> -</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a><span class="sd"> expression: The expression to cast.</span> -</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a><span class="sd"> to: The datatype to cast to.</span> -</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a> -</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a><span class="sd"> Returns:</span> -</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a><span class="sd"> A cast node.</span> -</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a><span class="sd"> """</span> -</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span> -</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a> +</span><span id="L-4517"><a href="#L-4517"><span class="linenos">4517</span></a><span class="sd"> Args:</span> +</span><span id="L-4518"><a href="#L-4518"><span class="linenos">4518</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span> +</span><span id="L-4519"><a href="#L-4519"><span class="linenos">4519</span></a> +</span><span id="L-4520"><a href="#L-4520"><span class="linenos">4520</span></a><span class="sd"> Returns:</span> +</span><span id="L-4521"><a href="#L-4521"><span class="linenos">4521</span></a><span class="sd"> A table expression.</span> +</span><span id="L-4522"><a href="#L-4522"><span class="linenos">4522</span></a><span class="sd"> """</span> +</span><span id="L-4523"><a href="#L-4523"><span class="linenos">4523</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> +</span><span id="L-4524"><a href="#L-4524"><span class="linenos">4524</span></a> <span class="k">return</span> <span class="n">sql_path</span> +</span><span id="L-4525"><a href="#L-4525"><span class="linenos">4525</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-4526"><a href="#L-4526"><span class="linenos">4526</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-4527"><a href="#L-4527"><span class="linenos">4527</span></a> +</span><span id="L-4528"><a href="#L-4528"><span class="linenos">4528</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span> +</span><span id="L-4529"><a href="#L-4529"><span class="linenos">4529</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-4530"><a href="#L-4530"><span class="linenos">4530</span></a> +</span><span id="L-4531"><a href="#L-4531"><span class="linenos">4531</span></a> +</span><span id="L-4532"><a href="#L-4532"><span class="linenos">4532</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> +</span><span id="L-4533"><a href="#L-4533"><span class="linenos">4533</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4534"><a href="#L-4534"><span class="linenos">4534</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span> </span><span id="L-4535"><a href="#L-4535"><span class="linenos">4535</span></a> -</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Table</span><span class="p">:</span> -</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a><span class="w"> </span><span class="sd">"""Build a Table.</span> -</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a> -</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> Args:</span> -</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="sd"> table (str | Expression): column name</span> -</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> db (str | Expression): db name</span> -</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a><span class="sd"> catalog (str | Expression): catalog name</span> -</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a> -</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a><span class="sd"> Returns:</span> -</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a><span class="sd"> Table: table instance</span> -</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a><span class="sd"> """</span> -</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span> -</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a> <span class="p">)</span> -</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a> -</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a> -</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span> -</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span> -</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Values</span><span class="p">:</span> -</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a><span class="w"> </span><span class="sd">"""Build VALUES statement.</span> -</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a> -</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a><span class="sd"> Example:</span> -</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a><span class="sd"> >>> values([(1, '2')]).sql()</span> -</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a><span class="sd"> "VALUES (1, '2')"</span> -</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a> -</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a><span class="sd"> Args:</span> -</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a><span class="sd"> values: values statements that will be converted to SQL</span> -</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a><span class="sd"> alias: optional alias</span> -</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span> -</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="sd"> If either are provided then an alias is also required.</span> -</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span> -</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a><span class="sd"> in order to help with type inference.</span> -</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a> -</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="sd"> Returns:</span> -</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a><span class="sd"> Values: the Values expression object</span> -</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a><span class="sd"> """</span> -</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Alias is required when providing columns"</span><span class="p">)</span> -</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span> -</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a> <span class="k">if</span> <span class="n">columns</span> -</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a> <span class="p">)</span> -</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">]</span> -</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> -</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> -</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span> -</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a> <span class="p">)</span> -</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span> -</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> -</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="p">)</span> -</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> -</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> -</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">Var</span><span class="p">:</span> -</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a><span class="w"> </span><span class="sd">"""Build a SQL variable.</span> +</span><span id="L-4536"><a href="#L-4536"><span class="linenos">4536</span></a><span class="sd"> If a column is passed in then that column is returned.</span> +</span><span id="L-4537"><a href="#L-4537"><span class="linenos">4537</span></a> +</span><span id="L-4538"><a href="#L-4538"><span class="linenos">4538</span></a><span class="sd"> Args:</span> +</span><span id="L-4539"><a href="#L-4539"><span class="linenos">4539</span></a><span class="sd"> sql_path: `[table].[column]` string</span> +</span><span id="L-4540"><a href="#L-4540"><span class="linenos">4540</span></a><span class="sd"> Returns:</span> +</span><span id="L-4541"><a href="#L-4541"><span class="linenos">4541</span></a><span class="sd"> Table: A column expression</span> +</span><span id="L-4542"><a href="#L-4542"><span class="linenos">4542</span></a><span class="sd"> """</span> +</span><span id="L-4543"><a href="#L-4543"><span class="linenos">4543</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> +</span><span id="L-4544"><a href="#L-4544"><span class="linenos">4544</span></a> <span class="k">return</span> <span class="n">sql_path</span> +</span><span id="L-4545"><a href="#L-4545"><span class="linenos">4545</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-4546"><a href="#L-4546"><span class="linenos">4546</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-4547"><a href="#L-4547"><span class="linenos">4547</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span> +</span><span id="L-4548"><a href="#L-4548"><span class="linenos">4548</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-4549"><a href="#L-4549"><span class="linenos">4549</span></a> +</span><span id="L-4550"><a href="#L-4550"><span class="linenos">4550</span></a> +</span><span id="L-4551"><a href="#L-4551"><span class="linenos">4551</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span> +</span><span id="L-4552"><a href="#L-4552"><span class="linenos">4552</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="L-4553"><a href="#L-4553"><span class="linenos">4553</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> +</span><span id="L-4554"><a href="#L-4554"><span class="linenos">4554</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="L-4555"><a href="#L-4555"><span class="linenos">4555</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4556"><a href="#L-4556"><span class="linenos">4556</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4557"><a href="#L-4557"><span class="linenos">4557</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="L-4558"><a href="#L-4558"><span class="linenos">4558</span></a><span class="p">):</span> +</span><span id="L-4559"><a href="#L-4559"><span class="linenos">4559</span></a><span class="w"> </span><span class="sd">"""Create an Alias expression.</span> +</span><span id="L-4560"><a href="#L-4560"><span class="linenos">4560</span></a> +</span><span id="L-4561"><a href="#L-4561"><span class="linenos">4561</span></a><span class="sd"> Example:</span> +</span><span id="L-4562"><a href="#L-4562"><span class="linenos">4562</span></a><span class="sd"> >>> alias_('foo', 'bar').sql()</span> +</span><span id="L-4563"><a href="#L-4563"><span class="linenos">4563</span></a><span class="sd"> 'foo AS bar'</span> +</span><span id="L-4564"><a href="#L-4564"><span class="linenos">4564</span></a> +</span><span id="L-4565"><a href="#L-4565"><span class="linenos">4565</span></a><span class="sd"> >>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql()</span> +</span><span id="L-4566"><a href="#L-4566"><span class="linenos">4566</span></a><span class="sd"> '(SELECT 1, 2) AS bar(a, b)'</span> +</span><span id="L-4567"><a href="#L-4567"><span class="linenos">4567</span></a> +</span><span id="L-4568"><a href="#L-4568"><span class="linenos">4568</span></a><span class="sd"> Args:</span> +</span><span id="L-4569"><a href="#L-4569"><span class="linenos">4569</span></a><span class="sd"> expression: the SQL code strings to parse.</span> +</span><span id="L-4570"><a href="#L-4570"><span class="linenos">4570</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4571"><a href="#L-4571"><span class="linenos">4571</span></a><span class="sd"> alias: the alias name to use. If the name has</span> +</span><span id="L-4572"><a href="#L-4572"><span class="linenos">4572</span></a><span class="sd"> special characters it is quoted.</span> +</span><span id="L-4573"><a href="#L-4573"><span class="linenos">4573</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span> +</span><span id="L-4574"><a href="#L-4574"><span class="linenos">4574</span></a><span class="sd"> quoted: whether or not to quote the alias</span> +</span><span id="L-4575"><a href="#L-4575"><span class="linenos">4575</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> +</span><span id="L-4576"><a href="#L-4576"><span class="linenos">4576</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4577"><a href="#L-4577"><span class="linenos">4577</span></a> +</span><span id="L-4578"><a href="#L-4578"><span class="linenos">4578</span></a><span class="sd"> Returns:</span> +</span><span id="L-4579"><a href="#L-4579"><span class="linenos">4579</span></a><span class="sd"> Alias: the aliased expression</span> +</span><span id="L-4580"><a href="#L-4580"><span class="linenos">4580</span></a><span class="sd"> """</span> +</span><span id="L-4581"><a href="#L-4581"><span class="linenos">4581</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4582"><a href="#L-4582"><span class="linenos">4582</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> +</span><span id="L-4583"><a href="#L-4583"><span class="linenos">4583</span></a> +</span><span id="L-4584"><a href="#L-4584"><span class="linenos">4584</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span> +</span><span id="L-4585"><a href="#L-4585"><span class="linenos">4585</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> +</span><span id="L-4586"><a href="#L-4586"><span class="linenos">4586</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> +</span><span id="L-4587"><a href="#L-4587"><span class="linenos">4587</span></a> +</span><span id="L-4588"><a href="#L-4588"><span class="linenos">4588</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> +</span><span id="L-4589"><a href="#L-4589"><span class="linenos">4589</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span> +</span><span id="L-4590"><a href="#L-4590"><span class="linenos">4590</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span> +</span><span id="L-4591"><a href="#L-4591"><span class="linenos">4591</span></a> +</span><span id="L-4592"><a href="#L-4592"><span class="linenos">4592</span></a> <span class="k">return</span> <span class="n">exp</span> +</span><span id="L-4593"><a href="#L-4593"><span class="linenos">4593</span></a> +</span><span id="L-4594"><a href="#L-4594"><span class="linenos">4594</span></a> <span class="c1"># We don't set the "alias" arg for Window expressions, because that would add an IDENTIFIER node in</span> +</span><span id="L-4595"><a href="#L-4595"><span class="linenos">4595</span></a> <span class="c1"># the AST, representing a "named_window" [1] construct (eg. bigquery). What we want is an ALIAS node</span> +</span><span id="L-4596"><a href="#L-4596"><span class="linenos">4596</span></a> <span class="c1"># for the complete Window expression.</span> +</span><span id="L-4597"><a href="#L-4597"><span class="linenos">4597</span></a> <span class="c1">#</span> +</span><span id="L-4598"><a href="#L-4598"><span class="linenos">4598</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span> </span><span id="L-4599"><a href="#L-4599"><span class="linenos">4599</span></a> -</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a><span class="sd"> Example:</span> -</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a><span class="sd"> >>> repr(var('x'))</span> -</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a><span class="sd"> '(VAR this: x)'</span> -</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> -</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a><span class="sd"> >>> repr(var(column('x', table='y')))</span> -</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a><span class="sd"> '(VAR this: x)'</span> +</span><span id="L-4600"><a href="#L-4600"><span class="linenos">4600</span></a> <span class="k">if</span> <span class="s2">"alias"</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span> +</span><span id="L-4601"><a href="#L-4601"><span class="linenos">4601</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-4602"><a href="#L-4602"><span class="linenos">4602</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> +</span><span id="L-4603"><a href="#L-4603"><span class="linenos">4603</span></a> <span class="k">return</span> <span class="n">exp</span> +</span><span id="L-4604"><a href="#L-4604"><span class="linenos">4604</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> +</span><span id="L-4605"><a href="#L-4605"><span class="linenos">4605</span></a> </span><span id="L-4606"><a href="#L-4606"><span class="linenos">4606</span></a> -</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a><span class="sd"> Args:</span> -</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a><span class="sd"> name: The name of the var or an expression who's name will become the var.</span> -</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a> -</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a><span class="sd"> Returns:</span> -</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="sd"> The new variable node.</span> -</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a><span class="sd"> """</span> -</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span> -</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot convert empty name into var."</span><span class="p">)</span> -</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a> -</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a> -</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</span></a> -</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-></span> <span class="n">AlterTable</span><span class="p">:</span> -</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a><span class="w"> </span><span class="sd">"""Build ALTER TABLE... RENAME... expression</span> -</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a> -</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a><span class="sd"> Args:</span> -</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a><span class="sd"> old_name: The old name of the table</span> -</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a><span class="sd"> new_name: The new name of the table</span> -</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a> -</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a><span class="sd"> Returns:</span> -</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a><span class="sd"> Alter table expression</span> -</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a><span class="sd"> """</span> -</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span> -</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> -</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span> -</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span> -</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span> -</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span> -</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a> <span class="p">],</span> -</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a> <span class="p">)</span> -</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a> -</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a> -</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> -</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="w"> </span><span class="sd">"""Convert a python value into an expression object.</span> -</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a> -</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a><span class="sd"> Raises an error if a conversion is not possible.</span> -</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a> -</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a><span class="sd"> Args:</span> -</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a><span class="sd"> value (Any): a python object</span> -</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a> -</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a><span class="sd"> Returns:</span> -</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a><span class="sd"> Expression: the equivalent expression object</span> -</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a><span class="sd"> """</span> -</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</span></a> <span class="k">return</span> <span class="n">value</span> -</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a> <span class="k">return</span> <span class="n">NULL</span> -</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> -</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> -</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a> <span class="k">return</span> <span class="n">NULL</span> -</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span> -</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span> -</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> -</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> -</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> -</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span> -</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span> -</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span> -</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a> <span class="p">)</span> -</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span> -</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span> -</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span> -</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a> <span class="p">)</span> -</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span> -</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span> -</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">))</span> -</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span> -</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a> -</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> -</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">):</span> -</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -> exp.</span> -</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a><span class="sd"> """</span> -</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> +</span><span id="L-4607"><a href="#L-4607"><span class="linenos">4607</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="L-4608"><a href="#L-4608"><span class="linenos">4608</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4609"><a href="#L-4609"><span class="linenos">4609</span></a><span class="sd"> Build a subquery expression.</span> +</span><span id="L-4610"><a href="#L-4610"><span class="linenos">4610</span></a> +</span><span id="L-4611"><a href="#L-4611"><span class="linenos">4611</span></a><span class="sd"> Example:</span> +</span><span id="L-4612"><a href="#L-4612"><span class="linenos">4612</span></a><span class="sd"> >>> subquery('select x from tbl', 'bar').select('x').sql()</span> +</span><span id="L-4613"><a href="#L-4613"><span class="linenos">4613</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl) AS bar'</span> +</span><span id="L-4614"><a href="#L-4614"><span class="linenos">4614</span></a> +</span><span id="L-4615"><a href="#L-4615"><span class="linenos">4615</span></a><span class="sd"> Args:</span> +</span><span id="L-4616"><a href="#L-4616"><span class="linenos">4616</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> +</span><span id="L-4617"><a href="#L-4617"><span class="linenos">4617</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="L-4618"><a href="#L-4618"><span class="linenos">4618</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span> +</span><span id="L-4619"><a href="#L-4619"><span class="linenos">4619</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="L-4620"><a href="#L-4620"><span class="linenos">4620</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="L-4621"><a href="#L-4621"><span class="linenos">4621</span></a> +</span><span id="L-4622"><a href="#L-4622"><span class="linenos">4622</span></a><span class="sd"> Returns:</span> +</span><span id="L-4623"><a href="#L-4623"><span class="linenos">4623</span></a><span class="sd"> Select: a new select with the subquery expression included</span> +</span><span id="L-4624"><a href="#L-4624"><span class="linenos">4624</span></a><span class="sd"> """</span> +</span><span id="L-4625"><a href="#L-4625"><span class="linenos">4625</span></a> +</span><span id="L-4626"><a href="#L-4626"><span class="linenos">4626</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> +</span><span id="L-4627"><a href="#L-4627"><span class="linenos">4627</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4628"><a href="#L-4628"><span class="linenos">4628</span></a> +</span><span id="L-4629"><a href="#L-4629"><span class="linenos">4629</span></a> +</span><span id="L-4630"><a href="#L-4630"><span class="linenos">4630</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span> +</span><span id="L-4631"><a href="#L-4631"><span class="linenos">4631</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> +</span><span id="L-4632"><a href="#L-4632"><span class="linenos">4632</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4633"><a href="#L-4633"><span class="linenos">4633</span></a> <span class="n">schema</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4634"><a href="#L-4634"><span class="linenos">4634</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4635"><a href="#L-4635"><span class="linenos">4635</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> +</span><span id="L-4636"><a href="#L-4636"><span class="linenos">4636</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4637"><a href="#L-4637"><span class="linenos">4637</span></a><span class="sd"> Build a Column.</span> +</span><span id="L-4638"><a href="#L-4638"><span class="linenos">4638</span></a> +</span><span id="L-4639"><a href="#L-4639"><span class="linenos">4639</span></a><span class="sd"> Args:</span> +</span><span id="L-4640"><a href="#L-4640"><span class="linenos">4640</span></a><span class="sd"> col: column name</span> +</span><span id="L-4641"><a href="#L-4641"><span class="linenos">4641</span></a><span class="sd"> table: table name</span> +</span><span id="L-4642"><a href="#L-4642"><span class="linenos">4642</span></a><span class="sd"> schema: schema name</span> +</span><span id="L-4643"><a href="#L-4643"><span class="linenos">4643</span></a><span class="sd"> quoted: whether or not to force quote each part</span> +</span><span id="L-4644"><a href="#L-4644"><span class="linenos">4644</span></a><span class="sd"> Returns:</span> +</span><span id="L-4645"><a href="#L-4645"><span class="linenos">4645</span></a><span class="sd"> Column: column instance</span> +</span><span id="L-4646"><a href="#L-4646"><span class="linenos">4646</span></a><span class="sd"> """</span> +</span><span id="L-4647"><a href="#L-4647"><span class="linenos">4647</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span> +</span><span id="L-4648"><a href="#L-4648"><span class="linenos">4648</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="L-4649"><a href="#L-4649"><span class="linenos">4649</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="L-4650"><a href="#L-4650"><span class="linenos">4650</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="L-4651"><a href="#L-4651"><span class="linenos">4651</span></a> <span class="p">)</span> +</span><span id="L-4652"><a href="#L-4652"><span class="linenos">4652</span></a> +</span><span id="L-4653"><a href="#L-4653"><span class="linenos">4653</span></a> +</span><span id="L-4654"><a href="#L-4654"><span class="linenos">4654</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Cast</span><span class="p">:</span> +</span><span id="L-4655"><a href="#L-4655"><span class="linenos">4655</span></a><span class="w"> </span><span class="sd">"""Cast an expression to a data type.</span> +</span><span id="L-4656"><a href="#L-4656"><span class="linenos">4656</span></a> +</span><span id="L-4657"><a href="#L-4657"><span class="linenos">4657</span></a><span class="sd"> Example:</span> +</span><span id="L-4658"><a href="#L-4658"><span class="linenos">4658</span></a><span class="sd"> >>> cast('x + 1', 'int').sql()</span> +</span><span id="L-4659"><a href="#L-4659"><span class="linenos">4659</span></a><span class="sd"> 'CAST(x + 1 AS INT)'</span> +</span><span id="L-4660"><a href="#L-4660"><span class="linenos">4660</span></a> +</span><span id="L-4661"><a href="#L-4661"><span class="linenos">4661</span></a><span class="sd"> Args:</span> +</span><span id="L-4662"><a href="#L-4662"><span class="linenos">4662</span></a><span class="sd"> expression: The expression to cast.</span> +</span><span id="L-4663"><a href="#L-4663"><span class="linenos">4663</span></a><span class="sd"> to: The datatype to cast to.</span> +</span><span id="L-4664"><a href="#L-4664"><span class="linenos">4664</span></a> +</span><span id="L-4665"><a href="#L-4665"><span class="linenos">4665</span></a><span class="sd"> Returns:</span> +</span><span id="L-4666"><a href="#L-4666"><span class="linenos">4666</span></a><span class="sd"> A cast node.</span> +</span><span id="L-4667"><a href="#L-4667"><span class="linenos">4667</span></a><span class="sd"> """</span> +</span><span id="L-4668"><a href="#L-4668"><span class="linenos">4668</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="L-4669"><a href="#L-4669"><span class="linenos">4669</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span> +</span><span id="L-4670"><a href="#L-4670"><span class="linenos">4670</span></a> +</span><span id="L-4671"><a href="#L-4671"><span class="linenos">4671</span></a> +</span><span id="L-4672"><a href="#L-4672"><span class="linenos">4672</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Table</span><span class="p">:</span> +</span><span id="L-4673"><a href="#L-4673"><span class="linenos">4673</span></a><span class="w"> </span><span class="sd">"""Build a Table.</span> +</span><span id="L-4674"><a href="#L-4674"><span class="linenos">4674</span></a> +</span><span id="L-4675"><a href="#L-4675"><span class="linenos">4675</span></a><span class="sd"> Args:</span> +</span><span id="L-4676"><a href="#L-4676"><span class="linenos">4676</span></a><span class="sd"> table (str | Expression): column name</span> +</span><span id="L-4677"><a href="#L-4677"><span class="linenos">4677</span></a><span class="sd"> db (str | Expression): db name</span> +</span><span id="L-4678"><a href="#L-4678"><span class="linenos">4678</span></a><span class="sd"> catalog (str | Expression): catalog name</span> +</span><span id="L-4679"><a href="#L-4679"><span class="linenos">4679</span></a> +</span><span id="L-4680"><a href="#L-4680"><span class="linenos">4680</span></a><span class="sd"> Returns:</span> +</span><span id="L-4681"><a href="#L-4681"><span class="linenos">4681</span></a><span class="sd"> Table: table instance</span> +</span><span id="L-4682"><a href="#L-4682"><span class="linenos">4682</span></a><span class="sd"> """</span> +</span><span id="L-4683"><a href="#L-4683"><span class="linenos">4683</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span> +</span><span id="L-4684"><a href="#L-4684"><span class="linenos">4684</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="L-4685"><a href="#L-4685"><span class="linenos">4685</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="L-4686"><a href="#L-4686"><span class="linenos">4686</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="L-4687"><a href="#L-4687"><span class="linenos">4687</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4688"><a href="#L-4688"><span class="linenos">4688</span></a> <span class="p">)</span> +</span><span id="L-4689"><a href="#L-4689"><span class="linenos">4689</span></a> </span><span id="L-4690"><a href="#L-4690"><span class="linenos">4690</span></a> -</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span> -</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a> -</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span> -</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">)):</span> -</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span> -</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span> -</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span> -</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a> -</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> -</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a> -</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a> -</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span> +</span><span id="L-4691"><a href="#L-4691"><span class="linenos">4691</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span> +</span><span id="L-4692"><a href="#L-4692"><span class="linenos">4692</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span> +</span><span id="L-4693"><a href="#L-4693"><span class="linenos">4693</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4694"><a href="#L-4694"><span class="linenos">4694</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-4695"><a href="#L-4695"><span class="linenos">4695</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Values</span><span class="p">:</span> +</span><span id="L-4696"><a href="#L-4696"><span class="linenos">4696</span></a><span class="w"> </span><span class="sd">"""Build VALUES statement.</span> +</span><span id="L-4697"><a href="#L-4697"><span class="linenos">4697</span></a> +</span><span id="L-4698"><a href="#L-4698"><span class="linenos">4698</span></a><span class="sd"> Example:</span> +</span><span id="L-4699"><a href="#L-4699"><span class="linenos">4699</span></a><span class="sd"> >>> values([(1, '2')]).sql()</span> +</span><span id="L-4700"><a href="#L-4700"><span class="linenos">4700</span></a><span class="sd"> "VALUES (1, '2')"</span> +</span><span id="L-4701"><a href="#L-4701"><span class="linenos">4701</span></a> +</span><span id="L-4702"><a href="#L-4702"><span class="linenos">4702</span></a><span class="sd"> Args:</span> +</span><span id="L-4703"><a href="#L-4703"><span class="linenos">4703</span></a><span class="sd"> values: values statements that will be converted to SQL</span> +</span><span id="L-4704"><a href="#L-4704"><span class="linenos">4704</span></a><span class="sd"> alias: optional alias</span> +</span><span id="L-4705"><a href="#L-4705"><span class="linenos">4705</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span> +</span><span id="L-4706"><a href="#L-4706"><span class="linenos">4706</span></a><span class="sd"> If either are provided then an alias is also required.</span> +</span><span id="L-4707"><a href="#L-4707"><span class="linenos">4707</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span> +</span><span id="L-4708"><a href="#L-4708"><span class="linenos">4708</span></a><span class="sd"> in order to help with type inference.</span> </span><span id="L-4709"><a href="#L-4709"><span class="linenos">4709</span></a> -</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="sd"> Example:</span> -</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a><span class="sd"> >>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e"))</span> -</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a><span class="sd"> ['c', 'a']</span> -</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a> -</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a><span class="sd"> Args:</span> -</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span> -</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a> -</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a><span class="sd"> Returns:</span> -</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a><span class="sd"> list: A list of unique names</span> -</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a><span class="sd"> """</span> -</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span> -</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a> -</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a> -</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a><span class="w"> </span><span class="sd">"""Get the full name of a table as a string.</span> -</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a> -</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a><span class="sd"> Args:</span> -</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span> -</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a> -</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a><span class="sd"> Examples:</span> -</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> -</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a><span class="sd"> >>> table_name(parse_one("select * from a.b.c").find(exp.Table))</span> -</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a><span class="sd"> 'a.b.c'</span> -</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a> -</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a><span class="sd"> Returns:</span> -</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="sd"> The table name.</span> -</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a><span class="sd"> """</span> -</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a> -</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span> -</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a> -</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> -</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a> -</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> <span class="n">part</span> -</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">),</span> -</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">),</span> -</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> -</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a> <span class="p">)</span> -</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="p">)</span> -</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a> -</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a> -</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span> -</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a><span class="w"> </span><span class="sd">"""Replace all tables in expression according to the mapping.</span> -</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a> -</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a><span class="sd"> Args:</span> -</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> -</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span> -</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a> -</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a><span class="sd"> Examples:</span> -</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> -</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="sd"> >>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql()</span> -</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="sd"> 'SELECT * FROM c'</span> -</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a> -</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a><span class="sd"> Returns:</span> -</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a><span class="sd"> The mapped expression.</span> -</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a><span class="sd"> """</span> -</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a> -</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span> -</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> -</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span> -</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> -</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span> -</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a> <span class="n">new_name</span><span class="p">,</span> -</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">)},</span> -</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a> <span class="p">)</span> -</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a> -</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span> -</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a> -</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a> -</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="w"> </span><span class="sd">"""Replace placeholders in an expression.</span> -</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a> -</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a><span class="sd"> Args:</span> -</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> -</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span> -</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span> -</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a> -</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a><span class="sd"> Examples:</span> -</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> -</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a><span class="sd"> >>> replace_placeholders(</span> -</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a><span class="sd"> ... parse_one("select * from :tbl where ? = ?"), "a", "b", tbl="foo"</span> -</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a><span class="sd"> ... ).sql()</span> -</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a><span class="sd"> 'SELECT * FROM foo WHERE a = b'</span> -</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a> -</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a><span class="sd"> Returns:</span> -</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a><span class="sd"> The mapped expression.</span> -</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a><span class="sd"> """</span> -</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> -</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span> -</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> -</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> -</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> -</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span> -</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span> -</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a> <span class="k">pass</span> -</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a> -</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a> +</span><span id="L-4710"><a href="#L-4710"><span class="linenos">4710</span></a><span class="sd"> Returns:</span> +</span><span id="L-4711"><a href="#L-4711"><span class="linenos">4711</span></a><span class="sd"> Values: the Values expression object</span> +</span><span id="L-4712"><a href="#L-4712"><span class="linenos">4712</span></a><span class="sd"> """</span> +</span><span id="L-4713"><a href="#L-4713"><span class="linenos">4713</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="L-4714"><a href="#L-4714"><span class="linenos">4714</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Alias is required when providing columns"</span><span class="p">)</span> +</span><span id="L-4715"><a href="#L-4715"><span class="linenos">4715</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-4716"><a href="#L-4716"><span class="linenos">4716</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span> +</span><span id="L-4717"><a href="#L-4717"><span class="linenos">4717</span></a> <span class="k">if</span> <span class="n">columns</span> +</span><span id="L-4718"><a href="#L-4718"><span class="linenos">4718</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-4719"><a href="#L-4719"><span class="linenos">4719</span></a> <span class="p">)</span> +</span><span id="L-4720"><a href="#L-4720"><span class="linenos">4720</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">]</span> +</span><span id="L-4721"><a href="#L-4721"><span class="linenos">4721</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> +</span><span id="L-4722"><a href="#L-4722"><span class="linenos">4722</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> +</span><span id="L-4723"><a href="#L-4723"><span class="linenos">4723</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="L-4724"><a href="#L-4724"><span class="linenos">4724</span></a> <span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="L-4725"><a href="#L-4725"><span class="linenos">4725</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span> +</span><span id="L-4726"><a href="#L-4726"><span class="linenos">4726</span></a> <span class="p">)</span> +</span><span id="L-4727"><a href="#L-4727"><span class="linenos">4727</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span> +</span><span id="L-4728"><a href="#L-4728"><span class="linenos">4728</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-4729"><a href="#L-4729"><span class="linenos">4729</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> +</span><span id="L-4730"><a href="#L-4730"><span class="linenos">4730</span></a> <span class="p">)</span> +</span><span id="L-4731"><a href="#L-4731"><span class="linenos">4731</span></a> +</span><span id="L-4732"><a href="#L-4732"><span class="linenos">4732</span></a> +</span><span id="L-4733"><a href="#L-4733"><span class="linenos">4733</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-></span> <span class="n">Var</span><span class="p">:</span> +</span><span id="L-4734"><a href="#L-4734"><span class="linenos">4734</span></a><span class="w"> </span><span class="sd">"""Build a SQL variable.</span> +</span><span id="L-4735"><a href="#L-4735"><span class="linenos">4735</span></a> +</span><span id="L-4736"><a href="#L-4736"><span class="linenos">4736</span></a><span class="sd"> Example:</span> +</span><span id="L-4737"><a href="#L-4737"><span class="linenos">4737</span></a><span class="sd"> >>> repr(var('x'))</span> +</span><span id="L-4738"><a href="#L-4738"><span class="linenos">4738</span></a><span class="sd"> '(VAR this: x)'</span> +</span><span id="L-4739"><a href="#L-4739"><span class="linenos">4739</span></a> +</span><span id="L-4740"><a href="#L-4740"><span class="linenos">4740</span></a><span class="sd"> >>> repr(var(column('x', table='y')))</span> +</span><span id="L-4741"><a href="#L-4741"><span class="linenos">4741</span></a><span class="sd"> '(VAR this: x)'</span> +</span><span id="L-4742"><a href="#L-4742"><span class="linenos">4742</span></a> +</span><span id="L-4743"><a href="#L-4743"><span class="linenos">4743</span></a><span class="sd"> Args:</span> +</span><span id="L-4744"><a href="#L-4744"><span class="linenos">4744</span></a><span class="sd"> name: The name of the var or an expression who's name will become the var.</span> +</span><span id="L-4745"><a href="#L-4745"><span class="linenos">4745</span></a> +</span><span id="L-4746"><a href="#L-4746"><span class="linenos">4746</span></a><span class="sd"> Returns:</span> +</span><span id="L-4747"><a href="#L-4747"><span class="linenos">4747</span></a><span class="sd"> The new variable node.</span> +</span><span id="L-4748"><a href="#L-4748"><span class="linenos">4748</span></a><span class="sd"> """</span> +</span><span id="L-4749"><a href="#L-4749"><span class="linenos">4749</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span> +</span><span id="L-4750"><a href="#L-4750"><span class="linenos">4750</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Cannot convert empty name into var."</span><span class="p">)</span> +</span><span id="L-4751"><a href="#L-4751"><span class="linenos">4751</span></a> +</span><span id="L-4752"><a href="#L-4752"><span class="linenos">4752</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="L-4753"><a href="#L-4753"><span class="linenos">4753</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-4754"><a href="#L-4754"><span class="linenos">4754</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-4755"><a href="#L-4755"><span class="linenos">4755</span></a> +</span><span id="L-4756"><a href="#L-4756"><span class="linenos">4756</span></a> +</span><span id="L-4757"><a href="#L-4757"><span class="linenos">4757</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-></span> <span class="n">AlterTable</span><span class="p">:</span> +</span><span id="L-4758"><a href="#L-4758"><span class="linenos">4758</span></a><span class="w"> </span><span class="sd">"""Build ALTER TABLE... RENAME... expression</span> +</span><span id="L-4759"><a href="#L-4759"><span class="linenos">4759</span></a> +</span><span id="L-4760"><a href="#L-4760"><span class="linenos">4760</span></a><span class="sd"> Args:</span> +</span><span id="L-4761"><a href="#L-4761"><span class="linenos">4761</span></a><span class="sd"> old_name: The old name of the table</span> +</span><span id="L-4762"><a href="#L-4762"><span class="linenos">4762</span></a><span class="sd"> new_name: The new name of the table</span> +</span><span id="L-4763"><a href="#L-4763"><span class="linenos">4763</span></a> +</span><span id="L-4764"><a href="#L-4764"><span class="linenos">4764</span></a><span class="sd"> Returns:</span> +</span><span id="L-4765"><a href="#L-4765"><span class="linenos">4765</span></a><span class="sd"> Alter table expression</span> +</span><span id="L-4766"><a href="#L-4766"><span class="linenos">4766</span></a><span class="sd"> """</span> +</span><span id="L-4767"><a href="#L-4767"><span class="linenos">4767</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span> +</span><span id="L-4768"><a href="#L-4768"><span class="linenos">4768</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> +</span><span id="L-4769"><a href="#L-4769"><span class="linenos">4769</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span> +</span><span id="L-4770"><a href="#L-4770"><span class="linenos">4770</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span> +</span><span id="L-4771"><a href="#L-4771"><span class="linenos">4771</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span> +</span><span id="L-4772"><a href="#L-4772"><span class="linenos">4772</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span> +</span><span id="L-4773"><a href="#L-4773"><span class="linenos">4773</span></a> <span class="p">],</span> +</span><span id="L-4774"><a href="#L-4774"><span class="linenos">4774</span></a> <span class="p">)</span> +</span><span id="L-4775"><a href="#L-4775"><span class="linenos">4775</span></a> +</span><span id="L-4776"><a href="#L-4776"><span class="linenos">4776</span></a> +</span><span id="L-4777"><a href="#L-4777"><span class="linenos">4777</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> +</span><span id="L-4778"><a href="#L-4778"><span class="linenos">4778</span></a><span class="w"> </span><span class="sd">"""Convert a python value into an expression object.</span> +</span><span id="L-4779"><a href="#L-4779"><span class="linenos">4779</span></a> +</span><span id="L-4780"><a href="#L-4780"><span class="linenos">4780</span></a><span class="sd"> Raises an error if a conversion is not possible.</span> +</span><span id="L-4781"><a href="#L-4781"><span class="linenos">4781</span></a> +</span><span id="L-4782"><a href="#L-4782"><span class="linenos">4782</span></a><span class="sd"> Args:</span> +</span><span id="L-4783"><a href="#L-4783"><span class="linenos">4783</span></a><span class="sd"> value (Any): a python object</span> +</span><span id="L-4784"><a href="#L-4784"><span class="linenos">4784</span></a> +</span><span id="L-4785"><a href="#L-4785"><span class="linenos">4785</span></a><span class="sd"> Returns:</span> +</span><span id="L-4786"><a href="#L-4786"><span class="linenos">4786</span></a><span class="sd"> Expression: the equivalent expression object</span> +</span><span id="L-4787"><a href="#L-4787"><span class="linenos">4787</span></a><span class="sd"> """</span> +</span><span id="L-4788"><a href="#L-4788"><span class="linenos">4788</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="L-4789"><a href="#L-4789"><span class="linenos">4789</span></a> <span class="k">return</span> <span class="n">value</span> +</span><span id="L-4790"><a href="#L-4790"><span class="linenos">4790</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-4791"><a href="#L-4791"><span class="linenos">4791</span></a> <span class="k">return</span> <span class="n">NULL</span> +</span><span id="L-4792"><a href="#L-4792"><span class="linenos">4792</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> +</span><span id="L-4793"><a href="#L-4793"><span class="linenos">4793</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-4794"><a href="#L-4794"><span class="linenos">4794</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-4795"><a href="#L-4795"><span class="linenos">4795</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-4796"><a href="#L-4796"><span class="linenos">4796</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> +</span><span id="L-4797"><a href="#L-4797"><span class="linenos">4797</span></a> <span class="k">return</span> <span class="n">NULL</span> +</span><span id="L-4798"><a href="#L-4798"><span class="linenos">4798</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span> +</span><span id="L-4799"><a href="#L-4799"><span class="linenos">4799</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-4800"><a href="#L-4800"><span class="linenos">4800</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span> +</span><span id="L-4801"><a href="#L-4801"><span class="linenos">4801</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> +</span><span id="L-4802"><a href="#L-4802"><span class="linenos">4802</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="L-4803"><a href="#L-4803"><span class="linenos">4803</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> +</span><span id="L-4804"><a href="#L-4804"><span class="linenos">4804</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> +</span><span id="L-4805"><a href="#L-4805"><span class="linenos">4805</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span> +</span><span id="L-4806"><a href="#L-4806"><span class="linenos">4806</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span> +</span><span id="L-4807"><a href="#L-4807"><span class="linenos">4807</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span> +</span><span id="L-4808"><a href="#L-4808"><span class="linenos">4808</span></a> <span class="p">)</span> +</span><span id="L-4809"><a href="#L-4809"><span class="linenos">4809</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span> +</span><span id="L-4810"><a href="#L-4810"><span class="linenos">4810</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span> +</span><span id="L-4811"><a href="#L-4811"><span class="linenos">4811</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span> +</span><span id="L-4812"><a href="#L-4812"><span class="linenos">4812</span></a> <span class="p">)</span> +</span><span id="L-4813"><a href="#L-4813"><span class="linenos">4813</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span> +</span><span id="L-4814"><a href="#L-4814"><span class="linenos">4814</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span> +</span><span id="L-4815"><a href="#L-4815"><span class="linenos">4815</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">))</span> +</span><span id="L-4816"><a href="#L-4816"><span class="linenos">4816</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span> +</span><span id="L-4817"><a href="#L-4817"><span class="linenos">4817</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="L-4818"><a href="#L-4818"><span class="linenos">4818</span></a> -</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> -</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="w"> </span><span class="sd">"""Transforms an expression by expanding all referenced sources into subqueries.</span> -</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a> -</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="sd"> Examples:</span> -</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a><span class="sd"> >>> from sqlglot import parse_one</span> -</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a><span class="sd"> >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql()</span> -</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a><span class="sd"> 'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'</span> +</span><span id="L-4819"><a href="#L-4819"><span class="linenos">4819</span></a> +</span><span id="L-4820"><a href="#L-4820"><span class="linenos">4820</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="L-4821"><a href="#L-4821"><span class="linenos">4821</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4822"><a href="#L-4822"><span class="linenos">4822</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -> exp.</span> +</span><span id="L-4823"><a href="#L-4823"><span class="linenos">4823</span></a><span class="sd"> """</span> +</span><span id="L-4824"><a href="#L-4824"><span class="linenos">4824</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-4825"><a href="#L-4825"><span class="linenos">4825</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> </span><span id="L-4826"><a href="#L-4826"><span class="linenos">4826</span></a> -</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a><span class="sd"> Args:</span> -</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a><span class="sd"> expression: The expression to expand.</span> -</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span> -</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span> -</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a> -</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a><span class="sd"> Returns:</span> -</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a><span class="sd"> The transformed expression.</span> -</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a><span class="sd"> """</span> -</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a> -</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> -</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span> -</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span> -</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">]</span> -</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a> <span class="k">return</span> <span class="n">subquery</span> -</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-4827"><a href="#L-4827"><span class="linenos">4827</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span> +</span><span id="L-4828"><a href="#L-4828"><span class="linenos">4828</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-4829"><a href="#L-4829"><span class="linenos">4829</span></a> +</span><span id="L-4830"><a href="#L-4830"><span class="linenos">4830</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span> +</span><span id="L-4831"><a href="#L-4831"><span class="linenos">4831</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="L-4832"><a href="#L-4832"><span class="linenos">4832</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span> +</span><span id="L-4833"><a href="#L-4833"><span class="linenos">4833</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span> +</span><span id="L-4834"><a href="#L-4834"><span class="linenos">4834</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="L-4835"><a href="#L-4835"><span class="linenos">4835</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span> +</span><span id="L-4836"><a href="#L-4836"><span class="linenos">4836</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-4837"><a href="#L-4837"><span class="linenos">4837</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span> +</span><span id="L-4838"><a href="#L-4838"><span class="linenos">4838</span></a> +</span><span id="L-4839"><a href="#L-4839"><span class="linenos">4839</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> +</span><span id="L-4840"><a href="#L-4840"><span class="linenos">4840</span></a> +</span><span id="L-4841"><a href="#L-4841"><span class="linenos">4841</span></a> +</span><span id="L-4842"><a href="#L-4842"><span class="linenos">4842</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-4843"><a href="#L-4843"><span class="linenos">4843</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4844"><a href="#L-4844"><span class="linenos">4844</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span> </span><span id="L-4845"><a href="#L-4845"><span class="linenos">4845</span></a> -</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> -</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a> -</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a> -</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Func</span><span class="p">:</span> -</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a><span class="sd"> Returns a Func expression.</span> -</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a> -</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a><span class="sd"> Examples:</span> -</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a><span class="sd"> >>> func("abs", 5).sql()</span> -</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a><span class="sd"> 'ABS(5)'</span> -</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a> -</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a><span class="sd"> >>> func("cast", this=5, to=DataType.build("DOUBLE")).sql()</span> -</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a><span class="sd"> 'CAST(5 AS DOUBLE)'</span> +</span><span id="L-4846"><a href="#L-4846"><span class="linenos">4846</span></a><span class="sd"> Example:</span> +</span><span id="L-4847"><a href="#L-4847"><span class="linenos">4847</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-4848"><a href="#L-4848"><span class="linenos">4848</span></a><span class="sd"> >>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e"))</span> +</span><span id="L-4849"><a href="#L-4849"><span class="linenos">4849</span></a><span class="sd"> ['c', 'a']</span> +</span><span id="L-4850"><a href="#L-4850"><span class="linenos">4850</span></a> +</span><span id="L-4851"><a href="#L-4851"><span class="linenos">4851</span></a><span class="sd"> Args:</span> +</span><span id="L-4852"><a href="#L-4852"><span class="linenos">4852</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span> +</span><span id="L-4853"><a href="#L-4853"><span class="linenos">4853</span></a> +</span><span id="L-4854"><a href="#L-4854"><span class="linenos">4854</span></a><span class="sd"> Returns:</span> +</span><span id="L-4855"><a href="#L-4855"><span class="linenos">4855</span></a><span class="sd"> list: A list of unique names</span> +</span><span id="L-4856"><a href="#L-4856"><span class="linenos">4856</span></a><span class="sd"> """</span> +</span><span id="L-4857"><a href="#L-4857"><span class="linenos">4857</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span> +</span><span id="L-4858"><a href="#L-4858"><span class="linenos">4858</span></a> </span><span id="L-4859"><a href="#L-4859"><span class="linenos">4859</span></a> -</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a><span class="sd"> Args:</span> -</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="sd"> name: the name of the function to build.</span> -</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span> -</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> dialect: the source dialect.</span> -</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span> +</span><span id="L-4860"><a href="#L-4860"><span class="linenos">4860</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-4861"><a href="#L-4861"><span class="linenos">4861</span></a><span class="w"> </span><span class="sd">"""Get the full name of a table as a string.</span> +</span><span id="L-4862"><a href="#L-4862"><span class="linenos">4862</span></a> +</span><span id="L-4863"><a href="#L-4863"><span class="linenos">4863</span></a><span class="sd"> Args:</span> +</span><span id="L-4864"><a href="#L-4864"><span class="linenos">4864</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span> </span><span id="L-4865"><a href="#L-4865"><span class="linenos">4865</span></a> -</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a><span class="sd"> Note:</span> -</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span> -</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a> -</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="sd"> Returns:</span> -</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn't</span> -</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span> -</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a><span class="sd"> """</span> -</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span> -</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Can't use both args and kwargs to instantiate a function."</span><span class="p">)</span> -</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a> -</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span> -</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a> -</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span> -</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> -</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a> -</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span> -</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> -</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a> -</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span> -</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span> -</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-4866"><a href="#L-4866"><span class="linenos">4866</span></a><span class="sd"> Examples:</span> +</span><span id="L-4867"><a href="#L-4867"><span class="linenos">4867</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> +</span><span id="L-4868"><a href="#L-4868"><span class="linenos">4868</span></a><span class="sd"> >>> table_name(parse_one("select * from a.b.c").find(exp.Table))</span> +</span><span id="L-4869"><a href="#L-4869"><span class="linenos">4869</span></a><span class="sd"> 'a.b.c'</span> +</span><span id="L-4870"><a href="#L-4870"><span class="linenos">4870</span></a> +</span><span id="L-4871"><a href="#L-4871"><span class="linenos">4871</span></a><span class="sd"> Returns:</span> +</span><span id="L-4872"><a href="#L-4872"><span class="linenos">4872</span></a><span class="sd"> The table name.</span> +</span><span id="L-4873"><a href="#L-4873"><span class="linenos">4873</span></a><span class="sd"> """</span> +</span><span id="L-4874"><a href="#L-4874"><span class="linenos">4874</span></a> +</span><span id="L-4875"><a href="#L-4875"><span class="linenos">4875</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span> +</span><span id="L-4876"><a href="#L-4876"><span class="linenos">4876</span></a> +</span><span id="L-4877"><a href="#L-4877"><span class="linenos">4877</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> +</span><span id="L-4878"><a href="#L-4878"><span class="linenos">4878</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-4879"><a href="#L-4879"><span class="linenos">4879</span></a> +</span><span id="L-4880"><a href="#L-4880"><span class="linenos">4880</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-4881"><a href="#L-4881"><span class="linenos">4881</span></a> <span class="n">part</span> +</span><span id="L-4882"><a href="#L-4882"><span class="linenos">4882</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="L-4883"><a href="#L-4883"><span class="linenos">4883</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">),</span> +</span><span id="L-4884"><a href="#L-4884"><span class="linenos">4884</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">),</span> +</span><span id="L-4885"><a href="#L-4885"><span class="linenos">4885</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> +</span><span id="L-4886"><a href="#L-4886"><span class="linenos">4886</span></a> <span class="p">)</span> +</span><span id="L-4887"><a href="#L-4887"><span class="linenos">4887</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="L-4888"><a href="#L-4888"><span class="linenos">4888</span></a> <span class="p">)</span> </span><span id="L-4889"><a href="#L-4889"><span class="linenos">4889</span></a> -</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span> -</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> -</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a> -</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> <span class="k">return</span> <span class="n">function</span> -</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a> -</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a> -</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span> -</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="sd"> Returns a true Boolean expression.</span> -</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="sd"> """</span> -</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a> +</span><span id="L-4890"><a href="#L-4890"><span class="linenos">4890</span></a> +</span><span id="L-4891"><a href="#L-4891"><span class="linenos">4891</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span> +</span><span id="L-4892"><a href="#L-4892"><span class="linenos">4892</span></a><span class="w"> </span><span class="sd">"""Replace all tables in expression according to the mapping.</span> +</span><span id="L-4893"><a href="#L-4893"><span class="linenos">4893</span></a> +</span><span id="L-4894"><a href="#L-4894"><span class="linenos">4894</span></a><span class="sd"> Args:</span> +</span><span id="L-4895"><a href="#L-4895"><span class="linenos">4895</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> +</span><span id="L-4896"><a href="#L-4896"><span class="linenos">4896</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span> +</span><span id="L-4897"><a href="#L-4897"><span class="linenos">4897</span></a> +</span><span id="L-4898"><a href="#L-4898"><span class="linenos">4898</span></a><span class="sd"> Examples:</span> +</span><span id="L-4899"><a href="#L-4899"><span class="linenos">4899</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> +</span><span id="L-4900"><a href="#L-4900"><span class="linenos">4900</span></a><span class="sd"> >>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql()</span> +</span><span id="L-4901"><a href="#L-4901"><span class="linenos">4901</span></a><span class="sd"> 'SELECT * FROM c'</span> </span><span id="L-4902"><a href="#L-4902"><span class="linenos">4902</span></a> -</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span> -</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a><span class="sd"> Returns a false Boolean expression.</span> -</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a><span class="sd"> """</span> -</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> -</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> -</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span> -</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a><span class="sd"> Returns a Null expression.</span> -</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a><span class="sd"> """</span> -</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span> -</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a> +</span><span id="L-4903"><a href="#L-4903"><span class="linenos">4903</span></a><span class="sd"> Returns:</span> +</span><span id="L-4904"><a href="#L-4904"><span class="linenos">4904</span></a><span class="sd"> The mapped expression.</span> +</span><span id="L-4905"><a href="#L-4905"><span class="linenos">4905</span></a><span class="sd"> """</span> +</span><span id="L-4906"><a href="#L-4906"><span class="linenos">4906</span></a> +</span><span id="L-4907"><a href="#L-4907"><span class="linenos">4907</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span> +</span><span id="L-4908"><a href="#L-4908"><span class="linenos">4908</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> +</span><span id="L-4909"><a href="#L-4909"><span class="linenos">4909</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span> +</span><span id="L-4910"><a href="#L-4910"><span class="linenos">4910</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> +</span><span id="L-4911"><a href="#L-4911"><span class="linenos">4911</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span> +</span><span id="L-4912"><a href="#L-4912"><span class="linenos">4912</span></a> <span class="n">new_name</span><span class="p">,</span> +</span><span id="L-4913"><a href="#L-4913"><span class="linenos">4913</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">)},</span> +</span><span id="L-4914"><a href="#L-4914"><span class="linenos">4914</span></a> <span class="p">)</span> +</span><span id="L-4915"><a href="#L-4915"><span class="linenos">4915</span></a> <span class="k">return</span> <span class="n">node</span> </span><span id="L-4916"><a href="#L-4916"><span class="linenos">4916</span></a> -</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a><span class="c1"># TODO: deprecate this</span> -</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span> +</span><span id="L-4917"><a href="#L-4917"><span class="linenos">4917</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span> +</span><span id="L-4918"><a href="#L-4918"><span class="linenos">4918</span></a> +</span><span id="L-4919"><a href="#L-4919"><span class="linenos">4919</span></a> +</span><span id="L-4920"><a href="#L-4920"><span class="linenos">4920</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="L-4921"><a href="#L-4921"><span class="linenos">4921</span></a><span class="w"> </span><span class="sd">"""Replace placeholders in an expression.</span> +</span><span id="L-4922"><a href="#L-4922"><span class="linenos">4922</span></a> +</span><span id="L-4923"><a href="#L-4923"><span class="linenos">4923</span></a><span class="sd"> Args:</span> +</span><span id="L-4924"><a href="#L-4924"><span class="linenos">4924</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> +</span><span id="L-4925"><a href="#L-4925"><span class="linenos">4925</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span> +</span><span id="L-4926"><a href="#L-4926"><span class="linenos">4926</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span> +</span><span id="L-4927"><a href="#L-4927"><span class="linenos">4927</span></a> +</span><span id="L-4928"><a href="#L-4928"><span class="linenos">4928</span></a><span class="sd"> Examples:</span> +</span><span id="L-4929"><a href="#L-4929"><span class="linenos">4929</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> +</span><span id="L-4930"><a href="#L-4930"><span class="linenos">4930</span></a><span class="sd"> >>> replace_placeholders(</span> +</span><span id="L-4931"><a href="#L-4931"><span class="linenos">4931</span></a><span class="sd"> ... parse_one("select * from :tbl where ? = ?"), "a", "b", tbl="foo"</span> +</span><span id="L-4932"><a href="#L-4932"><span class="linenos">4932</span></a><span class="sd"> ... ).sql()</span> +</span><span id="L-4933"><a href="#L-4933"><span class="linenos">4933</span></a><span class="sd"> 'SELECT * FROM foo WHERE a = b'</span> +</span><span id="L-4934"><a href="#L-4934"><span class="linenos">4934</span></a> +</span><span id="L-4935"><a href="#L-4935"><span class="linenos">4935</span></a><span class="sd"> Returns:</span> +</span><span id="L-4936"><a href="#L-4936"><span class="linenos">4936</span></a><span class="sd"> The mapped expression.</span> +</span><span id="L-4937"><a href="#L-4937"><span class="linenos">4937</span></a><span class="sd"> """</span> +</span><span id="L-4938"><a href="#L-4938"><span class="linenos">4938</span></a> +</span><span id="L-4939"><a href="#L-4939"><span class="linenos">4939</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="L-4940"><a href="#L-4940"><span class="linenos">4940</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span> +</span><span id="L-4941"><a href="#L-4941"><span class="linenos">4941</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> +</span><span id="L-4942"><a href="#L-4942"><span class="linenos">4942</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-4943"><a href="#L-4943"><span class="linenos">4943</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> +</span><span id="L-4944"><a href="#L-4944"><span class="linenos">4944</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> +</span><span id="L-4945"><a href="#L-4945"><span class="linenos">4945</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-4946"><a href="#L-4946"><span class="linenos">4946</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-4947"><a href="#L-4947"><span class="linenos">4947</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span> +</span><span id="L-4948"><a href="#L-4948"><span class="linenos">4948</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span> +</span><span id="L-4949"><a href="#L-4949"><span class="linenos">4949</span></a> <span class="k">pass</span> +</span><span id="L-4950"><a href="#L-4950"><span class="linenos">4950</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-4951"><a href="#L-4951"><span class="linenos">4951</span></a> +</span><span id="L-4952"><a href="#L-4952"><span class="linenos">4952</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-4953"><a href="#L-4953"><span class="linenos">4953</span></a> +</span><span id="L-4954"><a href="#L-4954"><span class="linenos">4954</span></a> +</span><span id="L-4955"><a href="#L-4955"><span class="linenos">4955</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> +</span><span id="L-4956"><a href="#L-4956"><span class="linenos">4956</span></a><span class="w"> </span><span class="sd">"""Transforms an expression by expanding all referenced sources into subqueries.</span> +</span><span id="L-4957"><a href="#L-4957"><span class="linenos">4957</span></a> +</span><span id="L-4958"><a href="#L-4958"><span class="linenos">4958</span></a><span class="sd"> Examples:</span> +</span><span id="L-4959"><a href="#L-4959"><span class="linenos">4959</span></a><span class="sd"> >>> from sqlglot import parse_one</span> +</span><span id="L-4960"><a href="#L-4960"><span class="linenos">4960</span></a><span class="sd"> >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql()</span> +</span><span id="L-4961"><a href="#L-4961"><span class="linenos">4961</span></a><span class="sd"> 'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'</span> +</span><span id="L-4962"><a href="#L-4962"><span class="linenos">4962</span></a> +</span><span id="L-4963"><a href="#L-4963"><span class="linenos">4963</span></a><span class="sd"> Args:</span> +</span><span id="L-4964"><a href="#L-4964"><span class="linenos">4964</span></a><span class="sd"> expression: The expression to expand.</span> +</span><span id="L-4965"><a href="#L-4965"><span class="linenos">4965</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span> +</span><span id="L-4966"><a href="#L-4966"><span class="linenos">4966</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span> +</span><span id="L-4967"><a href="#L-4967"><span class="linenos">4967</span></a> +</span><span id="L-4968"><a href="#L-4968"><span class="linenos">4968</span></a><span class="sd"> Returns:</span> +</span><span id="L-4969"><a href="#L-4969"><span class="linenos">4969</span></a><span class="sd"> The transformed expression.</span> +</span><span id="L-4970"><a href="#L-4970"><span class="linenos">4970</span></a><span class="sd"> """</span> +</span><span id="L-4971"><a href="#L-4971"><span class="linenos">4971</span></a> +</span><span id="L-4972"><a href="#L-4972"><span class="linenos">4972</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="L-4973"><a href="#L-4973"><span class="linenos">4973</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> +</span><span id="L-4974"><a href="#L-4974"><span class="linenos">4974</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-4975"><a href="#L-4975"><span class="linenos">4975</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-4976"><a href="#L-4976"><span class="linenos">4976</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span> +</span><span id="L-4977"><a href="#L-4977"><span class="linenos">4977</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span> +</span><span id="L-4978"><a href="#L-4978"><span class="linenos">4978</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">]</span> +</span><span id="L-4979"><a href="#L-4979"><span class="linenos">4979</span></a> <span class="k">return</span> <span class="n">subquery</span> +</span><span id="L-4980"><a href="#L-4980"><span class="linenos">4980</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-4981"><a href="#L-4981"><span class="linenos">4981</span></a> +</span><span id="L-4982"><a href="#L-4982"><span class="linenos">4982</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> +</span><span id="L-4983"><a href="#L-4983"><span class="linenos">4983</span></a> +</span><span id="L-4984"><a href="#L-4984"><span class="linenos">4984</span></a> +</span><span id="L-4985"><a href="#L-4985"><span class="linenos">4985</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Func</span><span class="p">:</span> +</span><span id="L-4986"><a href="#L-4986"><span class="linenos">4986</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-4987"><a href="#L-4987"><span class="linenos">4987</span></a><span class="sd"> Returns a Func expression.</span> +</span><span id="L-4988"><a href="#L-4988"><span class="linenos">4988</span></a> +</span><span id="L-4989"><a href="#L-4989"><span class="linenos">4989</span></a><span class="sd"> Examples:</span> +</span><span id="L-4990"><a href="#L-4990"><span class="linenos">4990</span></a><span class="sd"> >>> func("abs", 5).sql()</span> +</span><span id="L-4991"><a href="#L-4991"><span class="linenos">4991</span></a><span class="sd"> 'ABS(5)'</span> +</span><span id="L-4992"><a href="#L-4992"><span class="linenos">4992</span></a> +</span><span id="L-4993"><a href="#L-4993"><span class="linenos">4993</span></a><span class="sd"> >>> func("cast", this=5, to=DataType.build("DOUBLE")).sql()</span> +</span><span id="L-4994"><a href="#L-4994"><span class="linenos">4994</span></a><span class="sd"> 'CAST(5 AS DOUBLE)'</span> +</span><span id="L-4995"><a href="#L-4995"><span class="linenos">4995</span></a> +</span><span id="L-4996"><a href="#L-4996"><span class="linenos">4996</span></a><span class="sd"> Args:</span> +</span><span id="L-4997"><a href="#L-4997"><span class="linenos">4997</span></a><span class="sd"> name: the name of the function to build.</span> +</span><span id="L-4998"><a href="#L-4998"><span class="linenos">4998</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span> +</span><span id="L-4999"><a href="#L-4999"><span class="linenos">4999</span></a><span class="sd"> dialect: the source dialect.</span> +</span><span id="L-5000"><a href="#L-5000"><span class="linenos">5000</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span> +</span><span id="L-5001"><a href="#L-5001"><span class="linenos">5001</span></a> +</span><span id="L-5002"><a href="#L-5002"><span class="linenos">5002</span></a><span class="sd"> Note:</span> +</span><span id="L-5003"><a href="#L-5003"><span class="linenos">5003</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span> +</span><span id="L-5004"><a href="#L-5004"><span class="linenos">5004</span></a> +</span><span id="L-5005"><a href="#L-5005"><span class="linenos">5005</span></a><span class="sd"> Returns:</span> +</span><span id="L-5006"><a href="#L-5006"><span class="linenos">5006</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn't</span> +</span><span id="L-5007"><a href="#L-5007"><span class="linenos">5007</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span> +</span><span id="L-5008"><a href="#L-5008"><span class="linenos">5008</span></a><span class="sd"> """</span> +</span><span id="L-5009"><a href="#L-5009"><span class="linenos">5009</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span> +</span><span id="L-5010"><a href="#L-5010"><span class="linenos">5010</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Can't use both args and kwargs to instantiate a function."</span><span class="p">)</span> +</span><span id="L-5011"><a href="#L-5011"><span class="linenos">5011</span></a> +</span><span id="L-5012"><a href="#L-5012"><span class="linenos">5012</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span> +</span><span id="L-5013"><a href="#L-5013"><span class="linenos">5013</span></a> +</span><span id="L-5014"><a href="#L-5014"><span class="linenos">5014</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span> +</span><span id="L-5015"><a href="#L-5015"><span class="linenos">5015</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> +</span><span id="L-5016"><a href="#L-5016"><span class="linenos">5016</span></a> +</span><span id="L-5017"><a href="#L-5017"><span class="linenos">5017</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span> +</span><span id="L-5018"><a href="#L-5018"><span class="linenos">5018</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="L-5019"><a href="#L-5019"><span class="linenos">5019</span></a> +</span><span id="L-5020"><a href="#L-5020"><span class="linenos">5020</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span> +</span><span id="L-5021"><a href="#L-5021"><span class="linenos">5021</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-5022"><a href="#L-5022"><span class="linenos">5022</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-5023"><a href="#L-5023"><span class="linenos">5023</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span> +</span><span id="L-5024"><a href="#L-5024"><span class="linenos">5024</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-5025"><a href="#L-5025"><span class="linenos">5025</span></a> +</span><span id="L-5026"><a href="#L-5026"><span class="linenos">5026</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span> +</span><span id="L-5027"><a href="#L-5027"><span class="linenos">5027</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> +</span><span id="L-5028"><a href="#L-5028"><span class="linenos">5028</span></a> +</span><span id="L-5029"><a href="#L-5029"><span class="linenos">5029</span></a> <span class="k">return</span> <span class="n">function</span> +</span><span id="L-5030"><a href="#L-5030"><span class="linenos">5030</span></a> +</span><span id="L-5031"><a href="#L-5031"><span class="linenos">5031</span></a> +</span><span id="L-5032"><a href="#L-5032"><span class="linenos">5032</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span> +</span><span id="L-5033"><a href="#L-5033"><span class="linenos">5033</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-5034"><a href="#L-5034"><span class="linenos">5034</span></a><span class="sd"> Returns a true Boolean expression.</span> +</span><span id="L-5035"><a href="#L-5035"><span class="linenos">5035</span></a><span class="sd"> """</span> +</span><span id="L-5036"><a href="#L-5036"><span class="linenos">5036</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-5037"><a href="#L-5037"><span class="linenos">5037</span></a> +</span><span id="L-5038"><a href="#L-5038"><span class="linenos">5038</span></a> +</span><span id="L-5039"><a href="#L-5039"><span class="linenos">5039</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span> +</span><span id="L-5040"><a href="#L-5040"><span class="linenos">5040</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-5041"><a href="#L-5041"><span class="linenos">5041</span></a><span class="sd"> Returns a false Boolean expression.</span> +</span><span id="L-5042"><a href="#L-5042"><span class="linenos">5042</span></a><span class="sd"> """</span> +</span><span id="L-5043"><a href="#L-5043"><span class="linenos">5043</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-5044"><a href="#L-5044"><span class="linenos">5044</span></a> +</span><span id="L-5045"><a href="#L-5045"><span class="linenos">5045</span></a> +</span><span id="L-5046"><a href="#L-5046"><span class="linenos">5046</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span> +</span><span id="L-5047"><a href="#L-5047"><span class="linenos">5047</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-5048"><a href="#L-5048"><span class="linenos">5048</span></a><span class="sd"> Returns a Null expression.</span> +</span><span id="L-5049"><a href="#L-5049"><span class="linenos">5049</span></a><span class="sd"> """</span> +</span><span id="L-5050"><a href="#L-5050"><span class="linenos">5050</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span> +</span><span id="L-5051"><a href="#L-5051"><span class="linenos">5051</span></a> +</span><span id="L-5052"><a href="#L-5052"><span class="linenos">5052</span></a> +</span><span id="L-5053"><a href="#L-5053"><span class="linenos">5053</span></a><span class="c1"># TODO: deprecate this</span> +</span><span id="L-5054"><a href="#L-5054"><span class="linenos">5054</span></a><span class="n">TRUE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-5055"><a href="#L-5055"><span class="linenos">5055</span></a><span class="n">FALSE</span> <span class="o">=</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-5056"><a href="#L-5056"><span class="linenos">5056</span></a><span class="n">NULL</span> <span class="o">=</span> <span class="n">Null</span><span class="p">()</span> </span></pre></div> @@ -8366,76 +8523,80 @@ SQL expressions, such as <code><a href="#select">sqlglot.expressions.select</a>< </span><span id="Expression-550"><a href="#Expression-550"><span class="linenos">550</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="Expression-551"><a href="#Expression-551"><span class="linenos">551</span></a><span class="w"> </span><span class="sd">"""</span> </span><span id="Expression-552"><a href="#Expression-552"><span class="linenos">552</span></a><span class="sd"> Remove this expression from its AST.</span> -</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a><span class="sd"> """</span> -</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> -</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a> -</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">):</span> -</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span> +</span><span id="Expression-553"><a href="#Expression-553"><span class="linenos">553</span></a> +</span><span id="Expression-554"><a href="#Expression-554"><span class="linenos">554</span></a><span class="sd"> Returns:</span> +</span><span id="Expression-555"><a href="#Expression-555"><span class="linenos">555</span></a><span class="sd"> The popped expression.</span> +</span><span id="Expression-556"><a href="#Expression-556"><span class="linenos">556</span></a><span class="sd"> """</span> +</span><span id="Expression-557"><a href="#Expression-557"><span class="linenos">557</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> +</span><span id="Expression-558"><a href="#Expression-558"><span class="linenos">558</span></a> <span class="k">return</span> <span class="bp">self</span> </span><span id="Expression-559"><a href="#Expression-559"><span class="linenos">559</span></a> -</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span> -</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a><span class="sd"> Otherwise, this returns this expression.</span> -</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a> -</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a><span class="sd"> Examples:</span> -</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a><span class="sd"> This is useful for type security in chained expressions:</span> -</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a> -</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()</span> -</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> 'SELECT x, z FROM y'</span> -</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a><span class="sd"> """</span> -</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span> -</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a> <span class="k">return</span> <span class="bp">self</span> -</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a> -</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span> +</span><span id="Expression-560"><a href="#Expression-560"><span class="linenos">560</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">):</span> +</span><span id="Expression-561"><a href="#Expression-561"><span class="linenos">561</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression-562"><a href="#Expression-562"><span class="linenos">562</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span> +</span><span id="Expression-563"><a href="#Expression-563"><span class="linenos">563</span></a> +</span><span id="Expression-564"><a href="#Expression-564"><span class="linenos">564</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span> +</span><span id="Expression-565"><a href="#Expression-565"><span class="linenos">565</span></a><span class="sd"> Otherwise, this returns this expression.</span> +</span><span id="Expression-566"><a href="#Expression-566"><span class="linenos">566</span></a> +</span><span id="Expression-567"><a href="#Expression-567"><span class="linenos">567</span></a><span class="sd"> Examples:</span> +</span><span id="Expression-568"><a href="#Expression-568"><span class="linenos">568</span></a><span class="sd"> This is useful for type security in chained expressions:</span> +</span><span id="Expression-569"><a href="#Expression-569"><span class="linenos">569</span></a> +</span><span id="Expression-570"><a href="#Expression-570"><span class="linenos">570</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Expression-571"><a href="#Expression-571"><span class="linenos">571</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()</span> +</span><span id="Expression-572"><a href="#Expression-572"><span class="linenos">572</span></a><span class="sd"> 'SELECT x, z FROM y'</span> +</span><span id="Expression-573"><a href="#Expression-573"><span class="linenos">573</span></a><span class="sd"> """</span> +</span><span id="Expression-574"><a href="#Expression-574"><span class="linenos">574</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span> +</span><span id="Expression-575"><a href="#Expression-575"><span class="linenos">575</span></a> <span class="k">return</span> <span class="bp">self</span> </span><span id="Expression-576"><a href="#Expression-576"><span class="linenos">576</span></a> -</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a><span class="sd"> Args:</span> -</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span> -</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a><span class="sd"> to check that the provided arguments don't exceed the function argument limit.</span> +</span><span id="Expression-577"><a href="#Expression-577"><span class="linenos">577</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="Expression-578"><a href="#Expression-578"><span class="linenos">578</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression-579"><a href="#Expression-579"><span class="linenos">579</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span> </span><span id="Expression-580"><a href="#Expression-580"><span class="linenos">580</span></a> -</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a><span class="sd"> Returns:</span> -</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span> -</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a><span class="sd"> """</span> -</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a> -</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> -</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> -</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span> -</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Required keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a> -</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a> <span class="n">args</span> -</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span> -</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> -</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span> -</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a> <span class="p">):</span> -</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a> <span class="sa">f</span><span class="s2">"The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than "</span> -</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a> <span class="sa">f</span><span class="s2">"the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a> <span class="p">)</span> -</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a> -</span><span id="Expression-605"><a href="#Expression-605"><span class="linenos">605</span></a> <span class="k">return</span> <span class="n">errors</span> -</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a> -</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Expression-608"><a href="#Expression-608"><span class="linenos">608</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span> -</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a><span class="sd"> """</span> -</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span> -</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a> -</span><span id="Expression-613"><a href="#Expression-613"><span class="linenos">613</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a> -</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a> <span class="nd">@classmethod</span> -</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span> -</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span> -</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a><span class="sd"> """</span> -</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span> -</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a> -</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> +</span><span id="Expression-581"><a href="#Expression-581"><span class="linenos">581</span></a><span class="sd"> Args:</span> +</span><span id="Expression-582"><a href="#Expression-582"><span class="linenos">582</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span> +</span><span id="Expression-583"><a href="#Expression-583"><span class="linenos">583</span></a><span class="sd"> to check that the provided arguments don't exceed the function argument limit.</span> +</span><span id="Expression-584"><a href="#Expression-584"><span class="linenos">584</span></a> +</span><span id="Expression-585"><a href="#Expression-585"><span class="linenos">585</span></a><span class="sd"> Returns:</span> +</span><span id="Expression-586"><a href="#Expression-586"><span class="linenos">586</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span> +</span><span id="Expression-587"><a href="#Expression-587"><span class="linenos">587</span></a><span class="sd"> """</span> +</span><span id="Expression-588"><a href="#Expression-588"><span class="linenos">588</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Expression-589"><a href="#Expression-589"><span class="linenos">589</span></a> +</span><span id="Expression-590"><a href="#Expression-590"><span class="linenos">590</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Expression-591"><a href="#Expression-591"><span class="linenos">591</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> +</span><span id="Expression-592"><a href="#Expression-592"><span class="linenos">592</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Expression-593"><a href="#Expression-593"><span class="linenos">593</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="Expression-594"><a href="#Expression-594"><span class="linenos">594</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> +</span><span id="Expression-595"><a href="#Expression-595"><span class="linenos">595</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span> +</span><span id="Expression-596"><a href="#Expression-596"><span class="linenos">596</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Required keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Expression-597"><a href="#Expression-597"><span class="linenos">597</span></a> +</span><span id="Expression-598"><a href="#Expression-598"><span class="linenos">598</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Expression-599"><a href="#Expression-599"><span class="linenos">599</span></a> <span class="n">args</span> +</span><span id="Expression-600"><a href="#Expression-600"><span class="linenos">600</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span> +</span><span id="Expression-601"><a href="#Expression-601"><span class="linenos">601</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> +</span><span id="Expression-602"><a href="#Expression-602"><span class="linenos">602</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span> +</span><span id="Expression-603"><a href="#Expression-603"><span class="linenos">603</span></a> <span class="p">):</span> +</span><span id="Expression-604"><a href="#Expression-604"><span class="linenos">604</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Expression-605"><a href="#Expression-605"><span class="linenos">605</span></a> <span class="sa">f</span><span class="s2">"The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than "</span> +</span><span id="Expression-606"><a href="#Expression-606"><span class="linenos">606</span></a> <span class="sa">f</span><span class="s2">"the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Expression-607"><a href="#Expression-607"><span class="linenos">607</span></a> <span class="p">)</span> +</span><span id="Expression-608"><a href="#Expression-608"><span class="linenos">608</span></a> +</span><span id="Expression-609"><a href="#Expression-609"><span class="linenos">609</span></a> <span class="k">return</span> <span class="n">errors</span> +</span><span id="Expression-610"><a href="#Expression-610"><span class="linenos">610</span></a> +</span><span id="Expression-611"><a href="#Expression-611"><span class="linenos">611</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Expression-612"><a href="#Expression-612"><span class="linenos">612</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression-613"><a href="#Expression-613"><span class="linenos">613</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span> +</span><span id="Expression-614"><a href="#Expression-614"><span class="linenos">614</span></a><span class="sd"> """</span> +</span><span id="Expression-615"><a href="#Expression-615"><span class="linenos">615</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span> +</span><span id="Expression-616"><a href="#Expression-616"><span class="linenos">616</span></a> +</span><span id="Expression-617"><a href="#Expression-617"><span class="linenos">617</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Expression-618"><a href="#Expression-618"><span class="linenos">618</span></a> +</span><span id="Expression-619"><a href="#Expression-619"><span class="linenos">619</span></a> <span class="nd">@classmethod</span> +</span><span id="Expression-620"><a href="#Expression-620"><span class="linenos">620</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span> +</span><span id="Expression-621"><a href="#Expression-621"><span class="linenos">621</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression-622"><a href="#Expression-622"><span class="linenos">622</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span> +</span><span id="Expression-623"><a href="#Expression-623"><span class="linenos">623</span></a><span class="sd"> """</span> +</span><span id="Expression-624"><a href="#Expression-624"><span class="linenos">624</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span> +</span><span id="Expression-625"><a href="#Expression-625"><span class="linenos">625</span></a> +</span><span id="Expression-626"><a href="#Expression-626"><span class="linenos">626</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> </span></pre></div> @@ -9402,12 +9563,22 @@ modified in place.</li> <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.pop-550"><a href="#Expression.pop-550"><span class="linenos">550</span></a> <span class="k">def</span> <span class="nf">pop</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> </span><span id="Expression.pop-551"><a href="#Expression.pop-551"><span class="linenos">551</span></a><span class="w"> </span><span class="sd">"""</span> </span><span id="Expression.pop-552"><a href="#Expression.pop-552"><span class="linenos">552</span></a><span class="sd"> Remove this expression from its AST.</span> -</span><span id="Expression.pop-553"><a href="#Expression.pop-553"><span class="linenos">553</span></a><span class="sd"> """</span> -</span><span id="Expression.pop-554"><a href="#Expression.pop-554"><span class="linenos">554</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> +</span><span id="Expression.pop-553"><a href="#Expression.pop-553"><span class="linenos">553</span></a> +</span><span id="Expression.pop-554"><a href="#Expression.pop-554"><span class="linenos">554</span></a><span class="sd"> Returns:</span> +</span><span id="Expression.pop-555"><a href="#Expression.pop-555"><span class="linenos">555</span></a><span class="sd"> The popped expression.</span> +</span><span id="Expression.pop-556"><a href="#Expression.pop-556"><span class="linenos">556</span></a><span class="sd"> """</span> +</span><span id="Expression.pop-557"><a href="#Expression.pop-557"><span class="linenos">557</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="kc">None</span><span class="p">)</span> +</span><span id="Expression.pop-558"><a href="#Expression.pop-558"><span class="linenos">558</span></a> <span class="k">return</span> <span class="bp">self</span> </span></pre></div> <div class="docstring"><p>Remove this expression from its AST.</p> + +<h6 id="returns">Returns:</h6> + +<blockquote> + <p>The popped expression.</p> +</blockquote> </div> @@ -9423,22 +9594,22 @@ modified in place.</li> </div> <a class="headerlink" href="#Expression.assert_is"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-556"><a href="#Expression.assert_is-556"><span class="linenos">556</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">):</span> -</span><span id="Expression.assert_is-557"><a href="#Expression.assert_is-557"><span class="linenos">557</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression.assert_is-558"><a href="#Expression.assert_is-558"><span class="linenos">558</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span> -</span><span id="Expression.assert_is-559"><a href="#Expression.assert_is-559"><span class="linenos">559</span></a> -</span><span id="Expression.assert_is-560"><a href="#Expression.assert_is-560"><span class="linenos">560</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span> -</span><span id="Expression.assert_is-561"><a href="#Expression.assert_is-561"><span class="linenos">561</span></a><span class="sd"> Otherwise, this returns this expression.</span> -</span><span id="Expression.assert_is-562"><a href="#Expression.assert_is-562"><span class="linenos">562</span></a> -</span><span id="Expression.assert_is-563"><a href="#Expression.assert_is-563"><span class="linenos">563</span></a><span class="sd"> Examples:</span> -</span><span id="Expression.assert_is-564"><a href="#Expression.assert_is-564"><span class="linenos">564</span></a><span class="sd"> This is useful for type security in chained expressions:</span> -</span><span id="Expression.assert_is-565"><a href="#Expression.assert_is-565"><span class="linenos">565</span></a> -</span><span id="Expression.assert_is-566"><a href="#Expression.assert_is-566"><span class="linenos">566</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Expression.assert_is-567"><a href="#Expression.assert_is-567"><span class="linenos">567</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()</span> -</span><span id="Expression.assert_is-568"><a href="#Expression.assert_is-568"><span class="linenos">568</span></a><span class="sd"> 'SELECT x, z FROM y'</span> -</span><span id="Expression.assert_is-569"><a href="#Expression.assert_is-569"><span class="linenos">569</span></a><span class="sd"> """</span> -</span><span id="Expression.assert_is-570"><a href="#Expression.assert_is-570"><span class="linenos">570</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span> -</span><span id="Expression.assert_is-571"><a href="#Expression.assert_is-571"><span class="linenos">571</span></a> <span class="k">return</span> <span class="bp">self</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.assert_is-560"><a href="#Expression.assert_is-560"><span class="linenos">560</span></a> <span class="k">def</span> <span class="nf">assert_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">):</span> +</span><span id="Expression.assert_is-561"><a href="#Expression.assert_is-561"><span class="linenos">561</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression.assert_is-562"><a href="#Expression.assert_is-562"><span class="linenos">562</span></a><span class="sd"> Assert that this `Expression` is an instance of `type_`.</span> +</span><span id="Expression.assert_is-563"><a href="#Expression.assert_is-563"><span class="linenos">563</span></a> +</span><span id="Expression.assert_is-564"><a href="#Expression.assert_is-564"><span class="linenos">564</span></a><span class="sd"> If it is NOT an instance of `type_`, this raises an assertion error.</span> +</span><span id="Expression.assert_is-565"><a href="#Expression.assert_is-565"><span class="linenos">565</span></a><span class="sd"> Otherwise, this returns this expression.</span> +</span><span id="Expression.assert_is-566"><a href="#Expression.assert_is-566"><span class="linenos">566</span></a> +</span><span id="Expression.assert_is-567"><a href="#Expression.assert_is-567"><span class="linenos">567</span></a><span class="sd"> Examples:</span> +</span><span id="Expression.assert_is-568"><a href="#Expression.assert_is-568"><span class="linenos">568</span></a><span class="sd"> This is useful for type security in chained expressions:</span> +</span><span id="Expression.assert_is-569"><a href="#Expression.assert_is-569"><span class="linenos">569</span></a> +</span><span id="Expression.assert_is-570"><a href="#Expression.assert_is-570"><span class="linenos">570</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Expression.assert_is-571"><a href="#Expression.assert_is-571"><span class="linenos">571</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT x from y").assert_is(Select).select("z").sql()</span> +</span><span id="Expression.assert_is-572"><a href="#Expression.assert_is-572"><span class="linenos">572</span></a><span class="sd"> 'SELECT x, z FROM y'</span> +</span><span id="Expression.assert_is-573"><a href="#Expression.assert_is-573"><span class="linenos">573</span></a><span class="sd"> """</span> +</span><span id="Expression.assert_is-574"><a href="#Expression.assert_is-574"><span class="linenos">574</span></a> <span class="k">assert</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type_</span><span class="p">)</span> +</span><span id="Expression.assert_is-575"><a href="#Expression.assert_is-575"><span class="linenos">575</span></a> <span class="k">return</span> <span class="bp">self</span> </span></pre></div> @@ -9474,39 +9645,39 @@ Otherwise, this returns this expression.</p> </div> <a class="headerlink" href="#Expression.error_messages"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-573"><a href="#Expression.error_messages-573"><span class="linenos">573</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="Expression.error_messages-574"><a href="#Expression.error_messages-574"><span class="linenos">574</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression.error_messages-575"><a href="#Expression.error_messages-575"><span class="linenos">575</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span> -</span><span id="Expression.error_messages-576"><a href="#Expression.error_messages-576"><span class="linenos">576</span></a> -</span><span id="Expression.error_messages-577"><a href="#Expression.error_messages-577"><span class="linenos">577</span></a><span class="sd"> Args:</span> -</span><span id="Expression.error_messages-578"><a href="#Expression.error_messages-578"><span class="linenos">578</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span> -</span><span id="Expression.error_messages-579"><a href="#Expression.error_messages-579"><span class="linenos">579</span></a><span class="sd"> to check that the provided arguments don't exceed the function argument limit.</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.error_messages-577"><a href="#Expression.error_messages-577"><span class="linenos">577</span></a> <span class="k">def</span> <span class="nf">error_messages</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="Expression.error_messages-578"><a href="#Expression.error_messages-578"><span class="linenos">578</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression.error_messages-579"><a href="#Expression.error_messages-579"><span class="linenos">579</span></a><span class="sd"> Checks if this expression is valid (e.g. all mandatory args are set).</span> </span><span id="Expression.error_messages-580"><a href="#Expression.error_messages-580"><span class="linenos">580</span></a> -</span><span id="Expression.error_messages-581"><a href="#Expression.error_messages-581"><span class="linenos">581</span></a><span class="sd"> Returns:</span> -</span><span id="Expression.error_messages-582"><a href="#Expression.error_messages-582"><span class="linenos">582</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span> -</span><span id="Expression.error_messages-583"><a href="#Expression.error_messages-583"><span class="linenos">583</span></a><span class="sd"> """</span> -</span><span id="Expression.error_messages-584"><a href="#Expression.error_messages-584"><span class="linenos">584</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Expression.error_messages-585"><a href="#Expression.error_messages-585"><span class="linenos">585</span></a> -</span><span id="Expression.error_messages-586"><a href="#Expression.error_messages-586"><span class="linenos">586</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Expression.error_messages-587"><a href="#Expression.error_messages-587"><span class="linenos">587</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> -</span><span id="Expression.error_messages-588"><a href="#Expression.error_messages-588"><span class="linenos">588</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Expression.error_messages-589"><a href="#Expression.error_messages-589"><span class="linenos">589</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="Expression.error_messages-590"><a href="#Expression.error_messages-590"><span class="linenos">590</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> -</span><span id="Expression.error_messages-591"><a href="#Expression.error_messages-591"><span class="linenos">591</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span> -</span><span id="Expression.error_messages-592"><a href="#Expression.error_messages-592"><span class="linenos">592</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Required keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Expression.error_messages-593"><a href="#Expression.error_messages-593"><span class="linenos">593</span></a> -</span><span id="Expression.error_messages-594"><a href="#Expression.error_messages-594"><span class="linenos">594</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Expression.error_messages-595"><a href="#Expression.error_messages-595"><span class="linenos">595</span></a> <span class="n">args</span> -</span><span id="Expression.error_messages-596"><a href="#Expression.error_messages-596"><span class="linenos">596</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span> -</span><span id="Expression.error_messages-597"><a href="#Expression.error_messages-597"><span class="linenos">597</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> -</span><span id="Expression.error_messages-598"><a href="#Expression.error_messages-598"><span class="linenos">598</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span> -</span><span id="Expression.error_messages-599"><a href="#Expression.error_messages-599"><span class="linenos">599</span></a> <span class="p">):</span> -</span><span id="Expression.error_messages-600"><a href="#Expression.error_messages-600"><span class="linenos">600</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Expression.error_messages-601"><a href="#Expression.error_messages-601"><span class="linenos">601</span></a> <span class="sa">f</span><span class="s2">"The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than "</span> -</span><span id="Expression.error_messages-602"><a href="#Expression.error_messages-602"><span class="linenos">602</span></a> <span class="sa">f</span><span class="s2">"the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Expression.error_messages-603"><a href="#Expression.error_messages-603"><span class="linenos">603</span></a> <span class="p">)</span> -</span><span id="Expression.error_messages-604"><a href="#Expression.error_messages-604"><span class="linenos">604</span></a> -</span><span id="Expression.error_messages-605"><a href="#Expression.error_messages-605"><span class="linenos">605</span></a> <span class="k">return</span> <span class="n">errors</span> +</span><span id="Expression.error_messages-581"><a href="#Expression.error_messages-581"><span class="linenos">581</span></a><span class="sd"> Args:</span> +</span><span id="Expression.error_messages-582"><a href="#Expression.error_messages-582"><span class="linenos">582</span></a><span class="sd"> args: a sequence of values that were used to instantiate a Func expression. This is used</span> +</span><span id="Expression.error_messages-583"><a href="#Expression.error_messages-583"><span class="linenos">583</span></a><span class="sd"> to check that the provided arguments don't exceed the function argument limit.</span> +</span><span id="Expression.error_messages-584"><a href="#Expression.error_messages-584"><span class="linenos">584</span></a> +</span><span id="Expression.error_messages-585"><a href="#Expression.error_messages-585"><span class="linenos">585</span></a><span class="sd"> Returns:</span> +</span><span id="Expression.error_messages-586"><a href="#Expression.error_messages-586"><span class="linenos">586</span></a><span class="sd"> A list of error messages for all possible errors that were found.</span> +</span><span id="Expression.error_messages-587"><a href="#Expression.error_messages-587"><span class="linenos">587</span></a><span class="sd"> """</span> +</span><span id="Expression.error_messages-588"><a href="#Expression.error_messages-588"><span class="linenos">588</span></a> <span class="n">errors</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Expression.error_messages-589"><a href="#Expression.error_messages-589"><span class="linenos">589</span></a> +</span><span id="Expression.error_messages-590"><a href="#Expression.error_messages-590"><span class="linenos">590</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Expression.error_messages-591"><a href="#Expression.error_messages-591"><span class="linenos">591</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> +</span><span id="Expression.error_messages-592"><a href="#Expression.error_messages-592"><span class="linenos">592</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Expression.error_messages-593"><a href="#Expression.error_messages-593"><span class="linenos">593</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">mandatory</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="Expression.error_messages-594"><a href="#Expression.error_messages-594"><span class="linenos">594</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> +</span><span id="Expression.error_messages-595"><a href="#Expression.error_messages-595"><span class="linenos">595</span></a> <span class="k">if</span> <span class="n">mandatory</span> <span class="ow">and</span> <span class="p">(</span><span class="n">v</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">v</span><span class="p">)):</span> +</span><span id="Expression.error_messages-596"><a href="#Expression.error_messages-596"><span class="linenos">596</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Required keyword: '</span><span class="si">{</span><span class="n">k</span><span class="si">}</span><span class="s2">' missing for </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Expression.error_messages-597"><a href="#Expression.error_messages-597"><span class="linenos">597</span></a> +</span><span id="Expression.error_messages-598"><a href="#Expression.error_messages-598"><span class="linenos">598</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Expression.error_messages-599"><a href="#Expression.error_messages-599"><span class="linenos">599</span></a> <span class="n">args</span> +</span><span id="Expression.error_messages-600"><a href="#Expression.error_messages-600"><span class="linenos">600</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">Func</span><span class="p">)</span> +</span><span id="Expression.error_messages-601"><a href="#Expression.error_messages-601"><span class="linenos">601</span></a> <span class="ow">and</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> <span class="o">></span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> +</span><span id="Expression.error_messages-602"><a href="#Expression.error_messages-602"><span class="linenos">602</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">is_var_len_args</span> +</span><span id="Expression.error_messages-603"><a href="#Expression.error_messages-603"><span class="linenos">603</span></a> <span class="p">):</span> +</span><span id="Expression.error_messages-604"><a href="#Expression.error_messages-604"><span class="linenos">604</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Expression.error_messages-605"><a href="#Expression.error_messages-605"><span class="linenos">605</span></a> <span class="sa">f</span><span class="s2">"The number of provided arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="p">)</span><span class="si">}</span><span class="s2">) is greater than "</span> +</span><span id="Expression.error_messages-606"><a href="#Expression.error_messages-606"><span class="linenos">606</span></a> <span class="sa">f</span><span class="s2">"the maximum number of supported arguments (</span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Expression.error_messages-607"><a href="#Expression.error_messages-607"><span class="linenos">607</span></a> <span class="p">)</span> +</span><span id="Expression.error_messages-608"><a href="#Expression.error_messages-608"><span class="linenos">608</span></a> +</span><span id="Expression.error_messages-609"><a href="#Expression.error_messages-609"><span class="linenos">609</span></a> <span class="k">return</span> <span class="n">errors</span> </span></pre></div> @@ -9539,13 +9710,13 @@ to check that the provided arguments don't exceed the function argument limit.</ </div> <a class="headerlink" href="#Expression.dump"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-607"><a href="#Expression.dump-607"><span class="linenos">607</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Expression.dump-608"><a href="#Expression.dump-608"><span class="linenos">608</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression.dump-609"><a href="#Expression.dump-609"><span class="linenos">609</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span> -</span><span id="Expression.dump-610"><a href="#Expression.dump-610"><span class="linenos">610</span></a><span class="sd"> """</span> -</span><span id="Expression.dump-611"><a href="#Expression.dump-611"><span class="linenos">611</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span> -</span><span id="Expression.dump-612"><a href="#Expression.dump-612"><span class="linenos">612</span></a> -</span><span id="Expression.dump-613"><a href="#Expression.dump-613"><span class="linenos">613</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.dump-611"><a href="#Expression.dump-611"><span class="linenos">611</span></a> <span class="k">def</span> <span class="nf">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Expression.dump-612"><a href="#Expression.dump-612"><span class="linenos">612</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression.dump-613"><a href="#Expression.dump-613"><span class="linenos">613</span></a><span class="sd"> Dump this Expression to a JSON-serializable dict.</span> +</span><span id="Expression.dump-614"><a href="#Expression.dump-614"><span class="linenos">614</span></a><span class="sd"> """</span> +</span><span id="Expression.dump-615"><a href="#Expression.dump-615"><span class="linenos">615</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">dump</span> +</span><span id="Expression.dump-616"><a href="#Expression.dump-616"><span class="linenos">616</span></a> +</span><span id="Expression.dump-617"><a href="#Expression.dump-617"><span class="linenos">617</span></a> <span class="k">return</span> <span class="n">dump</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> </span></pre></div> @@ -9566,14 +9737,14 @@ to check that the provided arguments don't exceed the function argument limit.</ </div> <a class="headerlink" href="#Expression.load"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-615"><a href="#Expression.load-615"><span class="linenos">615</span></a> <span class="nd">@classmethod</span> -</span><span id="Expression.load-616"><a href="#Expression.load-616"><span class="linenos">616</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span> -</span><span id="Expression.load-617"><a href="#Expression.load-617"><span class="linenos">617</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Expression.load-618"><a href="#Expression.load-618"><span class="linenos">618</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span> -</span><span id="Expression.load-619"><a href="#Expression.load-619"><span class="linenos">619</span></a><span class="sd"> """</span> -</span><span id="Expression.load-620"><a href="#Expression.load-620"><span class="linenos">620</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span> -</span><span id="Expression.load-621"><a href="#Expression.load-621"><span class="linenos">621</span></a> -</span><span id="Expression.load-622"><a href="#Expression.load-622"><span class="linenos">622</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Expression.load-619"><a href="#Expression.load-619"><span class="linenos">619</span></a> <span class="nd">@classmethod</span> +</span><span id="Expression.load-620"><a href="#Expression.load-620"><span class="linenos">620</span></a> <span class="k">def</span> <span class="nf">load</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">obj</span><span class="p">):</span> +</span><span id="Expression.load-621"><a href="#Expression.load-621"><span class="linenos">621</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Expression.load-622"><a href="#Expression.load-622"><span class="linenos">622</span></a><span class="sd"> Load a dict (as returned by `Expression.dump`) into an Expression instance.</span> +</span><span id="Expression.load-623"><a href="#Expression.load-623"><span class="linenos">623</span></a><span class="sd"> """</span> +</span><span id="Expression.load-624"><a href="#Expression.load-624"><span class="linenos">624</span></a> <span class="kn">from</span> <span class="nn">sqlglot.serde</span> <span class="kn">import</span> <span class="n">load</span> +</span><span id="Expression.load-625"><a href="#Expression.load-625"><span class="linenos">625</span></a> +</span><span id="Expression.load-626"><a href="#Expression.load-626"><span class="linenos">626</span></a> <span class="k">return</span> <span class="n">load</span><span class="p">(</span><span class="n">obj</span><span class="p">)</span> </span></pre></div> @@ -9594,57 +9765,57 @@ to check that the provided arguments don't exceed the function argument limit.</ </div> <a class="headerlink" href="#Condition"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-632"><a href="#Condition-632"><span class="linenos">632</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Condition-633"><a href="#Condition-633"><span class="linenos">633</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Condition-634"><a href="#Condition-634"><span class="linenos">634</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Condition-635"><a href="#Condition-635"><span class="linenos">635</span></a><span class="sd"> AND this condition with one or multiple expressions.</span> -</span><span id="Condition-636"><a href="#Condition-636"><span class="linenos">636</span></a> -</span><span id="Condition-637"><a href="#Condition-637"><span class="linenos">637</span></a><span class="sd"> Example:</span> -</span><span id="Condition-638"><a href="#Condition-638"><span class="linenos">638</span></a><span class="sd"> >>> condition("x=1").and_("y=1").sql()</span> -</span><span id="Condition-639"><a href="#Condition-639"><span class="linenos">639</span></a><span class="sd"> 'x = 1 AND y = 1'</span> -</span><span id="Condition-640"><a href="#Condition-640"><span class="linenos">640</span></a> -</span><span id="Condition-641"><a href="#Condition-641"><span class="linenos">641</span></a><span class="sd"> Args:</span> -</span><span id="Condition-642"><a href="#Condition-642"><span class="linenos">642</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Condition-643"><a href="#Condition-643"><span class="linenos">643</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Condition-644"><a href="#Condition-644"><span class="linenos">644</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Condition-645"><a href="#Condition-645"><span class="linenos">645</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Condition-646"><a href="#Condition-646"><span class="linenos">646</span></a> -</span><span id="Condition-647"><a href="#Condition-647"><span class="linenos">647</span></a><span class="sd"> Returns:</span> -</span><span id="Condition-648"><a href="#Condition-648"><span class="linenos">648</span></a><span class="sd"> And: the new condition.</span> -</span><span id="Condition-649"><a href="#Condition-649"><span class="linenos">649</span></a><span class="sd"> """</span> -</span><span id="Condition-650"><a href="#Condition-650"><span class="linenos">650</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Condition-637"><a href="#Condition-637"><span class="linenos">637</span></a><span class="k">class</span> <span class="nc">Condition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Condition-638"><a href="#Condition-638"><span class="linenos">638</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Condition-639"><a href="#Condition-639"><span class="linenos">639</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Condition-640"><a href="#Condition-640"><span class="linenos">640</span></a><span class="sd"> AND this condition with one or multiple expressions.</span> +</span><span id="Condition-641"><a href="#Condition-641"><span class="linenos">641</span></a> +</span><span id="Condition-642"><a href="#Condition-642"><span class="linenos">642</span></a><span class="sd"> Example:</span> +</span><span id="Condition-643"><a href="#Condition-643"><span class="linenos">643</span></a><span class="sd"> >>> condition("x=1").and_("y=1").sql()</span> +</span><span id="Condition-644"><a href="#Condition-644"><span class="linenos">644</span></a><span class="sd"> 'x = 1 AND y = 1'</span> +</span><span id="Condition-645"><a href="#Condition-645"><span class="linenos">645</span></a> +</span><span id="Condition-646"><a href="#Condition-646"><span class="linenos">646</span></a><span class="sd"> Args:</span> +</span><span id="Condition-647"><a href="#Condition-647"><span class="linenos">647</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Condition-648"><a href="#Condition-648"><span class="linenos">648</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Condition-649"><a href="#Condition-649"><span class="linenos">649</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Condition-650"><a href="#Condition-650"><span class="linenos">650</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> </span><span id="Condition-651"><a href="#Condition-651"><span class="linenos">651</span></a> -</span><span id="Condition-652"><a href="#Condition-652"><span class="linenos">652</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Condition-653"><a href="#Condition-653"><span class="linenos">653</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Condition-654"><a href="#Condition-654"><span class="linenos">654</span></a><span class="sd"> OR this condition with one or multiple expressions.</span> -</span><span id="Condition-655"><a href="#Condition-655"><span class="linenos">655</span></a> -</span><span id="Condition-656"><a href="#Condition-656"><span class="linenos">656</span></a><span class="sd"> Example:</span> -</span><span id="Condition-657"><a href="#Condition-657"><span class="linenos">657</span></a><span class="sd"> >>> condition("x=1").or_("y=1").sql()</span> -</span><span id="Condition-658"><a href="#Condition-658"><span class="linenos">658</span></a><span class="sd"> 'x = 1 OR y = 1'</span> -</span><span id="Condition-659"><a href="#Condition-659"><span class="linenos">659</span></a> -</span><span id="Condition-660"><a href="#Condition-660"><span class="linenos">660</span></a><span class="sd"> Args:</span> -</span><span id="Condition-661"><a href="#Condition-661"><span class="linenos">661</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Condition-662"><a href="#Condition-662"><span class="linenos">662</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Condition-663"><a href="#Condition-663"><span class="linenos">663</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Condition-664"><a href="#Condition-664"><span class="linenos">664</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Condition-665"><a href="#Condition-665"><span class="linenos">665</span></a> -</span><span id="Condition-666"><a href="#Condition-666"><span class="linenos">666</span></a><span class="sd"> Returns:</span> -</span><span id="Condition-667"><a href="#Condition-667"><span class="linenos">667</span></a><span class="sd"> Or: the new condition.</span> -</span><span id="Condition-668"><a href="#Condition-668"><span class="linenos">668</span></a><span class="sd"> """</span> -</span><span id="Condition-669"><a href="#Condition-669"><span class="linenos">669</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Condition-652"><a href="#Condition-652"><span class="linenos">652</span></a><span class="sd"> Returns:</span> +</span><span id="Condition-653"><a href="#Condition-653"><span class="linenos">653</span></a><span class="sd"> And: the new condition.</span> +</span><span id="Condition-654"><a href="#Condition-654"><span class="linenos">654</span></a><span class="sd"> """</span> +</span><span id="Condition-655"><a href="#Condition-655"><span class="linenos">655</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Condition-656"><a href="#Condition-656"><span class="linenos">656</span></a> +</span><span id="Condition-657"><a href="#Condition-657"><span class="linenos">657</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Condition-658"><a href="#Condition-658"><span class="linenos">658</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Condition-659"><a href="#Condition-659"><span class="linenos">659</span></a><span class="sd"> OR this condition with one or multiple expressions.</span> +</span><span id="Condition-660"><a href="#Condition-660"><span class="linenos">660</span></a> +</span><span id="Condition-661"><a href="#Condition-661"><span class="linenos">661</span></a><span class="sd"> Example:</span> +</span><span id="Condition-662"><a href="#Condition-662"><span class="linenos">662</span></a><span class="sd"> >>> condition("x=1").or_("y=1").sql()</span> +</span><span id="Condition-663"><a href="#Condition-663"><span class="linenos">663</span></a><span class="sd"> 'x = 1 OR y = 1'</span> +</span><span id="Condition-664"><a href="#Condition-664"><span class="linenos">664</span></a> +</span><span id="Condition-665"><a href="#Condition-665"><span class="linenos">665</span></a><span class="sd"> Args:</span> +</span><span id="Condition-666"><a href="#Condition-666"><span class="linenos">666</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Condition-667"><a href="#Condition-667"><span class="linenos">667</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Condition-668"><a href="#Condition-668"><span class="linenos">668</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Condition-669"><a href="#Condition-669"><span class="linenos">669</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> </span><span id="Condition-670"><a href="#Condition-670"><span class="linenos">670</span></a> -</span><span id="Condition-671"><a href="#Condition-671"><span class="linenos">671</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Condition-672"><a href="#Condition-672"><span class="linenos">672</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Condition-673"><a href="#Condition-673"><span class="linenos">673</span></a><span class="sd"> Wrap this condition with NOT.</span> -</span><span id="Condition-674"><a href="#Condition-674"><span class="linenos">674</span></a> -</span><span id="Condition-675"><a href="#Condition-675"><span class="linenos">675</span></a><span class="sd"> Example:</span> -</span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a><span class="sd"> >>> condition("x=1").not_().sql()</span> -</span><span id="Condition-677"><a href="#Condition-677"><span class="linenos">677</span></a><span class="sd"> 'NOT x = 1'</span> -</span><span id="Condition-678"><a href="#Condition-678"><span class="linenos">678</span></a> -</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a><span class="sd"> Returns:</span> -</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a><span class="sd"> Not: the new condition.</span> -</span><span id="Condition-681"><a href="#Condition-681"><span class="linenos">681</span></a><span class="sd"> """</span> -</span><span id="Condition-682"><a href="#Condition-682"><span class="linenos">682</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Condition-671"><a href="#Condition-671"><span class="linenos">671</span></a><span class="sd"> Returns:</span> +</span><span id="Condition-672"><a href="#Condition-672"><span class="linenos">672</span></a><span class="sd"> Or: the new condition.</span> +</span><span id="Condition-673"><a href="#Condition-673"><span class="linenos">673</span></a><span class="sd"> """</span> +</span><span id="Condition-674"><a href="#Condition-674"><span class="linenos">674</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Condition-675"><a href="#Condition-675"><span class="linenos">675</span></a> +</span><span id="Condition-676"><a href="#Condition-676"><span class="linenos">676</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Condition-677"><a href="#Condition-677"><span class="linenos">677</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Condition-678"><a href="#Condition-678"><span class="linenos">678</span></a><span class="sd"> Wrap this condition with NOT.</span> +</span><span id="Condition-679"><a href="#Condition-679"><span class="linenos">679</span></a> +</span><span id="Condition-680"><a href="#Condition-680"><span class="linenos">680</span></a><span class="sd"> Example:</span> +</span><span id="Condition-681"><a href="#Condition-681"><span class="linenos">681</span></a><span class="sd"> >>> condition("x=1").not_().sql()</span> +</span><span id="Condition-682"><a href="#Condition-682"><span class="linenos">682</span></a><span class="sd"> 'NOT x = 1'</span> +</span><span id="Condition-683"><a href="#Condition-683"><span class="linenos">683</span></a> +</span><span id="Condition-684"><a href="#Condition-684"><span class="linenos">684</span></a><span class="sd"> Returns:</span> +</span><span id="Condition-685"><a href="#Condition-685"><span class="linenos">685</span></a><span class="sd"> Not: the new condition.</span> +</span><span id="Condition-686"><a href="#Condition-686"><span class="linenos">686</span></a><span class="sd"> """</span> +</span><span id="Condition-687"><a href="#Condition-687"><span class="linenos">687</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> </span></pre></div> @@ -9661,24 +9832,24 @@ to check that the provided arguments don't exceed the function argument limit.</ </div> <a class="headerlink" href="#Condition.and_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.and_-633"><a href="#Condition.and_-633"><span class="linenos">633</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Condition.and_-634"><a href="#Condition.and_-634"><span class="linenos">634</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Condition.and_-635"><a href="#Condition.and_-635"><span class="linenos">635</span></a><span class="sd"> AND this condition with one or multiple expressions.</span> -</span><span id="Condition.and_-636"><a href="#Condition.and_-636"><span class="linenos">636</span></a> -</span><span id="Condition.and_-637"><a href="#Condition.and_-637"><span class="linenos">637</span></a><span class="sd"> Example:</span> -</span><span id="Condition.and_-638"><a href="#Condition.and_-638"><span class="linenos">638</span></a><span class="sd"> >>> condition("x=1").and_("y=1").sql()</span> -</span><span id="Condition.and_-639"><a href="#Condition.and_-639"><span class="linenos">639</span></a><span class="sd"> 'x = 1 AND y = 1'</span> -</span><span id="Condition.and_-640"><a href="#Condition.and_-640"><span class="linenos">640</span></a> -</span><span id="Condition.and_-641"><a href="#Condition.and_-641"><span class="linenos">641</span></a><span class="sd"> Args:</span> -</span><span id="Condition.and_-642"><a href="#Condition.and_-642"><span class="linenos">642</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Condition.and_-643"><a href="#Condition.and_-643"><span class="linenos">643</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Condition.and_-644"><a href="#Condition.and_-644"><span class="linenos">644</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Condition.and_-645"><a href="#Condition.and_-645"><span class="linenos">645</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Condition.and_-646"><a href="#Condition.and_-646"><span class="linenos">646</span></a> -</span><span id="Condition.and_-647"><a href="#Condition.and_-647"><span class="linenos">647</span></a><span class="sd"> Returns:</span> -</span><span id="Condition.and_-648"><a href="#Condition.and_-648"><span class="linenos">648</span></a><span class="sd"> And: the new condition.</span> -</span><span id="Condition.and_-649"><a href="#Condition.and_-649"><span class="linenos">649</span></a><span class="sd"> """</span> -</span><span id="Condition.and_-650"><a href="#Condition.and_-650"><span class="linenos">650</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.and_-638"><a href="#Condition.and_-638"><span class="linenos">638</span></a> <span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Condition.and_-639"><a href="#Condition.and_-639"><span class="linenos">639</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Condition.and_-640"><a href="#Condition.and_-640"><span class="linenos">640</span></a><span class="sd"> AND this condition with one or multiple expressions.</span> +</span><span id="Condition.and_-641"><a href="#Condition.and_-641"><span class="linenos">641</span></a> +</span><span id="Condition.and_-642"><a href="#Condition.and_-642"><span class="linenos">642</span></a><span class="sd"> Example:</span> +</span><span id="Condition.and_-643"><a href="#Condition.and_-643"><span class="linenos">643</span></a><span class="sd"> >>> condition("x=1").and_("y=1").sql()</span> +</span><span id="Condition.and_-644"><a href="#Condition.and_-644"><span class="linenos">644</span></a><span class="sd"> 'x = 1 AND y = 1'</span> +</span><span id="Condition.and_-645"><a href="#Condition.and_-645"><span class="linenos">645</span></a> +</span><span id="Condition.and_-646"><a href="#Condition.and_-646"><span class="linenos">646</span></a><span class="sd"> Args:</span> +</span><span id="Condition.and_-647"><a href="#Condition.and_-647"><span class="linenos">647</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Condition.and_-648"><a href="#Condition.and_-648"><span class="linenos">648</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Condition.and_-649"><a href="#Condition.and_-649"><span class="linenos">649</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Condition.and_-650"><a href="#Condition.and_-650"><span class="linenos">650</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Condition.and_-651"><a href="#Condition.and_-651"><span class="linenos">651</span></a> +</span><span id="Condition.and_-652"><a href="#Condition.and_-652"><span class="linenos">652</span></a><span class="sd"> Returns:</span> +</span><span id="Condition.and_-653"><a href="#Condition.and_-653"><span class="linenos">653</span></a><span class="sd"> And: the new condition.</span> +</span><span id="Condition.and_-654"><a href="#Condition.and_-654"><span class="linenos">654</span></a><span class="sd"> """</span> +</span><span id="Condition.and_-655"><a href="#Condition.and_-655"><span class="linenos">655</span></a> <span class="k">return</span> <span class="n">and_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -9723,24 +9894,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Condition.or_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.or_-652"><a href="#Condition.or_-652"><span class="linenos">652</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Condition.or_-653"><a href="#Condition.or_-653"><span class="linenos">653</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Condition.or_-654"><a href="#Condition.or_-654"><span class="linenos">654</span></a><span class="sd"> OR this condition with one or multiple expressions.</span> -</span><span id="Condition.or_-655"><a href="#Condition.or_-655"><span class="linenos">655</span></a> -</span><span id="Condition.or_-656"><a href="#Condition.or_-656"><span class="linenos">656</span></a><span class="sd"> Example:</span> -</span><span id="Condition.or_-657"><a href="#Condition.or_-657"><span class="linenos">657</span></a><span class="sd"> >>> condition("x=1").or_("y=1").sql()</span> -</span><span id="Condition.or_-658"><a href="#Condition.or_-658"><span class="linenos">658</span></a><span class="sd"> 'x = 1 OR y = 1'</span> -</span><span id="Condition.or_-659"><a href="#Condition.or_-659"><span class="linenos">659</span></a> -</span><span id="Condition.or_-660"><a href="#Condition.or_-660"><span class="linenos">660</span></a><span class="sd"> Args:</span> -</span><span id="Condition.or_-661"><a href="#Condition.or_-661"><span class="linenos">661</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Condition.or_-662"><a href="#Condition.or_-662"><span class="linenos">662</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Condition.or_-663"><a href="#Condition.or_-663"><span class="linenos">663</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Condition.or_-664"><a href="#Condition.or_-664"><span class="linenos">664</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Condition.or_-665"><a href="#Condition.or_-665"><span class="linenos">665</span></a> -</span><span id="Condition.or_-666"><a href="#Condition.or_-666"><span class="linenos">666</span></a><span class="sd"> Returns:</span> -</span><span id="Condition.or_-667"><a href="#Condition.or_-667"><span class="linenos">667</span></a><span class="sd"> Or: the new condition.</span> -</span><span id="Condition.or_-668"><a href="#Condition.or_-668"><span class="linenos">668</span></a><span class="sd"> """</span> -</span><span id="Condition.or_-669"><a href="#Condition.or_-669"><span class="linenos">669</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.or_-657"><a href="#Condition.or_-657"><span class="linenos">657</span></a> <span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Condition.or_-658"><a href="#Condition.or_-658"><span class="linenos">658</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Condition.or_-659"><a href="#Condition.or_-659"><span class="linenos">659</span></a><span class="sd"> OR this condition with one or multiple expressions.</span> +</span><span id="Condition.or_-660"><a href="#Condition.or_-660"><span class="linenos">660</span></a> +</span><span id="Condition.or_-661"><a href="#Condition.or_-661"><span class="linenos">661</span></a><span class="sd"> Example:</span> +</span><span id="Condition.or_-662"><a href="#Condition.or_-662"><span class="linenos">662</span></a><span class="sd"> >>> condition("x=1").or_("y=1").sql()</span> +</span><span id="Condition.or_-663"><a href="#Condition.or_-663"><span class="linenos">663</span></a><span class="sd"> 'x = 1 OR y = 1'</span> +</span><span id="Condition.or_-664"><a href="#Condition.or_-664"><span class="linenos">664</span></a> +</span><span id="Condition.or_-665"><a href="#Condition.or_-665"><span class="linenos">665</span></a><span class="sd"> Args:</span> +</span><span id="Condition.or_-666"><a href="#Condition.or_-666"><span class="linenos">666</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Condition.or_-667"><a href="#Condition.or_-667"><span class="linenos">667</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Condition.or_-668"><a href="#Condition.or_-668"><span class="linenos">668</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Condition.or_-669"><a href="#Condition.or_-669"><span class="linenos">669</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Condition.or_-670"><a href="#Condition.or_-670"><span class="linenos">670</span></a> +</span><span id="Condition.or_-671"><a href="#Condition.or_-671"><span class="linenos">671</span></a><span class="sd"> Returns:</span> +</span><span id="Condition.or_-672"><a href="#Condition.or_-672"><span class="linenos">672</span></a><span class="sd"> Or: the new condition.</span> +</span><span id="Condition.or_-673"><a href="#Condition.or_-673"><span class="linenos">673</span></a><span class="sd"> """</span> +</span><span id="Condition.or_-674"><a href="#Condition.or_-674"><span class="linenos">674</span></a> <span class="k">return</span> <span class="n">or_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -9785,18 +9956,18 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Condition.not_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.not_-671"><a href="#Condition.not_-671"><span class="linenos">671</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Condition.not_-672"><a href="#Condition.not_-672"><span class="linenos">672</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Condition.not_-673"><a href="#Condition.not_-673"><span class="linenos">673</span></a><span class="sd"> Wrap this condition with NOT.</span> -</span><span id="Condition.not_-674"><a href="#Condition.not_-674"><span class="linenos">674</span></a> -</span><span id="Condition.not_-675"><a href="#Condition.not_-675"><span class="linenos">675</span></a><span class="sd"> Example:</span> -</span><span id="Condition.not_-676"><a href="#Condition.not_-676"><span class="linenos">676</span></a><span class="sd"> >>> condition("x=1").not_().sql()</span> -</span><span id="Condition.not_-677"><a href="#Condition.not_-677"><span class="linenos">677</span></a><span class="sd"> 'NOT x = 1'</span> -</span><span id="Condition.not_-678"><a href="#Condition.not_-678"><span class="linenos">678</span></a> -</span><span id="Condition.not_-679"><a href="#Condition.not_-679"><span class="linenos">679</span></a><span class="sd"> Returns:</span> -</span><span id="Condition.not_-680"><a href="#Condition.not_-680"><span class="linenos">680</span></a><span class="sd"> Not: the new condition.</span> -</span><span id="Condition.not_-681"><a href="#Condition.not_-681"><span class="linenos">681</span></a><span class="sd"> """</span> -</span><span id="Condition.not_-682"><a href="#Condition.not_-682"><span class="linenos">682</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Condition.not_-676"><a href="#Condition.not_-676"><span class="linenos">676</span></a> <span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Condition.not_-677"><a href="#Condition.not_-677"><span class="linenos">677</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Condition.not_-678"><a href="#Condition.not_-678"><span class="linenos">678</span></a><span class="sd"> Wrap this condition with NOT.</span> +</span><span id="Condition.not_-679"><a href="#Condition.not_-679"><span class="linenos">679</span></a> +</span><span id="Condition.not_-680"><a href="#Condition.not_-680"><span class="linenos">680</span></a><span class="sd"> Example:</span> +</span><span id="Condition.not_-681"><a href="#Condition.not_-681"><span class="linenos">681</span></a><span class="sd"> >>> condition("x=1").not_().sql()</span> +</span><span id="Condition.not_-682"><a href="#Condition.not_-682"><span class="linenos">682</span></a><span class="sd"> 'NOT x = 1'</span> +</span><span id="Condition.not_-683"><a href="#Condition.not_-683"><span class="linenos">683</span></a> +</span><span id="Condition.not_-684"><a href="#Condition.not_-684"><span class="linenos">684</span></a><span class="sd"> Returns:</span> +</span><span id="Condition.not_-685"><a href="#Condition.not_-685"><span class="linenos">685</span></a><span class="sd"> Not: the new condition.</span> +</span><span id="Condition.not_-686"><a href="#Condition.not_-686"><span class="linenos">686</span></a><span class="sd"> """</span> +</span><span id="Condition.not_-687"><a href="#Condition.not_-687"><span class="linenos">687</span></a> <span class="k">return</span> <span class="n">not_</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> </span></pre></div> @@ -9876,8 +10047,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Predicate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-685"><a href="#Predicate-685"><span class="linenos">685</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Predicate-686"><a href="#Predicate-686"><span class="linenos">686</span></a><span class="w"> </span><span class="sd">"""Relationships like x = y, x > 1, x >= y."""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Predicate-690"><a href="#Predicate-690"><span class="linenos">690</span></a><span class="k">class</span> <span class="nc">Predicate</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Predicate-691"><a href="#Predicate-691"><span class="linenos">691</span></a><span class="w"> </span><span class="sd">"""Relationships like x = y, x > 1, x >= y."""</span> </span></pre></div> @@ -9946,26 +10117,26 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#DerivedTable"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-689"><a href="#DerivedTable-689"><span class="linenos">689</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="DerivedTable-690"><a href="#DerivedTable-690"><span class="linenos">690</span></a> <span class="nd">@property</span> -</span><span id="DerivedTable-691"><a href="#DerivedTable-691"><span class="linenos">691</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="DerivedTable-692"><a href="#DerivedTable-692"><span class="linenos">692</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> -</span><span id="DerivedTable-693"><a href="#DerivedTable-693"><span class="linenos">693</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span> -</span><span id="DerivedTable-694"><a href="#DerivedTable-694"><span class="linenos">694</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="DerivedTable-695"><a href="#DerivedTable-695"><span class="linenos">695</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> -</span><span id="DerivedTable-696"><a href="#DerivedTable-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">column_list</span><span class="p">]</span> -</span><span id="DerivedTable-697"><a href="#DerivedTable-697"><span class="linenos">697</span></a> -</span><span id="DerivedTable-698"><a href="#DerivedTable-698"><span class="linenos">698</span></a> <span class="nd">@property</span> -</span><span id="DerivedTable-699"><a href="#DerivedTable-699"><span class="linenos">699</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="DerivedTable-700"><a href="#DerivedTable-700"><span class="linenos">700</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> -</span><span id="DerivedTable-701"><a href="#DerivedTable-701"><span class="linenos">701</span></a> -</span><span id="DerivedTable-702"><a href="#DerivedTable-702"><span class="linenos">702</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="DerivedTable-703"><a href="#DerivedTable-703"><span class="linenos">703</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> -</span><span id="DerivedTable-704"><a href="#DerivedTable-704"><span class="linenos">704</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="DerivedTable-705"><a href="#DerivedTable-705"><span class="linenos">705</span></a> -</span><span id="DerivedTable-706"><a href="#DerivedTable-706"><span class="linenos">706</span></a> <span class="nd">@property</span> -</span><span id="DerivedTable-707"><a href="#DerivedTable-707"><span class="linenos">707</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="DerivedTable-708"><a href="#DerivedTable-708"><span class="linenos">708</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DerivedTable-694"><a href="#DerivedTable-694"><span class="linenos">694</span></a><span class="k">class</span> <span class="nc">DerivedTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="DerivedTable-695"><a href="#DerivedTable-695"><span class="linenos">695</span></a> <span class="nd">@property</span> +</span><span id="DerivedTable-696"><a href="#DerivedTable-696"><span class="linenos">696</span></a> <span class="k">def</span> <span class="nf">alias_column_names</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="DerivedTable-697"><a href="#DerivedTable-697"><span class="linenos">697</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> +</span><span id="DerivedTable-698"><a href="#DerivedTable-698"><span class="linenos">698</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="p">:</span> +</span><span id="DerivedTable-699"><a href="#DerivedTable-699"><span class="linenos">699</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="DerivedTable-700"><a href="#DerivedTable-700"><span class="linenos">700</span></a> <span class="n">column_list</span> <span class="o">=</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">assert_is</span><span class="p">(</span><span class="n">TableAlias</span><span class="p">)</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> +</span><span id="DerivedTable-701"><a href="#DerivedTable-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">column_list</span><span class="p">]</span> +</span><span id="DerivedTable-702"><a href="#DerivedTable-702"><span class="linenos">702</span></a> +</span><span id="DerivedTable-703"><a href="#DerivedTable-703"><span class="linenos">703</span></a> <span class="nd">@property</span> +</span><span id="DerivedTable-704"><a href="#DerivedTable-704"><span class="linenos">704</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="DerivedTable-705"><a href="#DerivedTable-705"><span class="linenos">705</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">)</span> +</span><span id="DerivedTable-706"><a href="#DerivedTable-706"><span class="linenos">706</span></a> +</span><span id="DerivedTable-707"><a href="#DerivedTable-707"><span class="linenos">707</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="DerivedTable-708"><a href="#DerivedTable-708"><span class="linenos">708</span></a> <span class="k">return</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> +</span><span id="DerivedTable-709"><a href="#DerivedTable-709"><span class="linenos">709</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="DerivedTable-710"><a href="#DerivedTable-710"><span class="linenos">710</span></a> +</span><span id="DerivedTable-711"><a href="#DerivedTable-711"><span class="linenos">711</span></a> <span class="nd">@property</span> +</span><span id="DerivedTable-712"><a href="#DerivedTable-712"><span class="linenos">712</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="DerivedTable-713"><a href="#DerivedTable-713"><span class="linenos">713</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selects</span><span class="p">]</span> </span></pre></div> @@ -10026,66 +10197,66 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Unionable"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable-711"><a href="#Unionable-711"><span class="linenos">711</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Unionable-712"><a href="#Unionable-712"><span class="linenos">712</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Unionable-713"><a href="#Unionable-713"><span class="linenos">713</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Unionable-714"><a href="#Unionable-714"><span class="linenos">714</span></a><span class="sd"> Builds a UNION expression.</span> -</span><span id="Unionable-715"><a href="#Unionable-715"><span class="linenos">715</span></a> -</span><span id="Unionable-716"><a href="#Unionable-716"><span class="linenos">716</span></a><span class="sd"> Example:</span> -</span><span id="Unionable-717"><a href="#Unionable-717"><span class="linenos">717</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Unionable-718"><a href="#Unionable-718"><span class="linenos">718</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()</span> -</span><span id="Unionable-719"><a href="#Unionable-719"><span class="linenos">719</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable-716"><a href="#Unionable-716"><span class="linenos">716</span></a><span class="k">class</span> <span class="nc">Unionable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Unionable-717"><a href="#Unionable-717"><span class="linenos">717</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Unionable-718"><a href="#Unionable-718"><span class="linenos">718</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Unionable-719"><a href="#Unionable-719"><span class="linenos">719</span></a><span class="sd"> Builds a UNION expression.</span> </span><span id="Unionable-720"><a href="#Unionable-720"><span class="linenos">720</span></a> -</span><span id="Unionable-721"><a href="#Unionable-721"><span class="linenos">721</span></a><span class="sd"> Args:</span> -</span><span id="Unionable-722"><a href="#Unionable-722"><span class="linenos">722</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="Unionable-723"><a href="#Unionable-723"><span class="linenos">723</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Unionable-724"><a href="#Unionable-724"><span class="linenos">724</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="Unionable-725"><a href="#Unionable-725"><span class="linenos">725</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Unionable-726"><a href="#Unionable-726"><span class="linenos">726</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Unionable-727"><a href="#Unionable-727"><span class="linenos">727</span></a><span class="sd"> Returns:</span> -</span><span id="Unionable-728"><a href="#Unionable-728"><span class="linenos">728</span></a><span class="sd"> Union: the Union expression.</span> -</span><span id="Unionable-729"><a href="#Unionable-729"><span class="linenos">729</span></a><span class="sd"> """</span> -</span><span id="Unionable-730"><a href="#Unionable-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Unionable-731"><a href="#Unionable-731"><span class="linenos">731</span></a> -</span><span id="Unionable-732"><a href="#Unionable-732"><span class="linenos">732</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Unionable-733"><a href="#Unionable-733"><span class="linenos">733</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Unionable-734"><a href="#Unionable-734"><span class="linenos">734</span></a><span class="sd"> Builds an INTERSECT expression.</span> -</span><span id="Unionable-735"><a href="#Unionable-735"><span class="linenos">735</span></a> -</span><span id="Unionable-736"><a href="#Unionable-736"><span class="linenos">736</span></a><span class="sd"> Example:</span> -</span><span id="Unionable-737"><a href="#Unionable-737"><span class="linenos">737</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Unionable-738"><a href="#Unionable-738"><span class="linenos">738</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()</span> -</span><span id="Unionable-739"><a href="#Unionable-739"><span class="linenos">739</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="Unionable-721"><a href="#Unionable-721"><span class="linenos">721</span></a><span class="sd"> Example:</span> +</span><span id="Unionable-722"><a href="#Unionable-722"><span class="linenos">722</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Unionable-723"><a href="#Unionable-723"><span class="linenos">723</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()</span> +</span><span id="Unionable-724"><a href="#Unionable-724"><span class="linenos">724</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> +</span><span id="Unionable-725"><a href="#Unionable-725"><span class="linenos">725</span></a> +</span><span id="Unionable-726"><a href="#Unionable-726"><span class="linenos">726</span></a><span class="sd"> Args:</span> +</span><span id="Unionable-727"><a href="#Unionable-727"><span class="linenos">727</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="Unionable-728"><a href="#Unionable-728"><span class="linenos">728</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Unionable-729"><a href="#Unionable-729"><span class="linenos">729</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="Unionable-730"><a href="#Unionable-730"><span class="linenos">730</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Unionable-731"><a href="#Unionable-731"><span class="linenos">731</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Unionable-732"><a href="#Unionable-732"><span class="linenos">732</span></a><span class="sd"> Returns:</span> +</span><span id="Unionable-733"><a href="#Unionable-733"><span class="linenos">733</span></a><span class="sd"> Union: the Union expression.</span> +</span><span id="Unionable-734"><a href="#Unionable-734"><span class="linenos">734</span></a><span class="sd"> """</span> +</span><span id="Unionable-735"><a href="#Unionable-735"><span class="linenos">735</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Unionable-736"><a href="#Unionable-736"><span class="linenos">736</span></a> +</span><span id="Unionable-737"><a href="#Unionable-737"><span class="linenos">737</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Unionable-738"><a href="#Unionable-738"><span class="linenos">738</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Unionable-739"><a href="#Unionable-739"><span class="linenos">739</span></a><span class="sd"> Builds an INTERSECT expression.</span> </span><span id="Unionable-740"><a href="#Unionable-740"><span class="linenos">740</span></a> -</span><span id="Unionable-741"><a href="#Unionable-741"><span class="linenos">741</span></a><span class="sd"> Args:</span> -</span><span id="Unionable-742"><a href="#Unionable-742"><span class="linenos">742</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="Unionable-743"><a href="#Unionable-743"><span class="linenos">743</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Unionable-744"><a href="#Unionable-744"><span class="linenos">744</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="Unionable-745"><a href="#Unionable-745"><span class="linenos">745</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Unionable-746"><a href="#Unionable-746"><span class="linenos">746</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Unionable-747"><a href="#Unionable-747"><span class="linenos">747</span></a><span class="sd"> Returns:</span> -</span><span id="Unionable-748"><a href="#Unionable-748"><span class="linenos">748</span></a><span class="sd"> Intersect: the Intersect expression</span> -</span><span id="Unionable-749"><a href="#Unionable-749"><span class="linenos">749</span></a><span class="sd"> """</span> -</span><span id="Unionable-750"><a href="#Unionable-750"><span class="linenos">750</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Unionable-751"><a href="#Unionable-751"><span class="linenos">751</span></a> -</span><span id="Unionable-752"><a href="#Unionable-752"><span class="linenos">752</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Unionable-753"><a href="#Unionable-753"><span class="linenos">753</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Unionable-754"><a href="#Unionable-754"><span class="linenos">754</span></a><span class="sd"> Builds an EXCEPT expression.</span> -</span><span id="Unionable-755"><a href="#Unionable-755"><span class="linenos">755</span></a> -</span><span id="Unionable-756"><a href="#Unionable-756"><span class="linenos">756</span></a><span class="sd"> Example:</span> -</span><span id="Unionable-757"><a href="#Unionable-757"><span class="linenos">757</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Unionable-758"><a href="#Unionable-758"><span class="linenos">758</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()</span> -</span><span id="Unionable-759"><a href="#Unionable-759"><span class="linenos">759</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="Unionable-741"><a href="#Unionable-741"><span class="linenos">741</span></a><span class="sd"> Example:</span> +</span><span id="Unionable-742"><a href="#Unionable-742"><span class="linenos">742</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Unionable-743"><a href="#Unionable-743"><span class="linenos">743</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()</span> +</span><span id="Unionable-744"><a href="#Unionable-744"><span class="linenos">744</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="Unionable-745"><a href="#Unionable-745"><span class="linenos">745</span></a> +</span><span id="Unionable-746"><a href="#Unionable-746"><span class="linenos">746</span></a><span class="sd"> Args:</span> +</span><span id="Unionable-747"><a href="#Unionable-747"><span class="linenos">747</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="Unionable-748"><a href="#Unionable-748"><span class="linenos">748</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Unionable-749"><a href="#Unionable-749"><span class="linenos">749</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="Unionable-750"><a href="#Unionable-750"><span class="linenos">750</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Unionable-751"><a href="#Unionable-751"><span class="linenos">751</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Unionable-752"><a href="#Unionable-752"><span class="linenos">752</span></a><span class="sd"> Returns:</span> +</span><span id="Unionable-753"><a href="#Unionable-753"><span class="linenos">753</span></a><span class="sd"> Intersect: the Intersect expression</span> +</span><span id="Unionable-754"><a href="#Unionable-754"><span class="linenos">754</span></a><span class="sd"> """</span> +</span><span id="Unionable-755"><a href="#Unionable-755"><span class="linenos">755</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Unionable-756"><a href="#Unionable-756"><span class="linenos">756</span></a> +</span><span id="Unionable-757"><a href="#Unionable-757"><span class="linenos">757</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Unionable-758"><a href="#Unionable-758"><span class="linenos">758</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Unionable-759"><a href="#Unionable-759"><span class="linenos">759</span></a><span class="sd"> Builds an EXCEPT expression.</span> </span><span id="Unionable-760"><a href="#Unionable-760"><span class="linenos">760</span></a> -</span><span id="Unionable-761"><a href="#Unionable-761"><span class="linenos">761</span></a><span class="sd"> Args:</span> -</span><span id="Unionable-762"><a href="#Unionable-762"><span class="linenos">762</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="Unionable-763"><a href="#Unionable-763"><span class="linenos">763</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Unionable-764"><a href="#Unionable-764"><span class="linenos">764</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="Unionable-765"><a href="#Unionable-765"><span class="linenos">765</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Unionable-766"><a href="#Unionable-766"><span class="linenos">766</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Unionable-767"><a href="#Unionable-767"><span class="linenos">767</span></a><span class="sd"> Returns:</span> -</span><span id="Unionable-768"><a href="#Unionable-768"><span class="linenos">768</span></a><span class="sd"> Except: the Except expression</span> -</span><span id="Unionable-769"><a href="#Unionable-769"><span class="linenos">769</span></a><span class="sd"> """</span> -</span><span id="Unionable-770"><a href="#Unionable-770"><span class="linenos">770</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Unionable-761"><a href="#Unionable-761"><span class="linenos">761</span></a><span class="sd"> Example:</span> +</span><span id="Unionable-762"><a href="#Unionable-762"><span class="linenos">762</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Unionable-763"><a href="#Unionable-763"><span class="linenos">763</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()</span> +</span><span id="Unionable-764"><a href="#Unionable-764"><span class="linenos">764</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="Unionable-765"><a href="#Unionable-765"><span class="linenos">765</span></a> +</span><span id="Unionable-766"><a href="#Unionable-766"><span class="linenos">766</span></a><span class="sd"> Args:</span> +</span><span id="Unionable-767"><a href="#Unionable-767"><span class="linenos">767</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="Unionable-768"><a href="#Unionable-768"><span class="linenos">768</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Unionable-769"><a href="#Unionable-769"><span class="linenos">769</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="Unionable-770"><a href="#Unionable-770"><span class="linenos">770</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Unionable-771"><a href="#Unionable-771"><span class="linenos">771</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Unionable-772"><a href="#Unionable-772"><span class="linenos">772</span></a><span class="sd"> Returns:</span> +</span><span id="Unionable-773"><a href="#Unionable-773"><span class="linenos">773</span></a><span class="sd"> Except: the Except expression</span> +</span><span id="Unionable-774"><a href="#Unionable-774"><span class="linenos">774</span></a><span class="sd"> """</span> +</span><span id="Unionable-775"><a href="#Unionable-775"><span class="linenos">775</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -10102,25 +10273,25 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Unionable.union"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-712"><a href="#Unionable.union-712"><span class="linenos">712</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Unionable.union-713"><a href="#Unionable.union-713"><span class="linenos">713</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Unionable.union-714"><a href="#Unionable.union-714"><span class="linenos">714</span></a><span class="sd"> Builds a UNION expression.</span> -</span><span id="Unionable.union-715"><a href="#Unionable.union-715"><span class="linenos">715</span></a> -</span><span id="Unionable.union-716"><a href="#Unionable.union-716"><span class="linenos">716</span></a><span class="sd"> Example:</span> -</span><span id="Unionable.union-717"><a href="#Unionable.union-717"><span class="linenos">717</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Unionable.union-718"><a href="#Unionable.union-718"><span class="linenos">718</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()</span> -</span><span id="Unionable.union-719"><a href="#Unionable.union-719"><span class="linenos">719</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.union-717"><a href="#Unionable.union-717"><span class="linenos">717</span></a> <span class="k">def</span> <span class="nf">union</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Unionable.union-718"><a href="#Unionable.union-718"><span class="linenos">718</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Unionable.union-719"><a href="#Unionable.union-719"><span class="linenos">719</span></a><span class="sd"> Builds a UNION expression.</span> </span><span id="Unionable.union-720"><a href="#Unionable.union-720"><span class="linenos">720</span></a> -</span><span id="Unionable.union-721"><a href="#Unionable.union-721"><span class="linenos">721</span></a><span class="sd"> Args:</span> -</span><span id="Unionable.union-722"><a href="#Unionable.union-722"><span class="linenos">722</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="Unionable.union-723"><a href="#Unionable.union-723"><span class="linenos">723</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Unionable.union-724"><a href="#Unionable.union-724"><span class="linenos">724</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="Unionable.union-725"><a href="#Unionable.union-725"><span class="linenos">725</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Unionable.union-726"><a href="#Unionable.union-726"><span class="linenos">726</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Unionable.union-727"><a href="#Unionable.union-727"><span class="linenos">727</span></a><span class="sd"> Returns:</span> -</span><span id="Unionable.union-728"><a href="#Unionable.union-728"><span class="linenos">728</span></a><span class="sd"> Union: the Union expression.</span> -</span><span id="Unionable.union-729"><a href="#Unionable.union-729"><span class="linenos">729</span></a><span class="sd"> """</span> -</span><span id="Unionable.union-730"><a href="#Unionable.union-730"><span class="linenos">730</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Unionable.union-721"><a href="#Unionable.union-721"><span class="linenos">721</span></a><span class="sd"> Example:</span> +</span><span id="Unionable.union-722"><a href="#Unionable.union-722"><span class="linenos">722</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Unionable.union-723"><a href="#Unionable.union-723"><span class="linenos">723</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").union("SELECT * FROM bla").sql()</span> +</span><span id="Unionable.union-724"><a href="#Unionable.union-724"><span class="linenos">724</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> +</span><span id="Unionable.union-725"><a href="#Unionable.union-725"><span class="linenos">725</span></a> +</span><span id="Unionable.union-726"><a href="#Unionable.union-726"><span class="linenos">726</span></a><span class="sd"> Args:</span> +</span><span id="Unionable.union-727"><a href="#Unionable.union-727"><span class="linenos">727</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="Unionable.union-728"><a href="#Unionable.union-728"><span class="linenos">728</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Unionable.union-729"><a href="#Unionable.union-729"><span class="linenos">729</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="Unionable.union-730"><a href="#Unionable.union-730"><span class="linenos">730</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Unionable.union-731"><a href="#Unionable.union-731"><span class="linenos">731</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Unionable.union-732"><a href="#Unionable.union-732"><span class="linenos">732</span></a><span class="sd"> Returns:</span> +</span><span id="Unionable.union-733"><a href="#Unionable.union-733"><span class="linenos">733</span></a><span class="sd"> Union: the Union expression.</span> +</span><span id="Unionable.union-734"><a href="#Unionable.union-734"><span class="linenos">734</span></a><span class="sd"> """</span> +</span><span id="Unionable.union-735"><a href="#Unionable.union-735"><span class="linenos">735</span></a> <span class="k">return</span> <span class="n">union</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -10167,25 +10338,25 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Unionable.intersect"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-732"><a href="#Unionable.intersect-732"><span class="linenos">732</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Unionable.intersect-733"><a href="#Unionable.intersect-733"><span class="linenos">733</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Unionable.intersect-734"><a href="#Unionable.intersect-734"><span class="linenos">734</span></a><span class="sd"> Builds an INTERSECT expression.</span> -</span><span id="Unionable.intersect-735"><a href="#Unionable.intersect-735"><span class="linenos">735</span></a> -</span><span id="Unionable.intersect-736"><a href="#Unionable.intersect-736"><span class="linenos">736</span></a><span class="sd"> Example:</span> -</span><span id="Unionable.intersect-737"><a href="#Unionable.intersect-737"><span class="linenos">737</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Unionable.intersect-738"><a href="#Unionable.intersect-738"><span class="linenos">738</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()</span> -</span><span id="Unionable.intersect-739"><a href="#Unionable.intersect-739"><span class="linenos">739</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.intersect-737"><a href="#Unionable.intersect-737"><span class="linenos">737</span></a> <span class="k">def</span> <span class="nf">intersect</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Unionable.intersect-738"><a href="#Unionable.intersect-738"><span class="linenos">738</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Unionable.intersect-739"><a href="#Unionable.intersect-739"><span class="linenos">739</span></a><span class="sd"> Builds an INTERSECT expression.</span> </span><span id="Unionable.intersect-740"><a href="#Unionable.intersect-740"><span class="linenos">740</span></a> -</span><span id="Unionable.intersect-741"><a href="#Unionable.intersect-741"><span class="linenos">741</span></a><span class="sd"> Args:</span> -</span><span id="Unionable.intersect-742"><a href="#Unionable.intersect-742"><span class="linenos">742</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="Unionable.intersect-743"><a href="#Unionable.intersect-743"><span class="linenos">743</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Unionable.intersect-744"><a href="#Unionable.intersect-744"><span class="linenos">744</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="Unionable.intersect-745"><a href="#Unionable.intersect-745"><span class="linenos">745</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Unionable.intersect-746"><a href="#Unionable.intersect-746"><span class="linenos">746</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Unionable.intersect-747"><a href="#Unionable.intersect-747"><span class="linenos">747</span></a><span class="sd"> Returns:</span> -</span><span id="Unionable.intersect-748"><a href="#Unionable.intersect-748"><span class="linenos">748</span></a><span class="sd"> Intersect: the Intersect expression</span> -</span><span id="Unionable.intersect-749"><a href="#Unionable.intersect-749"><span class="linenos">749</span></a><span class="sd"> """</span> -</span><span id="Unionable.intersect-750"><a href="#Unionable.intersect-750"><span class="linenos">750</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Unionable.intersect-741"><a href="#Unionable.intersect-741"><span class="linenos">741</span></a><span class="sd"> Example:</span> +</span><span id="Unionable.intersect-742"><a href="#Unionable.intersect-742"><span class="linenos">742</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Unionable.intersect-743"><a href="#Unionable.intersect-743"><span class="linenos">743</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").intersect("SELECT * FROM bla").sql()</span> +</span><span id="Unionable.intersect-744"><a href="#Unionable.intersect-744"><span class="linenos">744</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="Unionable.intersect-745"><a href="#Unionable.intersect-745"><span class="linenos">745</span></a> +</span><span id="Unionable.intersect-746"><a href="#Unionable.intersect-746"><span class="linenos">746</span></a><span class="sd"> Args:</span> +</span><span id="Unionable.intersect-747"><a href="#Unionable.intersect-747"><span class="linenos">747</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="Unionable.intersect-748"><a href="#Unionable.intersect-748"><span class="linenos">748</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Unionable.intersect-749"><a href="#Unionable.intersect-749"><span class="linenos">749</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="Unionable.intersect-750"><a href="#Unionable.intersect-750"><span class="linenos">750</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Unionable.intersect-751"><a href="#Unionable.intersect-751"><span class="linenos">751</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Unionable.intersect-752"><a href="#Unionable.intersect-752"><span class="linenos">752</span></a><span class="sd"> Returns:</span> +</span><span id="Unionable.intersect-753"><a href="#Unionable.intersect-753"><span class="linenos">753</span></a><span class="sd"> Intersect: the Intersect expression</span> +</span><span id="Unionable.intersect-754"><a href="#Unionable.intersect-754"><span class="linenos">754</span></a><span class="sd"> """</span> +</span><span id="Unionable.intersect-755"><a href="#Unionable.intersect-755"><span class="linenos">755</span></a> <span class="k">return</span> <span class="n">intersect</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -10232,25 +10403,25 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Unionable.except_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.except_-752"><a href="#Unionable.except_-752"><span class="linenos">752</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Unionable.except_-753"><a href="#Unionable.except_-753"><span class="linenos">753</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Unionable.except_-754"><a href="#Unionable.except_-754"><span class="linenos">754</span></a><span class="sd"> Builds an EXCEPT expression.</span> -</span><span id="Unionable.except_-755"><a href="#Unionable.except_-755"><span class="linenos">755</span></a> -</span><span id="Unionable.except_-756"><a href="#Unionable.except_-756"><span class="linenos">756</span></a><span class="sd"> Example:</span> -</span><span id="Unionable.except_-757"><a href="#Unionable.except_-757"><span class="linenos">757</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Unionable.except_-758"><a href="#Unionable.except_-758"><span class="linenos">758</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()</span> -</span><span id="Unionable.except_-759"><a href="#Unionable.except_-759"><span class="linenos">759</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unionable.except_-757"><a href="#Unionable.except_-757"><span class="linenos">757</span></a> <span class="k">def</span> <span class="nf">except_</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">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Unionable.except_-758"><a href="#Unionable.except_-758"><span class="linenos">758</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Unionable.except_-759"><a href="#Unionable.except_-759"><span class="linenos">759</span></a><span class="sd"> Builds an EXCEPT expression.</span> </span><span id="Unionable.except_-760"><a href="#Unionable.except_-760"><span class="linenos">760</span></a> -</span><span id="Unionable.except_-761"><a href="#Unionable.except_-761"><span class="linenos">761</span></a><span class="sd"> Args:</span> -</span><span id="Unionable.except_-762"><a href="#Unionable.except_-762"><span class="linenos">762</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> -</span><span id="Unionable.except_-763"><a href="#Unionable.except_-763"><span class="linenos">763</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Unionable.except_-764"><a href="#Unionable.except_-764"><span class="linenos">764</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="Unionable.except_-765"><a href="#Unionable.except_-765"><span class="linenos">765</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Unionable.except_-766"><a href="#Unionable.except_-766"><span class="linenos">766</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Unionable.except_-767"><a href="#Unionable.except_-767"><span class="linenos">767</span></a><span class="sd"> Returns:</span> -</span><span id="Unionable.except_-768"><a href="#Unionable.except_-768"><span class="linenos">768</span></a><span class="sd"> Except: the Except expression</span> -</span><span id="Unionable.except_-769"><a href="#Unionable.except_-769"><span class="linenos">769</span></a><span class="sd"> """</span> -</span><span id="Unionable.except_-770"><a href="#Unionable.except_-770"><span class="linenos">770</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Unionable.except_-761"><a href="#Unionable.except_-761"><span class="linenos">761</span></a><span class="sd"> Example:</span> +</span><span id="Unionable.except_-762"><a href="#Unionable.except_-762"><span class="linenos">762</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Unionable.except_-763"><a href="#Unionable.except_-763"><span class="linenos">763</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT * FROM foo").except_("SELECT * FROM bla").sql()</span> +</span><span id="Unionable.except_-764"><a href="#Unionable.except_-764"><span class="linenos">764</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="Unionable.except_-765"><a href="#Unionable.except_-765"><span class="linenos">765</span></a> +</span><span id="Unionable.except_-766"><a href="#Unionable.except_-766"><span class="linenos">766</span></a><span class="sd"> Args:</span> +</span><span id="Unionable.except_-767"><a href="#Unionable.except_-767"><span class="linenos">767</span></a><span class="sd"> expression (str | Expression): the SQL code string.</span> +</span><span id="Unionable.except_-768"><a href="#Unionable.except_-768"><span class="linenos">768</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Unionable.except_-769"><a href="#Unionable.except_-769"><span class="linenos">769</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="Unionable.except_-770"><a href="#Unionable.except_-770"><span class="linenos">770</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Unionable.except_-771"><a href="#Unionable.except_-771"><span class="linenos">771</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Unionable.except_-772"><a href="#Unionable.except_-772"><span class="linenos">772</span></a><span class="sd"> Returns:</span> +</span><span id="Unionable.except_-773"><a href="#Unionable.except_-773"><span class="linenos">773</span></a><span class="sd"> Except: the Except expression</span> +</span><span id="Unionable.except_-774"><a href="#Unionable.except_-774"><span class="linenos">774</span></a><span class="sd"> """</span> +</span><span id="Unionable.except_-775"><a href="#Unionable.except_-775"><span class="linenos">775</span></a> <span class="k">return</span> <span class="n">except_</span><span class="p">(</span><span class="n">left</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -10341,8 +10512,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#UDTF"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UDTF-773"><a href="#UDTF-773"><span class="linenos">773</span></a><span class="k">class</span> <span class="nc">UDTF</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> -</span><span id="UDTF-774"><a href="#UDTF-774"><span class="linenos">774</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UDTF-778"><a href="#UDTF-778"><span class="linenos">778</span></a><span class="k">class</span> <span class="nc">UDTF</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> +</span><span id="UDTF-779"><a href="#UDTF-779"><span class="linenos">779</span></a> <span class="k">pass</span> </span></pre></div> @@ -10409,14 +10580,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Cache"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Cache-777"><a href="#Cache-777"><span class="linenos">777</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Cache-778"><a href="#Cache-778"><span class="linenos">778</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Cache-779"><a href="#Cache-779"><span class="linenos">779</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Cache-780"><a href="#Cache-780"><span class="linenos">780</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Cache-781"><a href="#Cache-781"><span class="linenos">781</span></a> <span class="s2">"lazy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Cache-782"><a href="#Cache-782"><span class="linenos">782</span></a> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Cache-783"><a href="#Cache-783"><span class="linenos">783</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Cache-784"><a href="#Cache-784"><span class="linenos">784</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Cache-782"><a href="#Cache-782"><span class="linenos">782</span></a><span class="k">class</span> <span class="nc">Cache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Cache-783"><a href="#Cache-783"><span class="linenos">783</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Cache-784"><a href="#Cache-784"><span class="linenos">784</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Cache-785"><a href="#Cache-785"><span class="linenos">785</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Cache-786"><a href="#Cache-786"><span class="linenos">786</span></a> <span class="s2">"lazy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Cache-787"><a href="#Cache-787"><span class="linenos">787</span></a> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Cache-788"><a href="#Cache-788"><span class="linenos">788</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Cache-789"><a href="#Cache-789"><span class="linenos">789</span></a> <span class="p">}</span> </span></pre></div> @@ -10477,8 +10648,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Uncache"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Uncache-787"><a href="#Uncache-787"><span class="linenos">787</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Uncache-788"><a href="#Uncache-788"><span class="linenos">788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Uncache-792"><a href="#Uncache-792"><span class="linenos">792</span></a><span class="k">class</span> <span class="nc">Uncache</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Uncache-793"><a href="#Uncache-793"><span class="linenos">793</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -10539,21 +10710,21 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Create"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Create-791"><a href="#Create-791"><span class="linenos">791</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Create-792"><a href="#Create-792"><span class="linenos">792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Create-793"><a href="#Create-793"><span class="linenos">793</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-794"><a href="#Create-794"><span class="linenos">794</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Create-795"><a href="#Create-795"><span class="linenos">795</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Create-796"><a href="#Create-796"><span class="linenos">796</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-797"><a href="#Create-797"><span class="linenos">797</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-798"><a href="#Create-798"><span class="linenos">798</span></a> <span class="s2">"properties"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-799"><a href="#Create-799"><span class="linenos">799</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-800"><a href="#Create-800"><span class="linenos">800</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-801"><a href="#Create-801"><span class="linenos">801</span></a> <span class="s2">"volatile"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-802"><a href="#Create-802"><span class="linenos">802</span></a> <span class="s2">"indexes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-803"><a href="#Create-803"><span class="linenos">803</span></a> <span class="s2">"no_schema_binding"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-804"><a href="#Create-804"><span class="linenos">804</span></a> <span class="s2">"begin"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Create-805"><a href="#Create-805"><span class="linenos">805</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Create-796"><a href="#Create-796"><span class="linenos">796</span></a><span class="k">class</span> <span class="nc">Create</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Create-797"><a href="#Create-797"><span class="linenos">797</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Create-798"><a href="#Create-798"><span class="linenos">798</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-799"><a href="#Create-799"><span class="linenos">799</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Create-800"><a href="#Create-800"><span class="linenos">800</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Create-801"><a href="#Create-801"><span class="linenos">801</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-802"><a href="#Create-802"><span class="linenos">802</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-803"><a href="#Create-803"><span class="linenos">803</span></a> <span class="s2">"properties"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-804"><a href="#Create-804"><span class="linenos">804</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-805"><a href="#Create-805"><span class="linenos">805</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-806"><a href="#Create-806"><span class="linenos">806</span></a> <span class="s2">"volatile"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-807"><a href="#Create-807"><span class="linenos">807</span></a> <span class="s2">"indexes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-808"><a href="#Create-808"><span class="linenos">808</span></a> <span class="s2">"no_schema_binding"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-809"><a href="#Create-809"><span class="linenos">809</span></a> <span class="s2">"begin"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Create-810"><a href="#Create-810"><span class="linenos">810</span></a> <span class="p">}</span> </span></pre></div> @@ -10614,8 +10785,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Describe"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Describe-808"><a href="#Describe-808"><span class="linenos">808</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Describe-809"><a href="#Describe-809"><span class="linenos">809</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Describe-813"><a href="#Describe-813"><span class="linenos">813</span></a><span class="k">class</span> <span class="nc">Describe</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Describe-814"><a href="#Describe-814"><span class="linenos">814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -10676,8 +10847,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Set"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Set-812"><a href="#Set-812"><span class="linenos">812</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Set-813"><a href="#Set-813"><span class="linenos">813</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Set-817"><a href="#Set-817"><span class="linenos">817</span></a><span class="k">class</span> <span class="nc">Set</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Set-818"><a href="#Set-818"><span class="linenos">818</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -10738,14 +10909,14 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#SetItem"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-816"><a href="#SetItem-816"><span class="linenos">816</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="SetItem-817"><a href="#SetItem-817"><span class="linenos">817</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SetItem-818"><a href="#SetItem-818"><span class="linenos">818</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="SetItem-819"><a href="#SetItem-819"><span class="linenos">819</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="SetItem-820"><a href="#SetItem-820"><span class="linenos">820</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="SetItem-821"><a href="#SetItem-821"><span class="linenos">821</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span> -</span><span id="SetItem-822"><a href="#SetItem-822"><span class="linenos">822</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="SetItem-823"><a href="#SetItem-823"><span class="linenos">823</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SetItem-821"><a href="#SetItem-821"><span class="linenos">821</span></a><span class="k">class</span> <span class="nc">SetItem</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="SetItem-822"><a href="#SetItem-822"><span class="linenos">822</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SetItem-823"><a href="#SetItem-823"><span class="linenos">823</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="SetItem-824"><a href="#SetItem-824"><span class="linenos">824</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="SetItem-825"><a href="#SetItem-825"><span class="linenos">825</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="SetItem-826"><a href="#SetItem-826"><span class="linenos">826</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># MySQL SET NAMES statement</span> +</span><span id="SetItem-827"><a href="#SetItem-827"><span class="linenos">827</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="SetItem-828"><a href="#SetItem-828"><span class="linenos">828</span></a> <span class="p">}</span> </span></pre></div> @@ -10806,24 +10977,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Show"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Show-826"><a href="#Show-826"><span class="linenos">826</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Show-827"><a href="#Show-827"><span class="linenos">827</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Show-828"><a href="#Show-828"><span class="linenos">828</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Show-829"><a href="#Show-829"><span class="linenos">829</span></a> <span class="s2">"target"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-830"><a href="#Show-830"><span class="linenos">830</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-831"><a href="#Show-831"><span class="linenos">831</span></a> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-832"><a href="#Show-832"><span class="linenos">832</span></a> <span class="s2">"like"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-833"><a href="#Show-833"><span class="linenos">833</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-834"><a href="#Show-834"><span class="linenos">834</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-835"><a href="#Show-835"><span class="linenos">835</span></a> <span class="s2">"full"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-836"><a href="#Show-836"><span class="linenos">836</span></a> <span class="s2">"mutex"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-837"><a href="#Show-837"><span class="linenos">837</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-838"><a href="#Show-838"><span class="linenos">838</span></a> <span class="s2">"channel"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-839"><a href="#Show-839"><span class="linenos">839</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-840"><a href="#Show-840"><span class="linenos">840</span></a> <span class="s2">"log"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-841"><a href="#Show-841"><span class="linenos">841</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-842"><a href="#Show-842"><span class="linenos">842</span></a> <span class="s2">"types"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Show-843"><a href="#Show-843"><span class="linenos">843</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Show-831"><a href="#Show-831"><span class="linenos">831</span></a><span class="k">class</span> <span class="nc">Show</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Show-832"><a href="#Show-832"><span class="linenos">832</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Show-833"><a href="#Show-833"><span class="linenos">833</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Show-834"><a href="#Show-834"><span class="linenos">834</span></a> <span class="s2">"target"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-835"><a href="#Show-835"><span class="linenos">835</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-836"><a href="#Show-836"><span class="linenos">836</span></a> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-837"><a href="#Show-837"><span class="linenos">837</span></a> <span class="s2">"like"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-838"><a href="#Show-838"><span class="linenos">838</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-839"><a href="#Show-839"><span class="linenos">839</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-840"><a href="#Show-840"><span class="linenos">840</span></a> <span class="s2">"full"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-841"><a href="#Show-841"><span class="linenos">841</span></a> <span class="s2">"mutex"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-842"><a href="#Show-842"><span class="linenos">842</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-843"><a href="#Show-843"><span class="linenos">843</span></a> <span class="s2">"channel"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-844"><a href="#Show-844"><span class="linenos">844</span></a> <span class="s2">"global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-845"><a href="#Show-845"><span class="linenos">845</span></a> <span class="s2">"log"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-846"><a href="#Show-846"><span class="linenos">846</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-847"><a href="#Show-847"><span class="linenos">847</span></a> <span class="s2">"types"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Show-848"><a href="#Show-848"><span class="linenos">848</span></a> <span class="p">}</span> </span></pre></div> @@ -10884,8 +11055,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#UserDefinedFunction"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UserDefinedFunction-846"><a href="#UserDefinedFunction-846"><span class="linenos">846</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="UserDefinedFunction-847"><a href="#UserDefinedFunction-847"><span class="linenos">847</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UserDefinedFunction-851"><a href="#UserDefinedFunction-851"><span class="linenos">851</span></a><span class="k">class</span> <span class="nc">UserDefinedFunction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="UserDefinedFunction-852"><a href="#UserDefinedFunction-852"><span class="linenos">852</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -10946,8 +11117,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CharacterSet"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSet-850"><a href="#CharacterSet-850"><span class="linenos">850</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="CharacterSet-851"><a href="#CharacterSet-851"><span class="linenos">851</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSet-855"><a href="#CharacterSet-855"><span class="linenos">855</span></a><span class="k">class</span> <span class="nc">CharacterSet</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="CharacterSet-856"><a href="#CharacterSet-856"><span class="linenos">856</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -11008,12 +11179,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#With"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="With-854"><a href="#With-854"><span class="linenos">854</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="With-855"><a href="#With-855"><span class="linenos">855</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"recursive"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="With-856"><a href="#With-856"><span class="linenos">856</span></a> -</span><span id="With-857"><a href="#With-857"><span class="linenos">857</span></a> <span class="nd">@property</span> -</span><span id="With-858"><a href="#With-858"><span class="linenos">858</span></a> <span class="k">def</span> <span class="nf">recursive</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="With-859"><a href="#With-859"><span class="linenos">859</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="With-859"><a href="#With-859"><span class="linenos">859</span></a><span class="k">class</span> <span class="nc">With</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="With-860"><a href="#With-860"><span class="linenos">860</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"recursive"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="With-861"><a href="#With-861"><span class="linenos">861</span></a> +</span><span id="With-862"><a href="#With-862"><span class="linenos">862</span></a> <span class="nd">@property</span> +</span><span id="With-863"><a href="#With-863"><span class="linenos">863</span></a> <span class="k">def</span> <span class="nf">recursive</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="With-864"><a href="#With-864"><span class="linenos">864</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">))</span> </span></pre></div> @@ -11074,8 +11245,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#WithinGroup"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="WithinGroup-862"><a href="#WithinGroup-862"><span class="linenos">862</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="WithinGroup-863"><a href="#WithinGroup-863"><span class="linenos">863</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="WithinGroup-867"><a href="#WithinGroup-867"><span class="linenos">867</span></a><span class="k">class</span> <span class="nc">WithinGroup</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="WithinGroup-868"><a href="#WithinGroup-868"><span class="linenos">868</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -11136,8 +11307,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CTE"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CTE-866"><a href="#CTE-866"><span class="linenos">866</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span> -</span><span id="CTE-867"><a href="#CTE-867"><span class="linenos">867</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CTE-871"><a href="#CTE-871"><span class="linenos">871</span></a><span class="k">class</span> <span class="nc">CTE</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">):</span> +</span><span id="CTE-872"><a href="#CTE-872"><span class="linenos">872</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -11198,12 +11369,12 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#TableAlias"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TableAlias-870"><a href="#TableAlias-870"><span class="linenos">870</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="TableAlias-871"><a href="#TableAlias-871"><span class="linenos">871</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="TableAlias-872"><a href="#TableAlias-872"><span class="linenos">872</span></a> -</span><span id="TableAlias-873"><a href="#TableAlias-873"><span class="linenos">873</span></a> <span class="nd">@property</span> -</span><span id="TableAlias-874"><a href="#TableAlias-874"><span class="linenos">874</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="TableAlias-875"><a href="#TableAlias-875"><span class="linenos">875</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TableAlias-875"><a href="#TableAlias-875"><span class="linenos">875</span></a><span class="k">class</span> <span class="nc">TableAlias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="TableAlias-876"><a href="#TableAlias-876"><span class="linenos">876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="TableAlias-877"><a href="#TableAlias-877"><span class="linenos">877</span></a> +</span><span id="TableAlias-878"><a href="#TableAlias-878"><span class="linenos">878</span></a> <span class="nd">@property</span> +</span><span id="TableAlias-879"><a href="#TableAlias-879"><span class="linenos">879</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="TableAlias-880"><a href="#TableAlias-880"><span class="linenos">880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]</span> </span></pre></div> @@ -11264,8 +11435,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#BitString"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitString-878"><a href="#BitString-878"><span class="linenos">878</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="BitString-879"><a href="#BitString-879"><span class="linenos">879</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitString-883"><a href="#BitString-883"><span class="linenos">883</span></a><span class="k">class</span> <span class="nc">BitString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="BitString-884"><a href="#BitString-884"><span class="linenos">884</span></a> <span class="k">pass</span> </span></pre></div> @@ -11332,8 +11503,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#HexString"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="HexString-882"><a href="#HexString-882"><span class="linenos">882</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="HexString-883"><a href="#HexString-883"><span class="linenos">883</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="HexString-887"><a href="#HexString-887"><span class="linenos">887</span></a><span class="k">class</span> <span class="nc">HexString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="HexString-888"><a href="#HexString-888"><span class="linenos">888</span></a> <span class="k">pass</span> </span></pre></div> @@ -11400,8 +11571,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#ByteString"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-886"><a href="#ByteString-886"><span class="linenos">886</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="ByteString-887"><a href="#ByteString-887"><span class="linenos">887</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ByteString-891"><a href="#ByteString-891"><span class="linenos">891</span></a><span class="k">class</span> <span class="nc">ByteString</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="ByteString-892"><a href="#ByteString-892"><span class="linenos">892</span></a> <span class="k">pass</span> </span></pre></div> @@ -11468,24 +11639,24 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Column"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Column-890"><a href="#Column-890"><span class="linenos">890</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Column-891"><a href="#Column-891"><span class="linenos">891</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"join_mark"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Column-892"><a href="#Column-892"><span class="linenos">892</span></a> -</span><span id="Column-893"><a href="#Column-893"><span class="linenos">893</span></a> <span class="nd">@property</span> -</span><span id="Column-894"><a href="#Column-894"><span class="linenos">894</span></a> <span class="k">def</span> <span class="nf">table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Column-895"><a href="#Column-895"><span class="linenos">895</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> -</span><span id="Column-896"><a href="#Column-896"><span class="linenos">896</span></a> -</span><span id="Column-897"><a href="#Column-897"><span class="linenos">897</span></a> <span class="nd">@property</span> -</span><span id="Column-898"><a href="#Column-898"><span class="linenos">898</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Column-899"><a href="#Column-899"><span class="linenos">899</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> -</span><span id="Column-900"><a href="#Column-900"><span class="linenos">900</span></a> -</span><span id="Column-901"><a href="#Column-901"><span class="linenos">901</span></a> <span class="nd">@property</span> -</span><span id="Column-902"><a href="#Column-902"><span class="linenos">902</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Column-903"><a href="#Column-903"><span class="linenos">903</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> -</span><span id="Column-904"><a href="#Column-904"><span class="linenos">904</span></a> -</span><span id="Column-905"><a href="#Column-905"><span class="linenos">905</span></a> <span class="nd">@property</span> -</span><span id="Column-906"><a href="#Column-906"><span class="linenos">906</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Column-907"><a href="#Column-907"><span class="linenos">907</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Column-895"><a href="#Column-895"><span class="linenos">895</span></a><span class="k">class</span> <span class="nc">Column</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Column-896"><a href="#Column-896"><span class="linenos">896</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"join_mark"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Column-897"><a href="#Column-897"><span class="linenos">897</span></a> +</span><span id="Column-898"><a href="#Column-898"><span class="linenos">898</span></a> <span class="nd">@property</span> +</span><span id="Column-899"><a href="#Column-899"><span class="linenos">899</span></a> <span class="k">def</span> <span class="nf">table</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Column-900"><a href="#Column-900"><span class="linenos">900</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"table"</span><span class="p">)</span> +</span><span id="Column-901"><a href="#Column-901"><span class="linenos">901</span></a> +</span><span id="Column-902"><a href="#Column-902"><span class="linenos">902</span></a> <span class="nd">@property</span> +</span><span id="Column-903"><a href="#Column-903"><span class="linenos">903</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Column-904"><a href="#Column-904"><span class="linenos">904</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> +</span><span id="Column-905"><a href="#Column-905"><span class="linenos">905</span></a> +</span><span id="Column-906"><a href="#Column-906"><span class="linenos">906</span></a> <span class="nd">@property</span> +</span><span id="Column-907"><a href="#Column-907"><span class="linenos">907</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Column-908"><a href="#Column-908"><span class="linenos">908</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> +</span><span id="Column-909"><a href="#Column-909"><span class="linenos">909</span></a> +</span><span id="Column-910"><a href="#Column-910"><span class="linenos">910</span></a> <span class="nd">@property</span> +</span><span id="Column-911"><a href="#Column-911"><span class="linenos">911</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Column-912"><a href="#Column-912"><span class="linenos">912</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> </span></pre></div> @@ -11581,13 +11752,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#ColumnDef"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef-910"><a href="#ColumnDef-910"><span class="linenos">910</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="ColumnDef-911"><a href="#ColumnDef-911"><span class="linenos">911</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="ColumnDef-912"><a href="#ColumnDef-912"><span class="linenos">912</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="ColumnDef-913"><a href="#ColumnDef-913"><span class="linenos">913</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="ColumnDef-914"><a href="#ColumnDef-914"><span class="linenos">914</span></a> <span class="s2">"constraints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="ColumnDef-915"><a href="#ColumnDef-915"><span class="linenos">915</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="ColumnDef-916"><a href="#ColumnDef-916"><span class="linenos">916</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnDef-915"><a href="#ColumnDef-915"><span class="linenos">915</span></a><span class="k">class</span> <span class="nc">ColumnDef</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="ColumnDef-916"><a href="#ColumnDef-916"><span class="linenos">916</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="ColumnDef-917"><a href="#ColumnDef-917"><span class="linenos">917</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="ColumnDef-918"><a href="#ColumnDef-918"><span class="linenos">918</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="ColumnDef-919"><a href="#ColumnDef-919"><span class="linenos">919</span></a> <span class="s2">"constraints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="ColumnDef-920"><a href="#ColumnDef-920"><span class="linenos">920</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="ColumnDef-921"><a href="#ColumnDef-921"><span class="linenos">921</span></a> <span class="p">}</span> </span></pre></div> @@ -11648,15 +11819,15 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#AlterColumn"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-919"><a href="#AlterColumn-919"><span class="linenos">919</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="AlterColumn-920"><a href="#AlterColumn-920"><span class="linenos">920</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="AlterColumn-921"><a href="#AlterColumn-921"><span class="linenos">921</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="AlterColumn-922"><a href="#AlterColumn-922"><span class="linenos">922</span></a> <span class="s2">"dtype"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="AlterColumn-923"><a href="#AlterColumn-923"><span class="linenos">923</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="AlterColumn-924"><a href="#AlterColumn-924"><span class="linenos">924</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="AlterColumn-925"><a href="#AlterColumn-925"><span class="linenos">925</span></a> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="AlterColumn-926"><a href="#AlterColumn-926"><span class="linenos">926</span></a> <span class="s2">"drop"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="AlterColumn-927"><a href="#AlterColumn-927"><span class="linenos">927</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AlterColumn-924"><a href="#AlterColumn-924"><span class="linenos">924</span></a><span class="k">class</span> <span class="nc">AlterColumn</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="AlterColumn-925"><a href="#AlterColumn-925"><span class="linenos">925</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="AlterColumn-926"><a href="#AlterColumn-926"><span class="linenos">926</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="AlterColumn-927"><a href="#AlterColumn-927"><span class="linenos">927</span></a> <span class="s2">"dtype"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="AlterColumn-928"><a href="#AlterColumn-928"><span class="linenos">928</span></a> <span class="s2">"collate"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="AlterColumn-929"><a href="#AlterColumn-929"><span class="linenos">929</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="AlterColumn-930"><a href="#AlterColumn-930"><span class="linenos">930</span></a> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="AlterColumn-931"><a href="#AlterColumn-931"><span class="linenos">931</span></a> <span class="s2">"drop"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="AlterColumn-932"><a href="#AlterColumn-932"><span class="linenos">932</span></a> <span class="p">}</span> </span></pre></div> @@ -11717,8 +11888,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#RenameTable"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-930"><a href="#RenameTable-930"><span class="linenos">930</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="RenameTable-931"><a href="#RenameTable-931"><span class="linenos">931</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RenameTable-935"><a href="#RenameTable-935"><span class="linenos">935</span></a><span class="k">class</span> <span class="nc">RenameTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="RenameTable-936"><a href="#RenameTable-936"><span class="linenos">936</span></a> <span class="k">pass</span> </span></pre></div> @@ -11779,8 +11950,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#SetTag"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SetTag-934"><a href="#SetTag-934"><span class="linenos">934</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="SetTag-935"><a href="#SetTag-935"><span class="linenos">935</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SetTag-939"><a href="#SetTag-939"><span class="linenos">939</span></a><span class="k">class</span> <span class="nc">SetTag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="SetTag-940"><a href="#SetTag-940"><span class="linenos">940</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -11841,8 +12012,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Comment"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Comment-938"><a href="#Comment-938"><span class="linenos">938</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Comment-939"><a href="#Comment-939"><span class="linenos">939</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Comment-943"><a href="#Comment-943"><span class="linenos">943</span></a><span class="k">class</span> <span class="nc">Comment</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Comment-944"><a href="#Comment-944"><span class="linenos">944</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -11903,8 +12074,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#ColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-942"><a href="#ColumnConstraint-942"><span class="linenos">942</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="ColumnConstraint-943"><a href="#ColumnConstraint-943"><span class="linenos">943</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraint-947"><a href="#ColumnConstraint-947"><span class="linenos">947</span></a><span class="k">class</span> <span class="nc">ColumnConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="ColumnConstraint-948"><a href="#ColumnConstraint-948"><span class="linenos">948</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -11965,8 +12136,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#ColumnConstraintKind"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-946"><a href="#ColumnConstraintKind-946"><span class="linenos">946</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="ColumnConstraintKind-947"><a href="#ColumnConstraintKind-947"><span class="linenos">947</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ColumnConstraintKind-951"><a href="#ColumnConstraintKind-951"><span class="linenos">951</span></a><span class="k">class</span> <span class="nc">ColumnConstraintKind</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="ColumnConstraintKind-952"><a href="#ColumnConstraintKind-952"><span class="linenos">952</span></a> <span class="k">pass</span> </span></pre></div> @@ -12027,8 +12198,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#AutoIncrementColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-950"><a href="#AutoIncrementColumnConstraint-950"><span class="linenos">950</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="AutoIncrementColumnConstraint-951"><a href="#AutoIncrementColumnConstraint-951"><span class="linenos">951</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementColumnConstraint-955"><a href="#AutoIncrementColumnConstraint-955"><span class="linenos">955</span></a><span class="k">class</span> <span class="nc">AutoIncrementColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="AutoIncrementColumnConstraint-956"><a href="#AutoIncrementColumnConstraint-956"><span class="linenos">956</span></a> <span class="k">pass</span> </span></pre></div> @@ -12089,8 +12260,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CaseSpecificColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CaseSpecificColumnConstraint-954"><a href="#CaseSpecificColumnConstraint-954"><span class="linenos">954</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="CaseSpecificColumnConstraint-955"><a href="#CaseSpecificColumnConstraint-955"><span class="linenos">955</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"not_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CaseSpecificColumnConstraint-959"><a href="#CaseSpecificColumnConstraint-959"><span class="linenos">959</span></a><span class="k">class</span> <span class="nc">CaseSpecificColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="CaseSpecificColumnConstraint-960"><a href="#CaseSpecificColumnConstraint-960"><span class="linenos">960</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"not_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -12151,8 +12322,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CharacterSetColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetColumnConstraint-958"><a href="#CharacterSetColumnConstraint-958"><span class="linenos">958</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="CharacterSetColumnConstraint-959"><a href="#CharacterSetColumnConstraint-959"><span class="linenos">959</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetColumnConstraint-963"><a href="#CharacterSetColumnConstraint-963"><span class="linenos">963</span></a><span class="k">class</span> <span class="nc">CharacterSetColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="CharacterSetColumnConstraint-964"><a href="#CharacterSetColumnConstraint-964"><span class="linenos">964</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -12213,8 +12384,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CheckColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-962"><a href="#CheckColumnConstraint-962"><span class="linenos">962</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="CheckColumnConstraint-963"><a href="#CheckColumnConstraint-963"><span class="linenos">963</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CheckColumnConstraint-967"><a href="#CheckColumnConstraint-967"><span class="linenos">967</span></a><span class="k">class</span> <span class="nc">CheckColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="CheckColumnConstraint-968"><a href="#CheckColumnConstraint-968"><span class="linenos">968</span></a> <span class="k">pass</span> </span></pre></div> @@ -12275,8 +12446,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CollateColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-966"><a href="#CollateColumnConstraint-966"><span class="linenos">966</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="CollateColumnConstraint-967"><a href="#CollateColumnConstraint-967"><span class="linenos">967</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CollateColumnConstraint-971"><a href="#CollateColumnConstraint-971"><span class="linenos">971</span></a><span class="k">class</span> <span class="nc">CollateColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="CollateColumnConstraint-972"><a href="#CollateColumnConstraint-972"><span class="linenos">972</span></a> <span class="k">pass</span> </span></pre></div> @@ -12337,8 +12508,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CommentColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-970"><a href="#CommentColumnConstraint-970"><span class="linenos">970</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="CommentColumnConstraint-971"><a href="#CommentColumnConstraint-971"><span class="linenos">971</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CommentColumnConstraint-975"><a href="#CommentColumnConstraint-975"><span class="linenos">975</span></a><span class="k">class</span> <span class="nc">CommentColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="CommentColumnConstraint-976"><a href="#CommentColumnConstraint-976"><span class="linenos">976</span></a> <span class="k">pass</span> </span></pre></div> @@ -12399,8 +12570,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#CompressColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-974"><a href="#CompressColumnConstraint-974"><span class="linenos">974</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="CompressColumnConstraint-975"><a href="#CompressColumnConstraint-975"><span class="linenos">975</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CompressColumnConstraint-979"><a href="#CompressColumnConstraint-979"><span class="linenos">979</span></a><span class="k">class</span> <span class="nc">CompressColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="CompressColumnConstraint-980"><a href="#CompressColumnConstraint-980"><span class="linenos">980</span></a> <span class="k">pass</span> </span></pre></div> @@ -12461,8 +12632,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#DateFormatColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateFormatColumnConstraint-978"><a href="#DateFormatColumnConstraint-978"><span class="linenos">978</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="DateFormatColumnConstraint-979"><a href="#DateFormatColumnConstraint-979"><span class="linenos">979</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateFormatColumnConstraint-983"><a href="#DateFormatColumnConstraint-983"><span class="linenos">983</span></a><span class="k">class</span> <span class="nc">DateFormatColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="DateFormatColumnConstraint-984"><a href="#DateFormatColumnConstraint-984"><span class="linenos">984</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -12523,8 +12694,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#DefaultColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-982"><a href="#DefaultColumnConstraint-982"><span class="linenos">982</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="DefaultColumnConstraint-983"><a href="#DefaultColumnConstraint-983"><span class="linenos">983</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DefaultColumnConstraint-987"><a href="#DefaultColumnConstraint-987"><span class="linenos">987</span></a><span class="k">class</span> <span class="nc">DefaultColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="DefaultColumnConstraint-988"><a href="#DefaultColumnConstraint-988"><span class="linenos">988</span></a> <span class="k">pass</span> </span></pre></div> @@ -12585,8 +12756,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#EncodeColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-986"><a href="#EncodeColumnConstraint-986"><span class="linenos">986</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="EncodeColumnConstraint-987"><a href="#EncodeColumnConstraint-987"><span class="linenos">987</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="EncodeColumnConstraint-991"><a href="#EncodeColumnConstraint-991"><span class="linenos">991</span></a><span class="k">class</span> <span class="nc">EncodeColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="EncodeColumnConstraint-992"><a href="#EncodeColumnConstraint-992"><span class="linenos">992</span></a> <span class="k">pass</span> </span></pre></div> @@ -12647,16 +12818,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#GeneratedAsIdentityColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-990"><a href="#GeneratedAsIdentityColumnConstraint-990"><span class="linenos">990</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="GeneratedAsIdentityColumnConstraint-991"><a href="#GeneratedAsIdentityColumnConstraint-991"><span class="linenos">991</span></a> <span class="c1"># this: True -> ALWAYS, this: False -> BY DEFAULT</span> -</span><span id="GeneratedAsIdentityColumnConstraint-992"><a href="#GeneratedAsIdentityColumnConstraint-992"><span class="linenos">992</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="GeneratedAsIdentityColumnConstraint-993"><a href="#GeneratedAsIdentityColumnConstraint-993"><span class="linenos">993</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="GeneratedAsIdentityColumnConstraint-994"><a href="#GeneratedAsIdentityColumnConstraint-994"><span class="linenos">994</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="GeneratedAsIdentityColumnConstraint-995"><a href="#GeneratedAsIdentityColumnConstraint-995"><span class="linenos">995</span></a> <span class="s2">"increment"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="GeneratedAsIdentityColumnConstraint-996"><a href="#GeneratedAsIdentityColumnConstraint-996"><span class="linenos">996</span></a> <span class="s2">"minvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="GeneratedAsIdentityColumnConstraint-997"><a href="#GeneratedAsIdentityColumnConstraint-997"><span class="linenos">997</span></a> <span class="s2">"maxvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="GeneratedAsIdentityColumnConstraint-998"><a href="#GeneratedAsIdentityColumnConstraint-998"><span class="linenos">998</span></a> <span class="s2">"cycle"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="GeneratedAsIdentityColumnConstraint-999"><a href="#GeneratedAsIdentityColumnConstraint-999"><span class="linenos">999</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="GeneratedAsIdentityColumnConstraint-995"><a href="#GeneratedAsIdentityColumnConstraint-995"><span class="linenos"> 995</span></a><span class="k">class</span> <span class="nc">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="GeneratedAsIdentityColumnConstraint-996"><a href="#GeneratedAsIdentityColumnConstraint-996"><span class="linenos"> 996</span></a> <span class="c1"># this: True -> ALWAYS, this: False -> BY DEFAULT</span> +</span><span id="GeneratedAsIdentityColumnConstraint-997"><a href="#GeneratedAsIdentityColumnConstraint-997"><span class="linenos"> 997</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="GeneratedAsIdentityColumnConstraint-998"><a href="#GeneratedAsIdentityColumnConstraint-998"><span class="linenos"> 998</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="GeneratedAsIdentityColumnConstraint-999"><a href="#GeneratedAsIdentityColumnConstraint-999"><span class="linenos"> 999</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="GeneratedAsIdentityColumnConstraint-1000"><a href="#GeneratedAsIdentityColumnConstraint-1000"><span class="linenos">1000</span></a> <span class="s2">"increment"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="GeneratedAsIdentityColumnConstraint-1001"><a href="#GeneratedAsIdentityColumnConstraint-1001"><span class="linenos">1001</span></a> <span class="s2">"minvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="GeneratedAsIdentityColumnConstraint-1002"><a href="#GeneratedAsIdentityColumnConstraint-1002"><span class="linenos">1002</span></a> <span class="s2">"maxvalue"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="GeneratedAsIdentityColumnConstraint-1003"><a href="#GeneratedAsIdentityColumnConstraint-1003"><span class="linenos">1003</span></a> <span class="s2">"cycle"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="GeneratedAsIdentityColumnConstraint-1004"><a href="#GeneratedAsIdentityColumnConstraint-1004"><span class="linenos">1004</span></a> <span class="p">}</span> </span></pre></div> @@ -12717,8 +12888,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#InlineLengthColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1002"><a href="#InlineLengthColumnConstraint-1002"><span class="linenos">1002</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="InlineLengthColumnConstraint-1003"><a href="#InlineLengthColumnConstraint-1003"><span class="linenos">1003</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="InlineLengthColumnConstraint-1007"><a href="#InlineLengthColumnConstraint-1007"><span class="linenos">1007</span></a><span class="k">class</span> <span class="nc">InlineLengthColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="InlineLengthColumnConstraint-1008"><a href="#InlineLengthColumnConstraint-1008"><span class="linenos">1008</span></a> <span class="k">pass</span> </span></pre></div> @@ -12779,8 +12950,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#NotNullColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="NotNullColumnConstraint-1006"><a href="#NotNullColumnConstraint-1006"><span class="linenos">1006</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="NotNullColumnConstraint-1007"><a href="#NotNullColumnConstraint-1007"><span class="linenos">1007</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"allow_null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="NotNullColumnConstraint-1011"><a href="#NotNullColumnConstraint-1011"><span class="linenos">1011</span></a><span class="k">class</span> <span class="nc">NotNullColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="NotNullColumnConstraint-1012"><a href="#NotNullColumnConstraint-1012"><span class="linenos">1012</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"allow_null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -12841,8 +13012,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#PrimaryKeyColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKeyColumnConstraint-1010"><a href="#PrimaryKeyColumnConstraint-1010"><span class="linenos">1010</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="PrimaryKeyColumnConstraint-1011"><a href="#PrimaryKeyColumnConstraint-1011"><span class="linenos">1011</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"desc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKeyColumnConstraint-1015"><a href="#PrimaryKeyColumnConstraint-1015"><span class="linenos">1015</span></a><span class="k">class</span> <span class="nc">PrimaryKeyColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="PrimaryKeyColumnConstraint-1016"><a href="#PrimaryKeyColumnConstraint-1016"><span class="linenos">1016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"desc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -12903,8 +13074,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#TitleColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1014"><a href="#TitleColumnConstraint-1014"><span class="linenos">1014</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="TitleColumnConstraint-1015"><a href="#TitleColumnConstraint-1015"><span class="linenos">1015</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TitleColumnConstraint-1019"><a href="#TitleColumnConstraint-1019"><span class="linenos">1019</span></a><span class="k">class</span> <span class="nc">TitleColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="TitleColumnConstraint-1020"><a href="#TitleColumnConstraint-1020"><span class="linenos">1020</span></a> <span class="k">pass</span> </span></pre></div> @@ -12965,8 +13136,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#UniqueColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UniqueColumnConstraint-1018"><a href="#UniqueColumnConstraint-1018"><span class="linenos">1018</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="UniqueColumnConstraint-1019"><a href="#UniqueColumnConstraint-1019"><span class="linenos">1019</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UniqueColumnConstraint-1023"><a href="#UniqueColumnConstraint-1023"><span class="linenos">1023</span></a><span class="k">class</span> <span class="nc">UniqueColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="UniqueColumnConstraint-1024"><a href="#UniqueColumnConstraint-1024"><span class="linenos">1024</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> </span></pre></div> @@ -13027,8 +13198,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#UppercaseColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UppercaseColumnConstraint-1022"><a href="#UppercaseColumnConstraint-1022"><span class="linenos">1022</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="UppercaseColumnConstraint-1023"><a href="#UppercaseColumnConstraint-1023"><span class="linenos">1023</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UppercaseColumnConstraint-1027"><a href="#UppercaseColumnConstraint-1027"><span class="linenos">1027</span></a><span class="k">class</span> <span class="nc">UppercaseColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="UppercaseColumnConstraint-1028"><a href="#UppercaseColumnConstraint-1028"><span class="linenos">1028</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> </span></pre></div> @@ -13089,8 +13260,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#PathColumnConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1026"><a href="#PathColumnConstraint-1026"><span class="linenos">1026</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> -</span><span id="PathColumnConstraint-1027"><a href="#PathColumnConstraint-1027"><span class="linenos">1027</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PathColumnConstraint-1031"><a href="#PathColumnConstraint-1031"><span class="linenos">1031</span></a><span class="k">class</span> <span class="nc">PathColumnConstraint</span><span class="p">(</span><span class="n">ColumnConstraintKind</span><span class="p">):</span> +</span><span id="PathColumnConstraint-1032"><a href="#PathColumnConstraint-1032"><span class="linenos">1032</span></a> <span class="k">pass</span> </span></pre></div> @@ -13151,8 +13322,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Constraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Constraint-1030"><a href="#Constraint-1030"><span class="linenos">1030</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Constraint-1031"><a href="#Constraint-1031"><span class="linenos">1031</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Constraint-1035"><a href="#Constraint-1035"><span class="linenos">1035</span></a><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Constraint-1036"><a href="#Constraint-1036"><span class="linenos">1036</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -13213,13 +13384,361 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Delete"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1034"><a href="#Delete-1034"><span class="linenos">1034</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Delete-1035"><a href="#Delete-1035"><span class="linenos">1035</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Delete-1039"><a href="#Delete-1039"><span class="linenos">1039</span></a><span class="k">class</span> <span class="nc">Delete</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Delete-1040"><a href="#Delete-1040"><span class="linenos">1040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Delete-1041"><a href="#Delete-1041"><span class="linenos">1041</span></a> +</span><span id="Delete-1042"><a href="#Delete-1042"><span class="linenos">1042</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span> +</span><span id="Delete-1043"><a href="#Delete-1043"><span class="linenos">1043</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Delete-1044"><a href="#Delete-1044"><span class="linenos">1044</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Delete-1045"><a href="#Delete-1045"><span class="linenos">1045</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Delete-1046"><a href="#Delete-1046"><span class="linenos">1046</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete-1047"><a href="#Delete-1047"><span class="linenos">1047</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete-1048"><a href="#Delete-1048"><span class="linenos">1048</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="Delete-1049"><a href="#Delete-1049"><span class="linenos">1049</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Delete-1050"><a href="#Delete-1050"><span class="linenos">1050</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span> +</span><span id="Delete-1051"><a href="#Delete-1051"><span class="linenos">1051</span></a> +</span><span id="Delete-1052"><a href="#Delete-1052"><span class="linenos">1052</span></a><span class="sd"> Example:</span> +</span><span id="Delete-1053"><a href="#Delete-1053"><span class="linenos">1053</span></a><span class="sd"> >>> delete("tbl").sql()</span> +</span><span id="Delete-1054"><a href="#Delete-1054"><span class="linenos">1054</span></a><span class="sd"> 'DELETE FROM tbl'</span> +</span><span id="Delete-1055"><a href="#Delete-1055"><span class="linenos">1055</span></a> +</span><span id="Delete-1056"><a href="#Delete-1056"><span class="linenos">1056</span></a><span class="sd"> Args:</span> +</span><span id="Delete-1057"><a href="#Delete-1057"><span class="linenos">1057</span></a><span class="sd"> table: the table from which to delete.</span> +</span><span id="Delete-1058"><a href="#Delete-1058"><span class="linenos">1058</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> +</span><span id="Delete-1059"><a href="#Delete-1059"><span class="linenos">1059</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Delete-1060"><a href="#Delete-1060"><span class="linenos">1060</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Delete-1061"><a href="#Delete-1061"><span class="linenos">1061</span></a> +</span><span id="Delete-1062"><a href="#Delete-1062"><span class="linenos">1062</span></a><span class="sd"> Returns:</span> +</span><span id="Delete-1063"><a href="#Delete-1063"><span class="linenos">1063</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="Delete-1064"><a href="#Delete-1064"><span class="linenos">1064</span></a><span class="sd"> """</span> +</span><span id="Delete-1065"><a href="#Delete-1065"><span class="linenos">1065</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Delete-1066"><a href="#Delete-1066"><span class="linenos">1066</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> +</span><span id="Delete-1067"><a href="#Delete-1067"><span class="linenos">1067</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Delete-1068"><a href="#Delete-1068"><span class="linenos">1068</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"this"</span><span class="p">,</span> +</span><span id="Delete-1069"><a href="#Delete-1069"><span class="linenos">1069</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Delete-1070"><a href="#Delete-1070"><span class="linenos">1070</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> +</span><span id="Delete-1071"><a href="#Delete-1071"><span class="linenos">1071</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Delete-1072"><a href="#Delete-1072"><span class="linenos">1072</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete-1073"><a href="#Delete-1073"><span class="linenos">1073</span></a> <span class="p">)</span> +</span><span id="Delete-1074"><a href="#Delete-1074"><span class="linenos">1074</span></a> +</span><span id="Delete-1075"><a href="#Delete-1075"><span class="linenos">1075</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span> +</span><span id="Delete-1076"><a href="#Delete-1076"><span class="linenos">1076</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Delete-1077"><a href="#Delete-1077"><span class="linenos">1077</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Delete-1078"><a href="#Delete-1078"><span class="linenos">1078</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete-1079"><a href="#Delete-1079"><span class="linenos">1079</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Delete-1080"><a href="#Delete-1080"><span class="linenos">1080</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete-1081"><a href="#Delete-1081"><span class="linenos">1081</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete-1082"><a href="#Delete-1082"><span class="linenos">1082</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="Delete-1083"><a href="#Delete-1083"><span class="linenos">1083</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Delete-1084"><a href="#Delete-1084"><span class="linenos">1084</span></a><span class="sd"> Append to or set the WHERE expressions.</span> +</span><span id="Delete-1085"><a href="#Delete-1085"><span class="linenos">1085</span></a> +</span><span id="Delete-1086"><a href="#Delete-1086"><span class="linenos">1086</span></a><span class="sd"> Example:</span> +</span><span id="Delete-1087"><a href="#Delete-1087"><span class="linenos">1087</span></a><span class="sd"> >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()</span> +</span><span id="Delete-1088"><a href="#Delete-1088"><span class="linenos">1088</span></a><span class="sd"> "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</span><span id="Delete-1089"><a href="#Delete-1089"><span class="linenos">1089</span></a> +</span><span id="Delete-1090"><a href="#Delete-1090"><span class="linenos">1090</span></a><span class="sd"> Args:</span> +</span><span id="Delete-1091"><a href="#Delete-1091"><span class="linenos">1091</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="Delete-1092"><a href="#Delete-1092"><span class="linenos">1092</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Delete-1093"><a href="#Delete-1093"><span class="linenos">1093</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Delete-1094"><a href="#Delete-1094"><span class="linenos">1094</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Delete-1095"><a href="#Delete-1095"><span class="linenos">1095</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Delete-1096"><a href="#Delete-1096"><span class="linenos">1096</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Delete-1097"><a href="#Delete-1097"><span class="linenos">1097</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Delete-1098"><a href="#Delete-1098"><span class="linenos">1098</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Delete-1099"><a href="#Delete-1099"><span class="linenos">1099</span></a> +</span><span id="Delete-1100"><a href="#Delete-1100"><span class="linenos">1100</span></a><span class="sd"> Returns:</span> +</span><span id="Delete-1101"><a href="#Delete-1101"><span class="linenos">1101</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="Delete-1102"><a href="#Delete-1102"><span class="linenos">1102</span></a><span class="sd"> """</span> +</span><span id="Delete-1103"><a href="#Delete-1103"><span class="linenos">1103</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Delete-1104"><a href="#Delete-1104"><span class="linenos">1104</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Delete-1105"><a href="#Delete-1105"><span class="linenos">1105</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Delete-1106"><a href="#Delete-1106"><span class="linenos">1106</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> +</span><span id="Delete-1107"><a href="#Delete-1107"><span class="linenos">1107</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Delete-1108"><a href="#Delete-1108"><span class="linenos">1108</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> +</span><span id="Delete-1109"><a href="#Delete-1109"><span class="linenos">1109</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Delete-1110"><a href="#Delete-1110"><span class="linenos">1110</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Delete-1111"><a href="#Delete-1111"><span class="linenos">1111</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete-1112"><a href="#Delete-1112"><span class="linenos">1112</span></a> <span class="p">)</span> +</span><span id="Delete-1113"><a href="#Delete-1113"><span class="linenos">1113</span></a> +</span><span id="Delete-1114"><a href="#Delete-1114"><span class="linenos">1114</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span> +</span><span id="Delete-1115"><a href="#Delete-1115"><span class="linenos">1115</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Delete-1116"><a href="#Delete-1116"><span class="linenos">1116</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Delete-1117"><a href="#Delete-1117"><span class="linenos">1117</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Delete-1118"><a href="#Delete-1118"><span class="linenos">1118</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete-1119"><a href="#Delete-1119"><span class="linenos">1119</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete-1120"><a href="#Delete-1120"><span class="linenos">1120</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="Delete-1121"><a href="#Delete-1121"><span class="linenos">1121</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Delete-1122"><a href="#Delete-1122"><span class="linenos">1122</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span> +</span><span id="Delete-1123"><a href="#Delete-1123"><span class="linenos">1123</span></a> +</span><span id="Delete-1124"><a href="#Delete-1124"><span class="linenos">1124</span></a><span class="sd"> Example:</span> +</span><span id="Delete-1125"><a href="#Delete-1125"><span class="linenos">1125</span></a><span class="sd"> >>> delete("tbl").returning("*", dialect="postgres").sql()</span> +</span><span id="Delete-1126"><a href="#Delete-1126"><span class="linenos">1126</span></a><span class="sd"> 'DELETE FROM tbl RETURNING *'</span> +</span><span id="Delete-1127"><a href="#Delete-1127"><span class="linenos">1127</span></a> +</span><span id="Delete-1128"><a href="#Delete-1128"><span class="linenos">1128</span></a><span class="sd"> Args:</span> +</span><span id="Delete-1129"><a href="#Delete-1129"><span class="linenos">1129</span></a><span class="sd"> expression: the SQL code strings to parse.</span> +</span><span id="Delete-1130"><a href="#Delete-1130"><span class="linenos">1130</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Delete-1131"><a href="#Delete-1131"><span class="linenos">1131</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Delete-1132"><a href="#Delete-1132"><span class="linenos">1132</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Delete-1133"><a href="#Delete-1133"><span class="linenos">1133</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Delete-1134"><a href="#Delete-1134"><span class="linenos">1134</span></a> +</span><span id="Delete-1135"><a href="#Delete-1135"><span class="linenos">1135</span></a><span class="sd"> Returns:</span> +</span><span id="Delete-1136"><a href="#Delete-1136"><span class="linenos">1136</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="Delete-1137"><a href="#Delete-1137"><span class="linenos">1137</span></a><span class="sd"> """</span> +</span><span id="Delete-1138"><a href="#Delete-1138"><span class="linenos">1138</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Delete-1139"><a href="#Delete-1139"><span class="linenos">1139</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Delete-1140"><a href="#Delete-1140"><span class="linenos">1140</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Delete-1141"><a href="#Delete-1141"><span class="linenos">1141</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"returning"</span><span class="p">,</span> +</span><span id="Delete-1142"><a href="#Delete-1142"><span class="linenos">1142</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"RETURNING"</span><span class="p">,</span> +</span><span id="Delete-1143"><a href="#Delete-1143"><span class="linenos">1143</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Delete-1144"><a href="#Delete-1144"><span class="linenos">1144</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Delete-1145"><a href="#Delete-1145"><span class="linenos">1145</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span> +</span><span id="Delete-1146"><a href="#Delete-1146"><span class="linenos">1146</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete-1147"><a href="#Delete-1147"><span class="linenos">1147</span></a> <span class="p">)</span> +</span></pre></div> + + + + + <div id="Delete.delete" class="classattr"> + <input id="Delete.delete-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr function"> + + <span class="def">def</span> + <span class="name">delete</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span> + + <label class="view-source-button" for="Delete.delete-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Delete.delete"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.delete-1042"><a href="#Delete.delete-1042"><span class="linenos">1042</span></a> <span class="k">def</span> <span class="nf">delete</span><span class="p">(</span> +</span><span id="Delete.delete-1043"><a href="#Delete.delete-1043"><span class="linenos">1043</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Delete.delete-1044"><a href="#Delete.delete-1044"><span class="linenos">1044</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Delete.delete-1045"><a href="#Delete.delete-1045"><span class="linenos">1045</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Delete.delete-1046"><a href="#Delete.delete-1046"><span class="linenos">1046</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete.delete-1047"><a href="#Delete.delete-1047"><span class="linenos">1047</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete.delete-1048"><a href="#Delete.delete-1048"><span class="linenos">1048</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="Delete.delete-1049"><a href="#Delete.delete-1049"><span class="linenos">1049</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Delete.delete-1050"><a href="#Delete.delete-1050"><span class="linenos">1050</span></a><span class="sd"> Create a DELETE expression or replace the table on an existing DELETE expression.</span> +</span><span id="Delete.delete-1051"><a href="#Delete.delete-1051"><span class="linenos">1051</span></a> +</span><span id="Delete.delete-1052"><a href="#Delete.delete-1052"><span class="linenos">1052</span></a><span class="sd"> Example:</span> +</span><span id="Delete.delete-1053"><a href="#Delete.delete-1053"><span class="linenos">1053</span></a><span class="sd"> >>> delete("tbl").sql()</span> +</span><span id="Delete.delete-1054"><a href="#Delete.delete-1054"><span class="linenos">1054</span></a><span class="sd"> 'DELETE FROM tbl'</span> +</span><span id="Delete.delete-1055"><a href="#Delete.delete-1055"><span class="linenos">1055</span></a> +</span><span id="Delete.delete-1056"><a href="#Delete.delete-1056"><span class="linenos">1056</span></a><span class="sd"> Args:</span> +</span><span id="Delete.delete-1057"><a href="#Delete.delete-1057"><span class="linenos">1057</span></a><span class="sd"> table: the table from which to delete.</span> +</span><span id="Delete.delete-1058"><a href="#Delete.delete-1058"><span class="linenos">1058</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> +</span><span id="Delete.delete-1059"><a href="#Delete.delete-1059"><span class="linenos">1059</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Delete.delete-1060"><a href="#Delete.delete-1060"><span class="linenos">1060</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Delete.delete-1061"><a href="#Delete.delete-1061"><span class="linenos">1061</span></a> +</span><span id="Delete.delete-1062"><a href="#Delete.delete-1062"><span class="linenos">1062</span></a><span class="sd"> Returns:</span> +</span><span id="Delete.delete-1063"><a href="#Delete.delete-1063"><span class="linenos">1063</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="Delete.delete-1064"><a href="#Delete.delete-1064"><span class="linenos">1064</span></a><span class="sd"> """</span> +</span><span id="Delete.delete-1065"><a href="#Delete.delete-1065"><span class="linenos">1065</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Delete.delete-1066"><a href="#Delete.delete-1066"><span class="linenos">1066</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> +</span><span id="Delete.delete-1067"><a href="#Delete.delete-1067"><span class="linenos">1067</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Delete.delete-1068"><a href="#Delete.delete-1068"><span class="linenos">1068</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"this"</span><span class="p">,</span> +</span><span id="Delete.delete-1069"><a href="#Delete.delete-1069"><span class="linenos">1069</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Delete.delete-1070"><a href="#Delete.delete-1070"><span class="linenos">1070</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> +</span><span id="Delete.delete-1071"><a href="#Delete.delete-1071"><span class="linenos">1071</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Delete.delete-1072"><a href="#Delete.delete-1072"><span class="linenos">1072</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete.delete-1073"><a href="#Delete.delete-1073"><span class="linenos">1073</span></a> <span class="p">)</span> +</span></pre></div> + + + <div class="docstring"><p>Create a DELETE expression or replace the table on an existing DELETE expression.</p> + +<h6 id="example">Example:</h6> + +<blockquote> + <div class="pdoc-code codehilite"> +<pre><span></span><code><span class="gp">>>> </span><span class="n">delete</span><span class="p">(</span><span class="s2">"tbl"</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span> +<span class="go">'DELETE FROM tbl'</span> +</code></pre> + </div> +</blockquote> + +<h6 id="arguments">Arguments:</h6> + +<ul> +<li><strong>table:</strong> the table from which to delete.</li> +<li><strong>dialect:</strong> the dialect used to parse the input expression.</li> +<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li> +<li><strong>opts:</strong> other options to use to parse the input expressions.</li> +</ul> + +<h6 id="returns">Returns:</h6> + +<blockquote> + <p>Delete: the modified expression.</p> +</blockquote> +</div> + + + </div> + <div id="Delete.where" class="classattr"> + <input id="Delete.where-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr function"> + + <span class="def">def</span> + <span class="name">where</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span> + + <label class="view-source-button" for="Delete.where-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Delete.where"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.where-1075"><a href="#Delete.where-1075"><span class="linenos">1075</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span> +</span><span id="Delete.where-1076"><a href="#Delete.where-1076"><span class="linenos">1076</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Delete.where-1077"><a href="#Delete.where-1077"><span class="linenos">1077</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Delete.where-1078"><a href="#Delete.where-1078"><span class="linenos">1078</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete.where-1079"><a href="#Delete.where-1079"><span class="linenos">1079</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Delete.where-1080"><a href="#Delete.where-1080"><span class="linenos">1080</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete.where-1081"><a href="#Delete.where-1081"><span class="linenos">1081</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete.where-1082"><a href="#Delete.where-1082"><span class="linenos">1082</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="Delete.where-1083"><a href="#Delete.where-1083"><span class="linenos">1083</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Delete.where-1084"><a href="#Delete.where-1084"><span class="linenos">1084</span></a><span class="sd"> Append to or set the WHERE expressions.</span> +</span><span id="Delete.where-1085"><a href="#Delete.where-1085"><span class="linenos">1085</span></a> +</span><span id="Delete.where-1086"><a href="#Delete.where-1086"><span class="linenos">1086</span></a><span class="sd"> Example:</span> +</span><span id="Delete.where-1087"><a href="#Delete.where-1087"><span class="linenos">1087</span></a><span class="sd"> >>> delete("tbl").where("x = 'a' OR x < 'b'").sql()</span> +</span><span id="Delete.where-1088"><a href="#Delete.where-1088"><span class="linenos">1088</span></a><span class="sd"> "DELETE FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</span><span id="Delete.where-1089"><a href="#Delete.where-1089"><span class="linenos">1089</span></a> +</span><span id="Delete.where-1090"><a href="#Delete.where-1090"><span class="linenos">1090</span></a><span class="sd"> Args:</span> +</span><span id="Delete.where-1091"><a href="#Delete.where-1091"><span class="linenos">1091</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="Delete.where-1092"><a href="#Delete.where-1092"><span class="linenos">1092</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Delete.where-1093"><a href="#Delete.where-1093"><span class="linenos">1093</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Delete.where-1094"><a href="#Delete.where-1094"><span class="linenos">1094</span></a><span class="sd"> append: if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Delete.where-1095"><a href="#Delete.where-1095"><span class="linenos">1095</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Delete.where-1096"><a href="#Delete.where-1096"><span class="linenos">1096</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Delete.where-1097"><a href="#Delete.where-1097"><span class="linenos">1097</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Delete.where-1098"><a href="#Delete.where-1098"><span class="linenos">1098</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Delete.where-1099"><a href="#Delete.where-1099"><span class="linenos">1099</span></a> +</span><span id="Delete.where-1100"><a href="#Delete.where-1100"><span class="linenos">1100</span></a><span class="sd"> Returns:</span> +</span><span id="Delete.where-1101"><a href="#Delete.where-1101"><span class="linenos">1101</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="Delete.where-1102"><a href="#Delete.where-1102"><span class="linenos">1102</span></a><span class="sd"> """</span> +</span><span id="Delete.where-1103"><a href="#Delete.where-1103"><span class="linenos">1103</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Delete.where-1104"><a href="#Delete.where-1104"><span class="linenos">1104</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Delete.where-1105"><a href="#Delete.where-1105"><span class="linenos">1105</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Delete.where-1106"><a href="#Delete.where-1106"><span class="linenos">1106</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> +</span><span id="Delete.where-1107"><a href="#Delete.where-1107"><span class="linenos">1107</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Delete.where-1108"><a href="#Delete.where-1108"><span class="linenos">1108</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> +</span><span id="Delete.where-1109"><a href="#Delete.where-1109"><span class="linenos">1109</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Delete.where-1110"><a href="#Delete.where-1110"><span class="linenos">1110</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Delete.where-1111"><a href="#Delete.where-1111"><span class="linenos">1111</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete.where-1112"><a href="#Delete.where-1112"><span class="linenos">1112</span></a> <span class="p">)</span> </span></pre></div> - + <div class="docstring"><p>Append to or set the WHERE expressions.</p> + +<h6 id="example">Example:</h6> + +<blockquote> + <div class="pdoc-code codehilite"> +<pre><span></span><code><span class="gp">>>> </span><span class="n">delete</span><span class="p">(</span><span class="s2">"tbl"</span><span class="p">)</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="s2">"x = 'a' OR x < 'b'"</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span> +<span class="go">"DELETE FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</code></pre> + </div> +</blockquote> + +<h6 id="arguments">Arguments:</h6> + +<ul> +<li><strong>*expressions:</strong> the SQL code strings to parse. +If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is. +Multiple expressions are combined with an AND operator.</li> +<li><strong>append:</strong> if <code>True</code>, AND the new expressions to any existing expression. +Otherwise, this resets the expression.</li> +<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li> +<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li> +<li><strong>opts:</strong> other options to use to parse the input expressions.</li> +</ul> + +<h6 id="returns">Returns:</h6> + +<blockquote> + <p>Delete: the modified expression.</p> +</blockquote> +</div> + + + </div> + <div id="Delete.returning" class="classattr"> + <input id="Delete.returning-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr function"> + + <span class="def">def</span> + <span class="name">returning</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span> + + <label class="view-source-button" for="Delete.returning-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Delete.returning"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Delete.returning-1114"><a href="#Delete.returning-1114"><span class="linenos">1114</span></a> <span class="k">def</span> <span class="nf">returning</span><span class="p">(</span> +</span><span id="Delete.returning-1115"><a href="#Delete.returning-1115"><span class="linenos">1115</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Delete.returning-1116"><a href="#Delete.returning-1116"><span class="linenos">1116</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Delete.returning-1117"><a href="#Delete.returning-1117"><span class="linenos">1117</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Delete.returning-1118"><a href="#Delete.returning-1118"><span class="linenos">1118</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Delete.returning-1119"><a href="#Delete.returning-1119"><span class="linenos">1119</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete.returning-1120"><a href="#Delete.returning-1120"><span class="linenos">1120</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="Delete.returning-1121"><a href="#Delete.returning-1121"><span class="linenos">1121</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Delete.returning-1122"><a href="#Delete.returning-1122"><span class="linenos">1122</span></a><span class="sd"> Set the RETURNING expression. Not supported by all dialects.</span> +</span><span id="Delete.returning-1123"><a href="#Delete.returning-1123"><span class="linenos">1123</span></a> +</span><span id="Delete.returning-1124"><a href="#Delete.returning-1124"><span class="linenos">1124</span></a><span class="sd"> Example:</span> +</span><span id="Delete.returning-1125"><a href="#Delete.returning-1125"><span class="linenos">1125</span></a><span class="sd"> >>> delete("tbl").returning("*", dialect="postgres").sql()</span> +</span><span id="Delete.returning-1126"><a href="#Delete.returning-1126"><span class="linenos">1126</span></a><span class="sd"> 'DELETE FROM tbl RETURNING *'</span> +</span><span id="Delete.returning-1127"><a href="#Delete.returning-1127"><span class="linenos">1127</span></a> +</span><span id="Delete.returning-1128"><a href="#Delete.returning-1128"><span class="linenos">1128</span></a><span class="sd"> Args:</span> +</span><span id="Delete.returning-1129"><a href="#Delete.returning-1129"><span class="linenos">1129</span></a><span class="sd"> expression: the SQL code strings to parse.</span> +</span><span id="Delete.returning-1130"><a href="#Delete.returning-1130"><span class="linenos">1130</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Delete.returning-1131"><a href="#Delete.returning-1131"><span class="linenos">1131</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Delete.returning-1132"><a href="#Delete.returning-1132"><span class="linenos">1132</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Delete.returning-1133"><a href="#Delete.returning-1133"><span class="linenos">1133</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Delete.returning-1134"><a href="#Delete.returning-1134"><span class="linenos">1134</span></a> +</span><span id="Delete.returning-1135"><a href="#Delete.returning-1135"><span class="linenos">1135</span></a><span class="sd"> Returns:</span> +</span><span id="Delete.returning-1136"><a href="#Delete.returning-1136"><span class="linenos">1136</span></a><span class="sd"> Delete: the modified expression.</span> +</span><span id="Delete.returning-1137"><a href="#Delete.returning-1137"><span class="linenos">1137</span></a><span class="sd"> """</span> +</span><span id="Delete.returning-1138"><a href="#Delete.returning-1138"><span class="linenos">1138</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Delete.returning-1139"><a href="#Delete.returning-1139"><span class="linenos">1139</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Delete.returning-1140"><a href="#Delete.returning-1140"><span class="linenos">1140</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Delete.returning-1141"><a href="#Delete.returning-1141"><span class="linenos">1141</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"returning"</span><span class="p">,</span> +</span><span id="Delete.returning-1142"><a href="#Delete.returning-1142"><span class="linenos">1142</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"RETURNING"</span><span class="p">,</span> +</span><span id="Delete.returning-1143"><a href="#Delete.returning-1143"><span class="linenos">1143</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Delete.returning-1144"><a href="#Delete.returning-1144"><span class="linenos">1144</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Delete.returning-1145"><a href="#Delete.returning-1145"><span class="linenos">1145</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Returning</span><span class="p">,</span> +</span><span id="Delete.returning-1146"><a href="#Delete.returning-1146"><span class="linenos">1146</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Delete.returning-1147"><a href="#Delete.returning-1147"><span class="linenos">1147</span></a> <span class="p">)</span> +</span></pre></div> + + + <div class="docstring"><p>Set the RETURNING expression. Not supported by all dialects.</p> + +<h6 id="example">Example:</h6> + +<blockquote> + <div class="pdoc-code codehilite"> +<pre><span></span><code><span class="gp">>>> </span><span class="n">delete</span><span class="p">(</span><span class="s2">"tbl"</span><span class="p">)</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="s2">"*"</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="s2">"postgres"</span><span class="p">)</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span> +<span class="go">'DELETE FROM tbl RETURNING *'</span> +</code></pre> + </div> +</blockquote> + +<h6 id="arguments">Arguments:</h6> + +<ul> +<li><strong>expression:</strong> the SQL code strings to parse. +If an <code><a href="#Expression">Expression</a></code> instance is passed, it will be used as-is.</li> +<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li> +<li><strong>copy:</strong> if <code>False</code>, modify this expression instance in-place.</li> +<li><strong>opts:</strong> other options to use to parse the input expressions.</li> +</ul> + +<h6 id="returns">Returns:</h6> + +<blockquote> + <p>Delete: the modified expression.</p> +</blockquote> +</div> + + </div> <div class="inherited"> <h5>Inherited Members</h5> <dl> @@ -13275,15 +13794,15 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Drop"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1038"><a href="#Drop-1038"><span class="linenos">1038</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Drop-1039"><a href="#Drop-1039"><span class="linenos">1039</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Drop-1040"><a href="#Drop-1040"><span class="linenos">1040</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Drop-1041"><a href="#Drop-1041"><span class="linenos">1041</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Drop-1042"><a href="#Drop-1042"><span class="linenos">1042</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Drop-1043"><a href="#Drop-1043"><span class="linenos">1043</span></a> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Drop-1044"><a href="#Drop-1044"><span class="linenos">1044</span></a> <span class="s2">"materialized"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Drop-1045"><a href="#Drop-1045"><span class="linenos">1045</span></a> <span class="s2">"cascade"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Drop-1046"><a href="#Drop-1046"><span class="linenos">1046</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Drop-1150"><a href="#Drop-1150"><span class="linenos">1150</span></a><span class="k">class</span> <span class="nc">Drop</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Drop-1151"><a href="#Drop-1151"><span class="linenos">1151</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Drop-1152"><a href="#Drop-1152"><span class="linenos">1152</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Drop-1153"><a href="#Drop-1153"><span class="linenos">1153</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Drop-1154"><a href="#Drop-1154"><span class="linenos">1154</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Drop-1155"><a href="#Drop-1155"><span class="linenos">1155</span></a> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Drop-1156"><a href="#Drop-1156"><span class="linenos">1156</span></a> <span class="s2">"materialized"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Drop-1157"><a href="#Drop-1157"><span class="linenos">1157</span></a> <span class="s2">"cascade"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Drop-1158"><a href="#Drop-1158"><span class="linenos">1158</span></a> <span class="p">}</span> </span></pre></div> @@ -13344,8 +13863,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Filter"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Filter-1049"><a href="#Filter-1049"><span class="linenos">1049</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Filter-1050"><a href="#Filter-1050"><span class="linenos">1050</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Filter-1161"><a href="#Filter-1161"><span class="linenos">1161</span></a><span class="k">class</span> <span class="nc">Filter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Filter-1162"><a href="#Filter-1162"><span class="linenos">1162</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -13406,8 +13925,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Check"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1053"><a href="#Check-1053"><span class="linenos">1053</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Check-1054"><a href="#Check-1054"><span class="linenos">1054</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Check-1165"><a href="#Check-1165"><span class="linenos">1165</span></a><span class="k">class</span> <span class="nc">Check</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Check-1166"><a href="#Check-1166"><span class="linenos">1166</span></a> <span class="k">pass</span> </span></pre></div> @@ -13468,9 +13987,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Directory"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1057"><a href="#Directory-1057"><span class="linenos">1057</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Directory-1058"><a href="#Directory-1058"><span class="linenos">1058</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span> -</span><span id="Directory-1059"><a href="#Directory-1059"><span class="linenos">1059</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"row_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Directory-1169"><a href="#Directory-1169"><span class="linenos">1169</span></a><span class="k">class</span> <span class="nc">Directory</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Directory-1170"><a href="#Directory-1170"><span class="linenos">1170</span></a> <span class="c1"># https://spark.apache.org/docs/3.0.0-preview/sql-ref-syntax-dml-insert-overwrite-directory-hive.html</span> +</span><span id="Directory-1171"><a href="#Directory-1171"><span class="linenos">1171</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"row_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -13531,13 +14050,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#ForeignKey"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1062"><a href="#ForeignKey-1062"><span class="linenos">1062</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="ForeignKey-1063"><a href="#ForeignKey-1063"><span class="linenos">1063</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="ForeignKey-1064"><a href="#ForeignKey-1064"><span class="linenos">1064</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="ForeignKey-1065"><a href="#ForeignKey-1065"><span class="linenos">1065</span></a> <span class="s2">"reference"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="ForeignKey-1066"><a href="#ForeignKey-1066"><span class="linenos">1066</span></a> <span class="s2">"delete"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="ForeignKey-1067"><a href="#ForeignKey-1067"><span class="linenos">1067</span></a> <span class="s2">"update"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="ForeignKey-1068"><a href="#ForeignKey-1068"><span class="linenos">1068</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ForeignKey-1174"><a href="#ForeignKey-1174"><span class="linenos">1174</span></a><span class="k">class</span> <span class="nc">ForeignKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="ForeignKey-1175"><a href="#ForeignKey-1175"><span class="linenos">1175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="ForeignKey-1176"><a href="#ForeignKey-1176"><span class="linenos">1176</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="ForeignKey-1177"><a href="#ForeignKey-1177"><span class="linenos">1177</span></a> <span class="s2">"reference"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="ForeignKey-1178"><a href="#ForeignKey-1178"><span class="linenos">1178</span></a> <span class="s2">"delete"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="ForeignKey-1179"><a href="#ForeignKey-1179"><span class="linenos">1179</span></a> <span class="s2">"update"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="ForeignKey-1180"><a href="#ForeignKey-1180"><span class="linenos">1180</span></a> <span class="p">}</span> </span></pre></div> @@ -13598,8 +14117,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#PrimaryKey"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1071"><a href="#PrimaryKey-1071"><span class="linenos">1071</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="PrimaryKey-1072"><a href="#PrimaryKey-1072"><span class="linenos">1072</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PrimaryKey-1183"><a href="#PrimaryKey-1183"><span class="linenos">1183</span></a><span class="k">class</span> <span class="nc">PrimaryKey</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="PrimaryKey-1184"><a href="#PrimaryKey-1184"><span class="linenos">1184</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -13660,8 +14179,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Unique"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unique-1075"><a href="#Unique-1075"><span class="linenos">1075</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Unique-1076"><a href="#Unique-1076"><span class="linenos">1076</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unique-1187"><a href="#Unique-1187"><span class="linenos">1187</span></a><span class="k">class</span> <span class="nc">Unique</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Unique-1188"><a href="#Unique-1188"><span class="linenos">1188</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -13722,8 +14241,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Into"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Into-1081"><a href="#Into-1081"><span class="linenos">1081</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Into-1082"><a href="#Into-1082"><span class="linenos">1082</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unlogged"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Into-1193"><a href="#Into-1193"><span class="linenos">1193</span></a><span class="k">class</span> <span class="nc">Into</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Into-1194"><a href="#Into-1194"><span class="linenos">1194</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"temporary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unlogged"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -13784,8 +14303,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#From"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="From-1085"><a href="#From-1085"><span class="linenos">1085</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="From-1086"><a href="#From-1086"><span class="linenos">1086</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="From-1197"><a href="#From-1197"><span class="linenos">1197</span></a><span class="k">class</span> <span class="nc">From</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="From-1198"><a href="#From-1198"><span class="linenos">1198</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -13846,8 +14365,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Having"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1089"><a href="#Having-1089"><span class="linenos">1089</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Having-1090"><a href="#Having-1090"><span class="linenos">1090</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Having-1201"><a href="#Having-1201"><span class="linenos">1201</span></a><span class="k">class</span> <span class="nc">Having</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Having-1202"><a href="#Having-1202"><span class="linenos">1202</span></a> <span class="k">pass</span> </span></pre></div> @@ -13908,8 +14427,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Hint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-1093"><a href="#Hint-1093"><span class="linenos">1093</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Hint-1094"><a href="#Hint-1094"><span class="linenos">1094</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hint-1205"><a href="#Hint-1205"><span class="linenos">1205</span></a><span class="k">class</span> <span class="nc">Hint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Hint-1206"><a href="#Hint-1206"><span class="linenos">1206</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -13970,8 +14489,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#JoinHint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1097"><a href="#JoinHint-1097"><span class="linenos">1097</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="JoinHint-1098"><a href="#JoinHint-1098"><span class="linenos">1098</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JoinHint-1209"><a href="#JoinHint-1209"><span class="linenos">1209</span></a><span class="k">class</span> <span class="nc">JoinHint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="JoinHint-1210"><a href="#JoinHint-1210"><span class="linenos">1210</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -14032,22 +14551,22 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Identifier"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-1101"><a href="#Identifier-1101"><span class="linenos">1101</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Identifier-1102"><a href="#Identifier-1102"><span class="linenos">1102</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Identifier-1103"><a href="#Identifier-1103"><span class="linenos">1103</span></a> -</span><span id="Identifier-1104"><a href="#Identifier-1104"><span class="linenos">1104</span></a> <span class="nd">@property</span> -</span><span id="Identifier-1105"><a href="#Identifier-1105"><span class="linenos">1105</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Identifier-1106"><a href="#Identifier-1106"><span class="linenos">1106</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">))</span> -</span><span id="Identifier-1107"><a href="#Identifier-1107"><span class="linenos">1107</span></a> -</span><span id="Identifier-1108"><a href="#Identifier-1108"><span class="linenos">1108</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> -</span><span id="Identifier-1109"><a href="#Identifier-1109"><span class="linenos">1109</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> <span class="ow">and</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="o">==</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Identifier-1110"><a href="#Identifier-1110"><span class="linenos">1110</span></a> -</span><span id="Identifier-1111"><a href="#Identifier-1111"><span class="linenos">1111</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Identifier-1112"><a href="#Identifier-1112"><span class="linenos">1112</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()))</span> -</span><span id="Identifier-1113"><a href="#Identifier-1113"><span class="linenos">1113</span></a> -</span><span id="Identifier-1114"><a href="#Identifier-1114"><span class="linenos">1114</span></a> <span class="nd">@property</span> -</span><span id="Identifier-1115"><a href="#Identifier-1115"><span class="linenos">1115</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Identifier-1116"><a href="#Identifier-1116"><span class="linenos">1116</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Identifier-1213"><a href="#Identifier-1213"><span class="linenos">1213</span></a><span class="k">class</span> <span class="nc">Identifier</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Identifier-1214"><a href="#Identifier-1214"><span class="linenos">1214</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quoted"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Identifier-1215"><a href="#Identifier-1215"><span class="linenos">1215</span></a> +</span><span id="Identifier-1216"><a href="#Identifier-1216"><span class="linenos">1216</span></a> <span class="nd">@property</span> +</span><span id="Identifier-1217"><a href="#Identifier-1217"><span class="linenos">1217</span></a> <span class="k">def</span> <span class="nf">quoted</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Identifier-1218"><a href="#Identifier-1218"><span class="linenos">1218</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">))</span> +</span><span id="Identifier-1219"><a href="#Identifier-1219"><span class="linenos">1219</span></a> +</span><span id="Identifier-1220"><a href="#Identifier-1220"><span class="linenos">1220</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> +</span><span id="Identifier-1221"><a href="#Identifier-1221"><span class="linenos">1221</span></a> <span class="k">return</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> <span class="ow">and</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="o">==</span> <span class="n">_norm_arg</span><span class="p">(</span><span class="n">other</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Identifier-1222"><a href="#Identifier-1222"><span class="linenos">1222</span></a> +</span><span id="Identifier-1223"><a href="#Identifier-1223"><span class="linenos">1223</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Identifier-1224"><a href="#Identifier-1224"><span class="linenos">1224</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">lower</span><span class="p">()))</span> +</span><span id="Identifier-1225"><a href="#Identifier-1225"><span class="linenos">1225</span></a> +</span><span id="Identifier-1226"><a href="#Identifier-1226"><span class="linenos">1226</span></a> <span class="nd">@property</span> +</span><span id="Identifier-1227"><a href="#Identifier-1227"><span class="linenos">1227</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Identifier-1228"><a href="#Identifier-1228"><span class="linenos">1228</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> </span></pre></div> @@ -14137,16 +14656,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Index"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1119"><a href="#Index-1119"><span class="linenos">1119</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Index-1120"><a href="#Index-1120"><span class="linenos">1120</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Index-1121"><a href="#Index-1121"><span class="linenos">1121</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Index-1122"><a href="#Index-1122"><span class="linenos">1122</span></a> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Index-1123"><a href="#Index-1123"><span class="linenos">1123</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Index-1124"><a href="#Index-1124"><span class="linenos">1124</span></a> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Index-1125"><a href="#Index-1125"><span class="linenos">1125</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Index-1126"><a href="#Index-1126"><span class="linenos">1126</span></a> <span class="s2">"primary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Index-1127"><a href="#Index-1127"><span class="linenos">1127</span></a> <span class="s2">"amp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span> -</span><span id="Index-1128"><a href="#Index-1128"><span class="linenos">1128</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Index-1231"><a href="#Index-1231"><span class="linenos">1231</span></a><span class="k">class</span> <span class="nc">Index</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Index-1232"><a href="#Index-1232"><span class="linenos">1232</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Index-1233"><a href="#Index-1233"><span class="linenos">1233</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Index-1234"><a href="#Index-1234"><span class="linenos">1234</span></a> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Index-1235"><a href="#Index-1235"><span class="linenos">1235</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Index-1236"><a href="#Index-1236"><span class="linenos">1236</span></a> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Index-1237"><a href="#Index-1237"><span class="linenos">1237</span></a> <span class="s2">"unique"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Index-1238"><a href="#Index-1238"><span class="linenos">1238</span></a> <span class="s2">"primary"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Index-1239"><a href="#Index-1239"><span class="linenos">1239</span></a> <span class="s2">"amp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="c1"># teradata</span> +</span><span id="Index-1240"><a href="#Index-1240"><span class="linenos">1240</span></a> <span class="p">}</span> </span></pre></div> @@ -14207,17 +14726,17 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Insert"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1131"><a href="#Insert-1131"><span class="linenos">1131</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Insert-1132"><a href="#Insert-1132"><span class="linenos">1132</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Insert-1133"><a href="#Insert-1133"><span class="linenos">1133</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1134"><a href="#Insert-1134"><span class="linenos">1134</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Insert-1135"><a href="#Insert-1135"><span class="linenos">1135</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1136"><a href="#Insert-1136"><span class="linenos">1136</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1137"><a href="#Insert-1137"><span class="linenos">1137</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1138"><a href="#Insert-1138"><span class="linenos">1138</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1139"><a href="#Insert-1139"><span class="linenos">1139</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1140"><a href="#Insert-1140"><span class="linenos">1140</span></a> <span class="s2">"alternative"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Insert-1141"><a href="#Insert-1141"><span class="linenos">1141</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Insert-1243"><a href="#Insert-1243"><span class="linenos">1243</span></a><span class="k">class</span> <span class="nc">Insert</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Insert-1244"><a href="#Insert-1244"><span class="linenos">1244</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Insert-1245"><a href="#Insert-1245"><span class="linenos">1245</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1246"><a href="#Insert-1246"><span class="linenos">1246</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Insert-1247"><a href="#Insert-1247"><span class="linenos">1247</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1248"><a href="#Insert-1248"><span class="linenos">1248</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1249"><a href="#Insert-1249"><span class="linenos">1249</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1250"><a href="#Insert-1250"><span class="linenos">1250</span></a> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1251"><a href="#Insert-1251"><span class="linenos">1251</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1252"><a href="#Insert-1252"><span class="linenos">1252</span></a> <span class="s2">"alternative"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Insert-1253"><a href="#Insert-1253"><span class="linenos">1253</span></a> <span class="p">}</span> </span></pre></div> @@ -14278,8 +14797,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Returning"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1144"><a href="#Returning-1144"><span class="linenos">1144</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Returning-1145"><a href="#Returning-1145"><span class="linenos">1145</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Returning-1256"><a href="#Returning-1256"><span class="linenos">1256</span></a><span class="k">class</span> <span class="nc">Returning</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Returning-1257"><a href="#Returning-1257"><span class="linenos">1257</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -14340,8 +14859,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Introducer"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-1149"><a href="#Introducer-1149"><span class="linenos">1149</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Introducer-1150"><a href="#Introducer-1150"><span class="linenos">1150</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Introducer-1261"><a href="#Introducer-1261"><span class="linenos">1261</span></a><span class="k">class</span> <span class="nc">Introducer</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Introducer-1262"><a href="#Introducer-1262"><span class="linenos">1262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -14402,8 +14921,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#National"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="National-1154"><a href="#National-1154"><span class="linenos">1154</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="National-1155"><a href="#National-1155"><span class="linenos">1155</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="National-1266"><a href="#National-1266"><span class="linenos">1266</span></a><span class="k">class</span> <span class="nc">National</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="National-1267"><a href="#National-1267"><span class="linenos">1267</span></a> <span class="k">pass</span> </span></pre></div> @@ -14464,16 +14983,16 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#LoadData"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1158"><a href="#LoadData-1158"><span class="linenos">1158</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="LoadData-1159"><a href="#LoadData-1159"><span class="linenos">1159</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="LoadData-1160"><a href="#LoadData-1160"><span class="linenos">1160</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="LoadData-1161"><a href="#LoadData-1161"><span class="linenos">1161</span></a> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LoadData-1162"><a href="#LoadData-1162"><span class="linenos">1162</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LoadData-1163"><a href="#LoadData-1163"><span class="linenos">1163</span></a> <span class="s2">"inpath"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="LoadData-1164"><a href="#LoadData-1164"><span class="linenos">1164</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LoadData-1165"><a href="#LoadData-1165"><span class="linenos">1165</span></a> <span class="s2">"input_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LoadData-1166"><a href="#LoadData-1166"><span class="linenos">1166</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LoadData-1167"><a href="#LoadData-1167"><span class="linenos">1167</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LoadData-1270"><a href="#LoadData-1270"><span class="linenos">1270</span></a><span class="k">class</span> <span class="nc">LoadData</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="LoadData-1271"><a href="#LoadData-1271"><span class="linenos">1271</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="LoadData-1272"><a href="#LoadData-1272"><span class="linenos">1272</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="LoadData-1273"><a href="#LoadData-1273"><span class="linenos">1273</span></a> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LoadData-1274"><a href="#LoadData-1274"><span class="linenos">1274</span></a> <span class="s2">"overwrite"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LoadData-1275"><a href="#LoadData-1275"><span class="linenos">1275</span></a> <span class="s2">"inpath"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="LoadData-1276"><a href="#LoadData-1276"><span class="linenos">1276</span></a> <span class="s2">"partition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LoadData-1277"><a href="#LoadData-1277"><span class="linenos">1277</span></a> <span class="s2">"input_format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LoadData-1278"><a href="#LoadData-1278"><span class="linenos">1278</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LoadData-1279"><a href="#LoadData-1279"><span class="linenos">1279</span></a> <span class="p">}</span> </span></pre></div> @@ -14534,8 +15053,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Partition"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-1170"><a href="#Partition-1170"><span class="linenos">1170</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Partition-1171"><a href="#Partition-1171"><span class="linenos">1171</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Partition-1282"><a href="#Partition-1282"><span class="linenos">1282</span></a><span class="k">class</span> <span class="nc">Partition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Partition-1283"><a href="#Partition-1283"><span class="linenos">1283</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -14596,8 +15115,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Fetch"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1174"><a href="#Fetch-1174"><span class="linenos">1174</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Fetch-1175"><a href="#Fetch-1175"><span class="linenos">1175</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"direction"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"count"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Fetch-1286"><a href="#Fetch-1286"><span class="linenos">1286</span></a><span class="k">class</span> <span class="nc">Fetch</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Fetch-1287"><a href="#Fetch-1287"><span class="linenos">1287</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"direction"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"count"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -14658,13 +15177,13 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Group"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1178"><a href="#Group-1178"><span class="linenos">1178</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Group-1179"><a href="#Group-1179"><span class="linenos">1179</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Group-1180"><a href="#Group-1180"><span class="linenos">1180</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Group-1181"><a href="#Group-1181"><span class="linenos">1181</span></a> <span class="s2">"grouping_sets"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Group-1182"><a href="#Group-1182"><span class="linenos">1182</span></a> <span class="s2">"cube"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Group-1183"><a href="#Group-1183"><span class="linenos">1183</span></a> <span class="s2">"rollup"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Group-1184"><a href="#Group-1184"><span class="linenos">1184</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Group-1290"><a href="#Group-1290"><span class="linenos">1290</span></a><span class="k">class</span> <span class="nc">Group</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Group-1291"><a href="#Group-1291"><span class="linenos">1291</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Group-1292"><a href="#Group-1292"><span class="linenos">1292</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Group-1293"><a href="#Group-1293"><span class="linenos">1293</span></a> <span class="s2">"grouping_sets"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Group-1294"><a href="#Group-1294"><span class="linenos">1294</span></a> <span class="s2">"cube"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Group-1295"><a href="#Group-1295"><span class="linenos">1295</span></a> <span class="s2">"rollup"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Group-1296"><a href="#Group-1296"><span class="linenos">1296</span></a> <span class="p">}</span> </span></pre></div> @@ -14725,8 +15244,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Lambda"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-1187"><a href="#Lambda-1187"><span class="linenos">1187</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Lambda-1188"><a href="#Lambda-1188"><span class="linenos">1188</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Lambda-1299"><a href="#Lambda-1299"><span class="linenos">1299</span></a><span class="k">class</span> <span class="nc">Lambda</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Lambda-1300"><a href="#Lambda-1300"><span class="linenos">1300</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -14787,8 +15306,8 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Limit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1191"><a href="#Limit-1191"><span class="linenos">1191</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Limit-1192"><a href="#Limit-1192"><span class="linenos">1192</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Limit-1303"><a href="#Limit-1303"><span class="linenos">1303</span></a><span class="k">class</span> <span class="nc">Limit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Limit-1304"><a href="#Limit-1304"><span class="linenos">1304</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -14849,30 +15368,30 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Literal"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-1195"><a href="#Literal-1195"><span class="linenos">1195</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Literal-1196"><a href="#Literal-1196"><span class="linenos">1196</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_string"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Literal-1197"><a href="#Literal-1197"><span class="linenos">1197</span></a> -</span><span id="Literal-1198"><a href="#Literal-1198"><span class="linenos">1198</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> -</span><span id="Literal-1199"><a href="#Literal-1199"><span class="linenos">1199</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="Literal-1200"><a href="#Literal-1200"><span class="linenos">1200</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> -</span><span id="Literal-1201"><a href="#Literal-1201"><span class="linenos">1201</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> -</span><span id="Literal-1202"><a href="#Literal-1202"><span class="linenos">1202</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> -</span><span id="Literal-1203"><a href="#Literal-1203"><span class="linenos">1203</span></a> <span class="p">)</span> -</span><span id="Literal-1204"><a href="#Literal-1204"><span class="linenos">1204</span></a> -</span><span id="Literal-1205"><a href="#Literal-1205"><span class="linenos">1205</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Literal-1206"><a href="#Literal-1206"><span class="linenos">1206</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]))</span> -</span><span id="Literal-1207"><a href="#Literal-1207"><span class="linenos">1207</span></a> -</span><span id="Literal-1208"><a href="#Literal-1208"><span class="linenos">1208</span></a> <span class="nd">@classmethod</span> -</span><span id="Literal-1209"><a href="#Literal-1209"><span class="linenos">1209</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> -</span><span id="Literal-1210"><a href="#Literal-1210"><span class="linenos">1210</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Literal-1211"><a href="#Literal-1211"><span class="linenos">1211</span></a> -</span><span id="Literal-1212"><a href="#Literal-1212"><span class="linenos">1212</span></a> <span class="nd">@classmethod</span> -</span><span id="Literal-1213"><a href="#Literal-1213"><span class="linenos">1213</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> -</span><span id="Literal-1214"><a href="#Literal-1214"><span class="linenos">1214</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Literal-1215"><a href="#Literal-1215"><span class="linenos">1215</span></a> -</span><span id="Literal-1216"><a href="#Literal-1216"><span class="linenos">1216</span></a> <span class="nd">@property</span> -</span><span id="Literal-1217"><a href="#Literal-1217"><span class="linenos">1217</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Literal-1218"><a href="#Literal-1218"><span class="linenos">1218</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Literal-1307"><a href="#Literal-1307"><span class="linenos">1307</span></a><span class="k">class</span> <span class="nc">Literal</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Literal-1308"><a href="#Literal-1308"><span class="linenos">1308</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_string"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Literal-1309"><a href="#Literal-1309"><span class="linenos">1309</span></a> +</span><span id="Literal-1310"><a href="#Literal-1310"><span class="linenos">1310</span></a> <span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">):</span> +</span><span id="Literal-1311"><a href="#Literal-1311"><span class="linenos">1311</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="Literal-1312"><a href="#Literal-1312"><span class="linenos">1312</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">other</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)</span> +</span><span id="Literal-1313"><a href="#Literal-1313"><span class="linenos">1313</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">this</span> +</span><span id="Literal-1314"><a href="#Literal-1314"><span class="linenos">1314</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> <span class="o">==</span> <span class="n">other</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]</span> +</span><span id="Literal-1315"><a href="#Literal-1315"><span class="linenos">1315</span></a> <span class="p">)</span> +</span><span id="Literal-1316"><a href="#Literal-1316"><span class="linenos">1316</span></a> +</span><span id="Literal-1317"><a href="#Literal-1317"><span class="linenos">1317</span></a> <span class="k">def</span> <span class="fm">__hash__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Literal-1318"><a href="#Literal-1318"><span class="linenos">1318</span></a> <span class="k">return</span> <span class="nb">hash</span><span class="p">((</span><span class="bp">self</span><span class="o">.</span><span class="n">key</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"is_string"</span><span class="p">]))</span> +</span><span id="Literal-1319"><a href="#Literal-1319"><span class="linenos">1319</span></a> +</span><span id="Literal-1320"><a href="#Literal-1320"><span class="linenos">1320</span></a> <span class="nd">@classmethod</span> +</span><span id="Literal-1321"><a href="#Literal-1321"><span class="linenos">1321</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> +</span><span id="Literal-1322"><a href="#Literal-1322"><span class="linenos">1322</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Literal-1323"><a href="#Literal-1323"><span class="linenos">1323</span></a> +</span><span id="Literal-1324"><a href="#Literal-1324"><span class="linenos">1324</span></a> <span class="nd">@classmethod</span> +</span><span id="Literal-1325"><a href="#Literal-1325"><span class="linenos">1325</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> +</span><span id="Literal-1326"><a href="#Literal-1326"><span class="linenos">1326</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Literal-1327"><a href="#Literal-1327"><span class="linenos">1327</span></a> +</span><span id="Literal-1328"><a href="#Literal-1328"><span class="linenos">1328</span></a> <span class="nd">@property</span> +</span><span id="Literal-1329"><a href="#Literal-1329"><span class="linenos">1329</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Literal-1330"><a href="#Literal-1330"><span class="linenos">1330</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> </span></pre></div> @@ -14890,9 +15409,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Literal.number"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-1208"><a href="#Literal.number-1208"><span class="linenos">1208</span></a> <span class="nd">@classmethod</span> -</span><span id="Literal.number-1209"><a href="#Literal.number-1209"><span class="linenos">1209</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> -</span><span id="Literal.number-1210"><a href="#Literal.number-1210"><span class="linenos">1210</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.number-1320"><a href="#Literal.number-1320"><span class="linenos">1320</span></a> <span class="nd">@classmethod</span> +</span><span id="Literal.number-1321"><a href="#Literal.number-1321"><span class="linenos">1321</span></a> <span class="k">def</span> <span class="nf">number</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">number</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> +</span><span id="Literal.number-1322"><a href="#Literal.number-1322"><span class="linenos">1322</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">number</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> </span></pre></div> @@ -14911,9 +15430,9 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Literal.string"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-1212"><a href="#Literal.string-1212"><span class="linenos">1212</span></a> <span class="nd">@classmethod</span> -</span><span id="Literal.string-1213"><a href="#Literal.string-1213"><span class="linenos">1213</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> -</span><span id="Literal.string-1214"><a href="#Literal.string-1214"><span class="linenos">1214</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Literal.string-1324"><a href="#Literal.string-1324"><span class="linenos">1324</span></a> <span class="nd">@classmethod</span> +</span><span id="Literal.string-1325"><a href="#Literal.string-1325"><span class="linenos">1325</span></a> <span class="k">def</span> <span class="nf">string</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">string</span><span class="p">)</span> <span class="o">-></span> <span class="n">Literal</span><span class="p">:</span> +</span><span id="Literal.string-1326"><a href="#Literal.string-1326"><span class="linenos">1326</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="nb">str</span><span class="p">(</span><span class="n">string</span><span class="p">),</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span></pre></div> @@ -15010,100 +15529,100 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Join"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1221"><a href="#Join-1221"><span class="linenos">1221</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Join-1222"><a href="#Join-1222"><span class="linenos">1222</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Join-1223"><a href="#Join-1223"><span class="linenos">1223</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Join-1224"><a href="#Join-1224"><span class="linenos">1224</span></a> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Join-1225"><a href="#Join-1225"><span class="linenos">1225</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Join-1226"><a href="#Join-1226"><span class="linenos">1226</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Join-1227"><a href="#Join-1227"><span class="linenos">1227</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Join-1228"><a href="#Join-1228"><span class="linenos">1228</span></a> <span class="s2">"natural"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Join-1229"><a href="#Join-1229"><span class="linenos">1229</span></a> <span class="p">}</span> -</span><span id="Join-1230"><a href="#Join-1230"><span class="linenos">1230</span></a> -</span><span id="Join-1231"><a href="#Join-1231"><span class="linenos">1231</span></a> <span class="nd">@property</span> -</span><span id="Join-1232"><a href="#Join-1232"><span class="linenos">1232</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Join-1233"><a href="#Join-1233"><span class="linenos">1233</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Join-1234"><a href="#Join-1234"><span class="linenos">1234</span></a> -</span><span id="Join-1235"><a href="#Join-1235"><span class="linenos">1235</span></a> <span class="nd">@property</span> -</span><span id="Join-1236"><a href="#Join-1236"><span class="linenos">1236</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Join-1237"><a href="#Join-1237"><span class="linenos">1237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"side"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Join-1238"><a href="#Join-1238"><span class="linenos">1238</span></a> -</span><span id="Join-1239"><a href="#Join-1239"><span class="linenos">1239</span></a> <span class="nd">@property</span> -</span><span id="Join-1240"><a href="#Join-1240"><span class="linenos">1240</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Join-1241"><a href="#Join-1241"><span class="linenos">1241</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span> -</span><span id="Join-1242"><a href="#Join-1242"><span class="linenos">1242</span></a> -</span><span id="Join-1243"><a href="#Join-1243"><span class="linenos">1243</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Join-1244"><a href="#Join-1244"><span class="linenos">1244</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Join-1245"><a href="#Join-1245"><span class="linenos">1245</span></a><span class="sd"> Append to or set the ON expressions.</span> -</span><span id="Join-1246"><a href="#Join-1246"><span class="linenos">1246</span></a> -</span><span id="Join-1247"><a href="#Join-1247"><span class="linenos">1247</span></a><span class="sd"> Example:</span> -</span><span id="Join-1248"><a href="#Join-1248"><span class="linenos">1248</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Join-1249"><a href="#Join-1249"><span class="linenos">1249</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()</span> -</span><span id="Join-1250"><a href="#Join-1250"><span class="linenos">1250</span></a><span class="sd"> 'JOIN x ON y = 1'</span> -</span><span id="Join-1251"><a href="#Join-1251"><span class="linenos">1251</span></a> -</span><span id="Join-1252"><a href="#Join-1252"><span class="linenos">1252</span></a><span class="sd"> Args:</span> -</span><span id="Join-1253"><a href="#Join-1253"><span class="linenos">1253</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Join-1254"><a href="#Join-1254"><span class="linenos">1254</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Join-1255"><a href="#Join-1255"><span class="linenos">1255</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="Join-1256"><a href="#Join-1256"><span class="linenos">1256</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="Join-1257"><a href="#Join-1257"><span class="linenos">1257</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Join-1258"><a href="#Join-1258"><span class="linenos">1258</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Join-1259"><a href="#Join-1259"><span class="linenos">1259</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Join-1260"><a href="#Join-1260"><span class="linenos">1260</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Join-1261"><a href="#Join-1261"><span class="linenos">1261</span></a> -</span><span id="Join-1262"><a href="#Join-1262"><span class="linenos">1262</span></a><span class="sd"> Returns:</span> -</span><span id="Join-1263"><a href="#Join-1263"><span class="linenos">1263</span></a><span class="sd"> Join: the modified join expression.</span> -</span><span id="Join-1264"><a href="#Join-1264"><span class="linenos">1264</span></a><span class="sd"> """</span> -</span><span id="Join-1265"><a href="#Join-1265"><span class="linenos">1265</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Join-1266"><a href="#Join-1266"><span class="linenos">1266</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Join-1267"><a href="#Join-1267"><span class="linenos">1267</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Join-1268"><a href="#Join-1268"><span class="linenos">1268</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"on"</span><span class="p">,</span> -</span><span id="Join-1269"><a href="#Join-1269"><span class="linenos">1269</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Join-1270"><a href="#Join-1270"><span class="linenos">1270</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Join-1271"><a href="#Join-1271"><span class="linenos">1271</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Join-1272"><a href="#Join-1272"><span class="linenos">1272</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Join-1273"><a href="#Join-1273"><span class="linenos">1273</span></a> <span class="p">)</span> -</span><span id="Join-1274"><a href="#Join-1274"><span class="linenos">1274</span></a> -</span><span id="Join-1275"><a href="#Join-1275"><span class="linenos">1275</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> -</span><span id="Join-1276"><a href="#Join-1276"><span class="linenos">1276</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Join-1277"><a href="#Join-1277"><span class="linenos">1277</span></a> -</span><span id="Join-1278"><a href="#Join-1278"><span class="linenos">1278</span></a> <span class="k">return</span> <span class="n">join</span> -</span><span id="Join-1279"><a href="#Join-1279"><span class="linenos">1279</span></a> -</span><span id="Join-1280"><a href="#Join-1280"><span class="linenos">1280</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Join-1281"><a href="#Join-1281"><span class="linenos">1281</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Join-1282"><a href="#Join-1282"><span class="linenos">1282</span></a><span class="sd"> Append to or set the USING expressions.</span> -</span><span id="Join-1283"><a href="#Join-1283"><span class="linenos">1283</span></a> -</span><span id="Join-1284"><a href="#Join-1284"><span class="linenos">1284</span></a><span class="sd"> Example:</span> -</span><span id="Join-1285"><a href="#Join-1285"><span class="linenos">1285</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Join-1286"><a href="#Join-1286"><span class="linenos">1286</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()</span> -</span><span id="Join-1287"><a href="#Join-1287"><span class="linenos">1287</span></a><span class="sd"> 'JOIN x USING (foo, bla)'</span> -</span><span id="Join-1288"><a href="#Join-1288"><span class="linenos">1288</span></a> -</span><span id="Join-1289"><a href="#Join-1289"><span class="linenos">1289</span></a><span class="sd"> Args:</span> -</span><span id="Join-1290"><a href="#Join-1290"><span class="linenos">1290</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Join-1291"><a href="#Join-1291"><span class="linenos">1291</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Join-1292"><a href="#Join-1292"><span class="linenos">1292</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing "using" list.</span> -</span><span id="Join-1293"><a href="#Join-1293"><span class="linenos">1293</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Join-1294"><a href="#Join-1294"><span class="linenos">1294</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Join-1295"><a href="#Join-1295"><span class="linenos">1295</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Join-1296"><a href="#Join-1296"><span class="linenos">1296</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Join-1297"><a href="#Join-1297"><span class="linenos">1297</span></a> -</span><span id="Join-1298"><a href="#Join-1298"><span class="linenos">1298</span></a><span class="sd"> Returns:</span> -</span><span id="Join-1299"><a href="#Join-1299"><span class="linenos">1299</span></a><span class="sd"> Join: the modified join expression.</span> -</span><span id="Join-1300"><a href="#Join-1300"><span class="linenos">1300</span></a><span class="sd"> """</span> -</span><span id="Join-1301"><a href="#Join-1301"><span class="linenos">1301</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Join-1302"><a href="#Join-1302"><span class="linenos">1302</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Join-1303"><a href="#Join-1303"><span class="linenos">1303</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Join-1304"><a href="#Join-1304"><span class="linenos">1304</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> -</span><span id="Join-1305"><a href="#Join-1305"><span class="linenos">1305</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Join-1306"><a href="#Join-1306"><span class="linenos">1306</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Join-1307"><a href="#Join-1307"><span class="linenos">1307</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Join-1308"><a href="#Join-1308"><span class="linenos">1308</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Join-1309"><a href="#Join-1309"><span class="linenos">1309</span></a> <span class="p">)</span> -</span><span id="Join-1310"><a href="#Join-1310"><span class="linenos">1310</span></a> -</span><span id="Join-1311"><a href="#Join-1311"><span class="linenos">1311</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> -</span><span id="Join-1312"><a href="#Join-1312"><span class="linenos">1312</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Join-1313"><a href="#Join-1313"><span class="linenos">1313</span></a> -</span><span id="Join-1314"><a href="#Join-1314"><span class="linenos">1314</span></a> <span class="k">return</span> <span class="n">join</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Join-1333"><a href="#Join-1333"><span class="linenos">1333</span></a><span class="k">class</span> <span class="nc">Join</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Join-1334"><a href="#Join-1334"><span class="linenos">1334</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Join-1335"><a href="#Join-1335"><span class="linenos">1335</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Join-1336"><a href="#Join-1336"><span class="linenos">1336</span></a> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Join-1337"><a href="#Join-1337"><span class="linenos">1337</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Join-1338"><a href="#Join-1338"><span class="linenos">1338</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Join-1339"><a href="#Join-1339"><span class="linenos">1339</span></a> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Join-1340"><a href="#Join-1340"><span class="linenos">1340</span></a> <span class="s2">"natural"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Join-1341"><a href="#Join-1341"><span class="linenos">1341</span></a> <span class="p">}</span> +</span><span id="Join-1342"><a href="#Join-1342"><span class="linenos">1342</span></a> +</span><span id="Join-1343"><a href="#Join-1343"><span class="linenos">1343</span></a> <span class="nd">@property</span> +</span><span id="Join-1344"><a href="#Join-1344"><span class="linenos">1344</span></a> <span class="k">def</span> <span class="nf">kind</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Join-1345"><a href="#Join-1345"><span class="linenos">1345</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Join-1346"><a href="#Join-1346"><span class="linenos">1346</span></a> +</span><span id="Join-1347"><a href="#Join-1347"><span class="linenos">1347</span></a> <span class="nd">@property</span> +</span><span id="Join-1348"><a href="#Join-1348"><span class="linenos">1348</span></a> <span class="k">def</span> <span class="nf">side</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Join-1349"><a href="#Join-1349"><span class="linenos">1349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"side"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Join-1350"><a href="#Join-1350"><span class="linenos">1350</span></a> +</span><span id="Join-1351"><a href="#Join-1351"><span class="linenos">1351</span></a> <span class="nd">@property</span> +</span><span id="Join-1352"><a href="#Join-1352"><span class="linenos">1352</span></a> <span class="k">def</span> <span class="nf">alias_or_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Join-1353"><a href="#Join-1353"><span class="linenos">1353</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="Join-1354"><a href="#Join-1354"><span class="linenos">1354</span></a> +</span><span id="Join-1355"><a href="#Join-1355"><span class="linenos">1355</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Join-1356"><a href="#Join-1356"><span class="linenos">1356</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Join-1357"><a href="#Join-1357"><span class="linenos">1357</span></a><span class="sd"> Append to or set the ON expressions.</span> +</span><span id="Join-1358"><a href="#Join-1358"><span class="linenos">1358</span></a> +</span><span id="Join-1359"><a href="#Join-1359"><span class="linenos">1359</span></a><span class="sd"> Example:</span> +</span><span id="Join-1360"><a href="#Join-1360"><span class="linenos">1360</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Join-1361"><a href="#Join-1361"><span class="linenos">1361</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()</span> +</span><span id="Join-1362"><a href="#Join-1362"><span class="linenos">1362</span></a><span class="sd"> 'JOIN x ON y = 1'</span> +</span><span id="Join-1363"><a href="#Join-1363"><span class="linenos">1363</span></a> +</span><span id="Join-1364"><a href="#Join-1364"><span class="linenos">1364</span></a><span class="sd"> Args:</span> +</span><span id="Join-1365"><a href="#Join-1365"><span class="linenos">1365</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Join-1366"><a href="#Join-1366"><span class="linenos">1366</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Join-1367"><a href="#Join-1367"><span class="linenos">1367</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Join-1368"><a href="#Join-1368"><span class="linenos">1368</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Join-1369"><a href="#Join-1369"><span class="linenos">1369</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Join-1370"><a href="#Join-1370"><span class="linenos">1370</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Join-1371"><a href="#Join-1371"><span class="linenos">1371</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Join-1372"><a href="#Join-1372"><span class="linenos">1372</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Join-1373"><a href="#Join-1373"><span class="linenos">1373</span></a> +</span><span id="Join-1374"><a href="#Join-1374"><span class="linenos">1374</span></a><span class="sd"> Returns:</span> +</span><span id="Join-1375"><a href="#Join-1375"><span class="linenos">1375</span></a><span class="sd"> Join: the modified join expression.</span> +</span><span id="Join-1376"><a href="#Join-1376"><span class="linenos">1376</span></a><span class="sd"> """</span> +</span><span id="Join-1377"><a href="#Join-1377"><span class="linenos">1377</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Join-1378"><a href="#Join-1378"><span class="linenos">1378</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Join-1379"><a href="#Join-1379"><span class="linenos">1379</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Join-1380"><a href="#Join-1380"><span class="linenos">1380</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"on"</span><span class="p">,</span> +</span><span id="Join-1381"><a href="#Join-1381"><span class="linenos">1381</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Join-1382"><a href="#Join-1382"><span class="linenos">1382</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Join-1383"><a href="#Join-1383"><span class="linenos">1383</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Join-1384"><a href="#Join-1384"><span class="linenos">1384</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Join-1385"><a href="#Join-1385"><span class="linenos">1385</span></a> <span class="p">)</span> +</span><span id="Join-1386"><a href="#Join-1386"><span class="linenos">1386</span></a> +</span><span id="Join-1387"><a href="#Join-1387"><span class="linenos">1387</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> +</span><span id="Join-1388"><a href="#Join-1388"><span class="linenos">1388</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Join-1389"><a href="#Join-1389"><span class="linenos">1389</span></a> +</span><span id="Join-1390"><a href="#Join-1390"><span class="linenos">1390</span></a> <span class="k">return</span> <span class="n">join</span> +</span><span id="Join-1391"><a href="#Join-1391"><span class="linenos">1391</span></a> +</span><span id="Join-1392"><a href="#Join-1392"><span class="linenos">1392</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Join-1393"><a href="#Join-1393"><span class="linenos">1393</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Join-1394"><a href="#Join-1394"><span class="linenos">1394</span></a><span class="sd"> Append to or set the USING expressions.</span> +</span><span id="Join-1395"><a href="#Join-1395"><span class="linenos">1395</span></a> +</span><span id="Join-1396"><a href="#Join-1396"><span class="linenos">1396</span></a><span class="sd"> Example:</span> +</span><span id="Join-1397"><a href="#Join-1397"><span class="linenos">1397</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Join-1398"><a href="#Join-1398"><span class="linenos">1398</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()</span> +</span><span id="Join-1399"><a href="#Join-1399"><span class="linenos">1399</span></a><span class="sd"> 'JOIN x USING (foo, bla)'</span> +</span><span id="Join-1400"><a href="#Join-1400"><span class="linenos">1400</span></a> +</span><span id="Join-1401"><a href="#Join-1401"><span class="linenos">1401</span></a><span class="sd"> Args:</span> +</span><span id="Join-1402"><a href="#Join-1402"><span class="linenos">1402</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Join-1403"><a href="#Join-1403"><span class="linenos">1403</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Join-1404"><a href="#Join-1404"><span class="linenos">1404</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing "using" list.</span> +</span><span id="Join-1405"><a href="#Join-1405"><span class="linenos">1405</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Join-1406"><a href="#Join-1406"><span class="linenos">1406</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Join-1407"><a href="#Join-1407"><span class="linenos">1407</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Join-1408"><a href="#Join-1408"><span class="linenos">1408</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Join-1409"><a href="#Join-1409"><span class="linenos">1409</span></a> +</span><span id="Join-1410"><a href="#Join-1410"><span class="linenos">1410</span></a><span class="sd"> Returns:</span> +</span><span id="Join-1411"><a href="#Join-1411"><span class="linenos">1411</span></a><span class="sd"> Join: the modified join expression.</span> +</span><span id="Join-1412"><a href="#Join-1412"><span class="linenos">1412</span></a><span class="sd"> """</span> +</span><span id="Join-1413"><a href="#Join-1413"><span class="linenos">1413</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Join-1414"><a href="#Join-1414"><span class="linenos">1414</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Join-1415"><a href="#Join-1415"><span class="linenos">1415</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Join-1416"><a href="#Join-1416"><span class="linenos">1416</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> +</span><span id="Join-1417"><a href="#Join-1417"><span class="linenos">1417</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Join-1418"><a href="#Join-1418"><span class="linenos">1418</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Join-1419"><a href="#Join-1419"><span class="linenos">1419</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Join-1420"><a href="#Join-1420"><span class="linenos">1420</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Join-1421"><a href="#Join-1421"><span class="linenos">1421</span></a> <span class="p">)</span> +</span><span id="Join-1422"><a href="#Join-1422"><span class="linenos">1422</span></a> +</span><span id="Join-1423"><a href="#Join-1423"><span class="linenos">1423</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> +</span><span id="Join-1424"><a href="#Join-1424"><span class="linenos">1424</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Join-1425"><a href="#Join-1425"><span class="linenos">1425</span></a> +</span><span id="Join-1426"><a href="#Join-1426"><span class="linenos">1426</span></a> <span class="k">return</span> <span class="n">join</span> </span></pre></div> @@ -15120,42 +15639,42 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#Join.on"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1243"><a href="#Join.on-1243"><span class="linenos">1243</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Join.on-1244"><a href="#Join.on-1244"><span class="linenos">1244</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Join.on-1245"><a href="#Join.on-1245"><span class="linenos">1245</span></a><span class="sd"> Append to or set the ON expressions.</span> -</span><span id="Join.on-1246"><a href="#Join.on-1246"><span class="linenos">1246</span></a> -</span><span id="Join.on-1247"><a href="#Join.on-1247"><span class="linenos">1247</span></a><span class="sd"> Example:</span> -</span><span id="Join.on-1248"><a href="#Join.on-1248"><span class="linenos">1248</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Join.on-1249"><a href="#Join.on-1249"><span class="linenos">1249</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()</span> -</span><span id="Join.on-1250"><a href="#Join.on-1250"><span class="linenos">1250</span></a><span class="sd"> 'JOIN x ON y = 1'</span> -</span><span id="Join.on-1251"><a href="#Join.on-1251"><span class="linenos">1251</span></a> -</span><span id="Join.on-1252"><a href="#Join.on-1252"><span class="linenos">1252</span></a><span class="sd"> Args:</span> -</span><span id="Join.on-1253"><a href="#Join.on-1253"><span class="linenos">1253</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Join.on-1254"><a href="#Join.on-1254"><span class="linenos">1254</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Join.on-1255"><a href="#Join.on-1255"><span class="linenos">1255</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="Join.on-1256"><a href="#Join.on-1256"><span class="linenos">1256</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="Join.on-1257"><a href="#Join.on-1257"><span class="linenos">1257</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Join.on-1258"><a href="#Join.on-1258"><span class="linenos">1258</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Join.on-1259"><a href="#Join.on-1259"><span class="linenos">1259</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Join.on-1260"><a href="#Join.on-1260"><span class="linenos">1260</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Join.on-1261"><a href="#Join.on-1261"><span class="linenos">1261</span></a> -</span><span id="Join.on-1262"><a href="#Join.on-1262"><span class="linenos">1262</span></a><span class="sd"> Returns:</span> -</span><span id="Join.on-1263"><a href="#Join.on-1263"><span class="linenos">1263</span></a><span class="sd"> Join: the modified join expression.</span> -</span><span id="Join.on-1264"><a href="#Join.on-1264"><span class="linenos">1264</span></a><span class="sd"> """</span> -</span><span id="Join.on-1265"><a href="#Join.on-1265"><span class="linenos">1265</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Join.on-1266"><a href="#Join.on-1266"><span class="linenos">1266</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Join.on-1267"><a href="#Join.on-1267"><span class="linenos">1267</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Join.on-1268"><a href="#Join.on-1268"><span class="linenos">1268</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"on"</span><span class="p">,</span> -</span><span id="Join.on-1269"><a href="#Join.on-1269"><span class="linenos">1269</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Join.on-1270"><a href="#Join.on-1270"><span class="linenos">1270</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Join.on-1271"><a href="#Join.on-1271"><span class="linenos">1271</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Join.on-1272"><a href="#Join.on-1272"><span class="linenos">1272</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Join.on-1273"><a href="#Join.on-1273"><span class="linenos">1273</span></a> <span class="p">)</span> -</span><span id="Join.on-1274"><a href="#Join.on-1274"><span class="linenos">1274</span></a> -</span><span id="Join.on-1275"><a href="#Join.on-1275"><span class="linenos">1275</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> -</span><span id="Join.on-1276"><a href="#Join.on-1276"><span class="linenos">1276</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Join.on-1277"><a href="#Join.on-1277"><span class="linenos">1277</span></a> -</span><span id="Join.on-1278"><a href="#Join.on-1278"><span class="linenos">1278</span></a> <span class="k">return</span> <span class="n">join</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Join.on-1355"><a href="#Join.on-1355"><span class="linenos">1355</span></a> <span class="k">def</span> <span class="nf">on</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Join.on-1356"><a href="#Join.on-1356"><span class="linenos">1356</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Join.on-1357"><a href="#Join.on-1357"><span class="linenos">1357</span></a><span class="sd"> Append to or set the ON expressions.</span> +</span><span id="Join.on-1358"><a href="#Join.on-1358"><span class="linenos">1358</span></a> +</span><span id="Join.on-1359"><a href="#Join.on-1359"><span class="linenos">1359</span></a><span class="sd"> Example:</span> +</span><span id="Join.on-1360"><a href="#Join.on-1360"><span class="linenos">1360</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Join.on-1361"><a href="#Join.on-1361"><span class="linenos">1361</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).on("y = 1").sql()</span> +</span><span id="Join.on-1362"><a href="#Join.on-1362"><span class="linenos">1362</span></a><span class="sd"> 'JOIN x ON y = 1'</span> +</span><span id="Join.on-1363"><a href="#Join.on-1363"><span class="linenos">1363</span></a> +</span><span id="Join.on-1364"><a href="#Join.on-1364"><span class="linenos">1364</span></a><span class="sd"> Args:</span> +</span><span id="Join.on-1365"><a href="#Join.on-1365"><span class="linenos">1365</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Join.on-1366"><a href="#Join.on-1366"><span class="linenos">1366</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Join.on-1367"><a href="#Join.on-1367"><span class="linenos">1367</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Join.on-1368"><a href="#Join.on-1368"><span class="linenos">1368</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Join.on-1369"><a href="#Join.on-1369"><span class="linenos">1369</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Join.on-1370"><a href="#Join.on-1370"><span class="linenos">1370</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Join.on-1371"><a href="#Join.on-1371"><span class="linenos">1371</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Join.on-1372"><a href="#Join.on-1372"><span class="linenos">1372</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Join.on-1373"><a href="#Join.on-1373"><span class="linenos">1373</span></a> +</span><span id="Join.on-1374"><a href="#Join.on-1374"><span class="linenos">1374</span></a><span class="sd"> Returns:</span> +</span><span id="Join.on-1375"><a href="#Join.on-1375"><span class="linenos">1375</span></a><span class="sd"> Join: the modified join expression.</span> +</span><span id="Join.on-1376"><a href="#Join.on-1376"><span class="linenos">1376</span></a><span class="sd"> """</span> +</span><span id="Join.on-1377"><a href="#Join.on-1377"><span class="linenos">1377</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Join.on-1378"><a href="#Join.on-1378"><span class="linenos">1378</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Join.on-1379"><a href="#Join.on-1379"><span class="linenos">1379</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Join.on-1380"><a href="#Join.on-1380"><span class="linenos">1380</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"on"</span><span class="p">,</span> +</span><span id="Join.on-1381"><a href="#Join.on-1381"><span class="linenos">1381</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Join.on-1382"><a href="#Join.on-1382"><span class="linenos">1382</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Join.on-1383"><a href="#Join.on-1383"><span class="linenos">1383</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Join.on-1384"><a href="#Join.on-1384"><span class="linenos">1384</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Join.on-1385"><a href="#Join.on-1385"><span class="linenos">1385</span></a> <span class="p">)</span> +</span><span id="Join.on-1386"><a href="#Join.on-1386"><span class="linenos">1386</span></a> +</span><span id="Join.on-1387"><a href="#Join.on-1387"><span class="linenos">1387</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> +</span><span id="Join.on-1388"><a href="#Join.on-1388"><span class="linenos">1388</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Join.on-1389"><a href="#Join.on-1389"><span class="linenos">1389</span></a> +</span><span id="Join.on-1390"><a href="#Join.on-1390"><span class="linenos">1390</span></a> <span class="k">return</span> <span class="n">join</span> </span></pre></div> @@ -15205,41 +15724,41 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Join.using"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1280"><a href="#Join.using-1280"><span class="linenos">1280</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="Join.using-1281"><a href="#Join.using-1281"><span class="linenos">1281</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Join.using-1282"><a href="#Join.using-1282"><span class="linenos">1282</span></a><span class="sd"> Append to or set the USING expressions.</span> -</span><span id="Join.using-1283"><a href="#Join.using-1283"><span class="linenos">1283</span></a> -</span><span id="Join.using-1284"><a href="#Join.using-1284"><span class="linenos">1284</span></a><span class="sd"> Example:</span> -</span><span id="Join.using-1285"><a href="#Join.using-1285"><span class="linenos">1285</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="Join.using-1286"><a href="#Join.using-1286"><span class="linenos">1286</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()</span> -</span><span id="Join.using-1287"><a href="#Join.using-1287"><span class="linenos">1287</span></a><span class="sd"> 'JOIN x USING (foo, bla)'</span> -</span><span id="Join.using-1288"><a href="#Join.using-1288"><span class="linenos">1288</span></a> -</span><span id="Join.using-1289"><a href="#Join.using-1289"><span class="linenos">1289</span></a><span class="sd"> Args:</span> -</span><span id="Join.using-1290"><a href="#Join.using-1290"><span class="linenos">1290</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Join.using-1291"><a href="#Join.using-1291"><span class="linenos">1291</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Join.using-1292"><a href="#Join.using-1292"><span class="linenos">1292</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing "using" list.</span> -</span><span id="Join.using-1293"><a href="#Join.using-1293"><span class="linenos">1293</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Join.using-1294"><a href="#Join.using-1294"><span class="linenos">1294</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Join.using-1295"><a href="#Join.using-1295"><span class="linenos">1295</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Join.using-1296"><a href="#Join.using-1296"><span class="linenos">1296</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Join.using-1297"><a href="#Join.using-1297"><span class="linenos">1297</span></a> -</span><span id="Join.using-1298"><a href="#Join.using-1298"><span class="linenos">1298</span></a><span class="sd"> Returns:</span> -</span><span id="Join.using-1299"><a href="#Join.using-1299"><span class="linenos">1299</span></a><span class="sd"> Join: the modified join expression.</span> -</span><span id="Join.using-1300"><a href="#Join.using-1300"><span class="linenos">1300</span></a><span class="sd"> """</span> -</span><span id="Join.using-1301"><a href="#Join.using-1301"><span class="linenos">1301</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Join.using-1302"><a href="#Join.using-1302"><span class="linenos">1302</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Join.using-1303"><a href="#Join.using-1303"><span class="linenos">1303</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Join.using-1304"><a href="#Join.using-1304"><span class="linenos">1304</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> -</span><span id="Join.using-1305"><a href="#Join.using-1305"><span class="linenos">1305</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Join.using-1306"><a href="#Join.using-1306"><span class="linenos">1306</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Join.using-1307"><a href="#Join.using-1307"><span class="linenos">1307</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Join.using-1308"><a href="#Join.using-1308"><span class="linenos">1308</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Join.using-1309"><a href="#Join.using-1309"><span class="linenos">1309</span></a> <span class="p">)</span> -</span><span id="Join.using-1310"><a href="#Join.using-1310"><span class="linenos">1310</span></a> -</span><span id="Join.using-1311"><a href="#Join.using-1311"><span class="linenos">1311</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> -</span><span id="Join.using-1312"><a href="#Join.using-1312"><span class="linenos">1312</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Join.using-1313"><a href="#Join.using-1313"><span class="linenos">1313</span></a> -</span><span id="Join.using-1314"><a href="#Join.using-1314"><span class="linenos">1314</span></a> <span class="k">return</span> <span class="n">join</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Join.using-1392"><a href="#Join.using-1392"><span class="linenos">1392</span></a> <span class="k">def</span> <span class="nf">using</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="Join.using-1393"><a href="#Join.using-1393"><span class="linenos">1393</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Join.using-1394"><a href="#Join.using-1394"><span class="linenos">1394</span></a><span class="sd"> Append to or set the USING expressions.</span> +</span><span id="Join.using-1395"><a href="#Join.using-1395"><span class="linenos">1395</span></a> +</span><span id="Join.using-1396"><a href="#Join.using-1396"><span class="linenos">1396</span></a><span class="sd"> Example:</span> +</span><span id="Join.using-1397"><a href="#Join.using-1397"><span class="linenos">1397</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="Join.using-1398"><a href="#Join.using-1398"><span class="linenos">1398</span></a><span class="sd"> >>> sqlglot.parse_one("JOIN x", into=Join).using("foo", "bla").sql()</span> +</span><span id="Join.using-1399"><a href="#Join.using-1399"><span class="linenos">1399</span></a><span class="sd"> 'JOIN x USING (foo, bla)'</span> +</span><span id="Join.using-1400"><a href="#Join.using-1400"><span class="linenos">1400</span></a> +</span><span id="Join.using-1401"><a href="#Join.using-1401"><span class="linenos">1401</span></a><span class="sd"> Args:</span> +</span><span id="Join.using-1402"><a href="#Join.using-1402"><span class="linenos">1402</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Join.using-1403"><a href="#Join.using-1403"><span class="linenos">1403</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Join.using-1404"><a href="#Join.using-1404"><span class="linenos">1404</span></a><span class="sd"> append (bool): if `True`, concatenate the new expressions to the existing "using" list.</span> +</span><span id="Join.using-1405"><a href="#Join.using-1405"><span class="linenos">1405</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Join.using-1406"><a href="#Join.using-1406"><span class="linenos">1406</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Join.using-1407"><a href="#Join.using-1407"><span class="linenos">1407</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Join.using-1408"><a href="#Join.using-1408"><span class="linenos">1408</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Join.using-1409"><a href="#Join.using-1409"><span class="linenos">1409</span></a> +</span><span id="Join.using-1410"><a href="#Join.using-1410"><span class="linenos">1410</span></a><span class="sd"> Returns:</span> +</span><span id="Join.using-1411"><a href="#Join.using-1411"><span class="linenos">1411</span></a><span class="sd"> Join: the modified join expression.</span> +</span><span id="Join.using-1412"><a href="#Join.using-1412"><span class="linenos">1412</span></a><span class="sd"> """</span> +</span><span id="Join.using-1413"><a href="#Join.using-1413"><span class="linenos">1413</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Join.using-1414"><a href="#Join.using-1414"><span class="linenos">1414</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Join.using-1415"><a href="#Join.using-1415"><span class="linenos">1415</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Join.using-1416"><a href="#Join.using-1416"><span class="linenos">1416</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> +</span><span id="Join.using-1417"><a href="#Join.using-1417"><span class="linenos">1417</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Join.using-1418"><a href="#Join.using-1418"><span class="linenos">1418</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Join.using-1419"><a href="#Join.using-1419"><span class="linenos">1419</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Join.using-1420"><a href="#Join.using-1420"><span class="linenos">1420</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Join.using-1421"><a href="#Join.using-1421"><span class="linenos">1421</span></a> <span class="p">)</span> +</span><span id="Join.using-1422"><a href="#Join.using-1422"><span class="linenos">1422</span></a> +</span><span id="Join.using-1423"><a href="#Join.using-1423"><span class="linenos">1423</span></a> <span class="k">if</span> <span class="n">join</span><span class="o">.</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"CROSS"</span><span class="p">:</span> +</span><span id="Join.using-1424"><a href="#Join.using-1424"><span class="linenos">1424</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Join.using-1425"><a href="#Join.using-1425"><span class="linenos">1425</span></a> +</span><span id="Join.using-1426"><a href="#Join.using-1426"><span class="linenos">1426</span></a> <span class="k">return</span> <span class="n">join</span> </span></pre></div> @@ -15332,8 +15851,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Lateral"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-1317"><a href="#Lateral-1317"><span class="linenos">1317</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="Lateral-1318"><a href="#Lateral-1318"><span class="linenos">1318</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"view"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"outer"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Lateral-1429"><a href="#Lateral-1429"><span class="linenos">1429</span></a><span class="k">class</span> <span class="nc">Lateral</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="Lateral-1430"><a href="#Lateral-1430"><span class="linenos">1430</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"view"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"outer"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -15400,16 +15919,16 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#MatchRecognize"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-1321"><a href="#MatchRecognize-1321"><span class="linenos">1321</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="MatchRecognize-1322"><a href="#MatchRecognize-1322"><span class="linenos">1322</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="MatchRecognize-1323"><a href="#MatchRecognize-1323"><span class="linenos">1323</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1324"><a href="#MatchRecognize-1324"><span class="linenos">1324</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1325"><a href="#MatchRecognize-1325"><span class="linenos">1325</span></a> <span class="s2">"measures"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1326"><a href="#MatchRecognize-1326"><span class="linenos">1326</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1327"><a href="#MatchRecognize-1327"><span class="linenos">1327</span></a> <span class="s2">"after"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1328"><a href="#MatchRecognize-1328"><span class="linenos">1328</span></a> <span class="s2">"pattern"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1329"><a href="#MatchRecognize-1329"><span class="linenos">1329</span></a> <span class="s2">"define"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="MatchRecognize-1330"><a href="#MatchRecognize-1330"><span class="linenos">1330</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="MatchRecognize-1433"><a href="#MatchRecognize-1433"><span class="linenos">1433</span></a><span class="k">class</span> <span class="nc">MatchRecognize</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="MatchRecognize-1434"><a href="#MatchRecognize-1434"><span class="linenos">1434</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="MatchRecognize-1435"><a href="#MatchRecognize-1435"><span class="linenos">1435</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1436"><a href="#MatchRecognize-1436"><span class="linenos">1436</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1437"><a href="#MatchRecognize-1437"><span class="linenos">1437</span></a> <span class="s2">"measures"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1438"><a href="#MatchRecognize-1438"><span class="linenos">1438</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1439"><a href="#MatchRecognize-1439"><span class="linenos">1439</span></a> <span class="s2">"after"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1440"><a href="#MatchRecognize-1440"><span class="linenos">1440</span></a> <span class="s2">"pattern"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1441"><a href="#MatchRecognize-1441"><span class="linenos">1441</span></a> <span class="s2">"define"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="MatchRecognize-1442"><a href="#MatchRecognize-1442"><span class="linenos">1442</span></a> <span class="p">}</span> </span></pre></div> @@ -15470,8 +15989,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Final"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Final-1335"><a href="#Final-1335"><span class="linenos">1335</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Final-1336"><a href="#Final-1336"><span class="linenos">1336</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Final-1447"><a href="#Final-1447"><span class="linenos">1447</span></a><span class="k">class</span> <span class="nc">Final</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Final-1448"><a href="#Final-1448"><span class="linenos">1448</span></a> <span class="k">pass</span> </span></pre></div> @@ -15532,8 +16051,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Offset"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Offset-1339"><a href="#Offset-1339"><span class="linenos">1339</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Offset-1340"><a href="#Offset-1340"><span class="linenos">1340</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Offset-1451"><a href="#Offset-1451"><span class="linenos">1451</span></a><span class="k">class</span> <span class="nc">Offset</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Offset-1452"><a href="#Offset-1452"><span class="linenos">1452</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -15594,8 +16113,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Order"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Order-1343"><a href="#Order-1343"><span class="linenos">1343</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Order-1344"><a href="#Order-1344"><span class="linenos">1344</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Order-1455"><a href="#Order-1455"><span class="linenos">1455</span></a><span class="k">class</span> <span class="nc">Order</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Order-1456"><a href="#Order-1456"><span class="linenos">1456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -15656,8 +16175,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Cluster"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-1349"><a href="#Cluster-1349"><span class="linenos">1349</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> -</span><span id="Cluster-1350"><a href="#Cluster-1350"><span class="linenos">1350</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Cluster-1461"><a href="#Cluster-1461"><span class="linenos">1461</span></a><span class="k">class</span> <span class="nc">Cluster</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> +</span><span id="Cluster-1462"><a href="#Cluster-1462"><span class="linenos">1462</span></a> <span class="k">pass</span> </span></pre></div> @@ -15718,8 +16237,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Distribute"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-1353"><a href="#Distribute-1353"><span class="linenos">1353</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> -</span><span id="Distribute-1354"><a href="#Distribute-1354"><span class="linenos">1354</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Distribute-1465"><a href="#Distribute-1465"><span class="linenos">1465</span></a><span class="k">class</span> <span class="nc">Distribute</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> +</span><span id="Distribute-1466"><a href="#Distribute-1466"><span class="linenos">1466</span></a> <span class="k">pass</span> </span></pre></div> @@ -15780,8 +16299,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Sort"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-1357"><a href="#Sort-1357"><span class="linenos">1357</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> -</span><span id="Sort-1358"><a href="#Sort-1358"><span class="linenos">1358</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Sort-1469"><a href="#Sort-1469"><span class="linenos">1469</span></a><span class="k">class</span> <span class="nc">Sort</span><span class="p">(</span><span class="n">Order</span><span class="p">):</span> +</span><span id="Sort-1470"><a href="#Sort-1470"><span class="linenos">1470</span></a> <span class="k">pass</span> </span></pre></div> @@ -15842,8 +16361,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Ordered"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-1361"><a href="#Ordered-1361"><span class="linenos">1361</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Ordered-1362"><a href="#Ordered-1362"><span class="linenos">1362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"desc"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"nulls_first"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Ordered-1473"><a href="#Ordered-1473"><span class="linenos">1473</span></a><span class="k">class</span> <span class="nc">Ordered</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Ordered-1474"><a href="#Ordered-1474"><span class="linenos">1474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"desc"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"nulls_first"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -15904,8 +16423,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Property"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Property-1365"><a href="#Property-1365"><span class="linenos">1365</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Property-1366"><a href="#Property-1366"><span class="linenos">1366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"value"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Property-1477"><a href="#Property-1477"><span class="linenos">1477</span></a><span class="k">class</span> <span class="nc">Property</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Property-1478"><a href="#Property-1478"><span class="linenos">1478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"value"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -15966,8 +16485,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#AfterJournalProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AfterJournalProperty-1369"><a href="#AfterJournalProperty-1369"><span class="linenos">1369</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="AfterJournalProperty-1370"><a href="#AfterJournalProperty-1370"><span class="linenos">1370</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AfterJournalProperty-1481"><a href="#AfterJournalProperty-1481"><span class="linenos">1481</span></a><span class="k">class</span> <span class="nc">AfterJournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="AfterJournalProperty-1482"><a href="#AfterJournalProperty-1482"><span class="linenos">1482</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"local"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -16028,8 +16547,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#AlgorithmProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AlgorithmProperty-1373"><a href="#AlgorithmProperty-1373"><span class="linenos">1373</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="AlgorithmProperty-1374"><a href="#AlgorithmProperty-1374"><span class="linenos">1374</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AlgorithmProperty-1485"><a href="#AlgorithmProperty-1485"><span class="linenos">1485</span></a><span class="k">class</span> <span class="nc">AlgorithmProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="AlgorithmProperty-1486"><a href="#AlgorithmProperty-1486"><span class="linenos">1486</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16090,8 +16609,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#AutoIncrementProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementProperty-1377"><a href="#AutoIncrementProperty-1377"><span class="linenos">1377</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="AutoIncrementProperty-1378"><a href="#AutoIncrementProperty-1378"><span class="linenos">1378</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AutoIncrementProperty-1489"><a href="#AutoIncrementProperty-1489"><span class="linenos">1489</span></a><span class="k">class</span> <span class="nc">AutoIncrementProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="AutoIncrementProperty-1490"><a href="#AutoIncrementProperty-1490"><span class="linenos">1490</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16152,8 +16671,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#BlockCompressionProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BlockCompressionProperty-1381"><a href="#BlockCompressionProperty-1381"><span class="linenos">1381</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="BlockCompressionProperty-1382"><a href="#BlockCompressionProperty-1382"><span class="linenos">1382</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"autotemp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"always"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"manual"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"never"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BlockCompressionProperty-1493"><a href="#BlockCompressionProperty-1493"><span class="linenos">1493</span></a><span class="k">class</span> <span class="nc">BlockCompressionProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="BlockCompressionProperty-1494"><a href="#BlockCompressionProperty-1494"><span class="linenos">1494</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"autotemp"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"always"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"manual"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"never"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16214,8 +16733,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#CharacterSetProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetProperty-1385"><a href="#CharacterSetProperty-1385"><span class="linenos">1385</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="CharacterSetProperty-1386"><a href="#CharacterSetProperty-1386"><span class="linenos">1386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CharacterSetProperty-1497"><a href="#CharacterSetProperty-1497"><span class="linenos">1497</span></a><span class="k">class</span> <span class="nc">CharacterSetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="CharacterSetProperty-1498"><a href="#CharacterSetProperty-1498"><span class="linenos">1498</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16276,8 +16795,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#ChecksumProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ChecksumProperty-1389"><a href="#ChecksumProperty-1389"><span class="linenos">1389</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="ChecksumProperty-1390"><a href="#ChecksumProperty-1390"><span class="linenos">1390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ChecksumProperty-1501"><a href="#ChecksumProperty-1501"><span class="linenos">1501</span></a><span class="k">class</span> <span class="nc">ChecksumProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="ChecksumProperty-1502"><a href="#ChecksumProperty-1502"><span class="linenos">1502</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -16338,8 +16857,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#CollateProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CollateProperty-1393"><a href="#CollateProperty-1393"><span class="linenos">1393</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="CollateProperty-1394"><a href="#CollateProperty-1394"><span class="linenos">1394</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CollateProperty-1505"><a href="#CollateProperty-1505"><span class="linenos">1505</span></a><span class="k">class</span> <span class="nc">CollateProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="CollateProperty-1506"><a href="#CollateProperty-1506"><span class="linenos">1506</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16400,8 +16919,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#DataBlocksizeProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-1397"><a href="#DataBlocksizeProperty-1397"><span class="linenos">1397</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="DataBlocksizeProperty-1398"><a href="#DataBlocksizeProperty-1398"><span class="linenos">1398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"units"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DataBlocksizeProperty-1509"><a href="#DataBlocksizeProperty-1509"><span class="linenos">1509</span></a><span class="k">class</span> <span class="nc">DataBlocksizeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="DataBlocksizeProperty-1510"><a href="#DataBlocksizeProperty-1510"><span class="linenos">1510</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"units"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"min"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -16462,8 +16981,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#DefinerProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DefinerProperty-1401"><a href="#DefinerProperty-1401"><span class="linenos">1401</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="DefinerProperty-1402"><a href="#DefinerProperty-1402"><span class="linenos">1402</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DefinerProperty-1513"><a href="#DefinerProperty-1513"><span class="linenos">1513</span></a><span class="k">class</span> <span class="nc">DefinerProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="DefinerProperty-1514"><a href="#DefinerProperty-1514"><span class="linenos">1514</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16524,8 +17043,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#DistKeyProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DistKeyProperty-1405"><a href="#DistKeyProperty-1405"><span class="linenos">1405</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="DistKeyProperty-1406"><a href="#DistKeyProperty-1406"><span class="linenos">1406</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DistKeyProperty-1517"><a href="#DistKeyProperty-1517"><span class="linenos">1517</span></a><span class="k">class</span> <span class="nc">DistKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="DistKeyProperty-1518"><a href="#DistKeyProperty-1518"><span class="linenos">1518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16586,8 +17105,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#DistStyleProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DistStyleProperty-1409"><a href="#DistStyleProperty-1409"><span class="linenos">1409</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="DistStyleProperty-1410"><a href="#DistStyleProperty-1410"><span class="linenos">1410</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DistStyleProperty-1521"><a href="#DistStyleProperty-1521"><span class="linenos">1521</span></a><span class="k">class</span> <span class="nc">DistStyleProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="DistStyleProperty-1522"><a href="#DistStyleProperty-1522"><span class="linenos">1522</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16648,8 +17167,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#EngineProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="EngineProperty-1413"><a href="#EngineProperty-1413"><span class="linenos">1413</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="EngineProperty-1414"><a href="#EngineProperty-1414"><span class="linenos">1414</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="EngineProperty-1525"><a href="#EngineProperty-1525"><span class="linenos">1525</span></a><span class="k">class</span> <span class="nc">EngineProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="EngineProperty-1526"><a href="#EngineProperty-1526"><span class="linenos">1526</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16710,8 +17229,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#ExecuteAsProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ExecuteAsProperty-1417"><a href="#ExecuteAsProperty-1417"><span class="linenos">1417</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="ExecuteAsProperty-1418"><a href="#ExecuteAsProperty-1418"><span class="linenos">1418</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ExecuteAsProperty-1529"><a href="#ExecuteAsProperty-1529"><span class="linenos">1529</span></a><span class="k">class</span> <span class="nc">ExecuteAsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="ExecuteAsProperty-1530"><a href="#ExecuteAsProperty-1530"><span class="linenos">1530</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16772,8 +17291,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#ExternalProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ExternalProperty-1421"><a href="#ExternalProperty-1421"><span class="linenos">1421</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="ExternalProperty-1422"><a href="#ExternalProperty-1422"><span class="linenos">1422</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ExternalProperty-1533"><a href="#ExternalProperty-1533"><span class="linenos">1533</span></a><span class="k">class</span> <span class="nc">ExternalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="ExternalProperty-1534"><a href="#ExternalProperty-1534"><span class="linenos">1534</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -16834,8 +17353,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#FallbackProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="FallbackProperty-1425"><a href="#FallbackProperty-1425"><span class="linenos">1425</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="FallbackProperty-1426"><a href="#FallbackProperty-1426"><span class="linenos">1426</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"protection"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="FallbackProperty-1537"><a href="#FallbackProperty-1537"><span class="linenos">1537</span></a><span class="k">class</span> <span class="nc">FallbackProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="FallbackProperty-1538"><a href="#FallbackProperty-1538"><span class="linenos">1538</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"protection"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -16896,8 +17415,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#FileFormatProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="FileFormatProperty-1429"><a href="#FileFormatProperty-1429"><span class="linenos">1429</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="FileFormatProperty-1430"><a href="#FileFormatProperty-1430"><span class="linenos">1430</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="FileFormatProperty-1541"><a href="#FileFormatProperty-1541"><span class="linenos">1541</span></a><span class="k">class</span> <span class="nc">FileFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="FileFormatProperty-1542"><a href="#FileFormatProperty-1542"><span class="linenos">1542</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -16958,8 +17477,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#FreespaceProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="FreespaceProperty-1433"><a href="#FreespaceProperty-1433"><span class="linenos">1433</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="FreespaceProperty-1434"><a href="#FreespaceProperty-1434"><span class="linenos">1434</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="FreespaceProperty-1545"><a href="#FreespaceProperty-1545"><span class="linenos">1545</span></a><span class="k">class</span> <span class="nc">FreespaceProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="FreespaceProperty-1546"><a href="#FreespaceProperty-1546"><span class="linenos">1546</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17020,14 +17539,14 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#IsolatedLoadingProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-1437"><a href="#IsolatedLoadingProperty-1437"><span class="linenos">1437</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="IsolatedLoadingProperty-1438"><a href="#IsolatedLoadingProperty-1438"><span class="linenos">1438</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="IsolatedLoadingProperty-1439"><a href="#IsolatedLoadingProperty-1439"><span class="linenos">1439</span></a> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="IsolatedLoadingProperty-1440"><a href="#IsolatedLoadingProperty-1440"><span class="linenos">1440</span></a> <span class="s2">"concurrent"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="IsolatedLoadingProperty-1441"><a href="#IsolatedLoadingProperty-1441"><span class="linenos">1441</span></a> <span class="s2">"for_all"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="IsolatedLoadingProperty-1442"><a href="#IsolatedLoadingProperty-1442"><span class="linenos">1442</span></a> <span class="s2">"for_insert"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="IsolatedLoadingProperty-1443"><a href="#IsolatedLoadingProperty-1443"><span class="linenos">1443</span></a> <span class="s2">"for_none"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="IsolatedLoadingProperty-1444"><a href="#IsolatedLoadingProperty-1444"><span class="linenos">1444</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="IsolatedLoadingProperty-1549"><a href="#IsolatedLoadingProperty-1549"><span class="linenos">1549</span></a><span class="k">class</span> <span class="nc">IsolatedLoadingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="IsolatedLoadingProperty-1550"><a href="#IsolatedLoadingProperty-1550"><span class="linenos">1550</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="IsolatedLoadingProperty-1551"><a href="#IsolatedLoadingProperty-1551"><span class="linenos">1551</span></a> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="IsolatedLoadingProperty-1552"><a href="#IsolatedLoadingProperty-1552"><span class="linenos">1552</span></a> <span class="s2">"concurrent"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="IsolatedLoadingProperty-1553"><a href="#IsolatedLoadingProperty-1553"><span class="linenos">1553</span></a> <span class="s2">"for_all"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="IsolatedLoadingProperty-1554"><a href="#IsolatedLoadingProperty-1554"><span class="linenos">1554</span></a> <span class="s2">"for_insert"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="IsolatedLoadingProperty-1555"><a href="#IsolatedLoadingProperty-1555"><span class="linenos">1555</span></a> <span class="s2">"for_none"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="IsolatedLoadingProperty-1556"><a href="#IsolatedLoadingProperty-1556"><span class="linenos">1556</span></a> <span class="p">}</span> </span></pre></div> @@ -17088,8 +17607,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#JournalProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-1447"><a href="#JournalProperty-1447"><span class="linenos">1447</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="JournalProperty-1448"><a href="#JournalProperty-1448"><span class="linenos">1448</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"before"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JournalProperty-1559"><a href="#JournalProperty-1559"><span class="linenos">1559</span></a><span class="k">class</span> <span class="nc">JournalProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="JournalProperty-1560"><a href="#JournalProperty-1560"><span class="linenos">1560</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"dual"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"before"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17150,8 +17669,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#LanguageProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LanguageProperty-1451"><a href="#LanguageProperty-1451"><span class="linenos">1451</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="LanguageProperty-1452"><a href="#LanguageProperty-1452"><span class="linenos">1452</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LanguageProperty-1563"><a href="#LanguageProperty-1563"><span class="linenos">1563</span></a><span class="k">class</span> <span class="nc">LanguageProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="LanguageProperty-1564"><a href="#LanguageProperty-1564"><span class="linenos">1564</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -17212,8 +17731,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#LikeProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LikeProperty-1455"><a href="#LikeProperty-1455"><span class="linenos">1455</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="LikeProperty-1456"><a href="#LikeProperty-1456"><span class="linenos">1456</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LikeProperty-1567"><a href="#LikeProperty-1567"><span class="linenos">1567</span></a><span class="k">class</span> <span class="nc">LikeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="LikeProperty-1568"><a href="#LikeProperty-1568"><span class="linenos">1568</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17274,8 +17793,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#LocationProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LocationProperty-1459"><a href="#LocationProperty-1459"><span class="linenos">1459</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="LocationProperty-1460"><a href="#LocationProperty-1460"><span class="linenos">1460</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LocationProperty-1571"><a href="#LocationProperty-1571"><span class="linenos">1571</span></a><span class="k">class</span> <span class="nc">LocationProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="LocationProperty-1572"><a href="#LocationProperty-1572"><span class="linenos">1572</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -17336,14 +17855,14 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#LockingProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-1463"><a href="#LockingProperty-1463"><span class="linenos">1463</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="LockingProperty-1464"><a href="#LockingProperty-1464"><span class="linenos">1464</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="LockingProperty-1465"><a href="#LockingProperty-1465"><span class="linenos">1465</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LockingProperty-1466"><a href="#LockingProperty-1466"><span class="linenos">1466</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="LockingProperty-1467"><a href="#LockingProperty-1467"><span class="linenos">1467</span></a> <span class="s2">"for_or_in"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="LockingProperty-1468"><a href="#LockingProperty-1468"><span class="linenos">1468</span></a> <span class="s2">"lock_type"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="LockingProperty-1469"><a href="#LockingProperty-1469"><span class="linenos">1469</span></a> <span class="s2">"override"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="LockingProperty-1470"><a href="#LockingProperty-1470"><span class="linenos">1470</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LockingProperty-1575"><a href="#LockingProperty-1575"><span class="linenos">1575</span></a><span class="k">class</span> <span class="nc">LockingProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="LockingProperty-1576"><a href="#LockingProperty-1576"><span class="linenos">1576</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="LockingProperty-1577"><a href="#LockingProperty-1577"><span class="linenos">1577</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LockingProperty-1578"><a href="#LockingProperty-1578"><span class="linenos">1578</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="LockingProperty-1579"><a href="#LockingProperty-1579"><span class="linenos">1579</span></a> <span class="s2">"for_or_in"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="LockingProperty-1580"><a href="#LockingProperty-1580"><span class="linenos">1580</span></a> <span class="s2">"lock_type"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="LockingProperty-1581"><a href="#LockingProperty-1581"><span class="linenos">1581</span></a> <span class="s2">"override"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="LockingProperty-1582"><a href="#LockingProperty-1582"><span class="linenos">1582</span></a> <span class="p">}</span> </span></pre></div> @@ -17404,8 +17923,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#LogProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LogProperty-1473"><a href="#LogProperty-1473"><span class="linenos">1473</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="LogProperty-1474"><a href="#LogProperty-1474"><span class="linenos">1474</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LogProperty-1585"><a href="#LogProperty-1585"><span class="linenos">1585</span></a><span class="k">class</span> <span class="nc">LogProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="LogProperty-1586"><a href="#LogProperty-1586"><span class="linenos">1586</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -17466,8 +17985,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#MaterializedProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MaterializedProperty-1477"><a href="#MaterializedProperty-1477"><span class="linenos">1477</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="MaterializedProperty-1478"><a href="#MaterializedProperty-1478"><span class="linenos">1478</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="MaterializedProperty-1589"><a href="#MaterializedProperty-1589"><span class="linenos">1589</span></a><span class="k">class</span> <span class="nc">MaterializedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="MaterializedProperty-1590"><a href="#MaterializedProperty-1590"><span class="linenos">1590</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17528,8 +18047,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#MergeBlockRatioProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="MergeBlockRatioProperty-1481"><a href="#MergeBlockRatioProperty-1481"><span class="linenos">1481</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="MergeBlockRatioProperty-1482"><a href="#MergeBlockRatioProperty-1482"><span class="linenos">1482</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="MergeBlockRatioProperty-1593"><a href="#MergeBlockRatioProperty-1593"><span class="linenos">1593</span></a><span class="k">class</span> <span class="nc">MergeBlockRatioProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="MergeBlockRatioProperty-1594"><a href="#MergeBlockRatioProperty-1594"><span class="linenos">1594</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"no"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17590,8 +18109,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#NoPrimaryIndexProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-1485"><a href="#NoPrimaryIndexProperty-1485"><span class="linenos">1485</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="NoPrimaryIndexProperty-1486"><a href="#NoPrimaryIndexProperty-1486"><span class="linenos">1486</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="NoPrimaryIndexProperty-1597"><a href="#NoPrimaryIndexProperty-1597"><span class="linenos">1597</span></a><span class="k">class</span> <span class="nc">NoPrimaryIndexProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="NoPrimaryIndexProperty-1598"><a href="#NoPrimaryIndexProperty-1598"><span class="linenos">1598</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17652,8 +18171,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#OnCommitProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="OnCommitProperty-1489"><a href="#OnCommitProperty-1489"><span class="linenos">1489</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="OnCommitProperty-1490"><a href="#OnCommitProperty-1490"><span class="linenos">1490</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="OnCommitProperty-1601"><a href="#OnCommitProperty-1601"><span class="linenos">1601</span></a><span class="k">class</span> <span class="nc">OnCommitProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="OnCommitProperty-1602"><a href="#OnCommitProperty-1602"><span class="linenos">1602</span></a> <span class="n">arg_type</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17714,8 +18233,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#PartitionedByProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedByProperty-1493"><a href="#PartitionedByProperty-1493"><span class="linenos">1493</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="PartitionedByProperty-1494"><a href="#PartitionedByProperty-1494"><span class="linenos">1494</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PartitionedByProperty-1605"><a href="#PartitionedByProperty-1605"><span class="linenos">1605</span></a><span class="k">class</span> <span class="nc">PartitionedByProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="PartitionedByProperty-1606"><a href="#PartitionedByProperty-1606"><span class="linenos">1606</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -17776,8 +18295,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#ReturnsProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ReturnsProperty-1497"><a href="#ReturnsProperty-1497"><span class="linenos">1497</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="ReturnsProperty-1498"><a href="#ReturnsProperty-1498"><span class="linenos">1498</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ReturnsProperty-1609"><a href="#ReturnsProperty-1609"><span class="linenos">1609</span></a><span class="k">class</span> <span class="nc">ReturnsProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="ReturnsProperty-1610"><a href="#ReturnsProperty-1610"><span class="linenos">1610</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"is_table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"table"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -17838,17 +18357,17 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#RowFormatDelimitedProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-1501"><a href="#RowFormatDelimitedProperty-1501"><span class="linenos">1501</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="RowFormatDelimitedProperty-1502"><a href="#RowFormatDelimitedProperty-1502"><span class="linenos">1502</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span> -</span><span id="RowFormatDelimitedProperty-1503"><a href="#RowFormatDelimitedProperty-1503"><span class="linenos">1503</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="RowFormatDelimitedProperty-1504"><a href="#RowFormatDelimitedProperty-1504"><span class="linenos">1504</span></a> <span class="s2">"fields"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1505"><a href="#RowFormatDelimitedProperty-1505"><span class="linenos">1505</span></a> <span class="s2">"escaped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1506"><a href="#RowFormatDelimitedProperty-1506"><span class="linenos">1506</span></a> <span class="s2">"collection_items"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1507"><a href="#RowFormatDelimitedProperty-1507"><span class="linenos">1507</span></a> <span class="s2">"map_keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1508"><a href="#RowFormatDelimitedProperty-1508"><span class="linenos">1508</span></a> <span class="s2">"lines"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1509"><a href="#RowFormatDelimitedProperty-1509"><span class="linenos">1509</span></a> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1510"><a href="#RowFormatDelimitedProperty-1510"><span class="linenos">1510</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RowFormatDelimitedProperty-1511"><a href="#RowFormatDelimitedProperty-1511"><span class="linenos">1511</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatDelimitedProperty-1613"><a href="#RowFormatDelimitedProperty-1613"><span class="linenos">1613</span></a><span class="k">class</span> <span class="nc">RowFormatDelimitedProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="RowFormatDelimitedProperty-1614"><a href="#RowFormatDelimitedProperty-1614"><span class="linenos">1614</span></a> <span class="c1"># https://cwiki.apache.org/confluence/display/hive/languagemanual+dml</span> +</span><span id="RowFormatDelimitedProperty-1615"><a href="#RowFormatDelimitedProperty-1615"><span class="linenos">1615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="RowFormatDelimitedProperty-1616"><a href="#RowFormatDelimitedProperty-1616"><span class="linenos">1616</span></a> <span class="s2">"fields"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1617"><a href="#RowFormatDelimitedProperty-1617"><span class="linenos">1617</span></a> <span class="s2">"escaped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1618"><a href="#RowFormatDelimitedProperty-1618"><span class="linenos">1618</span></a> <span class="s2">"collection_items"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1619"><a href="#RowFormatDelimitedProperty-1619"><span class="linenos">1619</span></a> <span class="s2">"map_keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1620"><a href="#RowFormatDelimitedProperty-1620"><span class="linenos">1620</span></a> <span class="s2">"lines"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1621"><a href="#RowFormatDelimitedProperty-1621"><span class="linenos">1621</span></a> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1622"><a href="#RowFormatDelimitedProperty-1622"><span class="linenos">1622</span></a> <span class="s2">"serde"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RowFormatDelimitedProperty-1623"><a href="#RowFormatDelimitedProperty-1623"><span class="linenos">1623</span></a> <span class="p">}</span> </span></pre></div> @@ -17909,8 +18428,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#RowFormatSerdeProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatSerdeProperty-1514"><a href="#RowFormatSerdeProperty-1514"><span class="linenos">1514</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="RowFormatSerdeProperty-1515"><a href="#RowFormatSerdeProperty-1515"><span class="linenos">1515</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RowFormatSerdeProperty-1626"><a href="#RowFormatSerdeProperty-1626"><span class="linenos">1626</span></a><span class="k">class</span> <span class="nc">RowFormatSerdeProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="RowFormatSerdeProperty-1627"><a href="#RowFormatSerdeProperty-1627"><span class="linenos">1627</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -17971,8 +18490,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#SchemaCommentProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SchemaCommentProperty-1518"><a href="#SchemaCommentProperty-1518"><span class="linenos">1518</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="SchemaCommentProperty-1519"><a href="#SchemaCommentProperty-1519"><span class="linenos">1519</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SchemaCommentProperty-1630"><a href="#SchemaCommentProperty-1630"><span class="linenos">1630</span></a><span class="k">class</span> <span class="nc">SchemaCommentProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="SchemaCommentProperty-1631"><a href="#SchemaCommentProperty-1631"><span class="linenos">1631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18033,8 +18552,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#SerdeProperties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SerdeProperties-1522"><a href="#SerdeProperties-1522"><span class="linenos">1522</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="SerdeProperties-1523"><a href="#SerdeProperties-1523"><span class="linenos">1523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SerdeProperties-1634"><a href="#SerdeProperties-1634"><span class="linenos">1634</span></a><span class="k">class</span> <span class="nc">SerdeProperties</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="SerdeProperties-1635"><a href="#SerdeProperties-1635"><span class="linenos">1635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18095,8 +18614,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#SetProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SetProperty-1526"><a href="#SetProperty-1526"><span class="linenos">1526</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="SetProperty-1527"><a href="#SetProperty-1527"><span class="linenos">1527</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"multi"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SetProperty-1638"><a href="#SetProperty-1638"><span class="linenos">1638</span></a><span class="k">class</span> <span class="nc">SetProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="SetProperty-1639"><a href="#SetProperty-1639"><span class="linenos">1639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"multi"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18157,8 +18676,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#SortKeyProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SortKeyProperty-1530"><a href="#SortKeyProperty-1530"><span class="linenos">1530</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="SortKeyProperty-1531"><a href="#SortKeyProperty-1531"><span class="linenos">1531</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"compound"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SortKeyProperty-1642"><a href="#SortKeyProperty-1642"><span class="linenos">1642</span></a><span class="k">class</span> <span class="nc">SortKeyProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="SortKeyProperty-1643"><a href="#SortKeyProperty-1643"><span class="linenos">1643</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"compound"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -18219,8 +18738,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#SqlSecurityProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SqlSecurityProperty-1534"><a href="#SqlSecurityProperty-1534"><span class="linenos">1534</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="SqlSecurityProperty-1535"><a href="#SqlSecurityProperty-1535"><span class="linenos">1535</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"definer"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SqlSecurityProperty-1646"><a href="#SqlSecurityProperty-1646"><span class="linenos">1646</span></a><span class="k">class</span> <span class="nc">SqlSecurityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="SqlSecurityProperty-1647"><a href="#SqlSecurityProperty-1647"><span class="linenos">1647</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"definer"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18281,8 +18800,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#TableFormatProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TableFormatProperty-1538"><a href="#TableFormatProperty-1538"><span class="linenos">1538</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="TableFormatProperty-1539"><a href="#TableFormatProperty-1539"><span class="linenos">1539</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TableFormatProperty-1650"><a href="#TableFormatProperty-1650"><span class="linenos">1650</span></a><span class="k">class</span> <span class="nc">TableFormatProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="TableFormatProperty-1651"><a href="#TableFormatProperty-1651"><span class="linenos">1651</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18343,8 +18862,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#TemporaryProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TemporaryProperty-1542"><a href="#TemporaryProperty-1542"><span class="linenos">1542</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="TemporaryProperty-1543"><a href="#TemporaryProperty-1543"><span class="linenos">1543</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"global_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TemporaryProperty-1654"><a href="#TemporaryProperty-1654"><span class="linenos">1654</span></a><span class="k">class</span> <span class="nc">TemporaryProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="TemporaryProperty-1655"><a href="#TemporaryProperty-1655"><span class="linenos">1655</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"global_"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18405,8 +18924,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#TransientProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TransientProperty-1546"><a href="#TransientProperty-1546"><span class="linenos">1546</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="TransientProperty-1547"><a href="#TransientProperty-1547"><span class="linenos">1547</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TransientProperty-1658"><a href="#TransientProperty-1658"><span class="linenos">1658</span></a><span class="k">class</span> <span class="nc">TransientProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="TransientProperty-1659"><a href="#TransientProperty-1659"><span class="linenos">1659</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -18467,8 +18986,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#VolatilityProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="VolatilityProperty-1550"><a href="#VolatilityProperty-1550"><span class="linenos">1550</span></a><span class="k">class</span> <span class="nc">VolatilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="VolatilityProperty-1551"><a href="#VolatilityProperty-1551"><span class="linenos">1551</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="VolatilityProperty-1662"><a href="#VolatilityProperty-1662"><span class="linenos">1662</span></a><span class="k">class</span> <span class="nc">VolatilityProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="VolatilityProperty-1663"><a href="#VolatilityProperty-1663"><span class="linenos">1663</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18529,8 +19048,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#WithDataProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="WithDataProperty-1554"><a href="#WithDataProperty-1554"><span class="linenos">1554</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="WithDataProperty-1555"><a href="#WithDataProperty-1555"><span class="linenos">1555</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"statistics"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="WithDataProperty-1666"><a href="#WithDataProperty-1666"><span class="linenos">1666</span></a><span class="k">class</span> <span class="nc">WithDataProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="WithDataProperty-1667"><a href="#WithDataProperty-1667"><span class="linenos">1667</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"no"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"statistics"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -18591,8 +19110,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#WithJournalTableProperty"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="WithJournalTableProperty-1558"><a href="#WithJournalTableProperty-1558"><span class="linenos">1558</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> -</span><span id="WithJournalTableProperty-1559"><a href="#WithJournalTableProperty-1559"><span class="linenos">1559</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="WithJournalTableProperty-1670"><a href="#WithJournalTableProperty-1670"><span class="linenos">1670</span></a><span class="k">class</span> <span class="nc">WithJournalTableProperty</span><span class="p">(</span><span class="n">Property</span><span class="p">):</span> +</span><span id="WithJournalTableProperty-1671"><a href="#WithJournalTableProperty-1671"><span class="linenos">1671</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -18653,65 +19172,65 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Properties-1562"><a href="#Properties-1562"><span class="linenos">1562</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Properties-1563"><a href="#Properties-1563"><span class="linenos">1563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Properties-1564"><a href="#Properties-1564"><span class="linenos">1564</span></a> -</span><span id="Properties-1565"><a href="#Properties-1565"><span class="linenos">1565</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Properties-1566"><a href="#Properties-1566"><span class="linenos">1566</span></a> <span class="s2">"ALGORITHM"</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span> -</span><span id="Properties-1567"><a href="#Properties-1567"><span class="linenos">1567</span></a> <span class="s2">"AUTO_INCREMENT"</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span> -</span><span id="Properties-1568"><a href="#Properties-1568"><span class="linenos">1568</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span> -</span><span id="Properties-1569"><a href="#Properties-1569"><span class="linenos">1569</span></a> <span class="s2">"COLLATE"</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span> -</span><span id="Properties-1570"><a href="#Properties-1570"><span class="linenos">1570</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span> -</span><span id="Properties-1571"><a href="#Properties-1571"><span class="linenos">1571</span></a> <span class="s2">"DEFINER"</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span> -</span><span id="Properties-1572"><a href="#Properties-1572"><span class="linenos">1572</span></a> <span class="s2">"DISTKEY"</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span> -</span><span id="Properties-1573"><a href="#Properties-1573"><span class="linenos">1573</span></a> <span class="s2">"DISTSTYLE"</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span> -</span><span id="Properties-1574"><a href="#Properties-1574"><span class="linenos">1574</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span> -</span><span id="Properties-1575"><a href="#Properties-1575"><span class="linenos">1575</span></a> <span class="s2">"EXECUTE AS"</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span> -</span><span id="Properties-1576"><a href="#Properties-1576"><span class="linenos">1576</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span> -</span><span id="Properties-1577"><a href="#Properties-1577"><span class="linenos">1577</span></a> <span class="s2">"LANGUAGE"</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span> -</span><span id="Properties-1578"><a href="#Properties-1578"><span class="linenos">1578</span></a> <span class="s2">"LOCATION"</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span> -</span><span id="Properties-1579"><a href="#Properties-1579"><span class="linenos">1579</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span> -</span><span id="Properties-1580"><a href="#Properties-1580"><span class="linenos">1580</span></a> <span class="s2">"RETURNS"</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span> -</span><span id="Properties-1581"><a href="#Properties-1581"><span class="linenos">1581</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span> -</span><span id="Properties-1582"><a href="#Properties-1582"><span class="linenos">1582</span></a> <span class="s2">"TABLE_FORMAT"</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span> -</span><span id="Properties-1583"><a href="#Properties-1583"><span class="linenos">1583</span></a> <span class="p">}</span> -</span><span id="Properties-1584"><a href="#Properties-1584"><span class="linenos">1584</span></a> -</span><span id="Properties-1585"><a href="#Properties-1585"><span class="linenos">1585</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> -</span><span id="Properties-1586"><a href="#Properties-1586"><span class="linenos">1586</span></a> -</span><span id="Properties-1587"><a href="#Properties-1587"><span class="linenos">1587</span></a> <span class="c1"># CREATE property locations</span> -</span><span id="Properties-1588"><a href="#Properties-1588"><span class="linenos">1588</span></a> <span class="c1"># Form: schema specified</span> -</span><span id="Properties-1589"><a href="#Properties-1589"><span class="linenos">1589</span></a> <span class="c1"># create [POST_CREATE]</span> -</span><span id="Properties-1590"><a href="#Properties-1590"><span class="linenos">1590</span></a> <span class="c1"># table a [POST_NAME]</span> -</span><span id="Properties-1591"><a href="#Properties-1591"><span class="linenos">1591</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span> -</span><span id="Properties-1592"><a href="#Properties-1592"><span class="linenos">1592</span></a> <span class="c1"># with ([POST_WITH])</span> -</span><span id="Properties-1593"><a href="#Properties-1593"><span class="linenos">1593</span></a> <span class="c1"># index (b) [POST_INDEX]</span> -</span><span id="Properties-1594"><a href="#Properties-1594"><span class="linenos">1594</span></a> <span class="c1">#</span> -</span><span id="Properties-1595"><a href="#Properties-1595"><span class="linenos">1595</span></a> <span class="c1"># Form: alias selection</span> -</span><span id="Properties-1596"><a href="#Properties-1596"><span class="linenos">1596</span></a> <span class="c1"># create [POST_CREATE]</span> -</span><span id="Properties-1597"><a href="#Properties-1597"><span class="linenos">1597</span></a> <span class="c1"># table a [POST_NAME]</span> -</span><span id="Properties-1598"><a href="#Properties-1598"><span class="linenos">1598</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span> -</span><span id="Properties-1599"><a href="#Properties-1599"><span class="linenos">1599</span></a> <span class="c1"># index (c) [POST_INDEX]</span> -</span><span id="Properties-1600"><a href="#Properties-1600"><span class="linenos">1600</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> -</span><span id="Properties-1601"><a href="#Properties-1601"><span class="linenos">1601</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1602"><a href="#Properties-1602"><span class="linenos">1602</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1603"><a href="#Properties-1603"><span class="linenos">1603</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1604"><a href="#Properties-1604"><span class="linenos">1604</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1605"><a href="#Properties-1605"><span class="linenos">1605</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1606"><a href="#Properties-1606"><span class="linenos">1606</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1607"><a href="#Properties-1607"><span class="linenos">1607</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1608"><a href="#Properties-1608"><span class="linenos">1608</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties-1609"><a href="#Properties-1609"><span class="linenos">1609</span></a> -</span><span id="Properties-1610"><a href="#Properties-1610"><span class="linenos">1610</span></a> <span class="nd">@classmethod</span> -</span><span id="Properties-1611"><a href="#Properties-1611"><span class="linenos">1611</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">Properties</span><span class="p">:</span> -</span><span id="Properties-1612"><a href="#Properties-1612"><span class="linenos">1612</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Properties-1613"><a href="#Properties-1613"><span class="linenos">1613</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="Properties-1614"><a href="#Properties-1614"><span class="linenos">1614</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> -</span><span id="Properties-1615"><a href="#Properties-1615"><span class="linenos">1615</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span> -</span><span id="Properties-1616"><a href="#Properties-1616"><span class="linenos">1616</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> -</span><span id="Properties-1617"><a href="#Properties-1617"><span class="linenos">1617</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Properties-1618"><a href="#Properties-1618"><span class="linenos">1618</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> -</span><span id="Properties-1619"><a href="#Properties-1619"><span class="linenos">1619</span></a> -</span><span id="Properties-1620"><a href="#Properties-1620"><span class="linenos">1620</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Properties-1674"><a href="#Properties-1674"><span class="linenos">1674</span></a><span class="k">class</span> <span class="nc">Properties</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Properties-1675"><a href="#Properties-1675"><span class="linenos">1675</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Properties-1676"><a href="#Properties-1676"><span class="linenos">1676</span></a> +</span><span id="Properties-1677"><a href="#Properties-1677"><span class="linenos">1677</span></a> <span class="n">NAME_TO_PROPERTY</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Properties-1678"><a href="#Properties-1678"><span class="linenos">1678</span></a> <span class="s2">"ALGORITHM"</span><span class="p">:</span> <span class="n">AlgorithmProperty</span><span class="p">,</span> +</span><span id="Properties-1679"><a href="#Properties-1679"><span class="linenos">1679</span></a> <span class="s2">"AUTO_INCREMENT"</span><span class="p">:</span> <span class="n">AutoIncrementProperty</span><span class="p">,</span> +</span><span id="Properties-1680"><a href="#Properties-1680"><span class="linenos">1680</span></a> <span class="s2">"CHARACTER SET"</span><span class="p">:</span> <span class="n">CharacterSetProperty</span><span class="p">,</span> +</span><span id="Properties-1681"><a href="#Properties-1681"><span class="linenos">1681</span></a> <span class="s2">"COLLATE"</span><span class="p">:</span> <span class="n">CollateProperty</span><span class="p">,</span> +</span><span id="Properties-1682"><a href="#Properties-1682"><span class="linenos">1682</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">SchemaCommentProperty</span><span class="p">,</span> +</span><span id="Properties-1683"><a href="#Properties-1683"><span class="linenos">1683</span></a> <span class="s2">"DEFINER"</span><span class="p">:</span> <span class="n">DefinerProperty</span><span class="p">,</span> +</span><span id="Properties-1684"><a href="#Properties-1684"><span class="linenos">1684</span></a> <span class="s2">"DISTKEY"</span><span class="p">:</span> <span class="n">DistKeyProperty</span><span class="p">,</span> +</span><span id="Properties-1685"><a href="#Properties-1685"><span class="linenos">1685</span></a> <span class="s2">"DISTSTYLE"</span><span class="p">:</span> <span class="n">DistStyleProperty</span><span class="p">,</span> +</span><span id="Properties-1686"><a href="#Properties-1686"><span class="linenos">1686</span></a> <span class="s2">"ENGINE"</span><span class="p">:</span> <span class="n">EngineProperty</span><span class="p">,</span> +</span><span id="Properties-1687"><a href="#Properties-1687"><span class="linenos">1687</span></a> <span class="s2">"EXECUTE AS"</span><span class="p">:</span> <span class="n">ExecuteAsProperty</span><span class="p">,</span> +</span><span id="Properties-1688"><a href="#Properties-1688"><span class="linenos">1688</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">FileFormatProperty</span><span class="p">,</span> +</span><span id="Properties-1689"><a href="#Properties-1689"><span class="linenos">1689</span></a> <span class="s2">"LANGUAGE"</span><span class="p">:</span> <span class="n">LanguageProperty</span><span class="p">,</span> +</span><span id="Properties-1690"><a href="#Properties-1690"><span class="linenos">1690</span></a> <span class="s2">"LOCATION"</span><span class="p">:</span> <span class="n">LocationProperty</span><span class="p">,</span> +</span><span id="Properties-1691"><a href="#Properties-1691"><span class="linenos">1691</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">PartitionedByProperty</span><span class="p">,</span> +</span><span id="Properties-1692"><a href="#Properties-1692"><span class="linenos">1692</span></a> <span class="s2">"RETURNS"</span><span class="p">:</span> <span class="n">ReturnsProperty</span><span class="p">,</span> +</span><span id="Properties-1693"><a href="#Properties-1693"><span class="linenos">1693</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">SortKeyProperty</span><span class="p">,</span> +</span><span id="Properties-1694"><a href="#Properties-1694"><span class="linenos">1694</span></a> <span class="s2">"TABLE_FORMAT"</span><span class="p">:</span> <span class="n">TableFormatProperty</span><span class="p">,</span> +</span><span id="Properties-1695"><a href="#Properties-1695"><span class="linenos">1695</span></a> <span class="p">}</span> +</span><span id="Properties-1696"><a href="#Properties-1696"><span class="linenos">1696</span></a> +</span><span id="Properties-1697"><a href="#Properties-1697"><span class="linenos">1697</span></a> <span class="n">PROPERTY_TO_NAME</span> <span class="o">=</span> <span class="p">{</span><span class="n">v</span><span class="p">:</span> <span class="n">k</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> +</span><span id="Properties-1698"><a href="#Properties-1698"><span class="linenos">1698</span></a> +</span><span id="Properties-1699"><a href="#Properties-1699"><span class="linenos">1699</span></a> <span class="c1"># CREATE property locations</span> +</span><span id="Properties-1700"><a href="#Properties-1700"><span class="linenos">1700</span></a> <span class="c1"># Form: schema specified</span> +</span><span id="Properties-1701"><a href="#Properties-1701"><span class="linenos">1701</span></a> <span class="c1"># create [POST_CREATE]</span> +</span><span id="Properties-1702"><a href="#Properties-1702"><span class="linenos">1702</span></a> <span class="c1"># table a [POST_NAME]</span> +</span><span id="Properties-1703"><a href="#Properties-1703"><span class="linenos">1703</span></a> <span class="c1"># (b int) [POST_SCHEMA]</span> +</span><span id="Properties-1704"><a href="#Properties-1704"><span class="linenos">1704</span></a> <span class="c1"># with ([POST_WITH])</span> +</span><span id="Properties-1705"><a href="#Properties-1705"><span class="linenos">1705</span></a> <span class="c1"># index (b) [POST_INDEX]</span> +</span><span id="Properties-1706"><a href="#Properties-1706"><span class="linenos">1706</span></a> <span class="c1">#</span> +</span><span id="Properties-1707"><a href="#Properties-1707"><span class="linenos">1707</span></a> <span class="c1"># Form: alias selection</span> +</span><span id="Properties-1708"><a href="#Properties-1708"><span class="linenos">1708</span></a> <span class="c1"># create [POST_CREATE]</span> +</span><span id="Properties-1709"><a href="#Properties-1709"><span class="linenos">1709</span></a> <span class="c1"># table a [POST_NAME]</span> +</span><span id="Properties-1710"><a href="#Properties-1710"><span class="linenos">1710</span></a> <span class="c1"># as [POST_ALIAS] (select * from b) [POST_EXPRESSION]</span> +</span><span id="Properties-1711"><a href="#Properties-1711"><span class="linenos">1711</span></a> <span class="c1"># index (c) [POST_INDEX]</span> +</span><span id="Properties-1712"><a href="#Properties-1712"><span class="linenos">1712</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> +</span><span id="Properties-1713"><a href="#Properties-1713"><span class="linenos">1713</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1714"><a href="#Properties-1714"><span class="linenos">1714</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1715"><a href="#Properties-1715"><span class="linenos">1715</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1716"><a href="#Properties-1716"><span class="linenos">1716</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1717"><a href="#Properties-1717"><span class="linenos">1717</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1718"><a href="#Properties-1718"><span class="linenos">1718</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1719"><a href="#Properties-1719"><span class="linenos">1719</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1720"><a href="#Properties-1720"><span class="linenos">1720</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties-1721"><a href="#Properties-1721"><span class="linenos">1721</span></a> +</span><span id="Properties-1722"><a href="#Properties-1722"><span class="linenos">1722</span></a> <span class="nd">@classmethod</span> +</span><span id="Properties-1723"><a href="#Properties-1723"><span class="linenos">1723</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">Properties</span><span class="p">:</span> +</span><span id="Properties-1724"><a href="#Properties-1724"><span class="linenos">1724</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Properties-1725"><a href="#Properties-1725"><span class="linenos">1725</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="Properties-1726"><a href="#Properties-1726"><span class="linenos">1726</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="Properties-1727"><a href="#Properties-1727"><span class="linenos">1727</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span> +</span><span id="Properties-1728"><a href="#Properties-1728"><span class="linenos">1728</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> +</span><span id="Properties-1729"><a href="#Properties-1729"><span class="linenos">1729</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Properties-1730"><a href="#Properties-1730"><span class="linenos">1730</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> +</span><span id="Properties-1731"><a href="#Properties-1731"><span class="linenos">1731</span></a> +</span><span id="Properties-1732"><a href="#Properties-1732"><span class="linenos">1732</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span></pre></div> @@ -18729,17 +19248,17 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Properties.from_dict"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.from_dict-1610"><a href="#Properties.from_dict-1610"><span class="linenos">1610</span></a> <span class="nd">@classmethod</span> -</span><span id="Properties.from_dict-1611"><a href="#Properties.from_dict-1611"><span class="linenos">1611</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">Properties</span><span class="p">:</span> -</span><span id="Properties.from_dict-1612"><a href="#Properties.from_dict-1612"><span class="linenos">1612</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Properties.from_dict-1613"><a href="#Properties.from_dict-1613"><span class="linenos">1613</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="Properties.from_dict-1614"><a href="#Properties.from_dict-1614"><span class="linenos">1614</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> -</span><span id="Properties.from_dict-1615"><a href="#Properties.from_dict-1615"><span class="linenos">1615</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span> -</span><span id="Properties.from_dict-1616"><a href="#Properties.from_dict-1616"><span class="linenos">1616</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> -</span><span id="Properties.from_dict-1617"><a href="#Properties.from_dict-1617"><span class="linenos">1617</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Properties.from_dict-1618"><a href="#Properties.from_dict-1618"><span class="linenos">1618</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> -</span><span id="Properties.from_dict-1619"><a href="#Properties.from_dict-1619"><span class="linenos">1619</span></a> -</span><span id="Properties.from_dict-1620"><a href="#Properties.from_dict-1620"><span class="linenos">1620</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.from_dict-1722"><a href="#Properties.from_dict-1722"><span class="linenos">1722</span></a> <span class="nd">@classmethod</span> +</span><span id="Properties.from_dict-1723"><a href="#Properties.from_dict-1723"><span class="linenos">1723</span></a> <span class="k">def</span> <span class="nf">from_dict</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">properties_dict</span><span class="p">)</span> <span class="o">-></span> <span class="n">Properties</span><span class="p">:</span> +</span><span id="Properties.from_dict-1724"><a href="#Properties.from_dict-1724"><span class="linenos">1724</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Properties.from_dict-1725"><a href="#Properties.from_dict-1725"><span class="linenos">1725</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">properties_dict</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="Properties.from_dict-1726"><a href="#Properties.from_dict-1726"><span class="linenos">1726</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="bp">cls</span><span class="o">.</span><span class="n">NAME_TO_PROPERTY</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="Properties.from_dict-1727"><a href="#Properties.from_dict-1727"><span class="linenos">1727</span></a> <span class="k">if</span> <span class="n">property_cls</span><span class="p">:</span> +</span><span id="Properties.from_dict-1728"><a href="#Properties.from_dict-1728"><span class="linenos">1728</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">property_cls</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> +</span><span id="Properties.from_dict-1729"><a href="#Properties.from_dict-1729"><span class="linenos">1729</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Properties.from_dict-1730"><a href="#Properties.from_dict-1730"><span class="linenos">1730</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">Property</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">key</span><span class="p">),</span> <span class="n">value</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)))</span> +</span><span id="Properties.from_dict-1731"><a href="#Properties.from_dict-1731"><span class="linenos">1731</span></a> +</span><span id="Properties.from_dict-1732"><a href="#Properties.from_dict-1732"><span class="linenos">1732</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span></pre></div> @@ -18801,15 +19320,15 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Properties.Location"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.Location-1600"><a href="#Properties.Location-1600"><span class="linenos">1600</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> -</span><span id="Properties.Location-1601"><a href="#Properties.Location-1601"><span class="linenos">1601</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1602"><a href="#Properties.Location-1602"><span class="linenos">1602</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1603"><a href="#Properties.Location-1603"><span class="linenos">1603</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1604"><a href="#Properties.Location-1604"><span class="linenos">1604</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1605"><a href="#Properties.Location-1605"><span class="linenos">1605</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1606"><a href="#Properties.Location-1606"><span class="linenos">1606</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1607"><a href="#Properties.Location-1607"><span class="linenos">1607</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="Properties.Location-1608"><a href="#Properties.Location-1608"><span class="linenos">1608</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Properties.Location-1712"><a href="#Properties.Location-1712"><span class="linenos">1712</span></a> <span class="k">class</span> <span class="nc">Location</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> +</span><span id="Properties.Location-1713"><a href="#Properties.Location-1713"><span class="linenos">1713</span></a> <span class="n">POST_CREATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1714"><a href="#Properties.Location-1714"><span class="linenos">1714</span></a> <span class="n">POST_NAME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1715"><a href="#Properties.Location-1715"><span class="linenos">1715</span></a> <span class="n">POST_SCHEMA</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1716"><a href="#Properties.Location-1716"><span class="linenos">1716</span></a> <span class="n">POST_WITH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1717"><a href="#Properties.Location-1717"><span class="linenos">1717</span></a> <span class="n">POST_ALIAS</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1718"><a href="#Properties.Location-1718"><span class="linenos">1718</span></a> <span class="n">POST_EXPRESSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1719"><a href="#Properties.Location-1719"><span class="linenos">1719</span></a> <span class="n">POST_INDEX</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="Properties.Location-1720"><a href="#Properties.Location-1720"><span class="linenos">1720</span></a> <span class="n">UNSUPPORTED</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> </span></pre></div> @@ -18935,8 +19454,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Qualify"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-1623"><a href="#Qualify-1623"><span class="linenos">1623</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Qualify-1624"><a href="#Qualify-1624"><span class="linenos">1624</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Qualify-1735"><a href="#Qualify-1735"><span class="linenos">1735</span></a><span class="k">class</span> <span class="nc">Qualify</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Qualify-1736"><a href="#Qualify-1736"><span class="linenos">1736</span></a> <span class="k">pass</span> </span></pre></div> @@ -18997,8 +19516,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Return"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Return-1628"><a href="#Return-1628"><span class="linenos">1628</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Return-1629"><a href="#Return-1629"><span class="linenos">1629</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Return-1740"><a href="#Return-1740"><span class="linenos">1740</span></a><span class="k">class</span> <span class="nc">Return</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Return-1741"><a href="#Return-1741"><span class="linenos">1741</span></a> <span class="k">pass</span> </span></pre></div> @@ -19059,8 +19578,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Reference"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Reference-1632"><a href="#Reference-1632"><span class="linenos">1632</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Reference-1633"><a href="#Reference-1633"><span class="linenos">1633</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Reference-1744"><a href="#Reference-1744"><span class="linenos">1744</span></a><span class="k">class</span> <span class="nc">Reference</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Reference-1745"><a href="#Reference-1745"><span class="linenos">1745</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"options"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -19121,8 +19640,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Tuple"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-1636"><a href="#Tuple-1636"><span class="linenos">1636</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Tuple-1637"><a href="#Tuple-1637"><span class="linenos">1637</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Tuple-1748"><a href="#Tuple-1748"><span class="linenos">1748</span></a><span class="k">class</span> <span class="nc">Tuple</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Tuple-1749"><a href="#Tuple-1749"><span class="linenos">1749</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -19183,103 +19702,103 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Subqueryable"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-1640"><a href="#Subqueryable-1640"><span class="linenos">1640</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span> -</span><span id="Subqueryable-1641"><a href="#Subqueryable-1641"><span class="linenos">1641</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Subquery</span><span class="p">:</span> -</span><span id="Subqueryable-1642"><a href="#Subqueryable-1642"><span class="linenos">1642</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Subqueryable-1643"><a href="#Subqueryable-1643"><span class="linenos">1643</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span> -</span><span id="Subqueryable-1644"><a href="#Subqueryable-1644"><span class="linenos">1644</span></a> -</span><span id="Subqueryable-1645"><a href="#Subqueryable-1645"><span class="linenos">1645</span></a><span class="sd"> Example:</span> -</span><span id="Subqueryable-1646"><a href="#Subqueryable-1646"><span class="linenos">1646</span></a><span class="sd"> >>> subquery = Select().select("x").from_("tbl").subquery()</span> -</span><span id="Subqueryable-1647"><a href="#Subqueryable-1647"><span class="linenos">1647</span></a><span class="sd"> >>> Select().select("x").from_(subquery).sql()</span> -</span><span id="Subqueryable-1648"><a href="#Subqueryable-1648"><span class="linenos">1648</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl)'</span> -</span><span id="Subqueryable-1649"><a href="#Subqueryable-1649"><span class="linenos">1649</span></a> -</span><span id="Subqueryable-1650"><a href="#Subqueryable-1650"><span class="linenos">1650</span></a><span class="sd"> Args:</span> -</span><span id="Subqueryable-1651"><a href="#Subqueryable-1651"><span class="linenos">1651</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span> -</span><span id="Subqueryable-1652"><a href="#Subqueryable-1652"><span class="linenos">1652</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Subqueryable-1653"><a href="#Subqueryable-1653"><span class="linenos">1653</span></a> -</span><span id="Subqueryable-1654"><a href="#Subqueryable-1654"><span class="linenos">1654</span></a><span class="sd"> Returns:</span> -</span><span id="Subqueryable-1655"><a href="#Subqueryable-1655"><span class="linenos">1655</span></a><span class="sd"> Alias: the subquery</span> -</span><span id="Subqueryable-1656"><a href="#Subqueryable-1656"><span class="linenos">1656</span></a><span class="sd"> """</span> -</span><span id="Subqueryable-1657"><a href="#Subqueryable-1657"><span class="linenos">1657</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Subqueryable-1658"><a href="#Subqueryable-1658"><span class="linenos">1658</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span> -</span><span id="Subqueryable-1659"><a href="#Subqueryable-1659"><span class="linenos">1659</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> -</span><span id="Subqueryable-1660"><a href="#Subqueryable-1660"><span class="linenos">1660</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)),</span> -</span><span id="Subqueryable-1661"><a href="#Subqueryable-1661"><span class="linenos">1661</span></a> <span class="p">)</span> -</span><span id="Subqueryable-1662"><a href="#Subqueryable-1662"><span class="linenos">1662</span></a> -</span><span id="Subqueryable-1663"><a href="#Subqueryable-1663"><span class="linenos">1663</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Subqueryable-1664"><a href="#Subqueryable-1664"><span class="linenos">1664</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span> -</span><span id="Subqueryable-1665"><a href="#Subqueryable-1665"><span class="linenos">1665</span></a> -</span><span id="Subqueryable-1666"><a href="#Subqueryable-1666"><span class="linenos">1666</span></a> <span class="nd">@property</span> -</span><span id="Subqueryable-1667"><a href="#Subqueryable-1667"><span class="linenos">1667</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Subqueryable-1668"><a href="#Subqueryable-1668"><span class="linenos">1668</span></a> <span class="n">with_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"with"</span><span class="p">)</span> -</span><span id="Subqueryable-1669"><a href="#Subqueryable-1669"><span class="linenos">1669</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span> -</span><span id="Subqueryable-1670"><a href="#Subqueryable-1670"><span class="linenos">1670</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="Subqueryable-1671"><a href="#Subqueryable-1671"><span class="linenos">1671</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="Subqueryable-1672"><a href="#Subqueryable-1672"><span class="linenos">1672</span></a> -</span><span id="Subqueryable-1673"><a href="#Subqueryable-1673"><span class="linenos">1673</span></a> <span class="nd">@property</span> -</span><span id="Subqueryable-1674"><a href="#Subqueryable-1674"><span class="linenos">1674</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Subqueryable-1675"><a href="#Subqueryable-1675"><span class="linenos">1675</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `selects`"</span><span class="p">)</span> -</span><span id="Subqueryable-1676"><a href="#Subqueryable-1676"><span class="linenos">1676</span></a> -</span><span id="Subqueryable-1677"><a href="#Subqueryable-1677"><span class="linenos">1677</span></a> <span class="nd">@property</span> -</span><span id="Subqueryable-1678"><a href="#Subqueryable-1678"><span class="linenos">1678</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Subqueryable-1679"><a href="#Subqueryable-1679"><span class="linenos">1679</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `named_selects`"</span><span class="p">)</span> -</span><span id="Subqueryable-1680"><a href="#Subqueryable-1680"><span class="linenos">1680</span></a> -</span><span id="Subqueryable-1681"><a href="#Subqueryable-1681"><span class="linenos">1681</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span> -</span><span id="Subqueryable-1682"><a href="#Subqueryable-1682"><span class="linenos">1682</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Subqueryable-1683"><a href="#Subqueryable-1683"><span class="linenos">1683</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="Subqueryable-1684"><a href="#Subqueryable-1684"><span class="linenos">1684</span></a> <span class="n">as_</span><span class="p">,</span> -</span><span id="Subqueryable-1685"><a href="#Subqueryable-1685"><span class="linenos">1685</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Subqueryable-1686"><a href="#Subqueryable-1686"><span class="linenos">1686</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Subqueryable-1687"><a href="#Subqueryable-1687"><span class="linenos">1687</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Subqueryable-1688"><a href="#Subqueryable-1688"><span class="linenos">1688</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Subqueryable-1689"><a href="#Subqueryable-1689"><span class="linenos">1689</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Subqueryable-1690"><a href="#Subqueryable-1690"><span class="linenos">1690</span></a> <span class="p">):</span> -</span><span id="Subqueryable-1691"><a href="#Subqueryable-1691"><span class="linenos">1691</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Subqueryable-1692"><a href="#Subqueryable-1692"><span class="linenos">1692</span></a><span class="sd"> Append to or set the common table expressions.</span> -</span><span id="Subqueryable-1693"><a href="#Subqueryable-1693"><span class="linenos">1693</span></a> -</span><span id="Subqueryable-1694"><a href="#Subqueryable-1694"><span class="linenos">1694</span></a><span class="sd"> Example:</span> -</span><span id="Subqueryable-1695"><a href="#Subqueryable-1695"><span class="linenos">1695</span></a><span class="sd"> >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()</span> -</span><span id="Subqueryable-1696"><a href="#Subqueryable-1696"><span class="linenos">1696</span></a><span class="sd"> 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span> -</span><span id="Subqueryable-1697"><a href="#Subqueryable-1697"><span class="linenos">1697</span></a> -</span><span id="Subqueryable-1698"><a href="#Subqueryable-1698"><span class="linenos">1698</span></a><span class="sd"> Args:</span> -</span><span id="Subqueryable-1699"><a href="#Subqueryable-1699"><span class="linenos">1699</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span> -</span><span id="Subqueryable-1700"><a href="#Subqueryable-1700"><span class="linenos">1700</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span> -</span><span id="Subqueryable-1701"><a href="#Subqueryable-1701"><span class="linenos">1701</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span> -</span><span id="Subqueryable-1702"><a href="#Subqueryable-1702"><span class="linenos">1702</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Subqueryable-1703"><a href="#Subqueryable-1703"><span class="linenos">1703</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span> -</span><span id="Subqueryable-1704"><a href="#Subqueryable-1704"><span class="linenos">1704</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Subqueryable-1705"><a href="#Subqueryable-1705"><span class="linenos">1705</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Subqueryable-1706"><a href="#Subqueryable-1706"><span class="linenos">1706</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Subqueryable-1707"><a href="#Subqueryable-1707"><span class="linenos">1707</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Subqueryable-1708"><a href="#Subqueryable-1708"><span class="linenos">1708</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Subqueryable-1709"><a href="#Subqueryable-1709"><span class="linenos">1709</span></a> -</span><span id="Subqueryable-1710"><a href="#Subqueryable-1710"><span class="linenos">1710</span></a><span class="sd"> Returns:</span> -</span><span id="Subqueryable-1711"><a href="#Subqueryable-1711"><span class="linenos">1711</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Subqueryable-1712"><a href="#Subqueryable-1712"><span class="linenos">1712</span></a><span class="sd"> """</span> -</span><span id="Subqueryable-1713"><a href="#Subqueryable-1713"><span class="linenos">1713</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="Subqueryable-1714"><a href="#Subqueryable-1714"><span class="linenos">1714</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="Subqueryable-1715"><a href="#Subqueryable-1715"><span class="linenos">1715</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Subqueryable-1716"><a href="#Subqueryable-1716"><span class="linenos">1716</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> -</span><span id="Subqueryable-1717"><a href="#Subqueryable-1717"><span class="linenos">1717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Subqueryable-1718"><a href="#Subqueryable-1718"><span class="linenos">1718</span></a> <span class="p">)</span> -</span><span id="Subqueryable-1719"><a href="#Subqueryable-1719"><span class="linenos">1719</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="Subqueryable-1720"><a href="#Subqueryable-1720"><span class="linenos">1720</span></a> <span class="n">as_</span><span class="p">,</span> -</span><span id="Subqueryable-1721"><a href="#Subqueryable-1721"><span class="linenos">1721</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Subqueryable-1722"><a href="#Subqueryable-1722"><span class="linenos">1722</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Subqueryable-1723"><a href="#Subqueryable-1723"><span class="linenos">1723</span></a> <span class="p">)</span> -</span><span id="Subqueryable-1724"><a href="#Subqueryable-1724"><span class="linenos">1724</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span> -</span><span id="Subqueryable-1725"><a href="#Subqueryable-1725"><span class="linenos">1725</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> -</span><span id="Subqueryable-1726"><a href="#Subqueryable-1726"><span class="linenos">1726</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span> -</span><span id="Subqueryable-1727"><a href="#Subqueryable-1727"><span class="linenos">1727</span></a> <span class="p">)</span> -</span><span id="Subqueryable-1728"><a href="#Subqueryable-1728"><span class="linenos">1728</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Subqueryable-1729"><a href="#Subqueryable-1729"><span class="linenos">1729</span></a> <span class="n">cte</span><span class="p">,</span> -</span><span id="Subqueryable-1730"><a href="#Subqueryable-1730"><span class="linenos">1730</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Subqueryable-1731"><a href="#Subqueryable-1731"><span class="linenos">1731</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"with"</span><span class="p">,</span> -</span><span id="Subqueryable-1732"><a href="#Subqueryable-1732"><span class="linenos">1732</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Subqueryable-1733"><a href="#Subqueryable-1733"><span class="linenos">1733</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Subqueryable-1734"><a href="#Subqueryable-1734"><span class="linenos">1734</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span> -</span><span id="Subqueryable-1735"><a href="#Subqueryable-1735"><span class="linenos">1735</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"recursive"</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span> -</span><span id="Subqueryable-1736"><a href="#Subqueryable-1736"><span class="linenos">1736</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable-1752"><a href="#Subqueryable-1752"><span class="linenos">1752</span></a><span class="k">class</span> <span class="nc">Subqueryable</span><span class="p">(</span><span class="n">Unionable</span><span class="p">):</span> +</span><span id="Subqueryable-1753"><a href="#Subqueryable-1753"><span class="linenos">1753</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Subquery</span><span class="p">:</span> +</span><span id="Subqueryable-1754"><a href="#Subqueryable-1754"><span class="linenos">1754</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Subqueryable-1755"><a href="#Subqueryable-1755"><span class="linenos">1755</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span> +</span><span id="Subqueryable-1756"><a href="#Subqueryable-1756"><span class="linenos">1756</span></a> +</span><span id="Subqueryable-1757"><a href="#Subqueryable-1757"><span class="linenos">1757</span></a><span class="sd"> Example:</span> +</span><span id="Subqueryable-1758"><a href="#Subqueryable-1758"><span class="linenos">1758</span></a><span class="sd"> >>> subquery = Select().select("x").from_("tbl").subquery()</span> +</span><span id="Subqueryable-1759"><a href="#Subqueryable-1759"><span class="linenos">1759</span></a><span class="sd"> >>> Select().select("x").from_(subquery).sql()</span> +</span><span id="Subqueryable-1760"><a href="#Subqueryable-1760"><span class="linenos">1760</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl)'</span> +</span><span id="Subqueryable-1761"><a href="#Subqueryable-1761"><span class="linenos">1761</span></a> +</span><span id="Subqueryable-1762"><a href="#Subqueryable-1762"><span class="linenos">1762</span></a><span class="sd"> Args:</span> +</span><span id="Subqueryable-1763"><a href="#Subqueryable-1763"><span class="linenos">1763</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span> +</span><span id="Subqueryable-1764"><a href="#Subqueryable-1764"><span class="linenos">1764</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Subqueryable-1765"><a href="#Subqueryable-1765"><span class="linenos">1765</span></a> +</span><span id="Subqueryable-1766"><a href="#Subqueryable-1766"><span class="linenos">1766</span></a><span class="sd"> Returns:</span> +</span><span id="Subqueryable-1767"><a href="#Subqueryable-1767"><span class="linenos">1767</span></a><span class="sd"> Alias: the subquery</span> +</span><span id="Subqueryable-1768"><a href="#Subqueryable-1768"><span class="linenos">1768</span></a><span class="sd"> """</span> +</span><span id="Subqueryable-1769"><a href="#Subqueryable-1769"><span class="linenos">1769</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Subqueryable-1770"><a href="#Subqueryable-1770"><span class="linenos">1770</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span> +</span><span id="Subqueryable-1771"><a href="#Subqueryable-1771"><span class="linenos">1771</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> +</span><span id="Subqueryable-1772"><a href="#Subqueryable-1772"><span class="linenos">1772</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)),</span> +</span><span id="Subqueryable-1773"><a href="#Subqueryable-1773"><span class="linenos">1773</span></a> <span class="p">)</span> +</span><span id="Subqueryable-1774"><a href="#Subqueryable-1774"><span class="linenos">1774</span></a> +</span><span id="Subqueryable-1775"><a href="#Subqueryable-1775"><span class="linenos">1775</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Subqueryable-1776"><a href="#Subqueryable-1776"><span class="linenos">1776</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span> +</span><span id="Subqueryable-1777"><a href="#Subqueryable-1777"><span class="linenos">1777</span></a> +</span><span id="Subqueryable-1778"><a href="#Subqueryable-1778"><span class="linenos">1778</span></a> <span class="nd">@property</span> +</span><span id="Subqueryable-1779"><a href="#Subqueryable-1779"><span class="linenos">1779</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Subqueryable-1780"><a href="#Subqueryable-1780"><span class="linenos">1780</span></a> <span class="n">with_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"with"</span><span class="p">)</span> +</span><span id="Subqueryable-1781"><a href="#Subqueryable-1781"><span class="linenos">1781</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">with_</span><span class="p">:</span> +</span><span id="Subqueryable-1782"><a href="#Subqueryable-1782"><span class="linenos">1782</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="Subqueryable-1783"><a href="#Subqueryable-1783"><span class="linenos">1783</span></a> <span class="k">return</span> <span class="n">with_</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Subqueryable-1784"><a href="#Subqueryable-1784"><span class="linenos">1784</span></a> +</span><span id="Subqueryable-1785"><a href="#Subqueryable-1785"><span class="linenos">1785</span></a> <span class="nd">@property</span> +</span><span id="Subqueryable-1786"><a href="#Subqueryable-1786"><span class="linenos">1786</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Subqueryable-1787"><a href="#Subqueryable-1787"><span class="linenos">1787</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `selects`"</span><span class="p">)</span> +</span><span id="Subqueryable-1788"><a href="#Subqueryable-1788"><span class="linenos">1788</span></a> +</span><span id="Subqueryable-1789"><a href="#Subqueryable-1789"><span class="linenos">1789</span></a> <span class="nd">@property</span> +</span><span id="Subqueryable-1790"><a href="#Subqueryable-1790"><span class="linenos">1790</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Subqueryable-1791"><a href="#Subqueryable-1791"><span class="linenos">1791</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">"Subqueryable objects must implement `named_selects`"</span><span class="p">)</span> +</span><span id="Subqueryable-1792"><a href="#Subqueryable-1792"><span class="linenos">1792</span></a> +</span><span id="Subqueryable-1793"><a href="#Subqueryable-1793"><span class="linenos">1793</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span> +</span><span id="Subqueryable-1794"><a href="#Subqueryable-1794"><span class="linenos">1794</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Subqueryable-1795"><a href="#Subqueryable-1795"><span class="linenos">1795</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="Subqueryable-1796"><a href="#Subqueryable-1796"><span class="linenos">1796</span></a> <span class="n">as_</span><span class="p">,</span> +</span><span id="Subqueryable-1797"><a href="#Subqueryable-1797"><span class="linenos">1797</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Subqueryable-1798"><a href="#Subqueryable-1798"><span class="linenos">1798</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Subqueryable-1799"><a href="#Subqueryable-1799"><span class="linenos">1799</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Subqueryable-1800"><a href="#Subqueryable-1800"><span class="linenos">1800</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Subqueryable-1801"><a href="#Subqueryable-1801"><span class="linenos">1801</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Subqueryable-1802"><a href="#Subqueryable-1802"><span class="linenos">1802</span></a> <span class="p">):</span> +</span><span id="Subqueryable-1803"><a href="#Subqueryable-1803"><span class="linenos">1803</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Subqueryable-1804"><a href="#Subqueryable-1804"><span class="linenos">1804</span></a><span class="sd"> Append to or set the common table expressions.</span> +</span><span id="Subqueryable-1805"><a href="#Subqueryable-1805"><span class="linenos">1805</span></a> +</span><span id="Subqueryable-1806"><a href="#Subqueryable-1806"><span class="linenos">1806</span></a><span class="sd"> Example:</span> +</span><span id="Subqueryable-1807"><a href="#Subqueryable-1807"><span class="linenos">1807</span></a><span class="sd"> >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()</span> +</span><span id="Subqueryable-1808"><a href="#Subqueryable-1808"><span class="linenos">1808</span></a><span class="sd"> 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span> +</span><span id="Subqueryable-1809"><a href="#Subqueryable-1809"><span class="linenos">1809</span></a> +</span><span id="Subqueryable-1810"><a href="#Subqueryable-1810"><span class="linenos">1810</span></a><span class="sd"> Args:</span> +</span><span id="Subqueryable-1811"><a href="#Subqueryable-1811"><span class="linenos">1811</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span> +</span><span id="Subqueryable-1812"><a href="#Subqueryable-1812"><span class="linenos">1812</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span> +</span><span id="Subqueryable-1813"><a href="#Subqueryable-1813"><span class="linenos">1813</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span> +</span><span id="Subqueryable-1814"><a href="#Subqueryable-1814"><span class="linenos">1814</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Subqueryable-1815"><a href="#Subqueryable-1815"><span class="linenos">1815</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span> +</span><span id="Subqueryable-1816"><a href="#Subqueryable-1816"><span class="linenos">1816</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Subqueryable-1817"><a href="#Subqueryable-1817"><span class="linenos">1817</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Subqueryable-1818"><a href="#Subqueryable-1818"><span class="linenos">1818</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Subqueryable-1819"><a href="#Subqueryable-1819"><span class="linenos">1819</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Subqueryable-1820"><a href="#Subqueryable-1820"><span class="linenos">1820</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Subqueryable-1821"><a href="#Subqueryable-1821"><span class="linenos">1821</span></a> +</span><span id="Subqueryable-1822"><a href="#Subqueryable-1822"><span class="linenos">1822</span></a><span class="sd"> Returns:</span> +</span><span id="Subqueryable-1823"><a href="#Subqueryable-1823"><span class="linenos">1823</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Subqueryable-1824"><a href="#Subqueryable-1824"><span class="linenos">1824</span></a><span class="sd"> """</span> +</span><span id="Subqueryable-1825"><a href="#Subqueryable-1825"><span class="linenos">1825</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="Subqueryable-1826"><a href="#Subqueryable-1826"><span class="linenos">1826</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="Subqueryable-1827"><a href="#Subqueryable-1827"><span class="linenos">1827</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Subqueryable-1828"><a href="#Subqueryable-1828"><span class="linenos">1828</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> +</span><span id="Subqueryable-1829"><a href="#Subqueryable-1829"><span class="linenos">1829</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Subqueryable-1830"><a href="#Subqueryable-1830"><span class="linenos">1830</span></a> <span class="p">)</span> +</span><span id="Subqueryable-1831"><a href="#Subqueryable-1831"><span class="linenos">1831</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="Subqueryable-1832"><a href="#Subqueryable-1832"><span class="linenos">1832</span></a> <span class="n">as_</span><span class="p">,</span> +</span><span id="Subqueryable-1833"><a href="#Subqueryable-1833"><span class="linenos">1833</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Subqueryable-1834"><a href="#Subqueryable-1834"><span class="linenos">1834</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Subqueryable-1835"><a href="#Subqueryable-1835"><span class="linenos">1835</span></a> <span class="p">)</span> +</span><span id="Subqueryable-1836"><a href="#Subqueryable-1836"><span class="linenos">1836</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span> +</span><span id="Subqueryable-1837"><a href="#Subqueryable-1837"><span class="linenos">1837</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> +</span><span id="Subqueryable-1838"><a href="#Subqueryable-1838"><span class="linenos">1838</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span> +</span><span id="Subqueryable-1839"><a href="#Subqueryable-1839"><span class="linenos">1839</span></a> <span class="p">)</span> +</span><span id="Subqueryable-1840"><a href="#Subqueryable-1840"><span class="linenos">1840</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Subqueryable-1841"><a href="#Subqueryable-1841"><span class="linenos">1841</span></a> <span class="n">cte</span><span class="p">,</span> +</span><span id="Subqueryable-1842"><a href="#Subqueryable-1842"><span class="linenos">1842</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Subqueryable-1843"><a href="#Subqueryable-1843"><span class="linenos">1843</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"with"</span><span class="p">,</span> +</span><span id="Subqueryable-1844"><a href="#Subqueryable-1844"><span class="linenos">1844</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Subqueryable-1845"><a href="#Subqueryable-1845"><span class="linenos">1845</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Subqueryable-1846"><a href="#Subqueryable-1846"><span class="linenos">1846</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span> +</span><span id="Subqueryable-1847"><a href="#Subqueryable-1847"><span class="linenos">1847</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"recursive"</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span> +</span><span id="Subqueryable-1848"><a href="#Subqueryable-1848"><span class="linenos">1848</span></a> <span class="p">)</span> </span></pre></div> @@ -19296,27 +19815,27 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Subqueryable.subquery"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-1641"><a href="#Subqueryable.subquery-1641"><span class="linenos">1641</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Subquery</span><span class="p">:</span> -</span><span id="Subqueryable.subquery-1642"><a href="#Subqueryable.subquery-1642"><span class="linenos">1642</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Subqueryable.subquery-1643"><a href="#Subqueryable.subquery-1643"><span class="linenos">1643</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span> -</span><span id="Subqueryable.subquery-1644"><a href="#Subqueryable.subquery-1644"><span class="linenos">1644</span></a> -</span><span id="Subqueryable.subquery-1645"><a href="#Subqueryable.subquery-1645"><span class="linenos">1645</span></a><span class="sd"> Example:</span> -</span><span id="Subqueryable.subquery-1646"><a href="#Subqueryable.subquery-1646"><span class="linenos">1646</span></a><span class="sd"> >>> subquery = Select().select("x").from_("tbl").subquery()</span> -</span><span id="Subqueryable.subquery-1647"><a href="#Subqueryable.subquery-1647"><span class="linenos">1647</span></a><span class="sd"> >>> Select().select("x").from_(subquery).sql()</span> -</span><span id="Subqueryable.subquery-1648"><a href="#Subqueryable.subquery-1648"><span class="linenos">1648</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl)'</span> -</span><span id="Subqueryable.subquery-1649"><a href="#Subqueryable.subquery-1649"><span class="linenos">1649</span></a> -</span><span id="Subqueryable.subquery-1650"><a href="#Subqueryable.subquery-1650"><span class="linenos">1650</span></a><span class="sd"> Args:</span> -</span><span id="Subqueryable.subquery-1651"><a href="#Subqueryable.subquery-1651"><span class="linenos">1651</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span> -</span><span id="Subqueryable.subquery-1652"><a href="#Subqueryable.subquery-1652"><span class="linenos">1652</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Subqueryable.subquery-1653"><a href="#Subqueryable.subquery-1653"><span class="linenos">1653</span></a> -</span><span id="Subqueryable.subquery-1654"><a href="#Subqueryable.subquery-1654"><span class="linenos">1654</span></a><span class="sd"> Returns:</span> -</span><span id="Subqueryable.subquery-1655"><a href="#Subqueryable.subquery-1655"><span class="linenos">1655</span></a><span class="sd"> Alias: the subquery</span> -</span><span id="Subqueryable.subquery-1656"><a href="#Subqueryable.subquery-1656"><span class="linenos">1656</span></a><span class="sd"> """</span> -</span><span id="Subqueryable.subquery-1657"><a href="#Subqueryable.subquery-1657"><span class="linenos">1657</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Subqueryable.subquery-1658"><a href="#Subqueryable.subquery-1658"><span class="linenos">1658</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span> -</span><span id="Subqueryable.subquery-1659"><a href="#Subqueryable.subquery-1659"><span class="linenos">1659</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> -</span><span id="Subqueryable.subquery-1660"><a href="#Subqueryable.subquery-1660"><span class="linenos">1660</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)),</span> -</span><span id="Subqueryable.subquery-1661"><a href="#Subqueryable.subquery-1661"><span class="linenos">1661</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.subquery-1753"><a href="#Subqueryable.subquery-1753"><span class="linenos">1753</span></a> <span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Subquery</span><span class="p">:</span> +</span><span id="Subqueryable.subquery-1754"><a href="#Subqueryable.subquery-1754"><span class="linenos">1754</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Subqueryable.subquery-1755"><a href="#Subqueryable.subquery-1755"><span class="linenos">1755</span></a><span class="sd"> Convert this expression to an aliased expression that can be used as a Subquery.</span> +</span><span id="Subqueryable.subquery-1756"><a href="#Subqueryable.subquery-1756"><span class="linenos">1756</span></a> +</span><span id="Subqueryable.subquery-1757"><a href="#Subqueryable.subquery-1757"><span class="linenos">1757</span></a><span class="sd"> Example:</span> +</span><span id="Subqueryable.subquery-1758"><a href="#Subqueryable.subquery-1758"><span class="linenos">1758</span></a><span class="sd"> >>> subquery = Select().select("x").from_("tbl").subquery()</span> +</span><span id="Subqueryable.subquery-1759"><a href="#Subqueryable.subquery-1759"><span class="linenos">1759</span></a><span class="sd"> >>> Select().select("x").from_(subquery).sql()</span> +</span><span id="Subqueryable.subquery-1760"><a href="#Subqueryable.subquery-1760"><span class="linenos">1760</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl)'</span> +</span><span id="Subqueryable.subquery-1761"><a href="#Subqueryable.subquery-1761"><span class="linenos">1761</span></a> +</span><span id="Subqueryable.subquery-1762"><a href="#Subqueryable.subquery-1762"><span class="linenos">1762</span></a><span class="sd"> Args:</span> +</span><span id="Subqueryable.subquery-1763"><a href="#Subqueryable.subquery-1763"><span class="linenos">1763</span></a><span class="sd"> alias (str | Identifier): an optional alias for the subquery</span> +</span><span id="Subqueryable.subquery-1764"><a href="#Subqueryable.subquery-1764"><span class="linenos">1764</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Subqueryable.subquery-1765"><a href="#Subqueryable.subquery-1765"><span class="linenos">1765</span></a> +</span><span id="Subqueryable.subquery-1766"><a href="#Subqueryable.subquery-1766"><span class="linenos">1766</span></a><span class="sd"> Returns:</span> +</span><span id="Subqueryable.subquery-1767"><a href="#Subqueryable.subquery-1767"><span class="linenos">1767</span></a><span class="sd"> Alias: the subquery</span> +</span><span id="Subqueryable.subquery-1768"><a href="#Subqueryable.subquery-1768"><span class="linenos">1768</span></a><span class="sd"> """</span> +</span><span id="Subqueryable.subquery-1769"><a href="#Subqueryable.subquery-1769"><span class="linenos">1769</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Subqueryable.subquery-1770"><a href="#Subqueryable.subquery-1770"><span class="linenos">1770</span></a> <span class="k">return</span> <span class="n">Subquery</span><span class="p">(</span> +</span><span id="Subqueryable.subquery-1771"><a href="#Subqueryable.subquery-1771"><span class="linenos">1771</span></a> <span class="n">this</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> +</span><span id="Subqueryable.subquery-1772"><a href="#Subqueryable.subquery-1772"><span class="linenos">1772</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)),</span> +</span><span id="Subqueryable.subquery-1773"><a href="#Subqueryable.subquery-1773"><span class="linenos">1773</span></a> <span class="p">)</span> </span></pre></div> @@ -19360,8 +19879,8 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Subqueryable.limit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-1663"><a href="#Subqueryable.limit-1663"><span class="linenos">1663</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Subqueryable.limit-1664"><a href="#Subqueryable.limit-1664"><span class="linenos">1664</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.limit-1775"><a href="#Subqueryable.limit-1775"><span class="linenos">1775</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Subqueryable.limit-1776"><a href="#Subqueryable.limit-1776"><span class="linenos">1776</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span> </span></pre></div> @@ -19379,62 +19898,62 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Subqueryable.with_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-1681"><a href="#Subqueryable.with_-1681"><span class="linenos">1681</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span> -</span><span id="Subqueryable.with_-1682"><a href="#Subqueryable.with_-1682"><span class="linenos">1682</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1683"><a href="#Subqueryable.with_-1683"><span class="linenos">1683</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1684"><a href="#Subqueryable.with_-1684"><span class="linenos">1684</span></a> <span class="n">as_</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1685"><a href="#Subqueryable.with_-1685"><span class="linenos">1685</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1686"><a href="#Subqueryable.with_-1686"><span class="linenos">1686</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1687"><a href="#Subqueryable.with_-1687"><span class="linenos">1687</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1688"><a href="#Subqueryable.with_-1688"><span class="linenos">1688</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1689"><a href="#Subqueryable.with_-1689"><span class="linenos">1689</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1690"><a href="#Subqueryable.with_-1690"><span class="linenos">1690</span></a> <span class="p">):</span> -</span><span id="Subqueryable.with_-1691"><a href="#Subqueryable.with_-1691"><span class="linenos">1691</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Subqueryable.with_-1692"><a href="#Subqueryable.with_-1692"><span class="linenos">1692</span></a><span class="sd"> Append to or set the common table expressions.</span> -</span><span id="Subqueryable.with_-1693"><a href="#Subqueryable.with_-1693"><span class="linenos">1693</span></a> -</span><span id="Subqueryable.with_-1694"><a href="#Subqueryable.with_-1694"><span class="linenos">1694</span></a><span class="sd"> Example:</span> -</span><span id="Subqueryable.with_-1695"><a href="#Subqueryable.with_-1695"><span class="linenos">1695</span></a><span class="sd"> >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()</span> -</span><span id="Subqueryable.with_-1696"><a href="#Subqueryable.with_-1696"><span class="linenos">1696</span></a><span class="sd"> 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span> -</span><span id="Subqueryable.with_-1697"><a href="#Subqueryable.with_-1697"><span class="linenos">1697</span></a> -</span><span id="Subqueryable.with_-1698"><a href="#Subqueryable.with_-1698"><span class="linenos">1698</span></a><span class="sd"> Args:</span> -</span><span id="Subqueryable.with_-1699"><a href="#Subqueryable.with_-1699"><span class="linenos">1699</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span> -</span><span id="Subqueryable.with_-1700"><a href="#Subqueryable.with_-1700"><span class="linenos">1700</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span> -</span><span id="Subqueryable.with_-1701"><a href="#Subqueryable.with_-1701"><span class="linenos">1701</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span> -</span><span id="Subqueryable.with_-1702"><a href="#Subqueryable.with_-1702"><span class="linenos">1702</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Subqueryable.with_-1703"><a href="#Subqueryable.with_-1703"><span class="linenos">1703</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span> -</span><span id="Subqueryable.with_-1704"><a href="#Subqueryable.with_-1704"><span class="linenos">1704</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Subqueryable.with_-1705"><a href="#Subqueryable.with_-1705"><span class="linenos">1705</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Subqueryable.with_-1706"><a href="#Subqueryable.with_-1706"><span class="linenos">1706</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Subqueryable.with_-1707"><a href="#Subqueryable.with_-1707"><span class="linenos">1707</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Subqueryable.with_-1708"><a href="#Subqueryable.with_-1708"><span class="linenos">1708</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Subqueryable.with_-1709"><a href="#Subqueryable.with_-1709"><span class="linenos">1709</span></a> -</span><span id="Subqueryable.with_-1710"><a href="#Subqueryable.with_-1710"><span class="linenos">1710</span></a><span class="sd"> Returns:</span> -</span><span id="Subqueryable.with_-1711"><a href="#Subqueryable.with_-1711"><span class="linenos">1711</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Subqueryable.with_-1712"><a href="#Subqueryable.with_-1712"><span class="linenos">1712</span></a><span class="sd"> """</span> -</span><span id="Subqueryable.with_-1713"><a href="#Subqueryable.with_-1713"><span class="linenos">1713</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="Subqueryable.with_-1714"><a href="#Subqueryable.with_-1714"><span class="linenos">1714</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1715"><a href="#Subqueryable.with_-1715"><span class="linenos">1715</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1716"><a href="#Subqueryable.with_-1716"><span class="linenos">1716</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1717"><a href="#Subqueryable.with_-1717"><span class="linenos">1717</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1718"><a href="#Subqueryable.with_-1718"><span class="linenos">1718</span></a> <span class="p">)</span> -</span><span id="Subqueryable.with_-1719"><a href="#Subqueryable.with_-1719"><span class="linenos">1719</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="Subqueryable.with_-1720"><a href="#Subqueryable.with_-1720"><span class="linenos">1720</span></a> <span class="n">as_</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1721"><a href="#Subqueryable.with_-1721"><span class="linenos">1721</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1722"><a href="#Subqueryable.with_-1722"><span class="linenos">1722</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1723"><a href="#Subqueryable.with_-1723"><span class="linenos">1723</span></a> <span class="p">)</span> -</span><span id="Subqueryable.with_-1724"><a href="#Subqueryable.with_-1724"><span class="linenos">1724</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span> -</span><span id="Subqueryable.with_-1725"><a href="#Subqueryable.with_-1725"><span class="linenos">1725</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1726"><a href="#Subqueryable.with_-1726"><span class="linenos">1726</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1727"><a href="#Subqueryable.with_-1727"><span class="linenos">1727</span></a> <span class="p">)</span> -</span><span id="Subqueryable.with_-1728"><a href="#Subqueryable.with_-1728"><span class="linenos">1728</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Subqueryable.with_-1729"><a href="#Subqueryable.with_-1729"><span class="linenos">1729</span></a> <span class="n">cte</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1730"><a href="#Subqueryable.with_-1730"><span class="linenos">1730</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1731"><a href="#Subqueryable.with_-1731"><span class="linenos">1731</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"with"</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1732"><a href="#Subqueryable.with_-1732"><span class="linenos">1732</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1733"><a href="#Subqueryable.with_-1733"><span class="linenos">1733</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1734"><a href="#Subqueryable.with_-1734"><span class="linenos">1734</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span> -</span><span id="Subqueryable.with_-1735"><a href="#Subqueryable.with_-1735"><span class="linenos">1735</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"recursive"</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span> -</span><span id="Subqueryable.with_-1736"><a href="#Subqueryable.with_-1736"><span class="linenos">1736</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Subqueryable.with_-1793"><a href="#Subqueryable.with_-1793"><span class="linenos">1793</span></a> <span class="k">def</span> <span class="nf">with_</span><span class="p">(</span> +</span><span id="Subqueryable.with_-1794"><a href="#Subqueryable.with_-1794"><span class="linenos">1794</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1795"><a href="#Subqueryable.with_-1795"><span class="linenos">1795</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1796"><a href="#Subqueryable.with_-1796"><span class="linenos">1796</span></a> <span class="n">as_</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1797"><a href="#Subqueryable.with_-1797"><span class="linenos">1797</span></a> <span class="n">recursive</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1798"><a href="#Subqueryable.with_-1798"><span class="linenos">1798</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1799"><a href="#Subqueryable.with_-1799"><span class="linenos">1799</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1800"><a href="#Subqueryable.with_-1800"><span class="linenos">1800</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1801"><a href="#Subqueryable.with_-1801"><span class="linenos">1801</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1802"><a href="#Subqueryable.with_-1802"><span class="linenos">1802</span></a> <span class="p">):</span> +</span><span id="Subqueryable.with_-1803"><a href="#Subqueryable.with_-1803"><span class="linenos">1803</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Subqueryable.with_-1804"><a href="#Subqueryable.with_-1804"><span class="linenos">1804</span></a><span class="sd"> Append to or set the common table expressions.</span> +</span><span id="Subqueryable.with_-1805"><a href="#Subqueryable.with_-1805"><span class="linenos">1805</span></a> +</span><span id="Subqueryable.with_-1806"><a href="#Subqueryable.with_-1806"><span class="linenos">1806</span></a><span class="sd"> Example:</span> +</span><span id="Subqueryable.with_-1807"><a href="#Subqueryable.with_-1807"><span class="linenos">1807</span></a><span class="sd"> >>> Select().with_("tbl2", as_="SELECT * FROM tbl").select("x").from_("tbl2").sql()</span> +</span><span id="Subqueryable.with_-1808"><a href="#Subqueryable.with_-1808"><span class="linenos">1808</span></a><span class="sd"> 'WITH tbl2 AS (SELECT * FROM tbl) SELECT x FROM tbl2'</span> +</span><span id="Subqueryable.with_-1809"><a href="#Subqueryable.with_-1809"><span class="linenos">1809</span></a> +</span><span id="Subqueryable.with_-1810"><a href="#Subqueryable.with_-1810"><span class="linenos">1810</span></a><span class="sd"> Args:</span> +</span><span id="Subqueryable.with_-1811"><a href="#Subqueryable.with_-1811"><span class="linenos">1811</span></a><span class="sd"> alias (str | Expression): the SQL code string to parse as the table name.</span> +</span><span id="Subqueryable.with_-1812"><a href="#Subqueryable.with_-1812"><span class="linenos">1812</span></a><span class="sd"> If an `Expression` instance is passed, this is used as-is.</span> +</span><span id="Subqueryable.with_-1813"><a href="#Subqueryable.with_-1813"><span class="linenos">1813</span></a><span class="sd"> as_ (str | Expression): the SQL code string to parse as the table expression.</span> +</span><span id="Subqueryable.with_-1814"><a href="#Subqueryable.with_-1814"><span class="linenos">1814</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Subqueryable.with_-1815"><a href="#Subqueryable.with_-1815"><span class="linenos">1815</span></a><span class="sd"> recursive (bool): set the RECURSIVE part of the expression. Defaults to `False`.</span> +</span><span id="Subqueryable.with_-1816"><a href="#Subqueryable.with_-1816"><span class="linenos">1816</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Subqueryable.with_-1817"><a href="#Subqueryable.with_-1817"><span class="linenos">1817</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Subqueryable.with_-1818"><a href="#Subqueryable.with_-1818"><span class="linenos">1818</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Subqueryable.with_-1819"><a href="#Subqueryable.with_-1819"><span class="linenos">1819</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Subqueryable.with_-1820"><a href="#Subqueryable.with_-1820"><span class="linenos">1820</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Subqueryable.with_-1821"><a href="#Subqueryable.with_-1821"><span class="linenos">1821</span></a> +</span><span id="Subqueryable.with_-1822"><a href="#Subqueryable.with_-1822"><span class="linenos">1822</span></a><span class="sd"> Returns:</span> +</span><span id="Subqueryable.with_-1823"><a href="#Subqueryable.with_-1823"><span class="linenos">1823</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Subqueryable.with_-1824"><a href="#Subqueryable.with_-1824"><span class="linenos">1824</span></a><span class="sd"> """</span> +</span><span id="Subqueryable.with_-1825"><a href="#Subqueryable.with_-1825"><span class="linenos">1825</span></a> <span class="n">alias_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="Subqueryable.with_-1826"><a href="#Subqueryable.with_-1826"><span class="linenos">1826</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1827"><a href="#Subqueryable.with_-1827"><span class="linenos">1827</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1828"><a href="#Subqueryable.with_-1828"><span class="linenos">1828</span></a> <span class="n">into</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1829"><a href="#Subqueryable.with_-1829"><span class="linenos">1829</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1830"><a href="#Subqueryable.with_-1830"><span class="linenos">1830</span></a> <span class="p">)</span> +</span><span id="Subqueryable.with_-1831"><a href="#Subqueryable.with_-1831"><span class="linenos">1831</span></a> <span class="n">as_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="Subqueryable.with_-1832"><a href="#Subqueryable.with_-1832"><span class="linenos">1832</span></a> <span class="n">as_</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1833"><a href="#Subqueryable.with_-1833"><span class="linenos">1833</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1834"><a href="#Subqueryable.with_-1834"><span class="linenos">1834</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1835"><a href="#Subqueryable.with_-1835"><span class="linenos">1835</span></a> <span class="p">)</span> +</span><span id="Subqueryable.with_-1836"><a href="#Subqueryable.with_-1836"><span class="linenos">1836</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="n">CTE</span><span class="p">(</span> +</span><span id="Subqueryable.with_-1837"><a href="#Subqueryable.with_-1837"><span class="linenos">1837</span></a> <span class="n">this</span><span class="o">=</span><span class="n">as_expression</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1838"><a href="#Subqueryable.with_-1838"><span class="linenos">1838</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias_expression</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1839"><a href="#Subqueryable.with_-1839"><span class="linenos">1839</span></a> <span class="p">)</span> +</span><span id="Subqueryable.with_-1840"><a href="#Subqueryable.with_-1840"><span class="linenos">1840</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Subqueryable.with_-1841"><a href="#Subqueryable.with_-1841"><span class="linenos">1841</span></a> <span class="n">cte</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1842"><a href="#Subqueryable.with_-1842"><span class="linenos">1842</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1843"><a href="#Subqueryable.with_-1843"><span class="linenos">1843</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"with"</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1844"><a href="#Subqueryable.with_-1844"><span class="linenos">1844</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1845"><a href="#Subqueryable.with_-1845"><span class="linenos">1845</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1846"><a href="#Subqueryable.with_-1846"><span class="linenos">1846</span></a> <span class="n">into</span><span class="o">=</span><span class="n">With</span><span class="p">,</span> +</span><span id="Subqueryable.with_-1847"><a href="#Subqueryable.with_-1847"><span class="linenos">1847</span></a> <span class="n">properties</span><span class="o">=</span><span class="p">{</span><span class="s2">"recursive"</span><span class="p">:</span> <span class="n">recursive</span> <span class="ow">or</span> <span class="kc">False</span><span class="p">},</span> +</span><span id="Subqueryable.with_-1848"><a href="#Subqueryable.with_-1848"><span class="linenos">1848</span></a> <span class="p">)</span> </span></pre></div> @@ -19535,26 +20054,26 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Table"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Table-1760"><a href="#Table-1760"><span class="linenos">1760</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Table-1761"><a href="#Table-1761"><span class="linenos">1761</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Table-1762"><a href="#Table-1762"><span class="linenos">1762</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Table-1763"><a href="#Table-1763"><span class="linenos">1763</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1764"><a href="#Table-1764"><span class="linenos">1764</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1765"><a href="#Table-1765"><span class="linenos">1765</span></a> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1766"><a href="#Table-1766"><span class="linenos">1766</span></a> <span class="s2">"laterals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1767"><a href="#Table-1767"><span class="linenos">1767</span></a> <span class="s2">"joins"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1768"><a href="#Table-1768"><span class="linenos">1768</span></a> <span class="s2">"pivots"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1769"><a href="#Table-1769"><span class="linenos">1769</span></a> <span class="s2">"hints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1770"><a href="#Table-1770"><span class="linenos">1770</span></a> <span class="s2">"system_time"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Table-1771"><a href="#Table-1771"><span class="linenos">1771</span></a> <span class="p">}</span> -</span><span id="Table-1772"><a href="#Table-1772"><span class="linenos">1772</span></a> -</span><span id="Table-1773"><a href="#Table-1773"><span class="linenos">1773</span></a> <span class="nd">@property</span> -</span><span id="Table-1774"><a href="#Table-1774"><span class="linenos">1774</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Table-1775"><a href="#Table-1775"><span class="linenos">1775</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> -</span><span id="Table-1776"><a href="#Table-1776"><span class="linenos">1776</span></a> -</span><span id="Table-1777"><a href="#Table-1777"><span class="linenos">1777</span></a> <span class="nd">@property</span> -</span><span id="Table-1778"><a href="#Table-1778"><span class="linenos">1778</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Table-1779"><a href="#Table-1779"><span class="linenos">1779</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Table-1872"><a href="#Table-1872"><span class="linenos">1872</span></a><span class="k">class</span> <span class="nc">Table</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Table-1873"><a href="#Table-1873"><span class="linenos">1873</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Table-1874"><a href="#Table-1874"><span class="linenos">1874</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Table-1875"><a href="#Table-1875"><span class="linenos">1875</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1876"><a href="#Table-1876"><span class="linenos">1876</span></a> <span class="s2">"db"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1877"><a href="#Table-1877"><span class="linenos">1877</span></a> <span class="s2">"catalog"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1878"><a href="#Table-1878"><span class="linenos">1878</span></a> <span class="s2">"laterals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1879"><a href="#Table-1879"><span class="linenos">1879</span></a> <span class="s2">"joins"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1880"><a href="#Table-1880"><span class="linenos">1880</span></a> <span class="s2">"pivots"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1881"><a href="#Table-1881"><span class="linenos">1881</span></a> <span class="s2">"hints"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1882"><a href="#Table-1882"><span class="linenos">1882</span></a> <span class="s2">"system_time"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Table-1883"><a href="#Table-1883"><span class="linenos">1883</span></a> <span class="p">}</span> +</span><span id="Table-1884"><a href="#Table-1884"><span class="linenos">1884</span></a> +</span><span id="Table-1885"><a href="#Table-1885"><span class="linenos">1885</span></a> <span class="nd">@property</span> +</span><span id="Table-1886"><a href="#Table-1886"><span class="linenos">1886</span></a> <span class="k">def</span> <span class="nf">db</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Table-1887"><a href="#Table-1887"><span class="linenos">1887</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">)</span> +</span><span id="Table-1888"><a href="#Table-1888"><span class="linenos">1888</span></a> +</span><span id="Table-1889"><a href="#Table-1889"><span class="linenos">1889</span></a> <span class="nd">@property</span> +</span><span id="Table-1890"><a href="#Table-1890"><span class="linenos">1890</span></a> <span class="k">def</span> <span class="nf">catalog</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Table-1891"><a href="#Table-1891"><span class="linenos">1891</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">)</span> </span></pre></div> @@ -19615,12 +20134,12 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#SystemTime"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-1783"><a href="#SystemTime-1783"><span class="linenos">1783</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="SystemTime-1784"><a href="#SystemTime-1784"><span class="linenos">1784</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="SystemTime-1785"><a href="#SystemTime-1785"><span class="linenos">1785</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="SystemTime-1786"><a href="#SystemTime-1786"><span class="linenos">1786</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="SystemTime-1787"><a href="#SystemTime-1787"><span class="linenos">1787</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="SystemTime-1788"><a href="#SystemTime-1788"><span class="linenos">1788</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SystemTime-1895"><a href="#SystemTime-1895"><span class="linenos">1895</span></a><span class="k">class</span> <span class="nc">SystemTime</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="SystemTime-1896"><a href="#SystemTime-1896"><span class="linenos">1896</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="SystemTime-1897"><a href="#SystemTime-1897"><span class="linenos">1897</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="SystemTime-1898"><a href="#SystemTime-1898"><span class="linenos">1898</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="SystemTime-1899"><a href="#SystemTime-1899"><span class="linenos">1899</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="SystemTime-1900"><a href="#SystemTime-1900"><span class="linenos">1900</span></a> <span class="p">}</span> </span></pre></div> @@ -19681,94 +20200,94 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Union"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Union-1791"><a href="#Union-1791"><span class="linenos">1791</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Union-1792"><a href="#Union-1792"><span class="linenos">1792</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Union-1793"><a href="#Union-1793"><span class="linenos">1793</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Union-1794"><a href="#Union-1794"><span class="linenos">1794</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Union-1795"><a href="#Union-1795"><span class="linenos">1795</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Union-1796"><a href="#Union-1796"><span class="linenos">1796</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Union-1797"><a href="#Union-1797"><span class="linenos">1797</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> -</span><span id="Union-1798"><a href="#Union-1798"><span class="linenos">1798</span></a> <span class="p">}</span> -</span><span id="Union-1799"><a href="#Union-1799"><span class="linenos">1799</span></a> -</span><span id="Union-1800"><a href="#Union-1800"><span class="linenos">1800</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Union-1801"><a href="#Union-1801"><span class="linenos">1801</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Union-1802"><a href="#Union-1802"><span class="linenos">1802</span></a><span class="sd"> Set the LIMIT expression.</span> -</span><span id="Union-1803"><a href="#Union-1803"><span class="linenos">1803</span></a> -</span><span id="Union-1804"><a href="#Union-1804"><span class="linenos">1804</span></a><span class="sd"> Example:</span> -</span><span id="Union-1805"><a href="#Union-1805"><span class="linenos">1805</span></a><span class="sd"> >>> select("1").union(select("1")).limit(1).sql()</span> -</span><span id="Union-1806"><a href="#Union-1806"><span class="linenos">1806</span></a><span class="sd"> 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span> -</span><span id="Union-1807"><a href="#Union-1807"><span class="linenos">1807</span></a> -</span><span id="Union-1808"><a href="#Union-1808"><span class="linenos">1808</span></a><span class="sd"> Args:</span> -</span><span id="Union-1809"><a href="#Union-1809"><span class="linenos">1809</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="Union-1810"><a href="#Union-1810"><span class="linenos">1810</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="Union-1811"><a href="#Union-1811"><span class="linenos">1811</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> -</span><span id="Union-1812"><a href="#Union-1812"><span class="linenos">1812</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> -</span><span id="Union-1813"><a href="#Union-1813"><span class="linenos">1813</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Union-1814"><a href="#Union-1814"><span class="linenos">1814</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Union-1815"><a href="#Union-1815"><span class="linenos">1815</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Union-1816"><a href="#Union-1816"><span class="linenos">1816</span></a> -</span><span id="Union-1817"><a href="#Union-1817"><span class="linenos">1817</span></a><span class="sd"> Returns:</span> -</span><span id="Union-1818"><a href="#Union-1818"><span class="linenos">1818</span></a><span class="sd"> Select: The limited subqueryable.</span> -</span><span id="Union-1819"><a href="#Union-1819"><span class="linenos">1819</span></a><span class="sd"> """</span> -</span><span id="Union-1820"><a href="#Union-1820"><span class="linenos">1820</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="Union-1821"><a href="#Union-1821"><span class="linenos">1821</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> -</span><span id="Union-1822"><a href="#Union-1822"><span class="linenos">1822</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_l_0"</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span> -</span><span id="Union-1823"><a href="#Union-1823"><span class="linenos">1823</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Union-1824"><a href="#Union-1824"><span class="linenos">1824</span></a> <span class="p">)</span> -</span><span id="Union-1825"><a href="#Union-1825"><span class="linenos">1825</span></a> -</span><span id="Union-1826"><a href="#Union-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> -</span><span id="Union-1827"><a href="#Union-1827"><span class="linenos">1827</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Union-1828"><a href="#Union-1828"><span class="linenos">1828</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="Union-1829"><a href="#Union-1829"><span class="linenos">1829</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Union-1830"><a href="#Union-1830"><span class="linenos">1830</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Union-1831"><a href="#Union-1831"><span class="linenos">1831</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Union-1832"><a href="#Union-1832"><span class="linenos">1832</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Union-1833"><a href="#Union-1833"><span class="linenos">1833</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">:</span> -</span><span id="Union-1834"><a href="#Union-1834"><span class="linenos">1834</span></a><span class="w"> </span><span class="sd">"""Append to or set the SELECT of the union recursively.</span> -</span><span id="Union-1835"><a href="#Union-1835"><span class="linenos">1835</span></a> -</span><span id="Union-1836"><a href="#Union-1836"><span class="linenos">1836</span></a><span class="sd"> Example:</span> -</span><span id="Union-1837"><a href="#Union-1837"><span class="linenos">1837</span></a><span class="sd"> >>> from sqlglot import parse_one</span> -</span><span id="Union-1838"><a href="#Union-1838"><span class="linenos">1838</span></a><span class="sd"> >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()</span> -</span><span id="Union-1839"><a href="#Union-1839"><span class="linenos">1839</span></a><span class="sd"> 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span> -</span><span id="Union-1840"><a href="#Union-1840"><span class="linenos">1840</span></a> -</span><span id="Union-1841"><a href="#Union-1841"><span class="linenos">1841</span></a><span class="sd"> Args:</span> -</span><span id="Union-1842"><a href="#Union-1842"><span class="linenos">1842</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> -</span><span id="Union-1843"><a href="#Union-1843"><span class="linenos">1843</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Union-1844"><a href="#Union-1844"><span class="linenos">1844</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> -</span><span id="Union-1845"><a href="#Union-1845"><span class="linenos">1845</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Union-1846"><a href="#Union-1846"><span class="linenos">1846</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> -</span><span id="Union-1847"><a href="#Union-1847"><span class="linenos">1847</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="Union-1848"><a href="#Union-1848"><span class="linenos">1848</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> -</span><span id="Union-1849"><a href="#Union-1849"><span class="linenos">1849</span></a> -</span><span id="Union-1850"><a href="#Union-1850"><span class="linenos">1850</span></a><span class="sd"> Returns:</span> -</span><span id="Union-1851"><a href="#Union-1851"><span class="linenos">1851</span></a><span class="sd"> Union: the modified expression.</span> -</span><span id="Union-1852"><a href="#Union-1852"><span class="linenos">1852</span></a><span class="sd"> """</span> -</span><span id="Union-1853"><a href="#Union-1853"><span class="linenos">1853</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span> -</span><span id="Union-1854"><a href="#Union-1854"><span class="linenos">1854</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Union-1855"><a href="#Union-1855"><span class="linenos">1855</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span> -</span><span id="Union-1856"><a href="#Union-1856"><span class="linenos">1856</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> -</span><span id="Union-1857"><a href="#Union-1857"><span class="linenos">1857</span></a> <span class="p">)</span> -</span><span id="Union-1858"><a href="#Union-1858"><span class="linenos">1858</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Union-1859"><a href="#Union-1859"><span class="linenos">1859</span></a> -</span><span id="Union-1860"><a href="#Union-1860"><span class="linenos">1860</span></a> <span class="nd">@property</span> -</span><span id="Union-1861"><a href="#Union-1861"><span class="linenos">1861</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Union-1862"><a href="#Union-1862"><span class="linenos">1862</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span> -</span><span id="Union-1863"><a href="#Union-1863"><span class="linenos">1863</span></a> -</span><span id="Union-1864"><a href="#Union-1864"><span class="linenos">1864</span></a> <span class="nd">@property</span> -</span><span id="Union-1865"><a href="#Union-1865"><span class="linenos">1865</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Union-1866"><a href="#Union-1866"><span class="linenos">1866</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> -</span><span id="Union-1867"><a href="#Union-1867"><span class="linenos">1867</span></a> -</span><span id="Union-1868"><a href="#Union-1868"><span class="linenos">1868</span></a> <span class="nd">@property</span> -</span><span id="Union-1869"><a href="#Union-1869"><span class="linenos">1869</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Union-1870"><a href="#Union-1870"><span class="linenos">1870</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> -</span><span id="Union-1871"><a href="#Union-1871"><span class="linenos">1871</span></a> -</span><span id="Union-1872"><a href="#Union-1872"><span class="linenos">1872</span></a> <span class="nd">@property</span> -</span><span id="Union-1873"><a href="#Union-1873"><span class="linenos">1873</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Union-1874"><a href="#Union-1874"><span class="linenos">1874</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> -</span><span id="Union-1875"><a href="#Union-1875"><span class="linenos">1875</span></a> -</span><span id="Union-1876"><a href="#Union-1876"><span class="linenos">1876</span></a> <span class="nd">@property</span> -</span><span id="Union-1877"><a href="#Union-1877"><span class="linenos">1877</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Union-1878"><a href="#Union-1878"><span class="linenos">1878</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Union-1903"><a href="#Union-1903"><span class="linenos">1903</span></a><span class="k">class</span> <span class="nc">Union</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Union-1904"><a href="#Union-1904"><span class="linenos">1904</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Union-1905"><a href="#Union-1905"><span class="linenos">1905</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Union-1906"><a href="#Union-1906"><span class="linenos">1906</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Union-1907"><a href="#Union-1907"><span class="linenos">1907</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Union-1908"><a href="#Union-1908"><span class="linenos">1908</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Union-1909"><a href="#Union-1909"><span class="linenos">1909</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> +</span><span id="Union-1910"><a href="#Union-1910"><span class="linenos">1910</span></a> <span class="p">}</span> +</span><span id="Union-1911"><a href="#Union-1911"><span class="linenos">1911</span></a> +</span><span id="Union-1912"><a href="#Union-1912"><span class="linenos">1912</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Union-1913"><a href="#Union-1913"><span class="linenos">1913</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Union-1914"><a href="#Union-1914"><span class="linenos">1914</span></a><span class="sd"> Set the LIMIT expression.</span> +</span><span id="Union-1915"><a href="#Union-1915"><span class="linenos">1915</span></a> +</span><span id="Union-1916"><a href="#Union-1916"><span class="linenos">1916</span></a><span class="sd"> Example:</span> +</span><span id="Union-1917"><a href="#Union-1917"><span class="linenos">1917</span></a><span class="sd"> >>> select("1").union(select("1")).limit(1).sql()</span> +</span><span id="Union-1918"><a href="#Union-1918"><span class="linenos">1918</span></a><span class="sd"> 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span> +</span><span id="Union-1919"><a href="#Union-1919"><span class="linenos">1919</span></a> +</span><span id="Union-1920"><a href="#Union-1920"><span class="linenos">1920</span></a><span class="sd"> Args:</span> +</span><span id="Union-1921"><a href="#Union-1921"><span class="linenos">1921</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="Union-1922"><a href="#Union-1922"><span class="linenos">1922</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="Union-1923"><a href="#Union-1923"><span class="linenos">1923</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> +</span><span id="Union-1924"><a href="#Union-1924"><span class="linenos">1924</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> +</span><span id="Union-1925"><a href="#Union-1925"><span class="linenos">1925</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Union-1926"><a href="#Union-1926"><span class="linenos">1926</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Union-1927"><a href="#Union-1927"><span class="linenos">1927</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Union-1928"><a href="#Union-1928"><span class="linenos">1928</span></a> +</span><span id="Union-1929"><a href="#Union-1929"><span class="linenos">1929</span></a><span class="sd"> Returns:</span> +</span><span id="Union-1930"><a href="#Union-1930"><span class="linenos">1930</span></a><span class="sd"> Select: The limited subqueryable.</span> +</span><span id="Union-1931"><a href="#Union-1931"><span class="linenos">1931</span></a><span class="sd"> """</span> +</span><span id="Union-1932"><a href="#Union-1932"><span class="linenos">1932</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="Union-1933"><a href="#Union-1933"><span class="linenos">1933</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> +</span><span id="Union-1934"><a href="#Union-1934"><span class="linenos">1934</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_l_0"</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span> +</span><span id="Union-1935"><a href="#Union-1935"><span class="linenos">1935</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Union-1936"><a href="#Union-1936"><span class="linenos">1936</span></a> <span class="p">)</span> +</span><span id="Union-1937"><a href="#Union-1937"><span class="linenos">1937</span></a> +</span><span id="Union-1938"><a href="#Union-1938"><span class="linenos">1938</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> +</span><span id="Union-1939"><a href="#Union-1939"><span class="linenos">1939</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Union-1940"><a href="#Union-1940"><span class="linenos">1940</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Union-1941"><a href="#Union-1941"><span class="linenos">1941</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Union-1942"><a href="#Union-1942"><span class="linenos">1942</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Union-1943"><a href="#Union-1943"><span class="linenos">1943</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Union-1944"><a href="#Union-1944"><span class="linenos">1944</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Union-1945"><a href="#Union-1945"><span class="linenos">1945</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">:</span> +</span><span id="Union-1946"><a href="#Union-1946"><span class="linenos">1946</span></a><span class="w"> </span><span class="sd">"""Append to or set the SELECT of the union recursively.</span> +</span><span id="Union-1947"><a href="#Union-1947"><span class="linenos">1947</span></a> +</span><span id="Union-1948"><a href="#Union-1948"><span class="linenos">1948</span></a><span class="sd"> Example:</span> +</span><span id="Union-1949"><a href="#Union-1949"><span class="linenos">1949</span></a><span class="sd"> >>> from sqlglot import parse_one</span> +</span><span id="Union-1950"><a href="#Union-1950"><span class="linenos">1950</span></a><span class="sd"> >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()</span> +</span><span id="Union-1951"><a href="#Union-1951"><span class="linenos">1951</span></a><span class="sd"> 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span> +</span><span id="Union-1952"><a href="#Union-1952"><span class="linenos">1952</span></a> +</span><span id="Union-1953"><a href="#Union-1953"><span class="linenos">1953</span></a><span class="sd"> Args:</span> +</span><span id="Union-1954"><a href="#Union-1954"><span class="linenos">1954</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="Union-1955"><a href="#Union-1955"><span class="linenos">1955</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Union-1956"><a href="#Union-1956"><span class="linenos">1956</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> +</span><span id="Union-1957"><a href="#Union-1957"><span class="linenos">1957</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Union-1958"><a href="#Union-1958"><span class="linenos">1958</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Union-1959"><a href="#Union-1959"><span class="linenos">1959</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Union-1960"><a href="#Union-1960"><span class="linenos">1960</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Union-1961"><a href="#Union-1961"><span class="linenos">1961</span></a> +</span><span id="Union-1962"><a href="#Union-1962"><span class="linenos">1962</span></a><span class="sd"> Returns:</span> +</span><span id="Union-1963"><a href="#Union-1963"><span class="linenos">1963</span></a><span class="sd"> Union: the modified expression.</span> +</span><span id="Union-1964"><a href="#Union-1964"><span class="linenos">1964</span></a><span class="sd"> """</span> +</span><span id="Union-1965"><a href="#Union-1965"><span class="linenos">1965</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span> +</span><span id="Union-1966"><a href="#Union-1966"><span class="linenos">1966</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Union-1967"><a href="#Union-1967"><span class="linenos">1967</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span> +</span><span id="Union-1968"><a href="#Union-1968"><span class="linenos">1968</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> +</span><span id="Union-1969"><a href="#Union-1969"><span class="linenos">1969</span></a> <span class="p">)</span> +</span><span id="Union-1970"><a href="#Union-1970"><span class="linenos">1970</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Union-1971"><a href="#Union-1971"><span class="linenos">1971</span></a> +</span><span id="Union-1972"><a href="#Union-1972"><span class="linenos">1972</span></a> <span class="nd">@property</span> +</span><span id="Union-1973"><a href="#Union-1973"><span class="linenos">1973</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Union-1974"><a href="#Union-1974"><span class="linenos">1974</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">named_selects</span> +</span><span id="Union-1975"><a href="#Union-1975"><span class="linenos">1975</span></a> +</span><span id="Union-1976"><a href="#Union-1976"><span class="linenos">1976</span></a> <span class="nd">@property</span> +</span><span id="Union-1977"><a href="#Union-1977"><span class="linenos">1977</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Union-1978"><a href="#Union-1978"><span class="linenos">1978</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> +</span><span id="Union-1979"><a href="#Union-1979"><span class="linenos">1979</span></a> +</span><span id="Union-1980"><a href="#Union-1980"><span class="linenos">1980</span></a> <span class="nd">@property</span> +</span><span id="Union-1981"><a href="#Union-1981"><span class="linenos">1981</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Union-1982"><a href="#Union-1982"><span class="linenos">1982</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> +</span><span id="Union-1983"><a href="#Union-1983"><span class="linenos">1983</span></a> +</span><span id="Union-1984"><a href="#Union-1984"><span class="linenos">1984</span></a> <span class="nd">@property</span> +</span><span id="Union-1985"><a href="#Union-1985"><span class="linenos">1985</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Union-1986"><a href="#Union-1986"><span class="linenos">1986</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> +</span><span id="Union-1987"><a href="#Union-1987"><span class="linenos">1987</span></a> +</span><span id="Union-1988"><a href="#Union-1988"><span class="linenos">1988</span></a> <span class="nd">@property</span> +</span><span id="Union-1989"><a href="#Union-1989"><span class="linenos">1989</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Union-1990"><a href="#Union-1990"><span class="linenos">1990</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> </span></pre></div> @@ -19785,31 +20304,31 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Union.limit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-1800"><a href="#Union.limit-1800"><span class="linenos">1800</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Union.limit-1801"><a href="#Union.limit-1801"><span class="linenos">1801</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Union.limit-1802"><a href="#Union.limit-1802"><span class="linenos">1802</span></a><span class="sd"> Set the LIMIT expression.</span> -</span><span id="Union.limit-1803"><a href="#Union.limit-1803"><span class="linenos">1803</span></a> -</span><span id="Union.limit-1804"><a href="#Union.limit-1804"><span class="linenos">1804</span></a><span class="sd"> Example:</span> -</span><span id="Union.limit-1805"><a href="#Union.limit-1805"><span class="linenos">1805</span></a><span class="sd"> >>> select("1").union(select("1")).limit(1).sql()</span> -</span><span id="Union.limit-1806"><a href="#Union.limit-1806"><span class="linenos">1806</span></a><span class="sd"> 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span> -</span><span id="Union.limit-1807"><a href="#Union.limit-1807"><span class="linenos">1807</span></a> -</span><span id="Union.limit-1808"><a href="#Union.limit-1808"><span class="linenos">1808</span></a><span class="sd"> Args:</span> -</span><span id="Union.limit-1809"><a href="#Union.limit-1809"><span class="linenos">1809</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="Union.limit-1810"><a href="#Union.limit-1810"><span class="linenos">1810</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="Union.limit-1811"><a href="#Union.limit-1811"><span class="linenos">1811</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> -</span><span id="Union.limit-1812"><a href="#Union.limit-1812"><span class="linenos">1812</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> -</span><span id="Union.limit-1813"><a href="#Union.limit-1813"><span class="linenos">1813</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Union.limit-1814"><a href="#Union.limit-1814"><span class="linenos">1814</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Union.limit-1815"><a href="#Union.limit-1815"><span class="linenos">1815</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Union.limit-1816"><a href="#Union.limit-1816"><span class="linenos">1816</span></a> -</span><span id="Union.limit-1817"><a href="#Union.limit-1817"><span class="linenos">1817</span></a><span class="sd"> Returns:</span> -</span><span id="Union.limit-1818"><a href="#Union.limit-1818"><span class="linenos">1818</span></a><span class="sd"> Select: The limited subqueryable.</span> -</span><span id="Union.limit-1819"><a href="#Union.limit-1819"><span class="linenos">1819</span></a><span class="sd"> """</span> -</span><span id="Union.limit-1820"><a href="#Union.limit-1820"><span class="linenos">1820</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="Union.limit-1821"><a href="#Union.limit-1821"><span class="linenos">1821</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> -</span><span id="Union.limit-1822"><a href="#Union.limit-1822"><span class="linenos">1822</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_l_0"</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span> -</span><span id="Union.limit-1823"><a href="#Union.limit-1823"><span class="linenos">1823</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Union.limit-1824"><a href="#Union.limit-1824"><span class="linenos">1824</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Union.limit-1912"><a href="#Union.limit-1912"><span class="linenos">1912</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Union.limit-1913"><a href="#Union.limit-1913"><span class="linenos">1913</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Union.limit-1914"><a href="#Union.limit-1914"><span class="linenos">1914</span></a><span class="sd"> Set the LIMIT expression.</span> +</span><span id="Union.limit-1915"><a href="#Union.limit-1915"><span class="linenos">1915</span></a> +</span><span id="Union.limit-1916"><a href="#Union.limit-1916"><span class="linenos">1916</span></a><span class="sd"> Example:</span> +</span><span id="Union.limit-1917"><a href="#Union.limit-1917"><span class="linenos">1917</span></a><span class="sd"> >>> select("1").union(select("1")).limit(1).sql()</span> +</span><span id="Union.limit-1918"><a href="#Union.limit-1918"><span class="linenos">1918</span></a><span class="sd"> 'SELECT * FROM (SELECT 1 UNION SELECT 1) AS _l_0 LIMIT 1'</span> +</span><span id="Union.limit-1919"><a href="#Union.limit-1919"><span class="linenos">1919</span></a> +</span><span id="Union.limit-1920"><a href="#Union.limit-1920"><span class="linenos">1920</span></a><span class="sd"> Args:</span> +</span><span id="Union.limit-1921"><a href="#Union.limit-1921"><span class="linenos">1921</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="Union.limit-1922"><a href="#Union.limit-1922"><span class="linenos">1922</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="Union.limit-1923"><a href="#Union.limit-1923"><span class="linenos">1923</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> +</span><span id="Union.limit-1924"><a href="#Union.limit-1924"><span class="linenos">1924</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> +</span><span id="Union.limit-1925"><a href="#Union.limit-1925"><span class="linenos">1925</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Union.limit-1926"><a href="#Union.limit-1926"><span class="linenos">1926</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Union.limit-1927"><a href="#Union.limit-1927"><span class="linenos">1927</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Union.limit-1928"><a href="#Union.limit-1928"><span class="linenos">1928</span></a> +</span><span id="Union.limit-1929"><a href="#Union.limit-1929"><span class="linenos">1929</span></a><span class="sd"> Returns:</span> +</span><span id="Union.limit-1930"><a href="#Union.limit-1930"><span class="linenos">1930</span></a><span class="sd"> Select: The limited subqueryable.</span> +</span><span id="Union.limit-1931"><a href="#Union.limit-1931"><span class="linenos">1931</span></a><span class="sd"> """</span> +</span><span id="Union.limit-1932"><a href="#Union.limit-1932"><span class="linenos">1932</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="Union.limit-1933"><a href="#Union.limit-1933"><span class="linenos">1933</span></a> <span class="n">select</span><span class="p">(</span><span class="s2">"*"</span><span class="p">)</span> +</span><span id="Union.limit-1934"><a href="#Union.limit-1934"><span class="linenos">1934</span></a> <span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_l_0"</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">))</span> +</span><span id="Union.limit-1935"><a href="#Union.limit-1935"><span class="linenos">1935</span></a> <span class="o">.</span><span class="n">limit</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Union.limit-1936"><a href="#Union.limit-1936"><span class="linenos">1936</span></a> <span class="p">)</span> </span></pre></div> @@ -19851,45 +20370,45 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, <div class="attr function"> <span class="def">def</span> - <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span> + <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Union">sqlglot.expressions.Union</a></span>:</span></span> <label class="view-source-button" for="Union.select-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#Union.select"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-1826"><a href="#Union.select-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> -</span><span id="Union.select-1827"><a href="#Union.select-1827"><span class="linenos">1827</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Union.select-1828"><a href="#Union.select-1828"><span class="linenos">1828</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="Union.select-1829"><a href="#Union.select-1829"><span class="linenos">1829</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Union.select-1830"><a href="#Union.select-1830"><span class="linenos">1830</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Union.select-1831"><a href="#Union.select-1831"><span class="linenos">1831</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Union.select-1832"><a href="#Union.select-1832"><span class="linenos">1832</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Union.select-1833"><a href="#Union.select-1833"><span class="linenos">1833</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">:</span> -</span><span id="Union.select-1834"><a href="#Union.select-1834"><span class="linenos">1834</span></a><span class="w"> </span><span class="sd">"""Append to or set the SELECT of the union recursively.</span> -</span><span id="Union.select-1835"><a href="#Union.select-1835"><span class="linenos">1835</span></a> -</span><span id="Union.select-1836"><a href="#Union.select-1836"><span class="linenos">1836</span></a><span class="sd"> Example:</span> -</span><span id="Union.select-1837"><a href="#Union.select-1837"><span class="linenos">1837</span></a><span class="sd"> >>> from sqlglot import parse_one</span> -</span><span id="Union.select-1838"><a href="#Union.select-1838"><span class="linenos">1838</span></a><span class="sd"> >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()</span> -</span><span id="Union.select-1839"><a href="#Union.select-1839"><span class="linenos">1839</span></a><span class="sd"> 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span> -</span><span id="Union.select-1840"><a href="#Union.select-1840"><span class="linenos">1840</span></a> -</span><span id="Union.select-1841"><a href="#Union.select-1841"><span class="linenos">1841</span></a><span class="sd"> Args:</span> -</span><span id="Union.select-1842"><a href="#Union.select-1842"><span class="linenos">1842</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> -</span><span id="Union.select-1843"><a href="#Union.select-1843"><span class="linenos">1843</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Union.select-1844"><a href="#Union.select-1844"><span class="linenos">1844</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> -</span><span id="Union.select-1845"><a href="#Union.select-1845"><span class="linenos">1845</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Union.select-1846"><a href="#Union.select-1846"><span class="linenos">1846</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> -</span><span id="Union.select-1847"><a href="#Union.select-1847"><span class="linenos">1847</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="Union.select-1848"><a href="#Union.select-1848"><span class="linenos">1848</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> -</span><span id="Union.select-1849"><a href="#Union.select-1849"><span class="linenos">1849</span></a> -</span><span id="Union.select-1850"><a href="#Union.select-1850"><span class="linenos">1850</span></a><span class="sd"> Returns:</span> -</span><span id="Union.select-1851"><a href="#Union.select-1851"><span class="linenos">1851</span></a><span class="sd"> Union: the modified expression.</span> -</span><span id="Union.select-1852"><a href="#Union.select-1852"><span class="linenos">1852</span></a><span class="sd"> """</span> -</span><span id="Union.select-1853"><a href="#Union.select-1853"><span class="linenos">1853</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span> -</span><span id="Union.select-1854"><a href="#Union.select-1854"><span class="linenos">1854</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Union.select-1855"><a href="#Union.select-1855"><span class="linenos">1855</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span> -</span><span id="Union.select-1856"><a href="#Union.select-1856"><span class="linenos">1856</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> -</span><span id="Union.select-1857"><a href="#Union.select-1857"><span class="linenos">1857</span></a> <span class="p">)</span> -</span><span id="Union.select-1858"><a href="#Union.select-1858"><span class="linenos">1858</span></a> <span class="k">return</span> <span class="n">this</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Union.select-1938"><a href="#Union.select-1938"><span class="linenos">1938</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> +</span><span id="Union.select-1939"><a href="#Union.select-1939"><span class="linenos">1939</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Union.select-1940"><a href="#Union.select-1940"><span class="linenos">1940</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Union.select-1941"><a href="#Union.select-1941"><span class="linenos">1941</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Union.select-1942"><a href="#Union.select-1942"><span class="linenos">1942</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Union.select-1943"><a href="#Union.select-1943"><span class="linenos">1943</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Union.select-1944"><a href="#Union.select-1944"><span class="linenos">1944</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Union.select-1945"><a href="#Union.select-1945"><span class="linenos">1945</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Union</span><span class="p">:</span> +</span><span id="Union.select-1946"><a href="#Union.select-1946"><span class="linenos">1946</span></a><span class="w"> </span><span class="sd">"""Append to or set the SELECT of the union recursively.</span> +</span><span id="Union.select-1947"><a href="#Union.select-1947"><span class="linenos">1947</span></a> +</span><span id="Union.select-1948"><a href="#Union.select-1948"><span class="linenos">1948</span></a><span class="sd"> Example:</span> +</span><span id="Union.select-1949"><a href="#Union.select-1949"><span class="linenos">1949</span></a><span class="sd"> >>> from sqlglot import parse_one</span> +</span><span id="Union.select-1950"><a href="#Union.select-1950"><span class="linenos">1950</span></a><span class="sd"> >>> parse_one("select a from x union select a from y union select a from z").select("b").sql()</span> +</span><span id="Union.select-1951"><a href="#Union.select-1951"><span class="linenos">1951</span></a><span class="sd"> 'SELECT a, b FROM x UNION SELECT a, b FROM y UNION SELECT a, b FROM z'</span> +</span><span id="Union.select-1952"><a href="#Union.select-1952"><span class="linenos">1952</span></a> +</span><span id="Union.select-1953"><a href="#Union.select-1953"><span class="linenos">1953</span></a><span class="sd"> Args:</span> +</span><span id="Union.select-1954"><a href="#Union.select-1954"><span class="linenos">1954</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="Union.select-1955"><a href="#Union.select-1955"><span class="linenos">1955</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Union.select-1956"><a href="#Union.select-1956"><span class="linenos">1956</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> +</span><span id="Union.select-1957"><a href="#Union.select-1957"><span class="linenos">1957</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Union.select-1958"><a href="#Union.select-1958"><span class="linenos">1958</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Union.select-1959"><a href="#Union.select-1959"><span class="linenos">1959</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Union.select-1960"><a href="#Union.select-1960"><span class="linenos">1960</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Union.select-1961"><a href="#Union.select-1961"><span class="linenos">1961</span></a> +</span><span id="Union.select-1962"><a href="#Union.select-1962"><span class="linenos">1962</span></a><span class="sd"> Returns:</span> +</span><span id="Union.select-1963"><a href="#Union.select-1963"><span class="linenos">1963</span></a><span class="sd"> Union: the modified expression.</span> +</span><span id="Union.select-1964"><a href="#Union.select-1964"><span class="linenos">1964</span></a><span class="sd"> """</span> +</span><span id="Union.select-1965"><a href="#Union.select-1965"><span class="linenos">1965</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span> +</span><span id="Union.select-1966"><a href="#Union.select-1966"><span class="linenos">1966</span></a> <span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Union.select-1967"><a href="#Union.select-1967"><span class="linenos">1967</span></a> <span class="n">this</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span> +</span><span id="Union.select-1968"><a href="#Union.select-1968"><span class="linenos">1968</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span> +</span><span id="Union.select-1969"><a href="#Union.select-1969"><span class="linenos">1969</span></a> <span class="p">)</span> +</span><span id="Union.select-1970"><a href="#Union.select-1970"><span class="linenos">1970</span></a> <span class="k">return</span> <span class="n">this</span> </span></pre></div> @@ -20005,8 +20524,8 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Except"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Except-1881"><a href="#Except-1881"><span class="linenos">1881</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> -</span><span id="Except-1882"><a href="#Except-1882"><span class="linenos">1882</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Except-1993"><a href="#Except-1993"><span class="linenos">1993</span></a><span class="k">class</span> <span class="nc">Except</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> +</span><span id="Except-1994"><a href="#Except-1994"><span class="linenos">1994</span></a> <span class="k">pass</span> </span></pre></div> @@ -20083,8 +20602,8 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Intersect"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-1885"><a href="#Intersect-1885"><span class="linenos">1885</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> -</span><span id="Intersect-1886"><a href="#Intersect-1886"><span class="linenos">1886</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Intersect-1997"><a href="#Intersect-1997"><span class="linenos">1997</span></a><span class="k">class</span> <span class="nc">Intersect</span><span class="p">(</span><span class="n">Union</span><span class="p">):</span> +</span><span id="Intersect-1998"><a href="#Intersect-1998"><span class="linenos">1998</span></a> <span class="k">pass</span> </span></pre></div> @@ -20161,13 +20680,13 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Unnest"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-1889"><a href="#Unnest-1889"><span class="linenos">1889</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="Unnest-1890"><a href="#Unnest-1890"><span class="linenos">1890</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Unnest-1891"><a href="#Unnest-1891"><span class="linenos">1891</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Unnest-1892"><a href="#Unnest-1892"><span class="linenos">1892</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Unnest-1893"><a href="#Unnest-1893"><span class="linenos">1893</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Unnest-1894"><a href="#Unnest-1894"><span class="linenos">1894</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Unnest-1895"><a href="#Unnest-1895"><span class="linenos">1895</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unnest-2001"><a href="#Unnest-2001"><span class="linenos">2001</span></a><span class="k">class</span> <span class="nc">Unnest</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="Unnest-2002"><a href="#Unnest-2002"><span class="linenos">2002</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Unnest-2003"><a href="#Unnest-2003"><span class="linenos">2003</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Unnest-2004"><a href="#Unnest-2004"><span class="linenos">2004</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Unnest-2005"><a href="#Unnest-2005"><span class="linenos">2005</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Unnest-2006"><a href="#Unnest-2006"><span class="linenos">2006</span></a> <span class="s2">"offset"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Unnest-2007"><a href="#Unnest-2007"><span class="linenos">2007</span></a> <span class="p">}</span> </span></pre></div> @@ -20234,15 +20753,15 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Update"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Update-1898"><a href="#Update-1898"><span class="linenos">1898</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Update-1899"><a href="#Update-1899"><span class="linenos">1899</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Update-1900"><a href="#Update-1900"><span class="linenos">1900</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Update-1901"><a href="#Update-1901"><span class="linenos">1901</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Update-1902"><a href="#Update-1902"><span class="linenos">1902</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Update-1903"><a href="#Update-1903"><span class="linenos">1903</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Update-1904"><a href="#Update-1904"><span class="linenos">1904</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Update-1905"><a href="#Update-1905"><span class="linenos">1905</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Update-1906"><a href="#Update-1906"><span class="linenos">1906</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Update-2010"><a href="#Update-2010"><span class="linenos">2010</span></a><span class="k">class</span> <span class="nc">Update</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Update-2011"><a href="#Update-2011"><span class="linenos">2011</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Update-2012"><a href="#Update-2012"><span class="linenos">2012</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Update-2013"><a href="#Update-2013"><span class="linenos">2013</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Update-2014"><a href="#Update-2014"><span class="linenos">2014</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Update-2015"><a href="#Update-2015"><span class="linenos">2015</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Update-2016"><a href="#Update-2016"><span class="linenos">2016</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Update-2017"><a href="#Update-2017"><span class="linenos">2017</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Update-2018"><a href="#Update-2018"><span class="linenos">2018</span></a> <span class="p">}</span> </span></pre></div> @@ -20303,12 +20822,12 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Values"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Values-1909"><a href="#Values-1909"><span class="linenos">1909</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="Values-1910"><a href="#Values-1910"><span class="linenos">1910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Values-1911"><a href="#Values-1911"><span class="linenos">1911</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Values-1912"><a href="#Values-1912"><span class="linenos">1912</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Values-1913"><a href="#Values-1913"><span class="linenos">1913</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Values-1914"><a href="#Values-1914"><span class="linenos">1914</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Values-2021"><a href="#Values-2021"><span class="linenos">2021</span></a><span class="k">class</span> <span class="nc">Values</span><span class="p">(</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="Values-2022"><a href="#Values-2022"><span class="linenos">2022</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Values-2023"><a href="#Values-2023"><span class="linenos">2023</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Values-2024"><a href="#Values-2024"><span class="linenos">2024</span></a> <span class="s2">"ordinality"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Values-2025"><a href="#Values-2025"><span class="linenos">2025</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Values-2026"><a href="#Values-2026"><span class="linenos">2026</span></a> <span class="p">}</span> </span></pre></div> @@ -20375,8 +20894,8 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Var"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Var-1917"><a href="#Var-1917"><span class="linenos">1917</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Var-1918"><a href="#Var-1918"><span class="linenos">1918</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Var-2029"><a href="#Var-2029"><span class="linenos">2029</span></a><span class="k">class</span> <span class="nc">Var</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Var-2030"><a href="#Var-2030"><span class="linenos">2030</span></a> <span class="k">pass</span> </span></pre></div> @@ -20437,8 +20956,8 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Schema"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Schema-1921"><a href="#Schema-1921"><span class="linenos">1921</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Schema-1922"><a href="#Schema-1922"><span class="linenos">1922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Schema-2033"><a href="#Schema-2033"><span class="linenos">2033</span></a><span class="k">class</span> <span class="nc">Schema</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Schema-2034"><a href="#Schema-2034"><span class="linenos">2034</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -20499,8 +21018,8 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Lock"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-1927"><a href="#Lock-1927"><span class="linenos">1927</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Lock-1928"><a href="#Lock-1928"><span class="linenos">1928</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"update"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Lock-2039"><a href="#Lock-2039"><span class="linenos">2039</span></a><span class="k">class</span> <span class="nc">Lock</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Lock-2040"><a href="#Lock-2040"><span class="linenos">2040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"update"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -20561,590 +21080,590 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Select"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select-1931"><a href="#Select-1931"><span class="linenos">1931</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Select-1932"><a href="#Select-1932"><span class="linenos">1932</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Select-1933"><a href="#Select-1933"><span class="linenos">1933</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Select-1934"><a href="#Select-1934"><span class="linenos">1934</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Select-1935"><a href="#Select-1935"><span class="linenos">1935</span></a> <span class="s2">"hint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Select-1936"><a href="#Select-1936"><span class="linenos">1936</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Select-1937"><a href="#Select-1937"><span class="linenos">1937</span></a> <span class="s2">"into"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Select-1938"><a href="#Select-1938"><span class="linenos">1938</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Select-1939"><a href="#Select-1939"><span class="linenos">1939</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> -</span><span id="Select-1940"><a href="#Select-1940"><span class="linenos">1940</span></a> <span class="p">}</span> -</span><span id="Select-1941"><a href="#Select-1941"><span class="linenos">1941</span></a> -</span><span id="Select-1942"><a href="#Select-1942"><span class="linenos">1942</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-1943"><a href="#Select-1943"><span class="linenos">1943</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-1944"><a href="#Select-1944"><span class="linenos">1944</span></a><span class="sd"> Set the FROM expression.</span> -</span><span id="Select-1945"><a href="#Select-1945"><span class="linenos">1945</span></a> -</span><span id="Select-1946"><a href="#Select-1946"><span class="linenos">1946</span></a><span class="sd"> Example:</span> -</span><span id="Select-1947"><a href="#Select-1947"><span class="linenos">1947</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sql()</span> -</span><span id="Select-1948"><a href="#Select-1948"><span class="linenos">1948</span></a><span class="sd"> 'SELECT x FROM tbl'</span> -</span><span id="Select-1949"><a href="#Select-1949"><span class="linenos">1949</span></a> -</span><span id="Select-1950"><a href="#Select-1950"><span class="linenos">1950</span></a><span class="sd"> Args:</span> -</span><span id="Select-1951"><a href="#Select-1951"><span class="linenos">1951</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-1952"><a href="#Select-1952"><span class="linenos">1952</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span> -</span><span id="Select-1953"><a href="#Select-1953"><span class="linenos">1953</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span> -</span><span id="Select-1954"><a href="#Select-1954"><span class="linenos">1954</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-1955"><a href="#Select-1955"><span class="linenos">1955</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span> -</span><span id="Select-1956"><a href="#Select-1956"><span class="linenos">1956</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-1957"><a href="#Select-1957"><span class="linenos">1957</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-1958"><a href="#Select-1958"><span class="linenos">1958</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-1959"><a href="#Select-1959"><span class="linenos">1959</span></a> -</span><span id="Select-1960"><a href="#Select-1960"><span class="linenos">1960</span></a><span class="sd"> Returns:</span> -</span><span id="Select-1961"><a href="#Select-1961"><span class="linenos">1961</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-1962"><a href="#Select-1962"><span class="linenos">1962</span></a><span class="sd"> """</span> -</span><span id="Select-1963"><a href="#Select-1963"><span class="linenos">1963</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select-1964"><a href="#Select-1964"><span class="linenos">1964</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-1965"><a href="#Select-1965"><span class="linenos">1965</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-1966"><a href="#Select-1966"><span class="linenos">1966</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"from"</span><span class="p">,</span> -</span><span id="Select-1967"><a href="#Select-1967"><span class="linenos">1967</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-1968"><a href="#Select-1968"><span class="linenos">1968</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-1969"><a href="#Select-1969"><span class="linenos">1969</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> -</span><span id="Select-1970"><a href="#Select-1970"><span class="linenos">1970</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> -</span><span id="Select-1971"><a href="#Select-1971"><span class="linenos">1971</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-1972"><a href="#Select-1972"><span class="linenos">1972</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-1973"><a href="#Select-1973"><span class="linenos">1973</span></a> <span class="p">)</span> -</span><span id="Select-1974"><a href="#Select-1974"><span class="linenos">1974</span></a> -</span><span id="Select-1975"><a href="#Select-1975"><span class="linenos">1975</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-1976"><a href="#Select-1976"><span class="linenos">1976</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-1977"><a href="#Select-1977"><span class="linenos">1977</span></a><span class="sd"> Set the GROUP BY expression.</span> -</span><span id="Select-1978"><a href="#Select-1978"><span class="linenos">1978</span></a> -</span><span id="Select-1979"><a href="#Select-1979"><span class="linenos">1979</span></a><span class="sd"> Example:</span> -</span><span id="Select-1980"><a href="#Select-1980"><span class="linenos">1980</span></a><span class="sd"> >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()</span> -</span><span id="Select-1981"><a href="#Select-1981"><span class="linenos">1981</span></a><span class="sd"> 'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span> -</span><span id="Select-1982"><a href="#Select-1982"><span class="linenos">1982</span></a> -</span><span id="Select-1983"><a href="#Select-1983"><span class="linenos">1983</span></a><span class="sd"> Args:</span> -</span><span id="Select-1984"><a href="#Select-1984"><span class="linenos">1984</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-1985"><a href="#Select-1985"><span class="linenos">1985</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select-1986"><a href="#Select-1986"><span class="linenos">1986</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span> -</span><span id="Select-1987"><a href="#Select-1987"><span class="linenos">1987</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span> -</span><span id="Select-1988"><a href="#Select-1988"><span class="linenos">1988</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-1989"><a href="#Select-1989"><span class="linenos">1989</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span> -</span><span id="Select-1990"><a href="#Select-1990"><span class="linenos">1990</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-1991"><a href="#Select-1991"><span class="linenos">1991</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-1992"><a href="#Select-1992"><span class="linenos">1992</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-1993"><a href="#Select-1993"><span class="linenos">1993</span></a> -</span><span id="Select-1994"><a href="#Select-1994"><span class="linenos">1994</span></a><span class="sd"> Returns:</span> -</span><span id="Select-1995"><a href="#Select-1995"><span class="linenos">1995</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-1996"><a href="#Select-1996"><span class="linenos">1996</span></a><span class="sd"> """</span> -</span><span id="Select-1997"><a href="#Select-1997"><span class="linenos">1997</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Select-1998"><a href="#Select-1998"><span class="linenos">1998</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Select-1999"><a href="#Select-1999"><span class="linenos">1999</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select-2000"><a href="#Select-2000"><span class="linenos">2000</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2001"><a href="#Select-2001"><span class="linenos">2001</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2002"><a href="#Select-2002"><span class="linenos">2002</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"group"</span><span class="p">,</span> -</span><span id="Select-2003"><a href="#Select-2003"><span class="linenos">2003</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2004"><a href="#Select-2004"><span class="linenos">2004</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2005"><a href="#Select-2005"><span class="linenos">2005</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"GROUP BY"</span><span class="p">,</span> -</span><span id="Select-2006"><a href="#Select-2006"><span class="linenos">2006</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span> -</span><span id="Select-2007"><a href="#Select-2007"><span class="linenos">2007</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2008"><a href="#Select-2008"><span class="linenos">2008</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2009"><a href="#Select-2009"><span class="linenos">2009</span></a> <span class="p">)</span> -</span><span id="Select-2010"><a href="#Select-2010"><span class="linenos">2010</span></a> -</span><span id="Select-2011"><a href="#Select-2011"><span class="linenos">2011</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2012"><a href="#Select-2012"><span class="linenos">2012</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2013"><a href="#Select-2013"><span class="linenos">2013</span></a><span class="sd"> Set the ORDER BY expression.</span> -</span><span id="Select-2014"><a href="#Select-2014"><span class="linenos">2014</span></a> -</span><span id="Select-2015"><a href="#Select-2015"><span class="linenos">2015</span></a><span class="sd"> Example:</span> -</span><span id="Select-2016"><a href="#Select-2016"><span class="linenos">2016</span></a><span class="sd"> >>> Select().from_("tbl").select("x").order_by("x DESC").sql()</span> -</span><span id="Select-2017"><a href="#Select-2017"><span class="linenos">2017</span></a><span class="sd"> 'SELECT x FROM tbl ORDER BY x DESC'</span> -</span><span id="Select-2018"><a href="#Select-2018"><span class="linenos">2018</span></a> -</span><span id="Select-2019"><a href="#Select-2019"><span class="linenos">2019</span></a><span class="sd"> Args:</span> -</span><span id="Select-2020"><a href="#Select-2020"><span class="linenos">2020</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-2021"><a href="#Select-2021"><span class="linenos">2021</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select-2022"><a href="#Select-2022"><span class="linenos">2022</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span> -</span><span id="Select-2023"><a href="#Select-2023"><span class="linenos">2023</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-2024"><a href="#Select-2024"><span class="linenos">2024</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="Select-2025"><a href="#Select-2025"><span class="linenos">2025</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-2026"><a href="#Select-2026"><span class="linenos">2026</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2027"><a href="#Select-2027"><span class="linenos">2027</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-2028"><a href="#Select-2028"><span class="linenos">2028</span></a> -</span><span id="Select-2029"><a href="#Select-2029"><span class="linenos">2029</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2030"><a href="#Select-2030"><span class="linenos">2030</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2031"><a href="#Select-2031"><span class="linenos">2031</span></a><span class="sd"> """</span> -</span><span id="Select-2032"><a href="#Select-2032"><span class="linenos">2032</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select-2033"><a href="#Select-2033"><span class="linenos">2033</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2034"><a href="#Select-2034"><span class="linenos">2034</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2035"><a href="#Select-2035"><span class="linenos">2035</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"order"</span><span class="p">,</span> -</span><span id="Select-2036"><a href="#Select-2036"><span class="linenos">2036</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2037"><a href="#Select-2037"><span class="linenos">2037</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2038"><a href="#Select-2038"><span class="linenos">2038</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ORDER BY"</span><span class="p">,</span> -</span><span id="Select-2039"><a href="#Select-2039"><span class="linenos">2039</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span> -</span><span id="Select-2040"><a href="#Select-2040"><span class="linenos">2040</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2041"><a href="#Select-2041"><span class="linenos">2041</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2042"><a href="#Select-2042"><span class="linenos">2042</span></a> <span class="p">)</span> -</span><span id="Select-2043"><a href="#Select-2043"><span class="linenos">2043</span></a> -</span><span id="Select-2044"><a href="#Select-2044"><span class="linenos">2044</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2045"><a href="#Select-2045"><span class="linenos">2045</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2046"><a href="#Select-2046"><span class="linenos">2046</span></a><span class="sd"> Set the SORT BY expression.</span> -</span><span id="Select-2047"><a href="#Select-2047"><span class="linenos">2047</span></a> -</span><span id="Select-2048"><a href="#Select-2048"><span class="linenos">2048</span></a><span class="sd"> Example:</span> -</span><span id="Select-2049"><a href="#Select-2049"><span class="linenos">2049</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sort_by("x DESC").sql()</span> -</span><span id="Select-2050"><a href="#Select-2050"><span class="linenos">2050</span></a><span class="sd"> 'SELECT x FROM tbl SORT BY x DESC'</span> -</span><span id="Select-2051"><a href="#Select-2051"><span class="linenos">2051</span></a> -</span><span id="Select-2052"><a href="#Select-2052"><span class="linenos">2052</span></a><span class="sd"> Args:</span> -</span><span id="Select-2053"><a href="#Select-2053"><span class="linenos">2053</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-2054"><a href="#Select-2054"><span class="linenos">2054</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select-2055"><a href="#Select-2055"><span class="linenos">2055</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span> -</span><span id="Select-2056"><a href="#Select-2056"><span class="linenos">2056</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-2057"><a href="#Select-2057"><span class="linenos">2057</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="Select-2058"><a href="#Select-2058"><span class="linenos">2058</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-2059"><a href="#Select-2059"><span class="linenos">2059</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2060"><a href="#Select-2060"><span class="linenos">2060</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select-2043"><a href="#Select-2043"><span class="linenos">2043</span></a><span class="k">class</span> <span class="nc">Select</span><span class="p">(</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Select-2044"><a href="#Select-2044"><span class="linenos">2044</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Select-2045"><a href="#Select-2045"><span class="linenos">2045</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Select-2046"><a href="#Select-2046"><span class="linenos">2046</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Select-2047"><a href="#Select-2047"><span class="linenos">2047</span></a> <span class="s2">"hint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Select-2048"><a href="#Select-2048"><span class="linenos">2048</span></a> <span class="s2">"distinct"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Select-2049"><a href="#Select-2049"><span class="linenos">2049</span></a> <span class="s2">"into"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Select-2050"><a href="#Select-2050"><span class="linenos">2050</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Select-2051"><a href="#Select-2051"><span class="linenos">2051</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> +</span><span id="Select-2052"><a href="#Select-2052"><span class="linenos">2052</span></a> <span class="p">}</span> +</span><span id="Select-2053"><a href="#Select-2053"><span class="linenos">2053</span></a> +</span><span id="Select-2054"><a href="#Select-2054"><span class="linenos">2054</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2055"><a href="#Select-2055"><span class="linenos">2055</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2056"><a href="#Select-2056"><span class="linenos">2056</span></a><span class="sd"> Set the FROM expression.</span> +</span><span id="Select-2057"><a href="#Select-2057"><span class="linenos">2057</span></a> +</span><span id="Select-2058"><a href="#Select-2058"><span class="linenos">2058</span></a><span class="sd"> Example:</span> +</span><span id="Select-2059"><a href="#Select-2059"><span class="linenos">2059</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sql()</span> +</span><span id="Select-2060"><a href="#Select-2060"><span class="linenos">2060</span></a><span class="sd"> 'SELECT x FROM tbl'</span> </span><span id="Select-2061"><a href="#Select-2061"><span class="linenos">2061</span></a> -</span><span id="Select-2062"><a href="#Select-2062"><span class="linenos">2062</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2063"><a href="#Select-2063"><span class="linenos">2063</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2064"><a href="#Select-2064"><span class="linenos">2064</span></a><span class="sd"> """</span> -</span><span id="Select-2065"><a href="#Select-2065"><span class="linenos">2065</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select-2066"><a href="#Select-2066"><span class="linenos">2066</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2067"><a href="#Select-2067"><span class="linenos">2067</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2068"><a href="#Select-2068"><span class="linenos">2068</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"sort"</span><span class="p">,</span> -</span><span id="Select-2069"><a href="#Select-2069"><span class="linenos">2069</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2070"><a href="#Select-2070"><span class="linenos">2070</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2071"><a href="#Select-2071"><span class="linenos">2071</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"SORT BY"</span><span class="p">,</span> -</span><span id="Select-2072"><a href="#Select-2072"><span class="linenos">2072</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span> -</span><span id="Select-2073"><a href="#Select-2073"><span class="linenos">2073</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2074"><a href="#Select-2074"><span class="linenos">2074</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2075"><a href="#Select-2075"><span class="linenos">2075</span></a> <span class="p">)</span> -</span><span id="Select-2076"><a href="#Select-2076"><span class="linenos">2076</span></a> -</span><span id="Select-2077"><a href="#Select-2077"><span class="linenos">2077</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2078"><a href="#Select-2078"><span class="linenos">2078</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2079"><a href="#Select-2079"><span class="linenos">2079</span></a><span class="sd"> Set the CLUSTER BY expression.</span> -</span><span id="Select-2080"><a href="#Select-2080"><span class="linenos">2080</span></a> -</span><span id="Select-2081"><a href="#Select-2081"><span class="linenos">2081</span></a><span class="sd"> Example:</span> -</span><span id="Select-2082"><a href="#Select-2082"><span class="linenos">2082</span></a><span class="sd"> >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql()</span> -</span><span id="Select-2083"><a href="#Select-2083"><span class="linenos">2083</span></a><span class="sd"> 'SELECT x FROM tbl CLUSTER BY x DESC'</span> -</span><span id="Select-2084"><a href="#Select-2084"><span class="linenos">2084</span></a> -</span><span id="Select-2085"><a href="#Select-2085"><span class="linenos">2085</span></a><span class="sd"> Args:</span> -</span><span id="Select-2086"><a href="#Select-2086"><span class="linenos">2086</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-2087"><a href="#Select-2087"><span class="linenos">2087</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select-2088"><a href="#Select-2088"><span class="linenos">2088</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span> -</span><span id="Select-2089"><a href="#Select-2089"><span class="linenos">2089</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-2090"><a href="#Select-2090"><span class="linenos">2090</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="Select-2091"><a href="#Select-2091"><span class="linenos">2091</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-2092"><a href="#Select-2092"><span class="linenos">2092</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2093"><a href="#Select-2093"><span class="linenos">2093</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2062"><a href="#Select-2062"><span class="linenos">2062</span></a><span class="sd"> Args:</span> +</span><span id="Select-2063"><a href="#Select-2063"><span class="linenos">2063</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2064"><a href="#Select-2064"><span class="linenos">2064</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span> +</span><span id="Select-2065"><a href="#Select-2065"><span class="linenos">2065</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span> +</span><span id="Select-2066"><a href="#Select-2066"><span class="linenos">2066</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2067"><a href="#Select-2067"><span class="linenos">2067</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span> +</span><span id="Select-2068"><a href="#Select-2068"><span class="linenos">2068</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2069"><a href="#Select-2069"><span class="linenos">2069</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2070"><a href="#Select-2070"><span class="linenos">2070</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2071"><a href="#Select-2071"><span class="linenos">2071</span></a> +</span><span id="Select-2072"><a href="#Select-2072"><span class="linenos">2072</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2073"><a href="#Select-2073"><span class="linenos">2073</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2074"><a href="#Select-2074"><span class="linenos">2074</span></a><span class="sd"> """</span> +</span><span id="Select-2075"><a href="#Select-2075"><span class="linenos">2075</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select-2076"><a href="#Select-2076"><span class="linenos">2076</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2077"><a href="#Select-2077"><span class="linenos">2077</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2078"><a href="#Select-2078"><span class="linenos">2078</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"from"</span><span class="p">,</span> +</span><span id="Select-2079"><a href="#Select-2079"><span class="linenos">2079</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2080"><a href="#Select-2080"><span class="linenos">2080</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2081"><a href="#Select-2081"><span class="linenos">2081</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> +</span><span id="Select-2082"><a href="#Select-2082"><span class="linenos">2082</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> +</span><span id="Select-2083"><a href="#Select-2083"><span class="linenos">2083</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2084"><a href="#Select-2084"><span class="linenos">2084</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2085"><a href="#Select-2085"><span class="linenos">2085</span></a> <span class="p">)</span> +</span><span id="Select-2086"><a href="#Select-2086"><span class="linenos">2086</span></a> +</span><span id="Select-2087"><a href="#Select-2087"><span class="linenos">2087</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2088"><a href="#Select-2088"><span class="linenos">2088</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2089"><a href="#Select-2089"><span class="linenos">2089</span></a><span class="sd"> Set the GROUP BY expression.</span> +</span><span id="Select-2090"><a href="#Select-2090"><span class="linenos">2090</span></a> +</span><span id="Select-2091"><a href="#Select-2091"><span class="linenos">2091</span></a><span class="sd"> Example:</span> +</span><span id="Select-2092"><a href="#Select-2092"><span class="linenos">2092</span></a><span class="sd"> >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()</span> +</span><span id="Select-2093"><a href="#Select-2093"><span class="linenos">2093</span></a><span class="sd"> 'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span> </span><span id="Select-2094"><a href="#Select-2094"><span class="linenos">2094</span></a> -</span><span id="Select-2095"><a href="#Select-2095"><span class="linenos">2095</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2096"><a href="#Select-2096"><span class="linenos">2096</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2097"><a href="#Select-2097"><span class="linenos">2097</span></a><span class="sd"> """</span> -</span><span id="Select-2098"><a href="#Select-2098"><span class="linenos">2098</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select-2099"><a href="#Select-2099"><span class="linenos">2099</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2100"><a href="#Select-2100"><span class="linenos">2100</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2101"><a href="#Select-2101"><span class="linenos">2101</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"cluster"</span><span class="p">,</span> -</span><span id="Select-2102"><a href="#Select-2102"><span class="linenos">2102</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2103"><a href="#Select-2103"><span class="linenos">2103</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2104"><a href="#Select-2104"><span class="linenos">2104</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> -</span><span id="Select-2105"><a href="#Select-2105"><span class="linenos">2105</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span> -</span><span id="Select-2106"><a href="#Select-2106"><span class="linenos">2106</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2107"><a href="#Select-2107"><span class="linenos">2107</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2108"><a href="#Select-2108"><span class="linenos">2108</span></a> <span class="p">)</span> -</span><span id="Select-2109"><a href="#Select-2109"><span class="linenos">2109</span></a> -</span><span id="Select-2110"><a href="#Select-2110"><span class="linenos">2110</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2111"><a href="#Select-2111"><span class="linenos">2111</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2112"><a href="#Select-2112"><span class="linenos">2112</span></a><span class="sd"> Set the LIMIT expression.</span> -</span><span id="Select-2113"><a href="#Select-2113"><span class="linenos">2113</span></a> -</span><span id="Select-2114"><a href="#Select-2114"><span class="linenos">2114</span></a><span class="sd"> Example:</span> -</span><span id="Select-2115"><a href="#Select-2115"><span class="linenos">2115</span></a><span class="sd"> >>> Select().from_("tbl").select("x").limit(10).sql()</span> -</span><span id="Select-2116"><a href="#Select-2116"><span class="linenos">2116</span></a><span class="sd"> 'SELECT x FROM tbl LIMIT 10'</span> -</span><span id="Select-2117"><a href="#Select-2117"><span class="linenos">2117</span></a> -</span><span id="Select-2118"><a href="#Select-2118"><span class="linenos">2118</span></a><span class="sd"> Args:</span> -</span><span id="Select-2119"><a href="#Select-2119"><span class="linenos">2119</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="Select-2120"><a href="#Select-2120"><span class="linenos">2120</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="Select-2121"><a href="#Select-2121"><span class="linenos">2121</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> -</span><span id="Select-2122"><a href="#Select-2122"><span class="linenos">2122</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> -</span><span id="Select-2123"><a href="#Select-2123"><span class="linenos">2123</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-2124"><a href="#Select-2124"><span class="linenos">2124</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2125"><a href="#Select-2125"><span class="linenos">2125</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2095"><a href="#Select-2095"><span class="linenos">2095</span></a><span class="sd"> Args:</span> +</span><span id="Select-2096"><a href="#Select-2096"><span class="linenos">2096</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2097"><a href="#Select-2097"><span class="linenos">2097</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select-2098"><a href="#Select-2098"><span class="linenos">2098</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span> +</span><span id="Select-2099"><a href="#Select-2099"><span class="linenos">2099</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span> +</span><span id="Select-2100"><a href="#Select-2100"><span class="linenos">2100</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2101"><a href="#Select-2101"><span class="linenos">2101</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span> +</span><span id="Select-2102"><a href="#Select-2102"><span class="linenos">2102</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2103"><a href="#Select-2103"><span class="linenos">2103</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2104"><a href="#Select-2104"><span class="linenos">2104</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2105"><a href="#Select-2105"><span class="linenos">2105</span></a> +</span><span id="Select-2106"><a href="#Select-2106"><span class="linenos">2106</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2107"><a href="#Select-2107"><span class="linenos">2107</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2108"><a href="#Select-2108"><span class="linenos">2108</span></a><span class="sd"> """</span> +</span><span id="Select-2109"><a href="#Select-2109"><span class="linenos">2109</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Select-2110"><a href="#Select-2110"><span class="linenos">2110</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Select-2111"><a href="#Select-2111"><span class="linenos">2111</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select-2112"><a href="#Select-2112"><span class="linenos">2112</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2113"><a href="#Select-2113"><span class="linenos">2113</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2114"><a href="#Select-2114"><span class="linenos">2114</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"group"</span><span class="p">,</span> +</span><span id="Select-2115"><a href="#Select-2115"><span class="linenos">2115</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2116"><a href="#Select-2116"><span class="linenos">2116</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2117"><a href="#Select-2117"><span class="linenos">2117</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"GROUP BY"</span><span class="p">,</span> +</span><span id="Select-2118"><a href="#Select-2118"><span class="linenos">2118</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span> +</span><span id="Select-2119"><a href="#Select-2119"><span class="linenos">2119</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2120"><a href="#Select-2120"><span class="linenos">2120</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2121"><a href="#Select-2121"><span class="linenos">2121</span></a> <span class="p">)</span> +</span><span id="Select-2122"><a href="#Select-2122"><span class="linenos">2122</span></a> +</span><span id="Select-2123"><a href="#Select-2123"><span class="linenos">2123</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2124"><a href="#Select-2124"><span class="linenos">2124</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2125"><a href="#Select-2125"><span class="linenos">2125</span></a><span class="sd"> Set the ORDER BY expression.</span> </span><span id="Select-2126"><a href="#Select-2126"><span class="linenos">2126</span></a> -</span><span id="Select-2127"><a href="#Select-2127"><span class="linenos">2127</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2128"><a href="#Select-2128"><span class="linenos">2128</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2129"><a href="#Select-2129"><span class="linenos">2129</span></a><span class="sd"> """</span> -</span><span id="Select-2130"><a href="#Select-2130"><span class="linenos">2130</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> -</span><span id="Select-2131"><a href="#Select-2131"><span class="linenos">2131</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="Select-2132"><a href="#Select-2132"><span class="linenos">2132</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2133"><a href="#Select-2133"><span class="linenos">2133</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"limit"</span><span class="p">,</span> -</span><span id="Select-2134"><a href="#Select-2134"><span class="linenos">2134</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span> -</span><span id="Select-2135"><a href="#Select-2135"><span class="linenos">2135</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LIMIT"</span><span class="p">,</span> -</span><span id="Select-2136"><a href="#Select-2136"><span class="linenos">2136</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2137"><a href="#Select-2137"><span class="linenos">2137</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2138"><a href="#Select-2138"><span class="linenos">2138</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2139"><a href="#Select-2139"><span class="linenos">2139</span></a> <span class="p">)</span> +</span><span id="Select-2127"><a href="#Select-2127"><span class="linenos">2127</span></a><span class="sd"> Example:</span> +</span><span id="Select-2128"><a href="#Select-2128"><span class="linenos">2128</span></a><span class="sd"> >>> Select().from_("tbl").select("x").order_by("x DESC").sql()</span> +</span><span id="Select-2129"><a href="#Select-2129"><span class="linenos">2129</span></a><span class="sd"> 'SELECT x FROM tbl ORDER BY x DESC'</span> +</span><span id="Select-2130"><a href="#Select-2130"><span class="linenos">2130</span></a> +</span><span id="Select-2131"><a href="#Select-2131"><span class="linenos">2131</span></a><span class="sd"> Args:</span> +</span><span id="Select-2132"><a href="#Select-2132"><span class="linenos">2132</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2133"><a href="#Select-2133"><span class="linenos">2133</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select-2134"><a href="#Select-2134"><span class="linenos">2134</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span> +</span><span id="Select-2135"><a href="#Select-2135"><span class="linenos">2135</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2136"><a href="#Select-2136"><span class="linenos">2136</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="Select-2137"><a href="#Select-2137"><span class="linenos">2137</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2138"><a href="#Select-2138"><span class="linenos">2138</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2139"><a href="#Select-2139"><span class="linenos">2139</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> </span><span id="Select-2140"><a href="#Select-2140"><span class="linenos">2140</span></a> -</span><span id="Select-2141"><a href="#Select-2141"><span class="linenos">2141</span></a> <span class="k">def</span> <span class="nf">offset</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2142"><a href="#Select-2142"><span class="linenos">2142</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2143"><a href="#Select-2143"><span class="linenos">2143</span></a><span class="sd"> Set the OFFSET expression.</span> -</span><span id="Select-2144"><a href="#Select-2144"><span class="linenos">2144</span></a> -</span><span id="Select-2145"><a href="#Select-2145"><span class="linenos">2145</span></a><span class="sd"> Example:</span> -</span><span id="Select-2146"><a href="#Select-2146"><span class="linenos">2146</span></a><span class="sd"> >>> Select().from_("tbl").select("x").offset(10).sql()</span> -</span><span id="Select-2147"><a href="#Select-2147"><span class="linenos">2147</span></a><span class="sd"> 'SELECT x FROM tbl OFFSET 10'</span> -</span><span id="Select-2148"><a href="#Select-2148"><span class="linenos">2148</span></a> -</span><span id="Select-2149"><a href="#Select-2149"><span class="linenos">2149</span></a><span class="sd"> Args:</span> -</span><span id="Select-2150"><a href="#Select-2150"><span class="linenos">2150</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="Select-2151"><a href="#Select-2151"><span class="linenos">2151</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="Select-2152"><a href="#Select-2152"><span class="linenos">2152</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span> -</span><span id="Select-2153"><a href="#Select-2153"><span class="linenos">2153</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span> -</span><span id="Select-2154"><a href="#Select-2154"><span class="linenos">2154</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select-2155"><a href="#Select-2155"><span class="linenos">2155</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2156"><a href="#Select-2156"><span class="linenos">2156</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-2157"><a href="#Select-2157"><span class="linenos">2157</span></a> -</span><span id="Select-2158"><a href="#Select-2158"><span class="linenos">2158</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2159"><a href="#Select-2159"><span class="linenos">2159</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2160"><a href="#Select-2160"><span class="linenos">2160</span></a><span class="sd"> """</span> -</span><span id="Select-2161"><a href="#Select-2161"><span class="linenos">2161</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> -</span><span id="Select-2162"><a href="#Select-2162"><span class="linenos">2162</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="Select-2163"><a href="#Select-2163"><span class="linenos">2163</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2164"><a href="#Select-2164"><span class="linenos">2164</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"offset"</span><span class="p">,</span> -</span><span id="Select-2165"><a href="#Select-2165"><span class="linenos">2165</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span> -</span><span id="Select-2166"><a href="#Select-2166"><span class="linenos">2166</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"OFFSET"</span><span class="p">,</span> -</span><span id="Select-2167"><a href="#Select-2167"><span class="linenos">2167</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2168"><a href="#Select-2168"><span class="linenos">2168</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2169"><a href="#Select-2169"><span class="linenos">2169</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2170"><a href="#Select-2170"><span class="linenos">2170</span></a> <span class="p">)</span> -</span><span id="Select-2171"><a href="#Select-2171"><span class="linenos">2171</span></a> -</span><span id="Select-2172"><a href="#Select-2172"><span class="linenos">2172</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> -</span><span id="Select-2173"><a href="#Select-2173"><span class="linenos">2173</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2174"><a href="#Select-2174"><span class="linenos">2174</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="Select-2175"><a href="#Select-2175"><span class="linenos">2175</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Select-2176"><a href="#Select-2176"><span class="linenos">2176</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Select-2177"><a href="#Select-2177"><span class="linenos">2177</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Select-2178"><a href="#Select-2178"><span class="linenos">2178</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2179"><a href="#Select-2179"><span class="linenos">2179</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2180"><a href="#Select-2180"><span class="linenos">2180</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2181"><a href="#Select-2181"><span class="linenos">2181</span></a><span class="sd"> Append to or set the SELECT expressions.</span> -</span><span id="Select-2182"><a href="#Select-2182"><span class="linenos">2182</span></a> -</span><span id="Select-2183"><a href="#Select-2183"><span class="linenos">2183</span></a><span class="sd"> Example:</span> -</span><span id="Select-2184"><a href="#Select-2184"><span class="linenos">2184</span></a><span class="sd"> >>> Select().select("x", "y").sql()</span> -</span><span id="Select-2185"><a href="#Select-2185"><span class="linenos">2185</span></a><span class="sd"> 'SELECT x, y'</span> -</span><span id="Select-2186"><a href="#Select-2186"><span class="linenos">2186</span></a> -</span><span id="Select-2187"><a href="#Select-2187"><span class="linenos">2187</span></a><span class="sd"> Args:</span> -</span><span id="Select-2188"><a href="#Select-2188"><span class="linenos">2188</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> -</span><span id="Select-2189"><a href="#Select-2189"><span class="linenos">2189</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2190"><a href="#Select-2190"><span class="linenos">2190</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> -</span><span id="Select-2191"><a href="#Select-2191"><span class="linenos">2191</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Select-2192"><a href="#Select-2192"><span class="linenos">2192</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> -</span><span id="Select-2193"><a href="#Select-2193"><span class="linenos">2193</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2194"><a href="#Select-2194"><span class="linenos">2194</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> -</span><span id="Select-2195"><a href="#Select-2195"><span class="linenos">2195</span></a> -</span><span id="Select-2196"><a href="#Select-2196"><span class="linenos">2196</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2197"><a href="#Select-2197"><span class="linenos">2197</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2198"><a href="#Select-2198"><span class="linenos">2198</span></a><span class="sd"> """</span> -</span><span id="Select-2199"><a href="#Select-2199"><span class="linenos">2199</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select-2200"><a href="#Select-2200"><span class="linenos">2200</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2201"><a href="#Select-2201"><span class="linenos">2201</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2202"><a href="#Select-2202"><span class="linenos">2202</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="Select-2203"><a href="#Select-2203"><span class="linenos">2203</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2204"><a href="#Select-2204"><span class="linenos">2204</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2205"><a href="#Select-2205"><span class="linenos">2205</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2206"><a href="#Select-2206"><span class="linenos">2206</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2207"><a href="#Select-2207"><span class="linenos">2207</span></a> <span class="p">)</span> -</span><span id="Select-2208"><a href="#Select-2208"><span class="linenos">2208</span></a> -</span><span id="Select-2209"><a href="#Select-2209"><span class="linenos">2209</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2210"><a href="#Select-2210"><span class="linenos">2210</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2211"><a href="#Select-2211"><span class="linenos">2211</span></a><span class="sd"> Append to or set the LATERAL expressions.</span> -</span><span id="Select-2212"><a href="#Select-2212"><span class="linenos">2212</span></a> -</span><span id="Select-2213"><a href="#Select-2213"><span class="linenos">2213</span></a><span class="sd"> Example:</span> -</span><span id="Select-2214"><a href="#Select-2214"><span class="linenos">2214</span></a><span class="sd"> >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()</span> -</span><span id="Select-2215"><a href="#Select-2215"><span class="linenos">2215</span></a><span class="sd"> 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span> -</span><span id="Select-2216"><a href="#Select-2216"><span class="linenos">2216</span></a> -</span><span id="Select-2217"><a href="#Select-2217"><span class="linenos">2217</span></a><span class="sd"> Args:</span> -</span><span id="Select-2218"><a href="#Select-2218"><span class="linenos">2218</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-2219"><a href="#Select-2219"><span class="linenos">2219</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2220"><a href="#Select-2220"><span class="linenos">2220</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-2221"><a href="#Select-2221"><span class="linenos">2221</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Select-2222"><a href="#Select-2222"><span class="linenos">2222</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select-2223"><a href="#Select-2223"><span class="linenos">2223</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2224"><a href="#Select-2224"><span class="linenos">2224</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2141"><a href="#Select-2141"><span class="linenos">2141</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2142"><a href="#Select-2142"><span class="linenos">2142</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2143"><a href="#Select-2143"><span class="linenos">2143</span></a><span class="sd"> """</span> +</span><span id="Select-2144"><a href="#Select-2144"><span class="linenos">2144</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select-2145"><a href="#Select-2145"><span class="linenos">2145</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2146"><a href="#Select-2146"><span class="linenos">2146</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2147"><a href="#Select-2147"><span class="linenos">2147</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"order"</span><span class="p">,</span> +</span><span id="Select-2148"><a href="#Select-2148"><span class="linenos">2148</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2149"><a href="#Select-2149"><span class="linenos">2149</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2150"><a href="#Select-2150"><span class="linenos">2150</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ORDER BY"</span><span class="p">,</span> +</span><span id="Select-2151"><a href="#Select-2151"><span class="linenos">2151</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span> +</span><span id="Select-2152"><a href="#Select-2152"><span class="linenos">2152</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2153"><a href="#Select-2153"><span class="linenos">2153</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2154"><a href="#Select-2154"><span class="linenos">2154</span></a> <span class="p">)</span> +</span><span id="Select-2155"><a href="#Select-2155"><span class="linenos">2155</span></a> +</span><span id="Select-2156"><a href="#Select-2156"><span class="linenos">2156</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2157"><a href="#Select-2157"><span class="linenos">2157</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2158"><a href="#Select-2158"><span class="linenos">2158</span></a><span class="sd"> Set the SORT BY expression.</span> +</span><span id="Select-2159"><a href="#Select-2159"><span class="linenos">2159</span></a> +</span><span id="Select-2160"><a href="#Select-2160"><span class="linenos">2160</span></a><span class="sd"> Example:</span> +</span><span id="Select-2161"><a href="#Select-2161"><span class="linenos">2161</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sort_by("x DESC").sql()</span> +</span><span id="Select-2162"><a href="#Select-2162"><span class="linenos">2162</span></a><span class="sd"> 'SELECT x FROM tbl SORT BY x DESC'</span> +</span><span id="Select-2163"><a href="#Select-2163"><span class="linenos">2163</span></a> +</span><span id="Select-2164"><a href="#Select-2164"><span class="linenos">2164</span></a><span class="sd"> Args:</span> +</span><span id="Select-2165"><a href="#Select-2165"><span class="linenos">2165</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2166"><a href="#Select-2166"><span class="linenos">2166</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select-2167"><a href="#Select-2167"><span class="linenos">2167</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span> +</span><span id="Select-2168"><a href="#Select-2168"><span class="linenos">2168</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2169"><a href="#Select-2169"><span class="linenos">2169</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="Select-2170"><a href="#Select-2170"><span class="linenos">2170</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2171"><a href="#Select-2171"><span class="linenos">2171</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2172"><a href="#Select-2172"><span class="linenos">2172</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2173"><a href="#Select-2173"><span class="linenos">2173</span></a> +</span><span id="Select-2174"><a href="#Select-2174"><span class="linenos">2174</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2175"><a href="#Select-2175"><span class="linenos">2175</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2176"><a href="#Select-2176"><span class="linenos">2176</span></a><span class="sd"> """</span> +</span><span id="Select-2177"><a href="#Select-2177"><span class="linenos">2177</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select-2178"><a href="#Select-2178"><span class="linenos">2178</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2179"><a href="#Select-2179"><span class="linenos">2179</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2180"><a href="#Select-2180"><span class="linenos">2180</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"sort"</span><span class="p">,</span> +</span><span id="Select-2181"><a href="#Select-2181"><span class="linenos">2181</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2182"><a href="#Select-2182"><span class="linenos">2182</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2183"><a href="#Select-2183"><span class="linenos">2183</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"SORT BY"</span><span class="p">,</span> +</span><span id="Select-2184"><a href="#Select-2184"><span class="linenos">2184</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span> +</span><span id="Select-2185"><a href="#Select-2185"><span class="linenos">2185</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2186"><a href="#Select-2186"><span class="linenos">2186</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2187"><a href="#Select-2187"><span class="linenos">2187</span></a> <span class="p">)</span> +</span><span id="Select-2188"><a href="#Select-2188"><span class="linenos">2188</span></a> +</span><span id="Select-2189"><a href="#Select-2189"><span class="linenos">2189</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2190"><a href="#Select-2190"><span class="linenos">2190</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2191"><a href="#Select-2191"><span class="linenos">2191</span></a><span class="sd"> Set the CLUSTER BY expression.</span> +</span><span id="Select-2192"><a href="#Select-2192"><span class="linenos">2192</span></a> +</span><span id="Select-2193"><a href="#Select-2193"><span class="linenos">2193</span></a><span class="sd"> Example:</span> +</span><span id="Select-2194"><a href="#Select-2194"><span class="linenos">2194</span></a><span class="sd"> >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql()</span> +</span><span id="Select-2195"><a href="#Select-2195"><span class="linenos">2195</span></a><span class="sd"> 'SELECT x FROM tbl CLUSTER BY x DESC'</span> +</span><span id="Select-2196"><a href="#Select-2196"><span class="linenos">2196</span></a> +</span><span id="Select-2197"><a href="#Select-2197"><span class="linenos">2197</span></a><span class="sd"> Args:</span> +</span><span id="Select-2198"><a href="#Select-2198"><span class="linenos">2198</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2199"><a href="#Select-2199"><span class="linenos">2199</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select-2200"><a href="#Select-2200"><span class="linenos">2200</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span> +</span><span id="Select-2201"><a href="#Select-2201"><span class="linenos">2201</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2202"><a href="#Select-2202"><span class="linenos">2202</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="Select-2203"><a href="#Select-2203"><span class="linenos">2203</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2204"><a href="#Select-2204"><span class="linenos">2204</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2205"><a href="#Select-2205"><span class="linenos">2205</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2206"><a href="#Select-2206"><span class="linenos">2206</span></a> +</span><span id="Select-2207"><a href="#Select-2207"><span class="linenos">2207</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2208"><a href="#Select-2208"><span class="linenos">2208</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2209"><a href="#Select-2209"><span class="linenos">2209</span></a><span class="sd"> """</span> +</span><span id="Select-2210"><a href="#Select-2210"><span class="linenos">2210</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select-2211"><a href="#Select-2211"><span class="linenos">2211</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2212"><a href="#Select-2212"><span class="linenos">2212</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2213"><a href="#Select-2213"><span class="linenos">2213</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"cluster"</span><span class="p">,</span> +</span><span id="Select-2214"><a href="#Select-2214"><span class="linenos">2214</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2215"><a href="#Select-2215"><span class="linenos">2215</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2216"><a href="#Select-2216"><span class="linenos">2216</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> +</span><span id="Select-2217"><a href="#Select-2217"><span class="linenos">2217</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span> +</span><span id="Select-2218"><a href="#Select-2218"><span class="linenos">2218</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2219"><a href="#Select-2219"><span class="linenos">2219</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2220"><a href="#Select-2220"><span class="linenos">2220</span></a> <span class="p">)</span> +</span><span id="Select-2221"><a href="#Select-2221"><span class="linenos">2221</span></a> +</span><span id="Select-2222"><a href="#Select-2222"><span class="linenos">2222</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2223"><a href="#Select-2223"><span class="linenos">2223</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2224"><a href="#Select-2224"><span class="linenos">2224</span></a><span class="sd"> Set the LIMIT expression.</span> </span><span id="Select-2225"><a href="#Select-2225"><span class="linenos">2225</span></a> -</span><span id="Select-2226"><a href="#Select-2226"><span class="linenos">2226</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2227"><a href="#Select-2227"><span class="linenos">2227</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2228"><a href="#Select-2228"><span class="linenos">2228</span></a><span class="sd"> """</span> -</span><span id="Select-2229"><a href="#Select-2229"><span class="linenos">2229</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select-2230"><a href="#Select-2230"><span class="linenos">2230</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2231"><a href="#Select-2231"><span class="linenos">2231</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2232"><a href="#Select-2232"><span class="linenos">2232</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"laterals"</span><span class="p">,</span> -</span><span id="Select-2233"><a href="#Select-2233"><span class="linenos">2233</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2234"><a href="#Select-2234"><span class="linenos">2234</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span> -</span><span id="Select-2235"><a href="#Select-2235"><span class="linenos">2235</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LATERAL VIEW"</span><span class="p">,</span> -</span><span id="Select-2236"><a href="#Select-2236"><span class="linenos">2236</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2237"><a href="#Select-2237"><span class="linenos">2237</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2238"><a href="#Select-2238"><span class="linenos">2238</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2239"><a href="#Select-2239"><span class="linenos">2239</span></a> <span class="p">)</span> -</span><span id="Select-2240"><a href="#Select-2240"><span class="linenos">2240</span></a> -</span><span id="Select-2241"><a href="#Select-2241"><span class="linenos">2241</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span> -</span><span id="Select-2242"><a href="#Select-2242"><span class="linenos">2242</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2243"><a href="#Select-2243"><span class="linenos">2243</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Select-2244"><a href="#Select-2244"><span class="linenos">2244</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select-2245"><a href="#Select-2245"><span class="linenos">2245</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select-2246"><a href="#Select-2246"><span class="linenos">2246</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Select-2247"><a href="#Select-2247"><span class="linenos">2247</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select-2248"><a href="#Select-2248"><span class="linenos">2248</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select-2249"><a href="#Select-2249"><span class="linenos">2249</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select-2250"><a href="#Select-2250"><span class="linenos">2250</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Select-2251"><a href="#Select-2251"><span class="linenos">2251</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2252"><a href="#Select-2252"><span class="linenos">2252</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2253"><a href="#Select-2253"><span class="linenos">2253</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2254"><a href="#Select-2254"><span class="linenos">2254</span></a><span class="sd"> Append to or set the JOIN expressions.</span> -</span><span id="Select-2255"><a href="#Select-2255"><span class="linenos">2255</span></a> -</span><span id="Select-2256"><a href="#Select-2256"><span class="linenos">2256</span></a><span class="sd"> Example:</span> -</span><span id="Select-2257"><a href="#Select-2257"><span class="linenos">2257</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()</span> -</span><span id="Select-2258"><a href="#Select-2258"><span class="linenos">2258</span></a><span class="sd"> 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span> -</span><span id="Select-2259"><a href="#Select-2259"><span class="linenos">2259</span></a> -</span><span id="Select-2260"><a href="#Select-2260"><span class="linenos">2260</span></a><span class="sd"> >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()</span> -</span><span id="Select-2261"><a href="#Select-2261"><span class="linenos">2261</span></a><span class="sd"> 'SELECT 1 FROM a JOIN b USING (x, y, z)'</span> -</span><span id="Select-2262"><a href="#Select-2262"><span class="linenos">2262</span></a> -</span><span id="Select-2263"><a href="#Select-2263"><span class="linenos">2263</span></a><span class="sd"> Use `join_type` to change the type of join:</span> -</span><span id="Select-2264"><a href="#Select-2264"><span class="linenos">2264</span></a> -</span><span id="Select-2265"><a href="#Select-2265"><span class="linenos">2265</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()</span> -</span><span id="Select-2266"><a href="#Select-2266"><span class="linenos">2266</span></a><span class="sd"> 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span> -</span><span id="Select-2267"><a href="#Select-2267"><span class="linenos">2267</span></a> -</span><span id="Select-2268"><a href="#Select-2268"><span class="linenos">2268</span></a><span class="sd"> Args:</span> -</span><span id="Select-2269"><a href="#Select-2269"><span class="linenos">2269</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span> -</span><span id="Select-2270"><a href="#Select-2270"><span class="linenos">2270</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2271"><a href="#Select-2271"><span class="linenos">2271</span></a><span class="sd"> on (str | Expression): optionally specify the join "on" criteria as a SQL string.</span> -</span><span id="Select-2272"><a href="#Select-2272"><span class="linenos">2272</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2273"><a href="#Select-2273"><span class="linenos">2273</span></a><span class="sd"> using (str | Expression): optionally specify the join "using" criteria as a SQL string.</span> -</span><span id="Select-2274"><a href="#Select-2274"><span class="linenos">2274</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2275"><a href="#Select-2275"><span class="linenos">2275</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select-2276"><a href="#Select-2276"><span class="linenos">2276</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Select-2277"><a href="#Select-2277"><span class="linenos">2277</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span> -</span><span id="Select-2278"><a href="#Select-2278"><span class="linenos">2278</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select-2279"><a href="#Select-2279"><span class="linenos">2279</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2280"><a href="#Select-2280"><span class="linenos">2280</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-2281"><a href="#Select-2281"><span class="linenos">2281</span></a> -</span><span id="Select-2282"><a href="#Select-2282"><span class="linenos">2282</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2283"><a href="#Select-2283"><span class="linenos">2283</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2284"><a href="#Select-2284"><span class="linenos">2284</span></a><span class="sd"> """</span> -</span><span id="Select-2285"><a href="#Select-2285"><span class="linenos">2285</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"dialect"</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span> -</span><span id="Select-2286"><a href="#Select-2286"><span class="linenos">2286</span></a> -</span><span id="Select-2287"><a href="#Select-2287"><span class="linenos">2287</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Select-2288"><a href="#Select-2288"><span class="linenos">2288</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"JOIN"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> -</span><span id="Select-2289"><a href="#Select-2289"><span class="linenos">2289</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> -</span><span id="Select-2290"><a href="#Select-2290"><span class="linenos">2290</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> -</span><span id="Select-2291"><a href="#Select-2291"><span class="linenos">2291</span></a> -</span><span id="Select-2292"><a href="#Select-2292"><span class="linenos">2292</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Select-2293"><a href="#Select-2293"><span class="linenos">2293</span></a> -</span><span id="Select-2294"><a href="#Select-2294"><span class="linenos">2294</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span> -</span><span id="Select-2295"><a href="#Select-2295"><span class="linenos">2295</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span> -</span><span id="Select-2296"><a href="#Select-2296"><span class="linenos">2296</span></a> -</span><span id="Select-2297"><a href="#Select-2297"><span class="linenos">2297</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span> -</span><span id="Select-2298"><a href="#Select-2298"><span class="linenos">2298</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="Select-2299"><a href="#Select-2299"><span class="linenos">2299</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="Select-2300"><a href="#Select-2300"><span class="linenos">2300</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="Select-2301"><a href="#Select-2301"><span class="linenos">2301</span></a> -</span><span id="Select-2302"><a href="#Select-2302"><span class="linenos">2302</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">"JOIN_TYPE"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Select-2303"><a href="#Select-2303"><span class="linenos">2303</span></a> -</span><span id="Select-2304"><a href="#Select-2304"><span class="linenos">2304</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> -</span><span id="Select-2305"><a href="#Select-2305"><span class="linenos">2305</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="Select-2306"><a href="#Select-2306"><span class="linenos">2306</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> -</span><span id="Select-2307"><a href="#Select-2307"><span class="linenos">2307</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"side"</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Select-2308"><a href="#Select-2308"><span class="linenos">2308</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Select-2309"><a href="#Select-2309"><span class="linenos">2309</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Select-2310"><a href="#Select-2310"><span class="linenos">2310</span></a> -</span><span id="Select-2311"><a href="#Select-2311"><span class="linenos">2311</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span> -</span><span id="Select-2312"><a href="#Select-2312"><span class="linenos">2312</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Select-2313"><a href="#Select-2313"><span class="linenos">2313</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span> -</span><span id="Select-2314"><a href="#Select-2314"><span class="linenos">2314</span></a> -</span><span id="Select-2315"><a href="#Select-2315"><span class="linenos">2315</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> -</span><span id="Select-2316"><a href="#Select-2316"><span class="linenos">2316</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select-2317"><a href="#Select-2317"><span class="linenos">2317</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span> -</span><span id="Select-2318"><a href="#Select-2318"><span class="linenos">2318</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span> -</span><span id="Select-2319"><a href="#Select-2319"><span class="linenos">2319</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> -</span><span id="Select-2320"><a href="#Select-2320"><span class="linenos">2320</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2321"><a href="#Select-2321"><span class="linenos">2321</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2322"><a href="#Select-2322"><span class="linenos">2322</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2323"><a href="#Select-2323"><span class="linenos">2323</span></a> <span class="p">)</span> +</span><span id="Select-2226"><a href="#Select-2226"><span class="linenos">2226</span></a><span class="sd"> Example:</span> +</span><span id="Select-2227"><a href="#Select-2227"><span class="linenos">2227</span></a><span class="sd"> >>> Select().from_("tbl").select("x").limit(10).sql()</span> +</span><span id="Select-2228"><a href="#Select-2228"><span class="linenos">2228</span></a><span class="sd"> 'SELECT x FROM tbl LIMIT 10'</span> +</span><span id="Select-2229"><a href="#Select-2229"><span class="linenos">2229</span></a> +</span><span id="Select-2230"><a href="#Select-2230"><span class="linenos">2230</span></a><span class="sd"> Args:</span> +</span><span id="Select-2231"><a href="#Select-2231"><span class="linenos">2231</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="Select-2232"><a href="#Select-2232"><span class="linenos">2232</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="Select-2233"><a href="#Select-2233"><span class="linenos">2233</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> +</span><span id="Select-2234"><a href="#Select-2234"><span class="linenos">2234</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> +</span><span id="Select-2235"><a href="#Select-2235"><span class="linenos">2235</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2236"><a href="#Select-2236"><span class="linenos">2236</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2237"><a href="#Select-2237"><span class="linenos">2237</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2238"><a href="#Select-2238"><span class="linenos">2238</span></a> +</span><span id="Select-2239"><a href="#Select-2239"><span class="linenos">2239</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2240"><a href="#Select-2240"><span class="linenos">2240</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2241"><a href="#Select-2241"><span class="linenos">2241</span></a><span class="sd"> """</span> +</span><span id="Select-2242"><a href="#Select-2242"><span class="linenos">2242</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Select-2243"><a href="#Select-2243"><span class="linenos">2243</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Select-2244"><a href="#Select-2244"><span class="linenos">2244</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2245"><a href="#Select-2245"><span class="linenos">2245</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"limit"</span><span class="p">,</span> +</span><span id="Select-2246"><a href="#Select-2246"><span class="linenos">2246</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span> +</span><span id="Select-2247"><a href="#Select-2247"><span class="linenos">2247</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LIMIT"</span><span class="p">,</span> +</span><span id="Select-2248"><a href="#Select-2248"><span class="linenos">2248</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2249"><a href="#Select-2249"><span class="linenos">2249</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2250"><a href="#Select-2250"><span class="linenos">2250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2251"><a href="#Select-2251"><span class="linenos">2251</span></a> <span class="p">)</span> +</span><span id="Select-2252"><a href="#Select-2252"><span class="linenos">2252</span></a> +</span><span id="Select-2253"><a href="#Select-2253"><span class="linenos">2253</span></a> <span class="k">def</span> <span class="nf">offset</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2254"><a href="#Select-2254"><span class="linenos">2254</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2255"><a href="#Select-2255"><span class="linenos">2255</span></a><span class="sd"> Set the OFFSET expression.</span> +</span><span id="Select-2256"><a href="#Select-2256"><span class="linenos">2256</span></a> +</span><span id="Select-2257"><a href="#Select-2257"><span class="linenos">2257</span></a><span class="sd"> Example:</span> +</span><span id="Select-2258"><a href="#Select-2258"><span class="linenos">2258</span></a><span class="sd"> >>> Select().from_("tbl").select("x").offset(10).sql()</span> +</span><span id="Select-2259"><a href="#Select-2259"><span class="linenos">2259</span></a><span class="sd"> 'SELECT x FROM tbl OFFSET 10'</span> +</span><span id="Select-2260"><a href="#Select-2260"><span class="linenos">2260</span></a> +</span><span id="Select-2261"><a href="#Select-2261"><span class="linenos">2261</span></a><span class="sd"> Args:</span> +</span><span id="Select-2262"><a href="#Select-2262"><span class="linenos">2262</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="Select-2263"><a href="#Select-2263"><span class="linenos">2263</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="Select-2264"><a href="#Select-2264"><span class="linenos">2264</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span> +</span><span id="Select-2265"><a href="#Select-2265"><span class="linenos">2265</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span> +</span><span id="Select-2266"><a href="#Select-2266"><span class="linenos">2266</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select-2267"><a href="#Select-2267"><span class="linenos">2267</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2268"><a href="#Select-2268"><span class="linenos">2268</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2269"><a href="#Select-2269"><span class="linenos">2269</span></a> +</span><span id="Select-2270"><a href="#Select-2270"><span class="linenos">2270</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2271"><a href="#Select-2271"><span class="linenos">2271</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2272"><a href="#Select-2272"><span class="linenos">2272</span></a><span class="sd"> """</span> +</span><span id="Select-2273"><a href="#Select-2273"><span class="linenos">2273</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Select-2274"><a href="#Select-2274"><span class="linenos">2274</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Select-2275"><a href="#Select-2275"><span class="linenos">2275</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2276"><a href="#Select-2276"><span class="linenos">2276</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"offset"</span><span class="p">,</span> +</span><span id="Select-2277"><a href="#Select-2277"><span class="linenos">2277</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span> +</span><span id="Select-2278"><a href="#Select-2278"><span class="linenos">2278</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"OFFSET"</span><span class="p">,</span> +</span><span id="Select-2279"><a href="#Select-2279"><span class="linenos">2279</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2280"><a href="#Select-2280"><span class="linenos">2280</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2281"><a href="#Select-2281"><span class="linenos">2281</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2282"><a href="#Select-2282"><span class="linenos">2282</span></a> <span class="p">)</span> +</span><span id="Select-2283"><a href="#Select-2283"><span class="linenos">2283</span></a> +</span><span id="Select-2284"><a href="#Select-2284"><span class="linenos">2284</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> +</span><span id="Select-2285"><a href="#Select-2285"><span class="linenos">2285</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2286"><a href="#Select-2286"><span class="linenos">2286</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Select-2287"><a href="#Select-2287"><span class="linenos">2287</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Select-2288"><a href="#Select-2288"><span class="linenos">2288</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Select-2289"><a href="#Select-2289"><span class="linenos">2289</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Select-2290"><a href="#Select-2290"><span class="linenos">2290</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2291"><a href="#Select-2291"><span class="linenos">2291</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2292"><a href="#Select-2292"><span class="linenos">2292</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2293"><a href="#Select-2293"><span class="linenos">2293</span></a><span class="sd"> Append to or set the SELECT expressions.</span> +</span><span id="Select-2294"><a href="#Select-2294"><span class="linenos">2294</span></a> +</span><span id="Select-2295"><a href="#Select-2295"><span class="linenos">2295</span></a><span class="sd"> Example:</span> +</span><span id="Select-2296"><a href="#Select-2296"><span class="linenos">2296</span></a><span class="sd"> >>> Select().select("x", "y").sql()</span> +</span><span id="Select-2297"><a href="#Select-2297"><span class="linenos">2297</span></a><span class="sd"> 'SELECT x, y'</span> +</span><span id="Select-2298"><a href="#Select-2298"><span class="linenos">2298</span></a> +</span><span id="Select-2299"><a href="#Select-2299"><span class="linenos">2299</span></a><span class="sd"> Args:</span> +</span><span id="Select-2300"><a href="#Select-2300"><span class="linenos">2300</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="Select-2301"><a href="#Select-2301"><span class="linenos">2301</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2302"><a href="#Select-2302"><span class="linenos">2302</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> +</span><span id="Select-2303"><a href="#Select-2303"><span class="linenos">2303</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Select-2304"><a href="#Select-2304"><span class="linenos">2304</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Select-2305"><a href="#Select-2305"><span class="linenos">2305</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2306"><a href="#Select-2306"><span class="linenos">2306</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Select-2307"><a href="#Select-2307"><span class="linenos">2307</span></a> +</span><span id="Select-2308"><a href="#Select-2308"><span class="linenos">2308</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2309"><a href="#Select-2309"><span class="linenos">2309</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2310"><a href="#Select-2310"><span class="linenos">2310</span></a><span class="sd"> """</span> +</span><span id="Select-2311"><a href="#Select-2311"><span class="linenos">2311</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select-2312"><a href="#Select-2312"><span class="linenos">2312</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2313"><a href="#Select-2313"><span class="linenos">2313</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2314"><a href="#Select-2314"><span class="linenos">2314</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="Select-2315"><a href="#Select-2315"><span class="linenos">2315</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2316"><a href="#Select-2316"><span class="linenos">2316</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2317"><a href="#Select-2317"><span class="linenos">2317</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2318"><a href="#Select-2318"><span class="linenos">2318</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2319"><a href="#Select-2319"><span class="linenos">2319</span></a> <span class="p">)</span> +</span><span id="Select-2320"><a href="#Select-2320"><span class="linenos">2320</span></a> +</span><span id="Select-2321"><a href="#Select-2321"><span class="linenos">2321</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2322"><a href="#Select-2322"><span class="linenos">2322</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2323"><a href="#Select-2323"><span class="linenos">2323</span></a><span class="sd"> Append to or set the LATERAL expressions.</span> </span><span id="Select-2324"><a href="#Select-2324"><span class="linenos">2324</span></a> -</span><span id="Select-2325"><a href="#Select-2325"><span class="linenos">2325</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span> -</span><span id="Select-2326"><a href="#Select-2326"><span class="linenos">2326</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="Select-2327"><a href="#Select-2327"><span class="linenos">2327</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select-2328"><a href="#Select-2328"><span class="linenos">2328</span></a> <span class="n">join</span><span class="p">,</span> -</span><span id="Select-2329"><a href="#Select-2329"><span class="linenos">2329</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2330"><a href="#Select-2330"><span class="linenos">2330</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"joins"</span><span class="p">,</span> -</span><span id="Select-2331"><a href="#Select-2331"><span class="linenos">2331</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2332"><a href="#Select-2332"><span class="linenos">2332</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2333"><a href="#Select-2333"><span class="linenos">2333</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2334"><a href="#Select-2334"><span class="linenos">2334</span></a> <span class="p">)</span> -</span><span id="Select-2335"><a href="#Select-2335"><span class="linenos">2335</span></a> -</span><span id="Select-2336"><a href="#Select-2336"><span class="linenos">2336</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2337"><a href="#Select-2337"><span class="linenos">2337</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2338"><a href="#Select-2338"><span class="linenos">2338</span></a><span class="sd"> Append to or set the WHERE expressions.</span> -</span><span id="Select-2339"><a href="#Select-2339"><span class="linenos">2339</span></a> -</span><span id="Select-2340"><a href="#Select-2340"><span class="linenos">2340</span></a><span class="sd"> Example:</span> -</span><span id="Select-2341"><a href="#Select-2341"><span class="linenos">2341</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()</span> -</span><span id="Select-2342"><a href="#Select-2342"><span class="linenos">2342</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span> -</span><span id="Select-2343"><a href="#Select-2343"><span class="linenos">2343</span></a> -</span><span id="Select-2344"><a href="#Select-2344"><span class="linenos">2344</span></a><span class="sd"> Args:</span> -</span><span id="Select-2345"><a href="#Select-2345"><span class="linenos">2345</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-2346"><a href="#Select-2346"><span class="linenos">2346</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2347"><a href="#Select-2347"><span class="linenos">2347</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="Select-2348"><a href="#Select-2348"><span class="linenos">2348</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="Select-2349"><a href="#Select-2349"><span class="linenos">2349</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Select-2350"><a href="#Select-2350"><span class="linenos">2350</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select-2351"><a href="#Select-2351"><span class="linenos">2351</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2352"><a href="#Select-2352"><span class="linenos">2352</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-2353"><a href="#Select-2353"><span class="linenos">2353</span></a> -</span><span id="Select-2354"><a href="#Select-2354"><span class="linenos">2354</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2355"><a href="#Select-2355"><span class="linenos">2355</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2356"><a href="#Select-2356"><span class="linenos">2356</span></a><span class="sd"> """</span> -</span><span id="Select-2357"><a href="#Select-2357"><span class="linenos">2357</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Select-2358"><a href="#Select-2358"><span class="linenos">2358</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2359"><a href="#Select-2359"><span class="linenos">2359</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2360"><a href="#Select-2360"><span class="linenos">2360</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> -</span><span id="Select-2361"><a href="#Select-2361"><span class="linenos">2361</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2362"><a href="#Select-2362"><span class="linenos">2362</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> -</span><span id="Select-2363"><a href="#Select-2363"><span class="linenos">2363</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2364"><a href="#Select-2364"><span class="linenos">2364</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2365"><a href="#Select-2365"><span class="linenos">2365</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2366"><a href="#Select-2366"><span class="linenos">2366</span></a> <span class="p">)</span> +</span><span id="Select-2325"><a href="#Select-2325"><span class="linenos">2325</span></a><span class="sd"> Example:</span> +</span><span id="Select-2326"><a href="#Select-2326"><span class="linenos">2326</span></a><span class="sd"> >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()</span> +</span><span id="Select-2327"><a href="#Select-2327"><span class="linenos">2327</span></a><span class="sd"> 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span> +</span><span id="Select-2328"><a href="#Select-2328"><span class="linenos">2328</span></a> +</span><span id="Select-2329"><a href="#Select-2329"><span class="linenos">2329</span></a><span class="sd"> Args:</span> +</span><span id="Select-2330"><a href="#Select-2330"><span class="linenos">2330</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2331"><a href="#Select-2331"><span class="linenos">2331</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2332"><a href="#Select-2332"><span class="linenos">2332</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2333"><a href="#Select-2333"><span class="linenos">2333</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Select-2334"><a href="#Select-2334"><span class="linenos">2334</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select-2335"><a href="#Select-2335"><span class="linenos">2335</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2336"><a href="#Select-2336"><span class="linenos">2336</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2337"><a href="#Select-2337"><span class="linenos">2337</span></a> +</span><span id="Select-2338"><a href="#Select-2338"><span class="linenos">2338</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2339"><a href="#Select-2339"><span class="linenos">2339</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2340"><a href="#Select-2340"><span class="linenos">2340</span></a><span class="sd"> """</span> +</span><span id="Select-2341"><a href="#Select-2341"><span class="linenos">2341</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select-2342"><a href="#Select-2342"><span class="linenos">2342</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2343"><a href="#Select-2343"><span class="linenos">2343</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2344"><a href="#Select-2344"><span class="linenos">2344</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"laterals"</span><span class="p">,</span> +</span><span id="Select-2345"><a href="#Select-2345"><span class="linenos">2345</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2346"><a href="#Select-2346"><span class="linenos">2346</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span> +</span><span id="Select-2347"><a href="#Select-2347"><span class="linenos">2347</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LATERAL VIEW"</span><span class="p">,</span> +</span><span id="Select-2348"><a href="#Select-2348"><span class="linenos">2348</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2349"><a href="#Select-2349"><span class="linenos">2349</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2350"><a href="#Select-2350"><span class="linenos">2350</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2351"><a href="#Select-2351"><span class="linenos">2351</span></a> <span class="p">)</span> +</span><span id="Select-2352"><a href="#Select-2352"><span class="linenos">2352</span></a> +</span><span id="Select-2353"><a href="#Select-2353"><span class="linenos">2353</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span> +</span><span id="Select-2354"><a href="#Select-2354"><span class="linenos">2354</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2355"><a href="#Select-2355"><span class="linenos">2355</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Select-2356"><a href="#Select-2356"><span class="linenos">2356</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select-2357"><a href="#Select-2357"><span class="linenos">2357</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select-2358"><a href="#Select-2358"><span class="linenos">2358</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Select-2359"><a href="#Select-2359"><span class="linenos">2359</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select-2360"><a href="#Select-2360"><span class="linenos">2360</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select-2361"><a href="#Select-2361"><span class="linenos">2361</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select-2362"><a href="#Select-2362"><span class="linenos">2362</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Select-2363"><a href="#Select-2363"><span class="linenos">2363</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2364"><a href="#Select-2364"><span class="linenos">2364</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2365"><a href="#Select-2365"><span class="linenos">2365</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2366"><a href="#Select-2366"><span class="linenos">2366</span></a><span class="sd"> Append to or set the JOIN expressions.</span> </span><span id="Select-2367"><a href="#Select-2367"><span class="linenos">2367</span></a> -</span><span id="Select-2368"><a href="#Select-2368"><span class="linenos">2368</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2369"><a href="#Select-2369"><span class="linenos">2369</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2370"><a href="#Select-2370"><span class="linenos">2370</span></a><span class="sd"> Append to or set the HAVING expressions.</span> +</span><span id="Select-2368"><a href="#Select-2368"><span class="linenos">2368</span></a><span class="sd"> Example:</span> +</span><span id="Select-2369"><a href="#Select-2369"><span class="linenos">2369</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()</span> +</span><span id="Select-2370"><a href="#Select-2370"><span class="linenos">2370</span></a><span class="sd"> 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span> </span><span id="Select-2371"><a href="#Select-2371"><span class="linenos">2371</span></a> -</span><span id="Select-2372"><a href="#Select-2372"><span class="linenos">2372</span></a><span class="sd"> Example:</span> -</span><span id="Select-2373"><a href="#Select-2373"><span class="linenos">2373</span></a><span class="sd"> >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()</span> -</span><span id="Select-2374"><a href="#Select-2374"><span class="linenos">2374</span></a><span class="sd"> 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span> -</span><span id="Select-2375"><a href="#Select-2375"><span class="linenos">2375</span></a> -</span><span id="Select-2376"><a href="#Select-2376"><span class="linenos">2376</span></a><span class="sd"> Args:</span> -</span><span id="Select-2377"><a href="#Select-2377"><span class="linenos">2377</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select-2378"><a href="#Select-2378"><span class="linenos">2378</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2379"><a href="#Select-2379"><span class="linenos">2379</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="Select-2380"><a href="#Select-2380"><span class="linenos">2380</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="Select-2381"><a href="#Select-2381"><span class="linenos">2381</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Select-2382"><a href="#Select-2382"><span class="linenos">2382</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select-2383"><a href="#Select-2383"><span class="linenos">2383</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2384"><a href="#Select-2384"><span class="linenos">2384</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select-2385"><a href="#Select-2385"><span class="linenos">2385</span></a> -</span><span id="Select-2386"><a href="#Select-2386"><span class="linenos">2386</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2387"><a href="#Select-2387"><span class="linenos">2387</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2388"><a href="#Select-2388"><span class="linenos">2388</span></a><span class="sd"> """</span> -</span><span id="Select-2389"><a href="#Select-2389"><span class="linenos">2389</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Select-2390"><a href="#Select-2390"><span class="linenos">2390</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2391"><a href="#Select-2391"><span class="linenos">2391</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2392"><a href="#Select-2392"><span class="linenos">2392</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"having"</span><span class="p">,</span> -</span><span id="Select-2393"><a href="#Select-2393"><span class="linenos">2393</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2394"><a href="#Select-2394"><span class="linenos">2394</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span> -</span><span id="Select-2395"><a href="#Select-2395"><span class="linenos">2395</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2396"><a href="#Select-2396"><span class="linenos">2396</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2397"><a href="#Select-2397"><span class="linenos">2397</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2398"><a href="#Select-2398"><span class="linenos">2398</span></a> <span class="p">)</span> -</span><span id="Select-2399"><a href="#Select-2399"><span class="linenos">2399</span></a> -</span><span id="Select-2400"><a href="#Select-2400"><span class="linenos">2400</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2401"><a href="#Select-2401"><span class="linenos">2401</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select-2402"><a href="#Select-2402"><span class="linenos">2402</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2403"><a href="#Select-2403"><span class="linenos">2403</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2404"><a href="#Select-2404"><span class="linenos">2404</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"windows"</span><span class="p">,</span> -</span><span id="Select-2405"><a href="#Select-2405"><span class="linenos">2405</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2406"><a href="#Select-2406"><span class="linenos">2406</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span> -</span><span id="Select-2407"><a href="#Select-2407"><span class="linenos">2407</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2408"><a href="#Select-2408"><span class="linenos">2408</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2409"><a href="#Select-2409"><span class="linenos">2409</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</span></a> <span class="p">)</span> -</span><span id="Select-2411"><a href="#Select-2411"><span class="linenos">2411</span></a> -</span><span id="Select-2412"><a href="#Select-2412"><span class="linenos">2412</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2413"><a href="#Select-2413"><span class="linenos">2413</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Select-2414"><a href="#Select-2414"><span class="linenos">2414</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select-2415"><a href="#Select-2415"><span class="linenos">2415</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select-2416"><a href="#Select-2416"><span class="linenos">2416</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"qualify"</span><span class="p">,</span> -</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select-2418"><a href="#Select-2418"><span class="linenos">2418</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span> -</span><span id="Select-2419"><a href="#Select-2419"><span class="linenos">2419</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</span></a> <span class="p">)</span> -</span><span id="Select-2423"><a href="#Select-2423"><span class="linenos">2423</span></a> -</span><span id="Select-2424"><a href="#Select-2424"><span class="linenos">2424</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2426"><a href="#Select-2426"><span class="linenos">2426</span></a><span class="sd"> Set the OFFSET expression.</span> -</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a> -</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</span></a><span class="sd"> Example:</span> -</span><span id="Select-2429"><a href="#Select-2429"><span class="linenos">2429</span></a><span class="sd"> >>> Select().from_("tbl").select("x").distinct().sql()</span> -</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a><span class="sd"> 'SELECT DISTINCT x FROM tbl'</span> -</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a> -</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a><span class="sd"> Args:</span> -</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span> -</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a> -</span><span id="Select-2436"><a href="#Select-2436"><span class="linenos">2436</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</span></a><span class="sd"> """</span> -</span><span id="Select-2439"><a href="#Select-2439"><span class="linenos">2439</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Select-2440"><a href="#Select-2440"><span class="linenos">2440</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">()</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Select-2441"><a href="#Select-2441"><span class="linenos">2441</span></a> <span class="k">return</span> <span class="n">instance</span> -</span><span id="Select-2442"><a href="#Select-2442"><span class="linenos">2442</span></a> -</span><span id="Select-2443"><a href="#Select-2443"><span class="linenos">2443</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Create</span><span class="p">:</span> -</span><span id="Select-2444"><a href="#Select-2444"><span class="linenos">2444</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2445"><a href="#Select-2445"><span class="linenos">2445</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span> -</span><span id="Select-2446"><a href="#Select-2446"><span class="linenos">2446</span></a> -</span><span id="Select-2447"><a href="#Select-2447"><span class="linenos">2447</span></a><span class="sd"> Example:</span> -</span><span id="Select-2448"><a href="#Select-2448"><span class="linenos">2448</span></a><span class="sd"> >>> Select().select("*").from_("tbl").ctas("x").sql()</span> -</span><span id="Select-2449"><a href="#Select-2449"><span class="linenos">2449</span></a><span class="sd"> 'CREATE TABLE x AS SELECT * FROM tbl'</span> -</span><span id="Select-2450"><a href="#Select-2450"><span class="linenos">2450</span></a> -</span><span id="Select-2451"><a href="#Select-2451"><span class="linenos">2451</span></a><span class="sd"> Args:</span> -</span><span id="Select-2452"><a href="#Select-2452"><span class="linenos">2452</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span> -</span><span id="Select-2453"><a href="#Select-2453"><span class="linenos">2453</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span> -</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span> -</span><span id="Select-2456"><a href="#Select-2456"><span class="linenos">2456</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2457"><a href="#Select-2457"><span class="linenos">2457</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span> -</span><span id="Select-2458"><a href="#Select-2458"><span class="linenos">2458</span></a> -</span><span id="Select-2459"><a href="#Select-2459"><span class="linenos">2459</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2460"><a href="#Select-2460"><span class="linenos">2460</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span> -</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a><span class="sd"> """</span> -</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="Select-2464"><a href="#Select-2464"><span class="linenos">2464</span></a> <span class="n">table</span><span class="p">,</span> -</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> -</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select-2467"><a href="#Select-2467"><span class="linenos">2467</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a> <span class="p">)</span> -</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Select-2470"><a href="#Select-2470"><span class="linenos">2470</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> -</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> -</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a> -</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span> -</span><span id="Select-2474"><a href="#Select-2474"><span class="linenos">2474</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span> -</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"table"</span><span class="p">,</span> -</span><span id="Select-2476"><a href="#Select-2476"><span class="linenos">2476</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> -</span><span id="Select-2477"><a href="#Select-2477"><span class="linenos">2477</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span> +</span><span id="Select-2372"><a href="#Select-2372"><span class="linenos">2372</span></a><span class="sd"> >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()</span> +</span><span id="Select-2373"><a href="#Select-2373"><span class="linenos">2373</span></a><span class="sd"> 'SELECT 1 FROM a JOIN b USING (x, y, z)'</span> +</span><span id="Select-2374"><a href="#Select-2374"><span class="linenos">2374</span></a> +</span><span id="Select-2375"><a href="#Select-2375"><span class="linenos">2375</span></a><span class="sd"> Use `join_type` to change the type of join:</span> +</span><span id="Select-2376"><a href="#Select-2376"><span class="linenos">2376</span></a> +</span><span id="Select-2377"><a href="#Select-2377"><span class="linenos">2377</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()</span> +</span><span id="Select-2378"><a href="#Select-2378"><span class="linenos">2378</span></a><span class="sd"> 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span> +</span><span id="Select-2379"><a href="#Select-2379"><span class="linenos">2379</span></a> +</span><span id="Select-2380"><a href="#Select-2380"><span class="linenos">2380</span></a><span class="sd"> Args:</span> +</span><span id="Select-2381"><a href="#Select-2381"><span class="linenos">2381</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span> +</span><span id="Select-2382"><a href="#Select-2382"><span class="linenos">2382</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2383"><a href="#Select-2383"><span class="linenos">2383</span></a><span class="sd"> on (str | Expression): optionally specify the join "on" criteria as a SQL string.</span> +</span><span id="Select-2384"><a href="#Select-2384"><span class="linenos">2384</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2385"><a href="#Select-2385"><span class="linenos">2385</span></a><span class="sd"> using (str | Expression): optionally specify the join "using" criteria as a SQL string.</span> +</span><span id="Select-2386"><a href="#Select-2386"><span class="linenos">2386</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2387"><a href="#Select-2387"><span class="linenos">2387</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select-2388"><a href="#Select-2388"><span class="linenos">2388</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Select-2389"><a href="#Select-2389"><span class="linenos">2389</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span> +</span><span id="Select-2390"><a href="#Select-2390"><span class="linenos">2390</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select-2391"><a href="#Select-2391"><span class="linenos">2391</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2392"><a href="#Select-2392"><span class="linenos">2392</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2393"><a href="#Select-2393"><span class="linenos">2393</span></a> +</span><span id="Select-2394"><a href="#Select-2394"><span class="linenos">2394</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2395"><a href="#Select-2395"><span class="linenos">2395</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2396"><a href="#Select-2396"><span class="linenos">2396</span></a><span class="sd"> """</span> +</span><span id="Select-2397"><a href="#Select-2397"><span class="linenos">2397</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"dialect"</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span> +</span><span id="Select-2398"><a href="#Select-2398"><span class="linenos">2398</span></a> +</span><span id="Select-2399"><a href="#Select-2399"><span class="linenos">2399</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Select-2400"><a href="#Select-2400"><span class="linenos">2400</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"JOIN"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> +</span><span id="Select-2401"><a href="#Select-2401"><span class="linenos">2401</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> +</span><span id="Select-2402"><a href="#Select-2402"><span class="linenos">2402</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> +</span><span id="Select-2403"><a href="#Select-2403"><span class="linenos">2403</span></a> +</span><span id="Select-2404"><a href="#Select-2404"><span class="linenos">2404</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Select-2405"><a href="#Select-2405"><span class="linenos">2405</span></a> +</span><span id="Select-2406"><a href="#Select-2406"><span class="linenos">2406</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span> +</span><span id="Select-2407"><a href="#Select-2407"><span class="linenos">2407</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span> +</span><span id="Select-2408"><a href="#Select-2408"><span class="linenos">2408</span></a> +</span><span id="Select-2409"><a href="#Select-2409"><span class="linenos">2409</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span> +</span><span id="Select-2410"><a href="#Select-2410"><span class="linenos">2410</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="Select-2411"><a href="#Select-2411"><span class="linenos">2411</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="Select-2412"><a href="#Select-2412"><span class="linenos">2412</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="Select-2413"><a href="#Select-2413"><span class="linenos">2413</span></a> +</span><span id="Select-2414"><a href="#Select-2414"><span class="linenos">2414</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">"JOIN_TYPE"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Select-2415"><a href="#Select-2415"><span class="linenos">2415</span></a> +</span><span id="Select-2416"><a href="#Select-2416"><span class="linenos">2416</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> +</span><span id="Select-2417"><a href="#Select-2417"><span class="linenos">2417</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="Select-2418"><a href="#Select-2418"><span class="linenos">2418</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> +</span><span id="Select-2419"><a href="#Select-2419"><span class="linenos">2419</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"side"</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Select-2420"><a href="#Select-2420"><span class="linenos">2420</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Select-2421"><a href="#Select-2421"><span class="linenos">2421</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Select-2422"><a href="#Select-2422"><span class="linenos">2422</span></a> +</span><span id="Select-2423"><a href="#Select-2423"><span class="linenos">2423</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span> +</span><span id="Select-2424"><a href="#Select-2424"><span class="linenos">2424</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Select-2425"><a href="#Select-2425"><span class="linenos">2425</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span> +</span><span id="Select-2426"><a href="#Select-2426"><span class="linenos">2426</span></a> +</span><span id="Select-2427"><a href="#Select-2427"><span class="linenos">2427</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> +</span><span id="Select-2428"><a href="#Select-2428"><span class="linenos">2428</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select-2429"><a href="#Select-2429"><span class="linenos">2429</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span> +</span><span id="Select-2430"><a href="#Select-2430"><span class="linenos">2430</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span> +</span><span id="Select-2431"><a href="#Select-2431"><span class="linenos">2431</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> +</span><span id="Select-2432"><a href="#Select-2432"><span class="linenos">2432</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2433"><a href="#Select-2433"><span class="linenos">2433</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2434"><a href="#Select-2434"><span class="linenos">2434</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2435"><a href="#Select-2435"><span class="linenos">2435</span></a> <span class="p">)</span> +</span><span id="Select-2436"><a href="#Select-2436"><span class="linenos">2436</span></a> +</span><span id="Select-2437"><a href="#Select-2437"><span class="linenos">2437</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span> +</span><span id="Select-2438"><a href="#Select-2438"><span class="linenos">2438</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Select-2439"><a href="#Select-2439"><span class="linenos">2439</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select-2440"><a href="#Select-2440"><span class="linenos">2440</span></a> <span class="n">join</span><span class="p">,</span> +</span><span id="Select-2441"><a href="#Select-2441"><span class="linenos">2441</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2442"><a href="#Select-2442"><span class="linenos">2442</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"joins"</span><span class="p">,</span> +</span><span id="Select-2443"><a href="#Select-2443"><span class="linenos">2443</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2444"><a href="#Select-2444"><span class="linenos">2444</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2445"><a href="#Select-2445"><span class="linenos">2445</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2446"><a href="#Select-2446"><span class="linenos">2446</span></a> <span class="p">)</span> +</span><span id="Select-2447"><a href="#Select-2447"><span class="linenos">2447</span></a> +</span><span id="Select-2448"><a href="#Select-2448"><span class="linenos">2448</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2449"><a href="#Select-2449"><span class="linenos">2449</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2450"><a href="#Select-2450"><span class="linenos">2450</span></a><span class="sd"> Append to or set the WHERE expressions.</span> +</span><span id="Select-2451"><a href="#Select-2451"><span class="linenos">2451</span></a> +</span><span id="Select-2452"><a href="#Select-2452"><span class="linenos">2452</span></a><span class="sd"> Example:</span> +</span><span id="Select-2453"><a href="#Select-2453"><span class="linenos">2453</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()</span> +</span><span id="Select-2454"><a href="#Select-2454"><span class="linenos">2454</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</span><span id="Select-2455"><a href="#Select-2455"><span class="linenos">2455</span></a> +</span><span id="Select-2456"><a href="#Select-2456"><span class="linenos">2456</span></a><span class="sd"> Args:</span> +</span><span id="Select-2457"><a href="#Select-2457"><span class="linenos">2457</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2458"><a href="#Select-2458"><span class="linenos">2458</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2459"><a href="#Select-2459"><span class="linenos">2459</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Select-2460"><a href="#Select-2460"><span class="linenos">2460</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Select-2461"><a href="#Select-2461"><span class="linenos">2461</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Select-2462"><a href="#Select-2462"><span class="linenos">2462</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select-2463"><a href="#Select-2463"><span class="linenos">2463</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2464"><a href="#Select-2464"><span class="linenos">2464</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2465"><a href="#Select-2465"><span class="linenos">2465</span></a> +</span><span id="Select-2466"><a href="#Select-2466"><span class="linenos">2466</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2467"><a href="#Select-2467"><span class="linenos">2467</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2468"><a href="#Select-2468"><span class="linenos">2468</span></a><span class="sd"> """</span> +</span><span id="Select-2469"><a href="#Select-2469"><span class="linenos">2469</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Select-2470"><a href="#Select-2470"><span class="linenos">2470</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2471"><a href="#Select-2471"><span class="linenos">2471</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2472"><a href="#Select-2472"><span class="linenos">2472</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> +</span><span id="Select-2473"><a href="#Select-2473"><span class="linenos">2473</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2474"><a href="#Select-2474"><span class="linenos">2474</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> +</span><span id="Select-2475"><a href="#Select-2475"><span class="linenos">2475</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2476"><a href="#Select-2476"><span class="linenos">2476</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2477"><a href="#Select-2477"><span class="linenos">2477</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> </span><span id="Select-2478"><a href="#Select-2478"><span class="linenos">2478</span></a> <span class="p">)</span> </span><span id="Select-2479"><a href="#Select-2479"><span class="linenos">2479</span></a> -</span><span id="Select-2480"><a href="#Select-2480"><span class="linenos">2480</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2480"><a href="#Select-2480"><span class="linenos">2480</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> </span><span id="Select-2481"><a href="#Select-2481"><span class="linenos">2481</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</span></a><span class="sd"> Set the locking read mode for this expression.</span> +</span><span id="Select-2482"><a href="#Select-2482"><span class="linenos">2482</span></a><span class="sd"> Append to or set the HAVING expressions.</span> </span><span id="Select-2483"><a href="#Select-2483"><span class="linenos">2483</span></a> -</span><span id="Select-2484"><a href="#Select-2484"><span class="linenos">2484</span></a><span class="sd"> Examples:</span> -</span><span id="Select-2485"><a href="#Select-2485"><span class="linenos">2485</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")</span> -</span><span id="Select-2486"><a href="#Select-2486"><span class="linenos">2486</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span> +</span><span id="Select-2484"><a href="#Select-2484"><span class="linenos">2484</span></a><span class="sd"> Example:</span> +</span><span id="Select-2485"><a href="#Select-2485"><span class="linenos">2485</span></a><span class="sd"> >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()</span> +</span><span id="Select-2486"><a href="#Select-2486"><span class="linenos">2486</span></a><span class="sd"> 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span> </span><span id="Select-2487"><a href="#Select-2487"><span class="linenos">2487</span></a> -</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")</span> -</span><span id="Select-2489"><a href="#Select-2489"><span class="linenos">2489</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span> -</span><span id="Select-2490"><a href="#Select-2490"><span class="linenos">2490</span></a> -</span><span id="Select-2491"><a href="#Select-2491"><span class="linenos">2491</span></a><span class="sd"> Args:</span> -</span><span id="Select-2492"><a href="#Select-2492"><span class="linenos">2492</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span> -</span><span id="Select-2493"><a href="#Select-2493"><span class="linenos">2493</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="Select-2494"><a href="#Select-2494"><span class="linenos">2494</span></a> -</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a><span class="sd"> Returns:</span> -</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a><span class="sd"> The modified expression.</span> -</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</span></a><span class="sd"> """</span> -</span><span id="Select-2498"><a href="#Select-2498"><span class="linenos">2498</span></a> -</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Select-2500"><a href="#Select-2500"><span class="linenos">2500</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"lock"</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span> -</span><span id="Select-2501"><a href="#Select-2501"><span class="linenos">2501</span></a> -</span><span id="Select-2502"><a href="#Select-2502"><span class="linenos">2502</span></a> <span class="k">return</span> <span class="n">inst</span> -</span><span id="Select-2503"><a href="#Select-2503"><span class="linenos">2503</span></a> -</span><span id="Select-2504"><a href="#Select-2504"><span class="linenos">2504</span></a> <span class="nd">@property</span> -</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span> -</span><span id="Select-2507"><a href="#Select-2507"><span class="linenos">2507</span></a> -</span><span id="Select-2508"><a href="#Select-2508"><span class="linenos">2508</span></a> <span class="nd">@property</span> -</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Select-2510"><a href="#Select-2510"><span class="linenos">2510</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Select-2488"><a href="#Select-2488"><span class="linenos">2488</span></a><span class="sd"> Args:</span> +</span><span id="Select-2489"><a href="#Select-2489"><span class="linenos">2489</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select-2490"><a href="#Select-2490"><span class="linenos">2490</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2491"><a href="#Select-2491"><span class="linenos">2491</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Select-2492"><a href="#Select-2492"><span class="linenos">2492</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Select-2493"><a href="#Select-2493"><span class="linenos">2493</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Select-2494"><a href="#Select-2494"><span class="linenos">2494</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select-2495"><a href="#Select-2495"><span class="linenos">2495</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2496"><a href="#Select-2496"><span class="linenos">2496</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select-2497"><a href="#Select-2497"><span class="linenos">2497</span></a> +</span><span id="Select-2498"><a href="#Select-2498"><span class="linenos">2498</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2499"><a href="#Select-2499"><span class="linenos">2499</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2500"><a href="#Select-2500"><span class="linenos">2500</span></a><span class="sd"> """</span> +</span><span id="Select-2501"><a href="#Select-2501"><span class="linenos">2501</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Select-2502"><a href="#Select-2502"><span class="linenos">2502</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2503"><a href="#Select-2503"><span class="linenos">2503</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2504"><a href="#Select-2504"><span class="linenos">2504</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"having"</span><span class="p">,</span> +</span><span id="Select-2505"><a href="#Select-2505"><span class="linenos">2505</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2506"><a href="#Select-2506"><span class="linenos">2506</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span> +</span><span id="Select-2507"><a href="#Select-2507"><span class="linenos">2507</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2508"><a href="#Select-2508"><span class="linenos">2508</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2509"><a href="#Select-2509"><span class="linenos">2509</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2510"><a href="#Select-2510"><span class="linenos">2510</span></a> <span class="p">)</span> </span><span id="Select-2511"><a href="#Select-2511"><span class="linenos">2511</span></a> -</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a> <span class="nd">@property</span> -</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span> -</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="Select-2512"><a href="#Select-2512"><span class="linenos">2512</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2513"><a href="#Select-2513"><span class="linenos">2513</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select-2514"><a href="#Select-2514"><span class="linenos">2514</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2515"><a href="#Select-2515"><span class="linenos">2515</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2516"><a href="#Select-2516"><span class="linenos">2516</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"windows"</span><span class="p">,</span> +</span><span id="Select-2517"><a href="#Select-2517"><span class="linenos">2517</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2518"><a href="#Select-2518"><span class="linenos">2518</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span> +</span><span id="Select-2519"><a href="#Select-2519"><span class="linenos">2519</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2520"><a href="#Select-2520"><span class="linenos">2520</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2521"><a href="#Select-2521"><span class="linenos">2521</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2522"><a href="#Select-2522"><span class="linenos">2522</span></a> <span class="p">)</span> +</span><span id="Select-2523"><a href="#Select-2523"><span class="linenos">2523</span></a> +</span><span id="Select-2524"><a href="#Select-2524"><span class="linenos">2524</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2525"><a href="#Select-2525"><span class="linenos">2525</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Select-2526"><a href="#Select-2526"><span class="linenos">2526</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select-2527"><a href="#Select-2527"><span class="linenos">2527</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select-2528"><a href="#Select-2528"><span class="linenos">2528</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"qualify"</span><span class="p">,</span> +</span><span id="Select-2529"><a href="#Select-2529"><span class="linenos">2529</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select-2530"><a href="#Select-2530"><span class="linenos">2530</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span> +</span><span id="Select-2531"><a href="#Select-2531"><span class="linenos">2531</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2532"><a href="#Select-2532"><span class="linenos">2532</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select-2533"><a href="#Select-2533"><span class="linenos">2533</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2534"><a href="#Select-2534"><span class="linenos">2534</span></a> <span class="p">)</span> +</span><span id="Select-2535"><a href="#Select-2535"><span class="linenos">2535</span></a> +</span><span id="Select-2536"><a href="#Select-2536"><span class="linenos">2536</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2537"><a href="#Select-2537"><span class="linenos">2537</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2538"><a href="#Select-2538"><span class="linenos">2538</span></a><span class="sd"> Set the OFFSET expression.</span> +</span><span id="Select-2539"><a href="#Select-2539"><span class="linenos">2539</span></a> +</span><span id="Select-2540"><a href="#Select-2540"><span class="linenos">2540</span></a><span class="sd"> Example:</span> +</span><span id="Select-2541"><a href="#Select-2541"><span class="linenos">2541</span></a><span class="sd"> >>> Select().from_("tbl").select("x").distinct().sql()</span> +</span><span id="Select-2542"><a href="#Select-2542"><span class="linenos">2542</span></a><span class="sd"> 'SELECT DISTINCT x FROM tbl'</span> +</span><span id="Select-2543"><a href="#Select-2543"><span class="linenos">2543</span></a> +</span><span id="Select-2544"><a href="#Select-2544"><span class="linenos">2544</span></a><span class="sd"> Args:</span> +</span><span id="Select-2545"><a href="#Select-2545"><span class="linenos">2545</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span> +</span><span id="Select-2546"><a href="#Select-2546"><span class="linenos">2546</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2547"><a href="#Select-2547"><span class="linenos">2547</span></a> +</span><span id="Select-2548"><a href="#Select-2548"><span class="linenos">2548</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2549"><a href="#Select-2549"><span class="linenos">2549</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select-2550"><a href="#Select-2550"><span class="linenos">2550</span></a><span class="sd"> """</span> +</span><span id="Select-2551"><a href="#Select-2551"><span class="linenos">2551</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Select-2552"><a href="#Select-2552"><span class="linenos">2552</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">()</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Select-2553"><a href="#Select-2553"><span class="linenos">2553</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="Select-2554"><a href="#Select-2554"><span class="linenos">2554</span></a> +</span><span id="Select-2555"><a href="#Select-2555"><span class="linenos">2555</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Create</span><span class="p">:</span> +</span><span id="Select-2556"><a href="#Select-2556"><span class="linenos">2556</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2557"><a href="#Select-2557"><span class="linenos">2557</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span> +</span><span id="Select-2558"><a href="#Select-2558"><span class="linenos">2558</span></a> +</span><span id="Select-2559"><a href="#Select-2559"><span class="linenos">2559</span></a><span class="sd"> Example:</span> +</span><span id="Select-2560"><a href="#Select-2560"><span class="linenos">2560</span></a><span class="sd"> >>> Select().select("*").from_("tbl").ctas("x").sql()</span> +</span><span id="Select-2561"><a href="#Select-2561"><span class="linenos">2561</span></a><span class="sd"> 'CREATE TABLE x AS SELECT * FROM tbl'</span> +</span><span id="Select-2562"><a href="#Select-2562"><span class="linenos">2562</span></a> +</span><span id="Select-2563"><a href="#Select-2563"><span class="linenos">2563</span></a><span class="sd"> Args:</span> +</span><span id="Select-2564"><a href="#Select-2564"><span class="linenos">2564</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span> +</span><span id="Select-2565"><a href="#Select-2565"><span class="linenos">2565</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select-2566"><a href="#Select-2566"><span class="linenos">2566</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span> +</span><span id="Select-2567"><a href="#Select-2567"><span class="linenos">2567</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span> +</span><span id="Select-2568"><a href="#Select-2568"><span class="linenos">2568</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2569"><a href="#Select-2569"><span class="linenos">2569</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span> +</span><span id="Select-2570"><a href="#Select-2570"><span class="linenos">2570</span></a> +</span><span id="Select-2571"><a href="#Select-2571"><span class="linenos">2571</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2572"><a href="#Select-2572"><span class="linenos">2572</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span> +</span><span id="Select-2573"><a href="#Select-2573"><span class="linenos">2573</span></a><span class="sd"> """</span> +</span><span id="Select-2574"><a href="#Select-2574"><span class="linenos">2574</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Select-2575"><a href="#Select-2575"><span class="linenos">2575</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="Select-2576"><a href="#Select-2576"><span class="linenos">2576</span></a> <span class="n">table</span><span class="p">,</span> +</span><span id="Select-2577"><a href="#Select-2577"><span class="linenos">2577</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> +</span><span id="Select-2578"><a href="#Select-2578"><span class="linenos">2578</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select-2579"><a href="#Select-2579"><span class="linenos">2579</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select-2580"><a href="#Select-2580"><span class="linenos">2580</span></a> <span class="p">)</span> +</span><span id="Select-2581"><a href="#Select-2581"><span class="linenos">2581</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Select-2582"><a href="#Select-2582"><span class="linenos">2582</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> +</span><span id="Select-2583"><a href="#Select-2583"><span class="linenos">2583</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> +</span><span id="Select-2584"><a href="#Select-2584"><span class="linenos">2584</span></a> +</span><span id="Select-2585"><a href="#Select-2585"><span class="linenos">2585</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span> +</span><span id="Select-2586"><a href="#Select-2586"><span class="linenos">2586</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span> +</span><span id="Select-2587"><a href="#Select-2587"><span class="linenos">2587</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"table"</span><span class="p">,</span> +</span><span id="Select-2588"><a href="#Select-2588"><span class="linenos">2588</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> +</span><span id="Select-2589"><a href="#Select-2589"><span class="linenos">2589</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span> +</span><span id="Select-2590"><a href="#Select-2590"><span class="linenos">2590</span></a> <span class="p">)</span> +</span><span id="Select-2591"><a href="#Select-2591"><span class="linenos">2591</span></a> +</span><span id="Select-2592"><a href="#Select-2592"><span class="linenos">2592</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select-2593"><a href="#Select-2593"><span class="linenos">2593</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select-2594"><a href="#Select-2594"><span class="linenos">2594</span></a><span class="sd"> Set the locking read mode for this expression.</span> +</span><span id="Select-2595"><a href="#Select-2595"><span class="linenos">2595</span></a> +</span><span id="Select-2596"><a href="#Select-2596"><span class="linenos">2596</span></a><span class="sd"> Examples:</span> +</span><span id="Select-2597"><a href="#Select-2597"><span class="linenos">2597</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")</span> +</span><span id="Select-2598"><a href="#Select-2598"><span class="linenos">2598</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span> +</span><span id="Select-2599"><a href="#Select-2599"><span class="linenos">2599</span></a> +</span><span id="Select-2600"><a href="#Select-2600"><span class="linenos">2600</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")</span> +</span><span id="Select-2601"><a href="#Select-2601"><span class="linenos">2601</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span> +</span><span id="Select-2602"><a href="#Select-2602"><span class="linenos">2602</span></a> +</span><span id="Select-2603"><a href="#Select-2603"><span class="linenos">2603</span></a><span class="sd"> Args:</span> +</span><span id="Select-2604"><a href="#Select-2604"><span class="linenos">2604</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span> +</span><span id="Select-2605"><a href="#Select-2605"><span class="linenos">2605</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Select-2606"><a href="#Select-2606"><span class="linenos">2606</span></a> +</span><span id="Select-2607"><a href="#Select-2607"><span class="linenos">2607</span></a><span class="sd"> Returns:</span> +</span><span id="Select-2608"><a href="#Select-2608"><span class="linenos">2608</span></a><span class="sd"> The modified expression.</span> +</span><span id="Select-2609"><a href="#Select-2609"><span class="linenos">2609</span></a><span class="sd"> """</span> +</span><span id="Select-2610"><a href="#Select-2610"><span class="linenos">2610</span></a> +</span><span id="Select-2611"><a href="#Select-2611"><span class="linenos">2611</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Select-2612"><a href="#Select-2612"><span class="linenos">2612</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"lock"</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span> +</span><span id="Select-2613"><a href="#Select-2613"><span class="linenos">2613</span></a> +</span><span id="Select-2614"><a href="#Select-2614"><span class="linenos">2614</span></a> <span class="k">return</span> <span class="n">inst</span> +</span><span id="Select-2615"><a href="#Select-2615"><span class="linenos">2615</span></a> +</span><span id="Select-2616"><a href="#Select-2616"><span class="linenos">2616</span></a> <span class="nd">@property</span> +</span><span id="Select-2617"><a href="#Select-2617"><span class="linenos">2617</span></a> <span class="k">def</span> <span class="nf">named_selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="Select-2618"><a href="#Select-2618"><span class="linenos">2618</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">e</span><span class="o">.</span><span class="n">output_name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> <span class="k">if</span> <span class="n">e</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">]</span> +</span><span id="Select-2619"><a href="#Select-2619"><span class="linenos">2619</span></a> +</span><span id="Select-2620"><a href="#Select-2620"><span class="linenos">2620</span></a> <span class="nd">@property</span> +</span><span id="Select-2621"><a href="#Select-2621"><span class="linenos">2621</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Select-2622"><a href="#Select-2622"><span class="linenos">2622</span></a> <span class="k">return</span> <span class="nb">any</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Select-2623"><a href="#Select-2623"><span class="linenos">2623</span></a> +</span><span id="Select-2624"><a href="#Select-2624"><span class="linenos">2624</span></a> <span class="nd">@property</span> +</span><span id="Select-2625"><a href="#Select-2625"><span class="linenos">2625</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Expression</span><span class="p">]:</span> +</span><span id="Select-2626"><a href="#Select-2626"><span class="linenos">2626</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> </span></pre></div> @@ -21161,38 +21680,38 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Select.from_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-1942"><a href="#Select.from_-1942"><span class="linenos">1942</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.from_-1943"><a href="#Select.from_-1943"><span class="linenos">1943</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.from_-1944"><a href="#Select.from_-1944"><span class="linenos">1944</span></a><span class="sd"> Set the FROM expression.</span> -</span><span id="Select.from_-1945"><a href="#Select.from_-1945"><span class="linenos">1945</span></a> -</span><span id="Select.from_-1946"><a href="#Select.from_-1946"><span class="linenos">1946</span></a><span class="sd"> Example:</span> -</span><span id="Select.from_-1947"><a href="#Select.from_-1947"><span class="linenos">1947</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sql()</span> -</span><span id="Select.from_-1948"><a href="#Select.from_-1948"><span class="linenos">1948</span></a><span class="sd"> 'SELECT x FROM tbl'</span> -</span><span id="Select.from_-1949"><a href="#Select.from_-1949"><span class="linenos">1949</span></a> -</span><span id="Select.from_-1950"><a href="#Select.from_-1950"><span class="linenos">1950</span></a><span class="sd"> Args:</span> -</span><span id="Select.from_-1951"><a href="#Select.from_-1951"><span class="linenos">1951</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.from_-1952"><a href="#Select.from_-1952"><span class="linenos">1952</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span> -</span><span id="Select.from_-1953"><a href="#Select.from_-1953"><span class="linenos">1953</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span> -</span><span id="Select.from_-1954"><a href="#Select.from_-1954"><span class="linenos">1954</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.from_-1955"><a href="#Select.from_-1955"><span class="linenos">1955</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span> -</span><span id="Select.from_-1956"><a href="#Select.from_-1956"><span class="linenos">1956</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.from_-1957"><a href="#Select.from_-1957"><span class="linenos">1957</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.from_-1958"><a href="#Select.from_-1958"><span class="linenos">1958</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.from_-1959"><a href="#Select.from_-1959"><span class="linenos">1959</span></a> -</span><span id="Select.from_-1960"><a href="#Select.from_-1960"><span class="linenos">1960</span></a><span class="sd"> Returns:</span> -</span><span id="Select.from_-1961"><a href="#Select.from_-1961"><span class="linenos">1961</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.from_-1962"><a href="#Select.from_-1962"><span class="linenos">1962</span></a><span class="sd"> """</span> -</span><span id="Select.from_-1963"><a href="#Select.from_-1963"><span class="linenos">1963</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select.from_-1964"><a href="#Select.from_-1964"><span class="linenos">1964</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.from_-1965"><a href="#Select.from_-1965"><span class="linenos">1965</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.from_-1966"><a href="#Select.from_-1966"><span class="linenos">1966</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"from"</span><span class="p">,</span> -</span><span id="Select.from_-1967"><a href="#Select.from_-1967"><span class="linenos">1967</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.from_-1968"><a href="#Select.from_-1968"><span class="linenos">1968</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.from_-1969"><a href="#Select.from_-1969"><span class="linenos">1969</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> -</span><span id="Select.from_-1970"><a href="#Select.from_-1970"><span class="linenos">1970</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> -</span><span id="Select.from_-1971"><a href="#Select.from_-1971"><span class="linenos">1971</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.from_-1972"><a href="#Select.from_-1972"><span class="linenos">1972</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.from_-1973"><a href="#Select.from_-1973"><span class="linenos">1973</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.from_-2054"><a href="#Select.from_-2054"><span class="linenos">2054</span></a> <span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.from_-2055"><a href="#Select.from_-2055"><span class="linenos">2055</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.from_-2056"><a href="#Select.from_-2056"><span class="linenos">2056</span></a><span class="sd"> Set the FROM expression.</span> +</span><span id="Select.from_-2057"><a href="#Select.from_-2057"><span class="linenos">2057</span></a> +</span><span id="Select.from_-2058"><a href="#Select.from_-2058"><span class="linenos">2058</span></a><span class="sd"> Example:</span> +</span><span id="Select.from_-2059"><a href="#Select.from_-2059"><span class="linenos">2059</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sql()</span> +</span><span id="Select.from_-2060"><a href="#Select.from_-2060"><span class="linenos">2060</span></a><span class="sd"> 'SELECT x FROM tbl'</span> +</span><span id="Select.from_-2061"><a href="#Select.from_-2061"><span class="linenos">2061</span></a> +</span><span id="Select.from_-2062"><a href="#Select.from_-2062"><span class="linenos">2062</span></a><span class="sd"> Args:</span> +</span><span id="Select.from_-2063"><a href="#Select.from_-2063"><span class="linenos">2063</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.from_-2064"><a href="#Select.from_-2064"><span class="linenos">2064</span></a><span class="sd"> If a `From` instance is passed, this is used as-is.</span> +</span><span id="Select.from_-2065"><a href="#Select.from_-2065"><span class="linenos">2065</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `From`.</span> +</span><span id="Select.from_-2066"><a href="#Select.from_-2066"><span class="linenos">2066</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.from_-2067"><a href="#Select.from_-2067"><span class="linenos">2067</span></a><span class="sd"> Otherwise, this flattens all the `From` expression into a single expression.</span> +</span><span id="Select.from_-2068"><a href="#Select.from_-2068"><span class="linenos">2068</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.from_-2069"><a href="#Select.from_-2069"><span class="linenos">2069</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.from_-2070"><a href="#Select.from_-2070"><span class="linenos">2070</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.from_-2071"><a href="#Select.from_-2071"><span class="linenos">2071</span></a> +</span><span id="Select.from_-2072"><a href="#Select.from_-2072"><span class="linenos">2072</span></a><span class="sd"> Returns:</span> +</span><span id="Select.from_-2073"><a href="#Select.from_-2073"><span class="linenos">2073</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.from_-2074"><a href="#Select.from_-2074"><span class="linenos">2074</span></a><span class="sd"> """</span> +</span><span id="Select.from_-2075"><a href="#Select.from_-2075"><span class="linenos">2075</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select.from_-2076"><a href="#Select.from_-2076"><span class="linenos">2076</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.from_-2077"><a href="#Select.from_-2077"><span class="linenos">2077</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.from_-2078"><a href="#Select.from_-2078"><span class="linenos">2078</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"from"</span><span class="p">,</span> +</span><span id="Select.from_-2079"><a href="#Select.from_-2079"><span class="linenos">2079</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.from_-2080"><a href="#Select.from_-2080"><span class="linenos">2080</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.from_-2081"><a href="#Select.from_-2081"><span class="linenos">2081</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> +</span><span id="Select.from_-2082"><a href="#Select.from_-2082"><span class="linenos">2082</span></a> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> +</span><span id="Select.from_-2083"><a href="#Select.from_-2083"><span class="linenos">2083</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.from_-2084"><a href="#Select.from_-2084"><span class="linenos">2084</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.from_-2085"><a href="#Select.from_-2085"><span class="linenos">2085</span></a> <span class="p">)</span> </span></pre></div> @@ -21241,41 +21760,41 @@ Otherwise, this flattens all the <code><a href="#From">From</a></code> expressio </div> <a class="headerlink" href="#Select.group_by"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-1975"><a href="#Select.group_by-1975"><span class="linenos">1975</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.group_by-1976"><a href="#Select.group_by-1976"><span class="linenos">1976</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.group_by-1977"><a href="#Select.group_by-1977"><span class="linenos">1977</span></a><span class="sd"> Set the GROUP BY expression.</span> -</span><span id="Select.group_by-1978"><a href="#Select.group_by-1978"><span class="linenos">1978</span></a> -</span><span id="Select.group_by-1979"><a href="#Select.group_by-1979"><span class="linenos">1979</span></a><span class="sd"> Example:</span> -</span><span id="Select.group_by-1980"><a href="#Select.group_by-1980"><span class="linenos">1980</span></a><span class="sd"> >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()</span> -</span><span id="Select.group_by-1981"><a href="#Select.group_by-1981"><span class="linenos">1981</span></a><span class="sd"> 'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span> -</span><span id="Select.group_by-1982"><a href="#Select.group_by-1982"><span class="linenos">1982</span></a> -</span><span id="Select.group_by-1983"><a href="#Select.group_by-1983"><span class="linenos">1983</span></a><span class="sd"> Args:</span> -</span><span id="Select.group_by-1984"><a href="#Select.group_by-1984"><span class="linenos">1984</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.group_by-1985"><a href="#Select.group_by-1985"><span class="linenos">1985</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select.group_by-1986"><a href="#Select.group_by-1986"><span class="linenos">1986</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span> -</span><span id="Select.group_by-1987"><a href="#Select.group_by-1987"><span class="linenos">1987</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span> -</span><span id="Select.group_by-1988"><a href="#Select.group_by-1988"><span class="linenos">1988</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.group_by-1989"><a href="#Select.group_by-1989"><span class="linenos">1989</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span> -</span><span id="Select.group_by-1990"><a href="#Select.group_by-1990"><span class="linenos">1990</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.group_by-1991"><a href="#Select.group_by-1991"><span class="linenos">1991</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.group_by-1992"><a href="#Select.group_by-1992"><span class="linenos">1992</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.group_by-1993"><a href="#Select.group_by-1993"><span class="linenos">1993</span></a> -</span><span id="Select.group_by-1994"><a href="#Select.group_by-1994"><span class="linenos">1994</span></a><span class="sd"> Returns:</span> -</span><span id="Select.group_by-1995"><a href="#Select.group_by-1995"><span class="linenos">1995</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.group_by-1996"><a href="#Select.group_by-1996"><span class="linenos">1996</span></a><span class="sd"> """</span> -</span><span id="Select.group_by-1997"><a href="#Select.group_by-1997"><span class="linenos">1997</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Select.group_by-1998"><a href="#Select.group_by-1998"><span class="linenos">1998</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Select.group_by-1999"><a href="#Select.group_by-1999"><span class="linenos">1999</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select.group_by-2000"><a href="#Select.group_by-2000"><span class="linenos">2000</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.group_by-2001"><a href="#Select.group_by-2001"><span class="linenos">2001</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.group_by-2002"><a href="#Select.group_by-2002"><span class="linenos">2002</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"group"</span><span class="p">,</span> -</span><span id="Select.group_by-2003"><a href="#Select.group_by-2003"><span class="linenos">2003</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.group_by-2004"><a href="#Select.group_by-2004"><span class="linenos">2004</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.group_by-2005"><a href="#Select.group_by-2005"><span class="linenos">2005</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"GROUP BY"</span><span class="p">,</span> -</span><span id="Select.group_by-2006"><a href="#Select.group_by-2006"><span class="linenos">2006</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span> -</span><span id="Select.group_by-2007"><a href="#Select.group_by-2007"><span class="linenos">2007</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.group_by-2008"><a href="#Select.group_by-2008"><span class="linenos">2008</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.group_by-2009"><a href="#Select.group_by-2009"><span class="linenos">2009</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.group_by-2087"><a href="#Select.group_by-2087"><span class="linenos">2087</span></a> <span class="k">def</span> <span class="nf">group_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.group_by-2088"><a href="#Select.group_by-2088"><span class="linenos">2088</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.group_by-2089"><a href="#Select.group_by-2089"><span class="linenos">2089</span></a><span class="sd"> Set the GROUP BY expression.</span> +</span><span id="Select.group_by-2090"><a href="#Select.group_by-2090"><span class="linenos">2090</span></a> +</span><span id="Select.group_by-2091"><a href="#Select.group_by-2091"><span class="linenos">2091</span></a><span class="sd"> Example:</span> +</span><span id="Select.group_by-2092"><a href="#Select.group_by-2092"><span class="linenos">2092</span></a><span class="sd"> >>> Select().from_("tbl").select("x", "COUNT(1)").group_by("x").sql()</span> +</span><span id="Select.group_by-2093"><a href="#Select.group_by-2093"><span class="linenos">2093</span></a><span class="sd"> 'SELECT x, COUNT(1) FROM tbl GROUP BY x'</span> +</span><span id="Select.group_by-2094"><a href="#Select.group_by-2094"><span class="linenos">2094</span></a> +</span><span id="Select.group_by-2095"><a href="#Select.group_by-2095"><span class="linenos">2095</span></a><span class="sd"> Args:</span> +</span><span id="Select.group_by-2096"><a href="#Select.group_by-2096"><span class="linenos">2096</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.group_by-2097"><a href="#Select.group_by-2097"><span class="linenos">2097</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select.group_by-2098"><a href="#Select.group_by-2098"><span class="linenos">2098</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Group`.</span> +</span><span id="Select.group_by-2099"><a href="#Select.group_by-2099"><span class="linenos">2099</span></a><span class="sd"> If nothing is passed in then a group by is not applied to the expression</span> +</span><span id="Select.group_by-2100"><a href="#Select.group_by-2100"><span class="linenos">2100</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.group_by-2101"><a href="#Select.group_by-2101"><span class="linenos">2101</span></a><span class="sd"> Otherwise, this flattens all the `Group` expression into a single expression.</span> +</span><span id="Select.group_by-2102"><a href="#Select.group_by-2102"><span class="linenos">2102</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.group_by-2103"><a href="#Select.group_by-2103"><span class="linenos">2103</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.group_by-2104"><a href="#Select.group_by-2104"><span class="linenos">2104</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.group_by-2105"><a href="#Select.group_by-2105"><span class="linenos">2105</span></a> +</span><span id="Select.group_by-2106"><a href="#Select.group_by-2106"><span class="linenos">2106</span></a><span class="sd"> Returns:</span> +</span><span id="Select.group_by-2107"><a href="#Select.group_by-2107"><span class="linenos">2107</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.group_by-2108"><a href="#Select.group_by-2108"><span class="linenos">2108</span></a><span class="sd"> """</span> +</span><span id="Select.group_by-2109"><a href="#Select.group_by-2109"><span class="linenos">2109</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Select.group_by-2110"><a href="#Select.group_by-2110"><span class="linenos">2110</span></a> <span class="k">return</span> <span class="bp">self</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">copy</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Select.group_by-2111"><a href="#Select.group_by-2111"><span class="linenos">2111</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select.group_by-2112"><a href="#Select.group_by-2112"><span class="linenos">2112</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.group_by-2113"><a href="#Select.group_by-2113"><span class="linenos">2113</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.group_by-2114"><a href="#Select.group_by-2114"><span class="linenos">2114</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"group"</span><span class="p">,</span> +</span><span id="Select.group_by-2115"><a href="#Select.group_by-2115"><span class="linenos">2115</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.group_by-2116"><a href="#Select.group_by-2116"><span class="linenos">2116</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.group_by-2117"><a href="#Select.group_by-2117"><span class="linenos">2117</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"GROUP BY"</span><span class="p">,</span> +</span><span id="Select.group_by-2118"><a href="#Select.group_by-2118"><span class="linenos">2118</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Group</span><span class="p">,</span> +</span><span id="Select.group_by-2119"><a href="#Select.group_by-2119"><span class="linenos">2119</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.group_by-2120"><a href="#Select.group_by-2120"><span class="linenos">2120</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.group_by-2121"><a href="#Select.group_by-2121"><span class="linenos">2121</span></a> <span class="p">)</span> </span></pre></div> @@ -21325,38 +21844,38 @@ Otherwise, this flattens all the <code><a href="#Group">Group</a></code> express </div> <a class="headerlink" href="#Select.order_by"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2011"><a href="#Select.order_by-2011"><span class="linenos">2011</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.order_by-2012"><a href="#Select.order_by-2012"><span class="linenos">2012</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.order_by-2013"><a href="#Select.order_by-2013"><span class="linenos">2013</span></a><span class="sd"> Set the ORDER BY expression.</span> -</span><span id="Select.order_by-2014"><a href="#Select.order_by-2014"><span class="linenos">2014</span></a> -</span><span id="Select.order_by-2015"><a href="#Select.order_by-2015"><span class="linenos">2015</span></a><span class="sd"> Example:</span> -</span><span id="Select.order_by-2016"><a href="#Select.order_by-2016"><span class="linenos">2016</span></a><span class="sd"> >>> Select().from_("tbl").select("x").order_by("x DESC").sql()</span> -</span><span id="Select.order_by-2017"><a href="#Select.order_by-2017"><span class="linenos">2017</span></a><span class="sd"> 'SELECT x FROM tbl ORDER BY x DESC'</span> -</span><span id="Select.order_by-2018"><a href="#Select.order_by-2018"><span class="linenos">2018</span></a> -</span><span id="Select.order_by-2019"><a href="#Select.order_by-2019"><span class="linenos">2019</span></a><span class="sd"> Args:</span> -</span><span id="Select.order_by-2020"><a href="#Select.order_by-2020"><span class="linenos">2020</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.order_by-2021"><a href="#Select.order_by-2021"><span class="linenos">2021</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select.order_by-2022"><a href="#Select.order_by-2022"><span class="linenos">2022</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span> -</span><span id="Select.order_by-2023"><a href="#Select.order_by-2023"><span class="linenos">2023</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.order_by-2024"><a href="#Select.order_by-2024"><span class="linenos">2024</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="Select.order_by-2025"><a href="#Select.order_by-2025"><span class="linenos">2025</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.order_by-2026"><a href="#Select.order_by-2026"><span class="linenos">2026</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.order_by-2027"><a href="#Select.order_by-2027"><span class="linenos">2027</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.order_by-2028"><a href="#Select.order_by-2028"><span class="linenos">2028</span></a> -</span><span id="Select.order_by-2029"><a href="#Select.order_by-2029"><span class="linenos">2029</span></a><span class="sd"> Returns:</span> -</span><span id="Select.order_by-2030"><a href="#Select.order_by-2030"><span class="linenos">2030</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.order_by-2031"><a href="#Select.order_by-2031"><span class="linenos">2031</span></a><span class="sd"> """</span> -</span><span id="Select.order_by-2032"><a href="#Select.order_by-2032"><span class="linenos">2032</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select.order_by-2033"><a href="#Select.order_by-2033"><span class="linenos">2033</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.order_by-2034"><a href="#Select.order_by-2034"><span class="linenos">2034</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.order_by-2035"><a href="#Select.order_by-2035"><span class="linenos">2035</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"order"</span><span class="p">,</span> -</span><span id="Select.order_by-2036"><a href="#Select.order_by-2036"><span class="linenos">2036</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.order_by-2037"><a href="#Select.order_by-2037"><span class="linenos">2037</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.order_by-2038"><a href="#Select.order_by-2038"><span class="linenos">2038</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ORDER BY"</span><span class="p">,</span> -</span><span id="Select.order_by-2039"><a href="#Select.order_by-2039"><span class="linenos">2039</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span> -</span><span id="Select.order_by-2040"><a href="#Select.order_by-2040"><span class="linenos">2040</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.order_by-2041"><a href="#Select.order_by-2041"><span class="linenos">2041</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.order_by-2042"><a href="#Select.order_by-2042"><span class="linenos">2042</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.order_by-2123"><a href="#Select.order_by-2123"><span class="linenos">2123</span></a> <span class="k">def</span> <span class="nf">order_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.order_by-2124"><a href="#Select.order_by-2124"><span class="linenos">2124</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.order_by-2125"><a href="#Select.order_by-2125"><span class="linenos">2125</span></a><span class="sd"> Set the ORDER BY expression.</span> +</span><span id="Select.order_by-2126"><a href="#Select.order_by-2126"><span class="linenos">2126</span></a> +</span><span id="Select.order_by-2127"><a href="#Select.order_by-2127"><span class="linenos">2127</span></a><span class="sd"> Example:</span> +</span><span id="Select.order_by-2128"><a href="#Select.order_by-2128"><span class="linenos">2128</span></a><span class="sd"> >>> Select().from_("tbl").select("x").order_by("x DESC").sql()</span> +</span><span id="Select.order_by-2129"><a href="#Select.order_by-2129"><span class="linenos">2129</span></a><span class="sd"> 'SELECT x FROM tbl ORDER BY x DESC'</span> +</span><span id="Select.order_by-2130"><a href="#Select.order_by-2130"><span class="linenos">2130</span></a> +</span><span id="Select.order_by-2131"><a href="#Select.order_by-2131"><span class="linenos">2131</span></a><span class="sd"> Args:</span> +</span><span id="Select.order_by-2132"><a href="#Select.order_by-2132"><span class="linenos">2132</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.order_by-2133"><a href="#Select.order_by-2133"><span class="linenos">2133</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select.order_by-2134"><a href="#Select.order_by-2134"><span class="linenos">2134</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Order`.</span> +</span><span id="Select.order_by-2135"><a href="#Select.order_by-2135"><span class="linenos">2135</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.order_by-2136"><a href="#Select.order_by-2136"><span class="linenos">2136</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="Select.order_by-2137"><a href="#Select.order_by-2137"><span class="linenos">2137</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.order_by-2138"><a href="#Select.order_by-2138"><span class="linenos">2138</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.order_by-2139"><a href="#Select.order_by-2139"><span class="linenos">2139</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.order_by-2140"><a href="#Select.order_by-2140"><span class="linenos">2140</span></a> +</span><span id="Select.order_by-2141"><a href="#Select.order_by-2141"><span class="linenos">2141</span></a><span class="sd"> Returns:</span> +</span><span id="Select.order_by-2142"><a href="#Select.order_by-2142"><span class="linenos">2142</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.order_by-2143"><a href="#Select.order_by-2143"><span class="linenos">2143</span></a><span class="sd"> """</span> +</span><span id="Select.order_by-2144"><a href="#Select.order_by-2144"><span class="linenos">2144</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select.order_by-2145"><a href="#Select.order_by-2145"><span class="linenos">2145</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.order_by-2146"><a href="#Select.order_by-2146"><span class="linenos">2146</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.order_by-2147"><a href="#Select.order_by-2147"><span class="linenos">2147</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"order"</span><span class="p">,</span> +</span><span id="Select.order_by-2148"><a href="#Select.order_by-2148"><span class="linenos">2148</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.order_by-2149"><a href="#Select.order_by-2149"><span class="linenos">2149</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.order_by-2150"><a href="#Select.order_by-2150"><span class="linenos">2150</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ORDER BY"</span><span class="p">,</span> +</span><span id="Select.order_by-2151"><a href="#Select.order_by-2151"><span class="linenos">2151</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Order</span><span class="p">,</span> +</span><span id="Select.order_by-2152"><a href="#Select.order_by-2152"><span class="linenos">2152</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.order_by-2153"><a href="#Select.order_by-2153"><span class="linenos">2153</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.order_by-2154"><a href="#Select.order_by-2154"><span class="linenos">2154</span></a> <span class="p">)</span> </span></pre></div> @@ -21405,38 +21924,38 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express </div> <a class="headerlink" href="#Select.sort_by"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2044"><a href="#Select.sort_by-2044"><span class="linenos">2044</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.sort_by-2045"><a href="#Select.sort_by-2045"><span class="linenos">2045</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.sort_by-2046"><a href="#Select.sort_by-2046"><span class="linenos">2046</span></a><span class="sd"> Set the SORT BY expression.</span> -</span><span id="Select.sort_by-2047"><a href="#Select.sort_by-2047"><span class="linenos">2047</span></a> -</span><span id="Select.sort_by-2048"><a href="#Select.sort_by-2048"><span class="linenos">2048</span></a><span class="sd"> Example:</span> -</span><span id="Select.sort_by-2049"><a href="#Select.sort_by-2049"><span class="linenos">2049</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sort_by("x DESC").sql()</span> -</span><span id="Select.sort_by-2050"><a href="#Select.sort_by-2050"><span class="linenos">2050</span></a><span class="sd"> 'SELECT x FROM tbl SORT BY x DESC'</span> -</span><span id="Select.sort_by-2051"><a href="#Select.sort_by-2051"><span class="linenos">2051</span></a> -</span><span id="Select.sort_by-2052"><a href="#Select.sort_by-2052"><span class="linenos">2052</span></a><span class="sd"> Args:</span> -</span><span id="Select.sort_by-2053"><a href="#Select.sort_by-2053"><span class="linenos">2053</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.sort_by-2054"><a href="#Select.sort_by-2054"><span class="linenos">2054</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select.sort_by-2055"><a href="#Select.sort_by-2055"><span class="linenos">2055</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span> -</span><span id="Select.sort_by-2056"><a href="#Select.sort_by-2056"><span class="linenos">2056</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.sort_by-2057"><a href="#Select.sort_by-2057"><span class="linenos">2057</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="Select.sort_by-2058"><a href="#Select.sort_by-2058"><span class="linenos">2058</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.sort_by-2059"><a href="#Select.sort_by-2059"><span class="linenos">2059</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.sort_by-2060"><a href="#Select.sort_by-2060"><span class="linenos">2060</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.sort_by-2061"><a href="#Select.sort_by-2061"><span class="linenos">2061</span></a> -</span><span id="Select.sort_by-2062"><a href="#Select.sort_by-2062"><span class="linenos">2062</span></a><span class="sd"> Returns:</span> -</span><span id="Select.sort_by-2063"><a href="#Select.sort_by-2063"><span class="linenos">2063</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.sort_by-2064"><a href="#Select.sort_by-2064"><span class="linenos">2064</span></a><span class="sd"> """</span> -</span><span id="Select.sort_by-2065"><a href="#Select.sort_by-2065"><span class="linenos">2065</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select.sort_by-2066"><a href="#Select.sort_by-2066"><span class="linenos">2066</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.sort_by-2067"><a href="#Select.sort_by-2067"><span class="linenos">2067</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.sort_by-2068"><a href="#Select.sort_by-2068"><span class="linenos">2068</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"sort"</span><span class="p">,</span> -</span><span id="Select.sort_by-2069"><a href="#Select.sort_by-2069"><span class="linenos">2069</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.sort_by-2070"><a href="#Select.sort_by-2070"><span class="linenos">2070</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.sort_by-2071"><a href="#Select.sort_by-2071"><span class="linenos">2071</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"SORT BY"</span><span class="p">,</span> -</span><span id="Select.sort_by-2072"><a href="#Select.sort_by-2072"><span class="linenos">2072</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span> -</span><span id="Select.sort_by-2073"><a href="#Select.sort_by-2073"><span class="linenos">2073</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.sort_by-2074"><a href="#Select.sort_by-2074"><span class="linenos">2074</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.sort_by-2075"><a href="#Select.sort_by-2075"><span class="linenos">2075</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.sort_by-2156"><a href="#Select.sort_by-2156"><span class="linenos">2156</span></a> <span class="k">def</span> <span class="nf">sort_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.sort_by-2157"><a href="#Select.sort_by-2157"><span class="linenos">2157</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.sort_by-2158"><a href="#Select.sort_by-2158"><span class="linenos">2158</span></a><span class="sd"> Set the SORT BY expression.</span> +</span><span id="Select.sort_by-2159"><a href="#Select.sort_by-2159"><span class="linenos">2159</span></a> +</span><span id="Select.sort_by-2160"><a href="#Select.sort_by-2160"><span class="linenos">2160</span></a><span class="sd"> Example:</span> +</span><span id="Select.sort_by-2161"><a href="#Select.sort_by-2161"><span class="linenos">2161</span></a><span class="sd"> >>> Select().from_("tbl").select("x").sort_by("x DESC").sql()</span> +</span><span id="Select.sort_by-2162"><a href="#Select.sort_by-2162"><span class="linenos">2162</span></a><span class="sd"> 'SELECT x FROM tbl SORT BY x DESC'</span> +</span><span id="Select.sort_by-2163"><a href="#Select.sort_by-2163"><span class="linenos">2163</span></a> +</span><span id="Select.sort_by-2164"><a href="#Select.sort_by-2164"><span class="linenos">2164</span></a><span class="sd"> Args:</span> +</span><span id="Select.sort_by-2165"><a href="#Select.sort_by-2165"><span class="linenos">2165</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.sort_by-2166"><a href="#Select.sort_by-2166"><span class="linenos">2166</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select.sort_by-2167"><a href="#Select.sort_by-2167"><span class="linenos">2167</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `SORT`.</span> +</span><span id="Select.sort_by-2168"><a href="#Select.sort_by-2168"><span class="linenos">2168</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.sort_by-2169"><a href="#Select.sort_by-2169"><span class="linenos">2169</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="Select.sort_by-2170"><a href="#Select.sort_by-2170"><span class="linenos">2170</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.sort_by-2171"><a href="#Select.sort_by-2171"><span class="linenos">2171</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.sort_by-2172"><a href="#Select.sort_by-2172"><span class="linenos">2172</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.sort_by-2173"><a href="#Select.sort_by-2173"><span class="linenos">2173</span></a> +</span><span id="Select.sort_by-2174"><a href="#Select.sort_by-2174"><span class="linenos">2174</span></a><span class="sd"> Returns:</span> +</span><span id="Select.sort_by-2175"><a href="#Select.sort_by-2175"><span class="linenos">2175</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.sort_by-2176"><a href="#Select.sort_by-2176"><span class="linenos">2176</span></a><span class="sd"> """</span> +</span><span id="Select.sort_by-2177"><a href="#Select.sort_by-2177"><span class="linenos">2177</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select.sort_by-2178"><a href="#Select.sort_by-2178"><span class="linenos">2178</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.sort_by-2179"><a href="#Select.sort_by-2179"><span class="linenos">2179</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.sort_by-2180"><a href="#Select.sort_by-2180"><span class="linenos">2180</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"sort"</span><span class="p">,</span> +</span><span id="Select.sort_by-2181"><a href="#Select.sort_by-2181"><span class="linenos">2181</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.sort_by-2182"><a href="#Select.sort_by-2182"><span class="linenos">2182</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.sort_by-2183"><a href="#Select.sort_by-2183"><span class="linenos">2183</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"SORT BY"</span><span class="p">,</span> +</span><span id="Select.sort_by-2184"><a href="#Select.sort_by-2184"><span class="linenos">2184</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Sort</span><span class="p">,</span> +</span><span id="Select.sort_by-2185"><a href="#Select.sort_by-2185"><span class="linenos">2185</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.sort_by-2186"><a href="#Select.sort_by-2186"><span class="linenos">2186</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.sort_by-2187"><a href="#Select.sort_by-2187"><span class="linenos">2187</span></a> <span class="p">)</span> </span></pre></div> @@ -21485,38 +22004,38 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express </div> <a class="headerlink" href="#Select.cluster_by"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2077"><a href="#Select.cluster_by-2077"><span class="linenos">2077</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.cluster_by-2078"><a href="#Select.cluster_by-2078"><span class="linenos">2078</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.cluster_by-2079"><a href="#Select.cluster_by-2079"><span class="linenos">2079</span></a><span class="sd"> Set the CLUSTER BY expression.</span> -</span><span id="Select.cluster_by-2080"><a href="#Select.cluster_by-2080"><span class="linenos">2080</span></a> -</span><span id="Select.cluster_by-2081"><a href="#Select.cluster_by-2081"><span class="linenos">2081</span></a><span class="sd"> Example:</span> -</span><span id="Select.cluster_by-2082"><a href="#Select.cluster_by-2082"><span class="linenos">2082</span></a><span class="sd"> >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql()</span> -</span><span id="Select.cluster_by-2083"><a href="#Select.cluster_by-2083"><span class="linenos">2083</span></a><span class="sd"> 'SELECT x FROM tbl CLUSTER BY x DESC'</span> -</span><span id="Select.cluster_by-2084"><a href="#Select.cluster_by-2084"><span class="linenos">2084</span></a> -</span><span id="Select.cluster_by-2085"><a href="#Select.cluster_by-2085"><span class="linenos">2085</span></a><span class="sd"> Args:</span> -</span><span id="Select.cluster_by-2086"><a href="#Select.cluster_by-2086"><span class="linenos">2086</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.cluster_by-2087"><a href="#Select.cluster_by-2087"><span class="linenos">2087</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> -</span><span id="Select.cluster_by-2088"><a href="#Select.cluster_by-2088"><span class="linenos">2088</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span> -</span><span id="Select.cluster_by-2089"><a href="#Select.cluster_by-2089"><span class="linenos">2089</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.cluster_by-2090"><a href="#Select.cluster_by-2090"><span class="linenos">2090</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> -</span><span id="Select.cluster_by-2091"><a href="#Select.cluster_by-2091"><span class="linenos">2091</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.cluster_by-2092"><a href="#Select.cluster_by-2092"><span class="linenos">2092</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.cluster_by-2093"><a href="#Select.cluster_by-2093"><span class="linenos">2093</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.cluster_by-2094"><a href="#Select.cluster_by-2094"><span class="linenos">2094</span></a> -</span><span id="Select.cluster_by-2095"><a href="#Select.cluster_by-2095"><span class="linenos">2095</span></a><span class="sd"> Returns:</span> -</span><span id="Select.cluster_by-2096"><a href="#Select.cluster_by-2096"><span class="linenos">2096</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.cluster_by-2097"><a href="#Select.cluster_by-2097"><span class="linenos">2097</span></a><span class="sd"> """</span> -</span><span id="Select.cluster_by-2098"><a href="#Select.cluster_by-2098"><span class="linenos">2098</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> -</span><span id="Select.cluster_by-2099"><a href="#Select.cluster_by-2099"><span class="linenos">2099</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.cluster_by-2100"><a href="#Select.cluster_by-2100"><span class="linenos">2100</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.cluster_by-2101"><a href="#Select.cluster_by-2101"><span class="linenos">2101</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"cluster"</span><span class="p">,</span> -</span><span id="Select.cluster_by-2102"><a href="#Select.cluster_by-2102"><span class="linenos">2102</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.cluster_by-2103"><a href="#Select.cluster_by-2103"><span class="linenos">2103</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.cluster_by-2104"><a href="#Select.cluster_by-2104"><span class="linenos">2104</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> -</span><span id="Select.cluster_by-2105"><a href="#Select.cluster_by-2105"><span class="linenos">2105</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span> -</span><span id="Select.cluster_by-2106"><a href="#Select.cluster_by-2106"><span class="linenos">2106</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.cluster_by-2107"><a href="#Select.cluster_by-2107"><span class="linenos">2107</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.cluster_by-2108"><a href="#Select.cluster_by-2108"><span class="linenos">2108</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.cluster_by-2189"><a href="#Select.cluster_by-2189"><span class="linenos">2189</span></a> <span class="k">def</span> <span class="nf">cluster_by</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.cluster_by-2190"><a href="#Select.cluster_by-2190"><span class="linenos">2190</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.cluster_by-2191"><a href="#Select.cluster_by-2191"><span class="linenos">2191</span></a><span class="sd"> Set the CLUSTER BY expression.</span> +</span><span id="Select.cluster_by-2192"><a href="#Select.cluster_by-2192"><span class="linenos">2192</span></a> +</span><span id="Select.cluster_by-2193"><a href="#Select.cluster_by-2193"><span class="linenos">2193</span></a><span class="sd"> Example:</span> +</span><span id="Select.cluster_by-2194"><a href="#Select.cluster_by-2194"><span class="linenos">2194</span></a><span class="sd"> >>> Select().from_("tbl").select("x").cluster_by("x DESC").sql()</span> +</span><span id="Select.cluster_by-2195"><a href="#Select.cluster_by-2195"><span class="linenos">2195</span></a><span class="sd"> 'SELECT x FROM tbl CLUSTER BY x DESC'</span> +</span><span id="Select.cluster_by-2196"><a href="#Select.cluster_by-2196"><span class="linenos">2196</span></a> +</span><span id="Select.cluster_by-2197"><a href="#Select.cluster_by-2197"><span class="linenos">2197</span></a><span class="sd"> Args:</span> +</span><span id="Select.cluster_by-2198"><a href="#Select.cluster_by-2198"><span class="linenos">2198</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.cluster_by-2199"><a href="#Select.cluster_by-2199"><span class="linenos">2199</span></a><span class="sd"> If a `Group` instance is passed, this is used as-is.</span> +</span><span id="Select.cluster_by-2200"><a href="#Select.cluster_by-2200"><span class="linenos">2200</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Cluster`.</span> +</span><span id="Select.cluster_by-2201"><a href="#Select.cluster_by-2201"><span class="linenos">2201</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.cluster_by-2202"><a href="#Select.cluster_by-2202"><span class="linenos">2202</span></a><span class="sd"> Otherwise, this flattens all the `Order` expression into a single expression.</span> +</span><span id="Select.cluster_by-2203"><a href="#Select.cluster_by-2203"><span class="linenos">2203</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.cluster_by-2204"><a href="#Select.cluster_by-2204"><span class="linenos">2204</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.cluster_by-2205"><a href="#Select.cluster_by-2205"><span class="linenos">2205</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.cluster_by-2206"><a href="#Select.cluster_by-2206"><span class="linenos">2206</span></a> +</span><span id="Select.cluster_by-2207"><a href="#Select.cluster_by-2207"><span class="linenos">2207</span></a><span class="sd"> Returns:</span> +</span><span id="Select.cluster_by-2208"><a href="#Select.cluster_by-2208"><span class="linenos">2208</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.cluster_by-2209"><a href="#Select.cluster_by-2209"><span class="linenos">2209</span></a><span class="sd"> """</span> +</span><span id="Select.cluster_by-2210"><a href="#Select.cluster_by-2210"><span class="linenos">2210</span></a> <span class="k">return</span> <span class="n">_apply_child_list_builder</span><span class="p">(</span> +</span><span id="Select.cluster_by-2211"><a href="#Select.cluster_by-2211"><span class="linenos">2211</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.cluster_by-2212"><a href="#Select.cluster_by-2212"><span class="linenos">2212</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.cluster_by-2213"><a href="#Select.cluster_by-2213"><span class="linenos">2213</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"cluster"</span><span class="p">,</span> +</span><span id="Select.cluster_by-2214"><a href="#Select.cluster_by-2214"><span class="linenos">2214</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.cluster_by-2215"><a href="#Select.cluster_by-2215"><span class="linenos">2215</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.cluster_by-2216"><a href="#Select.cluster_by-2216"><span class="linenos">2216</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> +</span><span id="Select.cluster_by-2217"><a href="#Select.cluster_by-2217"><span class="linenos">2217</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Cluster</span><span class="p">,</span> +</span><span id="Select.cluster_by-2218"><a href="#Select.cluster_by-2218"><span class="linenos">2218</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.cluster_by-2219"><a href="#Select.cluster_by-2219"><span class="linenos">2219</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.cluster_by-2220"><a href="#Select.cluster_by-2220"><span class="linenos">2220</span></a> <span class="p">)</span> </span></pre></div> @@ -21565,36 +22084,36 @@ Otherwise, this flattens all the <code><a href="#Order">Order</a></code> express </div> <a class="headerlink" href="#Select.limit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2110"><a href="#Select.limit-2110"><span class="linenos">2110</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.limit-2111"><a href="#Select.limit-2111"><span class="linenos">2111</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.limit-2112"><a href="#Select.limit-2112"><span class="linenos">2112</span></a><span class="sd"> Set the LIMIT expression.</span> -</span><span id="Select.limit-2113"><a href="#Select.limit-2113"><span class="linenos">2113</span></a> -</span><span id="Select.limit-2114"><a href="#Select.limit-2114"><span class="linenos">2114</span></a><span class="sd"> Example:</span> -</span><span id="Select.limit-2115"><a href="#Select.limit-2115"><span class="linenos">2115</span></a><span class="sd"> >>> Select().from_("tbl").select("x").limit(10).sql()</span> -</span><span id="Select.limit-2116"><a href="#Select.limit-2116"><span class="linenos">2116</span></a><span class="sd"> 'SELECT x FROM tbl LIMIT 10'</span> -</span><span id="Select.limit-2117"><a href="#Select.limit-2117"><span class="linenos">2117</span></a> -</span><span id="Select.limit-2118"><a href="#Select.limit-2118"><span class="linenos">2118</span></a><span class="sd"> Args:</span> -</span><span id="Select.limit-2119"><a href="#Select.limit-2119"><span class="linenos">2119</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="Select.limit-2120"><a href="#Select.limit-2120"><span class="linenos">2120</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="Select.limit-2121"><a href="#Select.limit-2121"><span class="linenos">2121</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> -</span><span id="Select.limit-2122"><a href="#Select.limit-2122"><span class="linenos">2122</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> -</span><span id="Select.limit-2123"><a href="#Select.limit-2123"><span class="linenos">2123</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.limit-2124"><a href="#Select.limit-2124"><span class="linenos">2124</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.limit-2125"><a href="#Select.limit-2125"><span class="linenos">2125</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.limit-2126"><a href="#Select.limit-2126"><span class="linenos">2126</span></a> -</span><span id="Select.limit-2127"><a href="#Select.limit-2127"><span class="linenos">2127</span></a><span class="sd"> Returns:</span> -</span><span id="Select.limit-2128"><a href="#Select.limit-2128"><span class="linenos">2128</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.limit-2129"><a href="#Select.limit-2129"><span class="linenos">2129</span></a><span class="sd"> """</span> -</span><span id="Select.limit-2130"><a href="#Select.limit-2130"><span class="linenos">2130</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> -</span><span id="Select.limit-2131"><a href="#Select.limit-2131"><span class="linenos">2131</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="Select.limit-2132"><a href="#Select.limit-2132"><span class="linenos">2132</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.limit-2133"><a href="#Select.limit-2133"><span class="linenos">2133</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"limit"</span><span class="p">,</span> -</span><span id="Select.limit-2134"><a href="#Select.limit-2134"><span class="linenos">2134</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span> -</span><span id="Select.limit-2135"><a href="#Select.limit-2135"><span class="linenos">2135</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LIMIT"</span><span class="p">,</span> -</span><span id="Select.limit-2136"><a href="#Select.limit-2136"><span class="linenos">2136</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.limit-2137"><a href="#Select.limit-2137"><span class="linenos">2137</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.limit-2138"><a href="#Select.limit-2138"><span class="linenos">2138</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.limit-2139"><a href="#Select.limit-2139"><span class="linenos">2139</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.limit-2222"><a href="#Select.limit-2222"><span class="linenos">2222</span></a> <span class="k">def</span> <span class="nf">limit</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.limit-2223"><a href="#Select.limit-2223"><span class="linenos">2223</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.limit-2224"><a href="#Select.limit-2224"><span class="linenos">2224</span></a><span class="sd"> Set the LIMIT expression.</span> +</span><span id="Select.limit-2225"><a href="#Select.limit-2225"><span class="linenos">2225</span></a> +</span><span id="Select.limit-2226"><a href="#Select.limit-2226"><span class="linenos">2226</span></a><span class="sd"> Example:</span> +</span><span id="Select.limit-2227"><a href="#Select.limit-2227"><span class="linenos">2227</span></a><span class="sd"> >>> Select().from_("tbl").select("x").limit(10).sql()</span> +</span><span id="Select.limit-2228"><a href="#Select.limit-2228"><span class="linenos">2228</span></a><span class="sd"> 'SELECT x FROM tbl LIMIT 10'</span> +</span><span id="Select.limit-2229"><a href="#Select.limit-2229"><span class="linenos">2229</span></a> +</span><span id="Select.limit-2230"><a href="#Select.limit-2230"><span class="linenos">2230</span></a><span class="sd"> Args:</span> +</span><span id="Select.limit-2231"><a href="#Select.limit-2231"><span class="linenos">2231</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="Select.limit-2232"><a href="#Select.limit-2232"><span class="linenos">2232</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="Select.limit-2233"><a href="#Select.limit-2233"><span class="linenos">2233</span></a><span class="sd"> If a `Limit` instance is passed, this is used as-is.</span> +</span><span id="Select.limit-2234"><a href="#Select.limit-2234"><span class="linenos">2234</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Limit`.</span> +</span><span id="Select.limit-2235"><a href="#Select.limit-2235"><span class="linenos">2235</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.limit-2236"><a href="#Select.limit-2236"><span class="linenos">2236</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.limit-2237"><a href="#Select.limit-2237"><span class="linenos">2237</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.limit-2238"><a href="#Select.limit-2238"><span class="linenos">2238</span></a> +</span><span id="Select.limit-2239"><a href="#Select.limit-2239"><span class="linenos">2239</span></a><span class="sd"> Returns:</span> +</span><span id="Select.limit-2240"><a href="#Select.limit-2240"><span class="linenos">2240</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.limit-2241"><a href="#Select.limit-2241"><span class="linenos">2241</span></a><span class="sd"> """</span> +</span><span id="Select.limit-2242"><a href="#Select.limit-2242"><span class="linenos">2242</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Select.limit-2243"><a href="#Select.limit-2243"><span class="linenos">2243</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Select.limit-2244"><a href="#Select.limit-2244"><span class="linenos">2244</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.limit-2245"><a href="#Select.limit-2245"><span class="linenos">2245</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"limit"</span><span class="p">,</span> +</span><span id="Select.limit-2246"><a href="#Select.limit-2246"><span class="linenos">2246</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Limit</span><span class="p">,</span> +</span><span id="Select.limit-2247"><a href="#Select.limit-2247"><span class="linenos">2247</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LIMIT"</span><span class="p">,</span> +</span><span id="Select.limit-2248"><a href="#Select.limit-2248"><span class="linenos">2248</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.limit-2249"><a href="#Select.limit-2249"><span class="linenos">2249</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.limit-2250"><a href="#Select.limit-2250"><span class="linenos">2250</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.limit-2251"><a href="#Select.limit-2251"><span class="linenos">2251</span></a> <span class="p">)</span> </span></pre></div> @@ -21642,36 +22161,36 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Select.offset"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2141"><a href="#Select.offset-2141"><span class="linenos">2141</span></a> <span class="k">def</span> <span class="nf">offset</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.offset-2142"><a href="#Select.offset-2142"><span class="linenos">2142</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.offset-2143"><a href="#Select.offset-2143"><span class="linenos">2143</span></a><span class="sd"> Set the OFFSET expression.</span> -</span><span id="Select.offset-2144"><a href="#Select.offset-2144"><span class="linenos">2144</span></a> -</span><span id="Select.offset-2145"><a href="#Select.offset-2145"><span class="linenos">2145</span></a><span class="sd"> Example:</span> -</span><span id="Select.offset-2146"><a href="#Select.offset-2146"><span class="linenos">2146</span></a><span class="sd"> >>> Select().from_("tbl").select("x").offset(10).sql()</span> -</span><span id="Select.offset-2147"><a href="#Select.offset-2147"><span class="linenos">2147</span></a><span class="sd"> 'SELECT x FROM tbl OFFSET 10'</span> -</span><span id="Select.offset-2148"><a href="#Select.offset-2148"><span class="linenos">2148</span></a> -</span><span id="Select.offset-2149"><a href="#Select.offset-2149"><span class="linenos">2149</span></a><span class="sd"> Args:</span> -</span><span id="Select.offset-2150"><a href="#Select.offset-2150"><span class="linenos">2150</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> -</span><span id="Select.offset-2151"><a href="#Select.offset-2151"><span class="linenos">2151</span></a><span class="sd"> This can also be an integer.</span> -</span><span id="Select.offset-2152"><a href="#Select.offset-2152"><span class="linenos">2152</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span> -</span><span id="Select.offset-2153"><a href="#Select.offset-2153"><span class="linenos">2153</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span> -</span><span id="Select.offset-2154"><a href="#Select.offset-2154"><span class="linenos">2154</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="Select.offset-2155"><a href="#Select.offset-2155"><span class="linenos">2155</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.offset-2156"><a href="#Select.offset-2156"><span class="linenos">2156</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.offset-2157"><a href="#Select.offset-2157"><span class="linenos">2157</span></a> -</span><span id="Select.offset-2158"><a href="#Select.offset-2158"><span class="linenos">2158</span></a><span class="sd"> Returns:</span> -</span><span id="Select.offset-2159"><a href="#Select.offset-2159"><span class="linenos">2159</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.offset-2160"><a href="#Select.offset-2160"><span class="linenos">2160</span></a><span class="sd"> """</span> -</span><span id="Select.offset-2161"><a href="#Select.offset-2161"><span class="linenos">2161</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> -</span><span id="Select.offset-2162"><a href="#Select.offset-2162"><span class="linenos">2162</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="Select.offset-2163"><a href="#Select.offset-2163"><span class="linenos">2163</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.offset-2164"><a href="#Select.offset-2164"><span class="linenos">2164</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"offset"</span><span class="p">,</span> -</span><span id="Select.offset-2165"><a href="#Select.offset-2165"><span class="linenos">2165</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span> -</span><span id="Select.offset-2166"><a href="#Select.offset-2166"><span class="linenos">2166</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"OFFSET"</span><span class="p">,</span> -</span><span id="Select.offset-2167"><a href="#Select.offset-2167"><span class="linenos">2167</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.offset-2168"><a href="#Select.offset-2168"><span class="linenos">2168</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.offset-2169"><a href="#Select.offset-2169"><span class="linenos">2169</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.offset-2170"><a href="#Select.offset-2170"><span class="linenos">2170</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.offset-2253"><a href="#Select.offset-2253"><span class="linenos">2253</span></a> <span class="k">def</span> <span class="nf">offset</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">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.offset-2254"><a href="#Select.offset-2254"><span class="linenos">2254</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.offset-2255"><a href="#Select.offset-2255"><span class="linenos">2255</span></a><span class="sd"> Set the OFFSET expression.</span> +</span><span id="Select.offset-2256"><a href="#Select.offset-2256"><span class="linenos">2256</span></a> +</span><span id="Select.offset-2257"><a href="#Select.offset-2257"><span class="linenos">2257</span></a><span class="sd"> Example:</span> +</span><span id="Select.offset-2258"><a href="#Select.offset-2258"><span class="linenos">2258</span></a><span class="sd"> >>> Select().from_("tbl").select("x").offset(10).sql()</span> +</span><span id="Select.offset-2259"><a href="#Select.offset-2259"><span class="linenos">2259</span></a><span class="sd"> 'SELECT x FROM tbl OFFSET 10'</span> +</span><span id="Select.offset-2260"><a href="#Select.offset-2260"><span class="linenos">2260</span></a> +</span><span id="Select.offset-2261"><a href="#Select.offset-2261"><span class="linenos">2261</span></a><span class="sd"> Args:</span> +</span><span id="Select.offset-2262"><a href="#Select.offset-2262"><span class="linenos">2262</span></a><span class="sd"> expression (str | int | Expression): the SQL code string to parse.</span> +</span><span id="Select.offset-2263"><a href="#Select.offset-2263"><span class="linenos">2263</span></a><span class="sd"> This can also be an integer.</span> +</span><span id="Select.offset-2264"><a href="#Select.offset-2264"><span class="linenos">2264</span></a><span class="sd"> If a `Offset` instance is passed, this is used as-is.</span> +</span><span id="Select.offset-2265"><a href="#Select.offset-2265"><span class="linenos">2265</span></a><span class="sd"> If another `Expression` instance is passed, it will be wrapped in a `Offset`.</span> +</span><span id="Select.offset-2266"><a href="#Select.offset-2266"><span class="linenos">2266</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="Select.offset-2267"><a href="#Select.offset-2267"><span class="linenos">2267</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.offset-2268"><a href="#Select.offset-2268"><span class="linenos">2268</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.offset-2269"><a href="#Select.offset-2269"><span class="linenos">2269</span></a> +</span><span id="Select.offset-2270"><a href="#Select.offset-2270"><span class="linenos">2270</span></a><span class="sd"> Returns:</span> +</span><span id="Select.offset-2271"><a href="#Select.offset-2271"><span class="linenos">2271</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.offset-2272"><a href="#Select.offset-2272"><span class="linenos">2272</span></a><span class="sd"> """</span> +</span><span id="Select.offset-2273"><a href="#Select.offset-2273"><span class="linenos">2273</span></a> <span class="k">return</span> <span class="n">_apply_builder</span><span class="p">(</span> +</span><span id="Select.offset-2274"><a href="#Select.offset-2274"><span class="linenos">2274</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Select.offset-2275"><a href="#Select.offset-2275"><span class="linenos">2275</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.offset-2276"><a href="#Select.offset-2276"><span class="linenos">2276</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"offset"</span><span class="p">,</span> +</span><span id="Select.offset-2277"><a href="#Select.offset-2277"><span class="linenos">2277</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Offset</span><span class="p">,</span> +</span><span id="Select.offset-2278"><a href="#Select.offset-2278"><span class="linenos">2278</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"OFFSET"</span><span class="p">,</span> +</span><span id="Select.offset-2279"><a href="#Select.offset-2279"><span class="linenos">2279</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.offset-2280"><a href="#Select.offset-2280"><span class="linenos">2280</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.offset-2281"><a href="#Select.offset-2281"><span class="linenos">2281</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.offset-2282"><a href="#Select.offset-2282"><span class="linenos">2282</span></a> <span class="p">)</span> </span></pre></div> @@ -21713,48 +22232,48 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, <div class="attr function"> <span class="def">def</span> - <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span> + <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="bp">self</span>,</span><span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span> <label class="view-source-button" for="Select.select-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#Select.select"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2172"><a href="#Select.select-2172"><span class="linenos">2172</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> -</span><span id="Select.select-2173"><a href="#Select.select-2173"><span class="linenos">2173</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Select.select-2174"><a href="#Select.select-2174"><span class="linenos">2174</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="Select.select-2175"><a href="#Select.select-2175"><span class="linenos">2175</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Select.select-2176"><a href="#Select.select-2176"><span class="linenos">2176</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Select.select-2177"><a href="#Select.select-2177"><span class="linenos">2177</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Select.select-2178"><a href="#Select.select-2178"><span class="linenos">2178</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.select-2179"><a href="#Select.select-2179"><span class="linenos">2179</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.select-2180"><a href="#Select.select-2180"><span class="linenos">2180</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.select-2181"><a href="#Select.select-2181"><span class="linenos">2181</span></a><span class="sd"> Append to or set the SELECT expressions.</span> -</span><span id="Select.select-2182"><a href="#Select.select-2182"><span class="linenos">2182</span></a> -</span><span id="Select.select-2183"><a href="#Select.select-2183"><span class="linenos">2183</span></a><span class="sd"> Example:</span> -</span><span id="Select.select-2184"><a href="#Select.select-2184"><span class="linenos">2184</span></a><span class="sd"> >>> Select().select("x", "y").sql()</span> -</span><span id="Select.select-2185"><a href="#Select.select-2185"><span class="linenos">2185</span></a><span class="sd"> 'SELECT x, y'</span> -</span><span id="Select.select-2186"><a href="#Select.select-2186"><span class="linenos">2186</span></a> -</span><span id="Select.select-2187"><a href="#Select.select-2187"><span class="linenos">2187</span></a><span class="sd"> Args:</span> -</span><span id="Select.select-2188"><a href="#Select.select-2188"><span class="linenos">2188</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> -</span><span id="Select.select-2189"><a href="#Select.select-2189"><span class="linenos">2189</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.select-2190"><a href="#Select.select-2190"><span class="linenos">2190</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> -</span><span id="Select.select-2191"><a href="#Select.select-2191"><span class="linenos">2191</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Select.select-2192"><a href="#Select.select-2192"><span class="linenos">2192</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> -</span><span id="Select.select-2193"><a href="#Select.select-2193"><span class="linenos">2193</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="Select.select-2194"><a href="#Select.select-2194"><span class="linenos">2194</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> -</span><span id="Select.select-2195"><a href="#Select.select-2195"><span class="linenos">2195</span></a> -</span><span id="Select.select-2196"><a href="#Select.select-2196"><span class="linenos">2196</span></a><span class="sd"> Returns:</span> -</span><span id="Select.select-2197"><a href="#Select.select-2197"><span class="linenos">2197</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.select-2198"><a href="#Select.select-2198"><span class="linenos">2198</span></a><span class="sd"> """</span> -</span><span id="Select.select-2199"><a href="#Select.select-2199"><span class="linenos">2199</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select.select-2200"><a href="#Select.select-2200"><span class="linenos">2200</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.select-2201"><a href="#Select.select-2201"><span class="linenos">2201</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.select-2202"><a href="#Select.select-2202"><span class="linenos">2202</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="Select.select-2203"><a href="#Select.select-2203"><span class="linenos">2203</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.select-2204"><a href="#Select.select-2204"><span class="linenos">2204</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.select-2205"><a href="#Select.select-2205"><span class="linenos">2205</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.select-2206"><a href="#Select.select-2206"><span class="linenos">2206</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.select-2207"><a href="#Select.select-2207"><span class="linenos">2207</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.select-2284"><a href="#Select.select-2284"><span class="linenos">2284</span></a> <span class="k">def</span> <span class="nf">select</span><span class="p">(</span> +</span><span id="Select.select-2285"><a href="#Select.select-2285"><span class="linenos">2285</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Select.select-2286"><a href="#Select.select-2286"><span class="linenos">2286</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="Select.select-2287"><a href="#Select.select-2287"><span class="linenos">2287</span></a> <span class="n">append</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Select.select-2288"><a href="#Select.select-2288"><span class="linenos">2288</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Select.select-2289"><a href="#Select.select-2289"><span class="linenos">2289</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Select.select-2290"><a href="#Select.select-2290"><span class="linenos">2290</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.select-2291"><a href="#Select.select-2291"><span class="linenos">2291</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.select-2292"><a href="#Select.select-2292"><span class="linenos">2292</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.select-2293"><a href="#Select.select-2293"><span class="linenos">2293</span></a><span class="sd"> Append to or set the SELECT expressions.</span> +</span><span id="Select.select-2294"><a href="#Select.select-2294"><span class="linenos">2294</span></a> +</span><span id="Select.select-2295"><a href="#Select.select-2295"><span class="linenos">2295</span></a><span class="sd"> Example:</span> +</span><span id="Select.select-2296"><a href="#Select.select-2296"><span class="linenos">2296</span></a><span class="sd"> >>> Select().select("x", "y").sql()</span> +</span><span id="Select.select-2297"><a href="#Select.select-2297"><span class="linenos">2297</span></a><span class="sd"> 'SELECT x, y'</span> +</span><span id="Select.select-2298"><a href="#Select.select-2298"><span class="linenos">2298</span></a> +</span><span id="Select.select-2299"><a href="#Select.select-2299"><span class="linenos">2299</span></a><span class="sd"> Args:</span> +</span><span id="Select.select-2300"><a href="#Select.select-2300"><span class="linenos">2300</span></a><span class="sd"> *expressions: the SQL code strings to parse.</span> +</span><span id="Select.select-2301"><a href="#Select.select-2301"><span class="linenos">2301</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.select-2302"><a href="#Select.select-2302"><span class="linenos">2302</span></a><span class="sd"> append: if `True`, add to any existing expressions.</span> +</span><span id="Select.select-2303"><a href="#Select.select-2303"><span class="linenos">2303</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Select.select-2304"><a href="#Select.select-2304"><span class="linenos">2304</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="Select.select-2305"><a href="#Select.select-2305"><span class="linenos">2305</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Select.select-2306"><a href="#Select.select-2306"><span class="linenos">2306</span></a><span class="sd"> opts: other options to use to parse the input expressions.</span> +</span><span id="Select.select-2307"><a href="#Select.select-2307"><span class="linenos">2307</span></a> +</span><span id="Select.select-2308"><a href="#Select.select-2308"><span class="linenos">2308</span></a><span class="sd"> Returns:</span> +</span><span id="Select.select-2309"><a href="#Select.select-2309"><span class="linenos">2309</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.select-2310"><a href="#Select.select-2310"><span class="linenos">2310</span></a><span class="sd"> """</span> +</span><span id="Select.select-2311"><a href="#Select.select-2311"><span class="linenos">2311</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select.select-2312"><a href="#Select.select-2312"><span class="linenos">2312</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.select-2313"><a href="#Select.select-2313"><span class="linenos">2313</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.select-2314"><a href="#Select.select-2314"><span class="linenos">2314</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="Select.select-2315"><a href="#Select.select-2315"><span class="linenos">2315</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.select-2316"><a href="#Select.select-2316"><span class="linenos">2316</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.select-2317"><a href="#Select.select-2317"><span class="linenos">2317</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.select-2318"><a href="#Select.select-2318"><span class="linenos">2318</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.select-2319"><a href="#Select.select-2319"><span class="linenos">2319</span></a> <span class="p">)</span> </span></pre></div> @@ -21802,37 +22321,37 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Select.lateral"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-2209"><a href="#Select.lateral-2209"><span class="linenos">2209</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.lateral-2210"><a href="#Select.lateral-2210"><span class="linenos">2210</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.lateral-2211"><a href="#Select.lateral-2211"><span class="linenos">2211</span></a><span class="sd"> Append to or set the LATERAL expressions.</span> -</span><span id="Select.lateral-2212"><a href="#Select.lateral-2212"><span class="linenos">2212</span></a> -</span><span id="Select.lateral-2213"><a href="#Select.lateral-2213"><span class="linenos">2213</span></a><span class="sd"> Example:</span> -</span><span id="Select.lateral-2214"><a href="#Select.lateral-2214"><span class="linenos">2214</span></a><span class="sd"> >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()</span> -</span><span id="Select.lateral-2215"><a href="#Select.lateral-2215"><span class="linenos">2215</span></a><span class="sd"> 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span> -</span><span id="Select.lateral-2216"><a href="#Select.lateral-2216"><span class="linenos">2216</span></a> -</span><span id="Select.lateral-2217"><a href="#Select.lateral-2217"><span class="linenos">2217</span></a><span class="sd"> Args:</span> -</span><span id="Select.lateral-2218"><a href="#Select.lateral-2218"><span class="linenos">2218</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.lateral-2219"><a href="#Select.lateral-2219"><span class="linenos">2219</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.lateral-2220"><a href="#Select.lateral-2220"><span class="linenos">2220</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.lateral-2221"><a href="#Select.lateral-2221"><span class="linenos">2221</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Select.lateral-2222"><a href="#Select.lateral-2222"><span class="linenos">2222</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select.lateral-2223"><a href="#Select.lateral-2223"><span class="linenos">2223</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.lateral-2224"><a href="#Select.lateral-2224"><span class="linenos">2224</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.lateral-2225"><a href="#Select.lateral-2225"><span class="linenos">2225</span></a> -</span><span id="Select.lateral-2226"><a href="#Select.lateral-2226"><span class="linenos">2226</span></a><span class="sd"> Returns:</span> -</span><span id="Select.lateral-2227"><a href="#Select.lateral-2227"><span class="linenos">2227</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.lateral-2228"><a href="#Select.lateral-2228"><span class="linenos">2228</span></a><span class="sd"> """</span> -</span><span id="Select.lateral-2229"><a href="#Select.lateral-2229"><span class="linenos">2229</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select.lateral-2230"><a href="#Select.lateral-2230"><span class="linenos">2230</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.lateral-2231"><a href="#Select.lateral-2231"><span class="linenos">2231</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.lateral-2232"><a href="#Select.lateral-2232"><span class="linenos">2232</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"laterals"</span><span class="p">,</span> -</span><span id="Select.lateral-2233"><a href="#Select.lateral-2233"><span class="linenos">2233</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.lateral-2234"><a href="#Select.lateral-2234"><span class="linenos">2234</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span> -</span><span id="Select.lateral-2235"><a href="#Select.lateral-2235"><span class="linenos">2235</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LATERAL VIEW"</span><span class="p">,</span> -</span><span id="Select.lateral-2236"><a href="#Select.lateral-2236"><span class="linenos">2236</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.lateral-2237"><a href="#Select.lateral-2237"><span class="linenos">2237</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.lateral-2238"><a href="#Select.lateral-2238"><span class="linenos">2238</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.lateral-2239"><a href="#Select.lateral-2239"><span class="linenos">2239</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lateral-2321"><a href="#Select.lateral-2321"><span class="linenos">2321</span></a> <span class="k">def</span> <span class="nf">lateral</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.lateral-2322"><a href="#Select.lateral-2322"><span class="linenos">2322</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.lateral-2323"><a href="#Select.lateral-2323"><span class="linenos">2323</span></a><span class="sd"> Append to or set the LATERAL expressions.</span> +</span><span id="Select.lateral-2324"><a href="#Select.lateral-2324"><span class="linenos">2324</span></a> +</span><span id="Select.lateral-2325"><a href="#Select.lateral-2325"><span class="linenos">2325</span></a><span class="sd"> Example:</span> +</span><span id="Select.lateral-2326"><a href="#Select.lateral-2326"><span class="linenos">2326</span></a><span class="sd"> >>> Select().select("x").lateral("OUTER explode(y) tbl2 AS z").from_("tbl").sql()</span> +</span><span id="Select.lateral-2327"><a href="#Select.lateral-2327"><span class="linenos">2327</span></a><span class="sd"> 'SELECT x FROM tbl LATERAL VIEW OUTER EXPLODE(y) tbl2 AS z'</span> +</span><span id="Select.lateral-2328"><a href="#Select.lateral-2328"><span class="linenos">2328</span></a> +</span><span id="Select.lateral-2329"><a href="#Select.lateral-2329"><span class="linenos">2329</span></a><span class="sd"> Args:</span> +</span><span id="Select.lateral-2330"><a href="#Select.lateral-2330"><span class="linenos">2330</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.lateral-2331"><a href="#Select.lateral-2331"><span class="linenos">2331</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.lateral-2332"><a href="#Select.lateral-2332"><span class="linenos">2332</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.lateral-2333"><a href="#Select.lateral-2333"><span class="linenos">2333</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Select.lateral-2334"><a href="#Select.lateral-2334"><span class="linenos">2334</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select.lateral-2335"><a href="#Select.lateral-2335"><span class="linenos">2335</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.lateral-2336"><a href="#Select.lateral-2336"><span class="linenos">2336</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.lateral-2337"><a href="#Select.lateral-2337"><span class="linenos">2337</span></a> +</span><span id="Select.lateral-2338"><a href="#Select.lateral-2338"><span class="linenos">2338</span></a><span class="sd"> Returns:</span> +</span><span id="Select.lateral-2339"><a href="#Select.lateral-2339"><span class="linenos">2339</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.lateral-2340"><a href="#Select.lateral-2340"><span class="linenos">2340</span></a><span class="sd"> """</span> +</span><span id="Select.lateral-2341"><a href="#Select.lateral-2341"><span class="linenos">2341</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select.lateral-2342"><a href="#Select.lateral-2342"><span class="linenos">2342</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.lateral-2343"><a href="#Select.lateral-2343"><span class="linenos">2343</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.lateral-2344"><a href="#Select.lateral-2344"><span class="linenos">2344</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"laterals"</span><span class="p">,</span> +</span><span id="Select.lateral-2345"><a href="#Select.lateral-2345"><span class="linenos">2345</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.lateral-2346"><a href="#Select.lateral-2346"><span class="linenos">2346</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Lateral</span><span class="p">,</span> +</span><span id="Select.lateral-2347"><a href="#Select.lateral-2347"><span class="linenos">2347</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">"LATERAL VIEW"</span><span class="p">,</span> +</span><span id="Select.lateral-2348"><a href="#Select.lateral-2348"><span class="linenos">2348</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.lateral-2349"><a href="#Select.lateral-2349"><span class="linenos">2349</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.lateral-2350"><a href="#Select.lateral-2350"><span class="linenos">2350</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.lateral-2351"><a href="#Select.lateral-2351"><span class="linenos">2351</span></a> <span class="p">)</span> </span></pre></div> @@ -21880,100 +22399,100 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Select.join"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-2241"><a href="#Select.join-2241"><span class="linenos">2241</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span> -</span><span id="Select.join-2242"><a href="#Select.join-2242"><span class="linenos">2242</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Select.join-2243"><a href="#Select.join-2243"><span class="linenos">2243</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Select.join-2244"><a href="#Select.join-2244"><span class="linenos">2244</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select.join-2245"><a href="#Select.join-2245"><span class="linenos">2245</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select.join-2246"><a href="#Select.join-2246"><span class="linenos">2246</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Select.join-2247"><a href="#Select.join-2247"><span class="linenos">2247</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select.join-2248"><a href="#Select.join-2248"><span class="linenos">2248</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select.join-2249"><a href="#Select.join-2249"><span class="linenos">2249</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Select.join-2250"><a href="#Select.join-2250"><span class="linenos">2250</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Select.join-2251"><a href="#Select.join-2251"><span class="linenos">2251</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.join-2252"><a href="#Select.join-2252"><span class="linenos">2252</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.join-2253"><a href="#Select.join-2253"><span class="linenos">2253</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.join-2254"><a href="#Select.join-2254"><span class="linenos">2254</span></a><span class="sd"> Append to or set the JOIN expressions.</span> -</span><span id="Select.join-2255"><a href="#Select.join-2255"><span class="linenos">2255</span></a> -</span><span id="Select.join-2256"><a href="#Select.join-2256"><span class="linenos">2256</span></a><span class="sd"> Example:</span> -</span><span id="Select.join-2257"><a href="#Select.join-2257"><span class="linenos">2257</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()</span> -</span><span id="Select.join-2258"><a href="#Select.join-2258"><span class="linenos">2258</span></a><span class="sd"> 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span> -</span><span id="Select.join-2259"><a href="#Select.join-2259"><span class="linenos">2259</span></a> -</span><span id="Select.join-2260"><a href="#Select.join-2260"><span class="linenos">2260</span></a><span class="sd"> >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()</span> -</span><span id="Select.join-2261"><a href="#Select.join-2261"><span class="linenos">2261</span></a><span class="sd"> 'SELECT 1 FROM a JOIN b USING (x, y, z)'</span> -</span><span id="Select.join-2262"><a href="#Select.join-2262"><span class="linenos">2262</span></a> -</span><span id="Select.join-2263"><a href="#Select.join-2263"><span class="linenos">2263</span></a><span class="sd"> Use `join_type` to change the type of join:</span> -</span><span id="Select.join-2264"><a href="#Select.join-2264"><span class="linenos">2264</span></a> -</span><span id="Select.join-2265"><a href="#Select.join-2265"><span class="linenos">2265</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()</span> -</span><span id="Select.join-2266"><a href="#Select.join-2266"><span class="linenos">2266</span></a><span class="sd"> 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span> -</span><span id="Select.join-2267"><a href="#Select.join-2267"><span class="linenos">2267</span></a> -</span><span id="Select.join-2268"><a href="#Select.join-2268"><span class="linenos">2268</span></a><span class="sd"> Args:</span> -</span><span id="Select.join-2269"><a href="#Select.join-2269"><span class="linenos">2269</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span> -</span><span id="Select.join-2270"><a href="#Select.join-2270"><span class="linenos">2270</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.join-2271"><a href="#Select.join-2271"><span class="linenos">2271</span></a><span class="sd"> on (str | Expression): optionally specify the join "on" criteria as a SQL string.</span> -</span><span id="Select.join-2272"><a href="#Select.join-2272"><span class="linenos">2272</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.join-2273"><a href="#Select.join-2273"><span class="linenos">2273</span></a><span class="sd"> using (str | Expression): optionally specify the join "using" criteria as a SQL string.</span> -</span><span id="Select.join-2274"><a href="#Select.join-2274"><span class="linenos">2274</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.join-2275"><a href="#Select.join-2275"><span class="linenos">2275</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> -</span><span id="Select.join-2276"><a href="#Select.join-2276"><span class="linenos">2276</span></a><span class="sd"> Otherwise, this resets the expressions.</span> -</span><span id="Select.join-2277"><a href="#Select.join-2277"><span class="linenos">2277</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span> -</span><span id="Select.join-2278"><a href="#Select.join-2278"><span class="linenos">2278</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select.join-2279"><a href="#Select.join-2279"><span class="linenos">2279</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.join-2280"><a href="#Select.join-2280"><span class="linenos">2280</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.join-2281"><a href="#Select.join-2281"><span class="linenos">2281</span></a> -</span><span id="Select.join-2282"><a href="#Select.join-2282"><span class="linenos">2282</span></a><span class="sd"> Returns:</span> -</span><span id="Select.join-2283"><a href="#Select.join-2283"><span class="linenos">2283</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.join-2284"><a href="#Select.join-2284"><span class="linenos">2284</span></a><span class="sd"> """</span> -</span><span id="Select.join-2285"><a href="#Select.join-2285"><span class="linenos">2285</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"dialect"</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span> -</span><span id="Select.join-2286"><a href="#Select.join-2286"><span class="linenos">2286</span></a> -</span><span id="Select.join-2287"><a href="#Select.join-2287"><span class="linenos">2287</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Select.join-2288"><a href="#Select.join-2288"><span class="linenos">2288</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"JOIN"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> -</span><span id="Select.join-2289"><a href="#Select.join-2289"><span class="linenos">2289</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> -</span><span id="Select.join-2290"><a href="#Select.join-2290"><span class="linenos">2290</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> -</span><span id="Select.join-2291"><a href="#Select.join-2291"><span class="linenos">2291</span></a> -</span><span id="Select.join-2292"><a href="#Select.join-2292"><span class="linenos">2292</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Select.join-2293"><a href="#Select.join-2293"><span class="linenos">2293</span></a> -</span><span id="Select.join-2294"><a href="#Select.join-2294"><span class="linenos">2294</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span> -</span><span id="Select.join-2295"><a href="#Select.join-2295"><span class="linenos">2295</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span> -</span><span id="Select.join-2296"><a href="#Select.join-2296"><span class="linenos">2296</span></a> -</span><span id="Select.join-2297"><a href="#Select.join-2297"><span class="linenos">2297</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span> -</span><span id="Select.join-2298"><a href="#Select.join-2298"><span class="linenos">2298</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="Select.join-2299"><a href="#Select.join-2299"><span class="linenos">2299</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="Select.join-2300"><a href="#Select.join-2300"><span class="linenos">2300</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> -</span><span id="Select.join-2301"><a href="#Select.join-2301"><span class="linenos">2301</span></a> -</span><span id="Select.join-2302"><a href="#Select.join-2302"><span class="linenos">2302</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">"JOIN_TYPE"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Select.join-2303"><a href="#Select.join-2303"><span class="linenos">2303</span></a> -</span><span id="Select.join-2304"><a href="#Select.join-2304"><span class="linenos">2304</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> -</span><span id="Select.join-2305"><a href="#Select.join-2305"><span class="linenos">2305</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="Select.join-2306"><a href="#Select.join-2306"><span class="linenos">2306</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> -</span><span id="Select.join-2307"><a href="#Select.join-2307"><span class="linenos">2307</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"side"</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Select.join-2308"><a href="#Select.join-2308"><span class="linenos">2308</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Select.join-2309"><a href="#Select.join-2309"><span class="linenos">2309</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Select.join-2310"><a href="#Select.join-2310"><span class="linenos">2310</span></a> -</span><span id="Select.join-2311"><a href="#Select.join-2311"><span class="linenos">2311</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span> -</span><span id="Select.join-2312"><a href="#Select.join-2312"><span class="linenos">2312</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="Select.join-2313"><a href="#Select.join-2313"><span class="linenos">2313</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span> -</span><span id="Select.join-2314"><a href="#Select.join-2314"><span class="linenos">2314</span></a> -</span><span id="Select.join-2315"><a href="#Select.join-2315"><span class="linenos">2315</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> -</span><span id="Select.join-2316"><a href="#Select.join-2316"><span class="linenos">2316</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select.join-2317"><a href="#Select.join-2317"><span class="linenos">2317</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span> -</span><span id="Select.join-2318"><a href="#Select.join-2318"><span class="linenos">2318</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span> -</span><span id="Select.join-2319"><a href="#Select.join-2319"><span class="linenos">2319</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> -</span><span id="Select.join-2320"><a href="#Select.join-2320"><span class="linenos">2320</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.join-2321"><a href="#Select.join-2321"><span class="linenos">2321</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.join-2322"><a href="#Select.join-2322"><span class="linenos">2322</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.join-2323"><a href="#Select.join-2323"><span class="linenos">2323</span></a> <span class="p">)</span> -</span><span id="Select.join-2324"><a href="#Select.join-2324"><span class="linenos">2324</span></a> -</span><span id="Select.join-2325"><a href="#Select.join-2325"><span class="linenos">2325</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span> -</span><span id="Select.join-2326"><a href="#Select.join-2326"><span class="linenos">2326</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="Select.join-2327"><a href="#Select.join-2327"><span class="linenos">2327</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select.join-2328"><a href="#Select.join-2328"><span class="linenos">2328</span></a> <span class="n">join</span><span class="p">,</span> -</span><span id="Select.join-2329"><a href="#Select.join-2329"><span class="linenos">2329</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.join-2330"><a href="#Select.join-2330"><span class="linenos">2330</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"joins"</span><span class="p">,</span> -</span><span id="Select.join-2331"><a href="#Select.join-2331"><span class="linenos">2331</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.join-2332"><a href="#Select.join-2332"><span class="linenos">2332</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.join-2333"><a href="#Select.join-2333"><span class="linenos">2333</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.join-2334"><a href="#Select.join-2334"><span class="linenos">2334</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.join-2353"><a href="#Select.join-2353"><span class="linenos">2353</span></a> <span class="k">def</span> <span class="nf">join</span><span class="p">(</span> +</span><span id="Select.join-2354"><a href="#Select.join-2354"><span class="linenos">2354</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Select.join-2355"><a href="#Select.join-2355"><span class="linenos">2355</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Select.join-2356"><a href="#Select.join-2356"><span class="linenos">2356</span></a> <span class="n">on</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select.join-2357"><a href="#Select.join-2357"><span class="linenos">2357</span></a> <span class="n">using</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select.join-2358"><a href="#Select.join-2358"><span class="linenos">2358</span></a> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Select.join-2359"><a href="#Select.join-2359"><span class="linenos">2359</span></a> <span class="n">join_type</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select.join-2360"><a href="#Select.join-2360"><span class="linenos">2360</span></a> <span class="n">join_alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select.join-2361"><a href="#Select.join-2361"><span class="linenos">2361</span></a> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Select.join-2362"><a href="#Select.join-2362"><span class="linenos">2362</span></a> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Select.join-2363"><a href="#Select.join-2363"><span class="linenos">2363</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.join-2364"><a href="#Select.join-2364"><span class="linenos">2364</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.join-2365"><a href="#Select.join-2365"><span class="linenos">2365</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.join-2366"><a href="#Select.join-2366"><span class="linenos">2366</span></a><span class="sd"> Append to or set the JOIN expressions.</span> +</span><span id="Select.join-2367"><a href="#Select.join-2367"><span class="linenos">2367</span></a> +</span><span id="Select.join-2368"><a href="#Select.join-2368"><span class="linenos">2368</span></a><span class="sd"> Example:</span> +</span><span id="Select.join-2369"><a href="#Select.join-2369"><span class="linenos">2369</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y").sql()</span> +</span><span id="Select.join-2370"><a href="#Select.join-2370"><span class="linenos">2370</span></a><span class="sd"> 'SELECT * FROM tbl JOIN tbl2 ON tbl1.y = tbl2.y'</span> +</span><span id="Select.join-2371"><a href="#Select.join-2371"><span class="linenos">2371</span></a> +</span><span id="Select.join-2372"><a href="#Select.join-2372"><span class="linenos">2372</span></a><span class="sd"> >>> Select().select("1").from_("a").join("b", using=["x", "y", "z"]).sql()</span> +</span><span id="Select.join-2373"><a href="#Select.join-2373"><span class="linenos">2373</span></a><span class="sd"> 'SELECT 1 FROM a JOIN b USING (x, y, z)'</span> +</span><span id="Select.join-2374"><a href="#Select.join-2374"><span class="linenos">2374</span></a> +</span><span id="Select.join-2375"><a href="#Select.join-2375"><span class="linenos">2375</span></a><span class="sd"> Use `join_type` to change the type of join:</span> +</span><span id="Select.join-2376"><a href="#Select.join-2376"><span class="linenos">2376</span></a> +</span><span id="Select.join-2377"><a href="#Select.join-2377"><span class="linenos">2377</span></a><span class="sd"> >>> Select().select("*").from_("tbl").join("tbl2", on="tbl1.y = tbl2.y", join_type="left outer").sql()</span> +</span><span id="Select.join-2378"><a href="#Select.join-2378"><span class="linenos">2378</span></a><span class="sd"> 'SELECT * FROM tbl LEFT OUTER JOIN tbl2 ON tbl1.y = tbl2.y'</span> +</span><span id="Select.join-2379"><a href="#Select.join-2379"><span class="linenos">2379</span></a> +</span><span id="Select.join-2380"><a href="#Select.join-2380"><span class="linenos">2380</span></a><span class="sd"> Args:</span> +</span><span id="Select.join-2381"><a href="#Select.join-2381"><span class="linenos">2381</span></a><span class="sd"> expression (str | Expression): the SQL code string to parse.</span> +</span><span id="Select.join-2382"><a href="#Select.join-2382"><span class="linenos">2382</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.join-2383"><a href="#Select.join-2383"><span class="linenos">2383</span></a><span class="sd"> on (str | Expression): optionally specify the join "on" criteria as a SQL string.</span> +</span><span id="Select.join-2384"><a href="#Select.join-2384"><span class="linenos">2384</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.join-2385"><a href="#Select.join-2385"><span class="linenos">2385</span></a><span class="sd"> using (str | Expression): optionally specify the join "using" criteria as a SQL string.</span> +</span><span id="Select.join-2386"><a href="#Select.join-2386"><span class="linenos">2386</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.join-2387"><a href="#Select.join-2387"><span class="linenos">2387</span></a><span class="sd"> append (bool): if `True`, add to any existing expressions.</span> +</span><span id="Select.join-2388"><a href="#Select.join-2388"><span class="linenos">2388</span></a><span class="sd"> Otherwise, this resets the expressions.</span> +</span><span id="Select.join-2389"><a href="#Select.join-2389"><span class="linenos">2389</span></a><span class="sd"> join_type (str): If set, alter the parsed join type</span> +</span><span id="Select.join-2390"><a href="#Select.join-2390"><span class="linenos">2390</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select.join-2391"><a href="#Select.join-2391"><span class="linenos">2391</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.join-2392"><a href="#Select.join-2392"><span class="linenos">2392</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.join-2393"><a href="#Select.join-2393"><span class="linenos">2393</span></a> +</span><span id="Select.join-2394"><a href="#Select.join-2394"><span class="linenos">2394</span></a><span class="sd"> Returns:</span> +</span><span id="Select.join-2395"><a href="#Select.join-2395"><span class="linenos">2395</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.join-2396"><a href="#Select.join-2396"><span class="linenos">2396</span></a><span class="sd"> """</span> +</span><span id="Select.join-2397"><a href="#Select.join-2397"><span class="linenos">2397</span></a> <span class="n">parse_args</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"dialect"</span><span class="p">:</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">}</span> +</span><span id="Select.join-2398"><a href="#Select.join-2398"><span class="linenos">2398</span></a> +</span><span id="Select.join-2399"><a href="#Select.join-2399"><span class="linenos">2399</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Select.join-2400"><a href="#Select.join-2400"><span class="linenos">2400</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Join</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"JOIN"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> +</span><span id="Select.join-2401"><a href="#Select.join-2401"><span class="linenos">2401</span></a> <span class="k">except</span> <span class="n">ParseError</span><span class="p">:</span> +</span><span id="Select.join-2402"><a href="#Select.join-2402"><span class="linenos">2402</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="p">(</span><span class="n">Join</span><span class="p">,</span> <span class="n">Expression</span><span class="p">),</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> +</span><span id="Select.join-2403"><a href="#Select.join-2403"><span class="linenos">2403</span></a> +</span><span id="Select.join-2404"><a href="#Select.join-2404"><span class="linenos">2404</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">expression</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Join</span><span class="p">)</span> <span class="k">else</span> <span class="n">Join</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Select.join-2405"><a href="#Select.join-2405"><span class="linenos">2405</span></a> +</span><span id="Select.join-2406"><a href="#Select.join-2406"><span class="linenos">2406</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">Select</span><span class="p">):</span> +</span><span id="Select.join-2407"><a href="#Select.join-2407"><span class="linenos">2407</span></a> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span> +</span><span id="Select.join-2408"><a href="#Select.join-2408"><span class="linenos">2408</span></a> +</span><span id="Select.join-2409"><a href="#Select.join-2409"><span class="linenos">2409</span></a> <span class="k">if</span> <span class="n">join_type</span><span class="p">:</span> +</span><span id="Select.join-2410"><a href="#Select.join-2410"><span class="linenos">2410</span></a> <span class="n">natural</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="Select.join-2411"><a href="#Select.join-2411"><span class="linenos">2411</span></a> <span class="n">side</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="Select.join-2412"><a href="#Select.join-2412"><span class="linenos">2412</span></a> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> +</span><span id="Select.join-2413"><a href="#Select.join-2413"><span class="linenos">2413</span></a> +</span><span id="Select.join-2414"><a href="#Select.join-2414"><span class="linenos">2414</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">join_type</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="s2">"JOIN_TYPE"</span><span class="p">,</span> <span class="o">**</span><span class="n">parse_args</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Select.join-2415"><a href="#Select.join-2415"><span class="linenos">2415</span></a> +</span><span id="Select.join-2416"><a href="#Select.join-2416"><span class="linenos">2416</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> +</span><span id="Select.join-2417"><a href="#Select.join-2417"><span class="linenos">2417</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="Select.join-2418"><a href="#Select.join-2418"><span class="linenos">2418</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> +</span><span id="Select.join-2419"><a href="#Select.join-2419"><span class="linenos">2419</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"side"</span><span class="p">,</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Select.join-2420"><a href="#Select.join-2420"><span class="linenos">2420</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Select.join-2421"><a href="#Select.join-2421"><span class="linenos">2421</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">,</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Select.join-2422"><a href="#Select.join-2422"><span class="linenos">2422</span></a> +</span><span id="Select.join-2423"><a href="#Select.join-2423"><span class="linenos">2423</span></a> <span class="k">if</span> <span class="n">on</span><span class="p">:</span> +</span><span id="Select.join-2424"><a href="#Select.join-2424"><span class="linenos">2424</span></a> <span class="n">on</span> <span class="o">=</span> <span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">on</span><span class="p">),</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="Select.join-2425"><a href="#Select.join-2425"><span class="linenos">2425</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">on</span><span class="p">)</span> +</span><span id="Select.join-2426"><a href="#Select.join-2426"><span class="linenos">2426</span></a> +</span><span id="Select.join-2427"><a href="#Select.join-2427"><span class="linenos">2427</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> +</span><span id="Select.join-2428"><a href="#Select.join-2428"><span class="linenos">2428</span></a> <span class="n">join</span> <span class="o">=</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select.join-2429"><a href="#Select.join-2429"><span class="linenos">2429</span></a> <span class="o">*</span><span class="n">ensure_collection</span><span class="p">(</span><span class="n">using</span><span class="p">),</span> +</span><span id="Select.join-2430"><a href="#Select.join-2430"><span class="linenos">2430</span></a> <span class="n">instance</span><span class="o">=</span><span class="n">join</span><span class="p">,</span> +</span><span id="Select.join-2431"><a href="#Select.join-2431"><span class="linenos">2431</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"using"</span><span class="p">,</span> +</span><span id="Select.join-2432"><a href="#Select.join-2432"><span class="linenos">2432</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.join-2433"><a href="#Select.join-2433"><span class="linenos">2433</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.join-2434"><a href="#Select.join-2434"><span class="linenos">2434</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.join-2435"><a href="#Select.join-2435"><span class="linenos">2435</span></a> <span class="p">)</span> +</span><span id="Select.join-2436"><a href="#Select.join-2436"><span class="linenos">2436</span></a> +</span><span id="Select.join-2437"><a href="#Select.join-2437"><span class="linenos">2437</span></a> <span class="k">if</span> <span class="n">join_alias</span><span class="p">:</span> +</span><span id="Select.join-2438"><a href="#Select.join-2438"><span class="linenos">2438</span></a> <span class="n">join</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">alias_</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">join_alias</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Select.join-2439"><a href="#Select.join-2439"><span class="linenos">2439</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select.join-2440"><a href="#Select.join-2440"><span class="linenos">2440</span></a> <span class="n">join</span><span class="p">,</span> +</span><span id="Select.join-2441"><a href="#Select.join-2441"><span class="linenos">2441</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.join-2442"><a href="#Select.join-2442"><span class="linenos">2442</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"joins"</span><span class="p">,</span> +</span><span id="Select.join-2443"><a href="#Select.join-2443"><span class="linenos">2443</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.join-2444"><a href="#Select.join-2444"><span class="linenos">2444</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.join-2445"><a href="#Select.join-2445"><span class="linenos">2445</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.join-2446"><a href="#Select.join-2446"><span class="linenos">2446</span></a> <span class="p">)</span> </span></pre></div> @@ -22040,37 +22559,37 @@ Otherwise, this resets the expressions.</li> </div> <a class="headerlink" href="#Select.where"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-2336"><a href="#Select.where-2336"><span class="linenos">2336</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.where-2337"><a href="#Select.where-2337"><span class="linenos">2337</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.where-2338"><a href="#Select.where-2338"><span class="linenos">2338</span></a><span class="sd"> Append to or set the WHERE expressions.</span> -</span><span id="Select.where-2339"><a href="#Select.where-2339"><span class="linenos">2339</span></a> -</span><span id="Select.where-2340"><a href="#Select.where-2340"><span class="linenos">2340</span></a><span class="sd"> Example:</span> -</span><span id="Select.where-2341"><a href="#Select.where-2341"><span class="linenos">2341</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()</span> -</span><span id="Select.where-2342"><a href="#Select.where-2342"><span class="linenos">2342</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span> -</span><span id="Select.where-2343"><a href="#Select.where-2343"><span class="linenos">2343</span></a> -</span><span id="Select.where-2344"><a href="#Select.where-2344"><span class="linenos">2344</span></a><span class="sd"> Args:</span> -</span><span id="Select.where-2345"><a href="#Select.where-2345"><span class="linenos">2345</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.where-2346"><a href="#Select.where-2346"><span class="linenos">2346</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.where-2347"><a href="#Select.where-2347"><span class="linenos">2347</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="Select.where-2348"><a href="#Select.where-2348"><span class="linenos">2348</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="Select.where-2349"><a href="#Select.where-2349"><span class="linenos">2349</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Select.where-2350"><a href="#Select.where-2350"><span class="linenos">2350</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select.where-2351"><a href="#Select.where-2351"><span class="linenos">2351</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.where-2352"><a href="#Select.where-2352"><span class="linenos">2352</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.where-2353"><a href="#Select.where-2353"><span class="linenos">2353</span></a> -</span><span id="Select.where-2354"><a href="#Select.where-2354"><span class="linenos">2354</span></a><span class="sd"> Returns:</span> -</span><span id="Select.where-2355"><a href="#Select.where-2355"><span class="linenos">2355</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.where-2356"><a href="#Select.where-2356"><span class="linenos">2356</span></a><span class="sd"> """</span> -</span><span id="Select.where-2357"><a href="#Select.where-2357"><span class="linenos">2357</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Select.where-2358"><a href="#Select.where-2358"><span class="linenos">2358</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.where-2359"><a href="#Select.where-2359"><span class="linenos">2359</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.where-2360"><a href="#Select.where-2360"><span class="linenos">2360</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> -</span><span id="Select.where-2361"><a href="#Select.where-2361"><span class="linenos">2361</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.where-2362"><a href="#Select.where-2362"><span class="linenos">2362</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> -</span><span id="Select.where-2363"><a href="#Select.where-2363"><span class="linenos">2363</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.where-2364"><a href="#Select.where-2364"><span class="linenos">2364</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.where-2365"><a href="#Select.where-2365"><span class="linenos">2365</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.where-2366"><a href="#Select.where-2366"><span class="linenos">2366</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.where-2448"><a href="#Select.where-2448"><span class="linenos">2448</span></a> <span class="k">def</span> <span class="nf">where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.where-2449"><a href="#Select.where-2449"><span class="linenos">2449</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.where-2450"><a href="#Select.where-2450"><span class="linenos">2450</span></a><span class="sd"> Append to or set the WHERE expressions.</span> +</span><span id="Select.where-2451"><a href="#Select.where-2451"><span class="linenos">2451</span></a> +</span><span id="Select.where-2452"><a href="#Select.where-2452"><span class="linenos">2452</span></a><span class="sd"> Example:</span> +</span><span id="Select.where-2453"><a href="#Select.where-2453"><span class="linenos">2453</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a' OR x < 'b'").sql()</span> +</span><span id="Select.where-2454"><a href="#Select.where-2454"><span class="linenos">2454</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' OR x < 'b'"</span> +</span><span id="Select.where-2455"><a href="#Select.where-2455"><span class="linenos">2455</span></a> +</span><span id="Select.where-2456"><a href="#Select.where-2456"><span class="linenos">2456</span></a><span class="sd"> Args:</span> +</span><span id="Select.where-2457"><a href="#Select.where-2457"><span class="linenos">2457</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.where-2458"><a href="#Select.where-2458"><span class="linenos">2458</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.where-2459"><a href="#Select.where-2459"><span class="linenos">2459</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Select.where-2460"><a href="#Select.where-2460"><span class="linenos">2460</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Select.where-2461"><a href="#Select.where-2461"><span class="linenos">2461</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Select.where-2462"><a href="#Select.where-2462"><span class="linenos">2462</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select.where-2463"><a href="#Select.where-2463"><span class="linenos">2463</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.where-2464"><a href="#Select.where-2464"><span class="linenos">2464</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.where-2465"><a href="#Select.where-2465"><span class="linenos">2465</span></a> +</span><span id="Select.where-2466"><a href="#Select.where-2466"><span class="linenos">2466</span></a><span class="sd"> Returns:</span> +</span><span id="Select.where-2467"><a href="#Select.where-2467"><span class="linenos">2467</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.where-2468"><a href="#Select.where-2468"><span class="linenos">2468</span></a><span class="sd"> """</span> +</span><span id="Select.where-2469"><a href="#Select.where-2469"><span class="linenos">2469</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Select.where-2470"><a href="#Select.where-2470"><span class="linenos">2470</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.where-2471"><a href="#Select.where-2471"><span class="linenos">2471</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.where-2472"><a href="#Select.where-2472"><span class="linenos">2472</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"where"</span><span class="p">,</span> +</span><span id="Select.where-2473"><a href="#Select.where-2473"><span class="linenos">2473</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.where-2474"><a href="#Select.where-2474"><span class="linenos">2474</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> +</span><span id="Select.where-2475"><a href="#Select.where-2475"><span class="linenos">2475</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.where-2476"><a href="#Select.where-2476"><span class="linenos">2476</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.where-2477"><a href="#Select.where-2477"><span class="linenos">2477</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.where-2478"><a href="#Select.where-2478"><span class="linenos">2478</span></a> <span class="p">)</span> </span></pre></div> @@ -22119,37 +22638,37 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Select.having"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-2368"><a href="#Select.having-2368"><span class="linenos">2368</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.having-2369"><a href="#Select.having-2369"><span class="linenos">2369</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.having-2370"><a href="#Select.having-2370"><span class="linenos">2370</span></a><span class="sd"> Append to or set the HAVING expressions.</span> -</span><span id="Select.having-2371"><a href="#Select.having-2371"><span class="linenos">2371</span></a> -</span><span id="Select.having-2372"><a href="#Select.having-2372"><span class="linenos">2372</span></a><span class="sd"> Example:</span> -</span><span id="Select.having-2373"><a href="#Select.having-2373"><span class="linenos">2373</span></a><span class="sd"> >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()</span> -</span><span id="Select.having-2374"><a href="#Select.having-2374"><span class="linenos">2374</span></a><span class="sd"> 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span> -</span><span id="Select.having-2375"><a href="#Select.having-2375"><span class="linenos">2375</span></a> -</span><span id="Select.having-2376"><a href="#Select.having-2376"><span class="linenos">2376</span></a><span class="sd"> Args:</span> -</span><span id="Select.having-2377"><a href="#Select.having-2377"><span class="linenos">2377</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="Select.having-2378"><a href="#Select.having-2378"><span class="linenos">2378</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.having-2379"><a href="#Select.having-2379"><span class="linenos">2379</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> -</span><span id="Select.having-2380"><a href="#Select.having-2380"><span class="linenos">2380</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> -</span><span id="Select.having-2381"><a href="#Select.having-2381"><span class="linenos">2381</span></a><span class="sd"> Otherwise, this resets the expression.</span> -</span><span id="Select.having-2382"><a href="#Select.having-2382"><span class="linenos">2382</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="Select.having-2383"><a href="#Select.having-2383"><span class="linenos">2383</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.having-2384"><a href="#Select.having-2384"><span class="linenos">2384</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="Select.having-2385"><a href="#Select.having-2385"><span class="linenos">2385</span></a> -</span><span id="Select.having-2386"><a href="#Select.having-2386"><span class="linenos">2386</span></a><span class="sd"> Returns:</span> -</span><span id="Select.having-2387"><a href="#Select.having-2387"><span class="linenos">2387</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.having-2388"><a href="#Select.having-2388"><span class="linenos">2388</span></a><span class="sd"> """</span> -</span><span id="Select.having-2389"><a href="#Select.having-2389"><span class="linenos">2389</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Select.having-2390"><a href="#Select.having-2390"><span class="linenos">2390</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.having-2391"><a href="#Select.having-2391"><span class="linenos">2391</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.having-2392"><a href="#Select.having-2392"><span class="linenos">2392</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"having"</span><span class="p">,</span> -</span><span id="Select.having-2393"><a href="#Select.having-2393"><span class="linenos">2393</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.having-2394"><a href="#Select.having-2394"><span class="linenos">2394</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span> -</span><span id="Select.having-2395"><a href="#Select.having-2395"><span class="linenos">2395</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.having-2396"><a href="#Select.having-2396"><span class="linenos">2396</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.having-2397"><a href="#Select.having-2397"><span class="linenos">2397</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.having-2398"><a href="#Select.having-2398"><span class="linenos">2398</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.having-2480"><a href="#Select.having-2480"><span class="linenos">2480</span></a> <span class="k">def</span> <span class="nf">having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.having-2481"><a href="#Select.having-2481"><span class="linenos">2481</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.having-2482"><a href="#Select.having-2482"><span class="linenos">2482</span></a><span class="sd"> Append to or set the HAVING expressions.</span> +</span><span id="Select.having-2483"><a href="#Select.having-2483"><span class="linenos">2483</span></a> +</span><span id="Select.having-2484"><a href="#Select.having-2484"><span class="linenos">2484</span></a><span class="sd"> Example:</span> +</span><span id="Select.having-2485"><a href="#Select.having-2485"><span class="linenos">2485</span></a><span class="sd"> >>> Select().select("x", "COUNT(y)").from_("tbl").group_by("x").having("COUNT(y) > 3").sql()</span> +</span><span id="Select.having-2486"><a href="#Select.having-2486"><span class="linenos">2486</span></a><span class="sd"> 'SELECT x, COUNT(y) FROM tbl GROUP BY x HAVING COUNT(y) > 3'</span> +</span><span id="Select.having-2487"><a href="#Select.having-2487"><span class="linenos">2487</span></a> +</span><span id="Select.having-2488"><a href="#Select.having-2488"><span class="linenos">2488</span></a><span class="sd"> Args:</span> +</span><span id="Select.having-2489"><a href="#Select.having-2489"><span class="linenos">2489</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="Select.having-2490"><a href="#Select.having-2490"><span class="linenos">2490</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.having-2491"><a href="#Select.having-2491"><span class="linenos">2491</span></a><span class="sd"> Multiple expressions are combined with an AND operator.</span> +</span><span id="Select.having-2492"><a href="#Select.having-2492"><span class="linenos">2492</span></a><span class="sd"> append (bool): if `True`, AND the new expressions to any existing expression.</span> +</span><span id="Select.having-2493"><a href="#Select.having-2493"><span class="linenos">2493</span></a><span class="sd"> Otherwise, this resets the expression.</span> +</span><span id="Select.having-2494"><a href="#Select.having-2494"><span class="linenos">2494</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> +</span><span id="Select.having-2495"><a href="#Select.having-2495"><span class="linenos">2495</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.having-2496"><a href="#Select.having-2496"><span class="linenos">2496</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="Select.having-2497"><a href="#Select.having-2497"><span class="linenos">2497</span></a> +</span><span id="Select.having-2498"><a href="#Select.having-2498"><span class="linenos">2498</span></a><span class="sd"> Returns:</span> +</span><span id="Select.having-2499"><a href="#Select.having-2499"><span class="linenos">2499</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.having-2500"><a href="#Select.having-2500"><span class="linenos">2500</span></a><span class="sd"> """</span> +</span><span id="Select.having-2501"><a href="#Select.having-2501"><span class="linenos">2501</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Select.having-2502"><a href="#Select.having-2502"><span class="linenos">2502</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.having-2503"><a href="#Select.having-2503"><span class="linenos">2503</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.having-2504"><a href="#Select.having-2504"><span class="linenos">2504</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"having"</span><span class="p">,</span> +</span><span id="Select.having-2505"><a href="#Select.having-2505"><span class="linenos">2505</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.having-2506"><a href="#Select.having-2506"><span class="linenos">2506</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Having</span><span class="p">,</span> +</span><span id="Select.having-2507"><a href="#Select.having-2507"><span class="linenos">2507</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.having-2508"><a href="#Select.having-2508"><span class="linenos">2508</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.having-2509"><a href="#Select.having-2509"><span class="linenos">2509</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.having-2510"><a href="#Select.having-2510"><span class="linenos">2510</span></a> <span class="p">)</span> </span></pre></div> @@ -22198,17 +22717,17 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Select.window"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-2400"><a href="#Select.window-2400"><span class="linenos">2400</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.window-2401"><a href="#Select.window-2401"><span class="linenos">2401</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> -</span><span id="Select.window-2402"><a href="#Select.window-2402"><span class="linenos">2402</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.window-2403"><a href="#Select.window-2403"><span class="linenos">2403</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.window-2404"><a href="#Select.window-2404"><span class="linenos">2404</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"windows"</span><span class="p">,</span> -</span><span id="Select.window-2405"><a href="#Select.window-2405"><span class="linenos">2405</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.window-2406"><a href="#Select.window-2406"><span class="linenos">2406</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span> -</span><span id="Select.window-2407"><a href="#Select.window-2407"><span class="linenos">2407</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.window-2408"><a href="#Select.window-2408"><span class="linenos">2408</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.window-2409"><a href="#Select.window-2409"><span class="linenos">2409</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.window-2410"><a href="#Select.window-2410"><span class="linenos">2410</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.window-2512"><a href="#Select.window-2512"><span class="linenos">2512</span></a> <span class="k">def</span> <span class="nf">window</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.window-2513"><a href="#Select.window-2513"><span class="linenos">2513</span></a> <span class="k">return</span> <span class="n">_apply_list_builder</span><span class="p">(</span> +</span><span id="Select.window-2514"><a href="#Select.window-2514"><span class="linenos">2514</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.window-2515"><a href="#Select.window-2515"><span class="linenos">2515</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.window-2516"><a href="#Select.window-2516"><span class="linenos">2516</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"windows"</span><span class="p">,</span> +</span><span id="Select.window-2517"><a href="#Select.window-2517"><span class="linenos">2517</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.window-2518"><a href="#Select.window-2518"><span class="linenos">2518</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Window</span><span class="p">,</span> +</span><span id="Select.window-2519"><a href="#Select.window-2519"><span class="linenos">2519</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.window-2520"><a href="#Select.window-2520"><span class="linenos">2520</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.window-2521"><a href="#Select.window-2521"><span class="linenos">2521</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.window-2522"><a href="#Select.window-2522"><span class="linenos">2522</span></a> <span class="p">)</span> </span></pre></div> @@ -22226,17 +22745,17 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Select.qualify"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-2412"><a href="#Select.qualify-2412"><span class="linenos">2412</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.qualify-2413"><a href="#Select.qualify-2413"><span class="linenos">2413</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> -</span><span id="Select.qualify-2414"><a href="#Select.qualify-2414"><span class="linenos">2414</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Select.qualify-2415"><a href="#Select.qualify-2415"><span class="linenos">2415</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Select.qualify-2416"><a href="#Select.qualify-2416"><span class="linenos">2416</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"qualify"</span><span class="p">,</span> -</span><span id="Select.qualify-2417"><a href="#Select.qualify-2417"><span class="linenos">2417</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> -</span><span id="Select.qualify-2418"><a href="#Select.qualify-2418"><span class="linenos">2418</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span> -</span><span id="Select.qualify-2419"><a href="#Select.qualify-2419"><span class="linenos">2419</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.qualify-2420"><a href="#Select.qualify-2420"><span class="linenos">2420</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> -</span><span id="Select.qualify-2421"><a href="#Select.qualify-2421"><span class="linenos">2421</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.qualify-2422"><a href="#Select.qualify-2422"><span class="linenos">2422</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.qualify-2524"><a href="#Select.qualify-2524"><span class="linenos">2524</span></a> <span class="k">def</span> <span class="nf">qualify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.qualify-2525"><a href="#Select.qualify-2525"><span class="linenos">2525</span></a> <span class="k">return</span> <span class="n">_apply_conjunction_builder</span><span class="p">(</span> +</span><span id="Select.qualify-2526"><a href="#Select.qualify-2526"><span class="linenos">2526</span></a> <span class="o">*</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Select.qualify-2527"><a href="#Select.qualify-2527"><span class="linenos">2527</span></a> <span class="n">instance</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Select.qualify-2528"><a href="#Select.qualify-2528"><span class="linenos">2528</span></a> <span class="n">arg</span><span class="o">=</span><span class="s2">"qualify"</span><span class="p">,</span> +</span><span id="Select.qualify-2529"><a href="#Select.qualify-2529"><span class="linenos">2529</span></a> <span class="n">append</span><span class="o">=</span><span class="n">append</span><span class="p">,</span> +</span><span id="Select.qualify-2530"><a href="#Select.qualify-2530"><span class="linenos">2530</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Qualify</span><span class="p">,</span> +</span><span id="Select.qualify-2531"><a href="#Select.qualify-2531"><span class="linenos">2531</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.qualify-2532"><a href="#Select.qualify-2532"><span class="linenos">2532</span></a> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">,</span> +</span><span id="Select.qualify-2533"><a href="#Select.qualify-2533"><span class="linenos">2533</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.qualify-2534"><a href="#Select.qualify-2534"><span class="linenos">2534</span></a> <span class="p">)</span> </span></pre></div> @@ -22254,24 +22773,24 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Select.distinct"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-2424"><a href="#Select.distinct-2424"><span class="linenos">2424</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.distinct-2425"><a href="#Select.distinct-2425"><span class="linenos">2425</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.distinct-2426"><a href="#Select.distinct-2426"><span class="linenos">2426</span></a><span class="sd"> Set the OFFSET expression.</span> -</span><span id="Select.distinct-2427"><a href="#Select.distinct-2427"><span class="linenos">2427</span></a> -</span><span id="Select.distinct-2428"><a href="#Select.distinct-2428"><span class="linenos">2428</span></a><span class="sd"> Example:</span> -</span><span id="Select.distinct-2429"><a href="#Select.distinct-2429"><span class="linenos">2429</span></a><span class="sd"> >>> Select().from_("tbl").select("x").distinct().sql()</span> -</span><span id="Select.distinct-2430"><a href="#Select.distinct-2430"><span class="linenos">2430</span></a><span class="sd"> 'SELECT DISTINCT x FROM tbl'</span> -</span><span id="Select.distinct-2431"><a href="#Select.distinct-2431"><span class="linenos">2431</span></a> -</span><span id="Select.distinct-2432"><a href="#Select.distinct-2432"><span class="linenos">2432</span></a><span class="sd"> Args:</span> -</span><span id="Select.distinct-2433"><a href="#Select.distinct-2433"><span class="linenos">2433</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span> -</span><span id="Select.distinct-2434"><a href="#Select.distinct-2434"><span class="linenos">2434</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.distinct-2435"><a href="#Select.distinct-2435"><span class="linenos">2435</span></a> -</span><span id="Select.distinct-2436"><a href="#Select.distinct-2436"><span class="linenos">2436</span></a><span class="sd"> Returns:</span> -</span><span id="Select.distinct-2437"><a href="#Select.distinct-2437"><span class="linenos">2437</span></a><span class="sd"> Select: the modified expression.</span> -</span><span id="Select.distinct-2438"><a href="#Select.distinct-2438"><span class="linenos">2438</span></a><span class="sd"> """</span> -</span><span id="Select.distinct-2439"><a href="#Select.distinct-2439"><span class="linenos">2439</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Select.distinct-2440"><a href="#Select.distinct-2440"><span class="linenos">2440</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">()</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Select.distinct-2441"><a href="#Select.distinct-2441"><span class="linenos">2441</span></a> <span class="k">return</span> <span class="n">instance</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.distinct-2536"><a href="#Select.distinct-2536"><span class="linenos">2536</span></a> <span class="k">def</span> <span class="nf">distinct</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.distinct-2537"><a href="#Select.distinct-2537"><span class="linenos">2537</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.distinct-2538"><a href="#Select.distinct-2538"><span class="linenos">2538</span></a><span class="sd"> Set the OFFSET expression.</span> +</span><span id="Select.distinct-2539"><a href="#Select.distinct-2539"><span class="linenos">2539</span></a> +</span><span id="Select.distinct-2540"><a href="#Select.distinct-2540"><span class="linenos">2540</span></a><span class="sd"> Example:</span> +</span><span id="Select.distinct-2541"><a href="#Select.distinct-2541"><span class="linenos">2541</span></a><span class="sd"> >>> Select().from_("tbl").select("x").distinct().sql()</span> +</span><span id="Select.distinct-2542"><a href="#Select.distinct-2542"><span class="linenos">2542</span></a><span class="sd"> 'SELECT DISTINCT x FROM tbl'</span> +</span><span id="Select.distinct-2543"><a href="#Select.distinct-2543"><span class="linenos">2543</span></a> +</span><span id="Select.distinct-2544"><a href="#Select.distinct-2544"><span class="linenos">2544</span></a><span class="sd"> Args:</span> +</span><span id="Select.distinct-2545"><a href="#Select.distinct-2545"><span class="linenos">2545</span></a><span class="sd"> distinct (bool): whether the Select should be distinct</span> +</span><span id="Select.distinct-2546"><a href="#Select.distinct-2546"><span class="linenos">2546</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.distinct-2547"><a href="#Select.distinct-2547"><span class="linenos">2547</span></a> +</span><span id="Select.distinct-2548"><a href="#Select.distinct-2548"><span class="linenos">2548</span></a><span class="sd"> Returns:</span> +</span><span id="Select.distinct-2549"><a href="#Select.distinct-2549"><span class="linenos">2549</span></a><span class="sd"> Select: the modified expression.</span> +</span><span id="Select.distinct-2550"><a href="#Select.distinct-2550"><span class="linenos">2550</span></a><span class="sd"> """</span> +</span><span id="Select.distinct-2551"><a href="#Select.distinct-2551"><span class="linenos">2551</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Select.distinct-2552"><a href="#Select.distinct-2552"><span class="linenos">2552</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">,</span> <span class="n">Distinct</span><span class="p">()</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Select.distinct-2553"><a href="#Select.distinct-2553"><span class="linenos">2553</span></a> <span class="k">return</span> <span class="n">instance</span> </span></pre></div> @@ -22314,42 +22833,42 @@ Otherwise, this resets the expression.</li> </div> <a class="headerlink" href="#Select.ctas"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-2443"><a href="#Select.ctas-2443"><span class="linenos">2443</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Create</span><span class="p">:</span> -</span><span id="Select.ctas-2444"><a href="#Select.ctas-2444"><span class="linenos">2444</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.ctas-2445"><a href="#Select.ctas-2445"><span class="linenos">2445</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span> -</span><span id="Select.ctas-2446"><a href="#Select.ctas-2446"><span class="linenos">2446</span></a> -</span><span id="Select.ctas-2447"><a href="#Select.ctas-2447"><span class="linenos">2447</span></a><span class="sd"> Example:</span> -</span><span id="Select.ctas-2448"><a href="#Select.ctas-2448"><span class="linenos">2448</span></a><span class="sd"> >>> Select().select("*").from_("tbl").ctas("x").sql()</span> -</span><span id="Select.ctas-2449"><a href="#Select.ctas-2449"><span class="linenos">2449</span></a><span class="sd"> 'CREATE TABLE x AS SELECT * FROM tbl'</span> -</span><span id="Select.ctas-2450"><a href="#Select.ctas-2450"><span class="linenos">2450</span></a> -</span><span id="Select.ctas-2451"><a href="#Select.ctas-2451"><span class="linenos">2451</span></a><span class="sd"> Args:</span> -</span><span id="Select.ctas-2452"><a href="#Select.ctas-2452"><span class="linenos">2452</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span> -</span><span id="Select.ctas-2453"><a href="#Select.ctas-2453"><span class="linenos">2453</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span> -</span><span id="Select.ctas-2454"><a href="#Select.ctas-2454"><span class="linenos">2454</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span> -</span><span id="Select.ctas-2455"><a href="#Select.ctas-2455"><span class="linenos">2455</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span> -</span><span id="Select.ctas-2456"><a href="#Select.ctas-2456"><span class="linenos">2456</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> -</span><span id="Select.ctas-2457"><a href="#Select.ctas-2457"><span class="linenos">2457</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span> -</span><span id="Select.ctas-2458"><a href="#Select.ctas-2458"><span class="linenos">2458</span></a> -</span><span id="Select.ctas-2459"><a href="#Select.ctas-2459"><span class="linenos">2459</span></a><span class="sd"> Returns:</span> -</span><span id="Select.ctas-2460"><a href="#Select.ctas-2460"><span class="linenos">2460</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span> -</span><span id="Select.ctas-2461"><a href="#Select.ctas-2461"><span class="linenos">2461</span></a><span class="sd"> """</span> -</span><span id="Select.ctas-2462"><a href="#Select.ctas-2462"><span class="linenos">2462</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Select.ctas-2463"><a href="#Select.ctas-2463"><span class="linenos">2463</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> -</span><span id="Select.ctas-2464"><a href="#Select.ctas-2464"><span class="linenos">2464</span></a> <span class="n">table</span><span class="p">,</span> -</span><span id="Select.ctas-2465"><a href="#Select.ctas-2465"><span class="linenos">2465</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> -</span><span id="Select.ctas-2466"><a href="#Select.ctas-2466"><span class="linenos">2466</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="Select.ctas-2467"><a href="#Select.ctas-2467"><span class="linenos">2467</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="Select.ctas-2468"><a href="#Select.ctas-2468"><span class="linenos">2468</span></a> <span class="p">)</span> -</span><span id="Select.ctas-2469"><a href="#Select.ctas-2469"><span class="linenos">2469</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Select.ctas-2470"><a href="#Select.ctas-2470"><span class="linenos">2470</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> -</span><span id="Select.ctas-2471"><a href="#Select.ctas-2471"><span class="linenos">2471</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> -</span><span id="Select.ctas-2472"><a href="#Select.ctas-2472"><span class="linenos">2472</span></a> -</span><span id="Select.ctas-2473"><a href="#Select.ctas-2473"><span class="linenos">2473</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span> -</span><span id="Select.ctas-2474"><a href="#Select.ctas-2474"><span class="linenos">2474</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span> -</span><span id="Select.ctas-2475"><a href="#Select.ctas-2475"><span class="linenos">2475</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"table"</span><span class="p">,</span> -</span><span id="Select.ctas-2476"><a href="#Select.ctas-2476"><span class="linenos">2476</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> -</span><span id="Select.ctas-2477"><a href="#Select.ctas-2477"><span class="linenos">2477</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span> -</span><span id="Select.ctas-2478"><a href="#Select.ctas-2478"><span class="linenos">2478</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.ctas-2555"><a href="#Select.ctas-2555"><span class="linenos">2555</span></a> <span class="k">def</span> <span class="nf">ctas</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Create</span><span class="p">:</span> +</span><span id="Select.ctas-2556"><a href="#Select.ctas-2556"><span class="linenos">2556</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.ctas-2557"><a href="#Select.ctas-2557"><span class="linenos">2557</span></a><span class="sd"> Convert this expression to a CREATE TABLE AS statement.</span> +</span><span id="Select.ctas-2558"><a href="#Select.ctas-2558"><span class="linenos">2558</span></a> +</span><span id="Select.ctas-2559"><a href="#Select.ctas-2559"><span class="linenos">2559</span></a><span class="sd"> Example:</span> +</span><span id="Select.ctas-2560"><a href="#Select.ctas-2560"><span class="linenos">2560</span></a><span class="sd"> >>> Select().select("*").from_("tbl").ctas("x").sql()</span> +</span><span id="Select.ctas-2561"><a href="#Select.ctas-2561"><span class="linenos">2561</span></a><span class="sd"> 'CREATE TABLE x AS SELECT * FROM tbl'</span> +</span><span id="Select.ctas-2562"><a href="#Select.ctas-2562"><span class="linenos">2562</span></a> +</span><span id="Select.ctas-2563"><a href="#Select.ctas-2563"><span class="linenos">2563</span></a><span class="sd"> Args:</span> +</span><span id="Select.ctas-2564"><a href="#Select.ctas-2564"><span class="linenos">2564</span></a><span class="sd"> table (str | Expression): the SQL code string to parse as the table name.</span> +</span><span id="Select.ctas-2565"><a href="#Select.ctas-2565"><span class="linenos">2565</span></a><span class="sd"> If another `Expression` instance is passed, it will be used as-is.</span> +</span><span id="Select.ctas-2566"><a href="#Select.ctas-2566"><span class="linenos">2566</span></a><span class="sd"> properties (dict): an optional mapping of table properties</span> +</span><span id="Select.ctas-2567"><a href="#Select.ctas-2567"><span class="linenos">2567</span></a><span class="sd"> dialect (str): the dialect used to parse the input table.</span> +</span><span id="Select.ctas-2568"><a href="#Select.ctas-2568"><span class="linenos">2568</span></a><span class="sd"> copy (bool): if `False`, modify this expression instance in-place.</span> +</span><span id="Select.ctas-2569"><a href="#Select.ctas-2569"><span class="linenos">2569</span></a><span class="sd"> opts (kwargs): other options to use to parse the input table.</span> +</span><span id="Select.ctas-2570"><a href="#Select.ctas-2570"><span class="linenos">2570</span></a> +</span><span id="Select.ctas-2571"><a href="#Select.ctas-2571"><span class="linenos">2571</span></a><span class="sd"> Returns:</span> +</span><span id="Select.ctas-2572"><a href="#Select.ctas-2572"><span class="linenos">2572</span></a><span class="sd"> Create: the CREATE TABLE AS expression</span> +</span><span id="Select.ctas-2573"><a href="#Select.ctas-2573"><span class="linenos">2573</span></a><span class="sd"> """</span> +</span><span id="Select.ctas-2574"><a href="#Select.ctas-2574"><span class="linenos">2574</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Select.ctas-2575"><a href="#Select.ctas-2575"><span class="linenos">2575</span></a> <span class="n">table_expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span> +</span><span id="Select.ctas-2576"><a href="#Select.ctas-2576"><span class="linenos">2576</span></a> <span class="n">table</span><span class="p">,</span> +</span><span id="Select.ctas-2577"><a href="#Select.ctas-2577"><span class="linenos">2577</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> +</span><span id="Select.ctas-2578"><a href="#Select.ctas-2578"><span class="linenos">2578</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="Select.ctas-2579"><a href="#Select.ctas-2579"><span class="linenos">2579</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="Select.ctas-2580"><a href="#Select.ctas-2580"><span class="linenos">2580</span></a> <span class="p">)</span> +</span><span id="Select.ctas-2581"><a href="#Select.ctas-2581"><span class="linenos">2581</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Select.ctas-2582"><a href="#Select.ctas-2582"><span class="linenos">2582</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> +</span><span id="Select.ctas-2583"><a href="#Select.ctas-2583"><span class="linenos">2583</span></a> <span class="n">properties_expression</span> <span class="o">=</span> <span class="n">Properties</span><span class="o">.</span><span class="n">from_dict</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> +</span><span id="Select.ctas-2584"><a href="#Select.ctas-2584"><span class="linenos">2584</span></a> +</span><span id="Select.ctas-2585"><a href="#Select.ctas-2585"><span class="linenos">2585</span></a> <span class="k">return</span> <span class="n">Create</span><span class="p">(</span> +</span><span id="Select.ctas-2586"><a href="#Select.ctas-2586"><span class="linenos">2586</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table_expression</span><span class="p">,</span> +</span><span id="Select.ctas-2587"><a href="#Select.ctas-2587"><span class="linenos">2587</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"table"</span><span class="p">,</span> +</span><span id="Select.ctas-2588"><a href="#Select.ctas-2588"><span class="linenos">2588</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">instance</span><span class="p">,</span> +</span><span id="Select.ctas-2589"><a href="#Select.ctas-2589"><span class="linenos">2589</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties_expression</span><span class="p">,</span> +</span><span id="Select.ctas-2590"><a href="#Select.ctas-2590"><span class="linenos">2590</span></a> <span class="p">)</span> </span></pre></div> @@ -22396,29 +22915,29 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Select.lock"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-2480"><a href="#Select.lock-2480"><span class="linenos">2480</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="Select.lock-2481"><a href="#Select.lock-2481"><span class="linenos">2481</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Select.lock-2482"><a href="#Select.lock-2482"><span class="linenos">2482</span></a><span class="sd"> Set the locking read mode for this expression.</span> -</span><span id="Select.lock-2483"><a href="#Select.lock-2483"><span class="linenos">2483</span></a> -</span><span id="Select.lock-2484"><a href="#Select.lock-2484"><span class="linenos">2484</span></a><span class="sd"> Examples:</span> -</span><span id="Select.lock-2485"><a href="#Select.lock-2485"><span class="linenos">2485</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")</span> -</span><span id="Select.lock-2486"><a href="#Select.lock-2486"><span class="linenos">2486</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span> -</span><span id="Select.lock-2487"><a href="#Select.lock-2487"><span class="linenos">2487</span></a> -</span><span id="Select.lock-2488"><a href="#Select.lock-2488"><span class="linenos">2488</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")</span> -</span><span id="Select.lock-2489"><a href="#Select.lock-2489"><span class="linenos">2489</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span> -</span><span id="Select.lock-2490"><a href="#Select.lock-2490"><span class="linenos">2490</span></a> -</span><span id="Select.lock-2491"><a href="#Select.lock-2491"><span class="linenos">2491</span></a><span class="sd"> Args:</span> -</span><span id="Select.lock-2492"><a href="#Select.lock-2492"><span class="linenos">2492</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span> -</span><span id="Select.lock-2493"><a href="#Select.lock-2493"><span class="linenos">2493</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> -</span><span id="Select.lock-2494"><a href="#Select.lock-2494"><span class="linenos">2494</span></a> -</span><span id="Select.lock-2495"><a href="#Select.lock-2495"><span class="linenos">2495</span></a><span class="sd"> Returns:</span> -</span><span id="Select.lock-2496"><a href="#Select.lock-2496"><span class="linenos">2496</span></a><span class="sd"> The modified expression.</span> -</span><span id="Select.lock-2497"><a href="#Select.lock-2497"><span class="linenos">2497</span></a><span class="sd"> """</span> -</span><span id="Select.lock-2498"><a href="#Select.lock-2498"><span class="linenos">2498</span></a> -</span><span id="Select.lock-2499"><a href="#Select.lock-2499"><span class="linenos">2499</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> -</span><span id="Select.lock-2500"><a href="#Select.lock-2500"><span class="linenos">2500</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"lock"</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span> -</span><span id="Select.lock-2501"><a href="#Select.lock-2501"><span class="linenos">2501</span></a> -</span><span id="Select.lock-2502"><a href="#Select.lock-2502"><span class="linenos">2502</span></a> <span class="k">return</span> <span class="n">inst</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Select.lock-2592"><a href="#Select.lock-2592"><span class="linenos">2592</span></a> <span class="k">def</span> <span class="nf">lock</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">update</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="Select.lock-2593"><a href="#Select.lock-2593"><span class="linenos">2593</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Select.lock-2594"><a href="#Select.lock-2594"><span class="linenos">2594</span></a><span class="sd"> Set the locking read mode for this expression.</span> +</span><span id="Select.lock-2595"><a href="#Select.lock-2595"><span class="linenos">2595</span></a> +</span><span id="Select.lock-2596"><a href="#Select.lock-2596"><span class="linenos">2596</span></a><span class="sd"> Examples:</span> +</span><span id="Select.lock-2597"><a href="#Select.lock-2597"><span class="linenos">2597</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock().sql("mysql")</span> +</span><span id="Select.lock-2598"><a href="#Select.lock-2598"><span class="linenos">2598</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR UPDATE"</span> +</span><span id="Select.lock-2599"><a href="#Select.lock-2599"><span class="linenos">2599</span></a> +</span><span id="Select.lock-2600"><a href="#Select.lock-2600"><span class="linenos">2600</span></a><span class="sd"> >>> Select().select("x").from_("tbl").where("x = 'a'").lock(update=False).sql("mysql")</span> +</span><span id="Select.lock-2601"><a href="#Select.lock-2601"><span class="linenos">2601</span></a><span class="sd"> "SELECT x FROM tbl WHERE x = 'a' FOR SHARE"</span> +</span><span id="Select.lock-2602"><a href="#Select.lock-2602"><span class="linenos">2602</span></a> +</span><span id="Select.lock-2603"><a href="#Select.lock-2603"><span class="linenos">2603</span></a><span class="sd"> Args:</span> +</span><span id="Select.lock-2604"><a href="#Select.lock-2604"><span class="linenos">2604</span></a><span class="sd"> update: if `True`, the locking type will be `FOR UPDATE`, else it will be `FOR SHARE`.</span> +</span><span id="Select.lock-2605"><a href="#Select.lock-2605"><span class="linenos">2605</span></a><span class="sd"> copy: if `False`, modify this expression instance in-place.</span> +</span><span id="Select.lock-2606"><a href="#Select.lock-2606"><span class="linenos">2606</span></a> +</span><span id="Select.lock-2607"><a href="#Select.lock-2607"><span class="linenos">2607</span></a><span class="sd"> Returns:</span> +</span><span id="Select.lock-2608"><a href="#Select.lock-2608"><span class="linenos">2608</span></a><span class="sd"> The modified expression.</span> +</span><span id="Select.lock-2609"><a href="#Select.lock-2609"><span class="linenos">2609</span></a><span class="sd"> """</span> +</span><span id="Select.lock-2610"><a href="#Select.lock-2610"><span class="linenos">2610</span></a> +</span><span id="Select.lock-2611"><a href="#Select.lock-2611"><span class="linenos">2611</span></a> <span class="n">inst</span> <span class="o">=</span> <span class="n">_maybe_copy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">copy</span><span class="p">)</span> +</span><span id="Select.lock-2612"><a href="#Select.lock-2612"><span class="linenos">2612</span></a> <span class="n">inst</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"lock"</span><span class="p">,</span> <span class="n">Lock</span><span class="p">(</span><span class="n">update</span><span class="o">=</span><span class="n">update</span><span class="p">))</span> +</span><span id="Select.lock-2613"><a href="#Select.lock-2613"><span class="linenos">2613</span></a> +</span><span id="Select.lock-2614"><a href="#Select.lock-2614"><span class="linenos">2614</span></a> <span class="k">return</span> <span class="n">inst</span> </span></pre></div> @@ -22534,30 +23053,30 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Subquery"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-2517"><a href="#Subquery-2517"><span class="linenos">2517</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> -</span><span id="Subquery-2518"><a href="#Subquery-2518"><span class="linenos">2518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Subquery-2519"><a href="#Subquery-2519"><span class="linenos">2519</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Subquery-2520"><a href="#Subquery-2520"><span class="linenos">2520</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Subquery-2521"><a href="#Subquery-2521"><span class="linenos">2521</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Subquery-2522"><a href="#Subquery-2522"><span class="linenos">2522</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> -</span><span id="Subquery-2523"><a href="#Subquery-2523"><span class="linenos">2523</span></a> <span class="p">}</span> -</span><span id="Subquery-2524"><a href="#Subquery-2524"><span class="linenos">2524</span></a> -</span><span id="Subquery-2525"><a href="#Subquery-2525"><span class="linenos">2525</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Subquery-2526"><a href="#Subquery-2526"><span class="linenos">2526</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Subquery-2527"><a href="#Subquery-2527"><span class="linenos">2527</span></a><span class="sd"> Returns the first non subquery.</span> -</span><span id="Subquery-2528"><a href="#Subquery-2528"><span class="linenos">2528</span></a><span class="sd"> """</span> -</span><span id="Subquery-2529"><a href="#Subquery-2529"><span class="linenos">2529</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span> -</span><span id="Subquery-2530"><a href="#Subquery-2530"><span class="linenos">2530</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span> -</span><span id="Subquery-2531"><a href="#Subquery-2531"><span class="linenos">2531</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Subquery-2532"><a href="#Subquery-2532"><span class="linenos">2532</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="Subquery-2533"><a href="#Subquery-2533"><span class="linenos">2533</span></a> -</span><span id="Subquery-2534"><a href="#Subquery-2534"><span class="linenos">2534</span></a> <span class="nd">@property</span> -</span><span id="Subquery-2535"><a href="#Subquery-2535"><span class="linenos">2535</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Subquery-2536"><a href="#Subquery-2536"><span class="linenos">2536</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> -</span><span id="Subquery-2537"><a href="#Subquery-2537"><span class="linenos">2537</span></a> -</span><span id="Subquery-2538"><a href="#Subquery-2538"><span class="linenos">2538</span></a> <span class="nd">@property</span> -</span><span id="Subquery-2539"><a href="#Subquery-2539"><span class="linenos">2539</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Subquery-2540"><a href="#Subquery-2540"><span class="linenos">2540</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery-2629"><a href="#Subquery-2629"><span class="linenos">2629</span></a><span class="k">class</span> <span class="nc">Subquery</span><span class="p">(</span><span class="n">DerivedTable</span><span class="p">,</span> <span class="n">Unionable</span><span class="p">):</span> +</span><span id="Subquery-2630"><a href="#Subquery-2630"><span class="linenos">2630</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Subquery-2631"><a href="#Subquery-2631"><span class="linenos">2631</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Subquery-2632"><a href="#Subquery-2632"><span class="linenos">2632</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Subquery-2633"><a href="#Subquery-2633"><span class="linenos">2633</span></a> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Subquery-2634"><a href="#Subquery-2634"><span class="linenos">2634</span></a> <span class="o">**</span><span class="n">QUERY_MODIFIERS</span><span class="p">,</span> +</span><span id="Subquery-2635"><a href="#Subquery-2635"><span class="linenos">2635</span></a> <span class="p">}</span> +</span><span id="Subquery-2636"><a href="#Subquery-2636"><span class="linenos">2636</span></a> +</span><span id="Subquery-2637"><a href="#Subquery-2637"><span class="linenos">2637</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Subquery-2638"><a href="#Subquery-2638"><span class="linenos">2638</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Subquery-2639"><a href="#Subquery-2639"><span class="linenos">2639</span></a><span class="sd"> Returns the first non subquery.</span> +</span><span id="Subquery-2640"><a href="#Subquery-2640"><span class="linenos">2640</span></a><span class="sd"> """</span> +</span><span id="Subquery-2641"><a href="#Subquery-2641"><span class="linenos">2641</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span> +</span><span id="Subquery-2642"><a href="#Subquery-2642"><span class="linenos">2642</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span> +</span><span id="Subquery-2643"><a href="#Subquery-2643"><span class="linenos">2643</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Subquery-2644"><a href="#Subquery-2644"><span class="linenos">2644</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Subquery-2645"><a href="#Subquery-2645"><span class="linenos">2645</span></a> +</span><span id="Subquery-2646"><a href="#Subquery-2646"><span class="linenos">2646</span></a> <span class="nd">@property</span> +</span><span id="Subquery-2647"><a href="#Subquery-2647"><span class="linenos">2647</span></a> <span class="k">def</span> <span class="nf">is_star</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Subquery-2648"><a href="#Subquery-2648"><span class="linenos">2648</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">is_star</span> +</span><span id="Subquery-2649"><a href="#Subquery-2649"><span class="linenos">2649</span></a> +</span><span id="Subquery-2650"><a href="#Subquery-2650"><span class="linenos">2650</span></a> <span class="nd">@property</span> +</span><span id="Subquery-2651"><a href="#Subquery-2651"><span class="linenos">2651</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Subquery-2652"><a href="#Subquery-2652"><span class="linenos">2652</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> </span></pre></div> @@ -22574,14 +23093,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Subquery.unnest"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-2525"><a href="#Subquery.unnest-2525"><span class="linenos">2525</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Subquery.unnest-2526"><a href="#Subquery.unnest-2526"><span class="linenos">2526</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Subquery.unnest-2527"><a href="#Subquery.unnest-2527"><span class="linenos">2527</span></a><span class="sd"> Returns the first non subquery.</span> -</span><span id="Subquery.unnest-2528"><a href="#Subquery.unnest-2528"><span class="linenos">2528</span></a><span class="sd"> """</span> -</span><span id="Subquery.unnest-2529"><a href="#Subquery.unnest-2529"><span class="linenos">2529</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span> -</span><span id="Subquery.unnest-2530"><a href="#Subquery.unnest-2530"><span class="linenos">2530</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span> -</span><span id="Subquery.unnest-2531"><a href="#Subquery.unnest-2531"><span class="linenos">2531</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Subquery.unnest-2532"><a href="#Subquery.unnest-2532"><span class="linenos">2532</span></a> <span class="k">return</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Subquery.unnest-2637"><a href="#Subquery.unnest-2637"><span class="linenos">2637</span></a> <span class="k">def</span> <span class="nf">unnest</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Subquery.unnest-2638"><a href="#Subquery.unnest-2638"><span class="linenos">2638</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Subquery.unnest-2639"><a href="#Subquery.unnest-2639"><span class="linenos">2639</span></a><span class="sd"> Returns the first non subquery.</span> +</span><span id="Subquery.unnest-2640"><a href="#Subquery.unnest-2640"><span class="linenos">2640</span></a><span class="sd"> """</span> +</span><span id="Subquery.unnest-2641"><a href="#Subquery.unnest-2641"><span class="linenos">2641</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span> +</span><span id="Subquery.unnest-2642"><a href="#Subquery.unnest-2642"><span class="linenos">2642</span></a> <span class="k">while</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">Subquery</span><span class="p">):</span> +</span><span id="Subquery.unnest-2643"><a href="#Subquery.unnest-2643"><span class="linenos">2643</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Subquery.unnest-2644"><a href="#Subquery.unnest-2644"><span class="linenos">2644</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -22691,19 +23210,19 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#TableSample"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-2543"><a href="#TableSample-2543"><span class="linenos">2543</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="TableSample-2544"><a href="#TableSample-2544"><span class="linenos">2544</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="TableSample-2545"><a href="#TableSample-2545"><span class="linenos">2545</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2546"><a href="#TableSample-2546"><span class="linenos">2546</span></a> <span class="s2">"method"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2547"><a href="#TableSample-2547"><span class="linenos">2547</span></a> <span class="s2">"bucket_numerator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2548"><a href="#TableSample-2548"><span class="linenos">2548</span></a> <span class="s2">"bucket_denominator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2549"><a href="#TableSample-2549"><span class="linenos">2549</span></a> <span class="s2">"bucket_field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2550"><a href="#TableSample-2550"><span class="linenos">2550</span></a> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2551"><a href="#TableSample-2551"><span class="linenos">2551</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2552"><a href="#TableSample-2552"><span class="linenos">2552</span></a> <span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2553"><a href="#TableSample-2553"><span class="linenos">2553</span></a> <span class="s2">"seed"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2554"><a href="#TableSample-2554"><span class="linenos">2554</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="TableSample-2555"><a href="#TableSample-2555"><span class="linenos">2555</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TableSample-2655"><a href="#TableSample-2655"><span class="linenos">2655</span></a><span class="k">class</span> <span class="nc">TableSample</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="TableSample-2656"><a href="#TableSample-2656"><span class="linenos">2656</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="TableSample-2657"><a href="#TableSample-2657"><span class="linenos">2657</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2658"><a href="#TableSample-2658"><span class="linenos">2658</span></a> <span class="s2">"method"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2659"><a href="#TableSample-2659"><span class="linenos">2659</span></a> <span class="s2">"bucket_numerator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2660"><a href="#TableSample-2660"><span class="linenos">2660</span></a> <span class="s2">"bucket_denominator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2661"><a href="#TableSample-2661"><span class="linenos">2661</span></a> <span class="s2">"bucket_field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2662"><a href="#TableSample-2662"><span class="linenos">2662</span></a> <span class="s2">"percent"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2663"><a href="#TableSample-2663"><span class="linenos">2663</span></a> <span class="s2">"rows"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2664"><a href="#TableSample-2664"><span class="linenos">2664</span></a> <span class="s2">"size"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2665"><a href="#TableSample-2665"><span class="linenos">2665</span></a> <span class="s2">"seed"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2666"><a href="#TableSample-2666"><span class="linenos">2666</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="TableSample-2667"><a href="#TableSample-2667"><span class="linenos">2667</span></a> <span class="p">}</span> </span></pre></div> @@ -22764,14 +23283,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Tag"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-2558"><a href="#Tag-2558"><span class="linenos">2558</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Tag-2559"><a href="#Tag-2559"><span class="linenos">2559</span></a><span class="w"> </span><span class="sd">"""Tags are used for generating arbitrary sql like SELECT <span>x</span>."""</span> -</span><span id="Tag-2560"><a href="#Tag-2560"><span class="linenos">2560</span></a> -</span><span id="Tag-2561"><a href="#Tag-2561"><span class="linenos">2561</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Tag-2562"><a href="#Tag-2562"><span class="linenos">2562</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Tag-2563"><a href="#Tag-2563"><span class="linenos">2563</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Tag-2564"><a href="#Tag-2564"><span class="linenos">2564</span></a> <span class="s2">"postfix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Tag-2565"><a href="#Tag-2565"><span class="linenos">2565</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Tag-2670"><a href="#Tag-2670"><span class="linenos">2670</span></a><span class="k">class</span> <span class="nc">Tag</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Tag-2671"><a href="#Tag-2671"><span class="linenos">2671</span></a><span class="w"> </span><span class="sd">"""Tags are used for generating arbitrary sql like SELECT <span>x</span>."""</span> +</span><span id="Tag-2672"><a href="#Tag-2672"><span class="linenos">2672</span></a> +</span><span id="Tag-2673"><a href="#Tag-2673"><span class="linenos">2673</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Tag-2674"><a href="#Tag-2674"><span class="linenos">2674</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Tag-2675"><a href="#Tag-2675"><span class="linenos">2675</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Tag-2676"><a href="#Tag-2676"><span class="linenos">2676</span></a> <span class="s2">"postfix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Tag-2677"><a href="#Tag-2677"><span class="linenos">2677</span></a> <span class="p">}</span> </span></pre></div> @@ -22834,14 +23353,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Pivot"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-2568"><a href="#Pivot-2568"><span class="linenos">2568</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Pivot-2569"><a href="#Pivot-2569"><span class="linenos">2569</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Pivot-2570"><a href="#Pivot-2570"><span class="linenos">2570</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Pivot-2571"><a href="#Pivot-2571"><span class="linenos">2571</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Pivot-2572"><a href="#Pivot-2572"><span class="linenos">2572</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Pivot-2573"><a href="#Pivot-2573"><span class="linenos">2573</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Pivot-2574"><a href="#Pivot-2574"><span class="linenos">2574</span></a> <span class="s2">"unpivot"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Pivot-2575"><a href="#Pivot-2575"><span class="linenos">2575</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Pivot-2680"><a href="#Pivot-2680"><span class="linenos">2680</span></a><span class="k">class</span> <span class="nc">Pivot</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Pivot-2681"><a href="#Pivot-2681"><span class="linenos">2681</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Pivot-2682"><a href="#Pivot-2682"><span class="linenos">2682</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Pivot-2683"><a href="#Pivot-2683"><span class="linenos">2683</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Pivot-2684"><a href="#Pivot-2684"><span class="linenos">2684</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Pivot-2685"><a href="#Pivot-2685"><span class="linenos">2685</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Pivot-2686"><a href="#Pivot-2686"><span class="linenos">2686</span></a> <span class="s2">"unpivot"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Pivot-2687"><a href="#Pivot-2687"><span class="linenos">2687</span></a> <span class="p">}</span> </span></pre></div> @@ -22902,14 +23421,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Window"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Window-2578"><a href="#Window-2578"><span class="linenos">2578</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Window-2579"><a href="#Window-2579"><span class="linenos">2579</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Window-2580"><a href="#Window-2580"><span class="linenos">2580</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Window-2581"><a href="#Window-2581"><span class="linenos">2581</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Window-2582"><a href="#Window-2582"><span class="linenos">2582</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Window-2583"><a href="#Window-2583"><span class="linenos">2583</span></a> <span class="s2">"spec"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Window-2584"><a href="#Window-2584"><span class="linenos">2584</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Window-2585"><a href="#Window-2585"><span class="linenos">2585</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Window-2690"><a href="#Window-2690"><span class="linenos">2690</span></a><span class="k">class</span> <span class="nc">Window</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Window-2691"><a href="#Window-2691"><span class="linenos">2691</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Window-2692"><a href="#Window-2692"><span class="linenos">2692</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Window-2693"><a href="#Window-2693"><span class="linenos">2693</span></a> <span class="s2">"partition_by"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Window-2694"><a href="#Window-2694"><span class="linenos">2694</span></a> <span class="s2">"order"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Window-2695"><a href="#Window-2695"><span class="linenos">2695</span></a> <span class="s2">"spec"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Window-2696"><a href="#Window-2696"><span class="linenos">2696</span></a> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Window-2697"><a href="#Window-2697"><span class="linenos">2697</span></a> <span class="p">}</span> </span></pre></div> @@ -22970,14 +23489,14 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#WindowSpec"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-2588"><a href="#WindowSpec-2588"><span class="linenos">2588</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="WindowSpec-2589"><a href="#WindowSpec-2589"><span class="linenos">2589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="WindowSpec-2590"><a href="#WindowSpec-2590"><span class="linenos">2590</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="WindowSpec-2591"><a href="#WindowSpec-2591"><span class="linenos">2591</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="WindowSpec-2592"><a href="#WindowSpec-2592"><span class="linenos">2592</span></a> <span class="s2">"start_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="WindowSpec-2593"><a href="#WindowSpec-2593"><span class="linenos">2593</span></a> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="WindowSpec-2594"><a href="#WindowSpec-2594"><span class="linenos">2594</span></a> <span class="s2">"end_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="WindowSpec-2595"><a href="#WindowSpec-2595"><span class="linenos">2595</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="WindowSpec-2700"><a href="#WindowSpec-2700"><span class="linenos">2700</span></a><span class="k">class</span> <span class="nc">WindowSpec</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="WindowSpec-2701"><a href="#WindowSpec-2701"><span class="linenos">2701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="WindowSpec-2702"><a href="#WindowSpec-2702"><span class="linenos">2702</span></a> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="WindowSpec-2703"><a href="#WindowSpec-2703"><span class="linenos">2703</span></a> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="WindowSpec-2704"><a href="#WindowSpec-2704"><span class="linenos">2704</span></a> <span class="s2">"start_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="WindowSpec-2705"><a href="#WindowSpec-2705"><span class="linenos">2705</span></a> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="WindowSpec-2706"><a href="#WindowSpec-2706"><span class="linenos">2706</span></a> <span class="s2">"end_side"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="WindowSpec-2707"><a href="#WindowSpec-2707"><span class="linenos">2707</span></a> <span class="p">}</span> </span></pre></div> @@ -23038,8 +23557,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Where"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Where-2598"><a href="#Where-2598"><span class="linenos">2598</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Where-2599"><a href="#Where-2599"><span class="linenos">2599</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Where-2710"><a href="#Where-2710"><span class="linenos">2710</span></a><span class="k">class</span> <span class="nc">Where</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Where-2711"><a href="#Where-2711"><span class="linenos">2711</span></a> <span class="k">pass</span> </span></pre></div> @@ -23100,16 +23619,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Star"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Star-2602"><a href="#Star-2602"><span class="linenos">2602</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Star-2603"><a href="#Star-2603"><span class="linenos">2603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Star-2604"><a href="#Star-2604"><span class="linenos">2604</span></a> -</span><span id="Star-2605"><a href="#Star-2605"><span class="linenos">2605</span></a> <span class="nd">@property</span> -</span><span id="Star-2606"><a href="#Star-2606"><span class="linenos">2606</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Star-2607"><a href="#Star-2607"><span class="linenos">2607</span></a> <span class="k">return</span> <span class="s2">"*"</span> -</span><span id="Star-2608"><a href="#Star-2608"><span class="linenos">2608</span></a> -</span><span id="Star-2609"><a href="#Star-2609"><span class="linenos">2609</span></a> <span class="nd">@property</span> -</span><span id="Star-2610"><a href="#Star-2610"><span class="linenos">2610</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Star-2611"><a href="#Star-2611"><span class="linenos">2611</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Star-2714"><a href="#Star-2714"><span class="linenos">2714</span></a><span class="k">class</span> <span class="nc">Star</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Star-2715"><a href="#Star-2715"><span class="linenos">2715</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Star-2716"><a href="#Star-2716"><span class="linenos">2716</span></a> +</span><span id="Star-2717"><a href="#Star-2717"><span class="linenos">2717</span></a> <span class="nd">@property</span> +</span><span id="Star-2718"><a href="#Star-2718"><span class="linenos">2718</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Star-2719"><a href="#Star-2719"><span class="linenos">2719</span></a> <span class="k">return</span> <span class="s2">"*"</span> +</span><span id="Star-2720"><a href="#Star-2720"><span class="linenos">2720</span></a> +</span><span id="Star-2721"><a href="#Star-2721"><span class="linenos">2721</span></a> <span class="nd">@property</span> +</span><span id="Star-2722"><a href="#Star-2722"><span class="linenos">2722</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Star-2723"><a href="#Star-2723"><span class="linenos">2723</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> </span></pre></div> @@ -23199,8 +23718,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Parameter"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-2614"><a href="#Parameter-2614"><span class="linenos">2614</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Parameter-2615"><a href="#Parameter-2615"><span class="linenos">2615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parameter-2726"><a href="#Parameter-2726"><span class="linenos">2726</span></a><span class="k">class</span> <span class="nc">Parameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Parameter-2727"><a href="#Parameter-2727"><span class="linenos">2727</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"wrapped"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -23261,8 +23780,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#SessionParameter"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-2618"><a href="#SessionParameter-2618"><span class="linenos">2618</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="SessionParameter-2619"><a href="#SessionParameter-2619"><span class="linenos">2619</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SessionParameter-2730"><a href="#SessionParameter-2730"><span class="linenos">2730</span></a><span class="k">class</span> <span class="nc">SessionParameter</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="SessionParameter-2731"><a href="#SessionParameter-2731"><span class="linenos">2731</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -23323,8 +23842,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Placeholder"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-2622"><a href="#Placeholder-2622"><span class="linenos">2622</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Placeholder-2623"><a href="#Placeholder-2623"><span class="linenos">2623</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Placeholder-2734"><a href="#Placeholder-2734"><span class="linenos">2734</span></a><span class="k">class</span> <span class="nc">Placeholder</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Placeholder-2735"><a href="#Placeholder-2735"><span class="linenos">2735</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -23385,12 +23904,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Null"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Null-2626"><a href="#Null-2626"><span class="linenos">2626</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Null-2627"><a href="#Null-2627"><span class="linenos">2627</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="Null-2628"><a href="#Null-2628"><span class="linenos">2628</span></a> -</span><span id="Null-2629"><a href="#Null-2629"><span class="linenos">2629</span></a> <span class="nd">@property</span> -</span><span id="Null-2630"><a href="#Null-2630"><span class="linenos">2630</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Null-2631"><a href="#Null-2631"><span class="linenos">2631</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Null-2738"><a href="#Null-2738"><span class="linenos">2738</span></a><span class="k">class</span> <span class="nc">Null</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Null-2739"><a href="#Null-2739"><span class="linenos">2739</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Null-2740"><a href="#Null-2740"><span class="linenos">2740</span></a> +</span><span id="Null-2741"><a href="#Null-2741"><span class="linenos">2741</span></a> <span class="nd">@property</span> +</span><span id="Null-2742"><a href="#Null-2742"><span class="linenos">2742</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Null-2743"><a href="#Null-2743"><span class="linenos">2743</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> </span></pre></div> @@ -23457,8 +23976,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Boolean"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-2634"><a href="#Boolean-2634"><span class="linenos">2634</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Boolean-2635"><a href="#Boolean-2635"><span class="linenos">2635</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Boolean-2746"><a href="#Boolean-2746"><span class="linenos">2746</span></a><span class="k">class</span> <span class="nc">Boolean</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Boolean-2747"><a href="#Boolean-2747"><span class="linenos">2747</span></a> <span class="k">pass</span> </span></pre></div> @@ -23525,127 +24044,127 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#DataType"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-2638"><a href="#DataType-2638"><span class="linenos">2638</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="DataType-2639"><a href="#DataType-2639"><span class="linenos">2639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DataType-2640"><a href="#DataType-2640"><span class="linenos">2640</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="DataType-2641"><a href="#DataType-2641"><span class="linenos">2641</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="DataType-2642"><a href="#DataType-2642"><span class="linenos">2642</span></a> <span class="s2">"nested"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="DataType-2643"><a href="#DataType-2643"><span class="linenos">2643</span></a> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="DataType-2644"><a href="#DataType-2644"><span class="linenos">2644</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="DataType-2645"><a href="#DataType-2645"><span class="linenos">2645</span></a> <span class="p">}</span> -</span><span id="DataType-2646"><a href="#DataType-2646"><span class="linenos">2646</span></a> -</span><span id="DataType-2647"><a href="#DataType-2647"><span class="linenos">2647</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> -</span><span id="DataType-2648"><a href="#DataType-2648"><span class="linenos">2648</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2649"><a href="#DataType-2649"><span class="linenos">2649</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2650"><a href="#DataType-2650"><span class="linenos">2650</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2651"><a href="#DataType-2651"><span class="linenos">2651</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2652"><a href="#DataType-2652"><span class="linenos">2652</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2653"><a href="#DataType-2653"><span class="linenos">2653</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2654"><a href="#DataType-2654"><span class="linenos">2654</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2655"><a href="#DataType-2655"><span class="linenos">2655</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2656"><a href="#DataType-2656"><span class="linenos">2656</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2657"><a href="#DataType-2657"><span class="linenos">2657</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2658"><a href="#DataType-2658"><span class="linenos">2658</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2659"><a href="#DataType-2659"><span class="linenos">2659</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2660"><a href="#DataType-2660"><span class="linenos">2660</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2661"><a href="#DataType-2661"><span class="linenos">2661</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2662"><a href="#DataType-2662"><span class="linenos">2662</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2663"><a href="#DataType-2663"><span class="linenos">2663</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2664"><a href="#DataType-2664"><span class="linenos">2664</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2665"><a href="#DataType-2665"><span class="linenos">2665</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2666"><a href="#DataType-2666"><span class="linenos">2666</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2667"><a href="#DataType-2667"><span class="linenos">2667</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2668"><a href="#DataType-2668"><span class="linenos">2668</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2669"><a href="#DataType-2669"><span class="linenos">2669</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2670"><a href="#DataType-2670"><span class="linenos">2670</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2671"><a href="#DataType-2671"><span class="linenos">2671</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2672"><a href="#DataType-2672"><span class="linenos">2672</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2673"><a href="#DataType-2673"><span class="linenos">2673</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2674"><a href="#DataType-2674"><span class="linenos">2674</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2675"><a href="#DataType-2675"><span class="linenos">2675</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2676"><a href="#DataType-2676"><span class="linenos">2676</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2677"><a href="#DataType-2677"><span class="linenos">2677</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2678"><a href="#DataType-2678"><span class="linenos">2678</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2679"><a href="#DataType-2679"><span class="linenos">2679</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2680"><a href="#DataType-2680"><span class="linenos">2680</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2681"><a href="#DataType-2681"><span class="linenos">2681</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2682"><a href="#DataType-2682"><span class="linenos">2682</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2683"><a href="#DataType-2683"><span class="linenos">2683</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2684"><a href="#DataType-2684"><span class="linenos">2684</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2685"><a href="#DataType-2685"><span class="linenos">2685</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2686"><a href="#DataType-2686"><span class="linenos">2686</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2687"><a href="#DataType-2687"><span class="linenos">2687</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2688"><a href="#DataType-2688"><span class="linenos">2688</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2689"><a href="#DataType-2689"><span class="linenos">2689</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2690"><a href="#DataType-2690"><span class="linenos">2690</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2691"><a href="#DataType-2691"><span class="linenos">2691</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2692"><a href="#DataType-2692"><span class="linenos">2692</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2693"><a href="#DataType-2693"><span class="linenos">2693</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2694"><a href="#DataType-2694"><span class="linenos">2694</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2695"><a href="#DataType-2695"><span class="linenos">2695</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2696"><a href="#DataType-2696"><span class="linenos">2696</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2697"><a href="#DataType-2697"><span class="linenos">2697</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2698"><a href="#DataType-2698"><span class="linenos">2698</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2699"><a href="#DataType-2699"><span class="linenos">2699</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2700"><a href="#DataType-2700"><span class="linenos">2700</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2701"><a href="#DataType-2701"><span class="linenos">2701</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2702"><a href="#DataType-2702"><span class="linenos">2702</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2703"><a href="#DataType-2703"><span class="linenos">2703</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType-2704"><a href="#DataType-2704"><span class="linenos">2704</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span> -</span><span id="DataType-2705"><a href="#DataType-2705"><span class="linenos">2705</span></a> -</span><span id="DataType-2706"><a href="#DataType-2706"><span class="linenos">2706</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DataType-2707"><a href="#DataType-2707"><span class="linenos">2707</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="DataType-2708"><a href="#DataType-2708"><span class="linenos">2708</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="DataType-2709"><a href="#DataType-2709"><span class="linenos">2709</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="DataType-2710"><a href="#DataType-2710"><span class="linenos">2710</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="DataType-2711"><a href="#DataType-2711"><span class="linenos">2711</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="DataType-2712"><a href="#DataType-2712"><span class="linenos">2712</span></a> <span class="p">}</span> -</span><span id="DataType-2713"><a href="#DataType-2713"><span class="linenos">2713</span></a> -</span><span id="DataType-2714"><a href="#DataType-2714"><span class="linenos">2714</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DataType-2715"><a href="#DataType-2715"><span class="linenos">2715</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="DataType-2716"><a href="#DataType-2716"><span class="linenos">2716</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="DataType-2717"><a href="#DataType-2717"><span class="linenos">2717</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="DataType-2718"><a href="#DataType-2718"><span class="linenos">2718</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="DataType-2719"><a href="#DataType-2719"><span class="linenos">2719</span></a> <span class="p">}</span> -</span><span id="DataType-2720"><a href="#DataType-2720"><span class="linenos">2720</span></a> -</span><span id="DataType-2721"><a href="#DataType-2721"><span class="linenos">2721</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DataType-2722"><a href="#DataType-2722"><span class="linenos">2722</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="DataType-2723"><a href="#DataType-2723"><span class="linenos">2723</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="DataType-2724"><a href="#DataType-2724"><span class="linenos">2724</span></a> <span class="p">}</span> -</span><span id="DataType-2725"><a href="#DataType-2725"><span class="linenos">2725</span></a> -</span><span id="DataType-2726"><a href="#DataType-2726"><span class="linenos">2726</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span> -</span><span id="DataType-2727"><a href="#DataType-2727"><span class="linenos">2727</span></a> -</span><span id="DataType-2728"><a href="#DataType-2728"><span class="linenos">2728</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="DataType-2729"><a href="#DataType-2729"><span class="linenos">2729</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="DataType-2730"><a href="#DataType-2730"><span class="linenos">2730</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="DataType-2731"><a href="#DataType-2731"><span class="linenos">2731</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="DataType-2732"><a href="#DataType-2732"><span class="linenos">2732</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="DataType-2733"><a href="#DataType-2733"><span class="linenos">2733</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="DataType-2734"><a href="#DataType-2734"><span class="linenos">2734</span></a> <span class="p">}</span> -</span><span id="DataType-2735"><a href="#DataType-2735"><span class="linenos">2735</span></a> -</span><span id="DataType-2736"><a href="#DataType-2736"><span class="linenos">2736</span></a> <span class="nd">@classmethod</span> -</span><span id="DataType-2737"><a href="#DataType-2737"><span class="linenos">2737</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span> -</span><span id="DataType-2738"><a href="#DataType-2738"><span class="linenos">2738</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> -</span><span id="DataType-2739"><a href="#DataType-2739"><span class="linenos">2739</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">DataType</span><span class="p">:</span> -</span><span id="DataType-2740"><a href="#DataType-2740"><span class="linenos">2740</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span> -</span><span id="DataType-2741"><a href="#DataType-2741"><span class="linenos">2741</span></a> -</span><span id="DataType-2742"><a href="#DataType-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="DataType-2743"><a href="#DataType-2743"><span class="linenos">2743</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span> -</span><span id="DataType-2744"><a href="#DataType-2744"><span class="linenos">2744</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> -</span><span id="DataType-2745"><a href="#DataType-2745"><span class="linenos">2745</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="DataType-2746"><a href="#DataType-2746"><span class="linenos">2746</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="DataType-2747"><a href="#DataType-2747"><span class="linenos">2747</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="DataType-2748"><a href="#DataType-2748"><span class="linenos">2748</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="DataType-2749"><a href="#DataType-2749"><span class="linenos">2749</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span> -</span><span id="DataType-2750"><a href="#DataType-2750"><span class="linenos">2750</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span> -</span><span id="DataType-2751"><a href="#DataType-2751"><span class="linenos">2751</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span> -</span><span id="DataType-2752"><a href="#DataType-2752"><span class="linenos">2752</span></a> <span class="k">return</span> <span class="n">dtype</span> -</span><span id="DataType-2753"><a href="#DataType-2753"><span class="linenos">2753</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="DataType-2754"><a href="#DataType-2754"><span class="linenos">2754</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type"</span><span class="p">)</span> -</span><span id="DataType-2755"><a href="#DataType-2755"><span class="linenos">2755</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span> -</span><span id="DataType-2756"><a href="#DataType-2756"><span class="linenos">2756</span></a> -</span><span id="DataType-2757"><a href="#DataType-2757"><span class="linenos">2757</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="DataType-2758"><a href="#DataType-2758"><span class="linenos">2758</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DataType-2750"><a href="#DataType-2750"><span class="linenos">2750</span></a><span class="k">class</span> <span class="nc">DataType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="DataType-2751"><a href="#DataType-2751"><span class="linenos">2751</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DataType-2752"><a href="#DataType-2752"><span class="linenos">2752</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="DataType-2753"><a href="#DataType-2753"><span class="linenos">2753</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="DataType-2754"><a href="#DataType-2754"><span class="linenos">2754</span></a> <span class="s2">"nested"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="DataType-2755"><a href="#DataType-2755"><span class="linenos">2755</span></a> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="DataType-2756"><a href="#DataType-2756"><span class="linenos">2756</span></a> <span class="s2">"prefix"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="DataType-2757"><a href="#DataType-2757"><span class="linenos">2757</span></a> <span class="p">}</span> +</span><span id="DataType-2758"><a href="#DataType-2758"><span class="linenos">2758</span></a> +</span><span id="DataType-2759"><a href="#DataType-2759"><span class="linenos">2759</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> +</span><span id="DataType-2760"><a href="#DataType-2760"><span class="linenos">2760</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2761"><a href="#DataType-2761"><span class="linenos">2761</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2762"><a href="#DataType-2762"><span class="linenos">2762</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2763"><a href="#DataType-2763"><span class="linenos">2763</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2764"><a href="#DataType-2764"><span class="linenos">2764</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2765"><a href="#DataType-2765"><span class="linenos">2765</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2766"><a href="#DataType-2766"><span class="linenos">2766</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2767"><a href="#DataType-2767"><span class="linenos">2767</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2768"><a href="#DataType-2768"><span class="linenos">2768</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2769"><a href="#DataType-2769"><span class="linenos">2769</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2770"><a href="#DataType-2770"><span class="linenos">2770</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2771"><a href="#DataType-2771"><span class="linenos">2771</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2772"><a href="#DataType-2772"><span class="linenos">2772</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2773"><a href="#DataType-2773"><span class="linenos">2773</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2774"><a href="#DataType-2774"><span class="linenos">2774</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2775"><a href="#DataType-2775"><span class="linenos">2775</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2776"><a href="#DataType-2776"><span class="linenos">2776</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2777"><a href="#DataType-2777"><span class="linenos">2777</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2778"><a href="#DataType-2778"><span class="linenos">2778</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2779"><a href="#DataType-2779"><span class="linenos">2779</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2780"><a href="#DataType-2780"><span class="linenos">2780</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2781"><a href="#DataType-2781"><span class="linenos">2781</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2782"><a href="#DataType-2782"><span class="linenos">2782</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2783"><a href="#DataType-2783"><span class="linenos">2783</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2784"><a href="#DataType-2784"><span class="linenos">2784</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2785"><a href="#DataType-2785"><span class="linenos">2785</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2786"><a href="#DataType-2786"><span class="linenos">2786</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2787"><a href="#DataType-2787"><span class="linenos">2787</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2788"><a href="#DataType-2788"><span class="linenos">2788</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2789"><a href="#DataType-2789"><span class="linenos">2789</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2790"><a href="#DataType-2790"><span class="linenos">2790</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2791"><a href="#DataType-2791"><span class="linenos">2791</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2792"><a href="#DataType-2792"><span class="linenos">2792</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2793"><a href="#DataType-2793"><span class="linenos">2793</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2794"><a href="#DataType-2794"><span class="linenos">2794</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2795"><a href="#DataType-2795"><span class="linenos">2795</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2796"><a href="#DataType-2796"><span class="linenos">2796</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2797"><a href="#DataType-2797"><span class="linenos">2797</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2798"><a href="#DataType-2798"><span class="linenos">2798</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2799"><a href="#DataType-2799"><span class="linenos">2799</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2800"><a href="#DataType-2800"><span class="linenos">2800</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2801"><a href="#DataType-2801"><span class="linenos">2801</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2802"><a href="#DataType-2802"><span class="linenos">2802</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2803"><a href="#DataType-2803"><span class="linenos">2803</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2804"><a href="#DataType-2804"><span class="linenos">2804</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2805"><a href="#DataType-2805"><span class="linenos">2805</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2806"><a href="#DataType-2806"><span class="linenos">2806</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2807"><a href="#DataType-2807"><span class="linenos">2807</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2808"><a href="#DataType-2808"><span class="linenos">2808</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2809"><a href="#DataType-2809"><span class="linenos">2809</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2810"><a href="#DataType-2810"><span class="linenos">2810</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2811"><a href="#DataType-2811"><span class="linenos">2811</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2812"><a href="#DataType-2812"><span class="linenos">2812</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2813"><a href="#DataType-2813"><span class="linenos">2813</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2814"><a href="#DataType-2814"><span class="linenos">2814</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2815"><a href="#DataType-2815"><span class="linenos">2815</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType-2816"><a href="#DataType-2816"><span class="linenos">2816</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span> +</span><span id="DataType-2817"><a href="#DataType-2817"><span class="linenos">2817</span></a> +</span><span id="DataType-2818"><a href="#DataType-2818"><span class="linenos">2818</span></a> <span class="n">TEXT_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DataType-2819"><a href="#DataType-2819"><span class="linenos">2819</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="DataType-2820"><a href="#DataType-2820"><span class="linenos">2820</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="DataType-2821"><a href="#DataType-2821"><span class="linenos">2821</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="DataType-2822"><a href="#DataType-2822"><span class="linenos">2822</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="DataType-2823"><a href="#DataType-2823"><span class="linenos">2823</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="DataType-2824"><a href="#DataType-2824"><span class="linenos">2824</span></a> <span class="p">}</span> +</span><span id="DataType-2825"><a href="#DataType-2825"><span class="linenos">2825</span></a> +</span><span id="DataType-2826"><a href="#DataType-2826"><span class="linenos">2826</span></a> <span class="n">INTEGER_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DataType-2827"><a href="#DataType-2827"><span class="linenos">2827</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="DataType-2828"><a href="#DataType-2828"><span class="linenos">2828</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="DataType-2829"><a href="#DataType-2829"><span class="linenos">2829</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="DataType-2830"><a href="#DataType-2830"><span class="linenos">2830</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="DataType-2831"><a href="#DataType-2831"><span class="linenos">2831</span></a> <span class="p">}</span> +</span><span id="DataType-2832"><a href="#DataType-2832"><span class="linenos">2832</span></a> +</span><span id="DataType-2833"><a href="#DataType-2833"><span class="linenos">2833</span></a> <span class="n">FLOAT_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DataType-2834"><a href="#DataType-2834"><span class="linenos">2834</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="DataType-2835"><a href="#DataType-2835"><span class="linenos">2835</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="DataType-2836"><a href="#DataType-2836"><span class="linenos">2836</span></a> <span class="p">}</span> +</span><span id="DataType-2837"><a href="#DataType-2837"><span class="linenos">2837</span></a> +</span><span id="DataType-2838"><a href="#DataType-2838"><span class="linenos">2838</span></a> <span class="n">NUMERIC_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="o">*</span><span class="n">INTEGER_TYPES</span><span class="p">,</span> <span class="o">*</span><span class="n">FLOAT_TYPES</span><span class="p">}</span> +</span><span id="DataType-2839"><a href="#DataType-2839"><span class="linenos">2839</span></a> +</span><span id="DataType-2840"><a href="#DataType-2840"><span class="linenos">2840</span></a> <span class="n">TEMPORAL_TYPES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="DataType-2841"><a href="#DataType-2841"><span class="linenos">2841</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="DataType-2842"><a href="#DataType-2842"><span class="linenos">2842</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="DataType-2843"><a href="#DataType-2843"><span class="linenos">2843</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="DataType-2844"><a href="#DataType-2844"><span class="linenos">2844</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="DataType-2845"><a href="#DataType-2845"><span class="linenos">2845</span></a> <span class="n">Type</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="DataType-2846"><a href="#DataType-2846"><span class="linenos">2846</span></a> <span class="p">}</span> +</span><span id="DataType-2847"><a href="#DataType-2847"><span class="linenos">2847</span></a> +</span><span id="DataType-2848"><a href="#DataType-2848"><span class="linenos">2848</span></a> <span class="nd">@classmethod</span> +</span><span id="DataType-2849"><a href="#DataType-2849"><span class="linenos">2849</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span> +</span><span id="DataType-2850"><a href="#DataType-2850"><span class="linenos">2850</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> +</span><span id="DataType-2851"><a href="#DataType-2851"><span class="linenos">2851</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">DataType</span><span class="p">:</span> +</span><span id="DataType-2852"><a href="#DataType-2852"><span class="linenos">2852</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span> +</span><span id="DataType-2853"><a href="#DataType-2853"><span class="linenos">2853</span></a> +</span><span id="DataType-2854"><a href="#DataType-2854"><span class="linenos">2854</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="DataType-2855"><a href="#DataType-2855"><span class="linenos">2855</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span> +</span><span id="DataType-2856"><a href="#DataType-2856"><span class="linenos">2856</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> +</span><span id="DataType-2857"><a href="#DataType-2857"><span class="linenos">2857</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="DataType-2858"><a href="#DataType-2858"><span class="linenos">2858</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="DataType-2859"><a href="#DataType-2859"><span class="linenos">2859</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="DataType-2860"><a href="#DataType-2860"><span class="linenos">2860</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="DataType-2861"><a href="#DataType-2861"><span class="linenos">2861</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span> +</span><span id="DataType-2862"><a href="#DataType-2862"><span class="linenos">2862</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span> +</span><span id="DataType-2863"><a href="#DataType-2863"><span class="linenos">2863</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span> +</span><span id="DataType-2864"><a href="#DataType-2864"><span class="linenos">2864</span></a> <span class="k">return</span> <span class="n">dtype</span> +</span><span id="DataType-2865"><a href="#DataType-2865"><span class="linenos">2865</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="DataType-2866"><a href="#DataType-2866"><span class="linenos">2866</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type"</span><span class="p">)</span> +</span><span id="DataType-2867"><a href="#DataType-2867"><span class="linenos">2867</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span> +</span><span id="DataType-2868"><a href="#DataType-2868"><span class="linenos">2868</span></a> +</span><span id="DataType-2869"><a href="#DataType-2869"><span class="linenos">2869</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="DataType-2870"><a href="#DataType-2870"><span class="linenos">2870</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span> </span></pre></div> @@ -23663,26 +24182,26 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#DataType.build"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-2736"><a href="#DataType.build-2736"><span class="linenos">2736</span></a> <span class="nd">@classmethod</span> -</span><span id="DataType.build-2737"><a href="#DataType.build-2737"><span class="linenos">2737</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span> -</span><span id="DataType.build-2738"><a href="#DataType.build-2738"><span class="linenos">2738</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> -</span><span id="DataType.build-2739"><a href="#DataType.build-2739"><span class="linenos">2739</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">DataType</span><span class="p">:</span> -</span><span id="DataType.build-2740"><a href="#DataType.build-2740"><span class="linenos">2740</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span> -</span><span id="DataType.build-2741"><a href="#DataType.build-2741"><span class="linenos">2741</span></a> -</span><span id="DataType.build-2742"><a href="#DataType.build-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="DataType.build-2743"><a href="#DataType.build-2743"><span class="linenos">2743</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span> -</span><span id="DataType.build-2744"><a href="#DataType.build-2744"><span class="linenos">2744</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> -</span><span id="DataType.build-2745"><a href="#DataType.build-2745"><span class="linenos">2745</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="DataType.build-2746"><a href="#DataType.build-2746"><span class="linenos">2746</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="DataType.build-2747"><a href="#DataType.build-2747"><span class="linenos">2747</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="DataType.build-2748"><a href="#DataType.build-2748"><span class="linenos">2748</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="DataType.build-2749"><a href="#DataType.build-2749"><span class="linenos">2749</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span> -</span><span id="DataType.build-2750"><a href="#DataType.build-2750"><span class="linenos">2750</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span> -</span><span id="DataType.build-2751"><a href="#DataType.build-2751"><span class="linenos">2751</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span> -</span><span id="DataType.build-2752"><a href="#DataType.build-2752"><span class="linenos">2752</span></a> <span class="k">return</span> <span class="n">dtype</span> -</span><span id="DataType.build-2753"><a href="#DataType.build-2753"><span class="linenos">2753</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="DataType.build-2754"><a href="#DataType.build-2754"><span class="linenos">2754</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type"</span><span class="p">)</span> -</span><span id="DataType.build-2755"><a href="#DataType.build-2755"><span class="linenos">2755</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.build-2848"><a href="#DataType.build-2848"><span class="linenos">2848</span></a> <span class="nd">@classmethod</span> +</span><span id="DataType.build-2849"><a href="#DataType.build-2849"><span class="linenos">2849</span></a> <span class="k">def</span> <span class="nf">build</span><span class="p">(</span> +</span><span id="DataType.build-2850"><a href="#DataType.build-2850"><span class="linenos">2850</span></a> <span class="bp">cls</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> +</span><span id="DataType.build-2851"><a href="#DataType.build-2851"><span class="linenos">2851</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">DataType</span><span class="p">:</span> +</span><span id="DataType.build-2852"><a href="#DataType.build-2852"><span class="linenos">2852</span></a> <span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">parse_one</span> +</span><span id="DataType.build-2853"><a href="#DataType.build-2853"><span class="linenos">2853</span></a> +</span><span id="DataType.build-2854"><a href="#DataType.build-2854"><span class="linenos">2854</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="DataType.build-2855"><a href="#DataType.build-2855"><span class="linenos">2855</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">Type</span><span class="o">.</span><span class="n">__members__</span><span class="p">:</span> +</span><span id="DataType.build-2856"><a href="#DataType.build-2856"><span class="linenos">2856</span></a> <span class="n">data_type_exp</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">[</span><span class="n">dtype</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> +</span><span id="DataType.build-2857"><a href="#DataType.build-2857"><span class="linenos">2857</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="DataType.build-2858"><a href="#DataType.build-2858"><span class="linenos">2858</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">parse_one</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="DataType.build-2859"><a href="#DataType.build-2859"><span class="linenos">2859</span></a> <span class="k">if</span> <span class="n">data_type_exp</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="DataType.build-2860"><a href="#DataType.build-2860"><span class="linenos">2860</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unparsable data type value: </span><span class="si">{</span><span class="n">dtype</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="DataType.build-2861"><a href="#DataType.build-2861"><span class="linenos">2861</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">):</span> +</span><span id="DataType.build-2862"><a href="#DataType.build-2862"><span class="linenos">2862</span></a> <span class="n">data_type_exp</span> <span class="o">=</span> <span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">dtype</span><span class="p">)</span> +</span><span id="DataType.build-2863"><a href="#DataType.build-2863"><span class="linenos">2863</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">dtype</span><span class="p">,</span> <span class="n">DataType</span><span class="p">):</span> +</span><span id="DataType.build-2864"><a href="#DataType.build-2864"><span class="linenos">2864</span></a> <span class="k">return</span> <span class="n">dtype</span> +</span><span id="DataType.build-2865"><a href="#DataType.build-2865"><span class="linenos">2865</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="DataType.build-2866"><a href="#DataType.build-2866"><span class="linenos">2866</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid data type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span><span class="si">}</span><span class="s2">. Expected str or DataType.Type"</span><span class="p">)</span> +</span><span id="DataType.build-2867"><a href="#DataType.build-2867"><span class="linenos">2867</span></a> <span class="k">return</span> <span class="n">DataType</span><span class="p">(</span><span class="o">**</span><span class="p">{</span><span class="o">**</span><span class="n">data_type_exp</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">})</span> </span></pre></div> @@ -23700,8 +24219,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#DataType.is_type"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-2757"><a href="#DataType.is_type-2757"><span class="linenos">2757</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="DataType.is_type-2758"><a href="#DataType.is_type-2758"><span class="linenos">2758</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.is_type-2869"><a href="#DataType.is_type-2869"><span class="linenos">2869</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="DataType.is_type-2870"><a href="#DataType.is_type-2870"><span class="linenos">2870</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">dtype</span> </span></pre></div> @@ -23763,64 +24282,64 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#DataType.Type"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-2647"><a href="#DataType.Type-2647"><span class="linenos">2647</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> -</span><span id="DataType.Type-2648"><a href="#DataType.Type-2648"><span class="linenos">2648</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2649"><a href="#DataType.Type-2649"><span class="linenos">2649</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2650"><a href="#DataType.Type-2650"><span class="linenos">2650</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2651"><a href="#DataType.Type-2651"><span class="linenos">2651</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2652"><a href="#DataType.Type-2652"><span class="linenos">2652</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2653"><a href="#DataType.Type-2653"><span class="linenos">2653</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2654"><a href="#DataType.Type-2654"><span class="linenos">2654</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2655"><a href="#DataType.Type-2655"><span class="linenos">2655</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2656"><a href="#DataType.Type-2656"><span class="linenos">2656</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2657"><a href="#DataType.Type-2657"><span class="linenos">2657</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2658"><a href="#DataType.Type-2658"><span class="linenos">2658</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2659"><a href="#DataType.Type-2659"><span class="linenos">2659</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2660"><a href="#DataType.Type-2660"><span class="linenos">2660</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2661"><a href="#DataType.Type-2661"><span class="linenos">2661</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2662"><a href="#DataType.Type-2662"><span class="linenos">2662</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2663"><a href="#DataType.Type-2663"><span class="linenos">2663</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2664"><a href="#DataType.Type-2664"><span class="linenos">2664</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2665"><a href="#DataType.Type-2665"><span class="linenos">2665</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2666"><a href="#DataType.Type-2666"><span class="linenos">2666</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2667"><a href="#DataType.Type-2667"><span class="linenos">2667</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2668"><a href="#DataType.Type-2668"><span class="linenos">2668</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2669"><a href="#DataType.Type-2669"><span class="linenos">2669</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2670"><a href="#DataType.Type-2670"><span class="linenos">2670</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2671"><a href="#DataType.Type-2671"><span class="linenos">2671</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2672"><a href="#DataType.Type-2672"><span class="linenos">2672</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2673"><a href="#DataType.Type-2673"><span class="linenos">2673</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2674"><a href="#DataType.Type-2674"><span class="linenos">2674</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2675"><a href="#DataType.Type-2675"><span class="linenos">2675</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2676"><a href="#DataType.Type-2676"><span class="linenos">2676</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2677"><a href="#DataType.Type-2677"><span class="linenos">2677</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2678"><a href="#DataType.Type-2678"><span class="linenos">2678</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2679"><a href="#DataType.Type-2679"><span class="linenos">2679</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2680"><a href="#DataType.Type-2680"><span class="linenos">2680</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2681"><a href="#DataType.Type-2681"><span class="linenos">2681</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2682"><a href="#DataType.Type-2682"><span class="linenos">2682</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2683"><a href="#DataType.Type-2683"><span class="linenos">2683</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2684"><a href="#DataType.Type-2684"><span class="linenos">2684</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2685"><a href="#DataType.Type-2685"><span class="linenos">2685</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2686"><a href="#DataType.Type-2686"><span class="linenos">2686</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2687"><a href="#DataType.Type-2687"><span class="linenos">2687</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2688"><a href="#DataType.Type-2688"><span class="linenos">2688</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2689"><a href="#DataType.Type-2689"><span class="linenos">2689</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2690"><a href="#DataType.Type-2690"><span class="linenos">2690</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2691"><a href="#DataType.Type-2691"><span class="linenos">2691</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2692"><a href="#DataType.Type-2692"><span class="linenos">2692</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2693"><a href="#DataType.Type-2693"><span class="linenos">2693</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2694"><a href="#DataType.Type-2694"><span class="linenos">2694</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2695"><a href="#DataType.Type-2695"><span class="linenos">2695</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2696"><a href="#DataType.Type-2696"><span class="linenos">2696</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2697"><a href="#DataType.Type-2697"><span class="linenos">2697</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2698"><a href="#DataType.Type-2698"><span class="linenos">2698</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2699"><a href="#DataType.Type-2699"><span class="linenos">2699</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2700"><a href="#DataType.Type-2700"><span class="linenos">2700</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2701"><a href="#DataType.Type-2701"><span class="linenos">2701</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2702"><a href="#DataType.Type-2702"><span class="linenos">2702</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2703"><a href="#DataType.Type-2703"><span class="linenos">2703</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="DataType.Type-2704"><a href="#DataType.Type-2704"><span class="linenos">2704</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DataType.Type-2759"><a href="#DataType.Type-2759"><span class="linenos">2759</span></a> <span class="k">class</span> <span class="nc">Type</span><span class="p">(</span><span class="n">AutoName</span><span class="p">):</span> +</span><span id="DataType.Type-2760"><a href="#DataType.Type-2760"><span class="linenos">2760</span></a> <span class="n">CHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2761"><a href="#DataType.Type-2761"><span class="linenos">2761</span></a> <span class="n">NCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2762"><a href="#DataType.Type-2762"><span class="linenos">2762</span></a> <span class="n">VARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2763"><a href="#DataType.Type-2763"><span class="linenos">2763</span></a> <span class="n">NVARCHAR</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2764"><a href="#DataType.Type-2764"><span class="linenos">2764</span></a> <span class="n">TEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2765"><a href="#DataType.Type-2765"><span class="linenos">2765</span></a> <span class="n">MEDIUMTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2766"><a href="#DataType.Type-2766"><span class="linenos">2766</span></a> <span class="n">LONGTEXT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2767"><a href="#DataType.Type-2767"><span class="linenos">2767</span></a> <span class="n">MEDIUMBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2768"><a href="#DataType.Type-2768"><span class="linenos">2768</span></a> <span class="n">LONGBLOB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2769"><a href="#DataType.Type-2769"><span class="linenos">2769</span></a> <span class="n">BINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2770"><a href="#DataType.Type-2770"><span class="linenos">2770</span></a> <span class="n">VARBINARY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2771"><a href="#DataType.Type-2771"><span class="linenos">2771</span></a> <span class="n">INT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2772"><a href="#DataType.Type-2772"><span class="linenos">2772</span></a> <span class="n">UINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2773"><a href="#DataType.Type-2773"><span class="linenos">2773</span></a> <span class="n">TINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2774"><a href="#DataType.Type-2774"><span class="linenos">2774</span></a> <span class="n">UTINYINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2775"><a href="#DataType.Type-2775"><span class="linenos">2775</span></a> <span class="n">SMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2776"><a href="#DataType.Type-2776"><span class="linenos">2776</span></a> <span class="n">USMALLINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2777"><a href="#DataType.Type-2777"><span class="linenos">2777</span></a> <span class="n">BIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2778"><a href="#DataType.Type-2778"><span class="linenos">2778</span></a> <span class="n">UBIGINT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2779"><a href="#DataType.Type-2779"><span class="linenos">2779</span></a> <span class="n">FLOAT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2780"><a href="#DataType.Type-2780"><span class="linenos">2780</span></a> <span class="n">DOUBLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2781"><a href="#DataType.Type-2781"><span class="linenos">2781</span></a> <span class="n">DECIMAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2782"><a href="#DataType.Type-2782"><span class="linenos">2782</span></a> <span class="n">BIT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2783"><a href="#DataType.Type-2783"><span class="linenos">2783</span></a> <span class="n">BOOLEAN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2784"><a href="#DataType.Type-2784"><span class="linenos">2784</span></a> <span class="n">JSON</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2785"><a href="#DataType.Type-2785"><span class="linenos">2785</span></a> <span class="n">JSONB</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2786"><a href="#DataType.Type-2786"><span class="linenos">2786</span></a> <span class="n">INTERVAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2787"><a href="#DataType.Type-2787"><span class="linenos">2787</span></a> <span class="n">TIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2788"><a href="#DataType.Type-2788"><span class="linenos">2788</span></a> <span class="n">TIMESTAMP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2789"><a href="#DataType.Type-2789"><span class="linenos">2789</span></a> <span class="n">TIMESTAMPTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2790"><a href="#DataType.Type-2790"><span class="linenos">2790</span></a> <span class="n">TIMESTAMPLTZ</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2791"><a href="#DataType.Type-2791"><span class="linenos">2791</span></a> <span class="n">DATE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2792"><a href="#DataType.Type-2792"><span class="linenos">2792</span></a> <span class="n">DATETIME</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2793"><a href="#DataType.Type-2793"><span class="linenos">2793</span></a> <span class="n">ARRAY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2794"><a href="#DataType.Type-2794"><span class="linenos">2794</span></a> <span class="n">MAP</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2795"><a href="#DataType.Type-2795"><span class="linenos">2795</span></a> <span class="n">UUID</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2796"><a href="#DataType.Type-2796"><span class="linenos">2796</span></a> <span class="n">GEOGRAPHY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2797"><a href="#DataType.Type-2797"><span class="linenos">2797</span></a> <span class="n">GEOMETRY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2798"><a href="#DataType.Type-2798"><span class="linenos">2798</span></a> <span class="n">STRUCT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2799"><a href="#DataType.Type-2799"><span class="linenos">2799</span></a> <span class="n">NULLABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2800"><a href="#DataType.Type-2800"><span class="linenos">2800</span></a> <span class="n">HLLSKETCH</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2801"><a href="#DataType.Type-2801"><span class="linenos">2801</span></a> <span class="n">HSTORE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2802"><a href="#DataType.Type-2802"><span class="linenos">2802</span></a> <span class="n">SUPER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2803"><a href="#DataType.Type-2803"><span class="linenos">2803</span></a> <span class="n">SERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2804"><a href="#DataType.Type-2804"><span class="linenos">2804</span></a> <span class="n">SMALLSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2805"><a href="#DataType.Type-2805"><span class="linenos">2805</span></a> <span class="n">BIGSERIAL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2806"><a href="#DataType.Type-2806"><span class="linenos">2806</span></a> <span class="n">XML</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2807"><a href="#DataType.Type-2807"><span class="linenos">2807</span></a> <span class="n">UNIQUEIDENTIFIER</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2808"><a href="#DataType.Type-2808"><span class="linenos">2808</span></a> <span class="n">MONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2809"><a href="#DataType.Type-2809"><span class="linenos">2809</span></a> <span class="n">SMALLMONEY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2810"><a href="#DataType.Type-2810"><span class="linenos">2810</span></a> <span class="n">ROWVERSION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2811"><a href="#DataType.Type-2811"><span class="linenos">2811</span></a> <span class="n">IMAGE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2812"><a href="#DataType.Type-2812"><span class="linenos">2812</span></a> <span class="n">VARIANT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2813"><a href="#DataType.Type-2813"><span class="linenos">2813</span></a> <span class="n">OBJECT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2814"><a href="#DataType.Type-2814"><span class="linenos">2814</span></a> <span class="n">INET</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2815"><a href="#DataType.Type-2815"><span class="linenos">2815</span></a> <span class="n">NULL</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="DataType.Type-2816"><a href="#DataType.Type-2816"><span class="linenos">2816</span></a> <span class="n">UNKNOWN</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> <span class="c1"># Sentinel value, useful for type annotation</span> </span></pre></div> @@ -24534,8 +25053,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#PseudoType"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-2762"><a href="#PseudoType-2762"><span class="linenos">2762</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="PseudoType-2763"><a href="#PseudoType-2763"><span class="linenos">2763</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PseudoType-2874"><a href="#PseudoType-2874"><span class="linenos">2874</span></a><span class="k">class</span> <span class="nc">PseudoType</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="PseudoType-2875"><a href="#PseudoType-2875"><span class="linenos">2875</span></a> <span class="k">pass</span> </span></pre></div> @@ -24596,8 +25115,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#StructKwarg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StructKwarg-2766"><a href="#StructKwarg-2766"><span class="linenos">2766</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="StructKwarg-2767"><a href="#StructKwarg-2767"><span class="linenos">2767</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StructKwarg-2878"><a href="#StructKwarg-2878"><span class="linenos">2878</span></a><span class="k">class</span> <span class="nc">StructKwarg</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="StructKwarg-2879"><a href="#StructKwarg-2879"><span class="linenos">2879</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -24658,8 +25177,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#SubqueryPredicate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-2771"><a href="#SubqueryPredicate-2771"><span class="linenos">2771</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> -</span><span id="SubqueryPredicate-2772"><a href="#SubqueryPredicate-2772"><span class="linenos">2772</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SubqueryPredicate-2883"><a href="#SubqueryPredicate-2883"><span class="linenos">2883</span></a><span class="k">class</span> <span class="nc">SubqueryPredicate</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> +</span><span id="SubqueryPredicate-2884"><a href="#SubqueryPredicate-2884"><span class="linenos">2884</span></a> <span class="k">pass</span> </span></pre></div> @@ -24726,8 +25245,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#All"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="All-2775"><a href="#All-2775"><span class="linenos">2775</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> -</span><span id="All-2776"><a href="#All-2776"><span class="linenos">2776</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="All-2887"><a href="#All-2887"><span class="linenos">2887</span></a><span class="k">class</span> <span class="nc">All</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> +</span><span id="All-2888"><a href="#All-2888"><span class="linenos">2888</span></a> <span class="k">pass</span> </span></pre></div> @@ -24794,8 +25313,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Any"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Any-2779"><a href="#Any-2779"><span class="linenos">2779</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> -</span><span id="Any-2780"><a href="#Any-2780"><span class="linenos">2780</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Any-2891"><a href="#Any-2891"><span class="linenos">2891</span></a><span class="k">class</span> <span class="nc">Any</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> +</span><span id="Any-2892"><a href="#Any-2892"><span class="linenos">2892</span></a> <span class="k">pass</span> </span></pre></div> @@ -24862,8 +25381,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Exists"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-2783"><a href="#Exists-2783"><span class="linenos">2783</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> -</span><span id="Exists-2784"><a href="#Exists-2784"><span class="linenos">2784</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Exists-2895"><a href="#Exists-2895"><span class="linenos">2895</span></a><span class="k">class</span> <span class="nc">Exists</span><span class="p">(</span><span class="n">SubqueryPredicate</span><span class="p">):</span> +</span><span id="Exists-2896"><a href="#Exists-2896"><span class="linenos">2896</span></a> <span class="k">pass</span> </span></pre></div> @@ -24930,8 +25449,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Command"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Command-2789"><a href="#Command-2789"><span class="linenos">2789</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Command-2790"><a href="#Command-2790"><span class="linenos">2790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Command-2901"><a href="#Command-2901"><span class="linenos">2901</span></a><span class="k">class</span> <span class="nc">Command</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Command-2902"><a href="#Command-2902"><span class="linenos">2902</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -24992,8 +25511,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Transaction"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-2793"><a href="#Transaction-2793"><span class="linenos">2793</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Transaction-2794"><a href="#Transaction-2794"><span class="linenos">2794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"modes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Transaction-2905"><a href="#Transaction-2905"><span class="linenos">2905</span></a><span class="k">class</span> <span class="nc">Transaction</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Transaction-2906"><a href="#Transaction-2906"><span class="linenos">2906</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"modes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -25054,8 +25573,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Commit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-2797"><a href="#Commit-2797"><span class="linenos">2797</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Commit-2798"><a href="#Commit-2798"><span class="linenos">2798</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"chain"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Commit-2909"><a href="#Commit-2909"><span class="linenos">2909</span></a><span class="k">class</span> <span class="nc">Commit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Commit-2910"><a href="#Commit-2910"><span class="linenos">2910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"chain"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -25116,8 +25635,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Rollback"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-2801"><a href="#Rollback-2801"><span class="linenos">2801</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Rollback-2802"><a href="#Rollback-2802"><span class="linenos">2802</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"savepoint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Rollback-2913"><a href="#Rollback-2913"><span class="linenos">2913</span></a><span class="k">class</span> <span class="nc">Rollback</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Rollback-2914"><a href="#Rollback-2914"><span class="linenos">2914</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"savepoint"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -25178,8 +25697,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#AlterTable"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-2805"><a href="#AlterTable-2805"><span class="linenos">2805</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="AlterTable-2806"><a href="#AlterTable-2806"><span class="linenos">2806</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"actions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AlterTable-2917"><a href="#AlterTable-2917"><span class="linenos">2917</span></a><span class="k">class</span> <span class="nc">AlterTable</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="AlterTable-2918"><a href="#AlterTable-2918"><span class="linenos">2918</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"actions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -25240,8 +25759,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#AddConstraint"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-2809"><a href="#AddConstraint-2809"><span class="linenos">2809</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="AddConstraint-2810"><a href="#AddConstraint-2810"><span class="linenos">2810</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"enforced"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AddConstraint-2921"><a href="#AddConstraint-2921"><span class="linenos">2921</span></a><span class="k">class</span> <span class="nc">AddConstraint</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="AddConstraint-2922"><a href="#AddConstraint-2922"><span class="linenos">2922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"enforced"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -25302,8 +25821,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#DropPartition"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-2813"><a href="#DropPartition-2813"><span class="linenos">2813</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="DropPartition-2814"><a href="#DropPartition-2814"><span class="linenos">2814</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DropPartition-2925"><a href="#DropPartition-2925"><span class="linenos">2925</span></a><span class="k">class</span> <span class="nc">DropPartition</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="DropPartition-2926"><a href="#DropPartition-2926"><span class="linenos">2926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"exists"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -25364,16 +25883,16 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Binary"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-2818"><a href="#Binary-2818"><span class="linenos">2818</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Binary-2819"><a href="#Binary-2819"><span class="linenos">2819</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Binary-2820"><a href="#Binary-2820"><span class="linenos">2820</span></a> -</span><span id="Binary-2821"><a href="#Binary-2821"><span class="linenos">2821</span></a> <span class="nd">@property</span> -</span><span id="Binary-2822"><a href="#Binary-2822"><span class="linenos">2822</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Binary-2823"><a href="#Binary-2823"><span class="linenos">2823</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> -</span><span id="Binary-2824"><a href="#Binary-2824"><span class="linenos">2824</span></a> -</span><span id="Binary-2825"><a href="#Binary-2825"><span class="linenos">2825</span></a> <span class="nd">@property</span> -</span><span id="Binary-2826"><a href="#Binary-2826"><span class="linenos">2826</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Binary-2827"><a href="#Binary-2827"><span class="linenos">2827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Binary-2930"><a href="#Binary-2930"><span class="linenos">2930</span></a><span class="k">class</span> <span class="nc">Binary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Binary-2931"><a href="#Binary-2931"><span class="linenos">2931</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Binary-2932"><a href="#Binary-2932"><span class="linenos">2932</span></a> +</span><span id="Binary-2933"><a href="#Binary-2933"><span class="linenos">2933</span></a> <span class="nd">@property</span> +</span><span id="Binary-2934"><a href="#Binary-2934"><span class="linenos">2934</span></a> <span class="k">def</span> <span class="nf">left</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Binary-2935"><a href="#Binary-2935"><span class="linenos">2935</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span> +</span><span id="Binary-2936"><a href="#Binary-2936"><span class="linenos">2936</span></a> +</span><span id="Binary-2937"><a href="#Binary-2937"><span class="linenos">2937</span></a> <span class="nd">@property</span> +</span><span id="Binary-2938"><a href="#Binary-2938"><span class="linenos">2938</span></a> <span class="k">def</span> <span class="nf">right</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Binary-2939"><a href="#Binary-2939"><span class="linenos">2939</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> </span></pre></div> @@ -25434,8 +25953,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Add"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Add-2830"><a href="#Add-2830"><span class="linenos">2830</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Add-2831"><a href="#Add-2831"><span class="linenos">2831</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Add-2942"><a href="#Add-2942"><span class="linenos">2942</span></a><span class="k">class</span> <span class="nc">Add</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Add-2943"><a href="#Add-2943"><span class="linenos">2943</span></a> <span class="k">pass</span> </span></pre></div> @@ -25496,8 +26015,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Connector"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-2834"><a href="#Connector-2834"><span class="linenos">2834</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="Connector-2835"><a href="#Connector-2835"><span class="linenos">2835</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Connector-2946"><a href="#Connector-2946"><span class="linenos">2946</span></a><span class="k">class</span> <span class="nc">Connector</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="Connector-2947"><a href="#Connector-2947"><span class="linenos">2947</span></a> <span class="k">pass</span> </span></pre></div> @@ -25564,8 +26083,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#And"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="And-2838"><a href="#And-2838"><span class="linenos">2838</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> -</span><span id="And-2839"><a href="#And-2839"><span class="linenos">2839</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="And-2950"><a href="#And-2950"><span class="linenos">2950</span></a><span class="k">class</span> <span class="nc">And</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> +</span><span id="And-2951"><a href="#And-2951"><span class="linenos">2951</span></a> <span class="k">pass</span> </span></pre></div> @@ -25632,8 +26151,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Or"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Or-2842"><a href="#Or-2842"><span class="linenos">2842</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> -</span><span id="Or-2843"><a href="#Or-2843"><span class="linenos">2843</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Or-2954"><a href="#Or-2954"><span class="linenos">2954</span></a><span class="k">class</span> <span class="nc">Or</span><span class="p">(</span><span class="n">Connector</span><span class="p">):</span> +</span><span id="Or-2955"><a href="#Or-2955"><span class="linenos">2955</span></a> <span class="k">pass</span> </span></pre></div> @@ -25700,8 +26219,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#BitwiseAnd"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-2846"><a href="#BitwiseAnd-2846"><span class="linenos">2846</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="BitwiseAnd-2847"><a href="#BitwiseAnd-2847"><span class="linenos">2847</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseAnd-2958"><a href="#BitwiseAnd-2958"><span class="linenos">2958</span></a><span class="k">class</span> <span class="nc">BitwiseAnd</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="BitwiseAnd-2959"><a href="#BitwiseAnd-2959"><span class="linenos">2959</span></a> <span class="k">pass</span> </span></pre></div> @@ -25762,8 +26281,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#BitwiseLeftShift"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-2850"><a href="#BitwiseLeftShift-2850"><span class="linenos">2850</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="BitwiseLeftShift-2851"><a href="#BitwiseLeftShift-2851"><span class="linenos">2851</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseLeftShift-2962"><a href="#BitwiseLeftShift-2962"><span class="linenos">2962</span></a><span class="k">class</span> <span class="nc">BitwiseLeftShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="BitwiseLeftShift-2963"><a href="#BitwiseLeftShift-2963"><span class="linenos">2963</span></a> <span class="k">pass</span> </span></pre></div> @@ -25824,8 +26343,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#BitwiseOr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-2854"><a href="#BitwiseOr-2854"><span class="linenos">2854</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="BitwiseOr-2855"><a href="#BitwiseOr-2855"><span class="linenos">2855</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseOr-2966"><a href="#BitwiseOr-2966"><span class="linenos">2966</span></a><span class="k">class</span> <span class="nc">BitwiseOr</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="BitwiseOr-2967"><a href="#BitwiseOr-2967"><span class="linenos">2967</span></a> <span class="k">pass</span> </span></pre></div> @@ -25886,8 +26405,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#BitwiseRightShift"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-2858"><a href="#BitwiseRightShift-2858"><span class="linenos">2858</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="BitwiseRightShift-2859"><a href="#BitwiseRightShift-2859"><span class="linenos">2859</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseRightShift-2970"><a href="#BitwiseRightShift-2970"><span class="linenos">2970</span></a><span class="k">class</span> <span class="nc">BitwiseRightShift</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="BitwiseRightShift-2971"><a href="#BitwiseRightShift-2971"><span class="linenos">2971</span></a> <span class="k">pass</span> </span></pre></div> @@ -25948,8 +26467,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#BitwiseXor"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-2862"><a href="#BitwiseXor-2862"><span class="linenos">2862</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="BitwiseXor-2863"><a href="#BitwiseXor-2863"><span class="linenos">2863</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseXor-2974"><a href="#BitwiseXor-2974"><span class="linenos">2974</span></a><span class="k">class</span> <span class="nc">BitwiseXor</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="BitwiseXor-2975"><a href="#BitwiseXor-2975"><span class="linenos">2975</span></a> <span class="k">pass</span> </span></pre></div> @@ -26010,8 +26529,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Div"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Div-2866"><a href="#Div-2866"><span class="linenos">2866</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Div-2867"><a href="#Div-2867"><span class="linenos">2867</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Div-2978"><a href="#Div-2978"><span class="linenos">2978</span></a><span class="k">class</span> <span class="nc">Div</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Div-2979"><a href="#Div-2979"><span class="linenos">2979</span></a> <span class="k">pass</span> </span></pre></div> @@ -26061,68 +26580,6 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </dl> </div> </section> - <section id="FloatDiv"> - <input id="FloatDiv-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> -<div class="attr class"> - - <span class="def">class</span> - <span class="name">FloatDiv</span><wbr>(<span class="base"><a href="#Binary">Binary</a></span>): - - <label class="view-source-button" for="FloatDiv-view-source"><span>View Source</span></label> - - </div> - <a class="headerlink" href="#FloatDiv"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="FloatDiv-2870"><a href="#FloatDiv-2870"><span class="linenos">2870</span></a><span class="k">class</span> <span class="nc">FloatDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="FloatDiv-2871"><a href="#FloatDiv-2871"><span class="linenos">2871</span></a> <span class="k">pass</span> -</span></pre></div> - - - - - <div class="inherited"> - <h5>Inherited Members</h5> - <dl> - <div><dt><a href="#Expression">Expression</a></dt> - <dd id="FloatDiv.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd> - <dd id="FloatDiv.this" class="variable"><a href="#Expression.this">this</a></dd> - <dd id="FloatDiv.expression" class="variable"><a href="#Expression.expression">expression</a></dd> - <dd id="FloatDiv.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd> - <dd id="FloatDiv.text" class="function"><a href="#Expression.text">text</a></dd> - <dd id="FloatDiv.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd> - <dd id="FloatDiv.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd> - <dd id="FloatDiv.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd> - <dd id="FloatDiv.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd> - <dd id="FloatDiv.alias" class="variable"><a href="#Expression.alias">alias</a></dd> - <dd id="FloatDiv.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd> - <dd id="FloatDiv.copy" class="function"><a href="#Expression.copy">copy</a></dd> - <dd id="FloatDiv.append" class="function"><a href="#Expression.append">append</a></dd> - <dd id="FloatDiv.set" class="function"><a href="#Expression.set">set</a></dd> - <dd id="FloatDiv.depth" class="variable"><a href="#Expression.depth">depth</a></dd> - <dd id="FloatDiv.find" class="function"><a href="#Expression.find">find</a></dd> - <dd id="FloatDiv.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd> - <dd id="FloatDiv.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd> - <dd id="FloatDiv.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd> - <dd id="FloatDiv.root" class="function"><a href="#Expression.root">root</a></dd> - <dd id="FloatDiv.walk" class="function"><a href="#Expression.walk">walk</a></dd> - <dd id="FloatDiv.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd> - <dd id="FloatDiv.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd> - <dd id="FloatDiv.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd> - <dd id="FloatDiv.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd> - <dd id="FloatDiv.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd> - <dd id="FloatDiv.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd> - <dd id="FloatDiv.sql" class="function"><a href="#Expression.sql">sql</a></dd> - <dd id="FloatDiv.transform" class="function"><a href="#Expression.transform">transform</a></dd> - <dd id="FloatDiv.replace" class="function"><a href="#Expression.replace">replace</a></dd> - <dd id="FloatDiv.pop" class="function"><a href="#Expression.pop">pop</a></dd> - <dd id="FloatDiv.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd> - <dd id="FloatDiv.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd> - <dd id="FloatDiv.dump" class="function"><a href="#Expression.dump">dump</a></dd> - <dd id="FloatDiv.load" class="function"><a href="#Expression.load">load</a></dd> - - </div> - </dl> - </div> - </section> <section id="Overlaps"> <input id="Overlaps-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr class"> @@ -26134,8 +26591,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Overlaps"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-2874"><a href="#Overlaps-2874"><span class="linenos">2874</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Overlaps-2875"><a href="#Overlaps-2875"><span class="linenos">2875</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Overlaps-2982"><a href="#Overlaps-2982"><span class="linenos">2982</span></a><span class="k">class</span> <span class="nc">Overlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Overlaps-2983"><a href="#Overlaps-2983"><span class="linenos">2983</span></a> <span class="k">pass</span> </span></pre></div> @@ -26196,10 +26653,10 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Dot"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-2878"><a href="#Dot-2878"><span class="linenos">2878</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Dot-2879"><a href="#Dot-2879"><span class="linenos">2879</span></a> <span class="nd">@property</span> -</span><span id="Dot-2880"><a href="#Dot-2880"><span class="linenos">2880</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Dot-2881"><a href="#Dot-2881"><span class="linenos">2881</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Dot-2986"><a href="#Dot-2986"><span class="linenos">2986</span></a><span class="k">class</span> <span class="nc">Dot</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Dot-2987"><a href="#Dot-2987"><span class="linenos">2987</span></a> <span class="nd">@property</span> +</span><span id="Dot-2988"><a href="#Dot-2988"><span class="linenos">2988</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Dot-2989"><a href="#Dot-2989"><span class="linenos">2989</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span> </span></pre></div> @@ -26260,8 +26717,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#DPipe"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-2884"><a href="#DPipe-2884"><span class="linenos">2884</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="DPipe-2885"><a href="#DPipe-2885"><span class="linenos">2885</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DPipe-2992"><a href="#DPipe-2992"><span class="linenos">2992</span></a><span class="k">class</span> <span class="nc">DPipe</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="DPipe-2993"><a href="#DPipe-2993"><span class="linenos">2993</span></a> <span class="k">pass</span> </span></pre></div> @@ -26322,8 +26779,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#EQ"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-2888"><a href="#EQ-2888"><span class="linenos">2888</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="EQ-2889"><a href="#EQ-2889"><span class="linenos">2889</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="EQ-2996"><a href="#EQ-2996"><span class="linenos">2996</span></a><span class="k">class</span> <span class="nc">EQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="EQ-2997"><a href="#EQ-2997"><span class="linenos">2997</span></a> <span class="k">pass</span> </span></pre></div> @@ -26390,8 +26847,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#NullSafeEQ"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-2892"><a href="#NullSafeEQ-2892"><span class="linenos">2892</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="NullSafeEQ-2893"><a href="#NullSafeEQ-2893"><span class="linenos">2893</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeEQ-3000"><a href="#NullSafeEQ-3000"><span class="linenos">3000</span></a><span class="k">class</span> <span class="nc">NullSafeEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="NullSafeEQ-3001"><a href="#NullSafeEQ-3001"><span class="linenos">3001</span></a> <span class="k">pass</span> </span></pre></div> @@ -26458,8 +26915,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#NullSafeNEQ"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-2896"><a href="#NullSafeNEQ-2896"><span class="linenos">2896</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="NullSafeNEQ-2897"><a href="#NullSafeNEQ-2897"><span class="linenos">2897</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="NullSafeNEQ-3004"><a href="#NullSafeNEQ-3004"><span class="linenos">3004</span></a><span class="k">class</span> <span class="nc">NullSafeNEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="NullSafeNEQ-3005"><a href="#NullSafeNEQ-3005"><span class="linenos">3005</span></a> <span class="k">pass</span> </span></pre></div> @@ -26526,8 +26983,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Distance"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-2900"><a href="#Distance-2900"><span class="linenos">2900</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Distance-2901"><a href="#Distance-2901"><span class="linenos">2901</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Distance-3008"><a href="#Distance-3008"><span class="linenos">3008</span></a><span class="k">class</span> <span class="nc">Distance</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Distance-3009"><a href="#Distance-3009"><span class="linenos">3009</span></a> <span class="k">pass</span> </span></pre></div> @@ -26588,8 +27045,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Escape"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-2904"><a href="#Escape-2904"><span class="linenos">2904</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Escape-2905"><a href="#Escape-2905"><span class="linenos">2905</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Escape-3012"><a href="#Escape-3012"><span class="linenos">3012</span></a><span class="k">class</span> <span class="nc">Escape</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Escape-3013"><a href="#Escape-3013"><span class="linenos">3013</span></a> <span class="k">pass</span> </span></pre></div> @@ -26650,8 +27107,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Glob"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-2908"><a href="#Glob-2908"><span class="linenos">2908</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="Glob-2909"><a href="#Glob-2909"><span class="linenos">2909</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Glob-3016"><a href="#Glob-3016"><span class="linenos">3016</span></a><span class="k">class</span> <span class="nc">Glob</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="Glob-3017"><a href="#Glob-3017"><span class="linenos">3017</span></a> <span class="k">pass</span> </span></pre></div> @@ -26718,8 +27175,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#GT"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="GT-2912"><a href="#GT-2912"><span class="linenos">2912</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="GT-2913"><a href="#GT-2913"><span class="linenos">2913</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="GT-3020"><a href="#GT-3020"><span class="linenos">3020</span></a><span class="k">class</span> <span class="nc">GT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="GT-3021"><a href="#GT-3021"><span class="linenos">3021</span></a> <span class="k">pass</span> </span></pre></div> @@ -26786,8 +27243,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#GTE"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-2916"><a href="#GTE-2916"><span class="linenos">2916</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="GTE-2917"><a href="#GTE-2917"><span class="linenos">2917</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="GTE-3024"><a href="#GTE-3024"><span class="linenos">3024</span></a><span class="k">class</span> <span class="nc">GTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="GTE-3025"><a href="#GTE-3025"><span class="linenos">3025</span></a> <span class="k">pass</span> </span></pre></div> @@ -26854,8 +27311,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#ILike"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-2920"><a href="#ILike-2920"><span class="linenos">2920</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="ILike-2921"><a href="#ILike-2921"><span class="linenos">2921</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ILike-3028"><a href="#ILike-3028"><span class="linenos">3028</span></a><span class="k">class</span> <span class="nc">ILike</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="ILike-3029"><a href="#ILike-3029"><span class="linenos">3029</span></a> <span class="k">pass</span> </span></pre></div> @@ -26922,8 +27379,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#ILikeAny"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-2924"><a href="#ILikeAny-2924"><span class="linenos">2924</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="ILikeAny-2925"><a href="#ILikeAny-2925"><span class="linenos">2925</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ILikeAny-3032"><a href="#ILikeAny-3032"><span class="linenos">3032</span></a><span class="k">class</span> <span class="nc">ILikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="ILikeAny-3033"><a href="#ILikeAny-3033"><span class="linenos">3033</span></a> <span class="k">pass</span> </span></pre></div> @@ -26990,8 +27447,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#IntDiv"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-2928"><a href="#IntDiv-2928"><span class="linenos">2928</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="IntDiv-2929"><a href="#IntDiv-2929"><span class="linenos">2929</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="IntDiv-3036"><a href="#IntDiv-3036"><span class="linenos">3036</span></a><span class="k">class</span> <span class="nc">IntDiv</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="IntDiv-3037"><a href="#IntDiv-3037"><span class="linenos">3037</span></a> <span class="k">pass</span> </span></pre></div> @@ -27052,8 +27509,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Is"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Is-2932"><a href="#Is-2932"><span class="linenos">2932</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="Is-2933"><a href="#Is-2933"><span class="linenos">2933</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Is-3040"><a href="#Is-3040"><span class="linenos">3040</span></a><span class="k">class</span> <span class="nc">Is</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="Is-3041"><a href="#Is-3041"><span class="linenos">3041</span></a> <span class="k">pass</span> </span></pre></div> @@ -27120,8 +27577,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Kwarg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-2936"><a href="#Kwarg-2936"><span class="linenos">2936</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Kwarg-2937"><a href="#Kwarg-2937"><span class="linenos">2937</span></a><span class="w"> </span><span class="sd">"""Kwarg in special functions like func(kwarg => y)."""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Kwarg-3044"><a href="#Kwarg-3044"><span class="linenos">3044</span></a><span class="k">class</span> <span class="nc">Kwarg</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Kwarg-3045"><a href="#Kwarg-3045"><span class="linenos">3045</span></a><span class="w"> </span><span class="sd">"""Kwarg in special functions like func(kwarg => y)."""</span> </span></pre></div> @@ -27184,8 +27641,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Like"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Like-2940"><a href="#Like-2940"><span class="linenos">2940</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="Like-2941"><a href="#Like-2941"><span class="linenos">2941</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Like-3048"><a href="#Like-3048"><span class="linenos">3048</span></a><span class="k">class</span> <span class="nc">Like</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="Like-3049"><a href="#Like-3049"><span class="linenos">3049</span></a> <span class="k">pass</span> </span></pre></div> @@ -27252,8 +27709,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#LikeAny"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-2944"><a href="#LikeAny-2944"><span class="linenos">2944</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="LikeAny-2945"><a href="#LikeAny-2945"><span class="linenos">2945</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LikeAny-3052"><a href="#LikeAny-3052"><span class="linenos">3052</span></a><span class="k">class</span> <span class="nc">LikeAny</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="LikeAny-3053"><a href="#LikeAny-3053"><span class="linenos">3053</span></a> <span class="k">pass</span> </span></pre></div> @@ -27320,8 +27777,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#LT"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LT-2948"><a href="#LT-2948"><span class="linenos">2948</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="LT-2949"><a href="#LT-2949"><span class="linenos">2949</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LT-3056"><a href="#LT-3056"><span class="linenos">3056</span></a><span class="k">class</span> <span class="nc">LT</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="LT-3057"><a href="#LT-3057"><span class="linenos">3057</span></a> <span class="k">pass</span> </span></pre></div> @@ -27388,8 +27845,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#LTE"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-2952"><a href="#LTE-2952"><span class="linenos">2952</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="LTE-2953"><a href="#LTE-2953"><span class="linenos">2953</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LTE-3060"><a href="#LTE-3060"><span class="linenos">3060</span></a><span class="k">class</span> <span class="nc">LTE</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="LTE-3061"><a href="#LTE-3061"><span class="linenos">3061</span></a> <span class="k">pass</span> </span></pre></div> @@ -27456,8 +27913,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Mod"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-2956"><a href="#Mod-2956"><span class="linenos">2956</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Mod-2957"><a href="#Mod-2957"><span class="linenos">2957</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Mod-3064"><a href="#Mod-3064"><span class="linenos">3064</span></a><span class="k">class</span> <span class="nc">Mod</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Mod-3065"><a href="#Mod-3065"><span class="linenos">3065</span></a> <span class="k">pass</span> </span></pre></div> @@ -27518,8 +27975,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Mul"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-2960"><a href="#Mul-2960"><span class="linenos">2960</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Mul-2961"><a href="#Mul-2961"><span class="linenos">2961</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Mul-3068"><a href="#Mul-3068"><span class="linenos">3068</span></a><span class="k">class</span> <span class="nc">Mul</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Mul-3069"><a href="#Mul-3069"><span class="linenos">3069</span></a> <span class="k">pass</span> </span></pre></div> @@ -27580,8 +28037,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#NEQ"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-2964"><a href="#NEQ-2964"><span class="linenos">2964</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="NEQ-2965"><a href="#NEQ-2965"><span class="linenos">2965</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="NEQ-3072"><a href="#NEQ-3072"><span class="linenos">3072</span></a><span class="k">class</span> <span class="nc">NEQ</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="NEQ-3073"><a href="#NEQ-3073"><span class="linenos">3073</span></a> <span class="k">pass</span> </span></pre></div> @@ -27648,8 +28105,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#SimilarTo"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-2968"><a href="#SimilarTo-2968"><span class="linenos">2968</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> -</span><span id="SimilarTo-2969"><a href="#SimilarTo-2969"><span class="linenos">2969</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SimilarTo-3076"><a href="#SimilarTo-3076"><span class="linenos">3076</span></a><span class="k">class</span> <span class="nc">SimilarTo</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Predicate</span><span class="p">):</span> +</span><span id="SimilarTo-3077"><a href="#SimilarTo-3077"><span class="linenos">3077</span></a> <span class="k">pass</span> </span></pre></div> @@ -27716,8 +28173,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Slice"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-2972"><a href="#Slice-2972"><span class="linenos">2972</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Slice-2973"><a href="#Slice-2973"><span class="linenos">2973</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Slice-3080"><a href="#Slice-3080"><span class="linenos">3080</span></a><span class="k">class</span> <span class="nc">Slice</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Slice-3081"><a href="#Slice-3081"><span class="linenos">3081</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -27778,8 +28235,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Sub"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-2976"><a href="#Sub-2976"><span class="linenos">2976</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Sub-2977"><a href="#Sub-2977"><span class="linenos">2977</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Sub-3084"><a href="#Sub-3084"><span class="linenos">3084</span></a><span class="k">class</span> <span class="nc">Sub</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Sub-3085"><a href="#Sub-3085"><span class="linenos">3085</span></a> <span class="k">pass</span> </span></pre></div> @@ -27840,8 +28297,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#ArrayOverlaps"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-2980"><a href="#ArrayOverlaps-2980"><span class="linenos">2980</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="ArrayOverlaps-2981"><a href="#ArrayOverlaps-2981"><span class="linenos">2981</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayOverlaps-3088"><a href="#ArrayOverlaps-3088"><span class="linenos">3088</span></a><span class="k">class</span> <span class="nc">ArrayOverlaps</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="ArrayOverlaps-3089"><a href="#ArrayOverlaps-3089"><span class="linenos">3089</span></a> <span class="k">pass</span> </span></pre></div> @@ -27902,8 +28359,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Unary"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-2986"><a href="#Unary-2986"><span class="linenos">2986</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Unary-2987"><a href="#Unary-2987"><span class="linenos">2987</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unary-3094"><a href="#Unary-3094"><span class="linenos">3094</span></a><span class="k">class</span> <span class="nc">Unary</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Unary-3095"><a href="#Unary-3095"><span class="linenos">3095</span></a> <span class="k">pass</span> </span></pre></div> @@ -27964,8 +28421,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#BitwiseNot"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-2990"><a href="#BitwiseNot-2990"><span class="linenos">2990</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> -</span><span id="BitwiseNot-2991"><a href="#BitwiseNot-2991"><span class="linenos">2991</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="BitwiseNot-3098"><a href="#BitwiseNot-3098"><span class="linenos">3098</span></a><span class="k">class</span> <span class="nc">BitwiseNot</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> +</span><span id="BitwiseNot-3099"><a href="#BitwiseNot-3099"><span class="linenos">3099</span></a> <span class="k">pass</span> </span></pre></div> @@ -28026,8 +28483,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Not"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Not-2994"><a href="#Not-2994"><span class="linenos">2994</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="Not-2995"><a href="#Not-2995"><span class="linenos">2995</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Not-3102"><a href="#Not-3102"><span class="linenos">3102</span></a><span class="k">class</span> <span class="nc">Not</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="Not-3103"><a href="#Not-3103"><span class="linenos">3103</span></a> <span class="k">pass</span> </span></pre></div> @@ -28094,8 +28551,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Paren"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-2998"><a href="#Paren-2998"><span class="linenos">2998</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="Paren-2999"><a href="#Paren-2999"><span class="linenos">2999</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Paren-3106"><a href="#Paren-3106"><span class="linenos">3106</span></a><span class="k">class</span> <span class="nc">Paren</span><span class="p">(</span><span class="n">Unary</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="Paren-3107"><a href="#Paren-3107"><span class="linenos">3107</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"with"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -28162,8 +28619,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Neg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3002"><a href="#Neg-3002"><span class="linenos">3002</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> -</span><span id="Neg-3003"><a href="#Neg-3003"><span class="linenos">3003</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Neg-3110"><a href="#Neg-3110"><span class="linenos">3110</span></a><span class="k">class</span> <span class="nc">Neg</span><span class="p">(</span><span class="n">Unary</span><span class="p">):</span> +</span><span id="Neg-3111"><a href="#Neg-3111"><span class="linenos">3111</span></a> <span class="k">pass</span> </span></pre></div> @@ -28224,12 +28681,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Alias"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-3007"><a href="#Alias-3007"><span class="linenos">3007</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Alias-3008"><a href="#Alias-3008"><span class="linenos">3008</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Alias-3009"><a href="#Alias-3009"><span class="linenos">3009</span></a> -</span><span id="Alias-3010"><a href="#Alias-3010"><span class="linenos">3010</span></a> <span class="nd">@property</span> -</span><span id="Alias-3011"><a href="#Alias-3011"><span class="linenos">3011</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Alias-3012"><a href="#Alias-3012"><span class="linenos">3012</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Alias-3115"><a href="#Alias-3115"><span class="linenos">3115</span></a><span class="k">class</span> <span class="nc">Alias</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Alias-3116"><a href="#Alias-3116"><span class="linenos">3116</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"alias"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Alias-3117"><a href="#Alias-3117"><span class="linenos">3117</span></a> +</span><span id="Alias-3118"><a href="#Alias-3118"><span class="linenos">3118</span></a> <span class="nd">@property</span> +</span><span id="Alias-3119"><a href="#Alias-3119"><span class="linenos">3119</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Alias-3120"><a href="#Alias-3120"><span class="linenos">3120</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias</span> </span></pre></div> @@ -28319,12 +28776,12 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Aliases"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3015"><a href="#Aliases-3015"><span class="linenos">3015</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Aliases-3016"><a href="#Aliases-3016"><span class="linenos">3016</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Aliases-3017"><a href="#Aliases-3017"><span class="linenos">3017</span></a> -</span><span id="Aliases-3018"><a href="#Aliases-3018"><span class="linenos">3018</span></a> <span class="nd">@property</span> -</span><span id="Aliases-3019"><a href="#Aliases-3019"><span class="linenos">3019</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Aliases-3020"><a href="#Aliases-3020"><span class="linenos">3020</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Aliases-3123"><a href="#Aliases-3123"><span class="linenos">3123</span></a><span class="k">class</span> <span class="nc">Aliases</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Aliases-3124"><a href="#Aliases-3124"><span class="linenos">3124</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Aliases-3125"><a href="#Aliases-3125"><span class="linenos">3125</span></a> +</span><span id="Aliases-3126"><a href="#Aliases-3126"><span class="linenos">3126</span></a> <span class="nd">@property</span> +</span><span id="Aliases-3127"><a href="#Aliases-3127"><span class="linenos">3127</span></a> <span class="k">def</span> <span class="nf">aliases</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Aliases-3128"><a href="#Aliases-3128"><span class="linenos">3128</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expressions</span> </span></pre></div> @@ -28385,8 +28842,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#AtTimeZone"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-3023"><a href="#AtTimeZone-3023"><span class="linenos">3023</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="AtTimeZone-3024"><a href="#AtTimeZone-3024"><span class="linenos">3024</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AtTimeZone-3131"><a href="#AtTimeZone-3131"><span class="linenos">3131</span></a><span class="k">class</span> <span class="nc">AtTimeZone</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="AtTimeZone-3132"><a href="#AtTimeZone-3132"><span class="linenos">3132</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -28447,8 +28904,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Between"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Between-3027"><a href="#Between-3027"><span class="linenos">3027</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> -</span><span id="Between-3028"><a href="#Between-3028"><span class="linenos">3028</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"low"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"high"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Between-3135"><a href="#Between-3135"><span class="linenos">3135</span></a><span class="k">class</span> <span class="nc">Between</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> +</span><span id="Between-3136"><a href="#Between-3136"><span class="linenos">3136</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"low"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"high"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -28515,8 +28972,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Bracket"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3031"><a href="#Bracket-3031"><span class="linenos">3031</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Bracket-3032"><a href="#Bracket-3032"><span class="linenos">3032</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Bracket-3139"><a href="#Bracket-3139"><span class="linenos">3139</span></a><span class="k">class</span> <span class="nc">Bracket</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Bracket-3140"><a href="#Bracket-3140"><span class="linenos">3140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -28583,8 +29040,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Distinct"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-3035"><a href="#Distinct-3035"><span class="linenos">3035</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Distinct-3036"><a href="#Distinct-3036"><span class="linenos">3036</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Distinct-3143"><a href="#Distinct-3143"><span class="linenos">3143</span></a><span class="k">class</span> <span class="nc">Distinct</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Distinct-3144"><a href="#Distinct-3144"><span class="linenos">3144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -28645,15 +29102,15 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#In"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="In-3039"><a href="#In-3039"><span class="linenos">3039</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> -</span><span id="In-3040"><a href="#In-3040"><span class="linenos">3040</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="In-3041"><a href="#In-3041"><span class="linenos">3041</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="In-3042"><a href="#In-3042"><span class="linenos">3042</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="In-3043"><a href="#In-3043"><span class="linenos">3043</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="In-3044"><a href="#In-3044"><span class="linenos">3044</span></a> <span class="s2">"unnest"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="In-3045"><a href="#In-3045"><span class="linenos">3045</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="In-3046"><a href="#In-3046"><span class="linenos">3046</span></a> <span class="s2">"is_global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="In-3047"><a href="#In-3047"><span class="linenos">3047</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="In-3147"><a href="#In-3147"><span class="linenos">3147</span></a><span class="k">class</span> <span class="nc">In</span><span class="p">(</span><span class="n">Predicate</span><span class="p">):</span> +</span><span id="In-3148"><a href="#In-3148"><span class="linenos">3148</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="In-3149"><a href="#In-3149"><span class="linenos">3149</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="In-3150"><a href="#In-3150"><span class="linenos">3150</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="In-3151"><a href="#In-3151"><span class="linenos">3151</span></a> <span class="s2">"query"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="In-3152"><a href="#In-3152"><span class="linenos">3152</span></a> <span class="s2">"unnest"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="In-3153"><a href="#In-3153"><span class="linenos">3153</span></a> <span class="s2">"field"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="In-3154"><a href="#In-3154"><span class="linenos">3154</span></a> <span class="s2">"is_global"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="In-3155"><a href="#In-3155"><span class="linenos">3155</span></a> <span class="p">}</span> </span></pre></div> @@ -28720,18 +29177,18 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#TimeUnit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3050"><a href="#TimeUnit-3050"><span class="linenos">3050</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="TimeUnit-3051"><a href="#TimeUnit-3051"><span class="linenos">3051</span></a><span class="w"> </span><span class="sd">"""Automatically converts unit arg into a var."""</span> -</span><span id="TimeUnit-3052"><a href="#TimeUnit-3052"><span class="linenos">3052</span></a> -</span><span id="TimeUnit-3053"><a href="#TimeUnit-3053"><span class="linenos">3053</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="TimeUnit-3054"><a href="#TimeUnit-3054"><span class="linenos">3054</span></a> -</span><span id="TimeUnit-3055"><a href="#TimeUnit-3055"><span class="linenos">3055</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span> -</span><span id="TimeUnit-3056"><a href="#TimeUnit-3056"><span class="linenos">3056</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> -</span><span id="TimeUnit-3057"><a href="#TimeUnit-3057"><span class="linenos">3057</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> -</span><span id="TimeUnit-3058"><a href="#TimeUnit-3058"><span class="linenos">3058</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">"unit"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="TimeUnit-3059"><a href="#TimeUnit-3059"><span class="linenos">3059</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span> -</span><span id="TimeUnit-3060"><a href="#TimeUnit-3060"><span class="linenos">3060</span></a> <span class="n">unit</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">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> -</span><span id="TimeUnit-3061"><a href="#TimeUnit-3061"><span class="linenos">3061</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit-3158"><a href="#TimeUnit-3158"><span class="linenos">3158</span></a><span class="k">class</span> <span class="nc">TimeUnit</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="TimeUnit-3159"><a href="#TimeUnit-3159"><span class="linenos">3159</span></a><span class="w"> </span><span class="sd">"""Automatically converts unit arg into a var."""</span> +</span><span id="TimeUnit-3160"><a href="#TimeUnit-3160"><span class="linenos">3160</span></a> +</span><span id="TimeUnit-3161"><a href="#TimeUnit-3161"><span class="linenos">3161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="TimeUnit-3162"><a href="#TimeUnit-3162"><span class="linenos">3162</span></a> +</span><span id="TimeUnit-3163"><a href="#TimeUnit-3163"><span class="linenos">3163</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span> +</span><span id="TimeUnit-3164"><a href="#TimeUnit-3164"><span class="linenos">3164</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> +</span><span id="TimeUnit-3165"><a href="#TimeUnit-3165"><span class="linenos">3165</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span> +</span><span id="TimeUnit-3166"><a href="#TimeUnit-3166"><span class="linenos">3166</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">"unit"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="TimeUnit-3167"><a href="#TimeUnit-3167"><span class="linenos">3167</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span> +</span><span id="TimeUnit-3168"><a href="#TimeUnit-3168"><span class="linenos">3168</span></a> <span class="n">unit</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">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> +</span><span id="TimeUnit-3169"><a href="#TimeUnit-3169"><span class="linenos">3169</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span> </span></pre></div> @@ -28749,13 +29206,13 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#TimeUnit.__init__"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3055"><a href="#TimeUnit.__init__-3055"><span class="linenos">3055</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span> -</span><span id="TimeUnit.__init__-3056"><a href="#TimeUnit.__init__-3056"><span class="linenos">3056</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> -</span><span id="TimeUnit.__init__-3057"><a href="#TimeUnit.__init__-3057"><span class="linenos">3057</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> -</span><span id="TimeUnit.__init__-3058"><a href="#TimeUnit.__init__-3058"><span class="linenos">3058</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">"unit"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="TimeUnit.__init__-3059"><a href="#TimeUnit.__init__-3059"><span class="linenos">3059</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span> -</span><span id="TimeUnit.__init__-3060"><a href="#TimeUnit.__init__-3060"><span class="linenos">3060</span></a> <span class="n">unit</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">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> -</span><span id="TimeUnit.__init__-3061"><a href="#TimeUnit.__init__-3061"><span class="linenos">3061</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeUnit.__init__-3163"><a href="#TimeUnit.__init__-3163"><span class="linenos">3163</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">**</span><span class="n">args</span><span class="p">):</span> +</span><span id="TimeUnit.__init__-3164"><a href="#TimeUnit.__init__-3164"><span class="linenos">3164</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">)</span> +</span><span id="TimeUnit.__init__-3165"><a href="#TimeUnit.__init__-3165"><span class="linenos">3165</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="p">(</span><span class="n">Column</span><span class="p">,</span> <span class="n">Literal</span><span class="p">)):</span> +</span><span id="TimeUnit.__init__-3166"><a href="#TimeUnit.__init__-3166"><span class="linenos">3166</span></a> <span class="n">args</span><span class="p">[</span><span class="s2">"unit"</span><span class="p">]</span> <span class="o">=</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="TimeUnit.__init__-3167"><a href="#TimeUnit.__init__-3167"><span class="linenos">3167</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">unit</span><span class="p">,</span> <span class="n">Week</span><span class="p">):</span> +</span><span id="TimeUnit.__init__-3168"><a href="#TimeUnit.__init__-3168"><span class="linenos">3168</span></a> <span class="n">unit</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">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">unit</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">))</span> +</span><span id="TimeUnit.__init__-3169"><a href="#TimeUnit.__init__-3169"><span class="linenos">3169</span></a> <span class="nb">super</span><span class="p">()</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="o">**</span><span class="n">args</span><span class="p">)</span> </span></pre></div> @@ -28816,8 +29273,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Interval"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-3064"><a href="#Interval-3064"><span class="linenos">3064</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="Interval-3065"><a href="#Interval-3065"><span class="linenos">3065</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Interval-3172"><a href="#Interval-3172"><span class="linenos">3172</span></a><span class="k">class</span> <span class="nc">Interval</span><span class="p">(</span><span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="Interval-3173"><a href="#Interval-3173"><span class="linenos">3173</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -28881,8 +29338,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#IgnoreNulls"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3068"><a href="#IgnoreNulls-3068"><span class="linenos">3068</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="IgnoreNulls-3069"><a href="#IgnoreNulls-3069"><span class="linenos">3069</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="IgnoreNulls-3176"><a href="#IgnoreNulls-3176"><span class="linenos">3176</span></a><span class="k">class</span> <span class="nc">IgnoreNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="IgnoreNulls-3177"><a href="#IgnoreNulls-3177"><span class="linenos">3177</span></a> <span class="k">pass</span> </span></pre></div> @@ -28943,8 +29400,8 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#RespectNulls"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3072"><a href="#RespectNulls-3072"><span class="linenos">3072</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="RespectNulls-3073"><a href="#RespectNulls-3073"><span class="linenos">3073</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RespectNulls-3180"><a href="#RespectNulls-3180"><span class="linenos">3180</span></a><span class="k">class</span> <span class="nc">RespectNulls</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="RespectNulls-3181"><a href="#RespectNulls-3181"><span class="linenos">3181</span></a> <span class="k">pass</span> </span></pre></div> @@ -29005,53 +29462,53 @@ If another <code><a href="#Expression">Expression</a></code> instance is passed, </div> <a class="headerlink" href="#Func"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Func-3077"><a href="#Func-3077"><span class="linenos">3077</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> -</span><span id="Func-3078"><a href="#Func-3078"><span class="linenos">3078</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Func-3079"><a href="#Func-3079"><span class="linenos">3079</span></a><span class="sd"> The base class for all function expressions.</span> -</span><span id="Func-3080"><a href="#Func-3080"><span class="linenos">3080</span></a> -</span><span id="Func-3081"><a href="#Func-3081"><span class="linenos">3081</span></a><span class="sd"> Attributes:</span> -</span><span id="Func-3082"><a href="#Func-3082"><span class="linenos">3082</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span> -</span><span id="Func-3083"><a href="#Func-3083"><span class="linenos">3083</span></a><span class="sd"> treated as a variable length argument and the argument's value will be stored as a list.</span> -</span><span id="Func-3084"><a href="#Func-3084"><span class="linenos">3084</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span> -</span><span id="Func-3085"><a href="#Func-3085"><span class="linenos">3085</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span> -</span><span id="Func-3086"><a href="#Func-3086"><span class="linenos">3086</span></a><span class="sd"> as well as to provide the function's name during SQL string generation. By default the SQL</span> -</span><span id="Func-3087"><a href="#Func-3087"><span class="linenos">3087</span></a><span class="sd"> name is set to the expression's class name transformed to snake case.</span> -</span><span id="Func-3088"><a href="#Func-3088"><span class="linenos">3088</span></a><span class="sd"> """</span> -</span><span id="Func-3089"><a href="#Func-3089"><span class="linenos">3089</span></a> -</span><span id="Func-3090"><a href="#Func-3090"><span class="linenos">3090</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Func-3091"><a href="#Func-3091"><span class="linenos">3091</span></a> -</span><span id="Func-3092"><a href="#Func-3092"><span class="linenos">3092</span></a> <span class="nd">@classmethod</span> -</span><span id="Func-3093"><a href="#Func-3093"><span class="linenos">3093</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> -</span><span id="Func-3094"><a href="#Func-3094"><span class="linenos">3094</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span> -</span><span id="Func-3095"><a href="#Func-3095"><span class="linenos">3095</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> -</span><span id="Func-3096"><a href="#Func-3096"><span class="linenos">3096</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span> -</span><span id="Func-3097"><a href="#Func-3097"><span class="linenos">3097</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span> -</span><span id="Func-3098"><a href="#Func-3098"><span class="linenos">3098</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span> -</span><span id="Func-3099"><a href="#Func-3099"><span class="linenos">3099</span></a> -</span><span id="Func-3100"><a href="#Func-3100"><span class="linenos">3100</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span> -</span><span id="Func-3101"><a href="#Func-3101"><span class="linenos">3101</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span> -</span><span id="Func-3102"><a href="#Func-3102"><span class="linenos">3102</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Func-3103"><a href="#Func-3103"><span class="linenos">3103</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span> -</span><span id="Func-3104"><a href="#Func-3104"><span class="linenos">3104</span></a> -</span><span id="Func-3105"><a href="#Func-3105"><span class="linenos">3105</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span> -</span><span id="Func-3106"><a href="#Func-3106"><span class="linenos">3106</span></a> -</span><span id="Func-3107"><a href="#Func-3107"><span class="linenos">3107</span></a> <span class="nd">@classmethod</span> -</span><span id="Func-3108"><a href="#Func-3108"><span class="linenos">3108</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="Func-3109"><a href="#Func-3109"><span class="linenos">3109</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span> -</span><span id="Func-3110"><a href="#Func-3110"><span class="linenos">3110</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> -</span><span id="Func-3111"><a href="#Func-3111"><span class="linenos">3111</span></a> <span class="s2">"SQL name is only supported by concrete function implementations"</span> -</span><span id="Func-3112"><a href="#Func-3112"><span class="linenos">3112</span></a> <span class="p">)</span> -</span><span id="Func-3113"><a href="#Func-3113"><span class="linenos">3113</span></a> <span class="k">if</span> <span class="s2">"_sql_names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span> -</span><span id="Func-3114"><a href="#Func-3114"><span class="linenos">3114</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span> -</span><span id="Func-3115"><a href="#Func-3115"><span class="linenos">3115</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> -</span><span id="Func-3116"><a href="#Func-3116"><span class="linenos">3116</span></a> -</span><span id="Func-3117"><a href="#Func-3117"><span class="linenos">3117</span></a> <span class="nd">@classmethod</span> -</span><span id="Func-3118"><a href="#Func-3118"><span class="linenos">3118</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="Func-3119"><a href="#Func-3119"><span class="linenos">3119</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Func-3120"><a href="#Func-3120"><span class="linenos">3120</span></a> -</span><span id="Func-3121"><a href="#Func-3121"><span class="linenos">3121</span></a> <span class="nd">@classmethod</span> -</span><span id="Func-3122"><a href="#Func-3122"><span class="linenos">3122</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="Func-3123"><a href="#Func-3123"><span class="linenos">3123</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Func-3185"><a href="#Func-3185"><span class="linenos">3185</span></a><span class="k">class</span> <span class="nc">Func</span><span class="p">(</span><span class="n">Condition</span><span class="p">):</span> +</span><span id="Func-3186"><a href="#Func-3186"><span class="linenos">3186</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Func-3187"><a href="#Func-3187"><span class="linenos">3187</span></a><span class="sd"> The base class for all function expressions.</span> +</span><span id="Func-3188"><a href="#Func-3188"><span class="linenos">3188</span></a> +</span><span id="Func-3189"><a href="#Func-3189"><span class="linenos">3189</span></a><span class="sd"> Attributes:</span> +</span><span id="Func-3190"><a href="#Func-3190"><span class="linenos">3190</span></a><span class="sd"> is_var_len_args (bool): if set to True the last argument defined in arg_types will be</span> +</span><span id="Func-3191"><a href="#Func-3191"><span class="linenos">3191</span></a><span class="sd"> treated as a variable length argument and the argument's value will be stored as a list.</span> +</span><span id="Func-3192"><a href="#Func-3192"><span class="linenos">3192</span></a><span class="sd"> _sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)</span> +</span><span id="Func-3193"><a href="#Func-3193"><span class="linenos">3193</span></a><span class="sd"> for this function expression. These values are used to map this node to a name during parsing</span> +</span><span id="Func-3194"><a href="#Func-3194"><span class="linenos">3194</span></a><span class="sd"> as well as to provide the function's name during SQL string generation. By default the SQL</span> +</span><span id="Func-3195"><a href="#Func-3195"><span class="linenos">3195</span></a><span class="sd"> name is set to the expression's class name transformed to snake case.</span> +</span><span id="Func-3196"><a href="#Func-3196"><span class="linenos">3196</span></a><span class="sd"> """</span> +</span><span id="Func-3197"><a href="#Func-3197"><span class="linenos">3197</span></a> +</span><span id="Func-3198"><a href="#Func-3198"><span class="linenos">3198</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Func-3199"><a href="#Func-3199"><span class="linenos">3199</span></a> +</span><span id="Func-3200"><a href="#Func-3200"><span class="linenos">3200</span></a> <span class="nd">@classmethod</span> +</span><span id="Func-3201"><a href="#Func-3201"><span class="linenos">3201</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> +</span><span id="Func-3202"><a href="#Func-3202"><span class="linenos">3202</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span> +</span><span id="Func-3203"><a href="#Func-3203"><span class="linenos">3203</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> +</span><span id="Func-3204"><a href="#Func-3204"><span class="linenos">3204</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span> +</span><span id="Func-3205"><a href="#Func-3205"><span class="linenos">3205</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span> +</span><span id="Func-3206"><a href="#Func-3206"><span class="linenos">3206</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span> +</span><span id="Func-3207"><a href="#Func-3207"><span class="linenos">3207</span></a> +</span><span id="Func-3208"><a href="#Func-3208"><span class="linenos">3208</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span> +</span><span id="Func-3209"><a href="#Func-3209"><span class="linenos">3209</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span> +</span><span id="Func-3210"><a href="#Func-3210"><span class="linenos">3210</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Func-3211"><a href="#Func-3211"><span class="linenos">3211</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span> +</span><span id="Func-3212"><a href="#Func-3212"><span class="linenos">3212</span></a> +</span><span id="Func-3213"><a href="#Func-3213"><span class="linenos">3213</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span> +</span><span id="Func-3214"><a href="#Func-3214"><span class="linenos">3214</span></a> +</span><span id="Func-3215"><a href="#Func-3215"><span class="linenos">3215</span></a> <span class="nd">@classmethod</span> +</span><span id="Func-3216"><a href="#Func-3216"><span class="linenos">3216</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="Func-3217"><a href="#Func-3217"><span class="linenos">3217</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span> +</span><span id="Func-3218"><a href="#Func-3218"><span class="linenos">3218</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> +</span><span id="Func-3219"><a href="#Func-3219"><span class="linenos">3219</span></a> <span class="s2">"SQL name is only supported by concrete function implementations"</span> +</span><span id="Func-3220"><a href="#Func-3220"><span class="linenos">3220</span></a> <span class="p">)</span> +</span><span id="Func-3221"><a href="#Func-3221"><span class="linenos">3221</span></a> <span class="k">if</span> <span class="s2">"_sql_names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span> +</span><span id="Func-3222"><a href="#Func-3222"><span class="linenos">3222</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span> +</span><span id="Func-3223"><a href="#Func-3223"><span class="linenos">3223</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> +</span><span id="Func-3224"><a href="#Func-3224"><span class="linenos">3224</span></a> +</span><span id="Func-3225"><a href="#Func-3225"><span class="linenos">3225</span></a> <span class="nd">@classmethod</span> +</span><span id="Func-3226"><a href="#Func-3226"><span class="linenos">3226</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="Func-3227"><a href="#Func-3227"><span class="linenos">3227</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Func-3228"><a href="#Func-3228"><span class="linenos">3228</span></a> +</span><span id="Func-3229"><a href="#Func-3229"><span class="linenos">3229</span></a> <span class="nd">@classmethod</span> +</span><span id="Func-3230"><a href="#Func-3230"><span class="linenos">3230</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="Func-3231"><a href="#Func-3231"><span class="linenos">3231</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span> </span></pre></div> @@ -29082,20 +29539,20 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Func.from_arg_list"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Func.from_arg_list-3092"><a href="#Func.from_arg_list-3092"><span class="linenos">3092</span></a> <span class="nd">@classmethod</span> -</span><span id="Func.from_arg_list-3093"><a href="#Func.from_arg_list-3093"><span class="linenos">3093</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> -</span><span id="Func.from_arg_list-3094"><a href="#Func.from_arg_list-3094"><span class="linenos">3094</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span> -</span><span id="Func.from_arg_list-3095"><a href="#Func.from_arg_list-3095"><span class="linenos">3095</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> -</span><span id="Func.from_arg_list-3096"><a href="#Func.from_arg_list-3096"><span class="linenos">3096</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span> -</span><span id="Func.from_arg_list-3097"><a href="#Func.from_arg_list-3097"><span class="linenos">3097</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span> -</span><span id="Func.from_arg_list-3098"><a href="#Func.from_arg_list-3098"><span class="linenos">3098</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span> -</span><span id="Func.from_arg_list-3099"><a href="#Func.from_arg_list-3099"><span class="linenos">3099</span></a> -</span><span id="Func.from_arg_list-3100"><a href="#Func.from_arg_list-3100"><span class="linenos">3100</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span> -</span><span id="Func.from_arg_list-3101"><a href="#Func.from_arg_list-3101"><span class="linenos">3101</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span> -</span><span id="Func.from_arg_list-3102"><a href="#Func.from_arg_list-3102"><span class="linenos">3102</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Func.from_arg_list-3103"><a href="#Func.from_arg_list-3103"><span class="linenos">3103</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span> -</span><span id="Func.from_arg_list-3104"><a href="#Func.from_arg_list-3104"><span class="linenos">3104</span></a> -</span><span id="Func.from_arg_list-3105"><a href="#Func.from_arg_list-3105"><span class="linenos">3105</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Func.from_arg_list-3200"><a href="#Func.from_arg_list-3200"><span class="linenos">3200</span></a> <span class="nd">@classmethod</span> +</span><span id="Func.from_arg_list-3201"><a href="#Func.from_arg_list-3201"><span class="linenos">3201</span></a> <span class="k">def</span> <span class="nf">from_arg_list</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">args</span><span class="p">):</span> +</span><span id="Func.from_arg_list-3202"><a href="#Func.from_arg_list-3202"><span class="linenos">3202</span></a> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span><span class="p">:</span> +</span><span id="Func.from_arg_list-3203"><a href="#Func.from_arg_list-3203"><span class="linenos">3203</span></a> <span class="n">all_arg_keys</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)</span> +</span><span id="Func.from_arg_list-3204"><a href="#Func.from_arg_list-3204"><span class="linenos">3204</span></a> <span class="c1"># If this function supports variable length argument treat the last argument as such.</span> +</span><span id="Func.from_arg_list-3205"><a href="#Func.from_arg_list-3205"><span class="linenos">3205</span></a> <span class="n">non_var_len_arg_keys</span> <span class="o">=</span> <span class="n">all_arg_keys</span><span class="p">[:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="k">if</span> <span class="bp">cls</span><span class="o">.</span><span class="n">is_var_len_args</span> <span class="k">else</span> <span class="n">all_arg_keys</span> +</span><span id="Func.from_arg_list-3206"><a href="#Func.from_arg_list-3206"><span class="linenos">3206</span></a> <span class="n">num_non_var</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">non_var_len_arg_keys</span><span class="p">)</span> +</span><span id="Func.from_arg_list-3207"><a href="#Func.from_arg_list-3207"><span class="linenos">3207</span></a> +</span><span id="Func.from_arg_list-3208"><a href="#Func.from_arg_list-3208"><span class="linenos">3208</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">non_var_len_arg_keys</span><span class="p">)}</span> +</span><span id="Func.from_arg_list-3209"><a href="#Func.from_arg_list-3209"><span class="linenos">3209</span></a> <span class="n">args_dict</span><span class="p">[</span><span class="n">all_arg_keys</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]]</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="n">num_non_var</span><span class="p">:]</span> +</span><span id="Func.from_arg_list-3210"><a href="#Func.from_arg_list-3210"><span class="linenos">3210</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Func.from_arg_list-3211"><a href="#Func.from_arg_list-3211"><span class="linenos">3211</span></a> <span class="n">args_dict</span> <span class="o">=</span> <span class="p">{</span><span class="n">arg_key</span><span class="p">:</span> <span class="n">arg</span> <span class="k">for</span> <span class="n">arg</span><span class="p">,</span> <span class="n">arg_key</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="n">arg_types</span><span class="p">)}</span> +</span><span id="Func.from_arg_list-3212"><a href="#Func.from_arg_list-3212"><span class="linenos">3212</span></a> +</span><span id="Func.from_arg_list-3213"><a href="#Func.from_arg_list-3213"><span class="linenos">3213</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="o">**</span><span class="n">args_dict</span><span class="p">)</span> </span></pre></div> @@ -29114,15 +29571,15 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Func.sql_names"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_names-3107"><a href="#Func.sql_names-3107"><span class="linenos">3107</span></a> <span class="nd">@classmethod</span> -</span><span id="Func.sql_names-3108"><a href="#Func.sql_names-3108"><span class="linenos">3108</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="Func.sql_names-3109"><a href="#Func.sql_names-3109"><span class="linenos">3109</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span> -</span><span id="Func.sql_names-3110"><a href="#Func.sql_names-3110"><span class="linenos">3110</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> -</span><span id="Func.sql_names-3111"><a href="#Func.sql_names-3111"><span class="linenos">3111</span></a> <span class="s2">"SQL name is only supported by concrete function implementations"</span> -</span><span id="Func.sql_names-3112"><a href="#Func.sql_names-3112"><span class="linenos">3112</span></a> <span class="p">)</span> -</span><span id="Func.sql_names-3113"><a href="#Func.sql_names-3113"><span class="linenos">3113</span></a> <span class="k">if</span> <span class="s2">"_sql_names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span> -</span><span id="Func.sql_names-3114"><a href="#Func.sql_names-3114"><span class="linenos">3114</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span> -</span><span id="Func.sql_names-3115"><a href="#Func.sql_names-3115"><span class="linenos">3115</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_names-3215"><a href="#Func.sql_names-3215"><span class="linenos">3215</span></a> <span class="nd">@classmethod</span> +</span><span id="Func.sql_names-3216"><a href="#Func.sql_names-3216"><span class="linenos">3216</span></a> <span class="k">def</span> <span class="nf">sql_names</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="Func.sql_names-3217"><a href="#Func.sql_names-3217"><span class="linenos">3217</span></a> <span class="k">if</span> <span class="bp">cls</span> <span class="ow">is</span> <span class="n">Func</span><span class="p">:</span> +</span><span id="Func.sql_names-3218"><a href="#Func.sql_names-3218"><span class="linenos">3218</span></a> <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span> +</span><span id="Func.sql_names-3219"><a href="#Func.sql_names-3219"><span class="linenos">3219</span></a> <span class="s2">"SQL name is only supported by concrete function implementations"</span> +</span><span id="Func.sql_names-3220"><a href="#Func.sql_names-3220"><span class="linenos">3220</span></a> <span class="p">)</span> +</span><span id="Func.sql_names-3221"><a href="#Func.sql_names-3221"><span class="linenos">3221</span></a> <span class="k">if</span> <span class="s2">"_sql_names"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="p">:</span> +</span><span id="Func.sql_names-3222"><a href="#Func.sql_names-3222"><span class="linenos">3222</span></a> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="n">camel_to_snake_case</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">)]</span> +</span><span id="Func.sql_names-3223"><a href="#Func.sql_names-3223"><span class="linenos">3223</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">_sql_names</span> </span></pre></div> @@ -29141,9 +29598,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Func.sql_name"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_name-3117"><a href="#Func.sql_name-3117"><span class="linenos">3117</span></a> <span class="nd">@classmethod</span> -</span><span id="Func.sql_name-3118"><a href="#Func.sql_name-3118"><span class="linenos">3118</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="Func.sql_name-3119"><a href="#Func.sql_name-3119"><span class="linenos">3119</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Func.sql_name-3225"><a href="#Func.sql_name-3225"><span class="linenos">3225</span></a> <span class="nd">@classmethod</span> +</span><span id="Func.sql_name-3226"><a href="#Func.sql_name-3226"><span class="linenos">3226</span></a> <span class="k">def</span> <span class="nf">sql_name</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="Func.sql_name-3227"><a href="#Func.sql_name-3227"><span class="linenos">3227</span></a> <span class="k">return</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> </span></pre></div> @@ -29162,9 +29619,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Func.default_parser_mappings"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Func.default_parser_mappings-3121"><a href="#Func.default_parser_mappings-3121"><span class="linenos">3121</span></a> <span class="nd">@classmethod</span> -</span><span id="Func.default_parser_mappings-3122"><a href="#Func.default_parser_mappings-3122"><span class="linenos">3122</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> -</span><span id="Func.default_parser_mappings-3123"><a href="#Func.default_parser_mappings-3123"><span class="linenos">3123</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Func.default_parser_mappings-3229"><a href="#Func.default_parser_mappings-3229"><span class="linenos">3229</span></a> <span class="nd">@classmethod</span> +</span><span id="Func.default_parser_mappings-3230"><a href="#Func.default_parser_mappings-3230"><span class="linenos">3230</span></a> <span class="k">def</span> <span class="nf">default_parser_mappings</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span> +</span><span id="Func.default_parser_mappings-3231"><a href="#Func.default_parser_mappings-3231"><span class="linenos">3231</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="bp">cls</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">cls</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()}</span> </span></pre></div> @@ -29232,8 +29689,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#AggFunc"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3126"><a href="#AggFunc-3126"><span class="linenos">3126</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="AggFunc-3127"><a href="#AggFunc-3127"><span class="linenos">3127</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AggFunc-3234"><a href="#AggFunc-3234"><span class="linenos">3234</span></a><span class="k">class</span> <span class="nc">AggFunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="AggFunc-3235"><a href="#AggFunc-3235"><span class="linenos">3235</span></a> <span class="k">pass</span> </span></pre></div> @@ -29307,8 +29764,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Abs"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3130"><a href="#Abs-3130"><span class="linenos">3130</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Abs-3131"><a href="#Abs-3131"><span class="linenos">3131</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Abs-3238"><a href="#Abs-3238"><span class="linenos">3238</span></a><span class="k">class</span> <span class="nc">Abs</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Abs-3239"><a href="#Abs-3239"><span class="linenos">3239</span></a> <span class="k">pass</span> </span></pre></div> @@ -29382,9 +29839,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Anonymous"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-3134"><a href="#Anonymous-3134"><span class="linenos">3134</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Anonymous-3135"><a href="#Anonymous-3135"><span class="linenos">3135</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Anonymous-3136"><a href="#Anonymous-3136"><span class="linenos">3136</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Anonymous-3242"><a href="#Anonymous-3242"><span class="linenos">3242</span></a><span class="k">class</span> <span class="nc">Anonymous</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Anonymous-3243"><a href="#Anonymous-3243"><span class="linenos">3243</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Anonymous-3244"><a href="#Anonymous-3244"><span class="linenos">3244</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -29458,8 +29915,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ApproxDistinct"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3139"><a href="#ApproxDistinct-3139"><span class="linenos">3139</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="ApproxDistinct-3140"><a href="#ApproxDistinct-3140"><span class="linenos">3140</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxDistinct-3247"><a href="#ApproxDistinct-3247"><span class="linenos">3247</span></a><span class="k">class</span> <span class="nc">ApproxDistinct</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="ApproxDistinct-3248"><a href="#ApproxDistinct-3248"><span class="linenos">3248</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -29533,9 +29990,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Array"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Array-3143"><a href="#Array-3143"><span class="linenos">3143</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Array-3144"><a href="#Array-3144"><span class="linenos">3144</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Array-3145"><a href="#Array-3145"><span class="linenos">3145</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Array-3251"><a href="#Array-3251"><span class="linenos">3251</span></a><span class="k">class</span> <span class="nc">Array</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Array-3252"><a href="#Array-3252"><span class="linenos">3252</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Array-3253"><a href="#Array-3253"><span class="linenos">3253</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -29598,6 +30055,81 @@ name is set to the expression's class name transformed to snake case.</li> </dl> </div> </section> + <section id="ToChar"> + <input id="ToChar-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr class"> + + <span class="def">class</span> + <span class="name">ToChar</span><wbr>(<span class="base"><a href="#Func">Func</a></span>): + + <label class="view-source-button" for="ToChar-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#ToChar"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="ToChar-3257"><a href="#ToChar-3257"><span class="linenos">3257</span></a><span class="k">class</span> <span class="nc">ToChar</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ToChar-3258"><a href="#ToChar-3258"><span class="linenos">3258</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span></pre></div> + + + + + <div class="inherited"> + <h5>Inherited Members</h5> + <dl> + <div><dt><a href="#Expression">Expression</a></dt> + <dd id="ToChar.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd> + <dd id="ToChar.this" class="variable"><a href="#Expression.this">this</a></dd> + <dd id="ToChar.expression" class="variable"><a href="#Expression.expression">expression</a></dd> + <dd id="ToChar.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd> + <dd id="ToChar.text" class="function"><a href="#Expression.text">text</a></dd> + <dd id="ToChar.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd> + <dd id="ToChar.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd> + <dd id="ToChar.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd> + <dd id="ToChar.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd> + <dd id="ToChar.alias" class="variable"><a href="#Expression.alias">alias</a></dd> + <dd id="ToChar.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd> + <dd id="ToChar.copy" class="function"><a href="#Expression.copy">copy</a></dd> + <dd id="ToChar.append" class="function"><a href="#Expression.append">append</a></dd> + <dd id="ToChar.set" class="function"><a href="#Expression.set">set</a></dd> + <dd id="ToChar.depth" class="variable"><a href="#Expression.depth">depth</a></dd> + <dd id="ToChar.find" class="function"><a href="#Expression.find">find</a></dd> + <dd id="ToChar.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd> + <dd id="ToChar.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd> + <dd id="ToChar.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd> + <dd id="ToChar.root" class="function"><a href="#Expression.root">root</a></dd> + <dd id="ToChar.walk" class="function"><a href="#Expression.walk">walk</a></dd> + <dd id="ToChar.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd> + <dd id="ToChar.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd> + <dd id="ToChar.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd> + <dd id="ToChar.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd> + <dd id="ToChar.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd> + <dd id="ToChar.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd> + <dd id="ToChar.sql" class="function"><a href="#Expression.sql">sql</a></dd> + <dd id="ToChar.transform" class="function"><a href="#Expression.transform">transform</a></dd> + <dd id="ToChar.replace" class="function"><a href="#Expression.replace">replace</a></dd> + <dd id="ToChar.pop" class="function"><a href="#Expression.pop">pop</a></dd> + <dd id="ToChar.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd> + <dd id="ToChar.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd> + <dd id="ToChar.dump" class="function"><a href="#Expression.dump">dump</a></dd> + <dd id="ToChar.load" class="function"><a href="#Expression.load">load</a></dd> + + </div> + <div><dt><a href="#Func">Func</a></dt> + <dd id="ToChar.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd> + <dd id="ToChar.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd> + <dd id="ToChar.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd> + <dd id="ToChar.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd> + + </div> + <div><dt><a href="#Condition">Condition</a></dt> + <dd id="ToChar.and_" class="function"><a href="#Condition.and_">and_</a></dd> + <dd id="ToChar.or_" class="function"><a href="#Condition.or_">or_</a></dd> + <dd id="ToChar.not_" class="function"><a href="#Condition.not_">not_</a></dd> + + </div> + </dl> + </div> + </section> <section id="GenerateSeries"> <input id="GenerateSeries-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr class"> @@ -29609,8 +30141,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#GenerateSeries"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="GenerateSeries-3148"><a href="#GenerateSeries-3148"><span class="linenos">3148</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="GenerateSeries-3149"><a href="#GenerateSeries-3149"><span class="linenos">3149</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"start"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"step"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="GenerateSeries-3261"><a href="#GenerateSeries-3261"><span class="linenos">3261</span></a><span class="k">class</span> <span class="nc">GenerateSeries</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="GenerateSeries-3262"><a href="#GenerateSeries-3262"><span class="linenos">3262</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"start"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"end"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"step"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -29684,8 +30216,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayAgg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3152"><a href="#ArrayAgg-3152"><span class="linenos">3152</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="ArrayAgg-3153"><a href="#ArrayAgg-3153"><span class="linenos">3153</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAgg-3265"><a href="#ArrayAgg-3265"><span class="linenos">3265</span></a><span class="k">class</span> <span class="nc">ArrayAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="ArrayAgg-3266"><a href="#ArrayAgg-3266"><span class="linenos">3266</span></a> <span class="k">pass</span> </span></pre></div> @@ -29759,8 +30291,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayAll"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAll-3156"><a href="#ArrayAll-3156"><span class="linenos">3156</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArrayAll-3157"><a href="#ArrayAll-3157"><span class="linenos">3157</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAll-3269"><a href="#ArrayAll-3269"><span class="linenos">3269</span></a><span class="k">class</span> <span class="nc">ArrayAll</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArrayAll-3270"><a href="#ArrayAll-3270"><span class="linenos">3270</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -29834,8 +30366,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayAny"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAny-3160"><a href="#ArrayAny-3160"><span class="linenos">3160</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArrayAny-3161"><a href="#ArrayAny-3161"><span class="linenos">3161</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayAny-3273"><a href="#ArrayAny-3273"><span class="linenos">3273</span></a><span class="k">class</span> <span class="nc">ArrayAny</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArrayAny-3274"><a href="#ArrayAny-3274"><span class="linenos">3274</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -29909,9 +30441,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayConcat"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-3164"><a href="#ArrayConcat-3164"><span class="linenos">3164</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArrayConcat-3165"><a href="#ArrayConcat-3165"><span class="linenos">3165</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="ArrayConcat-3166"><a href="#ArrayConcat-3166"><span class="linenos">3166</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayConcat-3277"><a href="#ArrayConcat-3277"><span class="linenos">3277</span></a><span class="k">class</span> <span class="nc">ArrayConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArrayConcat-3278"><a href="#ArrayConcat-3278"><span class="linenos">3278</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="ArrayConcat-3279"><a href="#ArrayConcat-3279"><span class="linenos">3279</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -29985,8 +30517,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayContains"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-3169"><a href="#ArrayContains-3169"><span class="linenos">3169</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> -</span><span id="ArrayContains-3170"><a href="#ArrayContains-3170"><span class="linenos">3170</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContains-3282"><a href="#ArrayContains-3282"><span class="linenos">3282</span></a><span class="k">class</span> <span class="nc">ArrayContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> +</span><span id="ArrayContains-3283"><a href="#ArrayContains-3283"><span class="linenos">3283</span></a> <span class="k">pass</span> </span></pre></div> @@ -30060,8 +30592,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayContained"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-3173"><a href="#ArrayContained-3173"><span class="linenos">3173</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="ArrayContained-3174"><a href="#ArrayContained-3174"><span class="linenos">3174</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayContained-3286"><a href="#ArrayContained-3286"><span class="linenos">3286</span></a><span class="k">class</span> <span class="nc">ArrayContained</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="ArrayContained-3287"><a href="#ArrayContained-3287"><span class="linenos">3287</span></a> <span class="k">pass</span> </span></pre></div> @@ -30122,9 +30654,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayFilter"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayFilter-3177"><a href="#ArrayFilter-3177"><span class="linenos">3177</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArrayFilter-3178"><a href="#ArrayFilter-3178"><span class="linenos">3178</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="ArrayFilter-3179"><a href="#ArrayFilter-3179"><span class="linenos">3179</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"FILTER"</span><span class="p">,</span> <span class="s2">"ARRAY_FILTER"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayFilter-3290"><a href="#ArrayFilter-3290"><span class="linenos">3290</span></a><span class="k">class</span> <span class="nc">ArrayFilter</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArrayFilter-3291"><a href="#ArrayFilter-3291"><span class="linenos">3291</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="ArrayFilter-3292"><a href="#ArrayFilter-3292"><span class="linenos">3292</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"FILTER"</span><span class="p">,</span> <span class="s2">"ARRAY_FILTER"</span><span class="p">]</span> </span></pre></div> @@ -30198,8 +30730,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayJoin"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayJoin-3182"><a href="#ArrayJoin-3182"><span class="linenos">3182</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArrayJoin-3183"><a href="#ArrayJoin-3183"><span class="linenos">3183</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayJoin-3295"><a href="#ArrayJoin-3295"><span class="linenos">3295</span></a><span class="k">class</span> <span class="nc">ArrayJoin</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArrayJoin-3296"><a href="#ArrayJoin-3296"><span class="linenos">3296</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"null"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -30273,8 +30805,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArraySize"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3186"><a href="#ArraySize-3186"><span class="linenos">3186</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArraySize-3187"><a href="#ArraySize-3187"><span class="linenos">3187</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySize-3299"><a href="#ArraySize-3299"><span class="linenos">3299</span></a><span class="k">class</span> <span class="nc">ArraySize</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArraySize-3300"><a href="#ArraySize-3300"><span class="linenos">3300</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -30348,8 +30880,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArraySort"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySort-3190"><a href="#ArraySort-3190"><span class="linenos">3190</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArraySort-3191"><a href="#ArraySort-3191"><span class="linenos">3191</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySort-3303"><a href="#ArraySort-3303"><span class="linenos">3303</span></a><span class="k">class</span> <span class="nc">ArraySort</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArraySort-3304"><a href="#ArraySort-3304"><span class="linenos">3304</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -30423,8 +30955,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArraySum"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3194"><a href="#ArraySum-3194"><span class="linenos">3194</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ArraySum-3195"><a href="#ArraySum-3195"><span class="linenos">3195</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArraySum-3307"><a href="#ArraySum-3307"><span class="linenos">3307</span></a><span class="k">class</span> <span class="nc">ArraySum</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ArraySum-3308"><a href="#ArraySum-3308"><span class="linenos">3308</span></a> <span class="k">pass</span> </span></pre></div> @@ -30498,8 +31030,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ArrayUnionAgg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3198"><a href="#ArrayUnionAgg-3198"><span class="linenos">3198</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="ArrayUnionAgg-3199"><a href="#ArrayUnionAgg-3199"><span class="linenos">3199</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ArrayUnionAgg-3311"><a href="#ArrayUnionAgg-3311"><span class="linenos">3311</span></a><span class="k">class</span> <span class="nc">ArrayUnionAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="ArrayUnionAgg-3312"><a href="#ArrayUnionAgg-3312"><span class="linenos">3312</span></a> <span class="k">pass</span> </span></pre></div> @@ -30573,8 +31105,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Avg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3202"><a href="#Avg-3202"><span class="linenos">3202</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Avg-3203"><a href="#Avg-3203"><span class="linenos">3203</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Avg-3315"><a href="#Avg-3315"><span class="linenos">3315</span></a><span class="k">class</span> <span class="nc">Avg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Avg-3316"><a href="#Avg-3316"><span class="linenos">3316</span></a> <span class="k">pass</span> </span></pre></div> @@ -30648,8 +31180,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#AnyValue"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3206"><a href="#AnyValue-3206"><span class="linenos">3206</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="AnyValue-3207"><a href="#AnyValue-3207"><span class="linenos">3207</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="AnyValue-3319"><a href="#AnyValue-3319"><span class="linenos">3319</span></a><span class="k">class</span> <span class="nc">AnyValue</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="AnyValue-3320"><a href="#AnyValue-3320"><span class="linenos">3320</span></a> <span class="k">pass</span> </span></pre></div> @@ -30723,8 +31255,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Case"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Case-3210"><a href="#Case-3210"><span class="linenos">3210</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Case-3211"><a href="#Case-3211"><span class="linenos">3211</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"ifs"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Case-3323"><a href="#Case-3323"><span class="linenos">3323</span></a><span class="k">class</span> <span class="nc">Case</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Case-3324"><a href="#Case-3324"><span class="linenos">3324</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"ifs"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"default"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -30798,23 +31330,23 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Cast"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3214"><a href="#Cast-3214"><span class="linenos">3214</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Cast-3215"><a href="#Cast-3215"><span class="linenos">3215</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"to"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Cast-3216"><a href="#Cast-3216"><span class="linenos">3216</span></a> -</span><span id="Cast-3217"><a href="#Cast-3217"><span class="linenos">3217</span></a> <span class="nd">@property</span> -</span><span id="Cast-3218"><a href="#Cast-3218"><span class="linenos">3218</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Cast-3219"><a href="#Cast-3219"><span class="linenos">3219</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span> -</span><span id="Cast-3220"><a href="#Cast-3220"><span class="linenos">3220</span></a> -</span><span id="Cast-3221"><a href="#Cast-3221"><span class="linenos">3221</span></a> <span class="nd">@property</span> -</span><span id="Cast-3222"><a href="#Cast-3222"><span class="linenos">3222</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Cast-3223"><a href="#Cast-3223"><span class="linenos">3223</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"to"</span><span class="p">]</span> -</span><span id="Cast-3224"><a href="#Cast-3224"><span class="linenos">3224</span></a> -</span><span id="Cast-3225"><a href="#Cast-3225"><span class="linenos">3225</span></a> <span class="nd">@property</span> -</span><span id="Cast-3226"><a href="#Cast-3226"><span class="linenos">3226</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Cast-3227"><a href="#Cast-3227"><span class="linenos">3227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> -</span><span id="Cast-3228"><a href="#Cast-3228"><span class="linenos">3228</span></a> -</span><span id="Cast-3229"><a href="#Cast-3229"><span class="linenos">3229</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Cast-3230"><a href="#Cast-3230"><span class="linenos">3230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Cast-3327"><a href="#Cast-3327"><span class="linenos">3327</span></a><span class="k">class</span> <span class="nc">Cast</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Cast-3328"><a href="#Cast-3328"><span class="linenos">3328</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"to"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Cast-3329"><a href="#Cast-3329"><span class="linenos">3329</span></a> +</span><span id="Cast-3330"><a href="#Cast-3330"><span class="linenos">3330</span></a> <span class="nd">@property</span> +</span><span id="Cast-3331"><a href="#Cast-3331"><span class="linenos">3331</span></a> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Cast-3332"><a href="#Cast-3332"><span class="linenos">3332</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span> +</span><span id="Cast-3333"><a href="#Cast-3333"><span class="linenos">3333</span></a> +</span><span id="Cast-3334"><a href="#Cast-3334"><span class="linenos">3334</span></a> <span class="nd">@property</span> +</span><span id="Cast-3335"><a href="#Cast-3335"><span class="linenos">3335</span></a> <span class="k">def</span> <span class="nf">to</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Cast-3336"><a href="#Cast-3336"><span class="linenos">3336</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"to"</span><span class="p">]</span> +</span><span id="Cast-3337"><a href="#Cast-3337"><span class="linenos">3337</span></a> +</span><span id="Cast-3338"><a href="#Cast-3338"><span class="linenos">3338</span></a> <span class="nd">@property</span> +</span><span id="Cast-3339"><a href="#Cast-3339"><span class="linenos">3339</span></a> <span class="k">def</span> <span class="nf">output_name</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Cast-3340"><a href="#Cast-3340"><span class="linenos">3340</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span> +</span><span id="Cast-3341"><a href="#Cast-3341"><span class="linenos">3341</span></a> +</span><span id="Cast-3342"><a href="#Cast-3342"><span class="linenos">3342</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Cast-3343"><a href="#Cast-3343"><span class="linenos">3343</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span> </span></pre></div> @@ -30861,8 +31393,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Cast.is_type"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3229"><a href="#Cast.is_type-3229"><span class="linenos">3229</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Cast.is_type-3230"><a href="#Cast.is_type-3230"><span class="linenos">3230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Cast.is_type-3342"><a href="#Cast.is_type-3342"><span class="linenos">3342</span></a> <span class="k">def</span> <span class="nf">is_type</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dtype</span><span class="p">:</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Cast.is_type-3343"><a href="#Cast.is_type-3343"><span class="linenos">3343</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">is_type</span><span class="p">(</span><span class="n">dtype</span><span class="p">)</span> </span></pre></div> @@ -30936,8 +31468,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Collate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3233"><a href="#Collate-3233"><span class="linenos">3233</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="Collate-3234"><a href="#Collate-3234"><span class="linenos">3234</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Collate-3346"><a href="#Collate-3346"><span class="linenos">3346</span></a><span class="k">class</span> <span class="nc">Collate</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="Collate-3347"><a href="#Collate-3347"><span class="linenos">3347</span></a> <span class="k">pass</span> </span></pre></div> @@ -30998,8 +31530,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TryCast"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3237"><a href="#TryCast-3237"><span class="linenos">3237</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="TryCast-3238"><a href="#TryCast-3238"><span class="linenos">3238</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TryCast-3350"><a href="#TryCast-3350"><span class="linenos">3350</span></a><span class="k">class</span> <span class="nc">TryCast</span><span class="p">(</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="TryCast-3351"><a href="#TryCast-3351"><span class="linenos">3351</span></a> <span class="k">pass</span> </span></pre></div> @@ -31077,9 +31609,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Ceil"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3241"><a href="#Ceil-3241"><span class="linenos">3241</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Ceil-3242"><a href="#Ceil-3242"><span class="linenos">3242</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Ceil-3243"><a href="#Ceil-3243"><span class="linenos">3243</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CEIL"</span><span class="p">,</span> <span class="s2">"CEILING"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Ceil-3354"><a href="#Ceil-3354"><span class="linenos">3354</span></a><span class="k">class</span> <span class="nc">Ceil</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Ceil-3355"><a href="#Ceil-3355"><span class="linenos">3355</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Ceil-3356"><a href="#Ceil-3356"><span class="linenos">3356</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CEIL"</span><span class="p">,</span> <span class="s2">"CEILING"</span><span class="p">]</span> </span></pre></div> @@ -31153,9 +31685,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Coalesce"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3246"><a href="#Coalesce-3246"><span class="linenos">3246</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Coalesce-3247"><a href="#Coalesce-3247"><span class="linenos">3247</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Coalesce-3248"><a href="#Coalesce-3248"><span class="linenos">3248</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Coalesce-3359"><a href="#Coalesce-3359"><span class="linenos">3359</span></a><span class="k">class</span> <span class="nc">Coalesce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Coalesce-3360"><a href="#Coalesce-3360"><span class="linenos">3360</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Coalesce-3361"><a href="#Coalesce-3361"><span class="linenos">3361</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -31229,9 +31761,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Concat"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-3251"><a href="#Concat-3251"><span class="linenos">3251</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Concat-3252"><a href="#Concat-3252"><span class="linenos">3252</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Concat-3253"><a href="#Concat-3253"><span class="linenos">3253</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Concat-3364"><a href="#Concat-3364"><span class="linenos">3364</span></a><span class="k">class</span> <span class="nc">Concat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Concat-3365"><a href="#Concat-3365"><span class="linenos">3365</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Concat-3366"><a href="#Concat-3366"><span class="linenos">3366</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -31305,8 +31837,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#ConcatWs"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3256"><a href="#ConcatWs-3256"><span class="linenos">3256</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span> -</span><span id="ConcatWs-3257"><a href="#ConcatWs-3257"><span class="linenos">3257</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CONCAT_WS"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ConcatWs-3369"><a href="#ConcatWs-3369"><span class="linenos">3369</span></a><span class="k">class</span> <span class="nc">ConcatWs</span><span class="p">(</span><span class="n">Concat</span><span class="p">):</span> +</span><span id="ConcatWs-3370"><a href="#ConcatWs-3370"><span class="linenos">3370</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"CONCAT_WS"</span><span class="p">]</span> </span></pre></div> @@ -31380,8 +31912,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Count"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3260"><a href="#Count-3260"><span class="linenos">3260</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Count-3261"><a href="#Count-3261"><span class="linenos">3261</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Count-3373"><a href="#Count-3373"><span class="linenos">3373</span></a><span class="k">class</span> <span class="nc">Count</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Count-3374"><a href="#Count-3374"><span class="linenos">3374</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31444,6 +31976,81 @@ name is set to the expression's class name transformed to snake case.</li> </dl> </div> </section> + <section id="CountIf"> + <input id="CountIf-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr class"> + + <span class="def">class</span> + <span class="name">CountIf</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>): + + <label class="view-source-button" for="CountIf-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#CountIf"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="CountIf-3377"><a href="#CountIf-3377"><span class="linenos">3377</span></a><span class="k">class</span> <span class="nc">CountIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="CountIf-3378"><a href="#CountIf-3378"><span class="linenos">3378</span></a> <span class="k">pass</span> +</span></pre></div> + + + + + <div class="inherited"> + <h5>Inherited Members</h5> + <dl> + <div><dt><a href="#Expression">Expression</a></dt> + <dd id="CountIf.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd> + <dd id="CountIf.this" class="variable"><a href="#Expression.this">this</a></dd> + <dd id="CountIf.expression" class="variable"><a href="#Expression.expression">expression</a></dd> + <dd id="CountIf.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd> + <dd id="CountIf.text" class="function"><a href="#Expression.text">text</a></dd> + <dd id="CountIf.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd> + <dd id="CountIf.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd> + <dd id="CountIf.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd> + <dd id="CountIf.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd> + <dd id="CountIf.alias" class="variable"><a href="#Expression.alias">alias</a></dd> + <dd id="CountIf.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd> + <dd id="CountIf.copy" class="function"><a href="#Expression.copy">copy</a></dd> + <dd id="CountIf.append" class="function"><a href="#Expression.append">append</a></dd> + <dd id="CountIf.set" class="function"><a href="#Expression.set">set</a></dd> + <dd id="CountIf.depth" class="variable"><a href="#Expression.depth">depth</a></dd> + <dd id="CountIf.find" class="function"><a href="#Expression.find">find</a></dd> + <dd id="CountIf.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd> + <dd id="CountIf.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd> + <dd id="CountIf.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd> + <dd id="CountIf.root" class="function"><a href="#Expression.root">root</a></dd> + <dd id="CountIf.walk" class="function"><a href="#Expression.walk">walk</a></dd> + <dd id="CountIf.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd> + <dd id="CountIf.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd> + <dd id="CountIf.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd> + <dd id="CountIf.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd> + <dd id="CountIf.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd> + <dd id="CountIf.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd> + <dd id="CountIf.sql" class="function"><a href="#Expression.sql">sql</a></dd> + <dd id="CountIf.transform" class="function"><a href="#Expression.transform">transform</a></dd> + <dd id="CountIf.replace" class="function"><a href="#Expression.replace">replace</a></dd> + <dd id="CountIf.pop" class="function"><a href="#Expression.pop">pop</a></dd> + <dd id="CountIf.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd> + <dd id="CountIf.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd> + <dd id="CountIf.dump" class="function"><a href="#Expression.dump">dump</a></dd> + <dd id="CountIf.load" class="function"><a href="#Expression.load">load</a></dd> + + </div> + <div><dt><a href="#Func">Func</a></dt> + <dd id="CountIf.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd> + <dd id="CountIf.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd> + <dd id="CountIf.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd> + <dd id="CountIf.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd> + + </div> + <div><dt><a href="#Condition">Condition</a></dt> + <dd id="CountIf.and_" class="function"><a href="#Condition.and_">and_</a></dd> + <dd id="CountIf.or_" class="function"><a href="#Condition.or_">or_</a></dd> + <dd id="CountIf.not_" class="function"><a href="#Condition.not_">not_</a></dd> + + </div> + </dl> + </div> + </section> <section id="CurrentDate"> <input id="CurrentDate-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr class"> @@ -31455,8 +32062,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#CurrentDate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3264"><a href="#CurrentDate-3264"><span class="linenos">3264</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="CurrentDate-3265"><a href="#CurrentDate-3265"><span class="linenos">3265</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDate-3381"><a href="#CurrentDate-3381"><span class="linenos">3381</span></a><span class="k">class</span> <span class="nc">CurrentDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="CurrentDate-3382"><a href="#CurrentDate-3382"><span class="linenos">3382</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31530,8 +32137,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#CurrentDatetime"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3268"><a href="#CurrentDatetime-3268"><span class="linenos">3268</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="CurrentDatetime-3269"><a href="#CurrentDatetime-3269"><span class="linenos">3269</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentDatetime-3385"><a href="#CurrentDatetime-3385"><span class="linenos">3385</span></a><span class="k">class</span> <span class="nc">CurrentDatetime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="CurrentDatetime-3386"><a href="#CurrentDatetime-3386"><span class="linenos">3386</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31605,8 +32212,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#CurrentTime"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3272"><a href="#CurrentTime-3272"><span class="linenos">3272</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="CurrentTime-3273"><a href="#CurrentTime-3273"><span class="linenos">3273</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTime-3389"><a href="#CurrentTime-3389"><span class="linenos">3389</span></a><span class="k">class</span> <span class="nc">CurrentTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="CurrentTime-3390"><a href="#CurrentTime-3390"><span class="linenos">3390</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31680,8 +32287,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#CurrentTimestamp"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3276"><a href="#CurrentTimestamp-3276"><span class="linenos">3276</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="CurrentTimestamp-3277"><a href="#CurrentTimestamp-3277"><span class="linenos">3277</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="CurrentTimestamp-3393"><a href="#CurrentTimestamp-3393"><span class="linenos">3393</span></a><span class="k">class</span> <span class="nc">CurrentTimestamp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="CurrentTimestamp-3394"><a href="#CurrentTimestamp-3394"><span class="linenos">3394</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31755,8 +32362,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateAdd"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-3280"><a href="#DateAdd-3280"><span class="linenos">3280</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DateAdd-3281"><a href="#DateAdd-3281"><span class="linenos">3281</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateAdd-3397"><a href="#DateAdd-3397"><span class="linenos">3397</span></a><span class="k">class</span> <span class="nc">DateAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DateAdd-3398"><a href="#DateAdd-3398"><span class="linenos">3398</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31833,8 +32440,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateSub"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-3284"><a href="#DateSub-3284"><span class="linenos">3284</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DateSub-3285"><a href="#DateSub-3285"><span class="linenos">3285</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateSub-3401"><a href="#DateSub-3401"><span class="linenos">3401</span></a><span class="k">class</span> <span class="nc">DateSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DateSub-3402"><a href="#DateSub-3402"><span class="linenos">3402</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31911,9 +32518,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateDiff"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-3288"><a href="#DateDiff-3288"><span class="linenos">3288</span></a><span class="k">class</span> <span class="nc">DateDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DateDiff-3289"><a href="#DateDiff-3289"><span class="linenos">3289</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEDIFF"</span><span class="p">,</span> <span class="s2">"DATE_DIFF"</span><span class="p">]</span> -</span><span id="DateDiff-3290"><a href="#DateDiff-3290"><span class="linenos">3290</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateDiff-3405"><a href="#DateDiff-3405"><span class="linenos">3405</span></a><span class="k">class</span> <span class="nc">DateDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DateDiff-3406"><a href="#DateDiff-3406"><span class="linenos">3406</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEDIFF"</span><span class="p">,</span> <span class="s2">"DATE_DIFF"</span><span class="p">]</span> +</span><span id="DateDiff-3407"><a href="#DateDiff-3407"><span class="linenos">3407</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -31990,8 +32597,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateTrunc"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3293"><a href="#DateTrunc-3293"><span class="linenos">3293</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DateTrunc-3294"><a href="#DateTrunc-3294"><span class="linenos">3294</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateTrunc-3410"><a href="#DateTrunc-3410"><span class="linenos">3410</span></a><span class="k">class</span> <span class="nc">DateTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DateTrunc-3411"><a href="#DateTrunc-3411"><span class="linenos">3411</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32065,8 +32672,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DatetimeAdd"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-3297"><a href="#DatetimeAdd-3297"><span class="linenos">3297</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DatetimeAdd-3298"><a href="#DatetimeAdd-3298"><span class="linenos">3298</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeAdd-3414"><a href="#DatetimeAdd-3414"><span class="linenos">3414</span></a><span class="k">class</span> <span class="nc">DatetimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DatetimeAdd-3415"><a href="#DatetimeAdd-3415"><span class="linenos">3415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32143,8 +32750,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DatetimeSub"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-3301"><a href="#DatetimeSub-3301"><span class="linenos">3301</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DatetimeSub-3302"><a href="#DatetimeSub-3302"><span class="linenos">3302</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeSub-3418"><a href="#DatetimeSub-3418"><span class="linenos">3418</span></a><span class="k">class</span> <span class="nc">DatetimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DatetimeSub-3419"><a href="#DatetimeSub-3419"><span class="linenos">3419</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32221,8 +32828,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DatetimeDiff"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-3305"><a href="#DatetimeDiff-3305"><span class="linenos">3305</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DatetimeDiff-3306"><a href="#DatetimeDiff-3306"><span class="linenos">3306</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeDiff-3422"><a href="#DatetimeDiff-3422"><span class="linenos">3422</span></a><span class="k">class</span> <span class="nc">DatetimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DatetimeDiff-3423"><a href="#DatetimeDiff-3423"><span class="linenos">3423</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32299,8 +32906,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DatetimeTrunc"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-3309"><a href="#DatetimeTrunc-3309"><span class="linenos">3309</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="DatetimeTrunc-3310"><a href="#DatetimeTrunc-3310"><span class="linenos">3310</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DatetimeTrunc-3426"><a href="#DatetimeTrunc-3426"><span class="linenos">3426</span></a><span class="k">class</span> <span class="nc">DatetimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="DatetimeTrunc-3427"><a href="#DatetimeTrunc-3427"><span class="linenos">3427</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32377,8 +32984,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DayOfWeek"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3313"><a href="#DayOfWeek-3313"><span class="linenos">3313</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DayOfWeek-3314"><a href="#DayOfWeek-3314"><span class="linenos">3314</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_WEEK"</span><span class="p">,</span> <span class="s2">"DAYOFWEEK"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfWeek-3430"><a href="#DayOfWeek-3430"><span class="linenos">3430</span></a><span class="k">class</span> <span class="nc">DayOfWeek</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DayOfWeek-3431"><a href="#DayOfWeek-3431"><span class="linenos">3431</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_WEEK"</span><span class="p">,</span> <span class="s2">"DAYOFWEEK"</span><span class="p">]</span> </span></pre></div> @@ -32452,8 +33059,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DayOfMonth"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3317"><a href="#DayOfMonth-3317"><span class="linenos">3317</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DayOfMonth-3318"><a href="#DayOfMonth-3318"><span class="linenos">3318</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_MONTH"</span><span class="p">,</span> <span class="s2">"DAYOFMONTH"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfMonth-3434"><a href="#DayOfMonth-3434"><span class="linenos">3434</span></a><span class="k">class</span> <span class="nc">DayOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DayOfMonth-3435"><a href="#DayOfMonth-3435"><span class="linenos">3435</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_MONTH"</span><span class="p">,</span> <span class="s2">"DAYOFMONTH"</span><span class="p">]</span> </span></pre></div> @@ -32527,8 +33134,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DayOfYear"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3321"><a href="#DayOfYear-3321"><span class="linenos">3321</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DayOfYear-3322"><a href="#DayOfYear-3322"><span class="linenos">3322</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_YEAR"</span><span class="p">,</span> <span class="s2">"DAYOFYEAR"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DayOfYear-3438"><a href="#DayOfYear-3438"><span class="linenos">3438</span></a><span class="k">class</span> <span class="nc">DayOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DayOfYear-3439"><a href="#DayOfYear-3439"><span class="linenos">3439</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DAY_OF_YEAR"</span><span class="p">,</span> <span class="s2">"DAYOFYEAR"</span><span class="p">]</span> </span></pre></div> @@ -32602,8 +33209,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#WeekOfYear"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3325"><a href="#WeekOfYear-3325"><span class="linenos">3325</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="WeekOfYear-3326"><a href="#WeekOfYear-3326"><span class="linenos">3326</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"WEEK_OF_YEAR"</span><span class="p">,</span> <span class="s2">"WEEKOFYEAR"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="WeekOfYear-3442"><a href="#WeekOfYear-3442"><span class="linenos">3442</span></a><span class="k">class</span> <span class="nc">WeekOfYear</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="WeekOfYear-3443"><a href="#WeekOfYear-3443"><span class="linenos">3443</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"WEEK_OF_YEAR"</span><span class="p">,</span> <span class="s2">"WEEKOFYEAR"</span><span class="p">]</span> </span></pre></div> @@ -32677,8 +33284,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#LastDateOfMonth"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3329"><a href="#LastDateOfMonth-3329"><span class="linenos">3329</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="LastDateOfMonth-3330"><a href="#LastDateOfMonth-3330"><span class="linenos">3330</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LastDateOfMonth-3446"><a href="#LastDateOfMonth-3446"><span class="linenos">3446</span></a><span class="k">class</span> <span class="nc">LastDateOfMonth</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="LastDateOfMonth-3447"><a href="#LastDateOfMonth-3447"><span class="linenos">3447</span></a> <span class="k">pass</span> </span></pre></div> @@ -32752,8 +33359,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Extract"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-3333"><a href="#Extract-3333"><span class="linenos">3333</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Extract-3334"><a href="#Extract-3334"><span class="linenos">3334</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Extract-3450"><a href="#Extract-3450"><span class="linenos">3450</span></a><span class="k">class</span> <span class="nc">Extract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Extract-3451"><a href="#Extract-3451"><span class="linenos">3451</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -32827,8 +33434,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimestampAdd"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-3337"><a href="#TimestampAdd-3337"><span class="linenos">3337</span></a><span class="k">class</span> <span class="nc">TimestampAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimestampAdd-3338"><a href="#TimestampAdd-3338"><span class="linenos">3338</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampAdd-3454"><a href="#TimestampAdd-3454"><span class="linenos">3454</span></a><span class="k">class</span> <span class="nc">TimestampAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimestampAdd-3455"><a href="#TimestampAdd-3455"><span class="linenos">3455</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32905,8 +33512,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimestampSub"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-3341"><a href="#TimestampSub-3341"><span class="linenos">3341</span></a><span class="k">class</span> <span class="nc">TimestampSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimestampSub-3342"><a href="#TimestampSub-3342"><span class="linenos">3342</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampSub-3458"><a href="#TimestampSub-3458"><span class="linenos">3458</span></a><span class="k">class</span> <span class="nc">TimestampSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimestampSub-3459"><a href="#TimestampSub-3459"><span class="linenos">3459</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -32983,8 +33590,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimestampDiff"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-3345"><a href="#TimestampDiff-3345"><span class="linenos">3345</span></a><span class="k">class</span> <span class="nc">TimestampDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimestampDiff-3346"><a href="#TimestampDiff-3346"><span class="linenos">3346</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampDiff-3462"><a href="#TimestampDiff-3462"><span class="linenos">3462</span></a><span class="k">class</span> <span class="nc">TimestampDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimestampDiff-3463"><a href="#TimestampDiff-3463"><span class="linenos">3463</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33061,8 +33668,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimestampTrunc"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-3349"><a href="#TimestampTrunc-3349"><span class="linenos">3349</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimestampTrunc-3350"><a href="#TimestampTrunc-3350"><span class="linenos">3350</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimestampTrunc-3466"><a href="#TimestampTrunc-3466"><span class="linenos">3466</span></a><span class="k">class</span> <span class="nc">TimestampTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimestampTrunc-3467"><a href="#TimestampTrunc-3467"><span class="linenos">3467</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33139,8 +33746,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimeAdd"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-3353"><a href="#TimeAdd-3353"><span class="linenos">3353</span></a><span class="k">class</span> <span class="nc">TimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimeAdd-3354"><a href="#TimeAdd-3354"><span class="linenos">3354</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeAdd-3470"><a href="#TimeAdd-3470"><span class="linenos">3470</span></a><span class="k">class</span> <span class="nc">TimeAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimeAdd-3471"><a href="#TimeAdd-3471"><span class="linenos">3471</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33217,8 +33824,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimeSub"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-3357"><a href="#TimeSub-3357"><span class="linenos">3357</span></a><span class="k">class</span> <span class="nc">TimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimeSub-3358"><a href="#TimeSub-3358"><span class="linenos">3358</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeSub-3474"><a href="#TimeSub-3474"><span class="linenos">3474</span></a><span class="k">class</span> <span class="nc">TimeSub</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimeSub-3475"><a href="#TimeSub-3475"><span class="linenos">3475</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33295,8 +33902,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimeDiff"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-3361"><a href="#TimeDiff-3361"><span class="linenos">3361</span></a><span class="k">class</span> <span class="nc">TimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimeDiff-3362"><a href="#TimeDiff-3362"><span class="linenos">3362</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeDiff-3478"><a href="#TimeDiff-3478"><span class="linenos">3478</span></a><span class="k">class</span> <span class="nc">TimeDiff</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimeDiff-3479"><a href="#TimeDiff-3479"><span class="linenos">3479</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33373,8 +33980,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#TimeTrunc"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-3365"><a href="#TimeTrunc-3365"><span class="linenos">3365</span></a><span class="k">class</span> <span class="nc">TimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TimeTrunc-3366"><a href="#TimeTrunc-3366"><span class="linenos">3366</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeTrunc-3482"><a href="#TimeTrunc-3482"><span class="linenos">3482</span></a><span class="k">class</span> <span class="nc">TimeTrunc</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TimeTrunc-3483"><a href="#TimeTrunc-3483"><span class="linenos">3483</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33451,9 +34058,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateFromParts"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-3369"><a href="#DateFromParts-3369"><span class="linenos">3369</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DateFromParts-3370"><a href="#DateFromParts-3370"><span class="linenos">3370</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEFROMPARTS"</span><span class="p">]</span> -</span><span id="DateFromParts-3371"><a href="#DateFromParts-3371"><span class="linenos">3371</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"year"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"month"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"day"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateFromParts-3486"><a href="#DateFromParts-3486"><span class="linenos">3486</span></a><span class="k">class</span> <span class="nc">DateFromParts</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DateFromParts-3487"><a href="#DateFromParts-3487"><span class="linenos">3487</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"DATEFROMPARTS"</span><span class="p">]</span> +</span><span id="DateFromParts-3488"><a href="#DateFromParts-3488"><span class="linenos">3488</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"year"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"month"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"day"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -33527,8 +34134,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateStrToDate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3374"><a href="#DateStrToDate-3374"><span class="linenos">3374</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DateStrToDate-3375"><a href="#DateStrToDate-3375"><span class="linenos">3375</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateStrToDate-3491"><a href="#DateStrToDate-3491"><span class="linenos">3491</span></a><span class="k">class</span> <span class="nc">DateStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DateStrToDate-3492"><a href="#DateStrToDate-3492"><span class="linenos">3492</span></a> <span class="k">pass</span> </span></pre></div> @@ -33602,8 +34209,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateToDateStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3378"><a href="#DateToDateStr-3378"><span class="linenos">3378</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DateToDateStr-3379"><a href="#DateToDateStr-3379"><span class="linenos">3379</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDateStr-3495"><a href="#DateToDateStr-3495"><span class="linenos">3495</span></a><span class="k">class</span> <span class="nc">DateToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DateToDateStr-3496"><a href="#DateToDateStr-3496"><span class="linenos">3496</span></a> <span class="k">pass</span> </span></pre></div> @@ -33677,8 +34284,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DateToDi"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3382"><a href="#DateToDi-3382"><span class="linenos">3382</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DateToDi-3383"><a href="#DateToDi-3383"><span class="linenos">3383</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DateToDi-3499"><a href="#DateToDi-3499"><span class="linenos">3499</span></a><span class="k">class</span> <span class="nc">DateToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DateToDi-3500"><a href="#DateToDi-3500"><span class="linenos">3500</span></a> <span class="k">pass</span> </span></pre></div> @@ -33752,8 +34359,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Day"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3386"><a href="#Day-3386"><span class="linenos">3386</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Day-3387"><a href="#Day-3387"><span class="linenos">3387</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Day-3503"><a href="#Day-3503"><span class="linenos">3503</span></a><span class="k">class</span> <span class="nc">Day</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Day-3504"><a href="#Day-3504"><span class="linenos">3504</span></a> <span class="k">pass</span> </span></pre></div> @@ -33827,8 +34434,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Decode"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-3390"><a href="#Decode-3390"><span class="linenos">3390</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Decode-3391"><a href="#Decode-3391"><span class="linenos">3391</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Decode-3507"><a href="#Decode-3507"><span class="linenos">3507</span></a><span class="k">class</span> <span class="nc">Decode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Decode-3508"><a href="#Decode-3508"><span class="linenos">3508</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -33902,8 +34509,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#DiToDate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3394"><a href="#DiToDate-3394"><span class="linenos">3394</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="DiToDate-3395"><a href="#DiToDate-3395"><span class="linenos">3395</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DiToDate-3511"><a href="#DiToDate-3511"><span class="linenos">3511</span></a><span class="k">class</span> <span class="nc">DiToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="DiToDate-3512"><a href="#DiToDate-3512"><span class="linenos">3512</span></a> <span class="k">pass</span> </span></pre></div> @@ -33977,8 +34584,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Encode"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-3398"><a href="#Encode-3398"><span class="linenos">3398</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Encode-3399"><a href="#Encode-3399"><span class="linenos">3399</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Encode-3515"><a href="#Encode-3515"><span class="linenos">3515</span></a><span class="k">class</span> <span class="nc">Encode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Encode-3516"><a href="#Encode-3516"><span class="linenos">3516</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"charset"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -34052,8 +34659,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Exp"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3402"><a href="#Exp-3402"><span class="linenos">3402</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Exp-3403"><a href="#Exp-3403"><span class="linenos">3403</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Exp-3519"><a href="#Exp-3519"><span class="linenos">3519</span></a><span class="k">class</span> <span class="nc">Exp</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Exp-3520"><a href="#Exp-3520"><span class="linenos">3520</span></a> <span class="k">pass</span> </span></pre></div> @@ -34127,8 +34734,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Explode"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3406"><a href="#Explode-3406"><span class="linenos">3406</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Explode-3407"><a href="#Explode-3407"><span class="linenos">3407</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Explode-3523"><a href="#Explode-3523"><span class="linenos">3523</span></a><span class="k">class</span> <span class="nc">Explode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Explode-3524"><a href="#Explode-3524"><span class="linenos">3524</span></a> <span class="k">pass</span> </span></pre></div> @@ -34202,8 +34809,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Floor"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-3410"><a href="#Floor-3410"><span class="linenos">3410</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Floor-3411"><a href="#Floor-3411"><span class="linenos">3411</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Floor-3527"><a href="#Floor-3527"><span class="linenos">3527</span></a><span class="k">class</span> <span class="nc">Floor</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Floor-3528"><a href="#Floor-3528"><span class="linenos">3528</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -34277,9 +34884,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Greatest"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-3414"><a href="#Greatest-3414"><span class="linenos">3414</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Greatest-3415"><a href="#Greatest-3415"><span class="linenos">3415</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Greatest-3416"><a href="#Greatest-3416"><span class="linenos">3416</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Greatest-3531"><a href="#Greatest-3531"><span class="linenos">3531</span></a><span class="k">class</span> <span class="nc">Greatest</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Greatest-3532"><a href="#Greatest-3532"><span class="linenos">3532</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Greatest-3533"><a href="#Greatest-3533"><span class="linenos">3533</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -34353,8 +34960,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#GroupConcat"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-3419"><a href="#GroupConcat-3419"><span class="linenos">3419</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="GroupConcat-3420"><a href="#GroupConcat-3420"><span class="linenos">3420</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"separator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="GroupConcat-3536"><a href="#GroupConcat-3536"><span class="linenos">3536</span></a><span class="k">class</span> <span class="nc">GroupConcat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="GroupConcat-3537"><a href="#GroupConcat-3537"><span class="linenos">3537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"separator"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -34428,8 +35035,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Hex"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3423"><a href="#Hex-3423"><span class="linenos">3423</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Hex-3424"><a href="#Hex-3424"><span class="linenos">3424</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Hex-3540"><a href="#Hex-3540"><span class="linenos">3540</span></a><span class="k">class</span> <span class="nc">Hex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Hex-3541"><a href="#Hex-3541"><span class="linenos">3541</span></a> <span class="k">pass</span> </span></pre></div> @@ -34503,8 +35110,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#If"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="If-3427"><a href="#If-3427"><span class="linenos">3427</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="If-3428"><a href="#If-3428"><span class="linenos">3428</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="If-3544"><a href="#If-3544"><span class="linenos">3544</span></a><span class="k">class</span> <span class="nc">If</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="If-3545"><a href="#If-3545"><span class="linenos">3545</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -34578,9 +35185,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#IfNull"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3431"><a href="#IfNull-3431"><span class="linenos">3431</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="IfNull-3432"><a href="#IfNull-3432"><span class="linenos">3432</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="IfNull-3433"><a href="#IfNull-3433"><span class="linenos">3433</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"IFNULL"</span><span class="p">,</span> <span class="s2">"NVL"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="IfNull-3548"><a href="#IfNull-3548"><span class="linenos">3548</span></a><span class="k">class</span> <span class="nc">IfNull</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="IfNull-3549"><a href="#IfNull-3549"><span class="linenos">3549</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="IfNull-3550"><a href="#IfNull-3550"><span class="linenos">3550</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"IFNULL"</span><span class="p">,</span> <span class="s2">"NVL"</span><span class="p">]</span> </span></pre></div> @@ -34654,8 +35261,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Initcap"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3436"><a href="#Initcap-3436"><span class="linenos">3436</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Initcap-3437"><a href="#Initcap-3437"><span class="linenos">3437</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Initcap-3553"><a href="#Initcap-3553"><span class="linenos">3553</span></a><span class="k">class</span> <span class="nc">Initcap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Initcap-3554"><a href="#Initcap-3554"><span class="linenos">3554</span></a> <span class="k">pass</span> </span></pre></div> @@ -34729,8 +35336,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#JSONBContains"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-3440"><a href="#JSONBContains-3440"><span class="linenos">3440</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="JSONBContains-3441"><a href="#JSONBContains-3441"><span class="linenos">3441</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_CONTAINS"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBContains-3557"><a href="#JSONBContains-3557"><span class="linenos">3557</span></a><span class="k">class</span> <span class="nc">JSONBContains</span><span class="p">(</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="JSONBContains-3558"><a href="#JSONBContains-3558"><span class="linenos">3558</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_CONTAINS"</span><span class="p">]</span> </span></pre></div> @@ -34791,8 +35398,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#JSONExtract"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-3444"><a href="#JSONExtract-3444"><span class="linenos">3444</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> -</span><span id="JSONExtract-3445"><a href="#JSONExtract-3445"><span class="linenos">3445</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtract-3561"><a href="#JSONExtract-3561"><span class="linenos">3561</span></a><span class="k">class</span> <span class="nc">JSONExtract</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> +</span><span id="JSONExtract-3562"><a href="#JSONExtract-3562"><span class="linenos">3562</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT"</span><span class="p">]</span> </span></pre></div> @@ -34866,8 +35473,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#JSONExtractScalar"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-3448"><a href="#JSONExtractScalar-3448"><span class="linenos">3448</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> -</span><span id="JSONExtractScalar-3449"><a href="#JSONExtractScalar-3449"><span class="linenos">3449</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JSONExtractScalar-3565"><a href="#JSONExtractScalar-3565"><span class="linenos">3565</span></a><span class="k">class</span> <span class="nc">JSONExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> +</span><span id="JSONExtractScalar-3566"><a href="#JSONExtractScalar-3566"><span class="linenos">3566</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSON_EXTRACT_SCALAR"</span><span class="p">]</span> </span></pre></div> @@ -34941,8 +35548,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#JSONBExtract"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-3452"><a href="#JSONBExtract-3452"><span class="linenos">3452</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> -</span><span id="JSONBExtract-3453"><a href="#JSONBExtract-3453"><span class="linenos">3453</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtract-3569"><a href="#JSONBExtract-3569"><span class="linenos">3569</span></a><span class="k">class</span> <span class="nc">JSONBExtract</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> +</span><span id="JSONBExtract-3570"><a href="#JSONBExtract-3570"><span class="linenos">3570</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT"</span><span class="p">]</span> </span></pre></div> @@ -35016,8 +35623,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#JSONBExtractScalar"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-3456"><a href="#JSONBExtractScalar-3456"><span class="linenos">3456</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> -</span><span id="JSONBExtractScalar-3457"><a href="#JSONBExtractScalar-3457"><span class="linenos">3457</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT_SCALAR"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="JSONBExtractScalar-3573"><a href="#JSONBExtractScalar-3573"><span class="linenos">3573</span></a><span class="k">class</span> <span class="nc">JSONBExtractScalar</span><span class="p">(</span><span class="n">JSONExtract</span><span class="p">):</span> +</span><span id="JSONBExtractScalar-3574"><a href="#JSONBExtractScalar-3574"><span class="linenos">3574</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"JSONB_EXTRACT_SCALAR"</span><span class="p">]</span> </span></pre></div> @@ -35091,9 +35698,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Least"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Least-3460"><a href="#Least-3460"><span class="linenos">3460</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Least-3461"><a href="#Least-3461"><span class="linenos">3461</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Least-3462"><a href="#Least-3462"><span class="linenos">3462</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Least-3577"><a href="#Least-3577"><span class="linenos">3577</span></a><span class="k">class</span> <span class="nc">Least</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Least-3578"><a href="#Least-3578"><span class="linenos">3578</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Least-3579"><a href="#Least-3579"><span class="linenos">3579</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -35167,8 +35774,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Length"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3465"><a href="#Length-3465"><span class="linenos">3465</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Length-3466"><a href="#Length-3466"><span class="linenos">3466</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Length-3582"><a href="#Length-3582"><span class="linenos">3582</span></a><span class="k">class</span> <span class="nc">Length</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Length-3583"><a href="#Length-3583"><span class="linenos">3583</span></a> <span class="k">pass</span> </span></pre></div> @@ -35242,14 +35849,14 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Levenshtein"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3469"><a href="#Levenshtein-3469"><span class="linenos">3469</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Levenshtein-3470"><a href="#Levenshtein-3470"><span class="linenos">3470</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Levenshtein-3471"><a href="#Levenshtein-3471"><span class="linenos">3471</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Levenshtein-3472"><a href="#Levenshtein-3472"><span class="linenos">3472</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Levenshtein-3473"><a href="#Levenshtein-3473"><span class="linenos">3473</span></a> <span class="s2">"ins_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Levenshtein-3474"><a href="#Levenshtein-3474"><span class="linenos">3474</span></a> <span class="s2">"del_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Levenshtein-3475"><a href="#Levenshtein-3475"><span class="linenos">3475</span></a> <span class="s2">"sub_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Levenshtein-3476"><a href="#Levenshtein-3476"><span class="linenos">3476</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Levenshtein-3586"><a href="#Levenshtein-3586"><span class="linenos">3586</span></a><span class="k">class</span> <span class="nc">Levenshtein</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Levenshtein-3587"><a href="#Levenshtein-3587"><span class="linenos">3587</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Levenshtein-3588"><a href="#Levenshtein-3588"><span class="linenos">3588</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Levenshtein-3589"><a href="#Levenshtein-3589"><span class="linenos">3589</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Levenshtein-3590"><a href="#Levenshtein-3590"><span class="linenos">3590</span></a> <span class="s2">"ins_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Levenshtein-3591"><a href="#Levenshtein-3591"><span class="linenos">3591</span></a> <span class="s2">"del_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Levenshtein-3592"><a href="#Levenshtein-3592"><span class="linenos">3592</span></a> <span class="s2">"sub_cost"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Levenshtein-3593"><a href="#Levenshtein-3593"><span class="linenos">3593</span></a> <span class="p">}</span> </span></pre></div> @@ -35323,8 +35930,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Ln"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3479"><a href="#Ln-3479"><span class="linenos">3479</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Ln-3480"><a href="#Ln-3480"><span class="linenos">3480</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Ln-3596"><a href="#Ln-3596"><span class="linenos">3596</span></a><span class="k">class</span> <span class="nc">Ln</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Ln-3597"><a href="#Ln-3597"><span class="linenos">3597</span></a> <span class="k">pass</span> </span></pre></div> @@ -35398,8 +36005,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Log"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Log-3483"><a href="#Log-3483"><span class="linenos">3483</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Log-3484"><a href="#Log-3484"><span class="linenos">3484</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Log-3600"><a href="#Log-3600"><span class="linenos">3600</span></a><span class="k">class</span> <span class="nc">Log</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Log-3601"><a href="#Log-3601"><span class="linenos">3601</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -35473,8 +36080,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Log2"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3487"><a href="#Log2-3487"><span class="linenos">3487</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Log2-3488"><a href="#Log2-3488"><span class="linenos">3488</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Log2-3604"><a href="#Log2-3604"><span class="linenos">3604</span></a><span class="k">class</span> <span class="nc">Log2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Log2-3605"><a href="#Log2-3605"><span class="linenos">3605</span></a> <span class="k">pass</span> </span></pre></div> @@ -35548,8 +36155,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Log10"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3491"><a href="#Log10-3491"><span class="linenos">3491</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Log10-3492"><a href="#Log10-3492"><span class="linenos">3492</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Log10-3608"><a href="#Log10-3608"><span class="linenos">3608</span></a><span class="k">class</span> <span class="nc">Log10</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Log10-3609"><a href="#Log10-3609"><span class="linenos">3609</span></a> <span class="k">pass</span> </span></pre></div> @@ -35623,8 +36230,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#LogicalOr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-3495"><a href="#LogicalOr-3495"><span class="linenos">3495</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="LogicalOr-3496"><a href="#LogicalOr-3496"><span class="linenos">3496</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOGICAL_OR"</span><span class="p">,</span> <span class="s2">"BOOL_OR"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalOr-3612"><a href="#LogicalOr-3612"><span class="linenos">3612</span></a><span class="k">class</span> <span class="nc">LogicalOr</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="LogicalOr-3613"><a href="#LogicalOr-3613"><span class="linenos">3613</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOGICAL_OR"</span><span class="p">,</span> <span class="s2">"BOOL_OR"</span><span class="p">,</span> <span class="s2">"BOOLOR_AGG"</span><span class="p">]</span> </span></pre></div> @@ -35687,6 +36294,81 @@ name is set to the expression's class name transformed to snake case.</li> </dl> </div> </section> + <section id="LogicalAnd"> + <input id="LogicalAnd-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr class"> + + <span class="def">class</span> + <span class="name">LogicalAnd</span><wbr>(<span class="base"><a href="#AggFunc">AggFunc</a></span>): + + <label class="view-source-button" for="LogicalAnd-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#LogicalAnd"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="LogicalAnd-3616"><a href="#LogicalAnd-3616"><span class="linenos">3616</span></a><span class="k">class</span> <span class="nc">LogicalAnd</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="LogicalAnd-3617"><a href="#LogicalAnd-3617"><span class="linenos">3617</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOGICAL_AND"</span><span class="p">,</span> <span class="s2">"BOOL_AND"</span><span class="p">,</span> <span class="s2">"BOOLAND_AGG"</span><span class="p">]</span> +</span></pre></div> + + + + + <div class="inherited"> + <h5>Inherited Members</h5> + <dl> + <div><dt><a href="#Expression">Expression</a></dt> + <dd id="LogicalAnd.__init__" class="function"><a href="#Expression.__init__">Expression</a></dd> + <dd id="LogicalAnd.this" class="variable"><a href="#Expression.this">this</a></dd> + <dd id="LogicalAnd.expression" class="variable"><a href="#Expression.expression">expression</a></dd> + <dd id="LogicalAnd.expressions" class="variable"><a href="#Expression.expressions">expressions</a></dd> + <dd id="LogicalAnd.text" class="function"><a href="#Expression.text">text</a></dd> + <dd id="LogicalAnd.is_string" class="variable"><a href="#Expression.is_string">is_string</a></dd> + <dd id="LogicalAnd.is_number" class="variable"><a href="#Expression.is_number">is_number</a></dd> + <dd id="LogicalAnd.is_int" class="variable"><a href="#Expression.is_int">is_int</a></dd> + <dd id="LogicalAnd.is_star" class="variable"><a href="#Expression.is_star">is_star</a></dd> + <dd id="LogicalAnd.alias" class="variable"><a href="#Expression.alias">alias</a></dd> + <dd id="LogicalAnd.output_name" class="variable"><a href="#Expression.output_name">output_name</a></dd> + <dd id="LogicalAnd.copy" class="function"><a href="#Expression.copy">copy</a></dd> + <dd id="LogicalAnd.append" class="function"><a href="#Expression.append">append</a></dd> + <dd id="LogicalAnd.set" class="function"><a href="#Expression.set">set</a></dd> + <dd id="LogicalAnd.depth" class="variable"><a href="#Expression.depth">depth</a></dd> + <dd id="LogicalAnd.find" class="function"><a href="#Expression.find">find</a></dd> + <dd id="LogicalAnd.find_all" class="function"><a href="#Expression.find_all">find_all</a></dd> + <dd id="LogicalAnd.find_ancestor" class="function"><a href="#Expression.find_ancestor">find_ancestor</a></dd> + <dd id="LogicalAnd.parent_select" class="variable"><a href="#Expression.parent_select">parent_select</a></dd> + <dd id="LogicalAnd.root" class="function"><a href="#Expression.root">root</a></dd> + <dd id="LogicalAnd.walk" class="function"><a href="#Expression.walk">walk</a></dd> + <dd id="LogicalAnd.dfs" class="function"><a href="#Expression.dfs">dfs</a></dd> + <dd id="LogicalAnd.bfs" class="function"><a href="#Expression.bfs">bfs</a></dd> + <dd id="LogicalAnd.unnest" class="function"><a href="#Expression.unnest">unnest</a></dd> + <dd id="LogicalAnd.unalias" class="function"><a href="#Expression.unalias">unalias</a></dd> + <dd id="LogicalAnd.unnest_operands" class="function"><a href="#Expression.unnest_operands">unnest_operands</a></dd> + <dd id="LogicalAnd.flatten" class="function"><a href="#Expression.flatten">flatten</a></dd> + <dd id="LogicalAnd.sql" class="function"><a href="#Expression.sql">sql</a></dd> + <dd id="LogicalAnd.transform" class="function"><a href="#Expression.transform">transform</a></dd> + <dd id="LogicalAnd.replace" class="function"><a href="#Expression.replace">replace</a></dd> + <dd id="LogicalAnd.pop" class="function"><a href="#Expression.pop">pop</a></dd> + <dd id="LogicalAnd.assert_is" class="function"><a href="#Expression.assert_is">assert_is</a></dd> + <dd id="LogicalAnd.error_messages" class="function"><a href="#Expression.error_messages">error_messages</a></dd> + <dd id="LogicalAnd.dump" class="function"><a href="#Expression.dump">dump</a></dd> + <dd id="LogicalAnd.load" class="function"><a href="#Expression.load">load</a></dd> + + </div> + <div><dt><a href="#Func">Func</a></dt> + <dd id="LogicalAnd.from_arg_list" class="function"><a href="#Func.from_arg_list">from_arg_list</a></dd> + <dd id="LogicalAnd.sql_names" class="function"><a href="#Func.sql_names">sql_names</a></dd> + <dd id="LogicalAnd.sql_name" class="function"><a href="#Func.sql_name">sql_name</a></dd> + <dd id="LogicalAnd.default_parser_mappings" class="function"><a href="#Func.default_parser_mappings">default_parser_mappings</a></dd> + + </div> + <div><dt><a href="#Condition">Condition</a></dt> + <dd id="LogicalAnd.and_" class="function"><a href="#Condition.and_">and_</a></dd> + <dd id="LogicalAnd.or_" class="function"><a href="#Condition.or_">or_</a></dd> + <dd id="LogicalAnd.not_" class="function"><a href="#Condition.not_">not_</a></dd> + + </div> + </dl> + </div> + </section> <section id="Lower"> <input id="Lower-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr class"> @@ -35698,8 +36380,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Lower"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-3499"><a href="#Lower-3499"><span class="linenos">3499</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Lower-3500"><a href="#Lower-3500"><span class="linenos">3500</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOWER"</span><span class="p">,</span> <span class="s2">"LCASE"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Lower-3620"><a href="#Lower-3620"><span class="linenos">3620</span></a><span class="k">class</span> <span class="nc">Lower</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Lower-3621"><a href="#Lower-3621"><span class="linenos">3621</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"LOWER"</span><span class="p">,</span> <span class="s2">"LCASE"</span><span class="p">]</span> </span></pre></div> @@ -35773,8 +36455,8 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Map"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Map-3503"><a href="#Map-3503"><span class="linenos">3503</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Map-3504"><a href="#Map-3504"><span class="linenos">3504</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Map-3624"><a href="#Map-3624"><span class="linenos">3624</span></a><span class="k">class</span> <span class="nc">Map</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Map-3625"><a href="#Map-3625"><span class="linenos">3625</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -35848,9 +36530,9 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#VarMap"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-3507"><a href="#VarMap-3507"><span class="linenos">3507</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="VarMap-3508"><a href="#VarMap-3508"><span class="linenos">3508</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="VarMap-3509"><a href="#VarMap-3509"><span class="linenos">3509</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="VarMap-3628"><a href="#VarMap-3628"><span class="linenos">3628</span></a><span class="k">class</span> <span class="nc">VarMap</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="VarMap-3629"><a href="#VarMap-3629"><span class="linenos">3629</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"keys"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"values"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="VarMap-3630"><a href="#VarMap-3630"><span class="linenos">3630</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -35924,14 +36606,14 @@ name is set to the expression's class name transformed to snake case.</li> </div> <a class="headerlink" href="#Matches"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Matches-3512"><a href="#Matches-3512"><span class="linenos">3512</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Matches-3513"><a href="#Matches-3513"><span class="linenos">3513</span></a><span class="w"> </span><span class="sd">"""Oracle/Snowflake decode.</span> -</span><span id="Matches-3514"><a href="#Matches-3514"><span class="linenos">3514</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span> -</span><span id="Matches-3515"><a href="#Matches-3515"><span class="linenos">3515</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span> -</span><span id="Matches-3516"><a href="#Matches-3516"><span class="linenos">3516</span></a><span class="sd"> """</span> -</span><span id="Matches-3517"><a href="#Matches-3517"><span class="linenos">3517</span></a> -</span><span id="Matches-3518"><a href="#Matches-3518"><span class="linenos">3518</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Matches-3519"><a href="#Matches-3519"><span class="linenos">3519</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Matches-3633"><a href="#Matches-3633"><span class="linenos">3633</span></a><span class="k">class</span> <span class="nc">Matches</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Matches-3634"><a href="#Matches-3634"><span class="linenos">3634</span></a><span class="w"> </span><span class="sd">"""Oracle/Snowflake decode.</span> +</span><span id="Matches-3635"><a href="#Matches-3635"><span class="linenos">3635</span></a><span class="sd"> https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm</span> +</span><span id="Matches-3636"><a href="#Matches-3636"><span class="linenos">3636</span></a><span class="sd"> Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</span> +</span><span id="Matches-3637"><a href="#Matches-3637"><span class="linenos">3637</span></a><span class="sd"> """</span> +</span><span id="Matches-3638"><a href="#Matches-3638"><span class="linenos">3638</span></a> +</span><span id="Matches-3639"><a href="#Matches-3639"><span class="linenos">3639</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Matches-3640"><a href="#Matches-3640"><span class="linenos">3640</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -36009,9 +36691,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Max"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Max-3522"><a href="#Max-3522"><span class="linenos">3522</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Max-3523"><a href="#Max-3523"><span class="linenos">3523</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Max-3524"><a href="#Max-3524"><span class="linenos">3524</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Max-3643"><a href="#Max-3643"><span class="linenos">3643</span></a><span class="k">class</span> <span class="nc">Max</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Max-3644"><a href="#Max-3644"><span class="linenos">3644</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Max-3645"><a href="#Max-3645"><span class="linenos">3645</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -36085,9 +36767,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Min"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Min-3527"><a href="#Min-3527"><span class="linenos">3527</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Min-3528"><a href="#Min-3528"><span class="linenos">3528</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="Min-3529"><a href="#Min-3529"><span class="linenos">3529</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Min-3648"><a href="#Min-3648"><span class="linenos">3648</span></a><span class="k">class</span> <span class="nc">Min</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Min-3649"><a href="#Min-3649"><span class="linenos">3649</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="Min-3650"><a href="#Min-3650"><span class="linenos">3650</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -36161,8 +36843,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Month"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3532"><a href="#Month-3532"><span class="linenos">3532</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Month-3533"><a href="#Month-3533"><span class="linenos">3533</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Month-3653"><a href="#Month-3653"><span class="linenos">3653</span></a><span class="k">class</span> <span class="nc">Month</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Month-3654"><a href="#Month-3654"><span class="linenos">3654</span></a> <span class="k">pass</span> </span></pre></div> @@ -36236,8 +36918,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Nvl2"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-3536"><a href="#Nvl2-3536"><span class="linenos">3536</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Nvl2-3537"><a href="#Nvl2-3537"><span class="linenos">3537</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Nvl2-3657"><a href="#Nvl2-3657"><span class="linenos">3657</span></a><span class="k">class</span> <span class="nc">Nvl2</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Nvl2-3658"><a href="#Nvl2-3658"><span class="linenos">3658</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"true"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"false"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -36311,8 +36993,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Posexplode"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3540"><a href="#Posexplode-3540"><span class="linenos">3540</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Posexplode-3541"><a href="#Posexplode-3541"><span class="linenos">3541</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Posexplode-3661"><a href="#Posexplode-3661"><span class="linenos">3661</span></a><span class="k">class</span> <span class="nc">Posexplode</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Posexplode-3662"><a href="#Posexplode-3662"><span class="linenos">3662</span></a> <span class="k">pass</span> </span></pre></div> @@ -36386,8 +37068,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Pow"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-3544"><a href="#Pow-3544"><span class="linenos">3544</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> -</span><span id="Pow-3545"><a href="#Pow-3545"><span class="linenos">3545</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"POWER"</span><span class="p">,</span> <span class="s2">"POW"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Pow-3665"><a href="#Pow-3665"><span class="linenos">3665</span></a><span class="k">class</span> <span class="nc">Pow</span><span class="p">(</span><span class="n">Binary</span><span class="p">,</span> <span class="n">Func</span><span class="p">):</span> +</span><span id="Pow-3666"><a href="#Pow-3666"><span class="linenos">3666</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"POWER"</span><span class="p">,</span> <span class="s2">"POW"</span><span class="p">]</span> </span></pre></div> @@ -36461,8 +37143,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#PercentileCont"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3548"><a href="#PercentileCont-3548"><span class="linenos">3548</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="PercentileCont-3549"><a href="#PercentileCont-3549"><span class="linenos">3549</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileCont-3669"><a href="#PercentileCont-3669"><span class="linenos">3669</span></a><span class="k">class</span> <span class="nc">PercentileCont</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="PercentileCont-3670"><a href="#PercentileCont-3670"><span class="linenos">3670</span></a> <span class="k">pass</span> </span></pre></div> @@ -36536,8 +37218,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#PercentileDisc"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3552"><a href="#PercentileDisc-3552"><span class="linenos">3552</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="PercentileDisc-3553"><a href="#PercentileDisc-3553"><span class="linenos">3553</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="PercentileDisc-3673"><a href="#PercentileDisc-3673"><span class="linenos">3673</span></a><span class="k">class</span> <span class="nc">PercentileDisc</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="PercentileDisc-3674"><a href="#PercentileDisc-3674"><span class="linenos">3674</span></a> <span class="k">pass</span> </span></pre></div> @@ -36611,8 +37293,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Quantile"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-3556"><a href="#Quantile-3556"><span class="linenos">3556</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Quantile-3557"><a href="#Quantile-3557"><span class="linenos">3557</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Quantile-3677"><a href="#Quantile-3677"><span class="linenos">3677</span></a><span class="k">class</span> <span class="nc">Quantile</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Quantile-3678"><a href="#Quantile-3678"><span class="linenos">3678</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -36686,8 +37368,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Quantiles"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Quantiles-3562"><a href="#Quantiles-3562"><span class="linenos">3562</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Quantiles-3563"><a href="#Quantiles-3563"><span class="linenos">3563</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Quantiles-3683"><a href="#Quantiles-3683"><span class="linenos">3683</span></a><span class="k">class</span> <span class="nc">Quantiles</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Quantiles-3684"><a href="#Quantiles-3684"><span class="linenos">3684</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Quantiles-3685"><a href="#Quantiles-3685"><span class="linenos">3685</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -36761,8 +37444,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#QuantileIf"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="QuantileIf-3566"><a href="#QuantileIf-3566"><span class="linenos">3566</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="QuantileIf-3567"><a href="#QuantileIf-3567"><span class="linenos">3567</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="QuantileIf-3688"><a href="#QuantileIf-3688"><span class="linenos">3688</span></a><span class="k">class</span> <span class="nc">QuantileIf</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="QuantileIf-3689"><a href="#QuantileIf-3689"><span class="linenos">3689</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"parameters"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -36836,8 +37519,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#ApproxQuantile"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-3570"><a href="#ApproxQuantile-3570"><span class="linenos">3570</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span> -</span><span id="ApproxQuantile-3571"><a href="#ApproxQuantile-3571"><span class="linenos">3571</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"weight"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ApproxQuantile-3692"><a href="#ApproxQuantile-3692"><span class="linenos">3692</span></a><span class="k">class</span> <span class="nc">ApproxQuantile</span><span class="p">(</span><span class="n">Quantile</span><span class="p">):</span> +</span><span id="ApproxQuantile-3693"><a href="#ApproxQuantile-3693"><span class="linenos">3693</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"quantile"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"accuracy"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"weight"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -36911,8 +37594,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#RangeN"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-3574"><a href="#RangeN-3574"><span class="linenos">3574</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="RangeN-3575"><a href="#RangeN-3575"><span class="linenos">3575</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"each"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RangeN-3696"><a href="#RangeN-3696"><span class="linenos">3696</span></a><span class="k">class</span> <span class="nc">RangeN</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="RangeN-3697"><a href="#RangeN-3697"><span class="linenos">3697</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"each"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -36986,10 +37669,10 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#ReadCSV"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-3578"><a href="#ReadCSV-3578"><span class="linenos">3578</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="ReadCSV-3579"><a href="#ReadCSV-3579"><span class="linenos">3579</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"READ_CSV"</span><span class="p">]</span> -</span><span id="ReadCSV-3580"><a href="#ReadCSV-3580"><span class="linenos">3580</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="ReadCSV-3581"><a href="#ReadCSV-3581"><span class="linenos">3581</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ReadCSV-3700"><a href="#ReadCSV-3700"><span class="linenos">3700</span></a><span class="k">class</span> <span class="nc">ReadCSV</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="ReadCSV-3701"><a href="#ReadCSV-3701"><span class="linenos">3701</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"READ_CSV"</span><span class="p">]</span> +</span><span id="ReadCSV-3702"><a href="#ReadCSV-3702"><span class="linenos">3702</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="ReadCSV-3703"><a href="#ReadCSV-3703"><span class="linenos">3703</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37063,8 +37746,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Reduce"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-3584"><a href="#Reduce-3584"><span class="linenos">3584</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Reduce-3585"><a href="#Reduce-3585"><span class="linenos">3585</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"initial"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"merge"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"finish"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Reduce-3706"><a href="#Reduce-3706"><span class="linenos">3706</span></a><span class="k">class</span> <span class="nc">Reduce</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Reduce-3707"><a href="#Reduce-3707"><span class="linenos">3707</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"initial"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"merge"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"finish"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37138,14 +37821,14 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#RegexpExtract"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3588"><a href="#RegexpExtract-3588"><span class="linenos">3588</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="RegexpExtract-3589"><a href="#RegexpExtract-3589"><span class="linenos">3589</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="RegexpExtract-3590"><a href="#RegexpExtract-3590"><span class="linenos">3590</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="RegexpExtract-3591"><a href="#RegexpExtract-3591"><span class="linenos">3591</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="RegexpExtract-3592"><a href="#RegexpExtract-3592"><span class="linenos">3592</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RegexpExtract-3593"><a href="#RegexpExtract-3593"><span class="linenos">3593</span></a> <span class="s2">"occurrence"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RegexpExtract-3594"><a href="#RegexpExtract-3594"><span class="linenos">3594</span></a> <span class="s2">"group"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="RegexpExtract-3595"><a href="#RegexpExtract-3595"><span class="linenos">3595</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpExtract-3710"><a href="#RegexpExtract-3710"><span class="linenos">3710</span></a><span class="k">class</span> <span class="nc">RegexpExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="RegexpExtract-3711"><a href="#RegexpExtract-3711"><span class="linenos">3711</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="RegexpExtract-3712"><a href="#RegexpExtract-3712"><span class="linenos">3712</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="RegexpExtract-3713"><a href="#RegexpExtract-3713"><span class="linenos">3713</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="RegexpExtract-3714"><a href="#RegexpExtract-3714"><span class="linenos">3714</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RegexpExtract-3715"><a href="#RegexpExtract-3715"><span class="linenos">3715</span></a> <span class="s2">"occurrence"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RegexpExtract-3716"><a href="#RegexpExtract-3716"><span class="linenos">3716</span></a> <span class="s2">"group"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="RegexpExtract-3717"><a href="#RegexpExtract-3717"><span class="linenos">3717</span></a> <span class="p">}</span> </span></pre></div> @@ -37219,8 +37902,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#RegexpLike"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-3598"><a href="#RegexpLike-3598"><span class="linenos">3598</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="RegexpLike-3599"><a href="#RegexpLike-3599"><span class="linenos">3599</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpLike-3720"><a href="#RegexpLike-3720"><span class="linenos">3720</span></a><span class="k">class</span> <span class="nc">RegexpLike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="RegexpLike-3721"><a href="#RegexpLike-3721"><span class="linenos">3721</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37294,8 +37977,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#RegexpILike"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-3602"><a href="#RegexpILike-3602"><span class="linenos">3602</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="RegexpILike-3603"><a href="#RegexpILike-3603"><span class="linenos">3603</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpILike-3724"><a href="#RegexpILike-3724"><span class="linenos">3724</span></a><span class="k">class</span> <span class="nc">RegexpILike</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="RegexpILike-3725"><a href="#RegexpILike-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"flag"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37369,8 +38052,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#RegexpSplit"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-3606"><a href="#RegexpSplit-3606"><span class="linenos">3606</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="RegexpSplit-3607"><a href="#RegexpSplit-3607"><span class="linenos">3607</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RegexpSplit-3728"><a href="#RegexpSplit-3728"><span class="linenos">3728</span></a><span class="k">class</span> <span class="nc">RegexpSplit</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="RegexpSplit-3729"><a href="#RegexpSplit-3729"><span class="linenos">3729</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -37444,8 +38127,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Repeat"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-3610"><a href="#Repeat-3610"><span class="linenos">3610</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Repeat-3611"><a href="#Repeat-3611"><span class="linenos">3611</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"times"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Repeat-3732"><a href="#Repeat-3732"><span class="linenos">3732</span></a><span class="k">class</span> <span class="nc">Repeat</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Repeat-3733"><a href="#Repeat-3733"><span class="linenos">3733</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"times"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -37519,8 +38202,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Round"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Round-3614"><a href="#Round-3614"><span class="linenos">3614</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Round-3615"><a href="#Round-3615"><span class="linenos">3615</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Round-3736"><a href="#Round-3736"><span class="linenos">3736</span></a><span class="k">class</span> <span class="nc">Round</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Round-3737"><a href="#Round-3737"><span class="linenos">3737</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"decimals"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37594,8 +38277,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#RowNumber"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-3618"><a href="#RowNumber-3618"><span class="linenos">3618</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="RowNumber-3619"><a href="#RowNumber-3619"><span class="linenos">3619</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="RowNumber-3740"><a href="#RowNumber-3740"><span class="linenos">3740</span></a><span class="k">class</span> <span class="nc">RowNumber</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="RowNumber-3741"><a href="#RowNumber-3741"><span class="linenos">3741</span></a> <span class="n">arg_types</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> </span></pre></div> @@ -37669,8 +38352,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#SafeDivide"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-3622"><a href="#SafeDivide-3622"><span class="linenos">3622</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="SafeDivide-3623"><a href="#SafeDivide-3623"><span class="linenos">3623</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SafeDivide-3744"><a href="#SafeDivide-3744"><span class="linenos">3744</span></a><span class="k">class</span> <span class="nc">SafeDivide</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="SafeDivide-3745"><a href="#SafeDivide-3745"><span class="linenos">3745</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -37744,8 +38427,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#SetAgg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-3626"><a href="#SetAgg-3626"><span class="linenos">3626</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="SetAgg-3627"><a href="#SetAgg-3627"><span class="linenos">3627</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SetAgg-3748"><a href="#SetAgg-3748"><span class="linenos">3748</span></a><span class="k">class</span> <span class="nc">SetAgg</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="SetAgg-3749"><a href="#SetAgg-3749"><span class="linenos">3749</span></a> <span class="k">pass</span> </span></pre></div> @@ -37819,8 +38502,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#SortArray"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-3630"><a href="#SortArray-3630"><span class="linenos">3630</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="SortArray-3631"><a href="#SortArray-3631"><span class="linenos">3631</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"asc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="SortArray-3752"><a href="#SortArray-3752"><span class="linenos">3752</span></a><span class="k">class</span> <span class="nc">SortArray</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="SortArray-3753"><a href="#SortArray-3753"><span class="linenos">3753</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"asc"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37894,8 +38577,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Split"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Split-3634"><a href="#Split-3634"><span class="linenos">3634</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Split-3635"><a href="#Split-3635"><span class="linenos">3635</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Split-3756"><a href="#Split-3756"><span class="linenos">3756</span></a><span class="k">class</span> <span class="nc">Split</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Split-3757"><a href="#Split-3757"><span class="linenos">3757</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"limit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -37969,8 +38652,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Substring"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-3640"><a href="#Substring-3640"><span class="linenos">3640</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Substring-3641"><a href="#Substring-3641"><span class="linenos">3641</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"length"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Substring-3762"><a href="#Substring-3762"><span class="linenos">3762</span></a><span class="k">class</span> <span class="nc">Substring</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Substring-3763"><a href="#Substring-3763"><span class="linenos">3763</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"start"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"length"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -38044,13 +38727,13 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StrPosition"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-3644"><a href="#StrPosition-3644"><span class="linenos">3644</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="StrPosition-3645"><a href="#StrPosition-3645"><span class="linenos">3645</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="StrPosition-3646"><a href="#StrPosition-3646"><span class="linenos">3646</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="StrPosition-3647"><a href="#StrPosition-3647"><span class="linenos">3647</span></a> <span class="s2">"substr"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="StrPosition-3648"><a href="#StrPosition-3648"><span class="linenos">3648</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="StrPosition-3649"><a href="#StrPosition-3649"><span class="linenos">3649</span></a> <span class="s2">"instance"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="StrPosition-3650"><a href="#StrPosition-3650"><span class="linenos">3650</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StrPosition-3766"><a href="#StrPosition-3766"><span class="linenos">3766</span></a><span class="k">class</span> <span class="nc">StrPosition</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="StrPosition-3767"><a href="#StrPosition-3767"><span class="linenos">3767</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="StrPosition-3768"><a href="#StrPosition-3768"><span class="linenos">3768</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="StrPosition-3769"><a href="#StrPosition-3769"><span class="linenos">3769</span></a> <span class="s2">"substr"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="StrPosition-3770"><a href="#StrPosition-3770"><span class="linenos">3770</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="StrPosition-3771"><a href="#StrPosition-3771"><span class="linenos">3771</span></a> <span class="s2">"instance"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="StrPosition-3772"><a href="#StrPosition-3772"><span class="linenos">3772</span></a> <span class="p">}</span> </span></pre></div> @@ -38124,8 +38807,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StrToDate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-3653"><a href="#StrToDate-3653"><span class="linenos">3653</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="StrToDate-3654"><a href="#StrToDate-3654"><span class="linenos">3654</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StrToDate-3775"><a href="#StrToDate-3775"><span class="linenos">3775</span></a><span class="k">class</span> <span class="nc">StrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="StrToDate-3776"><a href="#StrToDate-3776"><span class="linenos">3776</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -38199,8 +38882,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StrToTime"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-3657"><a href="#StrToTime-3657"><span class="linenos">3657</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="StrToTime-3658"><a href="#StrToTime-3658"><span class="linenos">3658</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StrToTime-3779"><a href="#StrToTime-3779"><span class="linenos">3779</span></a><span class="k">class</span> <span class="nc">StrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="StrToTime-3780"><a href="#StrToTime-3780"><span class="linenos">3780</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -38274,8 +38957,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StrToUnix"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-3663"><a href="#StrToUnix-3663"><span class="linenos">3663</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="StrToUnix-3664"><a href="#StrToUnix-3664"><span class="linenos">3664</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StrToUnix-3785"><a href="#StrToUnix-3785"><span class="linenos">3785</span></a><span class="k">class</span> <span class="nc">StrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="StrToUnix-3786"><a href="#StrToUnix-3786"><span class="linenos">3786</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -38349,8 +39032,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#NumberToStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-3667"><a href="#NumberToStr-3667"><span class="linenos">3667</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="NumberToStr-3668"><a href="#NumberToStr-3668"><span class="linenos">3668</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="NumberToStr-3789"><a href="#NumberToStr-3789"><span class="linenos">3789</span></a><span class="k">class</span> <span class="nc">NumberToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="NumberToStr-3790"><a href="#NumberToStr-3790"><span class="linenos">3790</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -38424,9 +39107,9 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Struct"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-3671"><a href="#Struct-3671"><span class="linenos">3671</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Struct-3672"><a href="#Struct-3672"><span class="linenos">3672</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> -</span><span id="Struct-3673"><a href="#Struct-3673"><span class="linenos">3673</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Struct-3793"><a href="#Struct-3793"><span class="linenos">3793</span></a><span class="k">class</span> <span class="nc">Struct</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Struct-3794"><a href="#Struct-3794"><span class="linenos">3794</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> +</span><span id="Struct-3795"><a href="#Struct-3795"><span class="linenos">3795</span></a> <span class="n">is_var_len_args</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -38500,8 +39183,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StructExtract"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-3676"><a href="#StructExtract-3676"><span class="linenos">3676</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="StructExtract-3677"><a href="#StructExtract-3677"><span class="linenos">3677</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StructExtract-3798"><a href="#StructExtract-3798"><span class="linenos">3798</span></a><span class="k">class</span> <span class="nc">StructExtract</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="StructExtract-3799"><a href="#StructExtract-3799"><span class="linenos">3799</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -38575,8 +39258,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Sum"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-3680"><a href="#Sum-3680"><span class="linenos">3680</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Sum-3681"><a href="#Sum-3681"><span class="linenos">3681</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Sum-3802"><a href="#Sum-3802"><span class="linenos">3802</span></a><span class="k">class</span> <span class="nc">Sum</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Sum-3803"><a href="#Sum-3803"><span class="linenos">3803</span></a> <span class="k">pass</span> </span></pre></div> @@ -38650,8 +39333,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Sqrt"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-3684"><a href="#Sqrt-3684"><span class="linenos">3684</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Sqrt-3685"><a href="#Sqrt-3685"><span class="linenos">3685</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Sqrt-3806"><a href="#Sqrt-3806"><span class="linenos">3806</span></a><span class="k">class</span> <span class="nc">Sqrt</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Sqrt-3807"><a href="#Sqrt-3807"><span class="linenos">3807</span></a> <span class="k">pass</span> </span></pre></div> @@ -38725,8 +39408,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Stddev"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-3688"><a href="#Stddev-3688"><span class="linenos">3688</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Stddev-3689"><a href="#Stddev-3689"><span class="linenos">3689</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Stddev-3810"><a href="#Stddev-3810"><span class="linenos">3810</span></a><span class="k">class</span> <span class="nc">Stddev</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Stddev-3811"><a href="#Stddev-3811"><span class="linenos">3811</span></a> <span class="k">pass</span> </span></pre></div> @@ -38800,8 +39483,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StddevPop"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-3692"><a href="#StddevPop-3692"><span class="linenos">3692</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="StddevPop-3693"><a href="#StddevPop-3693"><span class="linenos">3693</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StddevPop-3814"><a href="#StddevPop-3814"><span class="linenos">3814</span></a><span class="k">class</span> <span class="nc">StddevPop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="StddevPop-3815"><a href="#StddevPop-3815"><span class="linenos">3815</span></a> <span class="k">pass</span> </span></pre></div> @@ -38875,8 +39558,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#StddevSamp"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-3696"><a href="#StddevSamp-3696"><span class="linenos">3696</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="StddevSamp-3697"><a href="#StddevSamp-3697"><span class="linenos">3697</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="StddevSamp-3818"><a href="#StddevSamp-3818"><span class="linenos">3818</span></a><span class="k">class</span> <span class="nc">StddevSamp</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="StddevSamp-3819"><a href="#StddevSamp-3819"><span class="linenos">3819</span></a> <span class="k">pass</span> </span></pre></div> @@ -38950,8 +39633,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TimeToStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-3700"><a href="#TimeToStr-3700"><span class="linenos">3700</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TimeToStr-3701"><a href="#TimeToStr-3701"><span class="linenos">3701</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToStr-3822"><a href="#TimeToStr-3822"><span class="linenos">3822</span></a><span class="k">class</span> <span class="nc">TimeToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TimeToStr-3823"><a href="#TimeToStr-3823"><span class="linenos">3823</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -39025,8 +39708,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TimeToTimeStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-3704"><a href="#TimeToTimeStr-3704"><span class="linenos">3704</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TimeToTimeStr-3705"><a href="#TimeToTimeStr-3705"><span class="linenos">3705</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToTimeStr-3826"><a href="#TimeToTimeStr-3826"><span class="linenos">3826</span></a><span class="k">class</span> <span class="nc">TimeToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TimeToTimeStr-3827"><a href="#TimeToTimeStr-3827"><span class="linenos">3827</span></a> <span class="k">pass</span> </span></pre></div> @@ -39100,8 +39783,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TimeToUnix"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-3708"><a href="#TimeToUnix-3708"><span class="linenos">3708</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TimeToUnix-3709"><a href="#TimeToUnix-3709"><span class="linenos">3709</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeToUnix-3830"><a href="#TimeToUnix-3830"><span class="linenos">3830</span></a><span class="k">class</span> <span class="nc">TimeToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TimeToUnix-3831"><a href="#TimeToUnix-3831"><span class="linenos">3831</span></a> <span class="k">pass</span> </span></pre></div> @@ -39175,8 +39858,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TimeStrToDate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-3712"><a href="#TimeStrToDate-3712"><span class="linenos">3712</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TimeStrToDate-3713"><a href="#TimeStrToDate-3713"><span class="linenos">3713</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToDate-3834"><a href="#TimeStrToDate-3834"><span class="linenos">3834</span></a><span class="k">class</span> <span class="nc">TimeStrToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TimeStrToDate-3835"><a href="#TimeStrToDate-3835"><span class="linenos">3835</span></a> <span class="k">pass</span> </span></pre></div> @@ -39250,8 +39933,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TimeStrToTime"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-3716"><a href="#TimeStrToTime-3716"><span class="linenos">3716</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TimeStrToTime-3717"><a href="#TimeStrToTime-3717"><span class="linenos">3717</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToTime-3838"><a href="#TimeStrToTime-3838"><span class="linenos">3838</span></a><span class="k">class</span> <span class="nc">TimeStrToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TimeStrToTime-3839"><a href="#TimeStrToTime-3839"><span class="linenos">3839</span></a> <span class="k">pass</span> </span></pre></div> @@ -39325,8 +40008,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TimeStrToUnix"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-3720"><a href="#TimeStrToUnix-3720"><span class="linenos">3720</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TimeStrToUnix-3721"><a href="#TimeStrToUnix-3721"><span class="linenos">3721</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TimeStrToUnix-3842"><a href="#TimeStrToUnix-3842"><span class="linenos">3842</span></a><span class="k">class</span> <span class="nc">TimeStrToUnix</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TimeStrToUnix-3843"><a href="#TimeStrToUnix-3843"><span class="linenos">3843</span></a> <span class="k">pass</span> </span></pre></div> @@ -39400,13 +40083,13 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Trim"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-3724"><a href="#Trim-3724"><span class="linenos">3724</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Trim-3725"><a href="#Trim-3725"><span class="linenos">3725</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Trim-3726"><a href="#Trim-3726"><span class="linenos">3726</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Trim-3727"><a href="#Trim-3727"><span class="linenos">3727</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Trim-3728"><a href="#Trim-3728"><span class="linenos">3728</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Trim-3729"><a href="#Trim-3729"><span class="linenos">3729</span></a> <span class="s2">"collation"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="Trim-3730"><a href="#Trim-3730"><span class="linenos">3730</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Trim-3846"><a href="#Trim-3846"><span class="linenos">3846</span></a><span class="k">class</span> <span class="nc">Trim</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Trim-3847"><a href="#Trim-3847"><span class="linenos">3847</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Trim-3848"><a href="#Trim-3848"><span class="linenos">3848</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Trim-3849"><a href="#Trim-3849"><span class="linenos">3849</span></a> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Trim-3850"><a href="#Trim-3850"><span class="linenos">3850</span></a> <span class="s2">"position"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Trim-3851"><a href="#Trim-3851"><span class="linenos">3851</span></a> <span class="s2">"collation"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="Trim-3852"><a href="#Trim-3852"><span class="linenos">3852</span></a> <span class="p">}</span> </span></pre></div> @@ -39480,8 +40163,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TsOrDsAdd"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-3733"><a href="#TsOrDsAdd-3733"><span class="linenos">3733</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> -</span><span id="TsOrDsAdd-3734"><a href="#TsOrDsAdd-3734"><span class="linenos">3734</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsAdd-3855"><a href="#TsOrDsAdd-3855"><span class="linenos">3855</span></a><span class="k">class</span> <span class="nc">TsOrDsAdd</span><span class="p">(</span><span class="n">Func</span><span class="p">,</span> <span class="n">TimeUnit</span><span class="p">):</span> +</span><span id="TsOrDsAdd-3856"><a href="#TsOrDsAdd-3856"><span class="linenos">3856</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expression"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"unit"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -39558,8 +40241,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TsOrDsToDateStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-3737"><a href="#TsOrDsToDateStr-3737"><span class="linenos">3737</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TsOrDsToDateStr-3738"><a href="#TsOrDsToDateStr-3738"><span class="linenos">3738</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDateStr-3859"><a href="#TsOrDsToDateStr-3859"><span class="linenos">3859</span></a><span class="k">class</span> <span class="nc">TsOrDsToDateStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TsOrDsToDateStr-3860"><a href="#TsOrDsToDateStr-3860"><span class="linenos">3860</span></a> <span class="k">pass</span> </span></pre></div> @@ -39633,8 +40316,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TsOrDsToDate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-3741"><a href="#TsOrDsToDate-3741"><span class="linenos">3741</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TsOrDsToDate-3742"><a href="#TsOrDsToDate-3742"><span class="linenos">3742</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDsToDate-3863"><a href="#TsOrDsToDate-3863"><span class="linenos">3863</span></a><span class="k">class</span> <span class="nc">TsOrDsToDate</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TsOrDsToDate-3864"><a href="#TsOrDsToDate-3864"><span class="linenos">3864</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -39708,8 +40391,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#TsOrDiToDi"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-3745"><a href="#TsOrDiToDi-3745"><span class="linenos">3745</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="TsOrDiToDi-3746"><a href="#TsOrDiToDi-3746"><span class="linenos">3746</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="TsOrDiToDi-3867"><a href="#TsOrDiToDi-3867"><span class="linenos">3867</span></a><span class="k">class</span> <span class="nc">TsOrDiToDi</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="TsOrDiToDi-3868"><a href="#TsOrDiToDi-3868"><span class="linenos">3868</span></a> <span class="k">pass</span> </span></pre></div> @@ -39783,8 +40466,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Unhex"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-3749"><a href="#Unhex-3749"><span class="linenos">3749</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Unhex-3750"><a href="#Unhex-3750"><span class="linenos">3750</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Unhex-3871"><a href="#Unhex-3871"><span class="linenos">3871</span></a><span class="k">class</span> <span class="nc">Unhex</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Unhex-3872"><a href="#Unhex-3872"><span class="linenos">3872</span></a> <span class="k">pass</span> </span></pre></div> @@ -39858,8 +40541,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#UnixToStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-3753"><a href="#UnixToStr-3753"><span class="linenos">3753</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="UnixToStr-3754"><a href="#UnixToStr-3754"><span class="linenos">3754</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToStr-3875"><a href="#UnixToStr-3875"><span class="linenos">3875</span></a><span class="k">class</span> <span class="nc">UnixToStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="UnixToStr-3876"><a href="#UnixToStr-3876"><span class="linenos">3876</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -39933,12 +40616,12 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#UnixToTime"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-3759"><a href="#UnixToTime-3759"><span class="linenos">3759</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="UnixToTime-3760"><a href="#UnixToTime-3760"><span class="linenos">3760</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"scale"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"hours"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"minutes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> -</span><span id="UnixToTime-3761"><a href="#UnixToTime-3761"><span class="linenos">3761</span></a> -</span><span id="UnixToTime-3762"><a href="#UnixToTime-3762"><span class="linenos">3762</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"seconds"</span><span class="p">)</span> -</span><span id="UnixToTime-3763"><a href="#UnixToTime-3763"><span class="linenos">3763</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"millis"</span><span class="p">)</span> -</span><span id="UnixToTime-3764"><a href="#UnixToTime-3764"><span class="linenos">3764</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"micros"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTime-3881"><a href="#UnixToTime-3881"><span class="linenos">3881</span></a><span class="k">class</span> <span class="nc">UnixToTime</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="UnixToTime-3882"><a href="#UnixToTime-3882"><span class="linenos">3882</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"scale"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"zone"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"hours"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"minutes"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> +</span><span id="UnixToTime-3883"><a href="#UnixToTime-3883"><span class="linenos">3883</span></a> +</span><span id="UnixToTime-3884"><a href="#UnixToTime-3884"><span class="linenos">3884</span></a> <span class="n">SECONDS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"seconds"</span><span class="p">)</span> +</span><span id="UnixToTime-3885"><a href="#UnixToTime-3885"><span class="linenos">3885</span></a> <span class="n">MILLIS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"millis"</span><span class="p">)</span> +</span><span id="UnixToTime-3886"><a href="#UnixToTime-3886"><span class="linenos">3886</span></a> <span class="n">MICROS</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="s2">"micros"</span><span class="p">)</span> </span></pre></div> @@ -40012,8 +40695,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#UnixToTimeStr"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-3767"><a href="#UnixToTimeStr-3767"><span class="linenos">3767</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="UnixToTimeStr-3768"><a href="#UnixToTimeStr-3768"><span class="linenos">3768</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="UnixToTimeStr-3889"><a href="#UnixToTimeStr-3889"><span class="linenos">3889</span></a><span class="k">class</span> <span class="nc">UnixToTimeStr</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="UnixToTimeStr-3890"><a href="#UnixToTimeStr-3890"><span class="linenos">3890</span></a> <span class="k">pass</span> </span></pre></div> @@ -40087,8 +40770,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Upper"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-3771"><a href="#Upper-3771"><span class="linenos">3771</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Upper-3772"><a href="#Upper-3772"><span class="linenos">3772</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="s2">"UCASE"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Upper-3893"><a href="#Upper-3893"><span class="linenos">3893</span></a><span class="k">class</span> <span class="nc">Upper</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Upper-3894"><a href="#Upper-3894"><span class="linenos">3894</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"UPPER"</span><span class="p">,</span> <span class="s2">"UCASE"</span><span class="p">]</span> </span></pre></div> @@ -40162,8 +40845,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Variance"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-3775"><a href="#Variance-3775"><span class="linenos">3775</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="Variance-3776"><a href="#Variance-3776"><span class="linenos">3776</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE"</span><span class="p">,</span> <span class="s2">"VARIANCE_SAMP"</span><span class="p">,</span> <span class="s2">"VAR_SAMP"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Variance-3897"><a href="#Variance-3897"><span class="linenos">3897</span></a><span class="k">class</span> <span class="nc">Variance</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="Variance-3898"><a href="#Variance-3898"><span class="linenos">3898</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE"</span><span class="p">,</span> <span class="s2">"VARIANCE_SAMP"</span><span class="p">,</span> <span class="s2">"VAR_SAMP"</span><span class="p">]</span> </span></pre></div> @@ -40237,8 +40920,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#VariancePop"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-3779"><a href="#VariancePop-3779"><span class="linenos">3779</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> -</span><span id="VariancePop-3780"><a href="#VariancePop-3780"><span class="linenos">3780</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE_POP"</span><span class="p">,</span> <span class="s2">"VAR_POP"</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="VariancePop-3901"><a href="#VariancePop-3901"><span class="linenos">3901</span></a><span class="k">class</span> <span class="nc">VariancePop</span><span class="p">(</span><span class="n">AggFunc</span><span class="p">):</span> +</span><span id="VariancePop-3902"><a href="#VariancePop-3902"><span class="linenos">3902</span></a> <span class="n">_sql_names</span> <span class="o">=</span> <span class="p">[</span><span class="s2">"VARIANCE_POP"</span><span class="p">,</span> <span class="s2">"VAR_POP"</span><span class="p">]</span> </span></pre></div> @@ -40312,8 +40995,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Week"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Week-3783"><a href="#Week-3783"><span class="linenos">3783</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Week-3784"><a href="#Week-3784"><span class="linenos">3784</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"mode"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Week-3905"><a href="#Week-3905"><span class="linenos">3905</span></a><span class="k">class</span> <span class="nc">Week</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Week-3906"><a href="#Week-3906"><span class="linenos">3906</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"mode"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -40387,8 +41070,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#XMLTable"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-3787"><a href="#XMLTable-3787"><span class="linenos">3787</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="XMLTable-3788"><a href="#XMLTable-3788"><span class="linenos">3788</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"passing"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"by_ref"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="XMLTable-3909"><a href="#XMLTable-3909"><span class="linenos">3909</span></a><span class="k">class</span> <span class="nc">XMLTable</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="XMLTable-3910"><a href="#XMLTable-3910"><span class="linenos">3910</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"passing"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"columns"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"by_ref"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -40462,8 +41145,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Year"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Year-3791"><a href="#Year-3791"><span class="linenos">3791</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Year-3792"><a href="#Year-3792"><span class="linenos">3792</span></a> <span class="k">pass</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Year-3913"><a href="#Year-3913"><span class="linenos">3913</span></a><span class="k">class</span> <span class="nc">Year</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Year-3914"><a href="#Year-3914"><span class="linenos">3914</span></a> <span class="k">pass</span> </span></pre></div> @@ -40537,8 +41220,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Use"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Use-3795"><a href="#Use-3795"><span class="linenos">3795</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Use-3796"><a href="#Use-3796"><span class="linenos">3796</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Use-3917"><a href="#Use-3917"><span class="linenos">3917</span></a><span class="k">class</span> <span class="nc">Use</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Use-3918"><a href="#Use-3918"><span class="linenos">3918</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"kind"</span><span class="p">:</span> <span class="kc">False</span><span class="p">}</span> </span></pre></div> @@ -40599,8 +41282,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#Merge"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-3799"><a href="#Merge-3799"><span class="linenos">3799</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> -</span><span id="Merge-3800"><a href="#Merge-3800"><span class="linenos">3800</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Merge-3921"><a href="#Merge-3921"><span class="linenos">3921</span></a><span class="k">class</span> <span class="nc">Merge</span><span class="p">(</span><span class="n">Expression</span><span class="p">):</span> +</span><span id="Merge-3922"><a href="#Merge-3922"><span class="linenos">3922</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"using"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"on"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"expressions"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -40661,8 +41344,8 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> </div> <a class="headerlink" href="#When"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="When-3803"><a href="#When-3803"><span class="linenos">3803</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> -</span><span id="When-3804"><a href="#When-3804"><span class="linenos">3804</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"matched"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"source"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"condition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"then"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="When-3925"><a href="#When-3925"><span class="linenos">3925</span></a><span class="k">class</span> <span class="nc">When</span><span class="p">(</span><span class="n">Func</span><span class="p">):</span> +</span><span id="When-3926"><a href="#When-3926"><span class="linenos">3926</span></a> <span class="n">arg_types</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"matched"</span><span class="p">:</span> <span class="kc">True</span><span class="p">,</span> <span class="s2">"source"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"condition"</span><span class="p">:</span> <span class="kc">False</span><span class="p">,</span> <span class="s2">"then"</span><span class="p">:</span> <span class="kc">True</span><span class="p">}</span> </span></pre></div> @@ -40730,54 +41413,54 @@ Pattern matching MATCHES(value, search1, result1, ...searchN, resultN, else)</p> <div class="attr function"> <span class="def">def</span> - <span class="name">maybe_parse</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="o">*</span>,</span><span class="param"> <span class="n">into</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">],</span> <span class="n">Collection</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">prefix</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span> + <span class="name">maybe_parse</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="o">*</span>,</span><span class="param"> <span class="n">into</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">],</span> <span class="n">Collection</span><span class="p">[</span><span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]]],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">prefix</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>:</span></span> <label class="view-source-button" for="maybe_parse-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#maybe_parse"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-3832"><a href="#maybe_parse-3832"><span class="linenos">3832</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span> -</span><span id="maybe_parse-3833"><a href="#maybe_parse-3833"><span class="linenos">3833</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="maybe_parse-3834"><a href="#maybe_parse-3834"><span class="linenos">3834</span></a> <span class="o">*</span><span class="p">,</span> -</span><span id="maybe_parse-3835"><a href="#maybe_parse-3835"><span class="linenos">3835</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="maybe_parse-3836"><a href="#maybe_parse-3836"><span class="linenos">3836</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="maybe_parse-3837"><a href="#maybe_parse-3837"><span class="linenos">3837</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="maybe_parse-3838"><a href="#maybe_parse-3838"><span class="linenos">3838</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="maybe_parse-3839"><a href="#maybe_parse-3839"><span class="linenos">3839</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="maybe_parse-3840"><a href="#maybe_parse-3840"><span class="linenos">3840</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> -</span><span id="maybe_parse-3841"><a href="#maybe_parse-3841"><span class="linenos">3841</span></a><span class="w"> </span><span class="sd">"""Gracefully handle a possible string or expression.</span> -</span><span id="maybe_parse-3842"><a href="#maybe_parse-3842"><span class="linenos">3842</span></a> -</span><span id="maybe_parse-3843"><a href="#maybe_parse-3843"><span class="linenos">3843</span></a><span class="sd"> Example:</span> -</span><span id="maybe_parse-3844"><a href="#maybe_parse-3844"><span class="linenos">3844</span></a><span class="sd"> >>> maybe_parse("1")</span> -</span><span id="maybe_parse-3845"><a href="#maybe_parse-3845"><span class="linenos">3845</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span> -</span><span id="maybe_parse-3846"><a href="#maybe_parse-3846"><span class="linenos">3846</span></a><span class="sd"> >>> maybe_parse(to_identifier("x"))</span> -</span><span id="maybe_parse-3847"><a href="#maybe_parse-3847"><span class="linenos">3847</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span> -</span><span id="maybe_parse-3848"><a href="#maybe_parse-3848"><span class="linenos">3848</span></a> -</span><span id="maybe_parse-3849"><a href="#maybe_parse-3849"><span class="linenos">3849</span></a><span class="sd"> Args:</span> -</span><span id="maybe_parse-3850"><a href="#maybe_parse-3850"><span class="linenos">3850</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span> -</span><span id="maybe_parse-3851"><a href="#maybe_parse-3851"><span class="linenos">3851</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span> -</span><span id="maybe_parse-3852"><a href="#maybe_parse-3852"><span class="linenos">3852</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> -</span><span id="maybe_parse-3853"><a href="#maybe_parse-3853"><span class="linenos">3853</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="maybe_parse-3854"><a href="#maybe_parse-3854"><span class="linenos">3854</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span> -</span><span id="maybe_parse-3855"><a href="#maybe_parse-3855"><span class="linenos">3855</span></a><span class="sd"> (automatically includes a space)</span> -</span><span id="maybe_parse-3856"><a href="#maybe_parse-3856"><span class="linenos">3856</span></a><span class="sd"> copy: whether or not to copy the expression.</span> -</span><span id="maybe_parse-3857"><a href="#maybe_parse-3857"><span class="linenos">3857</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="maybe_parse-3858"><a href="#maybe_parse-3858"><span class="linenos">3858</span></a><span class="sd"> that an input expression is a SQL string).</span> -</span><span id="maybe_parse-3859"><a href="#maybe_parse-3859"><span class="linenos">3859</span></a> -</span><span id="maybe_parse-3860"><a href="#maybe_parse-3860"><span class="linenos">3860</span></a><span class="sd"> Returns:</span> -</span><span id="maybe_parse-3861"><a href="#maybe_parse-3861"><span class="linenos">3861</span></a><span class="sd"> Expression: the parsed or given expression.</span> -</span><span id="maybe_parse-3862"><a href="#maybe_parse-3862"><span class="linenos">3862</span></a><span class="sd"> """</span> -</span><span id="maybe_parse-3863"><a href="#maybe_parse-3863"><span class="linenos">3863</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="maybe_parse-3864"><a href="#maybe_parse-3864"><span class="linenos">3864</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span> -</span><span id="maybe_parse-3865"><a href="#maybe_parse-3865"><span class="linenos">3865</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="maybe_parse-3866"><a href="#maybe_parse-3866"><span class="linenos">3866</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span> -</span><span id="maybe_parse-3867"><a href="#maybe_parse-3867"><span class="linenos">3867</span></a> -</span><span id="maybe_parse-3868"><a href="#maybe_parse-3868"><span class="linenos">3868</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> -</span><span id="maybe_parse-3869"><a href="#maybe_parse-3869"><span class="linenos">3869</span></a> -</span><span id="maybe_parse-3870"><a href="#maybe_parse-3870"><span class="linenos">3870</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span> -</span><span id="maybe_parse-3871"><a href="#maybe_parse-3871"><span class="linenos">3871</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span> -</span><span id="maybe_parse-3872"><a href="#maybe_parse-3872"><span class="linenos">3872</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="maybe_parse-3873"><a href="#maybe_parse-3873"><span class="linenos">3873</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="maybe_parse-3954"><a href="#maybe_parse-3954"><span class="linenos">3954</span></a><span class="k">def</span> <span class="nf">maybe_parse</span><span class="p">(</span> +</span><span id="maybe_parse-3955"><a href="#maybe_parse-3955"><span class="linenos">3955</span></a> <span class="n">sql_or_expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="maybe_parse-3956"><a href="#maybe_parse-3956"><span class="linenos">3956</span></a> <span class="o">*</span><span class="p">,</span> +</span><span id="maybe_parse-3957"><a href="#maybe_parse-3957"><span class="linenos">3957</span></a> <span class="n">into</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">IntoType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="maybe_parse-3958"><a href="#maybe_parse-3958"><span class="linenos">3958</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="maybe_parse-3959"><a href="#maybe_parse-3959"><span class="linenos">3959</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="maybe_parse-3960"><a href="#maybe_parse-3960"><span class="linenos">3960</span></a> <span class="n">copy</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="maybe_parse-3961"><a href="#maybe_parse-3961"><span class="linenos">3961</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="maybe_parse-3962"><a href="#maybe_parse-3962"><span class="linenos">3962</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> +</span><span id="maybe_parse-3963"><a href="#maybe_parse-3963"><span class="linenos">3963</span></a><span class="w"> </span><span class="sd">"""Gracefully handle a possible string or expression.</span> +</span><span id="maybe_parse-3964"><a href="#maybe_parse-3964"><span class="linenos">3964</span></a> +</span><span id="maybe_parse-3965"><a href="#maybe_parse-3965"><span class="linenos">3965</span></a><span class="sd"> Example:</span> +</span><span id="maybe_parse-3966"><a href="#maybe_parse-3966"><span class="linenos">3966</span></a><span class="sd"> >>> maybe_parse("1")</span> +</span><span id="maybe_parse-3967"><a href="#maybe_parse-3967"><span class="linenos">3967</span></a><span class="sd"> (LITERAL this: 1, is_string: False)</span> +</span><span id="maybe_parse-3968"><a href="#maybe_parse-3968"><span class="linenos">3968</span></a><span class="sd"> >>> maybe_parse(to_identifier("x"))</span> +</span><span id="maybe_parse-3969"><a href="#maybe_parse-3969"><span class="linenos">3969</span></a><span class="sd"> (IDENTIFIER this: x, quoted: False)</span> +</span><span id="maybe_parse-3970"><a href="#maybe_parse-3970"><span class="linenos">3970</span></a> +</span><span id="maybe_parse-3971"><a href="#maybe_parse-3971"><span class="linenos">3971</span></a><span class="sd"> Args:</span> +</span><span id="maybe_parse-3972"><a href="#maybe_parse-3972"><span class="linenos">3972</span></a><span class="sd"> sql_or_expression: the SQL code string or an expression</span> +</span><span id="maybe_parse-3973"><a href="#maybe_parse-3973"><span class="linenos">3973</span></a><span class="sd"> into: the SQLGlot Expression to parse into</span> +</span><span id="maybe_parse-3974"><a href="#maybe_parse-3974"><span class="linenos">3974</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> +</span><span id="maybe_parse-3975"><a href="#maybe_parse-3975"><span class="linenos">3975</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="maybe_parse-3976"><a href="#maybe_parse-3976"><span class="linenos">3976</span></a><span class="sd"> prefix: a string to prefix the sql with before it gets parsed</span> +</span><span id="maybe_parse-3977"><a href="#maybe_parse-3977"><span class="linenos">3977</span></a><span class="sd"> (automatically includes a space)</span> +</span><span id="maybe_parse-3978"><a href="#maybe_parse-3978"><span class="linenos">3978</span></a><span class="sd"> copy: whether or not to copy the expression.</span> +</span><span id="maybe_parse-3979"><a href="#maybe_parse-3979"><span class="linenos">3979</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="maybe_parse-3980"><a href="#maybe_parse-3980"><span class="linenos">3980</span></a><span class="sd"> that an input expression is a SQL string).</span> +</span><span id="maybe_parse-3981"><a href="#maybe_parse-3981"><span class="linenos">3981</span></a> +</span><span id="maybe_parse-3982"><a href="#maybe_parse-3982"><span class="linenos">3982</span></a><span class="sd"> Returns:</span> +</span><span id="maybe_parse-3983"><a href="#maybe_parse-3983"><span class="linenos">3983</span></a><span class="sd"> Expression: the parsed or given expression.</span> +</span><span id="maybe_parse-3984"><a href="#maybe_parse-3984"><span class="linenos">3984</span></a><span class="sd"> """</span> +</span><span id="maybe_parse-3985"><a href="#maybe_parse-3985"><span class="linenos">3985</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="maybe_parse-3986"><a href="#maybe_parse-3986"><span class="linenos">3986</span></a> <span class="k">if</span> <span class="n">copy</span><span class="p">:</span> +</span><span id="maybe_parse-3987"><a href="#maybe_parse-3987"><span class="linenos">3987</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="maybe_parse-3988"><a href="#maybe_parse-3988"><span class="linenos">3988</span></a> <span class="k">return</span> <span class="n">sql_or_expression</span> +</span><span id="maybe_parse-3989"><a href="#maybe_parse-3989"><span class="linenos">3989</span></a> +</span><span id="maybe_parse-3990"><a href="#maybe_parse-3990"><span class="linenos">3990</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> +</span><span id="maybe_parse-3991"><a href="#maybe_parse-3991"><span class="linenos">3991</span></a> +</span><span id="maybe_parse-3992"><a href="#maybe_parse-3992"><span class="linenos">3992</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">str</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="p">)</span> +</span><span id="maybe_parse-3993"><a href="#maybe_parse-3993"><span class="linenos">3993</span></a> <span class="k">if</span> <span class="n">prefix</span><span class="p">:</span> +</span><span id="maybe_parse-3994"><a href="#maybe_parse-3994"><span class="linenos">3994</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="maybe_parse-3995"><a href="#maybe_parse-3995"><span class="linenos">3995</span></a> <span class="k">return</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">parse_one</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">read</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">into</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -40829,29 +41512,29 @@ that an input expression is a SQL string).</li> </div> <a class="headerlink" href="#union"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="union-4019"><a href="#union-4019"><span class="linenos">4019</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="union-4020"><a href="#union-4020"><span class="linenos">4020</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="union-4021"><a href="#union-4021"><span class="linenos">4021</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span> -</span><span id="union-4022"><a href="#union-4022"><span class="linenos">4022</span></a> -</span><span id="union-4023"><a href="#union-4023"><span class="linenos">4023</span></a><span class="sd"> Example:</span> -</span><span id="union-4024"><a href="#union-4024"><span class="linenos">4024</span></a><span class="sd"> >>> union("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> -</span><span id="union-4025"><a href="#union-4025"><span class="linenos">4025</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> -</span><span id="union-4026"><a href="#union-4026"><span class="linenos">4026</span></a> -</span><span id="union-4027"><a href="#union-4027"><span class="linenos">4027</span></a><span class="sd"> Args:</span> -</span><span id="union-4028"><a href="#union-4028"><span class="linenos">4028</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> -</span><span id="union-4029"><a href="#union-4029"><span class="linenos">4029</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="union-4030"><a href="#union-4030"><span class="linenos">4030</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> -</span><span id="union-4031"><a href="#union-4031"><span class="linenos">4031</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="union-4032"><a href="#union-4032"><span class="linenos">4032</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="union-4033"><a href="#union-4033"><span class="linenos">4033</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="union-4034"><a href="#union-4034"><span class="linenos">4034</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="union-4035"><a href="#union-4035"><span class="linenos">4035</span></a><span class="sd"> Returns:</span> -</span><span id="union-4036"><a href="#union-4036"><span class="linenos">4036</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span> -</span><span id="union-4037"><a href="#union-4037"><span class="linenos">4037</span></a><span class="sd"> """</span> -</span><span id="union-4038"><a href="#union-4038"><span class="linenos">4038</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="union-4039"><a href="#union-4039"><span class="linenos">4039</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="union-4040"><a href="#union-4040"><span class="linenos">4040</span></a> -</span><span id="union-4041"><a href="#union-4041"><span class="linenos">4041</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="union-4141"><a href="#union-4141"><span class="linenos">4141</span></a><span class="k">def</span> <span class="nf">union</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="union-4142"><a href="#union-4142"><span class="linenos">4142</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="union-4143"><a href="#union-4143"><span class="linenos">4143</span></a><span class="sd"> Initializes a syntax tree from one UNION expression.</span> +</span><span id="union-4144"><a href="#union-4144"><span class="linenos">4144</span></a> +</span><span id="union-4145"><a href="#union-4145"><span class="linenos">4145</span></a><span class="sd"> Example:</span> +</span><span id="union-4146"><a href="#union-4146"><span class="linenos">4146</span></a><span class="sd"> >>> union("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> +</span><span id="union-4147"><a href="#union-4147"><span class="linenos">4147</span></a><span class="sd"> 'SELECT * FROM foo UNION SELECT * FROM bla'</span> +</span><span id="union-4148"><a href="#union-4148"><span class="linenos">4148</span></a> +</span><span id="union-4149"><a href="#union-4149"><span class="linenos">4149</span></a><span class="sd"> Args:</span> +</span><span id="union-4150"><a href="#union-4150"><span class="linenos">4150</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> +</span><span id="union-4151"><a href="#union-4151"><span class="linenos">4151</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="union-4152"><a href="#union-4152"><span class="linenos">4152</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> +</span><span id="union-4153"><a href="#union-4153"><span class="linenos">4153</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="union-4154"><a href="#union-4154"><span class="linenos">4154</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="union-4155"><a href="#union-4155"><span class="linenos">4155</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="union-4156"><a href="#union-4156"><span class="linenos">4156</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="union-4157"><a href="#union-4157"><span class="linenos">4157</span></a><span class="sd"> Returns:</span> +</span><span id="union-4158"><a href="#union-4158"><span class="linenos">4158</span></a><span class="sd"> Union: the syntax tree for the UNION expression.</span> +</span><span id="union-4159"><a href="#union-4159"><span class="linenos">4159</span></a><span class="sd"> """</span> +</span><span id="union-4160"><a href="#union-4160"><span class="linenos">4160</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="union-4161"><a href="#union-4161"><span class="linenos">4161</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="union-4162"><a href="#union-4162"><span class="linenos">4162</span></a> +</span><span id="union-4163"><a href="#union-4163"><span class="linenos">4163</span></a> <span class="k">return</span> <span class="n">Union</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> </span></pre></div> @@ -40899,29 +41582,29 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#intersect"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-4044"><a href="#intersect-4044"><span class="linenos">4044</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="intersect-4045"><a href="#intersect-4045"><span class="linenos">4045</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="intersect-4046"><a href="#intersect-4046"><span class="linenos">4046</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span> -</span><span id="intersect-4047"><a href="#intersect-4047"><span class="linenos">4047</span></a> -</span><span id="intersect-4048"><a href="#intersect-4048"><span class="linenos">4048</span></a><span class="sd"> Example:</span> -</span><span id="intersect-4049"><a href="#intersect-4049"><span class="linenos">4049</span></a><span class="sd"> >>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> -</span><span id="intersect-4050"><a href="#intersect-4050"><span class="linenos">4050</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> -</span><span id="intersect-4051"><a href="#intersect-4051"><span class="linenos">4051</span></a> -</span><span id="intersect-4052"><a href="#intersect-4052"><span class="linenos">4052</span></a><span class="sd"> Args:</span> -</span><span id="intersect-4053"><a href="#intersect-4053"><span class="linenos">4053</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> -</span><span id="intersect-4054"><a href="#intersect-4054"><span class="linenos">4054</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="intersect-4055"><a href="#intersect-4055"><span class="linenos">4055</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> -</span><span id="intersect-4056"><a href="#intersect-4056"><span class="linenos">4056</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="intersect-4057"><a href="#intersect-4057"><span class="linenos">4057</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="intersect-4058"><a href="#intersect-4058"><span class="linenos">4058</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="intersect-4059"><a href="#intersect-4059"><span class="linenos">4059</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="intersect-4060"><a href="#intersect-4060"><span class="linenos">4060</span></a><span class="sd"> Returns:</span> -</span><span id="intersect-4061"><a href="#intersect-4061"><span class="linenos">4061</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span> -</span><span id="intersect-4062"><a href="#intersect-4062"><span class="linenos">4062</span></a><span class="sd"> """</span> -</span><span id="intersect-4063"><a href="#intersect-4063"><span class="linenos">4063</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="intersect-4064"><a href="#intersect-4064"><span class="linenos">4064</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="intersect-4065"><a href="#intersect-4065"><span class="linenos">4065</span></a> -</span><span id="intersect-4066"><a href="#intersect-4066"><span class="linenos">4066</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="intersect-4166"><a href="#intersect-4166"><span class="linenos">4166</span></a><span class="k">def</span> <span class="nf">intersect</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="intersect-4167"><a href="#intersect-4167"><span class="linenos">4167</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="intersect-4168"><a href="#intersect-4168"><span class="linenos">4168</span></a><span class="sd"> Initializes a syntax tree from one INTERSECT expression.</span> +</span><span id="intersect-4169"><a href="#intersect-4169"><span class="linenos">4169</span></a> +</span><span id="intersect-4170"><a href="#intersect-4170"><span class="linenos">4170</span></a><span class="sd"> Example:</span> +</span><span id="intersect-4171"><a href="#intersect-4171"><span class="linenos">4171</span></a><span class="sd"> >>> intersect("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> +</span><span id="intersect-4172"><a href="#intersect-4172"><span class="linenos">4172</span></a><span class="sd"> 'SELECT * FROM foo INTERSECT SELECT * FROM bla'</span> +</span><span id="intersect-4173"><a href="#intersect-4173"><span class="linenos">4173</span></a> +</span><span id="intersect-4174"><a href="#intersect-4174"><span class="linenos">4174</span></a><span class="sd"> Args:</span> +</span><span id="intersect-4175"><a href="#intersect-4175"><span class="linenos">4175</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> +</span><span id="intersect-4176"><a href="#intersect-4176"><span class="linenos">4176</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="intersect-4177"><a href="#intersect-4177"><span class="linenos">4177</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> +</span><span id="intersect-4178"><a href="#intersect-4178"><span class="linenos">4178</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="intersect-4179"><a href="#intersect-4179"><span class="linenos">4179</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="intersect-4180"><a href="#intersect-4180"><span class="linenos">4180</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="intersect-4181"><a href="#intersect-4181"><span class="linenos">4181</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="intersect-4182"><a href="#intersect-4182"><span class="linenos">4182</span></a><span class="sd"> Returns:</span> +</span><span id="intersect-4183"><a href="#intersect-4183"><span class="linenos">4183</span></a><span class="sd"> Intersect: the syntax tree for the INTERSECT expression.</span> +</span><span id="intersect-4184"><a href="#intersect-4184"><span class="linenos">4184</span></a><span class="sd"> """</span> +</span><span id="intersect-4185"><a href="#intersect-4185"><span class="linenos">4185</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="intersect-4186"><a href="#intersect-4186"><span class="linenos">4186</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="intersect-4187"><a href="#intersect-4187"><span class="linenos">4187</span></a> +</span><span id="intersect-4188"><a href="#intersect-4188"><span class="linenos">4188</span></a> <span class="k">return</span> <span class="n">Intersect</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> </span></pre></div> @@ -40969,29 +41652,29 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w </div> <a class="headerlink" href="#except_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="except_-4069"><a href="#except_-4069"><span class="linenos">4069</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="except_-4070"><a href="#except_-4070"><span class="linenos">4070</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="except_-4071"><a href="#except_-4071"><span class="linenos">4071</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span> -</span><span id="except_-4072"><a href="#except_-4072"><span class="linenos">4072</span></a> -</span><span id="except_-4073"><a href="#except_-4073"><span class="linenos">4073</span></a><span class="sd"> Example:</span> -</span><span id="except_-4074"><a href="#except_-4074"><span class="linenos">4074</span></a><span class="sd"> >>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> -</span><span id="except_-4075"><a href="#except_-4075"><span class="linenos">4075</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> -</span><span id="except_-4076"><a href="#except_-4076"><span class="linenos">4076</span></a> -</span><span id="except_-4077"><a href="#except_-4077"><span class="linenos">4077</span></a><span class="sd"> Args:</span> -</span><span id="except_-4078"><a href="#except_-4078"><span class="linenos">4078</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> -</span><span id="except_-4079"><a href="#except_-4079"><span class="linenos">4079</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="except_-4080"><a href="#except_-4080"><span class="linenos">4080</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> -</span><span id="except_-4081"><a href="#except_-4081"><span class="linenos">4081</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> -</span><span id="except_-4082"><a href="#except_-4082"><span class="linenos">4082</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> -</span><span id="except_-4083"><a href="#except_-4083"><span class="linenos">4083</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="except_-4084"><a href="#except_-4084"><span class="linenos">4084</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> -</span><span id="except_-4085"><a href="#except_-4085"><span class="linenos">4085</span></a><span class="sd"> Returns:</span> -</span><span id="except_-4086"><a href="#except_-4086"><span class="linenos">4086</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span> -</span><span id="except_-4087"><a href="#except_-4087"><span class="linenos">4087</span></a><span class="sd"> """</span> -</span><span id="except_-4088"><a href="#except_-4088"><span class="linenos">4088</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="except_-4089"><a href="#except_-4089"><span class="linenos">4089</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="except_-4090"><a href="#except_-4090"><span class="linenos">4090</span></a> -</span><span id="except_-4091"><a href="#except_-4091"><span class="linenos">4091</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="except_-4191"><a href="#except_-4191"><span class="linenos">4191</span></a><span class="k">def</span> <span class="nf">except_</span><span class="p">(</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="except_-4192"><a href="#except_-4192"><span class="linenos">4192</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="except_-4193"><a href="#except_-4193"><span class="linenos">4193</span></a><span class="sd"> Initializes a syntax tree from one EXCEPT expression.</span> +</span><span id="except_-4194"><a href="#except_-4194"><span class="linenos">4194</span></a> +</span><span id="except_-4195"><a href="#except_-4195"><span class="linenos">4195</span></a><span class="sd"> Example:</span> +</span><span id="except_-4196"><a href="#except_-4196"><span class="linenos">4196</span></a><span class="sd"> >>> except_("SELECT * FROM foo", "SELECT * FROM bla").sql()</span> +</span><span id="except_-4197"><a href="#except_-4197"><span class="linenos">4197</span></a><span class="sd"> 'SELECT * FROM foo EXCEPT SELECT * FROM bla'</span> +</span><span id="except_-4198"><a href="#except_-4198"><span class="linenos">4198</span></a> +</span><span id="except_-4199"><a href="#except_-4199"><span class="linenos">4199</span></a><span class="sd"> Args:</span> +</span><span id="except_-4200"><a href="#except_-4200"><span class="linenos">4200</span></a><span class="sd"> left (str | Expression): the SQL code string corresponding to the left-hand side.</span> +</span><span id="except_-4201"><a href="#except_-4201"><span class="linenos">4201</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="except_-4202"><a href="#except_-4202"><span class="linenos">4202</span></a><span class="sd"> right (str | Expression): the SQL code string corresponding to the right-hand side.</span> +</span><span id="except_-4203"><a href="#except_-4203"><span class="linenos">4203</span></a><span class="sd"> If an `Expression` instance is passed, it will be used as-is.</span> +</span><span id="except_-4204"><a href="#except_-4204"><span class="linenos">4204</span></a><span class="sd"> distinct (bool): set the DISTINCT flag if and only if this is true.</span> +</span><span id="except_-4205"><a href="#except_-4205"><span class="linenos">4205</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="except_-4206"><a href="#except_-4206"><span class="linenos">4206</span></a><span class="sd"> opts (kwargs): other options to use to parse the input expressions.</span> +</span><span id="except_-4207"><a href="#except_-4207"><span class="linenos">4207</span></a><span class="sd"> Returns:</span> +</span><span id="except_-4208"><a href="#except_-4208"><span class="linenos">4208</span></a><span class="sd"> Except: the syntax tree for the EXCEPT statement.</span> +</span><span id="except_-4209"><a href="#except_-4209"><span class="linenos">4209</span></a><span class="sd"> """</span> +</span><span id="except_-4210"><a href="#except_-4210"><span class="linenos">4210</span></a> <span class="n">left</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="except_-4211"><a href="#except_-4211"><span class="linenos">4211</span></a> <span class="n">right</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">sql_or_expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="except_-4212"><a href="#except_-4212"><span class="linenos">4212</span></a> +</span><span id="except_-4213"><a href="#except_-4213"><span class="linenos">4213</span></a> <span class="k">return</span> <span class="n">Except</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">)</span> </span></pre></div> @@ -41033,32 +41716,32 @@ If an <code><a href="#Expression">Expression</a></code> instance is passed, it w <div class="attr function"> <span class="def">def</span> - <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span> + <span class="name">select</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Select">sqlglot.expressions.Select</a></span>:</span></span> <label class="view-source-button" for="select-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#select"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="select-4094"><a href="#select-4094"><span class="linenos">4094</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="select-4095"><a href="#select-4095"><span class="linenos">4095</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="select-4096"><a href="#select-4096"><span class="linenos">4096</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span> -</span><span id="select-4097"><a href="#select-4097"><span class="linenos">4097</span></a> -</span><span id="select-4098"><a href="#select-4098"><span class="linenos">4098</span></a><span class="sd"> Example:</span> -</span><span id="select-4099"><a href="#select-4099"><span class="linenos">4099</span></a><span class="sd"> >>> select("col1", "col2").from_("tbl").sql()</span> -</span><span id="select-4100"><a href="#select-4100"><span class="linenos">4100</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> -</span><span id="select-4101"><a href="#select-4101"><span class="linenos">4101</span></a> -</span><span id="select-4102"><a href="#select-4102"><span class="linenos">4102</span></a><span class="sd"> Args:</span> -</span><span id="select-4103"><a href="#select-4103"><span class="linenos">4103</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span> -</span><span id="select-4104"><a href="#select-4104"><span class="linenos">4104</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> -</span><span id="select-4105"><a href="#select-4105"><span class="linenos">4105</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> -</span><span id="select-4106"><a href="#select-4106"><span class="linenos">4106</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="select-4107"><a href="#select-4107"><span class="linenos">4107</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="select-4108"><a href="#select-4108"><span class="linenos">4108</span></a><span class="sd"> that an input expression is a SQL string).</span> -</span><span id="select-4109"><a href="#select-4109"><span class="linenos">4109</span></a> -</span><span id="select-4110"><a href="#select-4110"><span class="linenos">4110</span></a><span class="sd"> Returns:</span> -</span><span id="select-4111"><a href="#select-4111"><span class="linenos">4111</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> -</span><span id="select-4112"><a href="#select-4112"><span class="linenos">4112</span></a><span class="sd"> """</span> -</span><span id="select-4113"><a href="#select-4113"><span class="linenos">4113</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="select-4216"><a href="#select-4216"><span class="linenos">4216</span></a><span class="k">def</span> <span class="nf">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="select-4217"><a href="#select-4217"><span class="linenos">4217</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="select-4218"><a href="#select-4218"><span class="linenos">4218</span></a><span class="sd"> Initializes a syntax tree from one or multiple SELECT expressions.</span> +</span><span id="select-4219"><a href="#select-4219"><span class="linenos">4219</span></a> +</span><span id="select-4220"><a href="#select-4220"><span class="linenos">4220</span></a><span class="sd"> Example:</span> +</span><span id="select-4221"><a href="#select-4221"><span class="linenos">4221</span></a><span class="sd"> >>> select("col1", "col2").from_("tbl").sql()</span> +</span><span id="select-4222"><a href="#select-4222"><span class="linenos">4222</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> +</span><span id="select-4223"><a href="#select-4223"><span class="linenos">4223</span></a> +</span><span id="select-4224"><a href="#select-4224"><span class="linenos">4224</span></a><span class="sd"> Args:</span> +</span><span id="select-4225"><a href="#select-4225"><span class="linenos">4225</span></a><span class="sd"> *expressions: the SQL code string to parse as the expressions of a</span> +</span><span id="select-4226"><a href="#select-4226"><span class="linenos">4226</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> +</span><span id="select-4227"><a href="#select-4227"><span class="linenos">4227</span></a><span class="sd"> dialect: the dialect used to parse the input expressions (in the case that an</span> +</span><span id="select-4228"><a href="#select-4228"><span class="linenos">4228</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="select-4229"><a href="#select-4229"><span class="linenos">4229</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="select-4230"><a href="#select-4230"><span class="linenos">4230</span></a><span class="sd"> that an input expression is a SQL string).</span> +</span><span id="select-4231"><a href="#select-4231"><span class="linenos">4231</span></a> +</span><span id="select-4232"><a href="#select-4232"><span class="linenos">4232</span></a><span class="sd"> Returns:</span> +</span><span id="select-4233"><a href="#select-4233"><span class="linenos">4233</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> +</span><span id="select-4234"><a href="#select-4234"><span class="linenos">4234</span></a><span class="sd"> """</span> +</span><span id="select-4235"><a href="#select-4235"><span class="linenos">4235</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -41105,26 +41788,26 @@ that an input expression is a SQL string).</li> </div> <a class="headerlink" href="#from_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="from_-4116"><a href="#from_-4116"><span class="linenos">4116</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> -</span><span id="from_-4117"><a href="#from_-4117"><span class="linenos">4117</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="from_-4118"><a href="#from_-4118"><span class="linenos">4118</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span> -</span><span id="from_-4119"><a href="#from_-4119"><span class="linenos">4119</span></a> -</span><span id="from_-4120"><a href="#from_-4120"><span class="linenos">4120</span></a><span class="sd"> Example:</span> -</span><span id="from_-4121"><a href="#from_-4121"><span class="linenos">4121</span></a><span class="sd"> >>> from_("tbl").select("col1", "col2").sql()</span> -</span><span id="from_-4122"><a href="#from_-4122"><span class="linenos">4122</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> -</span><span id="from_-4123"><a href="#from_-4123"><span class="linenos">4123</span></a> -</span><span id="from_-4124"><a href="#from_-4124"><span class="linenos">4124</span></a><span class="sd"> Args:</span> -</span><span id="from_-4125"><a href="#from_-4125"><span class="linenos">4125</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span> -</span><span id="from_-4126"><a href="#from_-4126"><span class="linenos">4126</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> -</span><span id="from_-4127"><a href="#from_-4127"><span class="linenos">4127</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> -</span><span id="from_-4128"><a href="#from_-4128"><span class="linenos">4128</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="from_-4129"><a href="#from_-4129"><span class="linenos">4129</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="from_-4130"><a href="#from_-4130"><span class="linenos">4130</span></a><span class="sd"> that the input expression is a SQL string).</span> -</span><span id="from_-4131"><a href="#from_-4131"><span class="linenos">4131</span></a> -</span><span id="from_-4132"><a href="#from_-4132"><span class="linenos">4132</span></a><span class="sd"> Returns:</span> -</span><span id="from_-4133"><a href="#from_-4133"><span class="linenos">4133</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> -</span><span id="from_-4134"><a href="#from_-4134"><span class="linenos">4134</span></a><span class="sd"> """</span> -</span><span id="from_-4135"><a href="#from_-4135"><span class="linenos">4135</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="from_-4238"><a href="#from_-4238"><span class="linenos">4238</span></a><span class="k">def</span> <span class="nf">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Select</span><span class="p">:</span> +</span><span id="from_-4239"><a href="#from_-4239"><span class="linenos">4239</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="from_-4240"><a href="#from_-4240"><span class="linenos">4240</span></a><span class="sd"> Initializes a syntax tree from a FROM expression.</span> +</span><span id="from_-4241"><a href="#from_-4241"><span class="linenos">4241</span></a> +</span><span id="from_-4242"><a href="#from_-4242"><span class="linenos">4242</span></a><span class="sd"> Example:</span> +</span><span id="from_-4243"><a href="#from_-4243"><span class="linenos">4243</span></a><span class="sd"> >>> from_("tbl").select("col1", "col2").sql()</span> +</span><span id="from_-4244"><a href="#from_-4244"><span class="linenos">4244</span></a><span class="sd"> 'SELECT col1, col2 FROM tbl'</span> +</span><span id="from_-4245"><a href="#from_-4245"><span class="linenos">4245</span></a> +</span><span id="from_-4246"><a href="#from_-4246"><span class="linenos">4246</span></a><span class="sd"> Args:</span> +</span><span id="from_-4247"><a href="#from_-4247"><span class="linenos">4247</span></a><span class="sd"> *expressions (str | Expression): the SQL code string to parse as the FROM expressions of a</span> +</span><span id="from_-4248"><a href="#from_-4248"><span class="linenos">4248</span></a><span class="sd"> SELECT statement. If an Expression instance is passed, this is used as-is.</span> +</span><span id="from_-4249"><a href="#from_-4249"><span class="linenos">4249</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> +</span><span id="from_-4250"><a href="#from_-4250"><span class="linenos">4250</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="from_-4251"><a href="#from_-4251"><span class="linenos">4251</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="from_-4252"><a href="#from_-4252"><span class="linenos">4252</span></a><span class="sd"> that the input expression is a SQL string).</span> +</span><span id="from_-4253"><a href="#from_-4253"><span class="linenos">4253</span></a> +</span><span id="from_-4254"><a href="#from_-4254"><span class="linenos">4254</span></a><span class="sd"> Returns:</span> +</span><span id="from_-4255"><a href="#from_-4255"><span class="linenos">4255</span></a><span class="sd"> Select: the syntax tree for the SELECT statement.</span> +</span><span id="from_-4256"><a href="#from_-4256"><span class="linenos">4256</span></a><span class="sd"> """</span> +</span><span id="from_-4257"><a href="#from_-4257"><span class="linenos">4257</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -41165,52 +41848,59 @@ that the input expression is a SQL string).</li> <div class="attr function"> <span class="def">def</span> - <span class="name">update</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span>,</span><span class="param"> <span class="n">properties</span>,</span><span class="param"> <span class="n">where</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Update">sqlglot.expressions.Update</a></span>:</span></span> + <span class="name">update</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Table">sqlglot.expressions.Table</a></span>,</span><span class="param"> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span>,</span><span class="param"> <span class="n">where</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">from_</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Update">sqlglot.expressions.Update</a></span>:</span></span> <label class="view-source-button" for="update-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#update"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="update-4138"><a href="#update-4138"><span class="linenos">4138</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">properties</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">from_</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Update</span><span class="p">:</span> -</span><span id="update-4139"><a href="#update-4139"><span class="linenos">4139</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="update-4140"><a href="#update-4140"><span class="linenos">4140</span></a><span class="sd"> Creates an update statement.</span> -</span><span id="update-4141"><a href="#update-4141"><span class="linenos">4141</span></a> -</span><span id="update-4142"><a href="#update-4142"><span class="linenos">4142</span></a><span class="sd"> Example:</span> -</span><span id="update-4143"><a href="#update-4143"><span class="linenos">4143</span></a><span class="sd"> >>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql()</span> -</span><span id="update-4144"><a href="#update-4144"><span class="linenos">4144</span></a><span class="sd"> "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"</span> -</span><span id="update-4145"><a href="#update-4145"><span class="linenos">4145</span></a> -</span><span id="update-4146"><a href="#update-4146"><span class="linenos">4146</span></a><span class="sd"> Args:</span> -</span><span id="update-4147"><a href="#update-4147"><span class="linenos">4147</span></a><span class="sd"> *properties (Dict[str, Any]): dictionary of properties to set which are</span> -</span><span id="update-4148"><a href="#update-4148"><span class="linenos">4148</span></a><span class="sd"> auto converted to sql objects eg None -> NULL</span> -</span><span id="update-4149"><a href="#update-4149"><span class="linenos">4149</span></a><span class="sd"> where (str): sql conditional parsed into a WHERE statement</span> -</span><span id="update-4150"><a href="#update-4150"><span class="linenos">4150</span></a><span class="sd"> from_ (str): sql statement parsed into a FROM statement</span> -</span><span id="update-4151"><a href="#update-4151"><span class="linenos">4151</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="update-4152"><a href="#update-4152"><span class="linenos">4152</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="update-4153"><a href="#update-4153"><span class="linenos">4153</span></a> -</span><span id="update-4154"><a href="#update-4154"><span class="linenos">4154</span></a><span class="sd"> Returns:</span> -</span><span id="update-4155"><a href="#update-4155"><span class="linenos">4155</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span> -</span><span id="update-4156"><a href="#update-4156"><span class="linenos">4156</span></a><span class="sd"> """</span> -</span><span id="update-4157"><a href="#update-4157"><span class="linenos">4157</span></a> <span class="n">update</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span> -</span><span id="update-4158"><a href="#update-4158"><span class="linenos">4158</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="update-4159"><a href="#update-4159"><span class="linenos">4159</span></a> <span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="update-4160"><a href="#update-4160"><span class="linenos">4160</span></a> <span class="p">[</span> -</span><span id="update-4161"><a href="#update-4161"><span class="linenos">4161</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span> -</span><span id="update-4162"><a href="#update-4162"><span class="linenos">4162</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="update-4163"><a href="#update-4163"><span class="linenos">4163</span></a> <span class="p">],</span> -</span><span id="update-4164"><a href="#update-4164"><span class="linenos">4164</span></a> <span class="p">)</span> -</span><span id="update-4165"><a href="#update-4165"><span class="linenos">4165</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> -</span><span id="update-4166"><a href="#update-4166"><span class="linenos">4166</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="update-4167"><a href="#update-4167"><span class="linenos">4167</span></a> <span class="s2">"from"</span><span class="p">,</span> -</span><span id="update-4168"><a href="#update-4168"><span class="linenos">4168</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="update-4169"><a href="#update-4169"><span class="linenos">4169</span></a> <span class="p">)</span> -</span><span id="update-4170"><a href="#update-4170"><span class="linenos">4170</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> -</span><span id="update-4171"><a href="#update-4171"><span class="linenos">4171</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> -</span><span id="update-4172"><a href="#update-4172"><span class="linenos">4172</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span> -</span><span id="update-4173"><a href="#update-4173"><span class="linenos">4173</span></a> <span class="n">update</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="update-4174"><a href="#update-4174"><span class="linenos">4174</span></a> <span class="s2">"where"</span><span class="p">,</span> -</span><span id="update-4175"><a href="#update-4175"><span class="linenos">4175</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WHERE"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="update-4176"><a href="#update-4176"><span class="linenos">4176</span></a> <span class="p">)</span> -</span><span id="update-4177"><a href="#update-4177"><span class="linenos">4177</span></a> <span class="k">return</span> <span class="n">update</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="update-4260"><a href="#update-4260"><span class="linenos">4260</span></a><span class="k">def</span> <span class="nf">update</span><span class="p">(</span> +</span><span id="update-4261"><a href="#update-4261"><span class="linenos">4261</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> +</span><span id="update-4262"><a href="#update-4262"><span class="linenos">4262</span></a> <span class="n">properties</span><span class="p">:</span> <span class="nb">dict</span><span class="p">,</span> +</span><span id="update-4263"><a href="#update-4263"><span class="linenos">4263</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="update-4264"><a href="#update-4264"><span class="linenos">4264</span></a> <span class="n">from_</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="update-4265"><a href="#update-4265"><span class="linenos">4265</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="update-4266"><a href="#update-4266"><span class="linenos">4266</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="update-4267"><a href="#update-4267"><span class="linenos">4267</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Update</span><span class="p">:</span> +</span><span id="update-4268"><a href="#update-4268"><span class="linenos">4268</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="update-4269"><a href="#update-4269"><span class="linenos">4269</span></a><span class="sd"> Creates an update statement.</span> +</span><span id="update-4270"><a href="#update-4270"><span class="linenos">4270</span></a> +</span><span id="update-4271"><a href="#update-4271"><span class="linenos">4271</span></a><span class="sd"> Example:</span> +</span><span id="update-4272"><a href="#update-4272"><span class="linenos">4272</span></a><span class="sd"> >>> update("my_table", {"x": 1, "y": "2", "z": None}, from_="baz", where="id > 1").sql()</span> +</span><span id="update-4273"><a href="#update-4273"><span class="linenos">4273</span></a><span class="sd"> "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1"</span> +</span><span id="update-4274"><a href="#update-4274"><span class="linenos">4274</span></a> +</span><span id="update-4275"><a href="#update-4275"><span class="linenos">4275</span></a><span class="sd"> Args:</span> +</span><span id="update-4276"><a href="#update-4276"><span class="linenos">4276</span></a><span class="sd"> *properties: dictionary of properties to set which are</span> +</span><span id="update-4277"><a href="#update-4277"><span class="linenos">4277</span></a><span class="sd"> auto converted to sql objects eg None -> NULL</span> +</span><span id="update-4278"><a href="#update-4278"><span class="linenos">4278</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span> +</span><span id="update-4279"><a href="#update-4279"><span class="linenos">4279</span></a><span class="sd"> from_: sql statement parsed into a FROM statement</span> +</span><span id="update-4280"><a href="#update-4280"><span class="linenos">4280</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="update-4281"><a href="#update-4281"><span class="linenos">4281</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="update-4282"><a href="#update-4282"><span class="linenos">4282</span></a> +</span><span id="update-4283"><a href="#update-4283"><span class="linenos">4283</span></a><span class="sd"> Returns:</span> +</span><span id="update-4284"><a href="#update-4284"><span class="linenos">4284</span></a><span class="sd"> Update: the syntax tree for the UPDATE statement.</span> +</span><span id="update-4285"><a href="#update-4285"><span class="linenos">4285</span></a><span class="sd"> """</span> +</span><span id="update-4286"><a href="#update-4286"><span class="linenos">4286</span></a> <span class="n">update_expr</span> <span class="o">=</span> <span class="n">Update</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">))</span> +</span><span id="update-4287"><a href="#update-4287"><span class="linenos">4287</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="update-4288"><a href="#update-4288"><span class="linenos">4288</span></a> <span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="update-4289"><a href="#update-4289"><span class="linenos">4289</span></a> <span class="p">[</span> +</span><span id="update-4290"><a href="#update-4290"><span class="linenos">4290</span></a> <span class="n">EQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">k</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> <span class="n">expression</span><span class="o">=</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">))</span> +</span><span id="update-4291"><a href="#update-4291"><span class="linenos">4291</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="update-4292"><a href="#update-4292"><span class="linenos">4292</span></a> <span class="p">],</span> +</span><span id="update-4293"><a href="#update-4293"><span class="linenos">4293</span></a> <span class="p">)</span> +</span><span id="update-4294"><a href="#update-4294"><span class="linenos">4294</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> +</span><span id="update-4295"><a href="#update-4295"><span class="linenos">4295</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="update-4296"><a href="#update-4296"><span class="linenos">4296</span></a> <span class="s2">"from"</span><span class="p">,</span> +</span><span id="update-4297"><a href="#update-4297"><span class="linenos">4297</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">from_</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">From</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"FROM"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> +</span><span id="update-4298"><a href="#update-4298"><span class="linenos">4298</span></a> <span class="p">)</span> +</span><span id="update-4299"><a href="#update-4299"><span class="linenos">4299</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">):</span> +</span><span id="update-4300"><a href="#update-4300"><span class="linenos">4300</span></a> <span class="n">where</span> <span class="o">=</span> <span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> +</span><span id="update-4301"><a href="#update-4301"><span class="linenos">4301</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span> +</span><span id="update-4302"><a href="#update-4302"><span class="linenos">4302</span></a> <span class="n">update_expr</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="update-4303"><a href="#update-4303"><span class="linenos">4303</span></a> <span class="s2">"where"</span><span class="p">,</span> +</span><span id="update-4304"><a href="#update-4304"><span class="linenos">4304</span></a> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WHERE"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> +</span><span id="update-4305"><a href="#update-4305"><span class="linenos">4305</span></a> <span class="p">)</span> +</span><span id="update-4306"><a href="#update-4306"><span class="linenos">4306</span></a> <span class="k">return</span> <span class="n">update_expr</span> </span></pre></div> @@ -41229,11 +41919,11 @@ that the input expression is a SQL string).</li> <h6 id="arguments">Arguments:</h6> <ul> -<li><strong>*properties (Dict[str, Any]):</strong> dictionary of properties to set which are +<li><strong>*properties:</strong> dictionary of properties to set which are auto converted to sql objects eg None -> NULL</li> -<li><strong>where (str):</strong> sql conditional parsed into a WHERE statement</li> -<li><strong>from_ (str):</strong> sql statement parsed into a FROM statement</li> -<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li> +<li><strong>where:</strong> sql conditional parsed into a WHERE statement</li> +<li><strong>from_:</strong> sql statement parsed into a FROM statement</li> +<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li> <li><strong>**opts:</strong> other options to use to parse the input expressions.</li> </ul> @@ -41251,34 +41941,41 @@ auto converted to sql objects eg None -> NULL</li> <div class="attr function"> <span class="def">def</span> - <span class="name">delete</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">table</span>, </span><span class="param"><span class="n">where</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="n">dialect</span><span class="o">=</span><span class="kc">None</span>, </span><span class="param"><span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span> + <span class="name">delete</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">where</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">returning</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Delete">sqlglot.expressions.Delete</a></span>:</span></span> <label class="view-source-button" for="delete-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#delete"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4180"><a href="#delete-4180"><span class="linenos">4180</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> -</span><span id="delete-4181"><a href="#delete-4181"><span class="linenos">4181</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="delete-4182"><a href="#delete-4182"><span class="linenos">4182</span></a><span class="sd"> Builds a delete statement.</span> -</span><span id="delete-4183"><a href="#delete-4183"><span class="linenos">4183</span></a> -</span><span id="delete-4184"><a href="#delete-4184"><span class="linenos">4184</span></a><span class="sd"> Example:</span> -</span><span id="delete-4185"><a href="#delete-4185"><span class="linenos">4185</span></a><span class="sd"> >>> delete("my_table", where="id > 1").sql()</span> -</span><span id="delete-4186"><a href="#delete-4186"><span class="linenos">4186</span></a><span class="sd"> 'DELETE FROM my_table WHERE id > 1'</span> -</span><span id="delete-4187"><a href="#delete-4187"><span class="linenos">4187</span></a> -</span><span id="delete-4188"><a href="#delete-4188"><span class="linenos">4188</span></a><span class="sd"> Args:</span> -</span><span id="delete-4189"><a href="#delete-4189"><span class="linenos">4189</span></a><span class="sd"> where (str|Condition): sql conditional parsed into a WHERE statement</span> -</span><span id="delete-4190"><a href="#delete-4190"><span class="linenos">4190</span></a><span class="sd"> dialect (str): the dialect used to parse the input expressions.</span> -</span><span id="delete-4191"><a href="#delete-4191"><span class="linenos">4191</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="delete-4192"><a href="#delete-4192"><span class="linenos">4192</span></a> -</span><span id="delete-4193"><a href="#delete-4193"><span class="linenos">4193</span></a><span class="sd"> Returns:</span> -</span><span id="delete-4194"><a href="#delete-4194"><span class="linenos">4194</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span> -</span><span id="delete-4195"><a href="#delete-4195"><span class="linenos">4195</span></a><span class="sd"> """</span> -</span><span id="delete-4196"><a href="#delete-4196"><span class="linenos">4196</span></a> <span class="k">return</span> <span class="n">Delete</span><span class="p">(</span> -</span><span id="delete-4197"><a href="#delete-4197"><span class="linenos">4197</span></a> <span class="n">this</span><span class="o">=</span><span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="delete-4198"><a href="#delete-4198"><span class="linenos">4198</span></a> <span class="n">where</span><span class="o">=</span><span class="n">Where</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> -</span><span id="delete-4199"><a href="#delete-4199"><span class="linenos">4199</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">Condition</span><span class="p">)</span> -</span><span id="delete-4200"><a href="#delete-4200"><span class="linenos">4200</span></a> <span class="k">else</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"WHERE"</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">),</span> -</span><span id="delete-4201"><a href="#delete-4201"><span class="linenos">4201</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="delete-4309"><a href="#delete-4309"><span class="linenos">4309</span></a><span class="k">def</span> <span class="nf">delete</span><span class="p">(</span> +</span><span id="delete-4310"><a href="#delete-4310"><span class="linenos">4310</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="delete-4311"><a href="#delete-4311"><span class="linenos">4311</span></a> <span class="n">where</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="delete-4312"><a href="#delete-4312"><span class="linenos">4312</span></a> <span class="n">returning</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="delete-4313"><a href="#delete-4313"><span class="linenos">4313</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="delete-4314"><a href="#delete-4314"><span class="linenos">4314</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="delete-4315"><a href="#delete-4315"><span class="linenos">4315</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Delete</span><span class="p">:</span> +</span><span id="delete-4316"><a href="#delete-4316"><span class="linenos">4316</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="delete-4317"><a href="#delete-4317"><span class="linenos">4317</span></a><span class="sd"> Builds a delete statement.</span> +</span><span id="delete-4318"><a href="#delete-4318"><span class="linenos">4318</span></a> +</span><span id="delete-4319"><a href="#delete-4319"><span class="linenos">4319</span></a><span class="sd"> Example:</span> +</span><span id="delete-4320"><a href="#delete-4320"><span class="linenos">4320</span></a><span class="sd"> >>> delete("my_table", where="id > 1").sql()</span> +</span><span id="delete-4321"><a href="#delete-4321"><span class="linenos">4321</span></a><span class="sd"> 'DELETE FROM my_table WHERE id > 1'</span> +</span><span id="delete-4322"><a href="#delete-4322"><span class="linenos">4322</span></a> +</span><span id="delete-4323"><a href="#delete-4323"><span class="linenos">4323</span></a><span class="sd"> Args:</span> +</span><span id="delete-4324"><a href="#delete-4324"><span class="linenos">4324</span></a><span class="sd"> where: sql conditional parsed into a WHERE statement</span> +</span><span id="delete-4325"><a href="#delete-4325"><span class="linenos">4325</span></a><span class="sd"> returning: sql conditional parsed into a RETURNING statement</span> +</span><span id="delete-4326"><a href="#delete-4326"><span class="linenos">4326</span></a><span class="sd"> dialect: the dialect used to parse the input expressions.</span> +</span><span id="delete-4327"><a href="#delete-4327"><span class="linenos">4327</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="delete-4328"><a href="#delete-4328"><span class="linenos">4328</span></a> +</span><span id="delete-4329"><a href="#delete-4329"><span class="linenos">4329</span></a><span class="sd"> Returns:</span> +</span><span id="delete-4330"><a href="#delete-4330"><span class="linenos">4330</span></a><span class="sd"> Delete: the syntax tree for the DELETE statement.</span> +</span><span id="delete-4331"><a href="#delete-4331"><span class="linenos">4331</span></a><span class="sd"> """</span> +</span><span id="delete-4332"><a href="#delete-4332"><span class="linenos">4332</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">Delete</span><span class="p">()</span><span class="o">.</span><span class="n">delete</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="delete-4333"><a href="#delete-4333"><span class="linenos">4333</span></a> <span class="k">if</span> <span class="n">where</span><span class="p">:</span> +</span><span id="delete-4334"><a href="#delete-4334"><span class="linenos">4334</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">where</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="delete-4335"><a href="#delete-4335"><span class="linenos">4335</span></a> <span class="k">if</span> <span class="n">returning</span><span class="p">:</span> +</span><span id="delete-4336"><a href="#delete-4336"><span class="linenos">4336</span></a> <span class="n">delete_expr</span> <span class="o">=</span> <span class="n">delete_expr</span><span class="o">.</span><span class="n">returning</span><span class="p">(</span><span class="n">returning</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="delete-4337"><a href="#delete-4337"><span class="linenos">4337</span></a> <span class="k">return</span> <span class="n">delete_expr</span> </span></pre></div> @@ -41297,8 +41994,9 @@ auto converted to sql objects eg None -> NULL</li> <h6 id="arguments">Arguments:</h6> <ul> -<li><strong>where (str|Condition):</strong> sql conditional parsed into a WHERE statement</li> -<li><strong>dialect (str):</strong> the dialect used to parse the input expressions.</li> +<li><strong>where:</strong> sql conditional parsed into a WHERE statement</li> +<li><strong>returning:</strong> sql conditional parsed into a RETURNING statement</li> +<li><strong>dialect:</strong> the dialect used to parse the input expressions.</li> <li><strong>**opts:</strong> other options to use to parse the input expressions.</li> </ul> @@ -41322,37 +42020,37 @@ auto converted to sql objects eg None -> NULL</li> </div> <a class="headerlink" href="#condition"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="condition-4204"><a href="#condition-4204"><span class="linenos">4204</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Condition</span><span class="p">:</span> -</span><span id="condition-4205"><a href="#condition-4205"><span class="linenos">4205</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="condition-4206"><a href="#condition-4206"><span class="linenos">4206</span></a><span class="sd"> Initialize a logical condition expression.</span> -</span><span id="condition-4207"><a href="#condition-4207"><span class="linenos">4207</span></a> -</span><span id="condition-4208"><a href="#condition-4208"><span class="linenos">4208</span></a><span class="sd"> Example:</span> -</span><span id="condition-4209"><a href="#condition-4209"><span class="linenos">4209</span></a><span class="sd"> >>> condition("x=1").sql()</span> -</span><span id="condition-4210"><a href="#condition-4210"><span class="linenos">4210</span></a><span class="sd"> 'x = 1'</span> -</span><span id="condition-4211"><a href="#condition-4211"><span class="linenos">4211</span></a> -</span><span id="condition-4212"><a href="#condition-4212"><span class="linenos">4212</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span> -</span><span id="condition-4213"><a href="#condition-4213"><span class="linenos">4213</span></a><span class="sd"> >>> where = condition("x=1")</span> -</span><span id="condition-4214"><a href="#condition-4214"><span class="linenos">4214</span></a><span class="sd"> >>> where = where.and_("y=1")</span> -</span><span id="condition-4215"><a href="#condition-4215"><span class="linenos">4215</span></a><span class="sd"> >>> Select().from_("tbl").select("*").where(where).sql()</span> -</span><span id="condition-4216"><a href="#condition-4216"><span class="linenos">4216</span></a><span class="sd"> 'SELECT * FROM tbl WHERE x = 1 AND y = 1'</span> -</span><span id="condition-4217"><a href="#condition-4217"><span class="linenos">4217</span></a> -</span><span id="condition-4218"><a href="#condition-4218"><span class="linenos">4218</span></a><span class="sd"> Args:</span> -</span><span id="condition-4219"><a href="#condition-4219"><span class="linenos">4219</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span> -</span><span id="condition-4220"><a href="#condition-4220"><span class="linenos">4220</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="condition-4221"><a href="#condition-4221"><span class="linenos">4221</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> -</span><span id="condition-4222"><a href="#condition-4222"><span class="linenos">4222</span></a><span class="sd"> input expression is a SQL string).</span> -</span><span id="condition-4223"><a href="#condition-4223"><span class="linenos">4223</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> -</span><span id="condition-4224"><a href="#condition-4224"><span class="linenos">4224</span></a><span class="sd"> that the input expression is a SQL string).</span> -</span><span id="condition-4225"><a href="#condition-4225"><span class="linenos">4225</span></a> -</span><span id="condition-4226"><a href="#condition-4226"><span class="linenos">4226</span></a><span class="sd"> Returns:</span> -</span><span id="condition-4227"><a href="#condition-4227"><span class="linenos">4227</span></a><span class="sd"> Condition: the expression</span> -</span><span id="condition-4228"><a href="#condition-4228"><span class="linenos">4228</span></a><span class="sd"> """</span> -</span><span id="condition-4229"><a href="#condition-4229"><span class="linenos">4229</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span> -</span><span id="condition-4230"><a href="#condition-4230"><span class="linenos">4230</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="condition-4231"><a href="#condition-4231"><span class="linenos">4231</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span> -</span><span id="condition-4232"><a href="#condition-4232"><span class="linenos">4232</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="condition-4233"><a href="#condition-4233"><span class="linenos">4233</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="condition-4234"><a href="#condition-4234"><span class="linenos">4234</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="condition-4340"><a href="#condition-4340"><span class="linenos">4340</span></a><span class="k">def</span> <span class="nf">condition</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Condition</span><span class="p">:</span> +</span><span id="condition-4341"><a href="#condition-4341"><span class="linenos">4341</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="condition-4342"><a href="#condition-4342"><span class="linenos">4342</span></a><span class="sd"> Initialize a logical condition expression.</span> +</span><span id="condition-4343"><a href="#condition-4343"><span class="linenos">4343</span></a> +</span><span id="condition-4344"><a href="#condition-4344"><span class="linenos">4344</span></a><span class="sd"> Example:</span> +</span><span id="condition-4345"><a href="#condition-4345"><span class="linenos">4345</span></a><span class="sd"> >>> condition("x=1").sql()</span> +</span><span id="condition-4346"><a href="#condition-4346"><span class="linenos">4346</span></a><span class="sd"> 'x = 1'</span> +</span><span id="condition-4347"><a href="#condition-4347"><span class="linenos">4347</span></a> +</span><span id="condition-4348"><a href="#condition-4348"><span class="linenos">4348</span></a><span class="sd"> This is helpful for composing larger logical syntax trees:</span> +</span><span id="condition-4349"><a href="#condition-4349"><span class="linenos">4349</span></a><span class="sd"> >>> where = condition("x=1")</span> +</span><span id="condition-4350"><a href="#condition-4350"><span class="linenos">4350</span></a><span class="sd"> >>> where = where.and_("y=1")</span> +</span><span id="condition-4351"><a href="#condition-4351"><span class="linenos">4351</span></a><span class="sd"> >>> Select().from_("tbl").select("*").where(where).sql()</span> +</span><span id="condition-4352"><a href="#condition-4352"><span class="linenos">4352</span></a><span class="sd"> 'SELECT * FROM tbl WHERE x = 1 AND y = 1'</span> +</span><span id="condition-4353"><a href="#condition-4353"><span class="linenos">4353</span></a> +</span><span id="condition-4354"><a href="#condition-4354"><span class="linenos">4354</span></a><span class="sd"> Args:</span> +</span><span id="condition-4355"><a href="#condition-4355"><span class="linenos">4355</span></a><span class="sd"> *expression (str | Expression): the SQL code string to parse.</span> +</span><span id="condition-4356"><a href="#condition-4356"><span class="linenos">4356</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="condition-4357"><a href="#condition-4357"><span class="linenos">4357</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression (in the case that the</span> +</span><span id="condition-4358"><a href="#condition-4358"><span class="linenos">4358</span></a><span class="sd"> input expression is a SQL string).</span> +</span><span id="condition-4359"><a href="#condition-4359"><span class="linenos">4359</span></a><span class="sd"> **opts: other options to use to parse the input expressions (again, in the case</span> +</span><span id="condition-4360"><a href="#condition-4360"><span class="linenos">4360</span></a><span class="sd"> that the input expression is a SQL string).</span> +</span><span id="condition-4361"><a href="#condition-4361"><span class="linenos">4361</span></a> +</span><span id="condition-4362"><a href="#condition-4362"><span class="linenos">4362</span></a><span class="sd"> Returns:</span> +</span><span id="condition-4363"><a href="#condition-4363"><span class="linenos">4363</span></a><span class="sd"> Condition: the expression</span> +</span><span id="condition-4364"><a href="#condition-4364"><span class="linenos">4364</span></a><span class="sd"> """</span> +</span><span id="condition-4365"><a href="#condition-4365"><span class="linenos">4365</span></a> <span class="k">return</span> <span class="n">maybe_parse</span><span class="p">(</span> <span class="c1"># type: ignore</span> +</span><span id="condition-4366"><a href="#condition-4366"><span class="linenos">4366</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="condition-4367"><a href="#condition-4367"><span class="linenos">4367</span></a> <span class="n">into</span><span class="o">=</span><span class="n">Condition</span><span class="p">,</span> +</span><span id="condition-4368"><a href="#condition-4368"><span class="linenos">4368</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="condition-4369"><a href="#condition-4369"><span class="linenos">4369</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="condition-4370"><a href="#condition-4370"><span class="linenos">4370</span></a> <span class="p">)</span> </span></pre></div> @@ -41409,24 +42107,24 @@ that the input expression is a SQL string).</li> </div> <a class="headerlink" href="#and_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="and_-4237"><a href="#and_-4237"><span class="linenos">4237</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">And</span><span class="p">:</span> -</span><span id="and_-4238"><a href="#and_-4238"><span class="linenos">4238</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="and_-4239"><a href="#and_-4239"><span class="linenos">4239</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span> -</span><span id="and_-4240"><a href="#and_-4240"><span class="linenos">4240</span></a> -</span><span id="and_-4241"><a href="#and_-4241"><span class="linenos">4241</span></a><span class="sd"> Example:</span> -</span><span id="and_-4242"><a href="#and_-4242"><span class="linenos">4242</span></a><span class="sd"> >>> and_("x=1", and_("y=1", "z=1")).sql()</span> -</span><span id="and_-4243"><a href="#and_-4243"><span class="linenos">4243</span></a><span class="sd"> 'x = 1 AND (y = 1 AND z = 1)'</span> -</span><span id="and_-4244"><a href="#and_-4244"><span class="linenos">4244</span></a> -</span><span id="and_-4245"><a href="#and_-4245"><span class="linenos">4245</span></a><span class="sd"> Args:</span> -</span><span id="and_-4246"><a href="#and_-4246"><span class="linenos">4246</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="and_-4247"><a href="#and_-4247"><span class="linenos">4247</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="and_-4248"><a href="#and_-4248"><span class="linenos">4248</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="and_-4249"><a href="#and_-4249"><span class="linenos">4249</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="and_-4250"><a href="#and_-4250"><span class="linenos">4250</span></a> -</span><span id="and_-4251"><a href="#and_-4251"><span class="linenos">4251</span></a><span class="sd"> Returns:</span> -</span><span id="and_-4252"><a href="#and_-4252"><span class="linenos">4252</span></a><span class="sd"> And: the new condition</span> -</span><span id="and_-4253"><a href="#and_-4253"><span class="linenos">4253</span></a><span class="sd"> """</span> -</span><span id="and_-4254"><a href="#and_-4254"><span class="linenos">4254</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="and_-4373"><a href="#and_-4373"><span class="linenos">4373</span></a><span class="k">def</span> <span class="nf">and_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">And</span><span class="p">:</span> +</span><span id="and_-4374"><a href="#and_-4374"><span class="linenos">4374</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="and_-4375"><a href="#and_-4375"><span class="linenos">4375</span></a><span class="sd"> Combine multiple conditions with an AND logical operator.</span> +</span><span id="and_-4376"><a href="#and_-4376"><span class="linenos">4376</span></a> +</span><span id="and_-4377"><a href="#and_-4377"><span class="linenos">4377</span></a><span class="sd"> Example:</span> +</span><span id="and_-4378"><a href="#and_-4378"><span class="linenos">4378</span></a><span class="sd"> >>> and_("x=1", and_("y=1", "z=1")).sql()</span> +</span><span id="and_-4379"><a href="#and_-4379"><span class="linenos">4379</span></a><span class="sd"> 'x = 1 AND (y = 1 AND z = 1)'</span> +</span><span id="and_-4380"><a href="#and_-4380"><span class="linenos">4380</span></a> +</span><span id="and_-4381"><a href="#and_-4381"><span class="linenos">4381</span></a><span class="sd"> Args:</span> +</span><span id="and_-4382"><a href="#and_-4382"><span class="linenos">4382</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="and_-4383"><a href="#and_-4383"><span class="linenos">4383</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="and_-4384"><a href="#and_-4384"><span class="linenos">4384</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="and_-4385"><a href="#and_-4385"><span class="linenos">4385</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="and_-4386"><a href="#and_-4386"><span class="linenos">4386</span></a> +</span><span id="and_-4387"><a href="#and_-4387"><span class="linenos">4387</span></a><span class="sd"> Returns:</span> +</span><span id="and_-4388"><a href="#and_-4388"><span class="linenos">4388</span></a><span class="sd"> And: the new condition</span> +</span><span id="and_-4389"><a href="#and_-4389"><span class="linenos">4389</span></a><span class="sd"> """</span> +</span><span id="and_-4390"><a href="#and_-4390"><span class="linenos">4390</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">And</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -41471,24 +42169,24 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#or_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="or_-4257"><a href="#or_-4257"><span class="linenos">4257</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Or</span><span class="p">:</span> -</span><span id="or_-4258"><a href="#or_-4258"><span class="linenos">4258</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="or_-4259"><a href="#or_-4259"><span class="linenos">4259</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span> -</span><span id="or_-4260"><a href="#or_-4260"><span class="linenos">4260</span></a> -</span><span id="or_-4261"><a href="#or_-4261"><span class="linenos">4261</span></a><span class="sd"> Example:</span> -</span><span id="or_-4262"><a href="#or_-4262"><span class="linenos">4262</span></a><span class="sd"> >>> or_("x=1", or_("y=1", "z=1")).sql()</span> -</span><span id="or_-4263"><a href="#or_-4263"><span class="linenos">4263</span></a><span class="sd"> 'x = 1 OR (y = 1 OR z = 1)'</span> -</span><span id="or_-4264"><a href="#or_-4264"><span class="linenos">4264</span></a> -</span><span id="or_-4265"><a href="#or_-4265"><span class="linenos">4265</span></a><span class="sd"> Args:</span> -</span><span id="or_-4266"><a href="#or_-4266"><span class="linenos">4266</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> -</span><span id="or_-4267"><a href="#or_-4267"><span class="linenos">4267</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="or_-4268"><a href="#or_-4268"><span class="linenos">4268</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="or_-4269"><a href="#or_-4269"><span class="linenos">4269</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="or_-4270"><a href="#or_-4270"><span class="linenos">4270</span></a> -</span><span id="or_-4271"><a href="#or_-4271"><span class="linenos">4271</span></a><span class="sd"> Returns:</span> -</span><span id="or_-4272"><a href="#or_-4272"><span class="linenos">4272</span></a><span class="sd"> Or: the new condition</span> -</span><span id="or_-4273"><a href="#or_-4273"><span class="linenos">4273</span></a><span class="sd"> """</span> -</span><span id="or_-4274"><a href="#or_-4274"><span class="linenos">4274</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="or_-4393"><a href="#or_-4393"><span class="linenos">4393</span></a><span class="k">def</span> <span class="nf">or_</span><span class="p">(</span><span class="o">*</span><span class="n">expressions</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Or</span><span class="p">:</span> +</span><span id="or_-4394"><a href="#or_-4394"><span class="linenos">4394</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="or_-4395"><a href="#or_-4395"><span class="linenos">4395</span></a><span class="sd"> Combine multiple conditions with an OR logical operator.</span> +</span><span id="or_-4396"><a href="#or_-4396"><span class="linenos">4396</span></a> +</span><span id="or_-4397"><a href="#or_-4397"><span class="linenos">4397</span></a><span class="sd"> Example:</span> +</span><span id="or_-4398"><a href="#or_-4398"><span class="linenos">4398</span></a><span class="sd"> >>> or_("x=1", or_("y=1", "z=1")).sql()</span> +</span><span id="or_-4399"><a href="#or_-4399"><span class="linenos">4399</span></a><span class="sd"> 'x = 1 OR (y = 1 OR z = 1)'</span> +</span><span id="or_-4400"><a href="#or_-4400"><span class="linenos">4400</span></a> +</span><span id="or_-4401"><a href="#or_-4401"><span class="linenos">4401</span></a><span class="sd"> Args:</span> +</span><span id="or_-4402"><a href="#or_-4402"><span class="linenos">4402</span></a><span class="sd"> *expressions (str | Expression): the SQL code strings to parse.</span> +</span><span id="or_-4403"><a href="#or_-4403"><span class="linenos">4403</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="or_-4404"><a href="#or_-4404"><span class="linenos">4404</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="or_-4405"><a href="#or_-4405"><span class="linenos">4405</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="or_-4406"><a href="#or_-4406"><span class="linenos">4406</span></a> +</span><span id="or_-4407"><a href="#or_-4407"><span class="linenos">4407</span></a><span class="sd"> Returns:</span> +</span><span id="or_-4408"><a href="#or_-4408"><span class="linenos">4408</span></a><span class="sd"> Or: the new condition</span> +</span><span id="or_-4409"><a href="#or_-4409"><span class="linenos">4409</span></a><span class="sd"> """</span> +</span><span id="or_-4410"><a href="#or_-4410"><span class="linenos">4410</span></a> <span class="k">return</span> <span class="n">_combine</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="n">Or</span><span class="p">,</span> <span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -41533,29 +42231,29 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#not_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="not_-4277"><a href="#not_-4277"><span class="linenos">4277</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Not</span><span class="p">:</span> -</span><span id="not_-4278"><a href="#not_-4278"><span class="linenos">4278</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="not_-4279"><a href="#not_-4279"><span class="linenos">4279</span></a><span class="sd"> Wrap a condition with a NOT operator.</span> -</span><span id="not_-4280"><a href="#not_-4280"><span class="linenos">4280</span></a> -</span><span id="not_-4281"><a href="#not_-4281"><span class="linenos">4281</span></a><span class="sd"> Example:</span> -</span><span id="not_-4282"><a href="#not_-4282"><span class="linenos">4282</span></a><span class="sd"> >>> not_("this_suit='black'").sql()</span> -</span><span id="not_-4283"><a href="#not_-4283"><span class="linenos">4283</span></a><span class="sd"> "NOT this_suit = 'black'"</span> -</span><span id="not_-4284"><a href="#not_-4284"><span class="linenos">4284</span></a> -</span><span id="not_-4285"><a href="#not_-4285"><span class="linenos">4285</span></a><span class="sd"> Args:</span> -</span><span id="not_-4286"><a href="#not_-4286"><span class="linenos">4286</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> -</span><span id="not_-4287"><a href="#not_-4287"><span class="linenos">4287</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="not_-4288"><a href="#not_-4288"><span class="linenos">4288</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="not_-4289"><a href="#not_-4289"><span class="linenos">4289</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="not_-4290"><a href="#not_-4290"><span class="linenos">4290</span></a> -</span><span id="not_-4291"><a href="#not_-4291"><span class="linenos">4291</span></a><span class="sd"> Returns:</span> -</span><span id="not_-4292"><a href="#not_-4292"><span class="linenos">4292</span></a><span class="sd"> Not: the new condition</span> -</span><span id="not_-4293"><a href="#not_-4293"><span class="linenos">4293</span></a><span class="sd"> """</span> -</span><span id="not_-4294"><a href="#not_-4294"><span class="linenos">4294</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span> -</span><span id="not_-4295"><a href="#not_-4295"><span class="linenos">4295</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="not_-4296"><a href="#not_-4296"><span class="linenos">4296</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> -</span><span id="not_-4297"><a href="#not_-4297"><span class="linenos">4297</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="not_-4298"><a href="#not_-4298"><span class="linenos">4298</span></a> <span class="p">)</span> -</span><span id="not_-4299"><a href="#not_-4299"><span class="linenos">4299</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="not_-4413"><a href="#not_-4413"><span class="linenos">4413</span></a><span class="k">def</span> <span class="nf">not_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Not</span><span class="p">:</span> +</span><span id="not_-4414"><a href="#not_-4414"><span class="linenos">4414</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="not_-4415"><a href="#not_-4415"><span class="linenos">4415</span></a><span class="sd"> Wrap a condition with a NOT operator.</span> +</span><span id="not_-4416"><a href="#not_-4416"><span class="linenos">4416</span></a> +</span><span id="not_-4417"><a href="#not_-4417"><span class="linenos">4417</span></a><span class="sd"> Example:</span> +</span><span id="not_-4418"><a href="#not_-4418"><span class="linenos">4418</span></a><span class="sd"> >>> not_("this_suit='black'").sql()</span> +</span><span id="not_-4419"><a href="#not_-4419"><span class="linenos">4419</span></a><span class="sd"> "NOT this_suit = 'black'"</span> +</span><span id="not_-4420"><a href="#not_-4420"><span class="linenos">4420</span></a> +</span><span id="not_-4421"><a href="#not_-4421"><span class="linenos">4421</span></a><span class="sd"> Args:</span> +</span><span id="not_-4422"><a href="#not_-4422"><span class="linenos">4422</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> +</span><span id="not_-4423"><a href="#not_-4423"><span class="linenos">4423</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="not_-4424"><a href="#not_-4424"><span class="linenos">4424</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="not_-4425"><a href="#not_-4425"><span class="linenos">4425</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="not_-4426"><a href="#not_-4426"><span class="linenos">4426</span></a> +</span><span id="not_-4427"><a href="#not_-4427"><span class="linenos">4427</span></a><span class="sd"> Returns:</span> +</span><span id="not_-4428"><a href="#not_-4428"><span class="linenos">4428</span></a><span class="sd"> Not: the new condition</span> +</span><span id="not_-4429"><a href="#not_-4429"><span class="linenos">4429</span></a><span class="sd"> """</span> +</span><span id="not_-4430"><a href="#not_-4430"><span class="linenos">4430</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">condition</span><span class="p">(</span> +</span><span id="not_-4431"><a href="#not_-4431"><span class="linenos">4431</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="not_-4432"><a href="#not_-4432"><span class="linenos">4432</span></a> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> +</span><span id="not_-4433"><a href="#not_-4433"><span class="linenos">4433</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="not_-4434"><a href="#not_-4434"><span class="linenos">4434</span></a> <span class="p">)</span> +</span><span id="not_-4435"><a href="#not_-4435"><span class="linenos">4435</span></a> <span class="k">return</span> <span class="n">Not</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">_wrap_operator</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> </span></pre></div> @@ -41600,8 +42298,8 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#paren"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="paren-4302"><a href="#paren-4302"><span class="linenos">4302</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">Paren</span><span class="p">:</span> -</span><span id="paren-4303"><a href="#paren-4303"><span class="linenos">4303</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="paren-4438"><a href="#paren-4438"><span class="linenos">4438</span></a><span class="k">def</span> <span class="nf">paren</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">Paren</span><span class="p">:</span> +</span><span id="paren-4439"><a href="#paren-4439"><span class="linenos">4439</span></a> <span class="k">return</span> <span class="n">Paren</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -41619,30 +42317,30 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#to_identifier"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-4319"><a href="#to_identifier-4319"><span class="linenos">4319</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="to_identifier-4320"><a href="#to_identifier-4320"><span class="linenos">4320</span></a><span class="w"> </span><span class="sd">"""Builds an identifier.</span> -</span><span id="to_identifier-4321"><a href="#to_identifier-4321"><span class="linenos">4321</span></a> -</span><span id="to_identifier-4322"><a href="#to_identifier-4322"><span class="linenos">4322</span></a><span class="sd"> Args:</span> -</span><span id="to_identifier-4323"><a href="#to_identifier-4323"><span class="linenos">4323</span></a><span class="sd"> name: The name to turn into an identifier.</span> -</span><span id="to_identifier-4324"><a href="#to_identifier-4324"><span class="linenos">4324</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span> -</span><span id="to_identifier-4325"><a href="#to_identifier-4325"><span class="linenos">4325</span></a> -</span><span id="to_identifier-4326"><a href="#to_identifier-4326"><span class="linenos">4326</span></a><span class="sd"> Returns:</span> -</span><span id="to_identifier-4327"><a href="#to_identifier-4327"><span class="linenos">4327</span></a><span class="sd"> The identifier ast node.</span> -</span><span id="to_identifier-4328"><a href="#to_identifier-4328"><span class="linenos">4328</span></a><span class="sd"> """</span> -</span><span id="to_identifier-4329"><a href="#to_identifier-4329"><span class="linenos">4329</span></a> -</span><span id="to_identifier-4330"><a href="#to_identifier-4330"><span class="linenos">4330</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="to_identifier-4331"><a href="#to_identifier-4331"><span class="linenos">4331</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="to_identifier-4332"><a href="#to_identifier-4332"><span class="linenos">4332</span></a> -</span><span id="to_identifier-4333"><a href="#to_identifier-4333"><span class="linenos">4333</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span> -</span><span id="to_identifier-4334"><a href="#to_identifier-4334"><span class="linenos">4334</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span> -</span><span id="to_identifier-4335"><a href="#to_identifier-4335"><span class="linenos">4335</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="to_identifier-4336"><a href="#to_identifier-4336"><span class="linenos">4336</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span> -</span><span id="to_identifier-4337"><a href="#to_identifier-4337"><span class="linenos">4337</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> -</span><span id="to_identifier-4338"><a href="#to_identifier-4338"><span class="linenos">4338</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span> -</span><span id="to_identifier-4339"><a href="#to_identifier-4339"><span class="linenos">4339</span></a> <span class="p">)</span> -</span><span id="to_identifier-4340"><a href="#to_identifier-4340"><span class="linenos">4340</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="to_identifier-4341"><a href="#to_identifier-4341"><span class="linenos">4341</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="to_identifier-4342"><a href="#to_identifier-4342"><span class="linenos">4342</span></a> <span class="k">return</span> <span class="n">identifier</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="to_identifier-4455"><a href="#to_identifier-4455"><span class="linenos">4455</span></a><span class="k">def</span> <span class="nf">to_identifier</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="to_identifier-4456"><a href="#to_identifier-4456"><span class="linenos">4456</span></a><span class="w"> </span><span class="sd">"""Builds an identifier.</span> +</span><span id="to_identifier-4457"><a href="#to_identifier-4457"><span class="linenos">4457</span></a> +</span><span id="to_identifier-4458"><a href="#to_identifier-4458"><span class="linenos">4458</span></a><span class="sd"> Args:</span> +</span><span id="to_identifier-4459"><a href="#to_identifier-4459"><span class="linenos">4459</span></a><span class="sd"> name: The name to turn into an identifier.</span> +</span><span id="to_identifier-4460"><a href="#to_identifier-4460"><span class="linenos">4460</span></a><span class="sd"> quoted: Whether or not force quote the identifier.</span> +</span><span id="to_identifier-4461"><a href="#to_identifier-4461"><span class="linenos">4461</span></a> +</span><span id="to_identifier-4462"><a href="#to_identifier-4462"><span class="linenos">4462</span></a><span class="sd"> Returns:</span> +</span><span id="to_identifier-4463"><a href="#to_identifier-4463"><span class="linenos">4463</span></a><span class="sd"> The identifier ast node.</span> +</span><span id="to_identifier-4464"><a href="#to_identifier-4464"><span class="linenos">4464</span></a><span class="sd"> """</span> +</span><span id="to_identifier-4465"><a href="#to_identifier-4465"><span class="linenos">4465</span></a> +</span><span id="to_identifier-4466"><a href="#to_identifier-4466"><span class="linenos">4466</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="to_identifier-4467"><a href="#to_identifier-4467"><span class="linenos">4467</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="to_identifier-4468"><a href="#to_identifier-4468"><span class="linenos">4468</span></a> +</span><span id="to_identifier-4469"><a href="#to_identifier-4469"><span class="linenos">4469</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Identifier</span><span class="p">):</span> +</span><span id="to_identifier-4470"><a href="#to_identifier-4470"><span class="linenos">4470</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">name</span> +</span><span id="to_identifier-4471"><a href="#to_identifier-4471"><span class="linenos">4471</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="to_identifier-4472"><a href="#to_identifier-4472"><span class="linenos">4472</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">Identifier</span><span class="p">(</span> +</span><span id="to_identifier-4473"><a href="#to_identifier-4473"><span class="linenos">4473</span></a> <span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> +</span><span id="to_identifier-4474"><a href="#to_identifier-4474"><span class="linenos">4474</span></a> <span class="n">quoted</span><span class="o">=</span><span class="ow">not</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">SAFE_IDENTIFIER_RE</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="k">if</span> <span class="n">quoted</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">quoted</span><span class="p">,</span> +</span><span id="to_identifier-4475"><a href="#to_identifier-4475"><span class="linenos">4475</span></a> <span class="p">)</span> +</span><span id="to_identifier-4476"><a href="#to_identifier-4476"><span class="linenos">4476</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="to_identifier-4477"><a href="#to_identifier-4477"><span class="linenos">4477</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Name needs to be a string or an Identifier, got: </span><span class="si">{</span><span class="n">name</span><span class="o">.</span><span class="vm">__class__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="to_identifier-4478"><a href="#to_identifier-4478"><span class="linenos">4478</span></a> <span class="k">return</span> <span class="n">identifier</span> </span></pre></div> @@ -41675,23 +42373,23 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#to_interval"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-4348"><a href="#to_interval-4348"><span class="linenos">4348</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="n">Interval</span><span class="p">:</span> -</span><span id="to_interval-4349"><a href="#to_interval-4349"><span class="linenos">4349</span></a><span class="w"> </span><span class="sd">"""Builds an interval expression from a string like '1 day' or '5 months'."""</span> -</span><span id="to_interval-4350"><a href="#to_interval-4350"><span class="linenos">4350</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span> -</span><span id="to_interval-4351"><a href="#to_interval-4351"><span class="linenos">4351</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="to_interval-4352"><a href="#to_interval-4352"><span class="linenos">4352</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> -</span><span id="to_interval-4353"><a href="#to_interval-4353"><span class="linenos">4353</span></a> -</span><span id="to_interval-4354"><a href="#to_interval-4354"><span class="linenos">4354</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span> -</span><span id="to_interval-4355"><a href="#to_interval-4355"><span class="linenos">4355</span></a> -</span><span id="to_interval-4356"><a href="#to_interval-4356"><span class="linenos">4356</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="to_interval-4357"><a href="#to_interval-4357"><span class="linenos">4357</span></a> -</span><span id="to_interval-4358"><a href="#to_interval-4358"><span class="linenos">4358</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span> -</span><span id="to_interval-4359"><a href="#to_interval-4359"><span class="linenos">4359</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> -</span><span id="to_interval-4360"><a href="#to_interval-4360"><span class="linenos">4360</span></a> -</span><span id="to_interval-4361"><a href="#to_interval-4361"><span class="linenos">4361</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span> -</span><span id="to_interval-4362"><a href="#to_interval-4362"><span class="linenos">4362</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span> -</span><span id="to_interval-4363"><a href="#to_interval-4363"><span class="linenos">4363</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> -</span><span id="to_interval-4364"><a href="#to_interval-4364"><span class="linenos">4364</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="to_interval-4484"><a href="#to_interval-4484"><span class="linenos">4484</span></a><span class="k">def</span> <span class="nf">to_interval</span><span class="p">(</span><span class="n">interval</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="n">Interval</span><span class="p">:</span> +</span><span id="to_interval-4485"><a href="#to_interval-4485"><span class="linenos">4485</span></a><span class="w"> </span><span class="sd">"""Builds an interval expression from a string like '1 day' or '5 months'."""</span> +</span><span id="to_interval-4486"><a href="#to_interval-4486"><span class="linenos">4486</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">interval</span><span class="p">,</span> <span class="n">Literal</span><span class="p">):</span> +</span><span id="to_interval-4487"><a href="#to_interval-4487"><span class="linenos">4487</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="to_interval-4488"><a href="#to_interval-4488"><span class="linenos">4488</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> +</span><span id="to_interval-4489"><a href="#to_interval-4489"><span class="linenos">4489</span></a> +</span><span id="to_interval-4490"><a href="#to_interval-4490"><span class="linenos">4490</span></a> <span class="n">interval</span> <span class="o">=</span> <span class="n">interval</span><span class="o">.</span><span class="n">this</span> +</span><span id="to_interval-4491"><a href="#to_interval-4491"><span class="linenos">4491</span></a> +</span><span id="to_interval-4492"><a href="#to_interval-4492"><span class="linenos">4492</span></a> <span class="n">interval_parts</span> <span class="o">=</span> <span class="n">INTERVAL_STRING_RE</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="n">interval</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="to_interval-4493"><a href="#to_interval-4493"><span class="linenos">4493</span></a> +</span><span id="to_interval-4494"><a href="#to_interval-4494"><span class="linenos">4494</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">interval_parts</span><span class="p">:</span> +</span><span id="to_interval-4495"><a href="#to_interval-4495"><span class="linenos">4495</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Invalid interval string."</span><span class="p">)</span> +</span><span id="to_interval-4496"><a href="#to_interval-4496"><span class="linenos">4496</span></a> +</span><span id="to_interval-4497"><a href="#to_interval-4497"><span class="linenos">4497</span></a> <span class="k">return</span> <span class="n">Interval</span><span class="p">(</span> +</span><span id="to_interval-4498"><a href="#to_interval-4498"><span class="linenos">4498</span></a> <span class="n">this</span><span class="o">=</span><span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">1</span><span class="p">)),</span> +</span><span id="to_interval-4499"><a href="#to_interval-4499"><span class="linenos">4499</span></a> <span class="n">unit</span><span class="o">=</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">interval_parts</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> +</span><span id="to_interval-4500"><a href="#to_interval-4500"><span class="linenos">4500</span></a> <span class="p">)</span> </span></pre></div> @@ -41711,24 +42409,24 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#to_table"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-4377"><a href="#to_table-4377"><span class="linenos">4377</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</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">Table</span><span class="p">]:</span> -</span><span id="to_table-4378"><a href="#to_table-4378"><span class="linenos">4378</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="to_table-4379"><a href="#to_table-4379"><span class="linenos">4379</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span> -</span><span id="to_table-4380"><a href="#to_table-4380"><span class="linenos">4380</span></a><span class="sd"> If a table is passed in then that table is returned.</span> -</span><span id="to_table-4381"><a href="#to_table-4381"><span class="linenos">4381</span></a> -</span><span id="to_table-4382"><a href="#to_table-4382"><span class="linenos">4382</span></a><span class="sd"> Args:</span> -</span><span id="to_table-4383"><a href="#to_table-4383"><span class="linenos">4383</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span> -</span><span id="to_table-4384"><a href="#to_table-4384"><span class="linenos">4384</span></a> -</span><span id="to_table-4385"><a href="#to_table-4385"><span class="linenos">4385</span></a><span class="sd"> Returns:</span> -</span><span id="to_table-4386"><a href="#to_table-4386"><span class="linenos">4386</span></a><span class="sd"> A table expression.</span> -</span><span id="to_table-4387"><a href="#to_table-4387"><span class="linenos">4387</span></a><span class="sd"> """</span> -</span><span id="to_table-4388"><a href="#to_table-4388"><span class="linenos">4388</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> -</span><span id="to_table-4389"><a href="#to_table-4389"><span class="linenos">4389</span></a> <span class="k">return</span> <span class="n">sql_path</span> -</span><span id="to_table-4390"><a href="#to_table-4390"><span class="linenos">4390</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="to_table-4391"><a href="#to_table-4391"><span class="linenos">4391</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="to_table-4392"><a href="#to_table-4392"><span class="linenos">4392</span></a> -</span><span id="to_table-4393"><a href="#to_table-4393"><span class="linenos">4393</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span> -</span><span id="to_table-4394"><a href="#to_table-4394"><span class="linenos">4394</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="to_table-4513"><a href="#to_table-4513"><span class="linenos">4513</span></a><span class="k">def</span> <span class="nf">to_table</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">],</span> <span class="o">**</span><span class="n">kwargs</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">Table</span><span class="p">]:</span> +</span><span id="to_table-4514"><a href="#to_table-4514"><span class="linenos">4514</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="to_table-4515"><a href="#to_table-4515"><span class="linenos">4515</span></a><span class="sd"> Create a table expression from a `[catalog].[schema].[table]` sql path. Catalog and schema are optional.</span> +</span><span id="to_table-4516"><a href="#to_table-4516"><span class="linenos">4516</span></a><span class="sd"> If a table is passed in then that table is returned.</span> +</span><span id="to_table-4517"><a href="#to_table-4517"><span class="linenos">4517</span></a> +</span><span id="to_table-4518"><a href="#to_table-4518"><span class="linenos">4518</span></a><span class="sd"> Args:</span> +</span><span id="to_table-4519"><a href="#to_table-4519"><span class="linenos">4519</span></a><span class="sd"> sql_path: a `[catalog].[schema].[table]` string.</span> +</span><span id="to_table-4520"><a href="#to_table-4520"><span class="linenos">4520</span></a> +</span><span id="to_table-4521"><a href="#to_table-4521"><span class="linenos">4521</span></a><span class="sd"> Returns:</span> +</span><span id="to_table-4522"><a href="#to_table-4522"><span class="linenos">4522</span></a><span class="sd"> A table expression.</span> +</span><span id="to_table-4523"><a href="#to_table-4523"><span class="linenos">4523</span></a><span class="sd"> """</span> +</span><span id="to_table-4524"><a href="#to_table-4524"><span class="linenos">4524</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> +</span><span id="to_table-4525"><a href="#to_table-4525"><span class="linenos">4525</span></a> <span class="k">return</span> <span class="n">sql_path</span> +</span><span id="to_table-4526"><a href="#to_table-4526"><span class="linenos">4526</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="to_table-4527"><a href="#to_table-4527"><span class="linenos">4527</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for a table: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="to_table-4528"><a href="#to_table-4528"><span class="linenos">4528</span></a> +</span><span id="to_table-4529"><a href="#to_table-4529"><span class="linenos">4529</span></a> <span class="n">catalog</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">table_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span> +</span><span id="to_table-4530"><a href="#to_table-4530"><span class="linenos">4530</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> </span></pre></div> @@ -41761,23 +42459,23 @@ If a table is passed in then that table is returned.</p> </div> <a class="headerlink" href="#to_column"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-4397"><a href="#to_column-4397"><span class="linenos">4397</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="to_column-4398"><a href="#to_column-4398"><span class="linenos">4398</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="to_column-4399"><a href="#to_column-4399"><span class="linenos">4399</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span> -</span><span id="to_column-4400"><a href="#to_column-4400"><span class="linenos">4400</span></a> -</span><span id="to_column-4401"><a href="#to_column-4401"><span class="linenos">4401</span></a><span class="sd"> If a column is passed in then that column is returned.</span> -</span><span id="to_column-4402"><a href="#to_column-4402"><span class="linenos">4402</span></a> -</span><span id="to_column-4403"><a href="#to_column-4403"><span class="linenos">4403</span></a><span class="sd"> Args:</span> -</span><span id="to_column-4404"><a href="#to_column-4404"><span class="linenos">4404</span></a><span class="sd"> sql_path: `[table].[column]` string</span> -</span><span id="to_column-4405"><a href="#to_column-4405"><span class="linenos">4405</span></a><span class="sd"> Returns:</span> -</span><span id="to_column-4406"><a href="#to_column-4406"><span class="linenos">4406</span></a><span class="sd"> Table: A column expression</span> -</span><span id="to_column-4407"><a href="#to_column-4407"><span class="linenos">4407</span></a><span class="sd"> """</span> -</span><span id="to_column-4408"><a href="#to_column-4408"><span class="linenos">4408</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> -</span><span id="to_column-4409"><a href="#to_column-4409"><span class="linenos">4409</span></a> <span class="k">return</span> <span class="n">sql_path</span> -</span><span id="to_column-4410"><a href="#to_column-4410"><span class="linenos">4410</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="to_column-4411"><a href="#to_column-4411"><span class="linenos">4411</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="to_column-4412"><a href="#to_column-4412"><span class="linenos">4412</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span> -</span><span id="to_column-4413"><a href="#to_column-4413"><span class="linenos">4413</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="to_column-4533"><a href="#to_column-4533"><span class="linenos">4533</span></a><span class="k">def</span> <span class="nf">to_column</span><span class="p">(</span><span class="n">sql_path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Column</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> +</span><span id="to_column-4534"><a href="#to_column-4534"><span class="linenos">4534</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="to_column-4535"><a href="#to_column-4535"><span class="linenos">4535</span></a><span class="sd"> Create a column from a `[table].[column]` sql path. Schema is optional.</span> +</span><span id="to_column-4536"><a href="#to_column-4536"><span class="linenos">4536</span></a> +</span><span id="to_column-4537"><a href="#to_column-4537"><span class="linenos">4537</span></a><span class="sd"> If a column is passed in then that column is returned.</span> +</span><span id="to_column-4538"><a href="#to_column-4538"><span class="linenos">4538</span></a> +</span><span id="to_column-4539"><a href="#to_column-4539"><span class="linenos">4539</span></a><span class="sd"> Args:</span> +</span><span id="to_column-4540"><a href="#to_column-4540"><span class="linenos">4540</span></a><span class="sd"> sql_path: `[table].[column]` string</span> +</span><span id="to_column-4541"><a href="#to_column-4541"><span class="linenos">4541</span></a><span class="sd"> Returns:</span> +</span><span id="to_column-4542"><a href="#to_column-4542"><span class="linenos">4542</span></a><span class="sd"> Table: A column expression</span> +</span><span id="to_column-4543"><a href="#to_column-4543"><span class="linenos">4543</span></a><span class="sd"> """</span> +</span><span id="to_column-4544"><a href="#to_column-4544"><span class="linenos">4544</span></a> <span class="k">if</span> <span class="n">sql_path</span> <span class="ow">is</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="n">Column</span><span class="p">):</span> +</span><span id="to_column-4545"><a href="#to_column-4545"><span class="linenos">4545</span></a> <span class="k">return</span> <span class="n">sql_path</span> +</span><span id="to_column-4546"><a href="#to_column-4546"><span class="linenos">4546</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="to_column-4547"><a href="#to_column-4547"><span class="linenos">4547</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Invalid type provided for column: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">sql_path</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="to_column-4548"><a href="#to_column-4548"><span class="linenos">4548</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">column_name</span> <span class="o">=</span> <span class="p">(</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">split_num_words</span><span class="p">(</span><span class="n">sql_path</span><span class="p">,</span> <span class="s2">"."</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span> +</span><span id="to_column-4549"><a href="#to_column-4549"><span class="linenos">4549</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">column_name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table_name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> </span></pre></div> @@ -41805,66 +42503,66 @@ If a table is passed in then that table is returned.</p> <div class="attr function"> <span class="def">def</span> - <span class="name">alias_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">False</span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span> + <span class="name">alias_</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span>,</span><span class="param"> <span class="n">table</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bool</span><span class="p">,</span> <span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Identifier">sqlglot.expressions.Identifier</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">False</span>,</span><span class="param"> <span class="n">quoted</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="alias_-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#alias_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-4416"><a href="#alias_-4416"><span class="linenos">4416</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span> -</span><span id="alias_-4417"><a href="#alias_-4417"><span class="linenos">4417</span></a> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> -</span><span id="alias_-4418"><a href="#alias_-4418"><span class="linenos">4418</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> -</span><span id="alias_-4419"><a href="#alias_-4419"><span class="linenos">4419</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> -</span><span id="alias_-4420"><a href="#alias_-4420"><span class="linenos">4420</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="alias_-4421"><a href="#alias_-4421"><span class="linenos">4421</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="alias_-4422"><a href="#alias_-4422"><span class="linenos">4422</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> -</span><span id="alias_-4423"><a href="#alias_-4423"><span class="linenos">4423</span></a><span class="p">):</span> -</span><span id="alias_-4424"><a href="#alias_-4424"><span class="linenos">4424</span></a><span class="w"> </span><span class="sd">"""Create an Alias expression.</span> -</span><span id="alias_-4425"><a href="#alias_-4425"><span class="linenos">4425</span></a> -</span><span id="alias_-4426"><a href="#alias_-4426"><span class="linenos">4426</span></a><span class="sd"> Example:</span> -</span><span id="alias_-4427"><a href="#alias_-4427"><span class="linenos">4427</span></a><span class="sd"> >>> alias_('foo', 'bar').sql()</span> -</span><span id="alias_-4428"><a href="#alias_-4428"><span class="linenos">4428</span></a><span class="sd"> 'foo AS bar'</span> -</span><span id="alias_-4429"><a href="#alias_-4429"><span class="linenos">4429</span></a> -</span><span id="alias_-4430"><a href="#alias_-4430"><span class="linenos">4430</span></a><span class="sd"> >>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql()</span> -</span><span id="alias_-4431"><a href="#alias_-4431"><span class="linenos">4431</span></a><span class="sd"> '(SELECT 1, 2) AS bar(a, b)'</span> -</span><span id="alias_-4432"><a href="#alias_-4432"><span class="linenos">4432</span></a> -</span><span id="alias_-4433"><a href="#alias_-4433"><span class="linenos">4433</span></a><span class="sd"> Args:</span> -</span><span id="alias_-4434"><a href="#alias_-4434"><span class="linenos">4434</span></a><span class="sd"> expression: the SQL code strings to parse.</span> -</span><span id="alias_-4435"><a href="#alias_-4435"><span class="linenos">4435</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="alias_-4436"><a href="#alias_-4436"><span class="linenos">4436</span></a><span class="sd"> alias: the alias name to use. If the name has</span> -</span><span id="alias_-4437"><a href="#alias_-4437"><span class="linenos">4437</span></a><span class="sd"> special characters it is quoted.</span> -</span><span id="alias_-4438"><a href="#alias_-4438"><span class="linenos">4438</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span> -</span><span id="alias_-4439"><a href="#alias_-4439"><span class="linenos">4439</span></a><span class="sd"> quoted: whether or not to quote the alias</span> -</span><span id="alias_-4440"><a href="#alias_-4440"><span class="linenos">4440</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> -</span><span id="alias_-4441"><a href="#alias_-4441"><span class="linenos">4441</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="alias_-4442"><a href="#alias_-4442"><span class="linenos">4442</span></a> -</span><span id="alias_-4443"><a href="#alias_-4443"><span class="linenos">4443</span></a><span class="sd"> Returns:</span> -</span><span id="alias_-4444"><a href="#alias_-4444"><span class="linenos">4444</span></a><span class="sd"> Alias: the aliased expression</span> -</span><span id="alias_-4445"><a href="#alias_-4445"><span class="linenos">4445</span></a><span class="sd"> """</span> -</span><span id="alias_-4446"><a href="#alias_-4446"><span class="linenos">4446</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="alias_-4447"><a href="#alias_-4447"><span class="linenos">4447</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> -</span><span id="alias_-4448"><a href="#alias_-4448"><span class="linenos">4448</span></a> -</span><span id="alias_-4449"><a href="#alias_-4449"><span class="linenos">4449</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span> -</span><span id="alias_-4450"><a href="#alias_-4450"><span class="linenos">4450</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> -</span><span id="alias_-4451"><a href="#alias_-4451"><span class="linenos">4451</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> -</span><span id="alias_-4452"><a href="#alias_-4452"><span class="linenos">4452</span></a> -</span><span id="alias_-4453"><a href="#alias_-4453"><span class="linenos">4453</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> -</span><span id="alias_-4454"><a href="#alias_-4454"><span class="linenos">4454</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span> -</span><span id="alias_-4455"><a href="#alias_-4455"><span class="linenos">4455</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span> -</span><span id="alias_-4456"><a href="#alias_-4456"><span class="linenos">4456</span></a> -</span><span id="alias_-4457"><a href="#alias_-4457"><span class="linenos">4457</span></a> <span class="k">return</span> <span class="n">exp</span> -</span><span id="alias_-4458"><a href="#alias_-4458"><span class="linenos">4458</span></a> -</span><span id="alias_-4459"><a href="#alias_-4459"><span class="linenos">4459</span></a> <span class="c1"># We don't set the "alias" arg for Window expressions, because that would add an IDENTIFIER node in</span> -</span><span id="alias_-4460"><a href="#alias_-4460"><span class="linenos">4460</span></a> <span class="c1"># the AST, representing a "named_window" [1] construct (eg. bigquery). What we want is an ALIAS node</span> -</span><span id="alias_-4461"><a href="#alias_-4461"><span class="linenos">4461</span></a> <span class="c1"># for the complete Window expression.</span> -</span><span id="alias_-4462"><a href="#alias_-4462"><span class="linenos">4462</span></a> <span class="c1">#</span> -</span><span id="alias_-4463"><a href="#alias_-4463"><span class="linenos">4463</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span> -</span><span id="alias_-4464"><a href="#alias_-4464"><span class="linenos">4464</span></a> -</span><span id="alias_-4465"><a href="#alias_-4465"><span class="linenos">4465</span></a> <span class="k">if</span> <span class="s2">"alias"</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span> -</span><span id="alias_-4466"><a href="#alias_-4466"><span class="linenos">4466</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="alias_-4467"><a href="#alias_-4467"><span class="linenos">4467</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> -</span><span id="alias_-4468"><a href="#alias_-4468"><span class="linenos">4468</span></a> <span class="k">return</span> <span class="n">exp</span> -</span><span id="alias_-4469"><a href="#alias_-4469"><span class="linenos">4469</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="alias_-4552"><a href="#alias_-4552"><span class="linenos">4552</span></a><span class="k">def</span> <span class="nf">alias_</span><span class="p">(</span> +</span><span id="alias_-4553"><a href="#alias_-4553"><span class="linenos">4553</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> +</span><span id="alias_-4554"><a href="#alias_-4554"><span class="linenos">4554</span></a> <span class="n">alias</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> +</span><span id="alias_-4555"><a href="#alias_-4555"><span class="linenos">4555</span></a> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Sequence</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> +</span><span id="alias_-4556"><a href="#alias_-4556"><span class="linenos">4556</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="alias_-4557"><a href="#alias_-4557"><span class="linenos">4557</span></a> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="alias_-4558"><a href="#alias_-4558"><span class="linenos">4558</span></a> <span class="o">**</span><span class="n">opts</span><span class="p">,</span> +</span><span id="alias_-4559"><a href="#alias_-4559"><span class="linenos">4559</span></a><span class="p">):</span> +</span><span id="alias_-4560"><a href="#alias_-4560"><span class="linenos">4560</span></a><span class="w"> </span><span class="sd">"""Create an Alias expression.</span> +</span><span id="alias_-4561"><a href="#alias_-4561"><span class="linenos">4561</span></a> +</span><span id="alias_-4562"><a href="#alias_-4562"><span class="linenos">4562</span></a><span class="sd"> Example:</span> +</span><span id="alias_-4563"><a href="#alias_-4563"><span class="linenos">4563</span></a><span class="sd"> >>> alias_('foo', 'bar').sql()</span> +</span><span id="alias_-4564"><a href="#alias_-4564"><span class="linenos">4564</span></a><span class="sd"> 'foo AS bar'</span> +</span><span id="alias_-4565"><a href="#alias_-4565"><span class="linenos">4565</span></a> +</span><span id="alias_-4566"><a href="#alias_-4566"><span class="linenos">4566</span></a><span class="sd"> >>> alias_('(select 1, 2)', 'bar', table=['a', 'b']).sql()</span> +</span><span id="alias_-4567"><a href="#alias_-4567"><span class="linenos">4567</span></a><span class="sd"> '(SELECT 1, 2) AS bar(a, b)'</span> +</span><span id="alias_-4568"><a href="#alias_-4568"><span class="linenos">4568</span></a> +</span><span id="alias_-4569"><a href="#alias_-4569"><span class="linenos">4569</span></a><span class="sd"> Args:</span> +</span><span id="alias_-4570"><a href="#alias_-4570"><span class="linenos">4570</span></a><span class="sd"> expression: the SQL code strings to parse.</span> +</span><span id="alias_-4571"><a href="#alias_-4571"><span class="linenos">4571</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="alias_-4572"><a href="#alias_-4572"><span class="linenos">4572</span></a><span class="sd"> alias: the alias name to use. If the name has</span> +</span><span id="alias_-4573"><a href="#alias_-4573"><span class="linenos">4573</span></a><span class="sd"> special characters it is quoted.</span> +</span><span id="alias_-4574"><a href="#alias_-4574"><span class="linenos">4574</span></a><span class="sd"> table: Whether or not to create a table alias, can also be a list of columns.</span> +</span><span id="alias_-4575"><a href="#alias_-4575"><span class="linenos">4575</span></a><span class="sd"> quoted: whether or not to quote the alias</span> +</span><span id="alias_-4576"><a href="#alias_-4576"><span class="linenos">4576</span></a><span class="sd"> dialect: the dialect used to parse the input expression.</span> +</span><span id="alias_-4577"><a href="#alias_-4577"><span class="linenos">4577</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="alias_-4578"><a href="#alias_-4578"><span class="linenos">4578</span></a> +</span><span id="alias_-4579"><a href="#alias_-4579"><span class="linenos">4579</span></a><span class="sd"> Returns:</span> +</span><span id="alias_-4580"><a href="#alias_-4580"><span class="linenos">4580</span></a><span class="sd"> Alias: the aliased expression</span> +</span><span id="alias_-4581"><a href="#alias_-4581"><span class="linenos">4581</span></a><span class="sd"> """</span> +</span><span id="alias_-4582"><a href="#alias_-4582"><span class="linenos">4582</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="alias_-4583"><a href="#alias_-4583"><span class="linenos">4583</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> +</span><span id="alias_-4584"><a href="#alias_-4584"><span class="linenos">4584</span></a> +</span><span id="alias_-4585"><a href="#alias_-4585"><span class="linenos">4585</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span> +</span><span id="alias_-4586"><a href="#alias_-4586"><span class="linenos">4586</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> +</span><span id="alias_-4587"><a href="#alias_-4587"><span class="linenos">4587</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> +</span><span id="alias_-4588"><a href="#alias_-4588"><span class="linenos">4588</span></a> +</span><span id="alias_-4589"><a href="#alias_-4589"><span class="linenos">4589</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> +</span><span id="alias_-4590"><a href="#alias_-4590"><span class="linenos">4590</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">table</span><span class="p">:</span> +</span><span id="alias_-4591"><a href="#alias_-4591"><span class="linenos">4591</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">))</span> +</span><span id="alias_-4592"><a href="#alias_-4592"><span class="linenos">4592</span></a> +</span><span id="alias_-4593"><a href="#alias_-4593"><span class="linenos">4593</span></a> <span class="k">return</span> <span class="n">exp</span> +</span><span id="alias_-4594"><a href="#alias_-4594"><span class="linenos">4594</span></a> +</span><span id="alias_-4595"><a href="#alias_-4595"><span class="linenos">4595</span></a> <span class="c1"># We don't set the "alias" arg for Window expressions, because that would add an IDENTIFIER node in</span> +</span><span id="alias_-4596"><a href="#alias_-4596"><span class="linenos">4596</span></a> <span class="c1"># the AST, representing a "named_window" [1] construct (eg. bigquery). What we want is an ALIAS node</span> +</span><span id="alias_-4597"><a href="#alias_-4597"><span class="linenos">4597</span></a> <span class="c1"># for the complete Window expression.</span> +</span><span id="alias_-4598"><a href="#alias_-4598"><span class="linenos">4598</span></a> <span class="c1">#</span> +</span><span id="alias_-4599"><a href="#alias_-4599"><span class="linenos">4599</span></a> <span class="c1"># [1]: https://cloud.google.com/bigquery/docs/reference/standard-sql/window-function-calls</span> +</span><span id="alias_-4600"><a href="#alias_-4600"><span class="linenos">4600</span></a> +</span><span id="alias_-4601"><a href="#alias_-4601"><span class="linenos">4601</span></a> <span class="k">if</span> <span class="s2">"alias"</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">arg_types</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">exp</span><span class="p">,</span> <span class="n">Window</span><span class="p">):</span> +</span><span id="alias_-4602"><a href="#alias_-4602"><span class="linenos">4602</span></a> <span class="n">exp</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="alias_-4603"><a href="#alias_-4603"><span class="linenos">4603</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> +</span><span id="alias_-4604"><a href="#alias_-4604"><span class="linenos">4604</span></a> <span class="k">return</span> <span class="n">exp</span> +</span><span id="alias_-4605"><a href="#alias_-4605"><span class="linenos">4605</span></a> <span class="k">return</span> <span class="n">Alias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> </span></pre></div> @@ -41919,27 +42617,27 @@ special characters it is quoted.</li> </div> <a class="headerlink" href="#subquery"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-4472"><a href="#subquery-4472"><span class="linenos">4472</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> -</span><span id="subquery-4473"><a href="#subquery-4473"><span class="linenos">4473</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="subquery-4474"><a href="#subquery-4474"><span class="linenos">4474</span></a><span class="sd"> Build a subquery expression.</span> -</span><span id="subquery-4475"><a href="#subquery-4475"><span class="linenos">4475</span></a> -</span><span id="subquery-4476"><a href="#subquery-4476"><span class="linenos">4476</span></a><span class="sd"> Example:</span> -</span><span id="subquery-4477"><a href="#subquery-4477"><span class="linenos">4477</span></a><span class="sd"> >>> subquery('select x from tbl', 'bar').select('x').sql()</span> -</span><span id="subquery-4478"><a href="#subquery-4478"><span class="linenos">4478</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl) AS bar'</span> -</span><span id="subquery-4479"><a href="#subquery-4479"><span class="linenos">4479</span></a> -</span><span id="subquery-4480"><a href="#subquery-4480"><span class="linenos">4480</span></a><span class="sd"> Args:</span> -</span><span id="subquery-4481"><a href="#subquery-4481"><span class="linenos">4481</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> -</span><span id="subquery-4482"><a href="#subquery-4482"><span class="linenos">4482</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> -</span><span id="subquery-4483"><a href="#subquery-4483"><span class="linenos">4483</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span> -</span><span id="subquery-4484"><a href="#subquery-4484"><span class="linenos">4484</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> -</span><span id="subquery-4485"><a href="#subquery-4485"><span class="linenos">4485</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> -</span><span id="subquery-4486"><a href="#subquery-4486"><span class="linenos">4486</span></a> -</span><span id="subquery-4487"><a href="#subquery-4487"><span class="linenos">4487</span></a><span class="sd"> Returns:</span> -</span><span id="subquery-4488"><a href="#subquery-4488"><span class="linenos">4488</span></a><span class="sd"> Select: a new select with the subquery expression included</span> -</span><span id="subquery-4489"><a href="#subquery-4489"><span class="linenos">4489</span></a><span class="sd"> """</span> -</span><span id="subquery-4490"><a href="#subquery-4490"><span class="linenos">4490</span></a> -</span><span id="subquery-4491"><a href="#subquery-4491"><span class="linenos">4491</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> -</span><span id="subquery-4492"><a href="#subquery-4492"><span class="linenos">4492</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="subquery-4608"><a href="#subquery-4608"><span class="linenos">4608</span></a><span class="k">def</span> <span class="nf">subquery</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">):</span> +</span><span id="subquery-4609"><a href="#subquery-4609"><span class="linenos">4609</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="subquery-4610"><a href="#subquery-4610"><span class="linenos">4610</span></a><span class="sd"> Build a subquery expression.</span> +</span><span id="subquery-4611"><a href="#subquery-4611"><span class="linenos">4611</span></a> +</span><span id="subquery-4612"><a href="#subquery-4612"><span class="linenos">4612</span></a><span class="sd"> Example:</span> +</span><span id="subquery-4613"><a href="#subquery-4613"><span class="linenos">4613</span></a><span class="sd"> >>> subquery('select x from tbl', 'bar').select('x').sql()</span> +</span><span id="subquery-4614"><a href="#subquery-4614"><span class="linenos">4614</span></a><span class="sd"> 'SELECT x FROM (SELECT x FROM tbl) AS bar'</span> +</span><span id="subquery-4615"><a href="#subquery-4615"><span class="linenos">4615</span></a> +</span><span id="subquery-4616"><a href="#subquery-4616"><span class="linenos">4616</span></a><span class="sd"> Args:</span> +</span><span id="subquery-4617"><a href="#subquery-4617"><span class="linenos">4617</span></a><span class="sd"> expression (str | Expression): the SQL code strings to parse.</span> +</span><span id="subquery-4618"><a href="#subquery-4618"><span class="linenos">4618</span></a><span class="sd"> If an Expression instance is passed, this is used as-is.</span> +</span><span id="subquery-4619"><a href="#subquery-4619"><span class="linenos">4619</span></a><span class="sd"> alias (str | Expression): the alias name to use.</span> +</span><span id="subquery-4620"><a href="#subquery-4620"><span class="linenos">4620</span></a><span class="sd"> dialect (str): the dialect used to parse the input expression.</span> +</span><span id="subquery-4621"><a href="#subquery-4621"><span class="linenos">4621</span></a><span class="sd"> **opts: other options to use to parse the input expressions.</span> +</span><span id="subquery-4622"><a href="#subquery-4622"><span class="linenos">4622</span></a> +</span><span id="subquery-4623"><a href="#subquery-4623"><span class="linenos">4623</span></a><span class="sd"> Returns:</span> +</span><span id="subquery-4624"><a href="#subquery-4624"><span class="linenos">4624</span></a><span class="sd"> Select: a new select with the subquery expression included</span> +</span><span id="subquery-4625"><a href="#subquery-4625"><span class="linenos">4625</span></a><span class="sd"> """</span> +</span><span id="subquery-4626"><a href="#subquery-4626"><span class="linenos">4626</span></a> +</span><span id="subquery-4627"><a href="#subquery-4627"><span class="linenos">4627</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> +</span><span id="subquery-4628"><a href="#subquery-4628"><span class="linenos">4628</span></a> <span class="k">return</span> <span class="n">Select</span><span class="p">()</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">dialect</span><span class="o">=</span><span class="n">dialect</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> </span></pre></div> @@ -41985,28 +42683,28 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#column"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="column-4495"><a href="#column-4495"><span class="linenos">4495</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span> -</span><span id="column-4496"><a href="#column-4496"><span class="linenos">4496</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> -</span><span id="column-4497"><a href="#column-4497"><span class="linenos">4497</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="column-4498"><a href="#column-4498"><span class="linenos">4498</span></a> <span class="n">schema</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="column-4499"><a href="#column-4499"><span class="linenos">4499</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="column-4500"><a href="#column-4500"><span class="linenos">4500</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> -</span><span id="column-4501"><a href="#column-4501"><span class="linenos">4501</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="column-4502"><a href="#column-4502"><span class="linenos">4502</span></a><span class="sd"> Build a Column.</span> -</span><span id="column-4503"><a href="#column-4503"><span class="linenos">4503</span></a> -</span><span id="column-4504"><a href="#column-4504"><span class="linenos">4504</span></a><span class="sd"> Args:</span> -</span><span id="column-4505"><a href="#column-4505"><span class="linenos">4505</span></a><span class="sd"> col: column name</span> -</span><span id="column-4506"><a href="#column-4506"><span class="linenos">4506</span></a><span class="sd"> table: table name</span> -</span><span id="column-4507"><a href="#column-4507"><span class="linenos">4507</span></a><span class="sd"> schema: schema name</span> -</span><span id="column-4508"><a href="#column-4508"><span class="linenos">4508</span></a><span class="sd"> quoted: whether or not to force quote each part</span> -</span><span id="column-4509"><a href="#column-4509"><span class="linenos">4509</span></a><span class="sd"> Returns:</span> -</span><span id="column-4510"><a href="#column-4510"><span class="linenos">4510</span></a><span class="sd"> Column: column instance</span> -</span><span id="column-4511"><a href="#column-4511"><span class="linenos">4511</span></a><span class="sd"> """</span> -</span><span id="column-4512"><a href="#column-4512"><span class="linenos">4512</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span> -</span><span id="column-4513"><a href="#column-4513"><span class="linenos">4513</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="column-4514"><a href="#column-4514"><span class="linenos">4514</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="column-4515"><a href="#column-4515"><span class="linenos">4515</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="column-4516"><a href="#column-4516"><span class="linenos">4516</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="column-4631"><a href="#column-4631"><span class="linenos">4631</span></a><span class="k">def</span> <span class="nf">column</span><span class="p">(</span> +</span><span id="column-4632"><a href="#column-4632"><span class="linenos">4632</span></a> <span class="n">col</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">,</span> +</span><span id="column-4633"><a href="#column-4633"><span class="linenos">4633</span></a> <span class="n">table</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="column-4634"><a href="#column-4634"><span class="linenos">4634</span></a> <span class="n">schema</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Identifier</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="column-4635"><a href="#column-4635"><span class="linenos">4635</span></a> <span class="n">quoted</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="column-4636"><a href="#column-4636"><span class="linenos">4636</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Column</span><span class="p">:</span> +</span><span id="column-4637"><a href="#column-4637"><span class="linenos">4637</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="column-4638"><a href="#column-4638"><span class="linenos">4638</span></a><span class="sd"> Build a Column.</span> +</span><span id="column-4639"><a href="#column-4639"><span class="linenos">4639</span></a> +</span><span id="column-4640"><a href="#column-4640"><span class="linenos">4640</span></a><span class="sd"> Args:</span> +</span><span id="column-4641"><a href="#column-4641"><span class="linenos">4641</span></a><span class="sd"> col: column name</span> +</span><span id="column-4642"><a href="#column-4642"><span class="linenos">4642</span></a><span class="sd"> table: table name</span> +</span><span id="column-4643"><a href="#column-4643"><span class="linenos">4643</span></a><span class="sd"> schema: schema name</span> +</span><span id="column-4644"><a href="#column-4644"><span class="linenos">4644</span></a><span class="sd"> quoted: whether or not to force quote each part</span> +</span><span id="column-4645"><a href="#column-4645"><span class="linenos">4645</span></a><span class="sd"> Returns:</span> +</span><span id="column-4646"><a href="#column-4646"><span class="linenos">4646</span></a><span class="sd"> Column: column instance</span> +</span><span id="column-4647"><a href="#column-4647"><span class="linenos">4647</span></a><span class="sd"> """</span> +</span><span id="column-4648"><a href="#column-4648"><span class="linenos">4648</span></a> <span class="k">return</span> <span class="n">Column</span><span class="p">(</span> +</span><span id="column-4649"><a href="#column-4649"><span class="linenos">4649</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">col</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="column-4650"><a href="#column-4650"><span class="linenos">4650</span></a> <span class="n">table</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="column-4651"><a href="#column-4651"><span class="linenos">4651</span></a> <span class="n">schema</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">schema</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="column-4652"><a href="#column-4652"><span class="linenos">4652</span></a> <span class="p">)</span> </span></pre></div> @@ -42035,28 +42733,28 @@ If an Expression instance is passed, this is used as-is.</li> <div class="attr function"> <span class="def">def</span> - <span class="name">cast</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#DataType">sqlglot.expressions.DataType</a></span> <span class="o">|</span> <span class="n"><a href="#DataType.Type">sqlglot.expressions.DataType.Type</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Cast">sqlglot.expressions.Cast</a></span>:</span></span> + <span class="name">cast</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="#Expression">sqlglot.expressions.Expression</a></span><span class="p">]</span>,</span><span class="param"> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="#DataType">sqlglot.expressions.DataType</a></span> <span class="o">|</span> <span class="n"><a href="#DataType.Type">sqlglot.expressions.DataType.Type</a></span>,</span><span class="param"> <span class="o">**</span><span class="n">opts</span></span><span class="return-annotation">) -> <span class="n"><a href="#Cast">sqlglot.expressions.Cast</a></span>:</span></span> <label class="view-source-button" for="cast-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#cast"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4519"><a href="#cast-4519"><span class="linenos">4519</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Cast</span><span class="p">:</span> -</span><span id="cast-4520"><a href="#cast-4520"><span class="linenos">4520</span></a><span class="w"> </span><span class="sd">"""Cast an expression to a data type.</span> -</span><span id="cast-4521"><a href="#cast-4521"><span class="linenos">4521</span></a> -</span><span id="cast-4522"><a href="#cast-4522"><span class="linenos">4522</span></a><span class="sd"> Example:</span> -</span><span id="cast-4523"><a href="#cast-4523"><span class="linenos">4523</span></a><span class="sd"> >>> cast('x + 1', 'int').sql()</span> -</span><span id="cast-4524"><a href="#cast-4524"><span class="linenos">4524</span></a><span class="sd"> 'CAST(x + 1 AS INT)'</span> -</span><span id="cast-4525"><a href="#cast-4525"><span class="linenos">4525</span></a> -</span><span id="cast-4526"><a href="#cast-4526"><span class="linenos">4526</span></a><span class="sd"> Args:</span> -</span><span id="cast-4527"><a href="#cast-4527"><span class="linenos">4527</span></a><span class="sd"> expression: The expression to cast.</span> -</span><span id="cast-4528"><a href="#cast-4528"><span class="linenos">4528</span></a><span class="sd"> to: The datatype to cast to.</span> -</span><span id="cast-4529"><a href="#cast-4529"><span class="linenos">4529</span></a> -</span><span id="cast-4530"><a href="#cast-4530"><span class="linenos">4530</span></a><span class="sd"> Returns:</span> -</span><span id="cast-4531"><a href="#cast-4531"><span class="linenos">4531</span></a><span class="sd"> A cast node.</span> -</span><span id="cast-4532"><a href="#cast-4532"><span class="linenos">4532</span></a><span class="sd"> """</span> -</span><span id="cast-4533"><a href="#cast-4533"><span class="linenos">4533</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> -</span><span id="cast-4534"><a href="#cast-4534"><span class="linenos">4534</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="cast-4655"><a href="#cast-4655"><span class="linenos">4655</span></a><span class="k">def</span> <span class="nf">cast</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">ExpOrStr</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">DataType</span> <span class="o">|</span> <span class="n">DataType</span><span class="o">.</span><span class="n">Type</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> <span class="o">-></span> <span class="n">Cast</span><span class="p">:</span> +</span><span id="cast-4656"><a href="#cast-4656"><span class="linenos">4656</span></a><span class="w"> </span><span class="sd">"""Cast an expression to a data type.</span> +</span><span id="cast-4657"><a href="#cast-4657"><span class="linenos">4657</span></a> +</span><span id="cast-4658"><a href="#cast-4658"><span class="linenos">4658</span></a><span class="sd"> Example:</span> +</span><span id="cast-4659"><a href="#cast-4659"><span class="linenos">4659</span></a><span class="sd"> >>> cast('x + 1', 'int').sql()</span> +</span><span id="cast-4660"><a href="#cast-4660"><span class="linenos">4660</span></a><span class="sd"> 'CAST(x + 1 AS INT)'</span> +</span><span id="cast-4661"><a href="#cast-4661"><span class="linenos">4661</span></a> +</span><span id="cast-4662"><a href="#cast-4662"><span class="linenos">4662</span></a><span class="sd"> Args:</span> +</span><span id="cast-4663"><a href="#cast-4663"><span class="linenos">4663</span></a><span class="sd"> expression: The expression to cast.</span> +</span><span id="cast-4664"><a href="#cast-4664"><span class="linenos">4664</span></a><span class="sd"> to: The datatype to cast to.</span> +</span><span id="cast-4665"><a href="#cast-4665"><span class="linenos">4665</span></a> +</span><span id="cast-4666"><a href="#cast-4666"><span class="linenos">4666</span></a><span class="sd"> Returns:</span> +</span><span id="cast-4667"><a href="#cast-4667"><span class="linenos">4667</span></a><span class="sd"> A cast node.</span> +</span><span id="cast-4668"><a href="#cast-4668"><span class="linenos">4668</span></a><span class="sd"> """</span> +</span><span id="cast-4669"><a href="#cast-4669"><span class="linenos">4669</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">)</span> +</span><span id="cast-4670"><a href="#cast-4670"><span class="linenos">4670</span></a> <span class="k">return</span> <span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">to</span><span class="o">=</span><span class="n">DataType</span><span class="o">.</span><span class="n">build</span><span class="p">(</span><span class="n">to</span><span class="p">,</span> <span class="o">**</span><span class="n">opts</span><span class="p">))</span> </span></pre></div> @@ -42099,23 +42797,23 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#table_"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="table_-4537"><a href="#table_-4537"><span class="linenos">4537</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Table</span><span class="p">:</span> -</span><span id="table_-4538"><a href="#table_-4538"><span class="linenos">4538</span></a><span class="w"> </span><span class="sd">"""Build a Table.</span> -</span><span id="table_-4539"><a href="#table_-4539"><span class="linenos">4539</span></a> -</span><span id="table_-4540"><a href="#table_-4540"><span class="linenos">4540</span></a><span class="sd"> Args:</span> -</span><span id="table_-4541"><a href="#table_-4541"><span class="linenos">4541</span></a><span class="sd"> table (str | Expression): column name</span> -</span><span id="table_-4542"><a href="#table_-4542"><span class="linenos">4542</span></a><span class="sd"> db (str | Expression): db name</span> -</span><span id="table_-4543"><a href="#table_-4543"><span class="linenos">4543</span></a><span class="sd"> catalog (str | Expression): catalog name</span> -</span><span id="table_-4544"><a href="#table_-4544"><span class="linenos">4544</span></a> -</span><span id="table_-4545"><a href="#table_-4545"><span class="linenos">4545</span></a><span class="sd"> Returns:</span> -</span><span id="table_-4546"><a href="#table_-4546"><span class="linenos">4546</span></a><span class="sd"> Table: table instance</span> -</span><span id="table_-4547"><a href="#table_-4547"><span class="linenos">4547</span></a><span class="sd"> """</span> -</span><span id="table_-4548"><a href="#table_-4548"><span class="linenos">4548</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span> -</span><span id="table_-4549"><a href="#table_-4549"><span class="linenos">4549</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="table_-4550"><a href="#table_-4550"><span class="linenos">4550</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="table_-4551"><a href="#table_-4551"><span class="linenos">4551</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> -</span><span id="table_-4552"><a href="#table_-4552"><span class="linenos">4552</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="table_-4553"><a href="#table_-4553"><span class="linenos">4553</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="table_-4673"><a href="#table_-4673"><span class="linenos">4673</span></a><span class="k">def</span> <span class="nf">table_</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">db</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Table</span><span class="p">:</span> +</span><span id="table_-4674"><a href="#table_-4674"><span class="linenos">4674</span></a><span class="w"> </span><span class="sd">"""Build a Table.</span> +</span><span id="table_-4675"><a href="#table_-4675"><span class="linenos">4675</span></a> +</span><span id="table_-4676"><a href="#table_-4676"><span class="linenos">4676</span></a><span class="sd"> Args:</span> +</span><span id="table_-4677"><a href="#table_-4677"><span class="linenos">4677</span></a><span class="sd"> table (str | Expression): column name</span> +</span><span id="table_-4678"><a href="#table_-4678"><span class="linenos">4678</span></a><span class="sd"> db (str | Expression): db name</span> +</span><span id="table_-4679"><a href="#table_-4679"><span class="linenos">4679</span></a><span class="sd"> catalog (str | Expression): catalog name</span> +</span><span id="table_-4680"><a href="#table_-4680"><span class="linenos">4680</span></a> +</span><span id="table_-4681"><a href="#table_-4681"><span class="linenos">4681</span></a><span class="sd"> Returns:</span> +</span><span id="table_-4682"><a href="#table_-4682"><span class="linenos">4682</span></a><span class="sd"> Table: table instance</span> +</span><span id="table_-4683"><a href="#table_-4683"><span class="linenos">4683</span></a><span class="sd"> """</span> +</span><span id="table_-4684"><a href="#table_-4684"><span class="linenos">4684</span></a> <span class="k">return</span> <span class="n">Table</span><span class="p">(</span> +</span><span id="table_-4685"><a href="#table_-4685"><span class="linenos">4685</span></a> <span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="table_-4686"><a href="#table_-4686"><span class="linenos">4686</span></a> <span class="n">db</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="table_-4687"><a href="#table_-4687"><span class="linenos">4687</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">),</span> +</span><span id="table_-4688"><a href="#table_-4688"><span class="linenos">4688</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="table_-4689"><a href="#table_-4689"><span class="linenos">4689</span></a> <span class="p">)</span> </span></pre></div> @@ -42149,46 +42847,46 @@ If an Expression instance is passed, this is used as-is.</li> </div> <a class="headerlink" href="#values"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="values-4556"><a href="#values-4556"><span class="linenos">4556</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span> -</span><span id="values-4557"><a href="#values-4557"><span class="linenos">4557</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span> -</span><span id="values-4558"><a href="#values-4558"><span class="linenos">4558</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="values-4559"><a href="#values-4559"><span class="linenos">4559</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="values-4560"><a href="#values-4560"><span class="linenos">4560</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Values</span><span class="p">:</span> -</span><span id="values-4561"><a href="#values-4561"><span class="linenos">4561</span></a><span class="w"> </span><span class="sd">"""Build VALUES statement.</span> -</span><span id="values-4562"><a href="#values-4562"><span class="linenos">4562</span></a> -</span><span id="values-4563"><a href="#values-4563"><span class="linenos">4563</span></a><span class="sd"> Example:</span> -</span><span id="values-4564"><a href="#values-4564"><span class="linenos">4564</span></a><span class="sd"> >>> values([(1, '2')]).sql()</span> -</span><span id="values-4565"><a href="#values-4565"><span class="linenos">4565</span></a><span class="sd"> "VALUES (1, '2')"</span> -</span><span id="values-4566"><a href="#values-4566"><span class="linenos">4566</span></a> -</span><span id="values-4567"><a href="#values-4567"><span class="linenos">4567</span></a><span class="sd"> Args:</span> -</span><span id="values-4568"><a href="#values-4568"><span class="linenos">4568</span></a><span class="sd"> values: values statements that will be converted to SQL</span> -</span><span id="values-4569"><a href="#values-4569"><span class="linenos">4569</span></a><span class="sd"> alias: optional alias</span> -</span><span id="values-4570"><a href="#values-4570"><span class="linenos">4570</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span> -</span><span id="values-4571"><a href="#values-4571"><span class="linenos">4571</span></a><span class="sd"> If either are provided then an alias is also required.</span> -</span><span id="values-4572"><a href="#values-4572"><span class="linenos">4572</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span> -</span><span id="values-4573"><a href="#values-4573"><span class="linenos">4573</span></a><span class="sd"> in order to help with type inference.</span> -</span><span id="values-4574"><a href="#values-4574"><span class="linenos">4574</span></a> -</span><span id="values-4575"><a href="#values-4575"><span class="linenos">4575</span></a><span class="sd"> Returns:</span> -</span><span id="values-4576"><a href="#values-4576"><span class="linenos">4576</span></a><span class="sd"> Values: the Values expression object</span> -</span><span id="values-4577"><a href="#values-4577"><span class="linenos">4577</span></a><span class="sd"> """</span> -</span><span id="values-4578"><a href="#values-4578"><span class="linenos">4578</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="values-4579"><a href="#values-4579"><span class="linenos">4579</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Alias is required when providing columns"</span><span class="p">)</span> -</span><span id="values-4580"><a href="#values-4580"><span class="linenos">4580</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="values-4581"><a href="#values-4581"><span class="linenos">4581</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span> -</span><span id="values-4582"><a href="#values-4582"><span class="linenos">4582</span></a> <span class="k">if</span> <span class="n">columns</span> -</span><span id="values-4583"><a href="#values-4583"><span class="linenos">4583</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="values-4584"><a href="#values-4584"><span class="linenos">4584</span></a> <span class="p">)</span> -</span><span id="values-4585"><a href="#values-4585"><span class="linenos">4585</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">]</span> -</span><span id="values-4586"><a href="#values-4586"><span class="linenos">4586</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> -</span><span id="values-4587"><a href="#values-4587"><span class="linenos">4587</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> -</span><span id="values-4588"><a href="#values-4588"><span class="linenos">4588</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="values-4589"><a href="#values-4589"><span class="linenos">4589</span></a> <span class="s2">"expressions"</span><span class="p">,</span> -</span><span id="values-4590"><a href="#values-4590"><span class="linenos">4590</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span> -</span><span id="values-4591"><a href="#values-4591"><span class="linenos">4591</span></a> <span class="p">)</span> -</span><span id="values-4592"><a href="#values-4592"><span class="linenos">4592</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span> -</span><span id="values-4593"><a href="#values-4593"><span class="linenos">4593</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="values-4594"><a href="#values-4594"><span class="linenos">4594</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> -</span><span id="values-4595"><a href="#values-4595"><span class="linenos">4595</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="values-4692"><a href="#values-4692"><span class="linenos">4692</span></a><span class="k">def</span> <span class="nf">values</span><span class="p">(</span> +</span><span id="values-4693"><a href="#values-4693"><span class="linenos">4693</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> <span class="o">...</span><span class="p">]],</span> +</span><span id="values-4694"><a href="#values-4694"><span class="linenos">4694</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="values-4695"><a href="#values-4695"><span class="linenos">4695</span></a> <span class="n">columns</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">DataType</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="values-4696"><a href="#values-4696"><span class="linenos">4696</span></a><span class="p">)</span> <span class="o">-></span> <span class="n">Values</span><span class="p">:</span> +</span><span id="values-4697"><a href="#values-4697"><span class="linenos">4697</span></a><span class="w"> </span><span class="sd">"""Build VALUES statement.</span> +</span><span id="values-4698"><a href="#values-4698"><span class="linenos">4698</span></a> +</span><span id="values-4699"><a href="#values-4699"><span class="linenos">4699</span></a><span class="sd"> Example:</span> +</span><span id="values-4700"><a href="#values-4700"><span class="linenos">4700</span></a><span class="sd"> >>> values([(1, '2')]).sql()</span> +</span><span id="values-4701"><a href="#values-4701"><span class="linenos">4701</span></a><span class="sd"> "VALUES (1, '2')"</span> +</span><span id="values-4702"><a href="#values-4702"><span class="linenos">4702</span></a> +</span><span id="values-4703"><a href="#values-4703"><span class="linenos">4703</span></a><span class="sd"> Args:</span> +</span><span id="values-4704"><a href="#values-4704"><span class="linenos">4704</span></a><span class="sd"> values: values statements that will be converted to SQL</span> +</span><span id="values-4705"><a href="#values-4705"><span class="linenos">4705</span></a><span class="sd"> alias: optional alias</span> +</span><span id="values-4706"><a href="#values-4706"><span class="linenos">4706</span></a><span class="sd"> columns: Optional list of ordered column names or ordered dictionary of column names to types.</span> +</span><span id="values-4707"><a href="#values-4707"><span class="linenos">4707</span></a><span class="sd"> If either are provided then an alias is also required.</span> +</span><span id="values-4708"><a href="#values-4708"><span class="linenos">4708</span></a><span class="sd"> If a dictionary is provided then the first column of the values will be casted to the expected type</span> +</span><span id="values-4709"><a href="#values-4709"><span class="linenos">4709</span></a><span class="sd"> in order to help with type inference.</span> +</span><span id="values-4710"><a href="#values-4710"><span class="linenos">4710</span></a> +</span><span id="values-4711"><a href="#values-4711"><span class="linenos">4711</span></a><span class="sd"> Returns:</span> +</span><span id="values-4712"><a href="#values-4712"><span class="linenos">4712</span></a><span class="sd"> Values: the Values expression object</span> +</span><span id="values-4713"><a href="#values-4713"><span class="linenos">4713</span></a><span class="sd"> """</span> +</span><span id="values-4714"><a href="#values-4714"><span class="linenos">4714</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="values-4715"><a href="#values-4715"><span class="linenos">4715</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Alias is required when providing columns"</span><span class="p">)</span> +</span><span id="values-4716"><a href="#values-4716"><span class="linenos">4716</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="values-4717"><a href="#values-4717"><span class="linenos">4717</span></a> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">),</span> <span class="n">columns</span><span class="o">=</span><span class="p">[</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">x</span><span class="p">)</span> <span class="k">for</span> <span class="n">x</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">])</span> +</span><span id="values-4718"><a href="#values-4718"><span class="linenos">4718</span></a> <span class="k">if</span> <span class="n">columns</span> +</span><span id="values-4719"><a href="#values-4719"><span class="linenos">4719</span></a> <span class="k">else</span> <span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="values-4720"><a href="#values-4720"><span class="linenos">4720</span></a> <span class="p">)</span> +</span><span id="values-4721"><a href="#values-4721"><span class="linenos">4721</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">tup</span><span class="p">)</span> <span class="k">for</span> <span class="n">tup</span> <span class="ow">in</span> <span class="n">values</span><span class="p">]</span> +</span><span id="values-4722"><a href="#values-4722"><span class="linenos">4722</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">columns</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> +</span><span id="values-4723"><a href="#values-4723"><span class="linenos">4723</span></a> <span class="n">types</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">columns</span><span class="o">.</span><span class="n">values</span><span class="p">())</span> +</span><span id="values-4724"><a href="#values-4724"><span class="linenos">4724</span></a> <span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="values-4725"><a href="#values-4725"><span class="linenos">4725</span></a> <span class="s2">"expressions"</span><span class="p">,</span> +</span><span id="values-4726"><a href="#values-4726"><span class="linenos">4726</span></a> <span class="p">[</span><span class="n">cast</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">types</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">x</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span><span class="p">)],</span> +</span><span id="values-4727"><a href="#values-4727"><span class="linenos">4727</span></a> <span class="p">)</span> +</span><span id="values-4728"><a href="#values-4728"><span class="linenos">4728</span></a> <span class="k">return</span> <span class="n">Values</span><span class="p">(</span> +</span><span id="values-4729"><a href="#values-4729"><span class="linenos">4729</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="values-4730"><a href="#values-4730"><span class="linenos">4730</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> +</span><span id="values-4731"><a href="#values-4731"><span class="linenos">4731</span></a> <span class="p">)</span> </span></pre></div> @@ -42235,28 +42933,28 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#var"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="var-4598"><a href="#var-4598"><span class="linenos">4598</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">Var</span><span class="p">:</span> -</span><span id="var-4599"><a href="#var-4599"><span class="linenos">4599</span></a><span class="w"> </span><span class="sd">"""Build a SQL variable.</span> -</span><span id="var-4600"><a href="#var-4600"><span class="linenos">4600</span></a> -</span><span id="var-4601"><a href="#var-4601"><span class="linenos">4601</span></a><span class="sd"> Example:</span> -</span><span id="var-4602"><a href="#var-4602"><span class="linenos">4602</span></a><span class="sd"> >>> repr(var('x'))</span> -</span><span id="var-4603"><a href="#var-4603"><span class="linenos">4603</span></a><span class="sd"> '(VAR this: x)'</span> -</span><span id="var-4604"><a href="#var-4604"><span class="linenos">4604</span></a> -</span><span id="var-4605"><a href="#var-4605"><span class="linenos">4605</span></a><span class="sd"> >>> repr(var(column('x', table='y')))</span> -</span><span id="var-4606"><a href="#var-4606"><span class="linenos">4606</span></a><span class="sd"> '(VAR this: x)'</span> -</span><span id="var-4607"><a href="#var-4607"><span class="linenos">4607</span></a> -</span><span id="var-4608"><a href="#var-4608"><span class="linenos">4608</span></a><span class="sd"> Args:</span> -</span><span id="var-4609"><a href="#var-4609"><span class="linenos">4609</span></a><span class="sd"> name: The name of the var or an expression who's name will become the var.</span> -</span><span id="var-4610"><a href="#var-4610"><span class="linenos">4610</span></a> -</span><span id="var-4611"><a href="#var-4611"><span class="linenos">4611</span></a><span class="sd"> Returns:</span> -</span><span id="var-4612"><a href="#var-4612"><span class="linenos">4612</span></a><span class="sd"> The new variable node.</span> -</span><span id="var-4613"><a href="#var-4613"><span class="linenos">4613</span></a><span class="sd"> """</span> -</span><span id="var-4614"><a href="#var-4614"><span class="linenos">4614</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span> -</span><span id="var-4615"><a href="#var-4615"><span class="linenos">4615</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot convert empty name into var."</span><span class="p">)</span> -</span><span id="var-4616"><a href="#var-4616"><span class="linenos">4616</span></a> -</span><span id="var-4617"><a href="#var-4617"><span class="linenos">4617</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="var-4618"><a href="#var-4618"><span class="linenos">4618</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span> -</span><span id="var-4619"><a href="#var-4619"><span class="linenos">4619</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="var-4734"><a href="#var-4734"><span class="linenos">4734</span></a><span class="k">def</span> <span class="nf">var</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">ExpOrStr</span><span class="p">])</span> <span class="o">-></span> <span class="n">Var</span><span class="p">:</span> +</span><span id="var-4735"><a href="#var-4735"><span class="linenos">4735</span></a><span class="w"> </span><span class="sd">"""Build a SQL variable.</span> +</span><span id="var-4736"><a href="#var-4736"><span class="linenos">4736</span></a> +</span><span id="var-4737"><a href="#var-4737"><span class="linenos">4737</span></a><span class="sd"> Example:</span> +</span><span id="var-4738"><a href="#var-4738"><span class="linenos">4738</span></a><span class="sd"> >>> repr(var('x'))</span> +</span><span id="var-4739"><a href="#var-4739"><span class="linenos">4739</span></a><span class="sd"> '(VAR this: x)'</span> +</span><span id="var-4740"><a href="#var-4740"><span class="linenos">4740</span></a> +</span><span id="var-4741"><a href="#var-4741"><span class="linenos">4741</span></a><span class="sd"> >>> repr(var(column('x', table='y')))</span> +</span><span id="var-4742"><a href="#var-4742"><span class="linenos">4742</span></a><span class="sd"> '(VAR this: x)'</span> +</span><span id="var-4743"><a href="#var-4743"><span class="linenos">4743</span></a> +</span><span id="var-4744"><a href="#var-4744"><span class="linenos">4744</span></a><span class="sd"> Args:</span> +</span><span id="var-4745"><a href="#var-4745"><span class="linenos">4745</span></a><span class="sd"> name: The name of the var or an expression who's name will become the var.</span> +</span><span id="var-4746"><a href="#var-4746"><span class="linenos">4746</span></a> +</span><span id="var-4747"><a href="#var-4747"><span class="linenos">4747</span></a><span class="sd"> Returns:</span> +</span><span id="var-4748"><a href="#var-4748"><span class="linenos">4748</span></a><span class="sd"> The new variable node.</span> +</span><span id="var-4749"><a href="#var-4749"><span class="linenos">4749</span></a><span class="sd"> """</span> +</span><span id="var-4750"><a href="#var-4750"><span class="linenos">4750</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">name</span><span class="p">:</span> +</span><span id="var-4751"><a href="#var-4751"><span class="linenos">4751</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Cannot convert empty name into var."</span><span class="p">)</span> +</span><span id="var-4752"><a href="#var-4752"><span class="linenos">4752</span></a> +</span><span id="var-4753"><a href="#var-4753"><span class="linenos">4753</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="var-4754"><a href="#var-4754"><span class="linenos">4754</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">name</span><span class="o">.</span><span class="n">name</span> +</span><span id="var-4755"><a href="#var-4755"><span class="linenos">4755</span></a> <span class="k">return</span> <span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">)</span> </span></pre></div> @@ -42304,24 +43002,24 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#rename_table"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-4622"><a href="#rename_table-4622"><span class="linenos">4622</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-></span> <span class="n">AlterTable</span><span class="p">:</span> -</span><span id="rename_table-4623"><a href="#rename_table-4623"><span class="linenos">4623</span></a><span class="w"> </span><span class="sd">"""Build ALTER TABLE... RENAME... expression</span> -</span><span id="rename_table-4624"><a href="#rename_table-4624"><span class="linenos">4624</span></a> -</span><span id="rename_table-4625"><a href="#rename_table-4625"><span class="linenos">4625</span></a><span class="sd"> Args:</span> -</span><span id="rename_table-4626"><a href="#rename_table-4626"><span class="linenos">4626</span></a><span class="sd"> old_name: The old name of the table</span> -</span><span id="rename_table-4627"><a href="#rename_table-4627"><span class="linenos">4627</span></a><span class="sd"> new_name: The new name of the table</span> -</span><span id="rename_table-4628"><a href="#rename_table-4628"><span class="linenos">4628</span></a> -</span><span id="rename_table-4629"><a href="#rename_table-4629"><span class="linenos">4629</span></a><span class="sd"> Returns:</span> -</span><span id="rename_table-4630"><a href="#rename_table-4630"><span class="linenos">4630</span></a><span class="sd"> Alter table expression</span> -</span><span id="rename_table-4631"><a href="#rename_table-4631"><span class="linenos">4631</span></a><span class="sd"> """</span> -</span><span id="rename_table-4632"><a href="#rename_table-4632"><span class="linenos">4632</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span> -</span><span id="rename_table-4633"><a href="#rename_table-4633"><span class="linenos">4633</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> -</span><span id="rename_table-4634"><a href="#rename_table-4634"><span class="linenos">4634</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span> -</span><span id="rename_table-4635"><a href="#rename_table-4635"><span class="linenos">4635</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span> -</span><span id="rename_table-4636"><a href="#rename_table-4636"><span class="linenos">4636</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span> -</span><span id="rename_table-4637"><a href="#rename_table-4637"><span class="linenos">4637</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span> -</span><span id="rename_table-4638"><a href="#rename_table-4638"><span class="linenos">4638</span></a> <span class="p">],</span> -</span><span id="rename_table-4639"><a href="#rename_table-4639"><span class="linenos">4639</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="rename_table-4758"><a href="#rename_table-4758"><span class="linenos">4758</span></a><span class="k">def</span> <span class="nf">rename_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">,</span> <span class="n">new_name</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">Table</span><span class="p">)</span> <span class="o">-></span> <span class="n">AlterTable</span><span class="p">:</span> +</span><span id="rename_table-4759"><a href="#rename_table-4759"><span class="linenos">4759</span></a><span class="w"> </span><span class="sd">"""Build ALTER TABLE... RENAME... expression</span> +</span><span id="rename_table-4760"><a href="#rename_table-4760"><span class="linenos">4760</span></a> +</span><span id="rename_table-4761"><a href="#rename_table-4761"><span class="linenos">4761</span></a><span class="sd"> Args:</span> +</span><span id="rename_table-4762"><a href="#rename_table-4762"><span class="linenos">4762</span></a><span class="sd"> old_name: The old name of the table</span> +</span><span id="rename_table-4763"><a href="#rename_table-4763"><span class="linenos">4763</span></a><span class="sd"> new_name: The new name of the table</span> +</span><span id="rename_table-4764"><a href="#rename_table-4764"><span class="linenos">4764</span></a> +</span><span id="rename_table-4765"><a href="#rename_table-4765"><span class="linenos">4765</span></a><span class="sd"> Returns:</span> +</span><span id="rename_table-4766"><a href="#rename_table-4766"><span class="linenos">4766</span></a><span class="sd"> Alter table expression</span> +</span><span id="rename_table-4767"><a href="#rename_table-4767"><span class="linenos">4767</span></a><span class="sd"> """</span> +</span><span id="rename_table-4768"><a href="#rename_table-4768"><span class="linenos">4768</span></a> <span class="n">old_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">old_name</span><span class="p">)</span> +</span><span id="rename_table-4769"><a href="#rename_table-4769"><span class="linenos">4769</span></a> <span class="n">new_table</span> <span class="o">=</span> <span class="n">to_table</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> +</span><span id="rename_table-4770"><a href="#rename_table-4770"><span class="linenos">4770</span></a> <span class="k">return</span> <span class="n">AlterTable</span><span class="p">(</span> +</span><span id="rename_table-4771"><a href="#rename_table-4771"><span class="linenos">4771</span></a> <span class="n">this</span><span class="o">=</span><span class="n">old_table</span><span class="p">,</span> +</span><span id="rename_table-4772"><a href="#rename_table-4772"><span class="linenos">4772</span></a> <span class="n">actions</span><span class="o">=</span><span class="p">[</span> +</span><span id="rename_table-4773"><a href="#rename_table-4773"><span class="linenos">4773</span></a> <span class="n">RenameTable</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_table</span><span class="p">),</span> +</span><span id="rename_table-4774"><a href="#rename_table-4774"><span class="linenos">4774</span></a> <span class="p">],</span> +</span><span id="rename_table-4775"><a href="#rename_table-4775"><span class="linenos">4775</span></a> <span class="p">)</span> </span></pre></div> @@ -42354,47 +43052,47 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#convert"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="convert-4642"><a href="#convert-4642"><span class="linenos">4642</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> -</span><span id="convert-4643"><a href="#convert-4643"><span class="linenos">4643</span></a><span class="w"> </span><span class="sd">"""Convert a python value into an expression object.</span> -</span><span id="convert-4644"><a href="#convert-4644"><span class="linenos">4644</span></a> -</span><span id="convert-4645"><a href="#convert-4645"><span class="linenos">4645</span></a><span class="sd"> Raises an error if a conversion is not possible.</span> -</span><span id="convert-4646"><a href="#convert-4646"><span class="linenos">4646</span></a> -</span><span id="convert-4647"><a href="#convert-4647"><span class="linenos">4647</span></a><span class="sd"> Args:</span> -</span><span id="convert-4648"><a href="#convert-4648"><span class="linenos">4648</span></a><span class="sd"> value (Any): a python object</span> -</span><span id="convert-4649"><a href="#convert-4649"><span class="linenos">4649</span></a> -</span><span id="convert-4650"><a href="#convert-4650"><span class="linenos">4650</span></a><span class="sd"> Returns:</span> -</span><span id="convert-4651"><a href="#convert-4651"><span class="linenos">4651</span></a><span class="sd"> Expression: the equivalent expression object</span> -</span><span id="convert-4652"><a href="#convert-4652"><span class="linenos">4652</span></a><span class="sd"> """</span> -</span><span id="convert-4653"><a href="#convert-4653"><span class="linenos">4653</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="convert-4654"><a href="#convert-4654"><span class="linenos">4654</span></a> <span class="k">return</span> <span class="n">value</span> -</span><span id="convert-4655"><a href="#convert-4655"><span class="linenos">4655</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="convert-4656"><a href="#convert-4656"><span class="linenos">4656</span></a> <span class="k">return</span> <span class="n">NULL</span> -</span><span id="convert-4657"><a href="#convert-4657"><span class="linenos">4657</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> -</span><span id="convert-4658"><a href="#convert-4658"><span class="linenos">4658</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span> -</span><span id="convert-4659"><a href="#convert-4659"><span class="linenos">4659</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="convert-4660"><a href="#convert-4660"><span class="linenos">4660</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="convert-4661"><a href="#convert-4661"><span class="linenos">4661</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> -</span><span id="convert-4662"><a href="#convert-4662"><span class="linenos">4662</span></a> <span class="k">return</span> <span class="n">NULL</span> -</span><span id="convert-4663"><a href="#convert-4663"><span class="linenos">4663</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span> -</span><span id="convert-4664"><a href="#convert-4664"><span class="linenos">4664</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="convert-4665"><a href="#convert-4665"><span class="linenos">4665</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span> -</span><span id="convert-4666"><a href="#convert-4666"><span class="linenos">4666</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> -</span><span id="convert-4667"><a href="#convert-4667"><span class="linenos">4667</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="convert-4668"><a href="#convert-4668"><span class="linenos">4668</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> -</span><span id="convert-4669"><a href="#convert-4669"><span class="linenos">4669</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> -</span><span id="convert-4670"><a href="#convert-4670"><span class="linenos">4670</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span> -</span><span id="convert-4671"><a href="#convert-4671"><span class="linenos">4671</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span> -</span><span id="convert-4672"><a href="#convert-4672"><span class="linenos">4672</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span> -</span><span id="convert-4673"><a href="#convert-4673"><span class="linenos">4673</span></a> <span class="p">)</span> -</span><span id="convert-4674"><a href="#convert-4674"><span class="linenos">4674</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span> -</span><span id="convert-4675"><a href="#convert-4675"><span class="linenos">4675</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span> -</span><span id="convert-4676"><a href="#convert-4676"><span class="linenos">4676</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span> -</span><span id="convert-4677"><a href="#convert-4677"><span class="linenos">4677</span></a> <span class="p">)</span> -</span><span id="convert-4678"><a href="#convert-4678"><span class="linenos">4678</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span> -</span><span id="convert-4679"><a href="#convert-4679"><span class="linenos">4679</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span> -</span><span id="convert-4680"><a href="#convert-4680"><span class="linenos">4680</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">))</span> -</span><span id="convert-4681"><a href="#convert-4681"><span class="linenos">4681</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span> -</span><span id="convert-4682"><a href="#convert-4682"><span class="linenos">4682</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="convert-4778"><a href="#convert-4778"><span class="linenos">4778</span></a><span class="k">def</span> <span class="nf">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> +</span><span id="convert-4779"><a href="#convert-4779"><span class="linenos">4779</span></a><span class="w"> </span><span class="sd">"""Convert a python value into an expression object.</span> +</span><span id="convert-4780"><a href="#convert-4780"><span class="linenos">4780</span></a> +</span><span id="convert-4781"><a href="#convert-4781"><span class="linenos">4781</span></a><span class="sd"> Raises an error if a conversion is not possible.</span> +</span><span id="convert-4782"><a href="#convert-4782"><span class="linenos">4782</span></a> +</span><span id="convert-4783"><a href="#convert-4783"><span class="linenos">4783</span></a><span class="sd"> Args:</span> +</span><span id="convert-4784"><a href="#convert-4784"><span class="linenos">4784</span></a><span class="sd"> value (Any): a python object</span> +</span><span id="convert-4785"><a href="#convert-4785"><span class="linenos">4785</span></a> +</span><span id="convert-4786"><a href="#convert-4786"><span class="linenos">4786</span></a><span class="sd"> Returns:</span> +</span><span id="convert-4787"><a href="#convert-4787"><span class="linenos">4787</span></a><span class="sd"> Expression: the equivalent expression object</span> +</span><span id="convert-4788"><a href="#convert-4788"><span class="linenos">4788</span></a><span class="sd"> """</span> +</span><span id="convert-4789"><a href="#convert-4789"><span class="linenos">4789</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="convert-4790"><a href="#convert-4790"><span class="linenos">4790</span></a> <span class="k">return</span> <span class="n">value</span> +</span><span id="convert-4791"><a href="#convert-4791"><span class="linenos">4791</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="convert-4792"><a href="#convert-4792"><span class="linenos">4792</span></a> <span class="k">return</span> <span class="n">NULL</span> +</span><span id="convert-4793"><a href="#convert-4793"><span class="linenos">4793</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">bool</span><span class="p">):</span> +</span><span id="convert-4794"><a href="#convert-4794"><span class="linenos">4794</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">)</span> +</span><span id="convert-4795"><a href="#convert-4795"><span class="linenos">4795</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="convert-4796"><a href="#convert-4796"><span class="linenos">4796</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="convert-4797"><a href="#convert-4797"><span class="linenos">4797</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">float</span><span class="p">)</span> <span class="ow">and</span> <span class="n">math</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">value</span><span class="p">):</span> +</span><span id="convert-4798"><a href="#convert-4798"><span class="linenos">4798</span></a> <span class="k">return</span> <span class="n">NULL</span> +</span><span id="convert-4799"><a href="#convert-4799"><span class="linenos">4799</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">numbers</span><span class="o">.</span><span class="n">Number</span><span class="p">):</span> +</span><span id="convert-4800"><a href="#convert-4800"><span class="linenos">4800</span></a> <span class="k">return</span> <span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="convert-4801"><a href="#convert-4801"><span class="linenos">4801</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">tuple</span><span class="p">):</span> +</span><span id="convert-4802"><a href="#convert-4802"><span class="linenos">4802</span></a> <span class="k">return</span> <span class="n">Tuple</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> +</span><span id="convert-4803"><a href="#convert-4803"><span class="linenos">4803</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="convert-4804"><a href="#convert-4804"><span class="linenos">4804</span></a> <span class="k">return</span> <span class="n">Array</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="p">])</span> +</span><span id="convert-4805"><a href="#convert-4805"><span class="linenos">4805</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="nb">dict</span><span class="p">):</span> +</span><span id="convert-4806"><a href="#convert-4806"><span class="linenos">4806</span></a> <span class="k">return</span> <span class="n">Map</span><span class="p">(</span> +</span><span id="convert-4807"><a href="#convert-4807"><span class="linenos">4807</span></a> <span class="n">keys</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">value</span><span class="p">],</span> +</span><span id="convert-4808"><a href="#convert-4808"><span class="linenos">4808</span></a> <span class="n">values</span><span class="o">=</span><span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">v</span><span class="p">)</span> <span class="k">for</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">value</span><span class="o">.</span><span class="n">values</span><span class="p">()],</span> +</span><span id="convert-4809"><a href="#convert-4809"><span class="linenos">4809</span></a> <span class="p">)</span> +</span><span id="convert-4810"><a href="#convert-4810"><span class="linenos">4810</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">datetime</span><span class="p">):</span> +</span><span id="convert-4811"><a href="#convert-4811"><span class="linenos">4811</span></a> <span class="n">datetime_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span> +</span><span id="convert-4812"><a href="#convert-4812"><span class="linenos">4812</span></a> <span class="p">(</span><span class="n">value</span> <span class="k">if</span> <span class="n">value</span><span class="o">.</span><span class="n">tzinfo</span> <span class="k">else</span> <span class="n">value</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">tzinfo</span><span class="o">=</span><span class="n">datetime</span><span class="o">.</span><span class="n">timezone</span><span class="o">.</span><span class="n">utc</span><span class="p">))</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span> +</span><span id="convert-4813"><a href="#convert-4813"><span class="linenos">4813</span></a> <span class="p">)</span> +</span><span id="convert-4814"><a href="#convert-4814"><span class="linenos">4814</span></a> <span class="k">return</span> <span class="n">TimeStrToTime</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">datetime_literal</span><span class="p">)</span> +</span><span id="convert-4815"><a href="#convert-4815"><span class="linenos">4815</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">value</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="p">):</span> +</span><span id="convert-4816"><a href="#convert-4816"><span class="linenos">4816</span></a> <span class="n">date_literal</span> <span class="o">=</span> <span class="n">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">value</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%Y-%m-</span><span class="si">%d</span><span class="s2">"</span><span class="p">))</span> +</span><span id="convert-4817"><a href="#convert-4817"><span class="linenos">4817</span></a> <span class="k">return</span> <span class="n">DateStrToDate</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">date_literal</span><span class="p">)</span> +</span><span id="convert-4818"><a href="#convert-4818"><span class="linenos">4818</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot convert </span><span class="si">{</span><span class="n">value</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span></pre></div> @@ -42422,32 +43120,32 @@ in order to help with type inference.</li> <div class="attr function"> <span class="def">def</span> - <span class="name">replace_children</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">fun</span></span><span class="return-annotation">):</span></span> + <span class="name">replace_children</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">expression</span>, </span><span class="param"><span class="n">fun</span>, </span><span class="param"><span class="o">*</span><span class="n">args</span>, </span><span class="param"><span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="replace_children-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#replace_children"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-4685"><a href="#replace_children-4685"><span class="linenos">4685</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">):</span> -</span><span id="replace_children-4686"><a href="#replace_children-4686"><span class="linenos">4686</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="replace_children-4687"><a href="#replace_children-4687"><span class="linenos">4687</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -> exp.</span> -</span><span id="replace_children-4688"><a href="#replace_children-4688"><span class="linenos">4688</span></a><span class="sd"> """</span> -</span><span id="replace_children-4689"><a href="#replace_children-4689"><span class="linenos">4689</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="replace_children-4690"><a href="#replace_children-4690"><span class="linenos">4690</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> -</span><span id="replace_children-4691"><a href="#replace_children-4691"><span class="linenos">4691</span></a> -</span><span id="replace_children-4692"><a href="#replace_children-4692"><span class="linenos">4692</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span> -</span><span id="replace_children-4693"><a href="#replace_children-4693"><span class="linenos">4693</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="replace_children-4694"><a href="#replace_children-4694"><span class="linenos">4694</span></a> -</span><span id="replace_children-4695"><a href="#replace_children-4695"><span class="linenos">4695</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span> -</span><span id="replace_children-4696"><a href="#replace_children-4696"><span class="linenos">4696</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="replace_children-4697"><a href="#replace_children-4697"><span class="linenos">4697</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">)):</span> -</span><span id="replace_children-4698"><a href="#replace_children-4698"><span class="linenos">4698</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span> -</span><span id="replace_children-4699"><a href="#replace_children-4699"><span class="linenos">4699</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="replace_children-4700"><a href="#replace_children-4700"><span class="linenos">4700</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span> -</span><span id="replace_children-4701"><a href="#replace_children-4701"><span class="linenos">4701</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="replace_children-4702"><a href="#replace_children-4702"><span class="linenos">4702</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span> -</span><span id="replace_children-4703"><a href="#replace_children-4703"><span class="linenos">4703</span></a> -</span><span id="replace_children-4704"><a href="#replace_children-4704"><span class="linenos">4704</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="replace_children-4821"><a href="#replace_children-4821"><span class="linenos">4821</span></a><span class="k">def</span> <span class="nf">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">fun</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="replace_children-4822"><a href="#replace_children-4822"><span class="linenos">4822</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="replace_children-4823"><a href="#replace_children-4823"><span class="linenos">4823</span></a><span class="sd"> Replace children of an expression with the result of a lambda fun(child) -> exp.</span> +</span><span id="replace_children-4824"><a href="#replace_children-4824"><span class="linenos">4824</span></a><span class="sd"> """</span> +</span><span id="replace_children-4825"><a href="#replace_children-4825"><span class="linenos">4825</span></a> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="replace_children-4826"><a href="#replace_children-4826"><span class="linenos">4826</span></a> <span class="n">is_list_arg</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">v</span><span class="p">,</span> <span class="nb">list</span><span class="p">)</span> +</span><span id="replace_children-4827"><a href="#replace_children-4827"><span class="linenos">4827</span></a> +</span><span id="replace_children-4828"><a href="#replace_children-4828"><span class="linenos">4828</span></a> <span class="n">child_nodes</span> <span class="o">=</span> <span class="n">v</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="p">[</span><span class="n">v</span><span class="p">]</span> +</span><span id="replace_children-4829"><a href="#replace_children-4829"><span class="linenos">4829</span></a> <span class="n">new_child_nodes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="replace_children-4830"><a href="#replace_children-4830"><span class="linenos">4830</span></a> +</span><span id="replace_children-4831"><a href="#replace_children-4831"><span class="linenos">4831</span></a> <span class="k">for</span> <span class="n">cn</span> <span class="ow">in</span> <span class="n">child_nodes</span><span class="p">:</span> +</span><span id="replace_children-4832"><a href="#replace_children-4832"><span class="linenos">4832</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="replace_children-4833"><a href="#replace_children-4833"><span class="linenos">4833</span></a> <span class="k">for</span> <span class="n">child_node</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">fun</span><span class="p">(</span><span class="n">cn</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)):</span> +</span><span id="replace_children-4834"><a href="#replace_children-4834"><span class="linenos">4834</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_node</span><span class="p">)</span> +</span><span id="replace_children-4835"><a href="#replace_children-4835"><span class="linenos">4835</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="replace_children-4836"><a href="#replace_children-4836"><span class="linenos">4836</span></a> <span class="n">child_node</span><span class="o">.</span><span class="n">arg_key</span> <span class="o">=</span> <span class="n">k</span> +</span><span id="replace_children-4837"><a href="#replace_children-4837"><span class="linenos">4837</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="replace_children-4838"><a href="#replace_children-4838"><span class="linenos">4838</span></a> <span class="n">new_child_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">cn</span><span class="p">)</span> +</span><span id="replace_children-4839"><a href="#replace_children-4839"><span class="linenos">4839</span></a> +</span><span id="replace_children-4840"><a href="#replace_children-4840"><span class="linenos">4840</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="o">=</span> <span class="n">new_child_nodes</span> <span class="k">if</span> <span class="n">is_list_arg</span> <span class="k">else</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">new_child_nodes</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> </span></pre></div> @@ -42467,22 +43165,22 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#column_table_names"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-4707"><a href="#column_table_names-4707"><span class="linenos">4707</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="column_table_names-4708"><a href="#column_table_names-4708"><span class="linenos">4708</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="column_table_names-4709"><a href="#column_table_names-4709"><span class="linenos">4709</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span> -</span><span id="column_table_names-4710"><a href="#column_table_names-4710"><span class="linenos">4710</span></a> -</span><span id="column_table_names-4711"><a href="#column_table_names-4711"><span class="linenos">4711</span></a><span class="sd"> Example:</span> -</span><span id="column_table_names-4712"><a href="#column_table_names-4712"><span class="linenos">4712</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="column_table_names-4713"><a href="#column_table_names-4713"><span class="linenos">4713</span></a><span class="sd"> >>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e"))</span> -</span><span id="column_table_names-4714"><a href="#column_table_names-4714"><span class="linenos">4714</span></a><span class="sd"> ['c', 'a']</span> -</span><span id="column_table_names-4715"><a href="#column_table_names-4715"><span class="linenos">4715</span></a> -</span><span id="column_table_names-4716"><a href="#column_table_names-4716"><span class="linenos">4716</span></a><span class="sd"> Args:</span> -</span><span id="column_table_names-4717"><a href="#column_table_names-4717"><span class="linenos">4717</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span> -</span><span id="column_table_names-4718"><a href="#column_table_names-4718"><span class="linenos">4718</span></a> -</span><span id="column_table_names-4719"><a href="#column_table_names-4719"><span class="linenos">4719</span></a><span class="sd"> Returns:</span> -</span><span id="column_table_names-4720"><a href="#column_table_names-4720"><span class="linenos">4720</span></a><span class="sd"> list: A list of unique names</span> -</span><span id="column_table_names-4721"><a href="#column_table_names-4721"><span class="linenos">4721</span></a><span class="sd"> """</span> -</span><span id="column_table_names-4722"><a href="#column_table_names-4722"><span class="linenos">4722</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="column_table_names-4843"><a href="#column_table_names-4843"><span class="linenos">4843</span></a><span class="k">def</span> <span class="nf">column_table_names</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="column_table_names-4844"><a href="#column_table_names-4844"><span class="linenos">4844</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="column_table_names-4845"><a href="#column_table_names-4845"><span class="linenos">4845</span></a><span class="sd"> Return all table names referenced through columns in an expression.</span> +</span><span id="column_table_names-4846"><a href="#column_table_names-4846"><span class="linenos">4846</span></a> +</span><span id="column_table_names-4847"><a href="#column_table_names-4847"><span class="linenos">4847</span></a><span class="sd"> Example:</span> +</span><span id="column_table_names-4848"><a href="#column_table_names-4848"><span class="linenos">4848</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="column_table_names-4849"><a href="#column_table_names-4849"><span class="linenos">4849</span></a><span class="sd"> >>> column_table_names(sqlglot.parse_one("a.b AND c.d AND c.e"))</span> +</span><span id="column_table_names-4850"><a href="#column_table_names-4850"><span class="linenos">4850</span></a><span class="sd"> ['c', 'a']</span> +</span><span id="column_table_names-4851"><a href="#column_table_names-4851"><span class="linenos">4851</span></a> +</span><span id="column_table_names-4852"><a href="#column_table_names-4852"><span class="linenos">4852</span></a><span class="sd"> Args:</span> +</span><span id="column_table_names-4853"><a href="#column_table_names-4853"><span class="linenos">4853</span></a><span class="sd"> expression (sqlglot.Expression): expression to find table names</span> +</span><span id="column_table_names-4854"><a href="#column_table_names-4854"><span class="linenos">4854</span></a> +</span><span id="column_table_names-4855"><a href="#column_table_names-4855"><span class="linenos">4855</span></a><span class="sd"> Returns:</span> +</span><span id="column_table_names-4856"><a href="#column_table_names-4856"><span class="linenos">4856</span></a><span class="sd"> list: A list of unique names</span> +</span><span id="column_table_names-4857"><a href="#column_table_names-4857"><span class="linenos">4857</span></a><span class="sd"> """</span> +</span><span id="column_table_names-4858"><a href="#column_table_names-4858"><span class="linenos">4858</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">dict</span><span class="o">.</span><span class="n">fromkeys</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">Column</span><span class="p">)))</span> </span></pre></div> @@ -42525,35 +43223,35 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#table_name"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-4725"><a href="#table_name-4725"><span class="linenos">4725</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="table_name-4726"><a href="#table_name-4726"><span class="linenos">4726</span></a><span class="w"> </span><span class="sd">"""Get the full name of a table as a string.</span> -</span><span id="table_name-4727"><a href="#table_name-4727"><span class="linenos">4727</span></a> -</span><span id="table_name-4728"><a href="#table_name-4728"><span class="linenos">4728</span></a><span class="sd"> Args:</span> -</span><span id="table_name-4729"><a href="#table_name-4729"><span class="linenos">4729</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span> -</span><span id="table_name-4730"><a href="#table_name-4730"><span class="linenos">4730</span></a> -</span><span id="table_name-4731"><a href="#table_name-4731"><span class="linenos">4731</span></a><span class="sd"> Examples:</span> -</span><span id="table_name-4732"><a href="#table_name-4732"><span class="linenos">4732</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> -</span><span id="table_name-4733"><a href="#table_name-4733"><span class="linenos">4733</span></a><span class="sd"> >>> table_name(parse_one("select * from a.b.c").find(exp.Table))</span> -</span><span id="table_name-4734"><a href="#table_name-4734"><span class="linenos">4734</span></a><span class="sd"> 'a.b.c'</span> -</span><span id="table_name-4735"><a href="#table_name-4735"><span class="linenos">4735</span></a> -</span><span id="table_name-4736"><a href="#table_name-4736"><span class="linenos">4736</span></a><span class="sd"> Returns:</span> -</span><span id="table_name-4737"><a href="#table_name-4737"><span class="linenos">4737</span></a><span class="sd"> The table name.</span> -</span><span id="table_name-4738"><a href="#table_name-4738"><span class="linenos">4738</span></a><span class="sd"> """</span> -</span><span id="table_name-4739"><a href="#table_name-4739"><span class="linenos">4739</span></a> -</span><span id="table_name-4740"><a href="#table_name-4740"><span class="linenos">4740</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span> -</span><span id="table_name-4741"><a href="#table_name-4741"><span class="linenos">4741</span></a> -</span><span id="table_name-4742"><a href="#table_name-4742"><span class="linenos">4742</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> -</span><span id="table_name-4743"><a href="#table_name-4743"><span class="linenos">4743</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="table_name-4744"><a href="#table_name-4744"><span class="linenos">4744</span></a> -</span><span id="table_name-4745"><a href="#table_name-4745"><span class="linenos">4745</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="table_name-4746"><a href="#table_name-4746"><span class="linenos">4746</span></a> <span class="n">part</span> -</span><span id="table_name-4747"><a href="#table_name-4747"><span class="linenos">4747</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="table_name-4748"><a href="#table_name-4748"><span class="linenos">4748</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">),</span> -</span><span id="table_name-4749"><a href="#table_name-4749"><span class="linenos">4749</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">),</span> -</span><span id="table_name-4750"><a href="#table_name-4750"><span class="linenos">4750</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> -</span><span id="table_name-4751"><a href="#table_name-4751"><span class="linenos">4751</span></a> <span class="p">)</span> -</span><span id="table_name-4752"><a href="#table_name-4752"><span class="linenos">4752</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="table_name-4753"><a href="#table_name-4753"><span class="linenos">4753</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="table_name-4861"><a href="#table_name-4861"><span class="linenos">4861</span></a><span class="k">def</span> <span class="nf">table_name</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="table_name-4862"><a href="#table_name-4862"><span class="linenos">4862</span></a><span class="w"> </span><span class="sd">"""Get the full name of a table as a string.</span> +</span><span id="table_name-4863"><a href="#table_name-4863"><span class="linenos">4863</span></a> +</span><span id="table_name-4864"><a href="#table_name-4864"><span class="linenos">4864</span></a><span class="sd"> Args:</span> +</span><span id="table_name-4865"><a href="#table_name-4865"><span class="linenos">4865</span></a><span class="sd"> table (exp.Table | str): table expression node or string.</span> +</span><span id="table_name-4866"><a href="#table_name-4866"><span class="linenos">4866</span></a> +</span><span id="table_name-4867"><a href="#table_name-4867"><span class="linenos">4867</span></a><span class="sd"> Examples:</span> +</span><span id="table_name-4868"><a href="#table_name-4868"><span class="linenos">4868</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> +</span><span id="table_name-4869"><a href="#table_name-4869"><span class="linenos">4869</span></a><span class="sd"> >>> table_name(parse_one("select * from a.b.c").find(exp.Table))</span> +</span><span id="table_name-4870"><a href="#table_name-4870"><span class="linenos">4870</span></a><span class="sd"> 'a.b.c'</span> +</span><span id="table_name-4871"><a href="#table_name-4871"><span class="linenos">4871</span></a> +</span><span id="table_name-4872"><a href="#table_name-4872"><span class="linenos">4872</span></a><span class="sd"> Returns:</span> +</span><span id="table_name-4873"><a href="#table_name-4873"><span class="linenos">4873</span></a><span class="sd"> The table name.</span> +</span><span id="table_name-4874"><a href="#table_name-4874"><span class="linenos">4874</span></a><span class="sd"> """</span> +</span><span id="table_name-4875"><a href="#table_name-4875"><span class="linenos">4875</span></a> +</span><span id="table_name-4876"><a href="#table_name-4876"><span class="linenos">4876</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">maybe_parse</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">into</span><span class="o">=</span><span class="n">Table</span><span class="p">)</span> +</span><span id="table_name-4877"><a href="#table_name-4877"><span class="linenos">4877</span></a> +</span><span id="table_name-4878"><a href="#table_name-4878"><span class="linenos">4878</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> +</span><span id="table_name-4879"><a href="#table_name-4879"><span class="linenos">4879</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot parse </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="table_name-4880"><a href="#table_name-4880"><span class="linenos">4880</span></a> +</span><span id="table_name-4881"><a href="#table_name-4881"><span class="linenos">4881</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="table_name-4882"><a href="#table_name-4882"><span class="linenos">4882</span></a> <span class="n">part</span> +</span><span id="table_name-4883"><a href="#table_name-4883"><span class="linenos">4883</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="table_name-4884"><a href="#table_name-4884"><span class="linenos">4884</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">),</span> +</span><span id="table_name-4885"><a href="#table_name-4885"><span class="linenos">4885</span></a> <span class="n">table</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"db"</span><span class="p">),</span> +</span><span id="table_name-4886"><a href="#table_name-4886"><span class="linenos">4886</span></a> <span class="n">table</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> +</span><span id="table_name-4887"><a href="#table_name-4887"><span class="linenos">4887</span></a> <span class="p">)</span> +</span><span id="table_name-4888"><a href="#table_name-4888"><span class="linenos">4888</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="table_name-4889"><a href="#table_name-4889"><span class="linenos">4889</span></a> <span class="p">)</span> </span></pre></div> @@ -42596,33 +43294,33 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#replace_tables"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-4756"><a href="#replace_tables-4756"><span class="linenos">4756</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span> -</span><span id="replace_tables-4757"><a href="#replace_tables-4757"><span class="linenos">4757</span></a><span class="w"> </span><span class="sd">"""Replace all tables in expression according to the mapping.</span> -</span><span id="replace_tables-4758"><a href="#replace_tables-4758"><span class="linenos">4758</span></a> -</span><span id="replace_tables-4759"><a href="#replace_tables-4759"><span class="linenos">4759</span></a><span class="sd"> Args:</span> -</span><span id="replace_tables-4760"><a href="#replace_tables-4760"><span class="linenos">4760</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> -</span><span id="replace_tables-4761"><a href="#replace_tables-4761"><span class="linenos">4761</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span> -</span><span id="replace_tables-4762"><a href="#replace_tables-4762"><span class="linenos">4762</span></a> -</span><span id="replace_tables-4763"><a href="#replace_tables-4763"><span class="linenos">4763</span></a><span class="sd"> Examples:</span> -</span><span id="replace_tables-4764"><a href="#replace_tables-4764"><span class="linenos">4764</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> -</span><span id="replace_tables-4765"><a href="#replace_tables-4765"><span class="linenos">4765</span></a><span class="sd"> >>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql()</span> -</span><span id="replace_tables-4766"><a href="#replace_tables-4766"><span class="linenos">4766</span></a><span class="sd"> 'SELECT * FROM c'</span> -</span><span id="replace_tables-4767"><a href="#replace_tables-4767"><span class="linenos">4767</span></a> -</span><span id="replace_tables-4768"><a href="#replace_tables-4768"><span class="linenos">4768</span></a><span class="sd"> Returns:</span> -</span><span id="replace_tables-4769"><a href="#replace_tables-4769"><span class="linenos">4769</span></a><span class="sd"> The mapped expression.</span> -</span><span id="replace_tables-4770"><a href="#replace_tables-4770"><span class="linenos">4770</span></a><span class="sd"> """</span> -</span><span id="replace_tables-4771"><a href="#replace_tables-4771"><span class="linenos">4771</span></a> -</span><span id="replace_tables-4772"><a href="#replace_tables-4772"><span class="linenos">4772</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span> -</span><span id="replace_tables-4773"><a href="#replace_tables-4773"><span class="linenos">4773</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> -</span><span id="replace_tables-4774"><a href="#replace_tables-4774"><span class="linenos">4774</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span> -</span><span id="replace_tables-4775"><a href="#replace_tables-4775"><span class="linenos">4775</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> -</span><span id="replace_tables-4776"><a href="#replace_tables-4776"><span class="linenos">4776</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span> -</span><span id="replace_tables-4777"><a href="#replace_tables-4777"><span class="linenos">4777</span></a> <span class="n">new_name</span><span class="p">,</span> -</span><span id="replace_tables-4778"><a href="#replace_tables-4778"><span class="linenos">4778</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">)},</span> -</span><span id="replace_tables-4779"><a href="#replace_tables-4779"><span class="linenos">4779</span></a> <span class="p">)</span> -</span><span id="replace_tables-4780"><a href="#replace_tables-4780"><span class="linenos">4780</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="replace_tables-4781"><a href="#replace_tables-4781"><span class="linenos">4781</span></a> -</span><span id="replace_tables-4782"><a href="#replace_tables-4782"><span class="linenos">4782</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="replace_tables-4892"><a href="#replace_tables-4892"><span class="linenos">4892</span></a><span class="k">def</span> <span class="nf">replace_tables</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">mapping</span><span class="p">):</span> +</span><span id="replace_tables-4893"><a href="#replace_tables-4893"><span class="linenos">4893</span></a><span class="w"> </span><span class="sd">"""Replace all tables in expression according to the mapping.</span> +</span><span id="replace_tables-4894"><a href="#replace_tables-4894"><span class="linenos">4894</span></a> +</span><span id="replace_tables-4895"><a href="#replace_tables-4895"><span class="linenos">4895</span></a><span class="sd"> Args:</span> +</span><span id="replace_tables-4896"><a href="#replace_tables-4896"><span class="linenos">4896</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> +</span><span id="replace_tables-4897"><a href="#replace_tables-4897"><span class="linenos">4897</span></a><span class="sd"> mapping (Dict[str, str]): mapping of table names.</span> +</span><span id="replace_tables-4898"><a href="#replace_tables-4898"><span class="linenos">4898</span></a> +</span><span id="replace_tables-4899"><a href="#replace_tables-4899"><span class="linenos">4899</span></a><span class="sd"> Examples:</span> +</span><span id="replace_tables-4900"><a href="#replace_tables-4900"><span class="linenos">4900</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> +</span><span id="replace_tables-4901"><a href="#replace_tables-4901"><span class="linenos">4901</span></a><span class="sd"> >>> replace_tables(parse_one("select * from a.b"), {"a.b": "c"}).sql()</span> +</span><span id="replace_tables-4902"><a href="#replace_tables-4902"><span class="linenos">4902</span></a><span class="sd"> 'SELECT * FROM c'</span> +</span><span id="replace_tables-4903"><a href="#replace_tables-4903"><span class="linenos">4903</span></a> +</span><span id="replace_tables-4904"><a href="#replace_tables-4904"><span class="linenos">4904</span></a><span class="sd"> Returns:</span> +</span><span id="replace_tables-4905"><a href="#replace_tables-4905"><span class="linenos">4905</span></a><span class="sd"> The mapped expression.</span> +</span><span id="replace_tables-4906"><a href="#replace_tables-4906"><span class="linenos">4906</span></a><span class="sd"> """</span> +</span><span id="replace_tables-4907"><a href="#replace_tables-4907"><span class="linenos">4907</span></a> +</span><span id="replace_tables-4908"><a href="#replace_tables-4908"><span class="linenos">4908</span></a> <span class="k">def</span> <span class="nf">_replace_tables</span><span class="p">(</span><span class="n">node</span><span class="p">):</span> +</span><span id="replace_tables-4909"><a href="#replace_tables-4909"><span class="linenos">4909</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> +</span><span id="replace_tables-4910"><a href="#replace_tables-4910"><span class="linenos">4910</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">mapping</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">))</span> +</span><span id="replace_tables-4911"><a href="#replace_tables-4911"><span class="linenos">4911</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> +</span><span id="replace_tables-4912"><a href="#replace_tables-4912"><span class="linenos">4912</span></a> <span class="k">return</span> <span class="n">to_table</span><span class="p">(</span> +</span><span id="replace_tables-4913"><a href="#replace_tables-4913"><span class="linenos">4913</span></a> <span class="n">new_name</span><span class="p">,</span> +</span><span id="replace_tables-4914"><a href="#replace_tables-4914"><span class="linenos">4914</span></a> <span class="o">**</span><span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">v</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">k</span> <span class="ow">not</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"this"</span><span class="p">,</span> <span class="s2">"db"</span><span class="p">,</span> <span class="s2">"catalog"</span><span class="p">)},</span> +</span><span id="replace_tables-4915"><a href="#replace_tables-4915"><span class="linenos">4915</span></a> <span class="p">)</span> +</span><span id="replace_tables-4916"><a href="#replace_tables-4916"><span class="linenos">4916</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="replace_tables-4917"><a href="#replace_tables-4917"><span class="linenos">4917</span></a> +</span><span id="replace_tables-4918"><a href="#replace_tables-4918"><span class="linenos">4918</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_tables</span><span class="p">)</span> </span></pre></div> @@ -42666,39 +43364,39 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#replace_placeholders"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-4785"><a href="#replace_placeholders-4785"><span class="linenos">4785</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="replace_placeholders-4786"><a href="#replace_placeholders-4786"><span class="linenos">4786</span></a><span class="w"> </span><span class="sd">"""Replace placeholders in an expression.</span> -</span><span id="replace_placeholders-4787"><a href="#replace_placeholders-4787"><span class="linenos">4787</span></a> -</span><span id="replace_placeholders-4788"><a href="#replace_placeholders-4788"><span class="linenos">4788</span></a><span class="sd"> Args:</span> -</span><span id="replace_placeholders-4789"><a href="#replace_placeholders-4789"><span class="linenos">4789</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> -</span><span id="replace_placeholders-4790"><a href="#replace_placeholders-4790"><span class="linenos">4790</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span> -</span><span id="replace_placeholders-4791"><a href="#replace_placeholders-4791"><span class="linenos">4791</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span> -</span><span id="replace_placeholders-4792"><a href="#replace_placeholders-4792"><span class="linenos">4792</span></a> -</span><span id="replace_placeholders-4793"><a href="#replace_placeholders-4793"><span class="linenos">4793</span></a><span class="sd"> Examples:</span> -</span><span id="replace_placeholders-4794"><a href="#replace_placeholders-4794"><span class="linenos">4794</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> -</span><span id="replace_placeholders-4795"><a href="#replace_placeholders-4795"><span class="linenos">4795</span></a><span class="sd"> >>> replace_placeholders(</span> -</span><span id="replace_placeholders-4796"><a href="#replace_placeholders-4796"><span class="linenos">4796</span></a><span class="sd"> ... parse_one("select * from :tbl where ? = ?"), "a", "b", tbl="foo"</span> -</span><span id="replace_placeholders-4797"><a href="#replace_placeholders-4797"><span class="linenos">4797</span></a><span class="sd"> ... ).sql()</span> -</span><span id="replace_placeholders-4798"><a href="#replace_placeholders-4798"><span class="linenos">4798</span></a><span class="sd"> 'SELECT * FROM foo WHERE a = b'</span> -</span><span id="replace_placeholders-4799"><a href="#replace_placeholders-4799"><span class="linenos">4799</span></a> -</span><span id="replace_placeholders-4800"><a href="#replace_placeholders-4800"><span class="linenos">4800</span></a><span class="sd"> Returns:</span> -</span><span id="replace_placeholders-4801"><a href="#replace_placeholders-4801"><span class="linenos">4801</span></a><span class="sd"> The mapped expression.</span> -</span><span id="replace_placeholders-4802"><a href="#replace_placeholders-4802"><span class="linenos">4802</span></a><span class="sd"> """</span> -</span><span id="replace_placeholders-4803"><a href="#replace_placeholders-4803"><span class="linenos">4803</span></a> -</span><span id="replace_placeholders-4804"><a href="#replace_placeholders-4804"><span class="linenos">4804</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="replace_placeholders-4805"><a href="#replace_placeholders-4805"><span class="linenos">4805</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span> -</span><span id="replace_placeholders-4806"><a href="#replace_placeholders-4806"><span class="linenos">4806</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> -</span><span id="replace_placeholders-4807"><a href="#replace_placeholders-4807"><span class="linenos">4807</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="replace_placeholders-4808"><a href="#replace_placeholders-4808"><span class="linenos">4808</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> -</span><span id="replace_placeholders-4809"><a href="#replace_placeholders-4809"><span class="linenos">4809</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> -</span><span id="replace_placeholders-4810"><a href="#replace_placeholders-4810"><span class="linenos">4810</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="replace_placeholders-4811"><a href="#replace_placeholders-4811"><span class="linenos">4811</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="replace_placeholders-4812"><a href="#replace_placeholders-4812"><span class="linenos">4812</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span> -</span><span id="replace_placeholders-4813"><a href="#replace_placeholders-4813"><span class="linenos">4813</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span> -</span><span id="replace_placeholders-4814"><a href="#replace_placeholders-4814"><span class="linenos">4814</span></a> <span class="k">pass</span> -</span><span id="replace_placeholders-4815"><a href="#replace_placeholders-4815"><span class="linenos">4815</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="replace_placeholders-4816"><a href="#replace_placeholders-4816"><span class="linenos">4816</span></a> -</span><span id="replace_placeholders-4817"><a href="#replace_placeholders-4817"><span class="linenos">4817</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="replace_placeholders-4921"><a href="#replace_placeholders-4921"><span class="linenos">4921</span></a><span class="k">def</span> <span class="nf">replace_placeholders</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="replace_placeholders-4922"><a href="#replace_placeholders-4922"><span class="linenos">4922</span></a><span class="w"> </span><span class="sd">"""Replace placeholders in an expression.</span> +</span><span id="replace_placeholders-4923"><a href="#replace_placeholders-4923"><span class="linenos">4923</span></a> +</span><span id="replace_placeholders-4924"><a href="#replace_placeholders-4924"><span class="linenos">4924</span></a><span class="sd"> Args:</span> +</span><span id="replace_placeholders-4925"><a href="#replace_placeholders-4925"><span class="linenos">4925</span></a><span class="sd"> expression (sqlglot.Expression): expression node to be transformed and replaced.</span> +</span><span id="replace_placeholders-4926"><a href="#replace_placeholders-4926"><span class="linenos">4926</span></a><span class="sd"> args: positional names that will substitute unnamed placeholders in the given order.</span> +</span><span id="replace_placeholders-4927"><a href="#replace_placeholders-4927"><span class="linenos">4927</span></a><span class="sd"> kwargs: keyword arguments that will substitute named placeholders.</span> +</span><span id="replace_placeholders-4928"><a href="#replace_placeholders-4928"><span class="linenos">4928</span></a> +</span><span id="replace_placeholders-4929"><a href="#replace_placeholders-4929"><span class="linenos">4929</span></a><span class="sd"> Examples:</span> +</span><span id="replace_placeholders-4930"><a href="#replace_placeholders-4930"><span class="linenos">4930</span></a><span class="sd"> >>> from sqlglot import exp, parse_one</span> +</span><span id="replace_placeholders-4931"><a href="#replace_placeholders-4931"><span class="linenos">4931</span></a><span class="sd"> >>> replace_placeholders(</span> +</span><span id="replace_placeholders-4932"><a href="#replace_placeholders-4932"><span class="linenos">4932</span></a><span class="sd"> ... parse_one("select * from :tbl where ? = ?"), "a", "b", tbl="foo"</span> +</span><span id="replace_placeholders-4933"><a href="#replace_placeholders-4933"><span class="linenos">4933</span></a><span class="sd"> ... ).sql()</span> +</span><span id="replace_placeholders-4934"><a href="#replace_placeholders-4934"><span class="linenos">4934</span></a><span class="sd"> 'SELECT * FROM foo WHERE a = b'</span> +</span><span id="replace_placeholders-4935"><a href="#replace_placeholders-4935"><span class="linenos">4935</span></a> +</span><span id="replace_placeholders-4936"><a href="#replace_placeholders-4936"><span class="linenos">4936</span></a><span class="sd"> Returns:</span> +</span><span id="replace_placeholders-4937"><a href="#replace_placeholders-4937"><span class="linenos">4937</span></a><span class="sd"> The mapped expression.</span> +</span><span id="replace_placeholders-4938"><a href="#replace_placeholders-4938"><span class="linenos">4938</span></a><span class="sd"> """</span> +</span><span id="replace_placeholders-4939"><a href="#replace_placeholders-4939"><span class="linenos">4939</span></a> +</span><span id="replace_placeholders-4940"><a href="#replace_placeholders-4940"><span class="linenos">4940</span></a> <span class="k">def</span> <span class="nf">_replace_placeholders</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="replace_placeholders-4941"><a href="#replace_placeholders-4941"><span class="linenos">4941</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Placeholder</span><span class="p">):</span> +</span><span id="replace_placeholders-4942"><a href="#replace_placeholders-4942"><span class="linenos">4942</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> +</span><span id="replace_placeholders-4943"><a href="#replace_placeholders-4943"><span class="linenos">4943</span></a> <span class="n">new_name</span> <span class="o">=</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="replace_placeholders-4944"><a href="#replace_placeholders-4944"><span class="linenos">4944</span></a> <span class="k">if</span> <span class="n">new_name</span><span class="p">:</span> +</span><span id="replace_placeholders-4945"><a href="#replace_placeholders-4945"><span class="linenos">4945</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="n">new_name</span><span class="p">)</span> +</span><span id="replace_placeholders-4946"><a href="#replace_placeholders-4946"><span class="linenos">4946</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="replace_placeholders-4947"><a href="#replace_placeholders-4947"><span class="linenos">4947</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="replace_placeholders-4948"><a href="#replace_placeholders-4948"><span class="linenos">4948</span></a> <span class="k">return</span> <span class="n">to_identifier</span><span class="p">(</span><span class="nb">next</span><span class="p">(</span><span class="n">args</span><span class="p">))</span> +</span><span id="replace_placeholders-4949"><a href="#replace_placeholders-4949"><span class="linenos">4949</span></a> <span class="k">except</span> <span class="ne">StopIteration</span><span class="p">:</span> +</span><span id="replace_placeholders-4950"><a href="#replace_placeholders-4950"><span class="linenos">4950</span></a> <span class="k">pass</span> +</span><span id="replace_placeholders-4951"><a href="#replace_placeholders-4951"><span class="linenos">4951</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="replace_placeholders-4952"><a href="#replace_placeholders-4952"><span class="linenos">4952</span></a> +</span><span id="replace_placeholders-4953"><a href="#replace_placeholders-4953"><span class="linenos">4953</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_replace_placeholders</span><span class="p">,</span> <span class="nb">iter</span><span class="p">(</span><span class="n">args</span><span class="p">),</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> </span></pre></div> @@ -42745,34 +43443,34 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#expand"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="expand-4820"><a href="#expand-4820"><span class="linenos">4820</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> -</span><span id="expand-4821"><a href="#expand-4821"><span class="linenos">4821</span></a><span class="w"> </span><span class="sd">"""Transforms an expression by expanding all referenced sources into subqueries.</span> -</span><span id="expand-4822"><a href="#expand-4822"><span class="linenos">4822</span></a> -</span><span id="expand-4823"><a href="#expand-4823"><span class="linenos">4823</span></a><span class="sd"> Examples:</span> -</span><span id="expand-4824"><a href="#expand-4824"><span class="linenos">4824</span></a><span class="sd"> >>> from sqlglot import parse_one</span> -</span><span id="expand-4825"><a href="#expand-4825"><span class="linenos">4825</span></a><span class="sd"> >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql()</span> -</span><span id="expand-4826"><a href="#expand-4826"><span class="linenos">4826</span></a><span class="sd"> 'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'</span> -</span><span id="expand-4827"><a href="#expand-4827"><span class="linenos">4827</span></a> -</span><span id="expand-4828"><a href="#expand-4828"><span class="linenos">4828</span></a><span class="sd"> Args:</span> -</span><span id="expand-4829"><a href="#expand-4829"><span class="linenos">4829</span></a><span class="sd"> expression: The expression to expand.</span> -</span><span id="expand-4830"><a href="#expand-4830"><span class="linenos">4830</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span> -</span><span id="expand-4831"><a href="#expand-4831"><span class="linenos">4831</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span> -</span><span id="expand-4832"><a href="#expand-4832"><span class="linenos">4832</span></a> -</span><span id="expand-4833"><a href="#expand-4833"><span class="linenos">4833</span></a><span class="sd"> Returns:</span> -</span><span id="expand-4834"><a href="#expand-4834"><span class="linenos">4834</span></a><span class="sd"> The transformed expression.</span> -</span><span id="expand-4835"><a href="#expand-4835"><span class="linenos">4835</span></a><span class="sd"> """</span> -</span><span id="expand-4836"><a href="#expand-4836"><span class="linenos">4836</span></a> -</span><span id="expand-4837"><a href="#expand-4837"><span class="linenos">4837</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span> -</span><span id="expand-4838"><a href="#expand-4838"><span class="linenos">4838</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> -</span><span id="expand-4839"><a href="#expand-4839"><span class="linenos">4839</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="expand-4840"><a href="#expand-4840"><span class="linenos">4840</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> -</span><span id="expand-4841"><a href="#expand-4841"><span class="linenos">4841</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span> -</span><span id="expand-4842"><a href="#expand-4842"><span class="linenos">4842</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span> -</span><span id="expand-4843"><a href="#expand-4843"><span class="linenos">4843</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">]</span> -</span><span id="expand-4844"><a href="#expand-4844"><span class="linenos">4844</span></a> <span class="k">return</span> <span class="n">subquery</span> -</span><span id="expand-4845"><a href="#expand-4845"><span class="linenos">4845</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="expand-4846"><a href="#expand-4846"><span class="linenos">4846</span></a> -</span><span id="expand-4847"><a href="#expand-4847"><span class="linenos">4847</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="expand-4956"><a href="#expand-4956"><span class="linenos">4956</span></a><span class="k">def</span> <span class="nf">expand</span><span class="p">(</span><span class="n">expression</span><span class="p">:</span> <span class="n">Expression</span><span class="p">,</span> <span class="n">sources</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Subqueryable</span><span class="p">],</span> <span class="n">copy</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">Expression</span><span class="p">:</span> +</span><span id="expand-4957"><a href="#expand-4957"><span class="linenos">4957</span></a><span class="w"> </span><span class="sd">"""Transforms an expression by expanding all referenced sources into subqueries.</span> +</span><span id="expand-4958"><a href="#expand-4958"><span class="linenos">4958</span></a> +</span><span id="expand-4959"><a href="#expand-4959"><span class="linenos">4959</span></a><span class="sd"> Examples:</span> +</span><span id="expand-4960"><a href="#expand-4960"><span class="linenos">4960</span></a><span class="sd"> >>> from sqlglot import parse_one</span> +</span><span id="expand-4961"><a href="#expand-4961"><span class="linenos">4961</span></a><span class="sd"> >>> expand(parse_one("select * from x AS z"), {"x": parse_one("select * from y")}).sql()</span> +</span><span id="expand-4962"><a href="#expand-4962"><span class="linenos">4962</span></a><span class="sd"> 'SELECT * FROM (SELECT * FROM y) AS z /* source: x */'</span> +</span><span id="expand-4963"><a href="#expand-4963"><span class="linenos">4963</span></a> +</span><span id="expand-4964"><a href="#expand-4964"><span class="linenos">4964</span></a><span class="sd"> Args:</span> +</span><span id="expand-4965"><a href="#expand-4965"><span class="linenos">4965</span></a><span class="sd"> expression: The expression to expand.</span> +</span><span id="expand-4966"><a href="#expand-4966"><span class="linenos">4966</span></a><span class="sd"> sources: A dictionary of name to Subqueryables.</span> +</span><span id="expand-4967"><a href="#expand-4967"><span class="linenos">4967</span></a><span class="sd"> copy: Whether or not to copy the expression during transformation. Defaults to True.</span> +</span><span id="expand-4968"><a href="#expand-4968"><span class="linenos">4968</span></a> +</span><span id="expand-4969"><a href="#expand-4969"><span class="linenos">4969</span></a><span class="sd"> Returns:</span> +</span><span id="expand-4970"><a href="#expand-4970"><span class="linenos">4970</span></a><span class="sd"> The transformed expression.</span> +</span><span id="expand-4971"><a href="#expand-4971"><span class="linenos">4971</span></a><span class="sd"> """</span> +</span><span id="expand-4972"><a href="#expand-4972"><span class="linenos">4972</span></a> +</span><span id="expand-4973"><a href="#expand-4973"><span class="linenos">4973</span></a> <span class="k">def</span> <span class="nf">_expand</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">Expression</span><span class="p">):</span> +</span><span id="expand-4974"><a href="#expand-4974"><span class="linenos">4974</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">Table</span><span class="p">):</span> +</span><span id="expand-4975"><a href="#expand-4975"><span class="linenos">4975</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">table_name</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="expand-4976"><a href="#expand-4976"><span class="linenos">4976</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> +</span><span id="expand-4977"><a href="#expand-4977"><span class="linenos">4977</span></a> <span class="k">if</span> <span class="n">source</span><span class="p">:</span> +</span><span id="expand-4978"><a href="#expand-4978"><span class="linenos">4978</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="ow">or</span> <span class="n">name</span><span class="p">)</span> +</span><span id="expand-4979"><a href="#expand-4979"><span class="linenos">4979</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"source: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">]</span> +</span><span id="expand-4980"><a href="#expand-4980"><span class="linenos">4980</span></a> <span class="k">return</span> <span class="n">subquery</span> +</span><span id="expand-4981"><a href="#expand-4981"><span class="linenos">4981</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="expand-4982"><a href="#expand-4982"><span class="linenos">4982</span></a> +</span><span id="expand-4983"><a href="#expand-4983"><span class="linenos">4983</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">_expand</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="n">copy</span><span class="p">)</span> </span></pre></div> @@ -42817,51 +43515,51 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#func"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="func-4850"><a href="#func-4850"><span class="linenos">4850</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Func</span><span class="p">:</span> -</span><span id="func-4851"><a href="#func-4851"><span class="linenos">4851</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="func-4852"><a href="#func-4852"><span class="linenos">4852</span></a><span class="sd"> Returns a Func expression.</span> -</span><span id="func-4853"><a href="#func-4853"><span class="linenos">4853</span></a> -</span><span id="func-4854"><a href="#func-4854"><span class="linenos">4854</span></a><span class="sd"> Examples:</span> -</span><span id="func-4855"><a href="#func-4855"><span class="linenos">4855</span></a><span class="sd"> >>> func("abs", 5).sql()</span> -</span><span id="func-4856"><a href="#func-4856"><span class="linenos">4856</span></a><span class="sd"> 'ABS(5)'</span> -</span><span id="func-4857"><a href="#func-4857"><span class="linenos">4857</span></a> -</span><span id="func-4858"><a href="#func-4858"><span class="linenos">4858</span></a><span class="sd"> >>> func("cast", this=5, to=DataType.build("DOUBLE")).sql()</span> -</span><span id="func-4859"><a href="#func-4859"><span class="linenos">4859</span></a><span class="sd"> 'CAST(5 AS DOUBLE)'</span> -</span><span id="func-4860"><a href="#func-4860"><span class="linenos">4860</span></a> -</span><span id="func-4861"><a href="#func-4861"><span class="linenos">4861</span></a><span class="sd"> Args:</span> -</span><span id="func-4862"><a href="#func-4862"><span class="linenos">4862</span></a><span class="sd"> name: the name of the function to build.</span> -</span><span id="func-4863"><a href="#func-4863"><span class="linenos">4863</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span> -</span><span id="func-4864"><a href="#func-4864"><span class="linenos">4864</span></a><span class="sd"> dialect: the source dialect.</span> -</span><span id="func-4865"><a href="#func-4865"><span class="linenos">4865</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span> -</span><span id="func-4866"><a href="#func-4866"><span class="linenos">4866</span></a> -</span><span id="func-4867"><a href="#func-4867"><span class="linenos">4867</span></a><span class="sd"> Note:</span> -</span><span id="func-4868"><a href="#func-4868"><span class="linenos">4868</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span> -</span><span id="func-4869"><a href="#func-4869"><span class="linenos">4869</span></a> -</span><span id="func-4870"><a href="#func-4870"><span class="linenos">4870</span></a><span class="sd"> Returns:</span> -</span><span id="func-4871"><a href="#func-4871"><span class="linenos">4871</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn't</span> -</span><span id="func-4872"><a href="#func-4872"><span class="linenos">4872</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span> -</span><span id="func-4873"><a href="#func-4873"><span class="linenos">4873</span></a><span class="sd"> """</span> -</span><span id="func-4874"><a href="#func-4874"><span class="linenos">4874</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span> -</span><span id="func-4875"><a href="#func-4875"><span class="linenos">4875</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Can't use both args and kwargs to instantiate a function."</span><span class="p">)</span> -</span><span id="func-4876"><a href="#func-4876"><span class="linenos">4876</span></a> -</span><span id="func-4877"><a href="#func-4877"><span class="linenos">4877</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span> -</span><span id="func-4878"><a href="#func-4878"><span class="linenos">4878</span></a> -</span><span id="func-4879"><a href="#func-4879"><span class="linenos">4879</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span> -</span><span id="func-4880"><a href="#func-4880"><span class="linenos">4880</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> -</span><span id="func-4881"><a href="#func-4881"><span class="linenos">4881</span></a> -</span><span id="func-4882"><a href="#func-4882"><span class="linenos">4882</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span> -</span><span id="func-4883"><a href="#func-4883"><span class="linenos">4883</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> -</span><span id="func-4884"><a href="#func-4884"><span class="linenos">4884</span></a> -</span><span id="func-4885"><a href="#func-4885"><span class="linenos">4885</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span> -</span><span id="func-4886"><a href="#func-4886"><span class="linenos">4886</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="func-4887"><a href="#func-4887"><span class="linenos">4887</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="func-4888"><a href="#func-4888"><span class="linenos">4888</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span> -</span><span id="func-4889"><a href="#func-4889"><span class="linenos">4889</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="func-4890"><a href="#func-4890"><span class="linenos">4890</span></a> -</span><span id="func-4891"><a href="#func-4891"><span class="linenos">4891</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span> -</span><span id="func-4892"><a href="#func-4892"><span class="linenos">4892</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> -</span><span id="func-4893"><a href="#func-4893"><span class="linenos">4893</span></a> -</span><span id="func-4894"><a href="#func-4894"><span class="linenos">4894</span></a> <span class="k">return</span> <span class="n">function</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="func-4986"><a href="#func-4986"><span class="linenos">4986</span></a><span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="n">dialect</span><span class="p">:</span> <span class="n">DialectType</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="n">Func</span><span class="p">:</span> +</span><span id="func-4987"><a href="#func-4987"><span class="linenos">4987</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="func-4988"><a href="#func-4988"><span class="linenos">4988</span></a><span class="sd"> Returns a Func expression.</span> +</span><span id="func-4989"><a href="#func-4989"><span class="linenos">4989</span></a> +</span><span id="func-4990"><a href="#func-4990"><span class="linenos">4990</span></a><span class="sd"> Examples:</span> +</span><span id="func-4991"><a href="#func-4991"><span class="linenos">4991</span></a><span class="sd"> >>> func("abs", 5).sql()</span> +</span><span id="func-4992"><a href="#func-4992"><span class="linenos">4992</span></a><span class="sd"> 'ABS(5)'</span> +</span><span id="func-4993"><a href="#func-4993"><span class="linenos">4993</span></a> +</span><span id="func-4994"><a href="#func-4994"><span class="linenos">4994</span></a><span class="sd"> >>> func("cast", this=5, to=DataType.build("DOUBLE")).sql()</span> +</span><span id="func-4995"><a href="#func-4995"><span class="linenos">4995</span></a><span class="sd"> 'CAST(5 AS DOUBLE)'</span> +</span><span id="func-4996"><a href="#func-4996"><span class="linenos">4996</span></a> +</span><span id="func-4997"><a href="#func-4997"><span class="linenos">4997</span></a><span class="sd"> Args:</span> +</span><span id="func-4998"><a href="#func-4998"><span class="linenos">4998</span></a><span class="sd"> name: the name of the function to build.</span> +</span><span id="func-4999"><a href="#func-4999"><span class="linenos">4999</span></a><span class="sd"> args: the args used to instantiate the function of interest.</span> +</span><span id="func-5000"><a href="#func-5000"><span class="linenos">5000</span></a><span class="sd"> dialect: the source dialect.</span> +</span><span id="func-5001"><a href="#func-5001"><span class="linenos">5001</span></a><span class="sd"> kwargs: the kwargs used to instantiate the function of interest.</span> +</span><span id="func-5002"><a href="#func-5002"><span class="linenos">5002</span></a> +</span><span id="func-5003"><a href="#func-5003"><span class="linenos">5003</span></a><span class="sd"> Note:</span> +</span><span id="func-5004"><a href="#func-5004"><span class="linenos">5004</span></a><span class="sd"> The arguments `args` and `kwargs` are mutually exclusive.</span> +</span><span id="func-5005"><a href="#func-5005"><span class="linenos">5005</span></a> +</span><span id="func-5006"><a href="#func-5006"><span class="linenos">5006</span></a><span class="sd"> Returns:</span> +</span><span id="func-5007"><a href="#func-5007"><span class="linenos">5007</span></a><span class="sd"> An instance of the function of interest, or an anonymous function, if `name` doesn't</span> +</span><span id="func-5008"><a href="#func-5008"><span class="linenos">5008</span></a><span class="sd"> correspond to an existing `sqlglot.expressions.Func` class.</span> +</span><span id="func-5009"><a href="#func-5009"><span class="linenos">5009</span></a><span class="sd"> """</span> +</span><span id="func-5010"><a href="#func-5010"><span class="linenos">5010</span></a> <span class="k">if</span> <span class="n">args</span> <span class="ow">and</span> <span class="n">kwargs</span><span class="p">:</span> +</span><span id="func-5011"><a href="#func-5011"><span class="linenos">5011</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"Can't use both args and kwargs to instantiate a function."</span><span class="p">)</span> +</span><span id="func-5012"><a href="#func-5012"><span class="linenos">5012</span></a> +</span><span id="func-5013"><a href="#func-5013"><span class="linenos">5013</span></a> <span class="kn">from</span> <span class="nn">sqlglot.dialects.dialect</span> <span class="kn">import</span> <span class="n">Dialect</span> +</span><span id="func-5014"><a href="#func-5014"><span class="linenos">5014</span></a> +</span><span id="func-5015"><a href="#func-5015"><span class="linenos">5015</span></a> <span class="n">converted</span> <span class="o">=</span> <span class="p">[</span><span class="n">convert</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">]</span> +</span><span id="func-5016"><a href="#func-5016"><span class="linenos">5016</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{</span><span class="n">key</span><span class="p">:</span> <span class="n">convert</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">kwargs</span><span class="o">.</span><span class="n">items</span><span class="p">()}</span> +</span><span id="func-5017"><a href="#func-5017"><span class="linenos">5017</span></a> +</span><span id="func-5018"><a href="#func-5018"><span class="linenos">5018</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="n">Dialect</span><span class="o">.</span><span class="n">get_or_raise</span><span class="p">(</span><span class="n">dialect</span><span class="p">)()</span><span class="o">.</span><span class="n">parser</span><span class="p">()</span> +</span><span id="func-5019"><a href="#func-5019"><span class="linenos">5019</span></a> <span class="n">from_args_list</span> <span class="o">=</span> <span class="n">parser</span><span class="o">.</span><span class="n">FUNCTIONS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="func-5020"><a href="#func-5020"><span class="linenos">5020</span></a> +</span><span id="func-5021"><a href="#func-5021"><span class="linenos">5021</span></a> <span class="k">if</span> <span class="n">from_args_list</span><span class="p">:</span> +</span><span id="func-5022"><a href="#func-5022"><span class="linenos">5022</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">from_args_list</span><span class="p">(</span><span class="n">converted</span><span class="p">)</span> <span class="k">if</span> <span class="n">converted</span> <span class="k">else</span> <span class="n">from_args_list</span><span class="o">.</span><span class="vm">__self__</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="func-5023"><a href="#func-5023"><span class="linenos">5023</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="func-5024"><a href="#func-5024"><span class="linenos">5024</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span> <span class="ow">or</span> <span class="p">{</span><span class="s2">"expressions"</span><span class="p">:</span> <span class="n">converted</span><span class="p">}</span> +</span><span id="func-5025"><a href="#func-5025"><span class="linenos">5025</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">Anonymous</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">name</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="func-5026"><a href="#func-5026"><span class="linenos">5026</span></a> +</span><span id="func-5027"><a href="#func-5027"><span class="linenos">5027</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">function</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">converted</span><span class="p">):</span> +</span><span id="func-5028"><a href="#func-5028"><span class="linenos">5028</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> +</span><span id="func-5029"><a href="#func-5029"><span class="linenos">5029</span></a> +</span><span id="func-5030"><a href="#func-5030"><span class="linenos">5030</span></a> <span class="k">return</span> <span class="n">function</span> </span></pre></div> @@ -42919,11 +43617,11 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#true"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="true-4897"><a href="#true-4897"><span class="linenos">4897</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span> -</span><span id="true-4898"><a href="#true-4898"><span class="linenos">4898</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="true-4899"><a href="#true-4899"><span class="linenos">4899</span></a><span class="sd"> Returns a true Boolean expression.</span> -</span><span id="true-4900"><a href="#true-4900"><span class="linenos">4900</span></a><span class="sd"> """</span> -</span><span id="true-4901"><a href="#true-4901"><span class="linenos">4901</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="true-5033"><a href="#true-5033"><span class="linenos">5033</span></a><span class="k">def</span> <span class="nf">true</span><span class="p">():</span> +</span><span id="true-5034"><a href="#true-5034"><span class="linenos">5034</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="true-5035"><a href="#true-5035"><span class="linenos">5035</span></a><span class="sd"> Returns a true Boolean expression.</span> +</span><span id="true-5036"><a href="#true-5036"><span class="linenos">5036</span></a><span class="sd"> """</span> +</span><span id="true-5037"><a href="#true-5037"><span class="linenos">5037</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span></pre></div> @@ -42943,11 +43641,11 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#false"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="false-4904"><a href="#false-4904"><span class="linenos">4904</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span> -</span><span id="false-4905"><a href="#false-4905"><span class="linenos">4905</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="false-4906"><a href="#false-4906"><span class="linenos">4906</span></a><span class="sd"> Returns a false Boolean expression.</span> -</span><span id="false-4907"><a href="#false-4907"><span class="linenos">4907</span></a><span class="sd"> """</span> -</span><span id="false-4908"><a href="#false-4908"><span class="linenos">4908</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="false-5040"><a href="#false-5040"><span class="linenos">5040</span></a><span class="k">def</span> <span class="nf">false</span><span class="p">():</span> +</span><span id="false-5041"><a href="#false-5041"><span class="linenos">5041</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="false-5042"><a href="#false-5042"><span class="linenos">5042</span></a><span class="sd"> Returns a false Boolean expression.</span> +</span><span id="false-5043"><a href="#false-5043"><span class="linenos">5043</span></a><span class="sd"> """</span> +</span><span id="false-5044"><a href="#false-5044"><span class="linenos">5044</span></a> <span class="k">return</span> <span class="n">Boolean</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> </span></pre></div> @@ -42967,11 +43665,11 @@ in order to help with type inference.</li> </div> <a class="headerlink" href="#null"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="null-4911"><a href="#null-4911"><span class="linenos">4911</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span> -</span><span id="null-4912"><a href="#null-4912"><span class="linenos">4912</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="null-4913"><a href="#null-4913"><span class="linenos">4913</span></a><span class="sd"> Returns a Null expression.</span> -</span><span id="null-4914"><a href="#null-4914"><span class="linenos">4914</span></a><span class="sd"> """</span> -</span><span id="null-4915"><a href="#null-4915"><span class="linenos">4915</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="null-5047"><a href="#null-5047"><span class="linenos">5047</span></a><span class="k">def</span> <span class="nf">null</span><span class="p">():</span> +</span><span id="null-5048"><a href="#null-5048"><span class="linenos">5048</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="null-5049"><a href="#null-5049"><span class="linenos">5049</span></a><span class="sd"> Returns a Null expression.</span> +</span><span id="null-5050"><a href="#null-5050"><span class="linenos">5050</span></a><span class="sd"> """</span> +</span><span id="null-5051"><a href="#null-5051"><span class="linenos">5051</span></a> <span class="k">return</span> <span class="n">Null</span><span class="p">()</span> </span></pre></div> diff --git a/docs/sqlglot/generator.html b/docs/sqlglot/generator.html index 370b246..ec017fe 100644 --- a/docs/sqlglot/generator.html +++ b/docs/sqlglot/generator.html @@ -292,6 +292,12 @@ <a class="function" href="#Generator.offset_sql">offset_sql</a> </li> <li> + <a class="function" href="#Generator.setitem_sql">setitem_sql</a> + </li> + <li> + <a class="function" href="#Generator.set_sql">set_sql</a> + </li> + <li> <a class="function" href="#Generator.lock_sql">lock_sql</a> </li> <li> @@ -544,9 +550,6 @@ <a class="function" href="#Generator.div_sql">div_sql</a> </li> <li> - <a class="function" href="#Generator.floatdiv_sql">floatdiv_sql</a> - </li> - <li> <a class="function" href="#Generator.overlaps_sql">overlaps_sql</a> </li> <li> @@ -669,6 +672,9 @@ <li> <a class="function" href="#Generator.merge_sql">merge_sql</a> </li> + <li> + <a class="function" href="#Generator.tochar_sql">tochar_sql</a> + </li> </ul> </li> @@ -702,7 +708,7 @@ </span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a> </span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span> </span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">ErrorLevel</span><span class="p">,</span> <span class="n">UnsupportedError</span><span class="p">,</span> <span class="n">concat_messages</span> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">apply_index_offset</span><span class="p">,</span> <span class="n">csv</span><span class="p">,</span> <span class="n">seq_get</span> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">apply_index_offset</span><span class="p">,</span> <span class="n">csv</span><span class="p">,</span> <span class="n">seq_get</span><span class="p">,</span> <span class="n">should_identify</span> </span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="kn">from</span> <span class="nn">sqlglot.time</span> <span class="kn">import</span> <span class="n">format_time</span> </span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</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-11"><a href="#L-11"><span class="linenos"> 11</span></a> @@ -722,1971 +728,1981 @@ </span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="sd"> quote_end (str): specifies which ending character to use to delimit quotes. Default: '.</span> </span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="sd"> identifier_start (str): specifies which starting character to use to delimit identifiers. Default: ".</span> </span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> identifier_end (str): specifies which ending character to use to delimit identifiers. Default: ".</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> identify (bool): if set to True all identifiers will be delimited by the corresponding</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> character.</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> normalize (bool): if set to True all identifiers will lower cased</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> string_escape (str): specifies a string escape character. Default: '.</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="sd"> identifier_escape (str): specifies an identifier escape character. Default: ".</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> pad (int): determines padding in a formatted string. Default: 2.</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> indent (int): determines the size of indentation in a formatted string. Default: 4.</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="sd"> unnest_column_only (bool): if true unnest table aliases are considered only as column aliases</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> normalize_functions (str): normalize function names, "upper", "lower", or None</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="sd"> Default: "upper"</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="sd"> alias_post_tablesample (bool): if the table alias comes after tablesample</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd"> Default: False</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> unsupported_level (ErrorLevel): determines the generator's behavior when it encounters</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> unsupported expressions. Default ErrorLevel.WARN.</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> null_ordering (str): Indicates the default null ordering method to use if not explicitly set.</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> Default: "nulls_are_small"</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> This is only relevant if unsupported_level is ErrorLevel.RAISE.</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> Default: 3</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="sd"> leading_comma (bool): if the the comma is leading or trailing in select statements</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="sd"> Default: False</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> max_text_width: The max number of characters in a segment before creating new lines in pretty mode.</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="sd"> The default is on the smaller end because the length only represents a segment and not the true</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> line length.</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> Default: 80</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> comments: Whether or not to preserve comments in the output SQL code.</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> Default: True</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> """</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="s2">"DATE_ADD"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</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">"unit"</span><span class="p">)</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="p">),</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="s2">"TS_OR_DS_ADD"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</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">"unit"</span><span class="p">)</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="p">),</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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">"MAP"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">],</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]),</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'DEFAULT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'default'</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">CHARACTER SET=</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-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</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-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</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="s2">"EXTERNAL"</span><span class="p">,</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</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-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</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-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NO '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'no'</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">LOG"</span><span class="p">,</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</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="s2">"MATERIALIZED"</span><span class="p">,</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</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="s2">"NO PRIMARY INDEX"</span><span class="p">,</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</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="s2">"ON COMMIT PRESERVE ROWS"</span><span class="p">,</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</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-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'MULTI'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'multi'</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">SET"</span><span class="p">,</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</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="sa">f</span><span class="s2">"SQL SECURITY </span><span class="si">{</span><span class="s1">'DEFINER'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'definer'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'INVOKER'</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'GLOBAL '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'global_'</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">TEMPORARY"</span><span class="p">,</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</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="s2">"TRANSIENT"</span><span class="p">,</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="n">e</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</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="sa">f</span><span class="s2">"WITH JOURNAL TABLE=</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-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CaseSpecificColumnConstraint</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NOT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'not_'</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">CASESPECIFIC"</span><span class="p">,</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</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="sa">f</span><span class="s2">"CHARACTER SET </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-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</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="sa">f</span><span class="s2">"FORMAT </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-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UppercaseColumnConstraint</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="sa">f</span><span class="s2">"UPPERCASE"</span><span class="p">,</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</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="sa">f</span><span class="s2">"TITLE </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-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PathColumnConstraint</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="sa">f</span><span class="s2">"PATH </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-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</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="sa">f</span><span class="s2">"CHECK (</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-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</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="sa">f</span><span class="s2">"COMMENT </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-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</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="sa">f</span><span class="s2">"COLLATE </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-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EncodeColumnConstraint</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="sa">f</span><span class="s2">"ENCODE </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-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</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="sa">f</span><span class="s2">"DEFAULT </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-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">InlineLengthColumnConstraint</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="sa">f</span><span class="s2">"INLINE LENGTH </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-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="p">}</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="c1"># Whether or not null ordering is supported in order by</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="c1"># Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> -</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a> <span class="c1"># Always do union distinct or union all</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos"> 103</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</span></a> -</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="c1"># Wrap derived values in parens, usually standard but spark doesn't support it</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> -</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a> <span class="c1"># Whether or not create function uses an AS before the RETURN</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> -</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> <span class="c1"># Whether or not to treat the division operator "/" as integer division</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">True</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="c1"># Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</span></a> -</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</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">NCHAR</span><span class="p">:</span> <span class="s2">"CHAR"</span><span class="p">,</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</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">MEDIUMTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</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">LONGTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</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">MEDIUMBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</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">LONGBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</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">INET</span><span class="p">:</span> <span class="s2">"INET"</span><span class="p">,</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a> <span class="p">}</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a> -</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos"> 128</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCEPT"</span><span class="p">,</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"REPLACE"</span><span class="p">,</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a> <span class="p">}</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> normalize (bool): if set to True all identifiers will lower cased</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> string_escape (str): specifies a string escape character. Default: '.</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> identifier_escape (str): specifies an identifier escape character. Default: ".</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="sd"> pad (int): determines padding in a formatted string. Default: 2.</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> indent (int): determines the size of indentation in a formatted string. Default: 4.</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> unnest_column_only (bool): if true unnest table aliases are considered only as column aliases</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="sd"> normalize_functions (str): normalize function names, "upper", "lower", or None</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> Default: "upper"</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="sd"> alias_post_tablesample (bool): if the table alias comes after tablesample</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="sd"> Default: False</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd"> unsupported_level (ErrorLevel): determines the generator's behavior when it encounters</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> unsupported expressions. Default ErrorLevel.WARN.</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> null_ordering (str): Indicates the default null ordering method to use if not explicitly set.</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> Default: "nulls_are_small"</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> This is only relevant if unsupported_level is ErrorLevel.RAISE.</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> Default: 3</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> leading_comma (bool): if the the comma is leading or trailing in select statements</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="sd"> Default: False</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="sd"> max_text_width: The max number of characters in a segment before creating new lines in pretty mode.</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> The default is on the smaller end because the length only represents a segment and not the true</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="sd"> line length.</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> Default: 80</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> comments: Whether or not to preserve comments in the output SQL code.</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> Default: True</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> """</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="s2">"DATE_ADD"</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="n">e</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">))</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="p">),</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="s2">"TS_OR_DS_ADD"</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="n">e</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</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="n">exp</span><span class="o">.</span><span class="n">VarMap</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">"MAP"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">],</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]),</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'DEFAULT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'default'</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">CHARACTER SET=</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-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</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-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</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="s2">"EXTERNAL"</span><span class="p">,</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</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-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</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-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NO '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'no'</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">LOG"</span><span class="p">,</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</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="s2">"MATERIALIZED"</span><span class="p">,</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</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="s2">"NO PRIMARY INDEX"</span><span class="p">,</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</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="s2">"ON COMMIT PRESERVE ROWS"</span><span class="p">,</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</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-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'MULTI'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'multi'</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">SET"</span><span class="p">,</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</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="sa">f</span><span class="s2">"SQL SECURITY </span><span class="si">{</span><span class="s1">'DEFINER'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'definer'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'INVOKER'</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'GLOBAL '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'global_'</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">TEMPORARY"</span><span class="p">,</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</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="s2">"TRANSIENT"</span><span class="p">,</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="n">e</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</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="sa">f</span><span class="s2">"WITH JOURNAL TABLE=</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-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CaseSpecificColumnConstraint</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NOT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'not_'</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">CASESPECIFIC"</span><span class="p">,</span> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</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="sa">f</span><span class="s2">"CHARACTER SET </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-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</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="sa">f</span><span class="s2">"FORMAT </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-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UppercaseColumnConstraint</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="sa">f</span><span class="s2">"UPPERCASE"</span><span class="p">,</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</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="sa">f</span><span class="s2">"TITLE </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-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PathColumnConstraint</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="sa">f</span><span class="s2">"PATH </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-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</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="sa">f</span><span class="s2">"CHECK (</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-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</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="sa">f</span><span class="s2">"COMMENT </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-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</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="sa">f</span><span class="s2">"COLLATE </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-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EncodeColumnConstraint</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="sa">f</span><span class="s2">"ENCODE </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-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</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="sa">f</span><span class="s2">"DEFAULT </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-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">InlineLengthColumnConstraint</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="sa">f</span><span class="s2">"INLINE LENGTH </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-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="p">}</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="c1"># Whether or not null ordering is supported in order by</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="c1"># Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> +</span><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> <span class="c1"># Always do union distinct or union all</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">False</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="c1"># Wrap derived values in parens, usually standard but spark doesn't support it</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a> +</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="c1"># Whether or not create function uses an AS before the RETURN</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> +</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <span class="c1"># Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> +</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</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">NCHAR</span><span class="p">:</span> <span class="s2">"CHAR"</span><span class="p">,</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</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">MEDIUMTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</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">LONGTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</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">MEDIUMBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</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">LONGBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</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">INET</span><span class="p">:</span> <span class="s2">"INET"</span><span class="p">,</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</span></a> <span class="p">}</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="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCEPT"</span><span class="p">,</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"REPLACE"</span><span class="p">,</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a> <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">TOKEN_MAPPING</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">TokenType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a> +</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"<"</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> </span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a> -</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a> <span class="n">TOKEN_MAPPING</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">TokenType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"@"</span> </span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a> -</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"<"</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</span></a> -</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"@"</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a> -</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AfterJournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataBlocksizeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EngineProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">,</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</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">OnCommitProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</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">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</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">Property</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</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">ReturnsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">RowFormatDelimitedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">RowFormatSerdeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">SqlSecurityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</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">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</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">TemporaryProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</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">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">WithDataProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</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><span id="L-186"><a href="#L-186"><span class="linenos"> 186</span></a> <span class="n">WITH_SEPARATED_COMMENTS</span> <span class="o">=</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">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">)</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a> <span class="n">SENTINEL_LINE_BREAK</span> <span class="o">=</span> <span class="s2">"__SQLGLOT__LB__"</span> -</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> -</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</span></a> <span class="s2">"time_mapping"</span><span class="p">,</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a> <span class="s2">"time_trie"</span><span class="p">,</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a> <span class="s2">"pretty"</span><span class="p">,</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a> <span class="s2">"quote_start"</span><span class="p">,</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="s2">"quote_end"</span><span class="p">,</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="s2">"identifier_start"</span><span class="p">,</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="s2">"identifier_end"</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="s2">"identify"</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="s2">"normalize"</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="s2">"string_escape"</span><span class="p">,</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="s2">"identifier_escape"</span><span class="p">,</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="s2">"pad"</span><span class="p">,</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="s2">"normalize_functions"</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="s2">"unsupported_level"</span><span class="p">,</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a> <span class="s2">"unsupported_messages"</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="s2">"max_unsupported"</span><span class="p">,</span> -</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="s2">"_indent"</span><span class="p">,</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="s2">"_escaped_quote_end"</span><span class="p">,</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="s2">"_escaped_identifier_end"</span><span class="p">,</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a> <span class="s2">"_leading_comma"</span><span class="p">,</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="s2">"_max_text_width"</span><span class="p">,</span> -</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a> <span class="s2">"_comments"</span><span class="p">,</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a> <span class="p">)</span> -</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a> -</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="n">time_mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a> <span class="n">time_trie</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="n">pretty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a> <span class="n">quote_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a> <span class="n">quote_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a> <span class="n">identifier_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="n">identifier_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="n">identify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="n">normalize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="n">string_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="n">identifier_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="n">index_offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="n">unnest_column_only</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="n">alias_post_tablesample</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="n">normalize_functions</span><span class="o">=</span><span class="s2">"upper"</span><span class="p">,</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="n">unsupported_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">,</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="n">null_ordering</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="n">max_unsupported</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="n">leading_comma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="n">max_text_width</span><span class="o">=</span><span class="mi">80</span><span class="p">,</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="n">comments</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="p">):</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> -</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span> <span class="o">=</span> <span class="n">time_mapping</span> <span class="ow">or</span> <span class="p">{}</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span> <span class="o">=</span> <span class="n">time_trie</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="n">pretty</span> <span class="k">if</span> <span class="n">pretty</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">pretty</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span> <span class="o">=</span> <span class="n">quote_start</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> <span class="o">=</span> <span class="n">quote_end</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span> <span class="o">=</span> <span class="n">identifier_start</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">identify</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="o">=</span> <span class="n">normalize</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">=</span> <span class="n">string_escape</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">=</span> <span class="n">identifier_escape</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="o">=</span> <span class="n">pad</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">=</span> <span class="n">normalize_functions</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">=</span> <span class="n">unsupported_level</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span> <span class="o">=</span> <span class="n">max_unsupported</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_indent</span> <span class="o">=</span> <span class="n">indent</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span> <span class="o">=</span> <span class="n">leading_comma</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="o">=</span> <span class="n">max_text_width</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AfterJournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataBlocksizeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EngineProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">,</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">RowFormatDelimitedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">RowFormatSerdeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">SchemaCommentProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">SerdeProperties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</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">SortKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</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">VolatilityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</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">WithDataProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</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">WithJournalTableProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="p">}</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> +</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="n">WITH_SEPARATED_COMMENTS</span> <span class="o">=</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">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">)</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="n">SENTINEL_LINE_BREAK</span> <span class="o">=</span> <span class="s2">"__SQLGLOT__LB__"</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos"> 184</span></a> +</span><span id="L-185"><a href="#L-185"><span class="linenos"> 185</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos"> 186</span></a> <span class="s2">"time_mapping"</span><span class="p">,</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a> <span class="s2">"time_trie"</span><span class="p">,</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> <span class="s2">"pretty"</span><span class="p">,</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a> <span class="s2">"quote_start"</span><span class="p">,</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</span></a> <span class="s2">"quote_end"</span><span class="p">,</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a> <span class="s2">"identifier_start"</span><span class="p">,</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a> <span class="s2">"identifier_end"</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a> <span class="s2">"identify"</span><span class="p">,</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="s2">"normalize"</span><span class="p">,</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="s2">"string_escape"</span><span class="p">,</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="s2">"identifier_escape"</span><span class="p">,</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="s2">"pad"</span><span class="p">,</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="s2">"normalize_functions"</span><span class="p">,</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="s2">"unsupported_level"</span><span class="p">,</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="s2">"unsupported_messages"</span><span class="p">,</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="s2">"max_unsupported"</span><span class="p">,</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="s2">"_indent"</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a> <span class="s2">"_escaped_quote_end"</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a> <span class="s2">"_escaped_identifier_end"</span><span class="p">,</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="s2">"_leading_comma"</span><span class="p">,</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="s2">"_max_text_width"</span><span class="p">,</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="s2">"_comments"</span><span class="p">,</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="p">)</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a> +</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a> <span class="n">time_mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a> <span class="n">time_trie</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a> <span class="n">pretty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a> <span class="n">quote_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="n">quote_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a> <span class="n">identifier_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="n">identifier_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a> <span class="n">identify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a> <span class="n">normalize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a> <span class="n">string_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="n">identifier_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="n">index_offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="n">unnest_column_only</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a> <span class="n">alias_post_tablesample</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="n">normalize_functions</span><span class="o">=</span><span class="s2">"upper"</span><span class="p">,</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="n">unsupported_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">,</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="n">null_ordering</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="n">max_unsupported</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="n">leading_comma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="n">max_text_width</span><span class="o">=</span><span class="mi">80</span><span class="p">,</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="n">comments</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="p">):</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> +</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span> <span class="o">=</span> <span class="n">time_mapping</span> <span class="ow">or</span> <span class="p">{}</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span> <span class="o">=</span> <span class="n">time_trie</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="n">pretty</span> <span class="k">if</span> <span class="n">pretty</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">pretty</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span> <span class="o">=</span> <span class="n">quote_start</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> <span class="o">=</span> <span class="n">quote_end</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span> <span class="o">=</span> <span class="n">identifier_start</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">identify</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="o">=</span> <span class="n">normalize</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">=</span> <span class="n">string_escape</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">=</span> <span class="n">identifier_escape</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="o">=</span> <span class="n">pad</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">=</span> <span class="n">normalize_functions</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">=</span> <span class="n">unsupported_level</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span> <span class="o">=</span> <span class="n">max_unsupported</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_indent</span> <span class="o">=</span> <span class="n">indent</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span> <span class="o">=</span> <span class="n">leading_comma</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="o">=</span> <span class="n">max_text_width</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> +</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a><span class="sd"> Generates a SQL string by interpreting the given syntax tree.</span> </span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a> -</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a><span class="sd"> Generates a SQL string by interpreting the given syntax tree.</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> -</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a><span class="sd"> Args</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a><span class="sd"> expression: the syntax tree.</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> -</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a><span class="sd"> Returns</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a><span class="sd"> the SQL string.</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a><span class="sd"> """</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a> <span class="n">sql</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="o">.</span><span class="n">strip</span><span class="p">()</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> -</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a> -</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span><span class="p">))</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a><span class="sd"> Args</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a><span class="sd"> expression: the syntax tree.</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a> +</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a><span class="sd"> Returns</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a><span class="sd"> the SQL string.</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a><span class="sd"> """</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a> <span class="n">sql</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="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a> +</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a> +</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span><span class="p">))</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a> +</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="k">return</span> <span class="n">sql</span> </span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a> -</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> -</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="k">def</span> <span class="nf">unsupported</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a> -</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="k">def</span> <span class="nf">sep</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="n">sep</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> -</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a> <span class="k">def</span> <span class="nf">seg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a> -</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> <span class="k">def</span> <span class="nf">pad_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">comment</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="n">comment</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="k">return</span> <span class="n">comment</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> -</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="k">def</span> <span class="nf">maybe_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> -</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> -</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a> <span class="n">comments_sql</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <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">pad_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span><span class="si">}</span><span class="s2">*/"</span> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span> <span class="k">if</span> <span class="n">comment</span> -</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> <span class="p">)</span> -</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a> -</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments_sql</span><span class="p">:</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a> -</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">WITH_SEPARATED_COMMENTS</span><span class="p">):</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a> -</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a> -</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a> <span class="k">def</span> <span class="nf">wrap</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">Expression</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a> <span class="n">this_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a> <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><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="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">Union</span><span class="p">))</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a> <span class="k">else</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-339"><a href="#L-339"><span class="linenos"> 339</span></a> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="p">)</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a> -</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a> <span class="k">def</span> <span class="nf">no_identify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a> <span class="n">original</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> -</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">original</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> <span class="k">return</span> <span class="n">result</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a> -</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"upper"</span><span class="p">:</span> -</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"lower"</span><span class="p">:</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a> <span class="k">return</span> <span class="n">name</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a> -</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a> <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span> -</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a> <span class="n">pad</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a> <span class="n">skip_first</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-364"><a href="#L-364"><span class="linenos"> 364</span></a> <span class="n">skip_last</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-365"><a href="#L-365"><span class="linenos"> 365</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a> -</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="k">if</span> <span class="n">pad</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">pad</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> -</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a> <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a> <span class="n">line</span> -</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">skip_first</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">skip_last</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' '</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">level</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pad</span><span class="p">)</span><span class="si">}{</span><span class="n">line</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> -</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a> <span class="p">)</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a> -</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span> -</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="n">comment</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a> -</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a> -</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> <span class="k">if</span> <span class="n">key</span><span class="p">:</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</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="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span> -</span><span id="L-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="n">transform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> -</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> -</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a> <span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> -</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</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-398"><a href="#L-398"><span class="linenos"> 398</span></a> <span class="k">elif</span> <span class="n">transform</span><span class="p">:</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</span> -</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Expression</span><span class="p">):</span> -</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="n">exp_handler_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">_sql"</span> -</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> -</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">):</span> -</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">)(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Func</span><span class="p">):</span> -</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Property</span><span class="p">):</span> -</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">property_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported expression type </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected an Expression. Received </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">expression</span><span class="si">}</span><span class="s2">"</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">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="ow">and</span> <span class="n">comment</span> <span class="k">else</span> <span class="n">sql</span> -</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a> -</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a> <span class="k">def</span> <span class="nf">uncache_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">Uncache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> -</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNCACHE TABLE</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a> -</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a> <span class="k">def</span> <span class="nf">cache_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">Cache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="n">lazy</span> <span class="o">=</span> <span class="s2">" LAZY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"lazy"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> -</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a> <span class="n">options</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">"options"</span><span class="p">)</span> -</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OPTIONS(</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">options</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</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">options</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a> <span class="n">sql</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">"expression"</span><span class="p">)</span> -</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CACHE</span><span class="si">{</span><span class="n">lazy</span><span class="si">}</span><span class="s2"> TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">options</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a> -</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a> <span class="k">def</span> <span class="nf">characterset_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">CharacterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHAR CHARACTER SET </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">expression</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><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"DEFAULT "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</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="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">CHARACTER SET=</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">expression</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><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> -</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> -</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <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">"catalog"</span><span class="p">),</span> -</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a> <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">"db"</span><span class="p">),</span> -</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"table"</span><span class="p">),</span> -</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a> <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">"this"</span><span class="p">),</span> -</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="p">)</span> -</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a> <span class="p">)</span> -</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> -</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a> <span class="k">def</span> <span class="nf">columndef_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">ColumnDef</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a> <span class="n">column</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">"this"</span><span class="p">)</span> -</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a> <span class="n">constraints</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">"constraints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</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-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">"IF NOT EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">constraints</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> -</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">column</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a> -</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a> <span class="k">def</span> <span class="nf">columnconstraint_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">ColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a> <span class="n">kind_sql</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">"kind"</span><span class="p">)</span> -</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">kind_sql</span> -</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a> -</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a> <span class="k">def</span> <span class="nf">autoincrementcolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token_sql</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">)</span> -</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a> -</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a> <span class="k">def</span> <span class="nf">compresscolumnconstraint_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">CompressColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</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">this</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">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">"this"</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-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> -</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMPRESS </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a> -</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">" ALWAYS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">" BY DEFAULT "</span> -</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"START WITH </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT BY </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a> <span class="n">minvalue</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">"minvalue"</span><span class="p">)</span> -</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a> <span class="n">minvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MINVALUE </span><span class="si">{</span><span class="n">minvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">minvalue</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a> <span class="n">maxvalue</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">"maxvalue"</span><span class="p">)</span> -</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a> <span class="n">maxvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAXVALUE </span><span class="si">{</span><span class="n">maxvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">maxvalue</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a> <span class="n">cycle</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">"cycle"</span><span class="p">)</span> -</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a> <span class="k">if</span> <span class="n">cycle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' NO'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">cycle</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"> CYCLE"</span> -</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="n">cycle_sql</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">increment</span> <span class="k">else</span> <span class="n">cycle_sql</span> -</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">or</span> <span class="n">increment</span> <span class="ow">or</span> <span class="n">cycle_sql</span><span class="p">:</span> -</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}{</span><span class="n">minvalue</span><span class="si">}{</span><span class="n">maxvalue</span><span class="si">}{</span><span class="n">cycle_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">sequence_opts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GENERATED</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">AS IDENTITY</span><span class="si">{</span><span class="n">sequence_opts</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> -</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="k">def</span> <span class="nf">notnullcolumnconstraint_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">NotNullColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'allow_null'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'NOT '</span><span class="si">}</span><span class="s2">NULL"</span> -</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> -</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="k">def</span> <span class="nf">primarykeycolumnconstraint_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">PrimaryKeyColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> -</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="k">if</span> <span class="n">desc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY</span><span class="si">{</span><span class="s1">' DESC'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desc</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ASC'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY"</span> -</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> -</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="k">def</span> <span class="nf">uniquecolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="k">return</span> <span class="s2">"UNIQUE"</span> -</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> -</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="k">def</span> <span class="nf">create_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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="n">properties</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">"properties"</span><span class="p">)</span> -</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="n">properties_exp</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="n">properties_locs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">locate_properties</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">{}</span> -</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">)</span> <span class="ow">or</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> -</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span> -</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="p">):</span> -</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="n">properties_exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="s2">"properties"</span><span class="p">,</span> -</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span> -</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">],</span> -</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">],</span> -</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="p">]</span> -</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="p">),</span> -</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="p">)</span> -</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"TABLE"</span> <span class="ow">and</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">):</span> -</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="n">this_name</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> -</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="n">this_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]),</span> -</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="p">)</span> -</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="n">this_schema</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this_name</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">this_properties</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_schema</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="n">properties_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="n">properties_sql</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">properties_exp</span><span class="p">,</span> <span class="s2">"properties"</span><span class="p">)</span> -</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="s2">" BEGIN"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"begin"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="k">if</span> <span class="n">expression_sql</span><span class="p">:</span> -</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">begin</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> -</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Return</span><span class="p">):</span> -</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">):</span> -</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="n">postalias_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span> -</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="p">),</span> -</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="p">)</span> -</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">postalias_props_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> -</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">):</span> -</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]),</span> -</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> <span class="p">)</span> -</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> -</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="n">indexes</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">"indexes"</span><span class="p">)</span> -</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a> <span class="k">if</span> <span class="n">indexes</span><span class="p">:</span> -</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="n">indexes_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">indexes</span><span class="p">:</span> -</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="n">ind_unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">index</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">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="n">ind_primary</span> <span class="o">=</span> <span class="s2">" PRIMARY"</span> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="n">ind_amp</span> <span class="o">=</span> <span class="s2">" AMP"</span> <span class="k">if</span> <span class="n">index</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">"amp"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="n">ind_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="n">ind_columns</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="sa">f</span><span class="s1">' (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s1">)'</span> -</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="k">if</span> <span class="n">index</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">"columns"</span><span class="p">)</span> -</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="p">)</span> -</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="n">ind_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_unique</span><span class="si">}{</span><span class="n">ind_primary</span><span class="si">}{</span><span class="n">ind_amp</span><span class="si">}</span><span class="s2"> INDEX</span><span class="si">{</span><span class="n">ind_name</span><span class="si">}{</span><span class="n">ind_columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> -</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="k">if</span> <span class="n">indexes_sql</span><span class="p">:</span> -</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ind_sql</span><span class="p">)</span> -</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_sql</span><span class="si">}{</span><span class="n">postindex_props_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> -</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">postindex_props_sql</span><span class="si">}{</span><span class="n">ind_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="p">)</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="k">def</span> <span class="nf">unsupported</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> +</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="k">def</span> <span class="nf">sep</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="n">sep</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> +</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a> <span class="k">def</span> <span class="nf">seg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a> +</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="k">def</span> <span class="nf">pad_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">comment</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="n">comment</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a> <span class="k">return</span> <span class="n">comment</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> +</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a> <span class="k">def</span> <span class="nf">maybe_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> +</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> +</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a> <span class="n">comments_sql</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <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">pad_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span><span class="si">}</span><span class="s2">*/"</span> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span> <span class="k">if</span> <span class="n">comment</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> <span class="p">)</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> +</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments_sql</span><span class="p">:</span> +</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> +</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">WITH_SEPARATED_COMMENTS</span><span class="p">):</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a> +</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a> +</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a> <span class="k">def</span> <span class="nf">wrap</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">Expression</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a> <span class="n">this_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a> <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><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="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">Union</span><span class="p">))</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a> <span class="k">else</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-335"><a href="#L-335"><span class="linenos"> 335</span></a> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a> <span class="p">)</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a> +</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="k">def</span> <span class="nf">no_identify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="n">original</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">original</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a> <span class="k">return</span> <span class="n">result</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a> +</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"upper"</span><span class="p">:</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"lower"</span><span class="p">:</span> +</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a> <span class="k">return</span> <span class="n">name</span> +</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a> +</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a> <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a> <span class="n">pad</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a> <span class="n">skip_first</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-360"><a href="#L-360"><span class="linenos"> 360</span></a> <span class="n">skip_last</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-361"><a href="#L-361"><span class="linenos"> 361</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a> +</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="k">if</span> <span class="n">pad</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">pad</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a> +</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a> <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> <span class="n">line</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">skip_first</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">skip_last</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' '</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">level</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pad</span><span class="p">)</span><span class="si">}{</span><span class="n">line</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> +</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a> <span class="p">)</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> +</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span> +</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a> <span class="n">comment</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> +</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a> +</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a> <span class="k">if</span> <span class="n">key</span><span class="p">:</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</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="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span> +</span><span id="L-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="n">transform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> +</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> +</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</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-394"><a href="#L-394"><span class="linenos"> 394</span></a> <span class="k">elif</span> <span class="n">transform</span><span class="p">:</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</span> +</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Expression</span><span class="p">):</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a> <span class="n">exp_handler_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">_sql"</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a> +</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">):</span> +</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">)(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Func</span><span class="p">):</span> +</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Property</span><span class="p">):</span> +</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">property_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported expression type </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected an Expression. Received </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">expression</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a> +</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">maybe_comment</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="ow">and</span> <span class="n">comment</span> <span class="k">else</span> <span class="n">sql</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">def</span> <span class="nf">uncache_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">Uncache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> +</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNCACHE TABLE</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a> +</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a> <span class="k">def</span> <span class="nf">cache_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">Cache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a> <span class="n">lazy</span> <span class="o">=</span> <span class="s2">" LAZY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"lazy"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> +</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a> <span class="n">options</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">"options"</span><span class="p">)</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OPTIONS(</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">options</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</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">options</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="n">sql</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">"expression"</span><span class="p">)</span> +</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CACHE</span><span class="si">{</span><span class="n">lazy</span><span class="si">}</span><span class="s2"> TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">options</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a> +</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a> <span class="k">def</span> <span class="nf">characterset_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">CharacterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHAR CHARACTER SET </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">expression</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><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"DEFAULT "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">CHARACTER SET=</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">expression</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><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a> +</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <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">"catalog"</span><span class="p">),</span> +</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <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">"db"</span><span class="p">),</span> +</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <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">"table"</span><span class="p">),</span> +</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a> <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">"this"</span><span class="p">),</span> +</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="p">)</span> +</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="p">)</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a> +</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="k">def</span> <span class="nf">columndef_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">ColumnDef</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="n">column</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">"this"</span><span class="p">)</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="n">constraints</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">"constraints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</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-449"><a href="#L-449"><span class="linenos"> 449</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">"IF NOT EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">constraints</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a> +</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">column</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> +</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a> <span class="k">def</span> <span class="nf">columnconstraint_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">ColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="n">kind_sql</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">"kind"</span><span class="p">)</span> +</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">kind_sql</span> +</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a> +</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="k">def</span> <span class="nf">autoincrementcolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token_sql</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">)</span> +</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> +</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a> <span class="k">def</span> <span class="nf">compresscolumnconstraint_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">CompressColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</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">this</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">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">"this"</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-466"><a href="#L-466"><span class="linenos"> 466</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a> +</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMPRESS </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-470"><a href="#L-470"><span class="linenos"> 470</span></a> +</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">" ALWAYS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">" BY DEFAULT "</span> +</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"START WITH </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT BY </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a> <span class="n">minvalue</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">"minvalue"</span><span class="p">)</span> +</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a> <span class="n">minvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MINVALUE </span><span class="si">{</span><span class="n">minvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">minvalue</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a> <span class="n">maxvalue</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">"maxvalue"</span><span class="p">)</span> +</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="n">maxvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAXVALUE </span><span class="si">{</span><span class="n">maxvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">maxvalue</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a> <span class="n">cycle</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">"cycle"</span><span class="p">)</span> +</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a> <span class="k">if</span> <span class="n">cycle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' NO'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">cycle</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"> CYCLE"</span> +</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="n">cycle_sql</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">increment</span> <span class="k">else</span> <span class="n">cycle_sql</span> +</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">or</span> <span class="n">increment</span> <span class="ow">or</span> <span class="n">cycle_sql</span><span class="p">:</span> +</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}{</span><span class="n">minvalue</span><span class="si">}{</span><span class="n">maxvalue</span><span class="si">}{</span><span class="n">cycle_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">sequence_opts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GENERATED</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">AS IDENTITY</span><span class="si">{</span><span class="n">sequence_opts</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> +</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="k">def</span> <span class="nf">notnullcolumnconstraint_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">NotNullColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'allow_null'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'NOT '</span><span class="si">}</span><span class="s2">NULL"</span> +</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> +</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="k">def</span> <span class="nf">primarykeycolumnconstraint_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">PrimaryKeyColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> +</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="k">if</span> <span class="n">desc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY</span><span class="si">{</span><span class="s1">' DESC'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desc</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ASC'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY"</span> +</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> +</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="k">def</span> <span class="nf">uniquecolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="k">return</span> <span class="s2">"UNIQUE"</span> +</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> +</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="k">def</span> <span class="nf">create_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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="n">properties</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">"properties"</span><span class="p">)</span> +</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> <span class="n">properties_exp</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="n">properties_locs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">locate_properties</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">{}</span> +</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">)</span> <span class="ow">or</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> +</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span> +</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="p">):</span> +</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="n">properties_exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="s2">"properties"</span><span class="p">,</span> +</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span> +</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">],</span> +</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">],</span> +</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="p">]</span> +</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="p">),</span> +</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="p">)</span> +</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"TABLE"</span> <span class="ow">and</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">):</span> +</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="n">this_name</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> +</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="n">this_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]),</span> +</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="p">)</span> +</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="n">this_schema</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this_name</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">this_properties</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_schema</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="n">properties_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="n">properties_sql</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">properties_exp</span><span class="p">,</span> <span class="s2">"properties"</span><span class="p">)</span> +</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="s2">" BEGIN"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"begin"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="k">if</span> <span class="n">expression_sql</span><span class="p">:</span> +</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">begin</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> +</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Return</span><span class="p">):</span> +</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">):</span> +</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="n">postalias_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span> +</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="p">),</span> +</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="p">)</span> +</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">postalias_props_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> +</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">):</span> +</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]),</span> +</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="p">)</span> +</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> +</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="n">indexes</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">"indexes"</span><span class="p">)</span> +</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="k">if</span> <span class="n">indexes</span><span class="p">:</span> +</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> <span class="n">indexes_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">indexes</span><span class="p">:</span> +</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="n">ind_unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">index</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">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a> <span class="n">ind_primary</span> <span class="o">=</span> <span class="s2">" PRIMARY"</span> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="n">ind_amp</span> <span class="o">=</span> <span class="s2">" AMP"</span> <span class="k">if</span> <span class="n">index</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">"amp"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="n">ind_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="n">ind_columns</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="sa">f</span><span class="s1">' (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s1">)'</span> +</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="k">if</span> <span class="n">index</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">"columns"</span><span class="p">)</span> +</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="p">)</span> +</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="n">ind_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_unique</span><span class="si">}{</span><span class="n">ind_primary</span><span class="si">}{</span><span class="n">ind_amp</span><span class="si">}</span><span class="s2"> INDEX</span><span class="si">{</span><span class="n">ind_name</span><span class="si">}{</span><span class="n">ind_columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> +</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="k">if</span> <span class="n">indexes_sql</span><span class="p">:</span> +</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ind_sql</span><span class="p">)</span> +</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_sql</span><span class="si">}{</span><span class="n">postindex_props_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> +</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">postindex_props_sql</span><span class="si">}{</span><span class="n">ind_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="p">)</span> +</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> +</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">indexes_sql</span><span class="p">)</span> +</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="n">postindex_props_sql</span> </span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> -</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">indexes_sql</span><span class="p">)</span> -</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="n">postindex_props_sql</span> +</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="s2">" OR REPLACE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="n">volatile</span> <span class="o">=</span> <span class="s2">" VOLATILE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"volatile"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> -</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="s2">" OR REPLACE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="n">volatile</span> <span class="o">=</span> <span class="s2">" VOLATILE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"volatile"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> -</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">):</span> -</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]),</span> -</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="p">)</span> -</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> -</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> <span class="n">modifiers</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">replace</span><span class="p">,</span> <span class="n">unique</span><span class="p">,</span> <span class="n">volatile</span><span class="p">,</span> <span class="n">postcreate_props_sql</span><span class="p">))</span> -</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> -</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">):</span> -</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span> -</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="p">),</span> -</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="p">)</span> -</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> -</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF NOT EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="s2">" WITH NO SCHEMA BINDING"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_schema_binding"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="p">)</span> -</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> -</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CREATE</span><span class="si">{</span><span class="n">modifiers</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">properties_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">postexpression_props_sql</span><span class="si">}{</span><span class="n">index_sql</span><span class="si">}{</span><span class="n">no_schema_binding</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_sql</span><span class="p">)</span> -</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> -</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE </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">expression</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><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> -</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="k">def</span> <span class="nf">prepend_ctes</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">Expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="n">with_</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">"with"</span><span class="p">)</span> -</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="k">if</span> <span class="n">with_</span><span class="p">:</span> -</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">with_</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">):</span> +</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]),</span> +</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="p">)</span> +</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> +</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="n">modifiers</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">replace</span><span class="p">,</span> <span class="n">unique</span><span class="p">,</span> <span class="n">volatile</span><span class="p">,</span> <span class="n">postcreate_props_sql</span><span class="p">))</span> +</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> +</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">):</span> +</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span> +</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="p">),</span> +</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="p">)</span> +</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> +</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF NOT EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="s2">" WITH NO SCHEMA BINDING"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_schema_binding"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="p">)</span> +</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> +</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CREATE</span><span class="si">{</span><span class="n">modifiers</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">properties_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">postexpression_props_sql</span><span class="si">}{</span><span class="n">index_sql</span><span class="si">}{</span><span class="n">no_schema_binding</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_sql</span><span class="p">)</span> +</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> +</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE </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">expression</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><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> +</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="k">def</span> <span class="nf">prepend_ctes</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">Expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="n">with_</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">"with"</span><span class="p">)</span> +</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="k">if</span> <span class="n">with_</span><span class="p">:</span> +</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">with_</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> +</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="k">def</span> <span class="nf">with_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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="n">sql</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-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="n">recursive</span> <span class="o">=</span> <span class="s2">"RECURSIVE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> -</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="k">def</span> <span class="nf">with_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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="n">sql</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-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="n">recursive</span> <span class="o">=</span> <span class="s2">"RECURSIVE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> -</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="n">recursive</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="n">recursive</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> +</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> -</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> -</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="k">def</span> <span class="nf">tablealias_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">TableAlias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="n">alias</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">"this"</span><span class="p">)</span> -</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="n">columns</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">"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-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> -</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="k">def</span> <span class="nf">bitstring_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">BitString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</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-655"><a href="#L-655"><span class="linenos"> 655</span></a> -</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="k">def</span> <span class="nf">hexstring_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">HexString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</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-658"><a href="#L-658"><span class="linenos"> 658</span></a> -</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</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-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="n">type_value</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="n">type_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">type_value</span><span class="p">,</span> <span class="n">type_value</span><span class="o">.</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="n">interior</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-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="n">values</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a> <span class="k">if</span> <span class="n">interior</span><span class="p">:</span> -</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</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">"nested"</span><span class="p">):</span> -</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="n">nested</span> <span class="o">=</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">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</span><span class="n">interior</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</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">"values"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)</span> <span class="k">if</span> <span class="n">type_value</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">Type</span><span class="o">.</span><span class="n">ARRAY</span> <span class="k">else</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</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="w"> </span><span class="s1">'values'</span><span class="p">)</span><span class="si">}{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="p">)</span> -</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">interior</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> -</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}{</span><span class="n">nested</span><span class="si">}{</span><span class="n">values</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> -</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="k">def</span> <span class="nf">directory_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">Directory</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="n">row_format</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">"row_format"</span><span class="p">)</span> -</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="n">row_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">row_format</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">local</span><span class="si">}</span><span class="s2">DIRECTORY </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> -</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="k">def</span> <span class="nf">delete_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">Delete</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="n">using_sql</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</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="w"> </span><span class="s1">'using'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">', USING '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</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">"using"</span><span class="p">)</span> -</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="p">)</span> -</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"DELETE</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">using_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> -</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="k">def</span> <span class="nf">drop_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">Drop</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="n">materialized</span> <span class="o">=</span> <span class="s2">" MATERIALIZED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"materialized"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="n">cascade</span> <span class="o">=</span> <span class="s2">" CASCADE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cascade"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">temporary</span><span class="si">}{</span><span class="n">materialized</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">cascade</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> -</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="k">def</span> <span class="nf">except_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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a> <span class="p">)</span> -</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a> -</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a> -</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> <span class="n">direction</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">"direction"</span><span class="p">)</span> -</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">direction</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a> <span class="n">count</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">"count"</span><span class="p">)</span> -</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="n">count</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">count</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">count</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FETCH'</span><span class="p">)</span><span class="si">}{</span><span class="n">direction</span><span class="si">}{</span><span class="n">count</span><span class="si">}</span><span class="s2"> ROWS ONLY"</span> -</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> -</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a> <span class="k">def</span> <span class="nf">filter_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">Filter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> <span class="n">where</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># where has a leading space</span> -</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FILTER(</span><span class="si">{</span><span class="n">where</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> -</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> <span class="k">def</span> <span class="nf">hint_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">Hint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> <span class="k">if</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-729"><a href="#L-729"><span class="linenos"> 729</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hints are not supported"</span><span class="p">)</span> -</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> -</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a> <span class="k">def</span> <span class="nf">index_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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> -</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> -</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a> <span class="k">def</span> <span class="nf">identifier_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">Identifier</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="k">else</span> <span class="n">text</span> -</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span><span class="p">)</span> -</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</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">"quoted"</span><span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span><span class="p">:</span> -</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="n">text</span> <span class="o">=</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">identifier_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> <span class="k">return</span> <span class="n">text</span> -</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> -</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="k">def</span> <span class="nf">national_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">National</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"N</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">expression</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><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a> -</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="k">def</span> <span class="nf">partition_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">Partition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION(</span><span class="si">{</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="si">}</span><span class="s2">)"</span> +</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="k">def</span> <span class="nf">tablealias_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">TableAlias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="n">alias</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">"this"</span><span class="p">)</span> +</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="n">columns</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">"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-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> +</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="k">def</span> <span class="nf">bitstring_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">BitString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</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-651"><a href="#L-651"><span class="linenos"> 651</span></a> +</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> <span class="k">def</span> <span class="nf">hexstring_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">HexString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</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-654"><a href="#L-654"><span class="linenos"> 654</span></a> +</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="k">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-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="n">type_value</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="n">type_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">type_value</span><span class="p">,</span> <span class="n">type_value</span><span class="o">.</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="n">interior</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-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="n">values</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="k">if</span> <span class="n">interior</span><span class="p">:</span> +</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</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">"nested"</span><span class="p">):</span> +</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="n">nested</span> <span class="o">=</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">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</span><span class="n">interior</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</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">"values"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)</span> <span class="k">if</span> <span class="n">type_value</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">Type</span><span class="o">.</span><span class="n">ARRAY</span> <span class="k">else</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</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="w"> </span><span class="s1">'values'</span><span class="p">)</span><span class="si">}{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="p">)</span> +</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">interior</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> +</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}{</span><span class="n">nested</span><span class="si">}{</span><span class="n">values</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> +</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="k">def</span> <span class="nf">directory_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">Directory</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="n">row_format</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">"row_format"</span><span class="p">)</span> +</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="n">row_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">row_format</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">local</span><span class="si">}</span><span class="s2">DIRECTORY </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> +</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="k">def</span> <span class="nf">delete_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">Delete</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> <span class="n">using_sql</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</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="w"> </span><span class="s1">'using'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">', USING '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</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">"using"</span><span class="p">)</span> +</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="p">)</span> +</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"DELETE</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">using_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> +</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="k">def</span> <span class="nf">drop_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">Drop</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="n">materialized</span> <span class="o">=</span> <span class="s2">" MATERIALIZED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"materialized"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="n">cascade</span> <span class="o">=</span> <span class="s2">" CASCADE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cascade"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">temporary</span><span class="si">}{</span><span class="n">materialized</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">cascade</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> +</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="k">def</span> <span class="nf">except_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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="p">)</span> +</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> +</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a> +</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="n">direction</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">"direction"</span><span class="p">)</span> +</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">direction</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a> <span class="n">count</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">"count"</span><span class="p">)</span> +</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="n">count</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">count</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">count</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FETCH'</span><span class="p">)</span><span class="si">}{</span><span class="n">direction</span><span class="si">}{</span><span class="n">count</span><span class="si">}</span><span class="s2"> ROWS ONLY"</span> +</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> +</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a> <span class="k">def</span> <span class="nf">filter_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">Filter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> <span class="n">where</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># where has a leading space</span> +</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FILTER(</span><span class="si">{</span><span class="n">where</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a> +</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> <span class="k">def</span> <span class="nf">hint_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">Hint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> <span class="k">if</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-725"><a href="#L-725"><span class="linenos"> 725</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hints are not supported"</span><span class="p">)</span> +</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> +</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> <span class="k">def</span> <span class="nf">index_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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> +</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a> +</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a> <span class="k">def</span> <span class="nf">identifier_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">Identifier</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="k">else</span> <span class="n">text</span> +</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span><span class="p">)</span> +</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</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">"quoted"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">should_identify</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span><span class="p">):</span> +</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="n">text</span> <span class="o">=</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">identifier_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a> +</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="k">def</span> <span class="nf">national_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">National</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"N</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">expression</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><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> +</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="k">def</span> <span class="nf">partition_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">Partition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION(</span><span class="si">{</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="si">}</span><span class="s2">)"</span> +</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> +</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a> <span class="k">def</span> <span class="nf">properties_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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="n">root_properties</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="n">with_properties</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> -</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="k">def</span> <span class="nf">properties_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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="n">root_properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="n">with_properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> -</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> -</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> -</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="n">with_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> -</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="n">root_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> +</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> +</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="n">with_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> +</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="n">root_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> +</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">root_properties</span><span class="p">(</span> +</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">root_properties</span><span class="p">)</span> +</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_properties</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">with_properties</span><span class="p">))</span> </span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> -</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">root_properties</span><span class="p">(</span> -</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">root_properties</span><span class="p">)</span> -</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_properties</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">with_properties</span><span class="p">))</span> -</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> -</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="k">def</span> <span class="nf">root_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">properties</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</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-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> -</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="k">def</span> <span class="nf">properties</span><span class="p">(</span> -</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">,</span> -</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> -</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="n">wrapped</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> <span class="n">expressions</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">properties</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">wrapped</span> <span class="k">else</span> <span class="n">expressions</span> -</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="s1">' '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> -</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">))</span> -</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> -</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> <span class="k">def</span> <span class="nf">locate_properties</span><span class="p">(</span> -</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span> -</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]:</span> -</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="n">properties_locs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="n">key</span><span class="p">:</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span> -</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="p">}</span> -</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> -</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> -</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">:</span> -</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">:</span> -</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> -</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> -</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">:</span> -</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">:</span> -</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">:</span> -</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">:</span> -</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</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 property </span><span class="si">{</span><span class="n">p</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> -</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="k">return</span> <span class="n">properties_locs</span> -</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> -</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="k">def</span> <span class="nf">property_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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span> -</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="k">if</span> <span class="n">property_cls</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> -</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="k">def</span> <span class="nf">root_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">properties</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</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-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> +</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a> <span class="k">def</span> <span class="nf">properties</span><span class="p">(</span> +</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">,</span> +</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> +</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="n">wrapped</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="n">expressions</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">properties</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">wrapped</span> <span class="k">else</span> <span class="n">expressions</span> +</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="s1">' '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> +</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">))</span> +</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> +</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="k">def</span> <span class="nf">locate_properties</span><span class="p">(</span> +</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span> +</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]:</span> +</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="n">properties_locs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> <span class="n">key</span><span class="p">:</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span> +</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="p">}</span> +</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> +</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> +</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">:</span> +</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">:</span> +</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> +</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> +</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">:</span> +</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">:</span> +</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">:</span> +</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">:</span> +</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</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 property </span><span class="si">{</span><span class="n">p</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> +</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> <span class="k">return</span> <span class="n">properties_locs</span> +</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> +</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="k">def</span> <span class="nf">property_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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span> +</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="k">if</span> <span class="n">property_cls</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> +</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> +</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">property_cls</span><span class="p">)</span> +</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> +</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> -</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">property_cls</span><span class="p">)</span> -</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> -</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> -</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> -</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="k">def</span> <span class="nf">likeproperty_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">LikeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="n">options</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="k">return</span> <span class="sa">f</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> -</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">def</span> <span class="nf">fallbackproperty_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">FallbackProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="n">protection</span> <span class="o">=</span> <span class="s2">" PROTECTION"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"protection"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}</span><span class="s2">FALLBACK</span><span class="si">{</span><span class="n">protection</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> -</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="k">def</span> <span class="nf">journalproperty_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">JournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="n">before</span> <span class="o">=</span> <span class="s2">"BEFORE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"before"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">before</span><span class="si">}</span><span class="s2">JOURNAL"</span> -</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> -</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="k">def</span> <span class="nf">freespaceproperty_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">FreespaceProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="n">freespace</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">"this"</span><span class="p">)</span> -</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FREESPACE=</span><span class="si">{</span><span class="n">freespace</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> -</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> <span class="k">def</span> <span class="nf">afterjournalproperty_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">AfterJournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</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">"local"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"NOT LOCAL "</span> -</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">local</span><span class="si">}</span><span class="s2">AFTER JOURNAL"</span> -</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> -</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="nf">checksumproperty_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">ChecksumProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</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">"default"</span><span class="p">):</span> -</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">elif</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">"on"</span><span class="p">):</span> -</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ON"</span> -</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"OFF"</span> -</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECKSUM=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> -</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="k">def</span> <span class="nf">mergeblockratioproperty_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">MergeBlockRatioProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</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">"no"</span><span class="p">):</span> -</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> <span class="k">return</span> <span class="s2">"NO MERGEBLOCKRATIO"</span> -</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</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">"default"</span><span class="p">):</span> -</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="k">return</span> <span class="s2">"DEFAULT MERGEBLOCKRATIO"</span> -</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> -</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGEBLOCKRATIO=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> -</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">def</span> <span class="nf">datablocksizeproperty_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">DataBlocksizeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="nb">min</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">"min"</span><span class="p">)</span> -</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">min</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">elif</span> <span class="nb">min</span><span class="p">:</span> -</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MINIMUM"</span> -</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MAXIMUM"</span> -</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2"> DATABLOCKSIZE"</span> -</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="n">units</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">"units"</span><span class="p">)</span> -</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="n">units</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">units</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATABLOCKSIZE=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'size'</span><span class="p">)</span><span class="si">}{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> -</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="k">def</span> <span class="nf">blockcompressionproperty_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">BlockCompressionProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="n">autotemp</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">"autotemp"</span><span class="p">)</span> -</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> <span class="n">always</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">"always"</span><span class="p">)</span> -</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="n">manual</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">"manual"</span><span class="p">)</span> -</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> <span class="n">never</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">"never"</span><span class="p">)</span> -</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> -</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="k">if</span> <span class="n">autotemp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AUTOTEMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">autotemp</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> <span class="k">elif</span> <span class="n">always</span><span class="p">:</span> -</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ALWAYS"</span> -</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="k">elif</span> <span class="n">default</span><span class="p">:</span> -</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="k">elif</span> <span class="n">manual</span><span class="p">:</span> -</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MANUAL"</span> -</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">elif</span> <span class="n">never</span><span class="p">:</span> -</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"NEVER"</span> -</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BLOCKCOMPRESSION=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> -</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="k">def</span> <span class="nf">isolatedloadingproperty_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">IsolatedLoadingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="n">no</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">"no"</span><span class="p">)</span> -</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">" NO"</span> <span class="k">if</span> <span class="n">no</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="n">concurrent</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">"concurrent"</span><span class="p">)</span> -</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="s2">" CONCURRENT"</span> <span class="k">if</span> <span class="n">concurrent</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> -</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</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">"for_all"</span><span class="p">):</span> -</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR ALL"</span> -</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> <span class="k">elif</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">"for_insert"</span><span class="p">):</span> -</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR INSERT"</span> -</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> <span class="k">elif</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">"for_none"</span><span class="p">):</span> -</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR NONE"</span> -</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">concurrent</span><span class="si">}</span><span class="s2"> ISOLATED LOADING</span><span class="si">{</span><span class="n">for_</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> -</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="k">def</span> <span class="nf">lockingproperty_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">LockingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="n">this</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> <span class="n">for_or_in</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">"for_or_in"</span><span class="p">)</span> -</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="n">lock_type</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">"lock_type"</span><span class="p">)</span> -</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="n">override</span> <span class="o">=</span> <span class="s2">" OVERRIDE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"override"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOCKING </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">for_or_in</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}{</span><span class="n">override</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> -</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> <span class="k">def</span> <span class="nf">withdataproperty_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">WithDataProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="n">data_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'no'</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">DATA"</span> -</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="n">statistics</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">"statistics"</span><span class="p">)</span> -</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="k">if</span> <span class="n">statistics</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">statistics</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">STATISTICS"</span> -</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data_sql</span><span class="si">}{</span><span class="n">statistics_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a> -</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="k">def</span> <span class="nf">insert_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">Insert</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="n">overwrite</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">"overwrite"</span><span class="p">)</span> -</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> -</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">):</span> -</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> -</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE TABLE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> +</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="k">def</span> <span class="nf">likeproperty_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">LikeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="n">options</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="k">return</span> <span class="sa">f</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> +</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="k">def</span> <span class="nf">fallbackproperty_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">FallbackProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="n">protection</span> <span class="o">=</span> <span class="s2">" PROTECTION"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"protection"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}</span><span class="s2">FALLBACK</span><span class="si">{</span><span class="n">protection</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> +</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="k">def</span> <span class="nf">journalproperty_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">JournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="n">before</span> <span class="o">=</span> <span class="s2">"BEFORE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"before"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">before</span><span class="si">}</span><span class="s2">JOURNAL"</span> +</span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> +</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="k">def</span> <span class="nf">freespaceproperty_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">FreespaceProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> <span class="n">freespace</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">"this"</span><span class="p">)</span> +</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FREESPACE=</span><span class="si">{</span><span class="n">freespace</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> +</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="k">def</span> <span class="nf">afterjournalproperty_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">AfterJournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</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">"local"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"NOT LOCAL "</span> +</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">local</span><span class="si">}</span><span class="s2">AFTER JOURNAL"</span> +</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> +</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> <span class="k">def</span> <span class="nf">checksumproperty_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">ChecksumProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</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">"default"</span><span class="p">):</span> +</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="k">elif</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">"on"</span><span class="p">):</span> +</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ON"</span> +</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"OFF"</span> +</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECKSUM=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> +</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="k">def</span> <span class="nf">mergeblockratioproperty_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">MergeBlockRatioProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</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">"no"</span><span class="p">):</span> +</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">return</span> <span class="s2">"NO MERGEBLOCKRATIO"</span> +</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</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">"default"</span><span class="p">):</span> +</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="k">return</span> <span class="s2">"DEFAULT MERGEBLOCKRATIO"</span> +</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> +</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGEBLOCKRATIO=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> +</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="k">def</span> <span class="nf">datablocksizeproperty_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">DataBlocksizeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="nb">min</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">"min"</span><span class="p">)</span> +</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">min</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="k">elif</span> <span class="nb">min</span><span class="p">:</span> +</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MINIMUM"</span> +</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MAXIMUM"</span> +</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2"> DATABLOCKSIZE"</span> +</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="n">units</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">"units"</span><span class="p">)</span> +</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="n">units</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">units</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATABLOCKSIZE=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'size'</span><span class="p">)</span><span class="si">}{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> +</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="k">def</span> <span class="nf">blockcompressionproperty_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">BlockCompressionProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="n">autotemp</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">"autotemp"</span><span class="p">)</span> +</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> <span class="n">always</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">"always"</span><span class="p">)</span> +</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="n">manual</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">"manual"</span><span class="p">)</span> +</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="n">never</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">"never"</span><span class="p">)</span> +</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> +</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="k">if</span> <span class="n">autotemp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AUTOTEMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">autotemp</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> <span class="k">elif</span> <span class="n">always</span><span class="p">:</span> +</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ALWAYS"</span> +</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="k">elif</span> <span class="n">default</span><span class="p">:</span> +</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> <span class="k">elif</span> <span class="n">manual</span><span class="p">:</span> +</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MANUAL"</span> +</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="k">elif</span> <span class="n">never</span><span class="p">:</span> +</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"NEVER"</span> +</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BLOCKCOMPRESSION=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a> +</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">def</span> <span class="nf">isolatedloadingproperty_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">IsolatedLoadingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> <span class="n">no</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">"no"</span><span class="p">)</span> +</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">" NO"</span> <span class="k">if</span> <span class="n">no</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> <span class="n">concurrent</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">"concurrent"</span><span class="p">)</span> +</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="s2">" CONCURRENT"</span> <span class="k">if</span> <span class="n">concurrent</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> +</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</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">"for_all"</span><span class="p">):</span> +</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR ALL"</span> +</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="k">elif</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">"for_insert"</span><span class="p">):</span> +</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR INSERT"</span> +</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="k">elif</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">"for_none"</span><span class="p">):</span> +</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR NONE"</span> +</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">concurrent</span><span class="si">}</span><span class="s2"> ISOLATED LOADING</span><span class="si">{</span><span class="n">for_</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> +</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> <span class="k">def</span> <span class="nf">lockingproperty_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">LockingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="n">this</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> <span class="n">for_or_in</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">"for_or_in"</span><span class="p">)</span> +</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="n">lock_type</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">"lock_type"</span><span class="p">)</span> +</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> <span class="n">override</span> <span class="o">=</span> <span class="s2">" OVERRIDE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"override"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOCKING </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">for_or_in</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}{</span><span class="n">override</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> +</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="k">def</span> <span class="nf">withdataproperty_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">WithDataProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="n">data_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'no'</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">DATA"</span> +</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="n">statistics</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">"statistics"</span><span class="p">)</span> +</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> <span class="k">if</span> <span class="n">statistics</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">statistics</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">STATISTICS"</span> +</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data_sql</span><span class="si">}{</span><span class="n">statistics_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> +</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="k">def</span> <span class="nf">insert_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">Insert</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="n">overwrite</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">"overwrite"</span><span class="p">)</span> +</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> +</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">):</span> +</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE TABLE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> +</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="n">alternative</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">"alternative"</span><span class="p">)</span> +</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OR </span><span class="si">{</span><span class="n">alternative</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">alternative</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</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">expression</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><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> -</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> <span class="n">alternative</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">"alternative"</span><span class="p">)</span> -</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OR </span><span class="si">{</span><span class="n">alternative</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">alternative</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</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">expression</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><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> -</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <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">"partition"</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"partition"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="p">)</span> -</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span> <span class="k">if</span> <span class="n">partition_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT</span><span class="si">{</span><span class="n">alternative</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">exists</span><span class="si">}{</span><span class="n">partition_sql</span><span class="si">}{</span><span class="n">sep</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> -</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="k">def</span> <span class="nf">intersect_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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="p">)</span> -</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> -</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> -</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="k">def</span> <span class="nf">introducer_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">Introducer</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> -</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="k">def</span> <span class="nf">pseudotype_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">PseudoType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> -</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="k">def</span> <span class="nf">returning_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">Returning</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'RETURNING'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a> -</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> <span class="k">def</span> <span class="nf">rowformatdelimitedproperty_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">RowFormatDelimitedProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="n">fields</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">"fields"</span><span class="p">)</span> -</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="n">fields</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FIELDS TERMINATED BY </span><span class="si">{</span><span class="n">fields</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">fields</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="n">escaped</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">"escaped"</span><span class="p">)</span> -</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="n">escaped</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ESCAPED BY </span><span class="si">{</span><span class="n">escaped</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">escaped</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="n">items</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">"collection_items"</span><span class="p">)</span> -</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLECTION ITEMS TERMINATED BY </span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="n">keys</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">"map_keys"</span><span class="p">)</span> -</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAP KEYS TERMINATED BY </span><span class="si">{</span><span class="n">keys</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="n">lines</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">"lines"</span><span class="p">)</span> -</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LINES TERMINATED BY </span><span class="si">{</span><span class="n">lines</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">lines</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="n">null</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">"null"</span><span class="p">)</span> -</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="n">null</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" NULL DEFINED AS </span><span class="si">{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">null</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROW FORMAT DELIMITED</span><span class="si">{</span><span class="n">fields</span><span class="si">}{</span><span class="n">escaped</span><span class="si">}{</span><span class="n">items</span><span class="si">}{</span><span class="n">keys</span><span class="si">}{</span><span class="n">lines</span><span class="si">}{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> -</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="k">def</span> <span class="nf">table_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">Table</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="n">table</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="n">part</span> -</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">[</span> -</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <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">"catalog"</span><span class="p">),</span> -</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <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">"db"</span><span class="p">),</span> -</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> <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-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="p">]</span> -</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="p">)</span> -</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> -</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> -</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">hints</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">"hints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">", "</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-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH (</span><span class="si">{</span><span class="n">hints</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">hints</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> <span class="n">laterals</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">"laterals"</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-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="n">joins</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">"joins"</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-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="n">pivots</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">"pivots"</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-1014"><a href="#L-1014"><span class="linenos">1014</span></a> <span class="n">system_time</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">"system_time"</span><span class="p">)</span> -</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="n">system_time</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'system_time'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">system_time</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> -</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">system_time</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">hints</span><span class="si">}{</span><span class="n">laterals</span><span class="si">}{</span><span class="n">joins</span><span class="si">}{</span><span class="n">pivots</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> -</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="n">this</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> -</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="s1">'alias'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a> <span class="n">method</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">"method"</span><span class="p">)</span> -</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="n">method</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">method</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">method</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="n">numerator</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">"bucket_numerator"</span><span class="p">)</span> -</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="n">denominator</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">"bucket_denominator"</span><span class="p">)</span> -</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> <span class="n">field</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">"bucket_field"</span><span class="p">)</span> -</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">field</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">field</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">bucket</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"BUCKET </span><span class="si">{</span><span class="n">numerator</span><span class="si">}</span><span class="s2"> OUT OF </span><span class="si">{</span><span class="n">denominator</span><span class="si">}{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">numerator</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">percent</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">"percent"</span><span class="p">)</span> -</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">percent</span><span class="si">}</span><span class="s2"> PERCENT"</span> <span class="k">if</span> <span class="n">percent</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> -</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rows</span><span class="si">}</span><span class="s2"> ROWS"</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="n">size</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">"size"</span><span class="p">)</span> -</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="n">seed</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">"seed"</span><span class="p">)</span> -</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">seed_prefix</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">seed</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">seed</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="n">kind</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">"kind"</span><span class="p">,</span> <span class="s2">"TABLESAMPLE"</span><span class="p">)</span> -</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">method</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">bucket</span><span class="si">}{</span><span class="n">percent</span><span class="si">}{</span><span class="n">rows</span><span class="si">}{</span><span class="n">size</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">seed</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> -</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="k">def</span> <span class="nf">pivot_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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> -</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="n">unpivot</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">"unpivot"</span><span class="p">)</span> -</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="s2">"UNPIVOT"</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="s2">"PIVOT"</span> -</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="n">expressions</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">"expressions"</span><span class="p">)</span> -</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> -</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">direction</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2"> FOR </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> -</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="k">def</span> <span class="nf">tuple_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">Tuple</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> -</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="n">set_sql</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-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> -</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="n">args</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><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="n">values</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"VALUES</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">args</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">values</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">WRAP_DERIVED_VALUES</span> <span class="ow">and</span> <span class="p">(</span><span class="n">alias</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">))</span> -</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="k">else</span> <span class="n">values</span> -</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="p">)</span> -</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">values</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">values</span> -</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> -</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="k">def</span> <span class="nf">var_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">Var</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</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-1078"><a href="#L-1078"><span class="linenos">1078</span></a> -</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="k">def</span> <span class="nf">into_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">Into</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">unlogged</span> <span class="o">=</span> <span class="s2">" UNLOGGED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unlogged"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'INTO'</span><span class="p">)</span><span class="si">}{</span><span class="n">temporary</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">unlogged</span><span class="si">}</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">expression</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><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <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">"partition"</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"partition"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> <span class="p">)</span> +</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span> <span class="k">if</span> <span class="n">partition_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT</span><span class="si">{</span><span class="n">alternative</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">exists</span><span class="si">}{</span><span class="n">partition_sql</span><span class="si">}{</span><span class="n">sep</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> +</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="k">def</span> <span class="nf">intersect_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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="p">)</span> +</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> +</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> +</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="k">def</span> <span class="nf">introducer_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">Introducer</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> +</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="k">def</span> <span class="nf">pseudotype_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">PseudoType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> +</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="k">def</span> <span class="nf">returning_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">Returning</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'RETURNING'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> +</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> <span class="k">def</span> <span class="nf">rowformatdelimitedproperty_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">RowFormatDelimitedProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="n">fields</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">"fields"</span><span class="p">)</span> +</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> <span class="n">fields</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FIELDS TERMINATED BY </span><span class="si">{</span><span class="n">fields</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">fields</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a> <span class="n">escaped</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">"escaped"</span><span class="p">)</span> +</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> <span class="n">escaped</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ESCAPED BY </span><span class="si">{</span><span class="n">escaped</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">escaped</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="n">items</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">"collection_items"</span><span class="p">)</span> +</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLECTION ITEMS TERMINATED BY </span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="n">keys</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">"map_keys"</span><span class="p">)</span> +</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAP KEYS TERMINATED BY </span><span class="si">{</span><span class="n">keys</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="n">lines</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">"lines"</span><span class="p">)</span> +</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LINES TERMINATED BY </span><span class="si">{</span><span class="n">lines</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">lines</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="n">null</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">"null"</span><span class="p">)</span> +</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="n">null</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" NULL DEFINED AS </span><span class="si">{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">null</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROW FORMAT DELIMITED</span><span class="si">{</span><span class="n">fields</span><span class="si">}{</span><span class="n">escaped</span><span class="si">}{</span><span class="n">items</span><span class="si">}{</span><span class="n">keys</span><span class="si">}{</span><span class="n">lines</span><span class="si">}{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> +</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="k">def</span> <span class="nf">table_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">Table</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="n">table</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="n">part</span> +</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">[</span> +</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <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">"catalog"</span><span class="p">),</span> +</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <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">"db"</span><span class="p">),</span> +</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <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-999"><a href="#L-999"><span class="linenos"> 999</span></a> <span class="p">]</span> +</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="p">)</span> +</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> +</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> +</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="n">hints</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">"hints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">", "</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-1006"><a href="#L-1006"><span class="linenos">1006</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH (</span><span class="si">{</span><span class="n">hints</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">hints</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="n">laterals</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">"laterals"</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-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="n">joins</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">"joins"</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-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">pivots</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">"pivots"</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-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="n">system_time</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">"system_time"</span><span class="p">)</span> +</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> <span class="n">system_time</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'system_time'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">system_time</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> +</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">system_time</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">hints</span><span class="si">}{</span><span class="n">laterals</span><span class="si">}{</span><span class="n">joins</span><span class="si">}{</span><span class="n">pivots</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a> +</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">this</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> +</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="s1">'alias'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="n">method</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">"method"</span><span class="p">)</span> +</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="n">method</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">method</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">method</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> <span class="n">numerator</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">"bucket_numerator"</span><span class="p">)</span> +</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="n">denominator</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">"bucket_denominator"</span><span class="p">)</span> +</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a> <span class="n">field</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">"bucket_field"</span><span class="p">)</span> +</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="n">field</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">field</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="n">bucket</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"BUCKET </span><span class="si">{</span><span class="n">numerator</span><span class="si">}</span><span class="s2"> OUT OF </span><span class="si">{</span><span class="n">denominator</span><span class="si">}{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">numerator</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="n">percent</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">"percent"</span><span class="p">)</span> +</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">percent</span><span class="si">}</span><span class="s2"> PERCENT"</span> <span class="k">if</span> <span class="n">percent</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> +</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rows</span><span class="si">}</span><span class="s2"> ROWS"</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">size</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">"size"</span><span class="p">)</span> +</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="n">seed</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">"seed"</span><span class="p">)</span> +</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">seed_prefix</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">seed</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">seed</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="n">kind</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">"kind"</span><span class="p">,</span> <span class="s2">"TABLESAMPLE"</span><span class="p">)</span> +</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">method</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">bucket</span><span class="si">}{</span><span class="n">percent</span><span class="si">}{</span><span class="n">rows</span><span class="si">}{</span><span class="n">size</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">seed</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> +</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="k">def</span> <span class="nf">pivot_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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> +</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="n">unpivot</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">"unpivot"</span><span class="p">)</span> +</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="s2">"UNPIVOT"</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="s2">"PIVOT"</span> +</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">expressions</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">"expressions"</span><span class="p">)</span> +</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> +</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">direction</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2"> FOR </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> +</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="k">def</span> <span class="nf">tuple_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">Tuple</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> +</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="n">set_sql</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-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> +</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="n">args</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><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="n">values</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"VALUES</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">args</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">values</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">WRAP_DERIVED_VALUES</span> <span class="ow">and</span> <span class="p">(</span><span class="n">alias</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">))</span> +</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="k">else</span> <span class="n">values</span> +</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="p">)</span> +</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">values</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">values</span> +</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> +</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="k">def</span> <span class="nf">var_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">Var</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</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-1074"><a href="#L-1074"><span class="linenos">1074</span></a> +</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="k">def</span> <span class="nf">into_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">Into</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="n">unlogged</span> <span class="o">=</span> <span class="s2">" UNLOGGED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unlogged"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'INTO'</span><span class="p">)</span><span class="si">}{</span><span class="n">temporary</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">unlogged</span><span class="si">}</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">expression</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><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> +</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="k">def</span> <span class="nf">from_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">From</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">expressions</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-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FROM'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> -</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="k">def</span> <span class="nf">from_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">From</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">expressions</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-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FROM'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> -</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="k">def</span> <span class="nf">group_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">Group</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"GROUP BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> <span class="n">grouping_sets</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">"grouping_sets"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <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">seg</span><span class="p">(</span><span class="s1">'GROUPING SETS'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">grouping_sets</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="p">)</span> -</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> -</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="n">cube</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">"cube"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="n">cube_sql</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">"cube"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a> <span class="n">cube_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">cube_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">cube_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> -</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="n">rollup</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">"rollup"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">rollup</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="n">rollup_sql</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">"rollup"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="n">rollup_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">rollup_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">rollup_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> -</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="n">groupings</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">,</span> <span class="n">cube_sql</span><span class="p">,</span> <span class="n">rollup_sql</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-1110"><a href="#L-1110"><span class="linenos">1110</span></a> -</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</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">"expressions"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupings</span><span class="p">:</span> -</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}</span><span class="s2">,"</span> -</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> -</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="n">groupings</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="k">def</span> <span class="nf">group_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">Group</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"GROUP BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="n">grouping_sets</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">"grouping_sets"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <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">seg</span><span class="p">(</span><span class="s1">'GROUPING SETS'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">grouping_sets</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="p">)</span> +</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> +</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="n">cube</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">"cube"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="n">cube_sql</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">"cube"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="n">cube_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">cube_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">cube_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> +</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="n">rollup</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">"rollup"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">rollup</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="n">rollup_sql</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">"rollup"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="n">rollup_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">rollup_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">rollup_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> +</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="n">groupings</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">,</span> <span class="n">cube_sql</span><span class="p">,</span> <span class="n">rollup_sql</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-1106"><a href="#L-1106"><span class="linenos">1106</span></a> +</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</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">"expressions"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupings</span><span class="p">:</span> +</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}</span><span class="s2">,"</span> +</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> +</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="n">groupings</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> +</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="k">def</span> <span class="nf">having_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">Having</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'HAVING'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> -</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="k">def</span> <span class="nf">having_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">Having</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'HAVING'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> -</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">def</span> <span class="nf">join_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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span> -</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="n">op</span> -</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="s2">"NATURAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">side</span><span class="p">,</span> -</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="s2">"JOIN"</span><span class="p">,</span> -</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="p">)</span> -</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="k">if</span> <span class="n">op</span> -</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="p">)</span> -</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="p">)</span> -</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="n">on_sql</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">"on"</span><span class="p">)</span> -</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> -</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a> -</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">on_sql</span> <span class="ow">and</span> <span class="n">using</span><span class="p">:</span> -</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="o">*</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">column</span><span class="p">)</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">using</span><span class="p">))</span> -</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a> -</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="k">if</span> <span class="n">on_sql</span><span class="p">:</span> -</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">on_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a> <span class="n">space</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> -</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">USING (</span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="k">def</span> <span class="nf">join_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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span> +</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="n">op</span> +</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="s2">"NATURAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">side</span><span class="p">,</span> +</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="s2">"JOIN"</span><span class="p">,</span> +</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="p">)</span> +</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="k">if</span> <span class="n">op</span> +</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="p">)</span> +</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="p">)</span> +</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="n">on_sql</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">"on"</span><span class="p">)</span> +</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> +</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> +</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">on_sql</span> <span class="ow">and</span> <span class="n">using</span><span class="p">:</span> +</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="o">*</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">column</span><span class="p">)</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">using</span><span class="p">))</span> +</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a> +</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a> <span class="k">if</span> <span class="n">on_sql</span><span class="p">:</span> +</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">on_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a> <span class="n">space</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> +</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">USING (</span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a> +</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> +</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">op_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_sql</span><span class="si">}{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> -</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> -</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">op_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_sql</span><span class="si">}{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> -</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> <span class="k">def</span> <span class="nf">lambda_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">Lambda</span><span class="p">,</span> <span class="n">arrow_sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"->"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="n">args</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-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">args</span> -</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">arrow_sep</span><span class="si">}</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">expression</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><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> -</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="k">def</span> <span class="nf">lateral_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">Lateral</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a> -</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> -</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> -</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</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">"view"</span><span class="p">):</span> -</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span> -</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="n">columns</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">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-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">alias</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"LATERAL VIEW</span><span class="si">{</span><span class="s1">' OUTER'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'outer'</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">"</span><span class="p">)</span> -</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">table</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="k">def</span> <span class="nf">lambda_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">Lambda</span><span class="p">,</span> <span class="n">arrow_sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"->"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="n">args</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-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">args</span> +</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">arrow_sep</span><span class="si">}</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">expression</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><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> +</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="k">def</span> <span class="nf">lateral_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">Lateral</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> +</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> +</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a> +</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</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">"view"</span><span class="p">):</span> +</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span> +</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="n">columns</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">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-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">alias</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"LATERAL VIEW</span><span class="si">{</span><span class="s1">' OUTER'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'outer'</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">"</span><span class="p">)</span> +</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">table</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> +</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> +</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a> -</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> -</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="k">def</span> <span class="nf">limit_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">Limit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'LIMIT'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a> -</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a> <span class="k">def</span> <span class="nf">limit_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">Limit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> </span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'LIMIT'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'OFFSET'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a> -</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'OFFSET'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> -</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="k">def</span> <span class="nf">lock_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">Lock</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">LOCKING_READS_SUPPORTED</span><span class="p">:</span> -</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"UPDATE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"update"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"SHARE"</span> -</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"FOR </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> -</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Locking reads using 'FOR UPDATE/SHARE' are not supported"</span><span class="p">)</span> -</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a> -</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a> <span class="k">def</span> <span class="nf">literal_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">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">""</span> -</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span><span class="p">)</span> -</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">)</span> -</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="n">text</span> <span class="o">=</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">quote_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a> <span class="k">def</span> <span class="nf">setitem_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">SetItem</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="n">expressions</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><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> +</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> +</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="k">def</span> <span class="nf">set_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">Set</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a> <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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a> <span class="p">)</span> +</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> +</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a> <span class="k">def</span> <span class="nf">lock_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">Lock</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">LOCKING_READS_SUPPORTED</span><span class="p">:</span> +</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"UPDATE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"update"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"SHARE"</span> +</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"FOR </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> -</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> <span class="k">def</span> <span class="nf">loaddata_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">LoadData</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">" LOCAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPATH </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'inpath'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="n">overwrite</span> <span class="o">=</span> <span class="s2">" OVERWRITE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"overwrite"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INTO TABLE </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">expression</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><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="n">partition</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">"partition"</span><span class="p">)</span> -</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a> <span class="n">input_format</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">"input_format"</span><span class="p">)</span> -</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a> <span class="n">input_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPUTFORMAT </span><span class="si">{</span><span class="n">input_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">input_format</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> <span class="n">serde</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">"serde"</span><span class="p">)</span> -</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="n">serde</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" SERDE </span><span class="si">{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">serde</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOAD DATA</span><span class="si">{</span><span class="n">local</span><span class="si">}{</span><span class="n">inpath</span><span class="si">}{</span><span class="n">overwrite</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">partition</span><span class="si">}{</span><span class="n">input_format</span><span class="si">}{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> -</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a> <span class="k">def</span> <span class="nf">null_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> -</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a> -</span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</span></a> <span class="k">def</span> <span class="nf">boolean_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">Boolean</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> <span class="k">return</span> <span class="s2">"TRUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">"FALSE"</span> -</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> -</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a> <span class="k">def</span> <span class="nf">order_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">Order</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">this</span> -</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">ORDER BY"</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="n">this</span> <span class="ow">or</span> <span class="n">flat</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> -</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a> <span class="k">def</span> <span class="nf">cluster_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">Cluster</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a> -</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="k">def</span> <span class="nf">distribute_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">Distribute</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"DISTRIBUTE BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a> -</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a> <span class="k">def</span> <span class="nf">sort_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">Sort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"SORT BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> -</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="k">def</span> <span class="nf">ordered_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">Ordered</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> -</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> -</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> -</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a> <span class="n">nulls_first</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">"nulls_first"</span><span class="p">)</span> -</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a> <span class="n">nulls_last</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">nulls_first</span> -</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="n">nulls_are_large</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_large"</span> -</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> <span class="n">nulls_are_small</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span> -</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a> <span class="n">nulls_are_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_last"</span> -</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a> -</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="n">sort_order</span> <span class="o">=</span> <span class="s2">" DESC"</span> <span class="k">if</span> <span class="n">desc</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a> <span class="k">if</span> <span class="n">nulls_first</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="n">nulls_are_last</span> -</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a> <span class="p">):</span> -</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS FIRST"</span> -</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a> <span class="k">elif</span> <span class="p">(</span> -</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="n">nulls_last</span> -</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="ow">and</span> <span class="p">((</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">))</span> -</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">nulls_are_last</span> -</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a> <span class="p">):</span> -</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS LAST"</span> -</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a> -</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a> <span class="k">if</span> <span class="n">nulls_sort_change</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">NULL_ORDERING_SUPPORTED</span><span class="p">:</span> -</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span> -</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a> <span class="s2">"Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"</span> -</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="p">)</span> -</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a> -</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">sort_order</span><span class="si">}{</span><span class="n">nulls_sort_change</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> -</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> <span class="k">def</span> <span class="nf">matchrecognize_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">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a> <span class="n">measures</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">"measures"</span><span class="p">)</span> -</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"MEASURES </span><span class="si">{</span><span class="n">measures</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">measures</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> -</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">rows</span><span class="p">)</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a> <span class="n">after</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">"after"</span><span class="p">)</span> -</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a> <span class="n">after</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">after</span><span class="p">)</span> <span class="k">if</span> <span class="n">after</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> <span class="n">pattern</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">"pattern"</span><span class="p">)</span> -</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"PATTERN (</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span> <span class="k">if</span> <span class="n">pattern</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> <span class="n">define</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">"define"</span><span class="p">)</span> -</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="n">define</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"DEFINE </span><span class="si">{</span><span class="n">define</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">define</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a> <span class="n">body</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="p">(</span> -</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> <span class="n">partition</span><span class="p">,</span> -</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="n">order</span><span class="p">,</span> -</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a> <span class="n">measures</span><span class="p">,</span> -</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a> <span class="n">rows</span><span class="p">,</span> -</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a> <span class="n">after</span><span class="p">,</span> -</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a> <span class="n">pattern</span><span class="p">,</span> -</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> <span class="n">define</span><span class="p">,</span> -</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="p">)</span> -</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="p">)</span> -</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'MATCH_RECOGNIZE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">body</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a> -</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> -</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> -</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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-1300"><a href="#L-1300"><span class="linenos">1300</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">"windows"</span><span class="p">)</span> -</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <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">"offset"</span><span class="p">),</span> -</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"lock"</span><span class="p">),</span> -</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <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">"sample"</span><span class="p">),</span> -</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="p">)</span> -</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> -</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> <span class="n">hint</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">"hint"</span><span class="p">)</span> -</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a> <span class="n">distinct</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">"distinct"</span><span class="p">)</span> -</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">distinct</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a> <span class="n">expressions</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><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> <span class="n">expressions</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="n">expressions</span> -</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <span class="sa">f</span><span class="s2">"SELECT</span><span class="si">{</span><span class="n">hint</span><span class="si">}{</span><span class="n">distinct</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <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">"into"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a> <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">"from"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> <span class="p">)</span> -</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a> -</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a> <span class="k">def</span> <span class="nf">schema_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">Schema</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="n">sql</span> <span class="o">=</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</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="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a> -</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="k">def</span> <span class="nf">star_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">Star</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</span></a> <span class="n">except_</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">"except"</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-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <span class="n">except_</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'except'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">except_</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">except_</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="n">replace</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">"replace"</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-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="n">replace</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">replace</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">replace</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"*</span><span class="si">{</span><span class="n">except_</span><span class="si">}{</span><span class="n">replace</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a> -</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="k">def</span> <span class="nf">structkwarg_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">StructKwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> -</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="k">def</span> <span class="nf">parameter_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">Parameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="k">return</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">PARAMETER_TOKEN</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a> -</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a> <span class="k">def</span> <span class="nf">sessionparameter_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">SessionParameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span> -</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">."</span> -</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"@@</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Locking reads using 'FOR UPDATE/SHARE' are not supported"</span><span class="p">)</span> +</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> +</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="k">def</span> <span class="nf">literal_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">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">""</span> +</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span><span class="p">)</span> +</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">)</span> +</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> <span class="n">text</span> <span class="o">=</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">quote_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> +</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> <span class="k">def</span> <span class="nf">loaddata_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">LoadData</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">" LOCAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPATH </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'inpath'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a> <span class="n">overwrite</span> <span class="o">=</span> <span class="s2">" OVERWRITE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"overwrite"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INTO TABLE </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">expression</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><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> <span class="n">partition</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">"partition"</span><span class="p">)</span> +</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a> <span class="n">input_format</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">"input_format"</span><span class="p">)</span> +</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a> <span class="n">input_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPUTFORMAT </span><span class="si">{</span><span class="n">input_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">input_format</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a> <span class="n">serde</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">"serde"</span><span class="p">)</span> +</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a> <span class="n">serde</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" SERDE </span><span class="si">{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">serde</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOAD DATA</span><span class="si">{</span><span class="n">local</span><span class="si">}{</span><span class="n">inpath</span><span class="si">}{</span><span class="n">overwrite</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">partition</span><span class="si">}{</span><span class="n">input_format</span><span class="si">}{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a> +</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a> <span class="k">def</span> <span class="nf">null_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> +</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> +</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a> <span class="k">def</span> <span class="nf">boolean_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">Boolean</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a> <span class="k">return</span> <span class="s2">"TRUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">"FALSE"</span> +</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a> +</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="k">def</span> <span class="nf">order_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">Order</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">this</span> +</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">ORDER BY"</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="n">this</span> <span class="ow">or</span> <span class="n">flat</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> +</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <span class="k">def</span> <span class="nf">cluster_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">Cluster</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a> +</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="k">def</span> <span class="nf">distribute_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">Distribute</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"DISTRIBUTE BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a> +</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a> <span class="k">def</span> <span class="nf">sort_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">Sort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"SORT BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a> +</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a> <span class="k">def</span> <span class="nf">ordered_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">Ordered</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> +</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> +</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a> +</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a> <span class="n">nulls_first</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">"nulls_first"</span><span class="p">)</span> +</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="n">nulls_last</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">nulls_first</span> +</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="n">nulls_are_large</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_large"</span> +</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a> <span class="n">nulls_are_small</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span> +</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a> <span class="n">nulls_are_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_last"</span> +</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a> +</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a> <span class="n">sort_order</span> <span class="o">=</span> <span class="s2">" DESC"</span> <span class="k">if</span> <span class="n">desc</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a> <span class="k">if</span> <span class="n">nulls_first</span> <span class="ow">and</span> <span class="p">(</span> +</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="n">nulls_are_last</span> +</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="p">):</span> +</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS FIRST"</span> +</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a> <span class="k">elif</span> <span class="p">(</span> +</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="n">nulls_last</span> +</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> <span class="ow">and</span> <span class="p">((</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">))</span> +</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">nulls_are_last</span> +</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="p">):</span> +</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS LAST"</span> +</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a> +</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> <span class="k">if</span> <span class="n">nulls_sort_change</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">NULL_ORDERING_SUPPORTED</span><span class="p">:</span> +</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span> +</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="s2">"Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"</span> +</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a> <span class="p">)</span> +</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> +</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">sort_order</span><span class="si">}{</span><span class="n">nulls_sort_change</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> +</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="k">def</span> <span class="nf">matchrecognize_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">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> <span class="n">measures</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">"measures"</span><span class="p">)</span> +</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"MEASURES </span><span class="si">{</span><span class="n">measures</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">measures</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> +</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">rows</span><span class="p">)</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a> <span class="n">after</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">"after"</span><span class="p">)</span> +</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a> <span class="n">after</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">after</span><span class="p">)</span> <span class="k">if</span> <span class="n">after</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> <span class="n">pattern</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">"pattern"</span><span class="p">)</span> +</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"PATTERN (</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span> <span class="k">if</span> <span class="n">pattern</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="n">define</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">"define"</span><span class="p">)</span> +</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a> <span class="n">define</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"DEFINE </span><span class="si">{</span><span class="n">define</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">define</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a> <span class="n">body</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a> <span class="p">(</span> +</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a> <span class="n">partition</span><span class="p">,</span> +</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a> <span class="n">order</span><span class="p">,</span> +</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a> <span class="n">measures</span><span class="p">,</span> +</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a> <span class="n">rows</span><span class="p">,</span> +</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a> <span class="n">after</span><span class="p">,</span> +</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a> <span class="n">pattern</span><span class="p">,</span> +</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a> <span class="n">define</span><span class="p">,</span> +</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <span class="p">)</span> +</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a> <span class="p">)</span> +</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'MATCH_RECOGNIZE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">body</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a> +</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> +</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"group"</span><span class="p">),</span> +</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</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-1312"><a href="#L-1312"><span class="linenos">1312</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">"windows"</span><span class="p">)</span> +</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <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">"offset"</span><span class="p">),</span> +</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <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">"sample"</span><span class="p">),</span> +</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</span></a> <span class="p">)</span> +</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> +</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a> <span class="n">hint</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">"hint"</span><span class="p">)</span> +</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a> <span class="n">distinct</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">"distinct"</span><span class="p">)</span> +</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">distinct</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="n">expressions</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><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="n">expressions</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="n">expressions</span> +</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="sa">f</span><span class="s2">"SELECT</span><span class="si">{</span><span class="n">hint</span><span class="si">}{</span><span class="n">distinct</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</span></a> <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">"into"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a> <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">"from"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="p">)</span> +</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</span></a> +</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a> <span class="k">def</span> <span class="nf">schema_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">Schema</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="n">sql</span> <span class="o">=</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</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="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> +</span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="k">def</span> <span class="nf">star_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">Star</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a> <span class="n">except_</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">"except"</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-1347"><a href="#L-1347"><span class="linenos">1347</span></a> <span class="n">except_</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'except'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">except_</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">except_</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a> <span class="n">replace</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">"replace"</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-1349"><a href="#L-1349"><span class="linenos">1349</span></a> <span class="n">replace</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">replace</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">replace</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"*</span><span class="si">{</span><span class="n">except_</span><span class="si">}{</span><span class="n">replace</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a> +</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a> <span class="k">def</span> <span class="nf">structkwarg_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">StructKwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</span></a> -</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a> <span class="k">def</span> <span class="nf">placeholder_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">Placeholder</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">":</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">"?"</span> -</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a> -</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a> <span class="k">def</span> <span class="nf">subquery_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">Subquery</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> -</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a> -</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">),</span> -</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a> <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">"pivots"</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-1366"><a href="#L-1366"><span class="linenos">1366</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a> <span class="p">)</span> -</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a> -</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> -</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> <span class="k">def</span> <span class="nf">qualify_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">Qualify</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'QUALIFY'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> -</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a> <span class="k">def</span> <span class="nf">union_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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a> <span class="k">def</span> <span class="nf">parameter_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">Parameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a> <span class="k">return</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">PARAMETER_TOKEN</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a> +</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a> <span class="k">def</span> <span class="nf">sessionparameter_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">SessionParameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span> +</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">."</span> +</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"@@</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a> +</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a> <span class="k">def</span> <span class="nf">placeholder_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">Placeholder</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">":</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">"?"</span> +</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> +</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="k">def</span> <span class="nf">subquery_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">Subquery</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> +</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> +</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">),</span> +</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a> <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">"pivots"</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-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="p">)</span> </span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a> -</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="k">def</span> <span class="nf">union_op</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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">" DISTINCT"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPLICIT_UNION</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">kind</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" ALL"</span> -</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNION</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> -</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</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-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="n">args</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-1388"><a href="#L-1388"><span class="linenos">1388</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> -</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> -</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="n">alias</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">columns</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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">alias</span> -</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="s2">" WITH ORDINALITY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> -</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH OFFSET AS </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">offset</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNNEST(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ordinality</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">offset</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a> -</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a> <span class="k">def</span> <span class="nf">where_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">Where</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'WHERE'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> -</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a> <span class="k">def</span> <span class="nf">window_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">Window</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> -</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a> -</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="n">order_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">order_sql</span><span class="p">(</span><span class="n">order</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="k">if</span> <span class="n">order</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> +</span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> <span class="k">def</span> <span class="nf">qualify_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">Qualify</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'QUALIFY'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a> +</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="k">def</span> <span class="nf">union_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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="p">)</span> +</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a> +</span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a> <span class="k">def</span> <span class="nf">union_op</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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">" DISTINCT"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPLICIT_UNION</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">kind</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" ALL"</span> +</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNION</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a> +</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</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-1399"><a href="#L-1399"><span class="linenos">1399</span></a> <span class="n">args</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-1400"><a href="#L-1400"><span class="linenos">1400</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> +</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> +</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> <span class="n">alias</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">columns</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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">alias</span> +</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="s2">" WITH ORDINALITY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> +</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH OFFSET AS </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">offset</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNNEST(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ordinality</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">offset</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> -</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="n">partition</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">partition</span> <span class="ow">and</span> <span class="n">order</span> <span class="k">else</span> <span class="n">partition</span> -</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a> -</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="n">spec</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">"spec"</span><span class="p">)</span> -</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> <span class="n">spec_sql</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">window_spec_sql</span><span class="p">(</span><span class="n">spec</span><span class="p">)</span> <span class="k">if</span> <span class="n">spec</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> -</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">'AS'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">arg_key</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'windows'</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'OVER'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> -</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">partition</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">order</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">spec</span> <span class="ow">and</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> -</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> <span class="n">window_args</span> <span class="o">=</span> <span class="n">alias</span> <span class="o">+</span> <span class="n">partition_sql</span> <span class="o">+</span> <span class="n">order_sql</span> <span class="o">+</span> <span class="n">spec_sql</span> -</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> -</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">window_args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a> -</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a> <span class="k">def</span> <span class="nf">partition_by_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">Window</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a> <span class="n">partition</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">"partition_by"</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-1429"><a href="#L-1429"><span class="linenos">1429</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a> -</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a> <span class="k">def</span> <span class="nf">window_spec_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">WindowSpec</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"start"</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">expression</span><span class="p">,</span> <span class="s2">"start_side"</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-1434"><a href="#L-1434"><span class="linenos">1434</span></a> <span class="n">end</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"end"</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">expression</span><span class="p">,</span> <span class="s2">"end_side"</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-1436"><a href="#L-1436"><span class="linenos">1436</span></a> <span class="ow">or</span> <span class="s2">"CURRENT ROW"</span> -</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="p">)</span> -</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a> -</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a> <span class="k">def</span> <span class="nf">withingroup_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">WithinGroup</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># order has a leading space</span> -</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> WITHIN GROUP (</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> -</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> <span class="k">def</span> <span class="nf">between_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">Between</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="n">low</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">"low"</span><span class="p">)</span> -</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a> <span class="n">high</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">"high"</span><span class="p">)</span> -</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">low</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">high</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a> -</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> <span class="k">def</span> <span class="nf">bracket_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">Bracket</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> -</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a> <span class="n">expressions_sql</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a> -</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">]"</span> +</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> <span class="k">def</span> <span class="nf">where_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">Where</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'WHERE'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> +</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="k">def</span> <span class="nf">window_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">Window</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> +</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> +</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> <span class="n">order_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">order_sql</span><span class="p">(</span><span class="n">order</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="k">if</span> <span class="n">order</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> +</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="n">partition</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">partition</span> <span class="ow">and</span> <span class="n">order</span> <span class="k">else</span> <span class="n">partition</span> +</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a> +</span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a> <span class="n">spec</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">"spec"</span><span class="p">)</span> +</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a> <span class="n">spec_sql</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">window_spec_sql</span><span class="p">(</span><span class="n">spec</span><span class="p">)</span> <span class="k">if</span> <span class="n">spec</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a> +</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">'AS'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">arg_key</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'windows'</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'OVER'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a> +</span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">partition</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">order</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">spec</span> <span class="ow">and</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a> +</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a> <span class="n">window_args</span> <span class="o">=</span> <span class="n">alias</span> <span class="o">+</span> <span class="n">partition_sql</span> <span class="o">+</span> <span class="n">order_sql</span> <span class="o">+</span> <span class="n">spec_sql</span> +</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a> +</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">window_args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> +</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a> <span class="k">def</span> <span class="nf">partition_by_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">Window</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a> <span class="n">partition</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">"partition_by"</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-1441"><a href="#L-1441"><span class="linenos">1441</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a> +</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> <span class="k">def</span> <span class="nf">window_spec_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">WindowSpec</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"start"</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">expression</span><span class="p">,</span> <span class="s2">"start_side"</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-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="n">end</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"end"</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">expression</span><span class="p">,</span> <span class="s2">"end_side"</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-1448"><a href="#L-1448"><span class="linenos">1448</span></a> <span class="ow">or</span> <span class="s2">"CURRENT ROW"</span> +</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a> <span class="p">)</span> +</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> +</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a> <span class="k">def</span> <span class="nf">withingroup_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">WithinGroup</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># order has a leading space</span> +</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> WITHIN GROUP (</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> </span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a> -</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a> <span class="k">def</span> <span class="nf">all_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">All</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALL </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a> -</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a> <span class="k">def</span> <span class="nf">any_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">Any</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ANY </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> -</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> <span class="k">def</span> <span class="nf">exists_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">Exists</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXISTS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a> <span class="k">def</span> <span class="nf">between_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">Between</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a> <span class="n">low</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">"low"</span><span class="p">)</span> +</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a> <span class="n">high</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">"high"</span><span class="p">)</span> +</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">low</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">high</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a> +</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a> <span class="k">def</span> <span class="nf">bracket_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">Bracket</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> +</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="n">expressions_sql</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> +</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">]"</span> </span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a> -</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="k">def</span> <span class="nf">case_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">Case</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a> <span class="n">statements</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"CASE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"CASE"</span><span class="p">]</span> -</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a> -</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"ifs"</span><span class="p">]:</span> -</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WHEN </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-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"THEN </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">'true'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a> -</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</span></a> -</span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ELSE </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a> -</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"END"</span><span class="p">)</span> -</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> -</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> -</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">),</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> -</span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="k">return</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> +</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="k">def</span> <span class="nf">all_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">All</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALL </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a> +</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a> <span class="k">def</span> <span class="nf">any_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">Any</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ANY </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> +</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</span></a> <span class="k">def</span> <span class="nf">exists_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">Exists</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXISTS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a> +</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a> <span class="k">def</span> <span class="nf">case_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">Case</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="n">statements</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"CASE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"CASE"</span><span class="p">]</span> +</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a> +</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"ifs"</span><span class="p">]:</span> +</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WHEN </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-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"THEN </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">'true'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a> -</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="k">def</span> <span class="nf">constraint_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">Constraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> <span class="n">expressions</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-1492"><a href="#L-1492"><span class="linenos">1492</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a> +</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ELSE </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a> -</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a> <span class="k">def</span> <span class="nf">extract_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">Extract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXTRACT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FROM </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"END"</span><span class="p">)</span> +</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a> +</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> +</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">),</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a> -</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a> <span class="k">def</span> <span class="nf">trim_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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> -</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> -</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a> <span class="k">if</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"LEADING"</span><span class="p">:</span> -</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"LTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a> <span class="k">elif</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"TRAILING"</span><span class="p">:</span> -</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"RTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> -</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="k">def</span> <span class="nf">concat_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">Concat</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</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="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> -</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a> <span class="k">return</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> +</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a> +</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> <span class="k">def</span> <span class="nf">constraint_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">Constraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a> <span class="n">expressions</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-1504"><a href="#L-1504"><span class="linenos">1504</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> +</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="k">def</span> <span class="nf">extract_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">Extract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXTRACT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FROM </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> +</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a> <span class="k">def</span> <span class="nf">trim_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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> </span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a> -</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a> <span class="k">def</span> <span class="nf">check_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">Check</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a> <span class="n">this</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="n">key</span><span class="o">=</span><span class="s2">"this"</span><span class="p">)</span> -</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECK (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> -</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</span></a> <span class="k">def</span> <span class="nf">foreignkey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a> <span class="n">expressions</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-1520"><a href="#L-1520"><span class="linenos">1520</span></a> <span class="n">reference</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">"reference"</span><span class="p">)</span> -</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">reference</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">reference</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="n">delete</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">"delete"</span><span class="p">)</span> -</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a> <span class="n">delete</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON DELETE </span><span class="si">{</span><span class="n">delete</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">delete</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> <span class="n">update</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">"update"</span><span class="p">)</span> -</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="n">update</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON UPDATE </span><span class="si">{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">update</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOREIGN KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">reference</span><span class="si">}{</span><span class="n">delete</span><span class="si">}{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a> -</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a> <span class="k">def</span> <span class="nf">primarykey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="n">expressions</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-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="n">options</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="s2">"options"</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-1531"><a href="#L-1531"><span class="linenos">1531</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> -</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> <span class="k">def</span> <span class="nf">unique_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">Unique</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a> <span class="n">columns</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">"expressions"</span><span class="p">)</span> -</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNIQUE (</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> -</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="k">def</span> <span class="nf">if_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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">case_sql</span><span class="p">(</span> -</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Case</span><span class="p">(</span><span class="n">ifs</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()],</span> <span class="n">default</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">"false"</span><span class="p">))</span> -</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a> <span class="p">)</span> -</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a> -</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a> <span class="k">def</span> <span class="nf">in_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">In</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a> <span class="n">query</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">"query"</span><span class="p">)</span> -</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a> <span class="n">unnest</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">"unnest"</span><span class="p">)</span> -</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> -</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a> <span class="n">is_global</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> -</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> -</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> -</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> <span class="k">elif</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">in_unnest_op</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span> -</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="k">elif</span> <span class="n">field</span><span class="p">:</span> -</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="n">in_sql</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">field</span><span class="p">)</span> -</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a> <span class="n">in_sql</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a> -</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">is_global</span><span class="si">}</span><span class="s2"> IN </span><span class="si">{</span><span class="n">in_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a> -</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</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-1561"><a href="#L-1561"><span class="linenos">1561</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(SELECT </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">unnest</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</span></a> -</span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a> <span class="k">def</span> <span class="nf">interval_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">Interval</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> -</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Paren</span><span class="p">)</span> -</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="p">)</span> -</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERVAL</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a> -</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="k">def</span> <span class="nf">return_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">Return</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURN </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">expression</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><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a> -</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a> <span class="k">def</span> <span class="nf">reference_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">Reference</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="n">expressions</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-1583"><a href="#L-1583"><span class="linenos">1583</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a> <span class="n">options</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="s2">"options"</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-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REFERENCES </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> -</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a> <span class="k">def</span> <span class="nf">anonymous_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">Anonymous</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> -</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="k">def</span> <span class="nf">paren_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">Paren</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</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">unnest</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-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</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-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a> -</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-1514"><a href="#L-1514"><span class="linenos">1514</span></a> <span class="k">if</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"LEADING"</span><span class="p">:</span> +</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"LTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> <span class="k">elif</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"TRAILING"</span><span class="p">:</span> +</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"RTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a> +</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="k">def</span> <span class="nf">concat_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">Concat</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</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="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> +</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> +</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> <span class="k">def</span> <span class="nf">check_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">Check</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a> <span class="n">this</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="n">key</span><span class="o">=</span><span class="s2">"this"</span><span class="p">)</span> +</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECK (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> +</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="k">def</span> <span class="nf">foreignkey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a> <span class="n">expressions</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-1532"><a href="#L-1532"><span class="linenos">1532</span></a> <span class="n">reference</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">"reference"</span><span class="p">)</span> +</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">reference</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">reference</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> <span class="n">delete</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">"delete"</span><span class="p">)</span> +</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a> <span class="n">delete</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON DELETE </span><span class="si">{</span><span class="n">delete</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">delete</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="n">update</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">"update"</span><span class="p">)</span> +</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="n">update</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON UPDATE </span><span class="si">{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">update</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOREIGN KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">reference</span><span class="si">}{</span><span class="n">delete</span><span class="si">}{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a> +</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a> <span class="k">def</span> <span class="nf">primarykey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a> <span class="n">expressions</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-1542"><a href="#L-1542"><span class="linenos">1542</span></a> <span class="n">options</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="s2">"options"</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-1543"><a href="#L-1543"><span class="linenos">1543</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a> +</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> <span class="k">def</span> <span class="nf">unique_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">Unique</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a> <span class="n">columns</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">"expressions"</span><span class="p">)</span> +</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNIQUE (</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a> +</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="k">def</span> <span class="nf">if_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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">case_sql</span><span class="p">(</span> +</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Case</span><span class="p">(</span><span class="n">ifs</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()],</span> <span class="n">default</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">"false"</span><span class="p">))</span> +</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="p">)</span> +</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> +</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> <span class="k">def</span> <span class="nf">in_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">In</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a> <span class="n">query</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">"query"</span><span class="p">)</span> +</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a> <span class="n">unnest</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">"unnest"</span><span class="p">)</span> +</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> +</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a> <span class="n">is_global</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a> +</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> +</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> +</span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a> <span class="k">elif</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">in_unnest_op</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span> +</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a> <span class="k">elif</span> <span class="n">field</span><span class="p">:</span> +</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="n">in_sql</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">field</span><span class="p">)</span> +</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="n">in_sql</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> +</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">is_global</span><span class="si">}</span><span class="s2"> IN </span><span class="si">{</span><span class="n">in_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> +</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</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-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(SELECT </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">unnest</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a> +</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> <span class="k">def</span> <span class="nf">interval_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">Interval</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> +</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Paren</span><span class="p">)</span> +</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="p">)</span> +</span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERVAL</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a> +</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="k">def</span> <span class="nf">return_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">Return</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURN </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">expression</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><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> +</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a> <span class="k">def</span> <span class="nf">reference_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">Reference</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> <span class="n">expressions</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-1595"><a href="#L-1595"><span class="linenos">1595</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="n">options</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="s2">"options"</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-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REFERENCES </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a> -</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a> <span class="k">def</span> <span class="nf">neg_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">Neg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a> <span class="c1"># This makes sure we don't convert "- - 5" to "--5", which is a comment</span> -</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> -</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">this_sql</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"-</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a> -</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> <span class="k">def</span> <span class="nf">not_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">Not</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"NOT </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">expression</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><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a> -</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="k">def</span> <span class="nf">alias_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">Alias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> <span class="n">to_sql</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">"alias"</span><span class="p">)</span> -</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> <span class="n">to_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">to_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a> -</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</span></a> <span class="k">def</span> <span class="nf">aliases_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">Aliases</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="k">return</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">expression</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"> AS (</span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</span></a> -</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="k">def</span> <span class="nf">attimezone_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">AtTimeZone</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="n">zone</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">"zone"</span><span class="p">)</span> -</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> -</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="k">def</span> <span class="nf">add_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">Add</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> -</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a> -</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a> <span class="k">def</span> <span class="nf">and_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">And</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">)</span> -</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a> -</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a> <span class="k">def</span> <span class="nf">connector_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">Connector</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">op</span><span class="p">)</span> -</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a> -</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a> <span class="n">sqls</span> <span class="o">=</span> <span class="nb">tuple</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="n">unnest</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> -</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">op</span><span class="si">}</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> -</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a> -</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a> <span class="k">def</span> <span class="nf">bitwiseand_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">BitwiseAnd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"&"</span><span class="p">)</span> -</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> -</span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a> <span class="k">def</span> <span class="nf">bitwiseleftshift_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">BitwiseLeftShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<<"</span><span class="p">)</span> -</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a> -</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="k">def</span> <span class="nf">bitwisenot_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">BitwiseNot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</span></a> <span class="k">return</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">expression</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><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> -</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a> <span class="k">def</span> <span class="nf">bitwiseor_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">BitwiseOr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"|"</span><span class="p">)</span> +</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a> <span class="k">def</span> <span class="nf">anonymous_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">Anonymous</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</span></a> +</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="k">def</span> <span class="nf">paren_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">Paren</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</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">unnest</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-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</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-1608"><a href="#L-1608"><span class="linenos">1608</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> +</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> +</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="k">def</span> <span class="nf">neg_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">Neg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a> <span class="c1"># This makes sure we don't convert "- - 5" to "--5", which is a comment</span> +</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> +</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">this_sql</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"-</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> +</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="k">def</span> <span class="nf">not_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">Not</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"NOT </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">expression</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><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> +</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> <span class="k">def</span> <span class="nf">alias_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">Alias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="n">to_sql</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">"alias"</span><span class="p">)</span> +</span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a> <span class="n">to_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">to_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a> +</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="k">def</span> <span class="nf">aliases_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">Aliases</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a> <span class="k">return</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">expression</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"> AS (</span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a> +</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a> <span class="k">def</span> <span class="nf">attimezone_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">AtTimeZone</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a> <span class="n">zone</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">"zone"</span><span class="p">)</span> +</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a> +</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="k">def</span> <span class="nf">add_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">Add</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> +</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a> +</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a> <span class="k">def</span> <span class="nf">and_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">And</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">)</span> +</span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a> +</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a> <span class="k">def</span> <span class="nf">connector_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">Connector</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">op</span><span class="p">)</span> +</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</span></a> +</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> <span class="n">sqls</span> <span class="o">=</span> <span class="nb">tuple</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="n">unnest</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> +</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">op</span><span class="si">}</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> </span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</span></a> -</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a> <span class="k">def</span> <span class="nf">bitwiserightshift_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">BitwiseRightShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">>"</span><span class="p">)</span> +</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a> <span class="k">def</span> <span class="nf">bitwiseand_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">BitwiseAnd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"&"</span><span class="p">)</span> </span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a> -</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a> <span class="k">def</span> <span class="nf">bitwisexor_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">BitwiseXor</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">)</span> +</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a> <span class="k">def</span> <span class="nf">bitwiseleftshift_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">BitwiseLeftShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<<"</span><span class="p">)</span> </span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a> -</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a> <span class="k">def</span> <span class="nf">bitwisenot_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">BitwiseNot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a> <span class="k">return</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">expression</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><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> -</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="k">def</span> <span class="nf">currentdate_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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> -</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE(</span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> -</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a> -</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a> <span class="k">def</span> <span class="nf">collate_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">Collate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"COLLATE"</span><span class="p">)</span> -</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> -</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a> <span class="k">def</span> <span class="nf">command_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">Command</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s1">'expression'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a> -</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="k">def</span> <span class="nf">comment_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">Comment</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMENT</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> IS </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a> -</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a> <span class="k">return</span> <span class="s2">"BEGIN"</span> -</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a> -</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="k">def</span> <span class="nf">commit_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">Commit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a> <span class="n">chain</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">"chain"</span><span class="p">)</span> -</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="k">if</span> <span class="n">chain</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="s2">" AND CHAIN"</span> <span class="k">if</span> <span class="n">chain</span> <span class="k">else</span> <span class="s2">" AND NO CHAIN"</span> -</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> -</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMIT</span><span class="si">{</span><span class="n">chain</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> -</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="k">def</span> <span class="nf">rollback_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">Rollback</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> <span class="n">savepoint</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">"savepoint"</span><span class="p">)</span> -</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TO </span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">savepoint</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROLLBACK</span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="k">def</span> <span class="nf">bitwiseor_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">BitwiseOr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"|"</span><span class="p">)</span> +</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> +</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a> <span class="k">def</span> <span class="nf">bitwiserightshift_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">BitwiseRightShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">>"</span><span class="p">)</span> +</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> +</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="k">def</span> <span class="nf">bitwisexor_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">BitwiseXor</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">)</span> +</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> +</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> +</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="k">def</span> <span class="nf">currentdate_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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> +</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE(</span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> +</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> +</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a> <span class="k">def</span> <span class="nf">collate_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">Collate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"COLLATE"</span><span class="p">)</span> +</span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a> +</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a> <span class="k">def</span> <span class="nf">command_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">Command</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s1">'expression'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a> +</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="k">def</span> <span class="nf">comment_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">Comment</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMENT</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> IS </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> +</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="k">return</span> <span class="s2">"BEGIN"</span> </span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> -</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a> <span class="k">def</span> <span class="nf">altercolumn_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">AlterColumn</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> -</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="n">dtype</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">"dtype"</span><span class="p">)</span> -</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="p">:</span> -</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> -</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">using</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TYPE </span><span class="si">{</span><span class="n">dtype</span><span class="si">}{</span><span class="n">collate</span><span class="si">}{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> -</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET DEFAULT </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a> <span class="k">def</span> <span class="nf">commit_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">Commit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a> <span class="n">chain</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">"chain"</span><span class="p">)</span> +</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="k">if</span> <span class="n">chain</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="s2">" AND CHAIN"</span> <span class="k">if</span> <span class="n">chain</span> <span class="k">else</span> <span class="s2">" AND NO CHAIN"</span> +</span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a> +</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMIT</span><span class="si">{</span><span class="n">chain</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a> +</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="k">def</span> <span class="nf">rollback_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">Rollback</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a> <span class="n">savepoint</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">"savepoint"</span><span class="p">)</span> +</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TO </span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">savepoint</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROLLBACK</span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a> +</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a> <span class="k">def</span> <span class="nf">altercolumn_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">AlterColumn</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> </span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a> -</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a> <span class="k">if</span> <span class="ow">not</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">"drop"</span><span class="p">):</span> -</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported ALTER COLUMN syntax"</span><span class="p">)</span> -</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a> -</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> DROP DEFAULT"</span> -</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a> -</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> -</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="k">def</span> <span class="nf">altertable_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">AlterTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">actions</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"actions"</span><span class="p">]</span> +</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a> <span class="n">dtype</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">"dtype"</span><span class="p">)</span> +</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="p">:</span> +</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> +</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> +</span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">using</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TYPE </span><span class="si">{</span><span class="n">dtype</span><span class="si">}{</span><span class="n">collate</span><span class="si">}{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a> +</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET DEFAULT </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> -</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">):</span> -</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMN "</span><span class="p">)</span> -</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> -</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMNS "</span><span class="p">)</span> -</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">):</span> -</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="n">actions</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="s2">"actions"</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-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">)</span> +</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="k">if</span> <span class="ow">not</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">"drop"</span><span class="p">):</span> +</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported ALTER COLUMN syntax"</span><span class="p">)</span> +</span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> +</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> DROP DEFAULT"</span> +</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> +</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a> -</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER TABLE</span><span class="si">{</span><span class="n">exists</span><span class="si">}</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">expression</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="si">{</span><span class="n">actions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="k">def</span> <span class="nf">altertable_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">AlterTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="n">actions</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"actions"</span><span class="p">]</span> </span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</span></a> -</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="k">def</span> <span class="nf">droppartition_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">DropPartition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">expressions</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><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> -</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a> <span class="k">def</span> <span class="nf">addconstraint_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">AddConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="n">expression_</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">"expression"</span><span class="p">)</span> -</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a> <span class="n">add_constraint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ADD CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"ADD"</span> -</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a> -</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a> <span class="n">enforced</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">"enforced"</span><span class="p">)</span> -</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a> <span class="k">if</span> <span class="n">enforced</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> CHECK (</span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="s1">' ENFORCED'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">enforced</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">"</span> -</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> -</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a> -</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> <span class="k">def</span> <span class="nf">distinct_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">Distinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> <span class="n">this</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-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a> -</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a> <span class="n">on</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">"on"</span><span class="p">)</span> -</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">on</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DISTINCT</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a> -</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="k">def</span> <span class="nf">ignorenulls_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">IgnoreNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a> <span class="k">return</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">expression</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"> IGNORE NULLS"</span> -</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a> -</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> <span class="k">def</span> <span class="nf">respectnulls_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">RespectNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a> <span class="k">return</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">expression</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"> RESPECT NULLS"</span> -</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a> -</span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a> <span class="k">def</span> <span class="nf">intdiv_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">IntDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">div</span><span class="p">,</span> <span class="n">to</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">"INT"</span><span class="p">)))</span> -</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> -</span><span id="L-1762"><a href="#L-1762"><span class="linenos">1762</span></a> <span class="k">def</span> <span class="nf">dpipe_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">DPipe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"||"</span><span class="p">)</span> -</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</span></a> -</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a> <span class="k">def</span> <span class="nf">div_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">Div</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a> -</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">div</span><span class="p">,</span> <span class="n">to</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">"INT"</span><span class="p">)))</span> -</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a> -</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a> <span class="k">return</span> <span class="n">div</span> -</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a> -</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a> <span class="k">def</span> <span class="nf">floatdiv_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">FloatDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">to</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">"DOUBLE"</span><span class="p">))</span> -</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">div_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">))</span> +</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">):</span> +</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMN "</span><span class="p">)</span> +</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> +</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMNS "</span><span class="p">)</span> +</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">):</span> +</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a> <span class="n">actions</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="s2">"actions"</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-1734"><a href="#L-1734"><span class="linenos">1734</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">)</span> +</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a> +</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER TABLE</span><span class="si">{</span><span class="n">exists</span><span class="si">}</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">expression</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="si">{</span><span class="n">actions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a> +</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="k">def</span> <span class="nf">droppartition_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">DropPartition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> <span class="n">expressions</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><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> +</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> <span class="k">def</span> <span class="nf">addconstraint_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">AddConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a> <span class="n">expression_</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">"expression"</span><span class="p">)</span> +</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a> <span class="n">add_constraint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ADD CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"ADD"</span> +</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a> +</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a> <span class="n">enforced</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">"enforced"</span><span class="p">)</span> +</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a> <span class="k">if</span> <span class="n">enforced</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> CHECK (</span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="s1">' ENFORCED'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">enforced</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">"</span> +</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a> +</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> +</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a> <span class="k">def</span> <span class="nf">distinct_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">Distinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a> <span class="n">this</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-1758"><a href="#L-1758"><span class="linenos">1758</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a> +</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="n">on</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">"on"</span><span class="p">)</span> +</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">on</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1762"><a href="#L-1762"><span class="linenos">1762</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DISTINCT</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a> +</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</span></a> <span class="k">def</span> <span class="nf">ignorenulls_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">IgnoreNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a> <span class="k">return</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">expression</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"> IGNORE NULLS"</span> +</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a> +</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a> <span class="k">def</span> <span class="nf">respectnulls_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">RespectNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="k">return</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">expression</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"> RESPECT NULLS"</span> +</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</span></a> +</span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a> <span class="k">def</span> <span class="nf">intdiv_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">IntDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span> +</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> +</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> <span class="p">)</span> +</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> <span class="p">)</span> </span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> -</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> -</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="k">def</span> <span class="nf">overlaps_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">Overlaps</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OVERLAPS"</span><span class="p">)</span> -</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a> -</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> <span class="k">def</span> <span class="nf">distance_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">Distance</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<->"</span><span class="p">)</span> -</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> -</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a> <span class="k">def</span> <span class="nf">dot_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">Dot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a> -</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="k">def</span> <span class="nf">eq_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">EQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"="</span><span class="p">)</span> -</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a> -</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="k">def</span> <span class="nf">escape_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">Escape</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ESCAPE"</span><span class="p">)</span> -</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a> -</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a> <span class="k">def</span> <span class="nf">glob_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">Glob</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"GLOB"</span><span class="p">)</span> -</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a> -</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> <span class="k">def</span> <span class="nf">gt_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">GT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> -</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a> -</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a> <span class="k">def</span> <span class="nf">gte_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">GTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">="</span><span class="p">)</span> -</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a> -</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a> <span class="k">def</span> <span class="nf">ilike_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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE"</span><span class="p">)</span> -</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a> -</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="k">def</span> <span class="nf">is_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">Is</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS"</span><span class="p">)</span> -</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a> -</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a> <span class="k">def</span> <span class="nf">like_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">Like</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">)</span> -</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a> -</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a> <span class="k">def</span> <span class="nf">similarto_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">SimilarTo</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"SIMILAR TO"</span><span class="p">)</span> -</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> -</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a> <span class="k">def</span> <span class="nf">lt_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">LT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<"</span><span class="p">)</span> -</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a> -</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="k">def</span> <span class="nf">lte_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">LTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<="</span><span class="p">)</span> -</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> -</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"%"</span><span class="p">)</span> -</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a> -</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="k">def</span> <span class="nf">mul_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">Mul</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"*"</span><span class="p">)</span> -</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> -</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> <span class="k">def</span> <span class="nf">neq_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">NEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<>"</span><span class="p">)</span> -</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> -</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="k">def</span> <span class="nf">nullsafeeq_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">NullSafeEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS NOT DISTINCT FROM"</span><span class="p">)</span> -</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> -</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> <span class="k">def</span> <span class="nf">nullsafeneq_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">NullSafeNEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS DISTINCT FROM"</span><span class="p">)</span> -</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> -</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="k">def</span> <span class="nf">or_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">Or</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OR"</span><span class="p">)</span> -</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> -</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a> <span class="k">def</span> <span class="nf">slice_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">Slice</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">":"</span><span class="p">)</span> -</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a> -</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> <span class="k">def</span> <span class="nf">sub_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">Sub</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"-"</span><span class="p">)</span> -</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a> -</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a> <span class="k">def</span> <span class="nf">trycast_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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRY_CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> -</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> <span class="k">def</span> <span class="nf">use_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">Use</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"USE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> -</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="k">def</span> <span class="nf">binary</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">Binary</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">op</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> -</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> <span class="k">def</span> <span class="nf">function_fallback_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">Func</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="k">for</span> <span class="n">arg_value</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> -</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg_value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">arg_value</span><span class="p">:</span> -</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arg_value</span><span class="p">)</span> -</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> -</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">sql_name</span><span class="p">(),</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> -</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">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="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> <span class="k">return</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">normalize_func</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="si">}</span><span class="s2">(</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">args</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> -</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="k">def</span> <span class="nf">format_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="n">arg_sqls</span> <span class="o">=</span> <span class="nb">tuple</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">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> -</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">",</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="k">return</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> -</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> -</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> <span class="k">def</span> <span class="nf">text_width</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> -</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">)</span> -</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> -</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> <span class="k">def</span> <span class="nf">format_time</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">Expression</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="nb">str</span><span class="p">]:</span> -</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a> <span class="k">return</span> <span class="n">format_time</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">expression</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span><span class="p">)</span> -</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a> -</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span> -</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a> <span class="n">expression</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-1888"><a href="#L-1888"><span class="linenos">1888</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="n">flat</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-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="n">indent</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> -</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="n">expressions</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="n">key</span> <span class="ow">or</span> <span class="s2">"expressions"</span><span class="p">)</span> -</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> -</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> -</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> -</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="k">return</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> -</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> <span class="n">num_sqls</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> -</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="c1"># These are calculated once in case we have the leading_comma / pretty option set, correspondingly</span> -</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> -</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> <span class="n">stripped_sep</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="k">def</span> <span class="nf">dpipe_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">DPipe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"||"</span><span class="p">)</span> +</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> +</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="k">def</span> <span class="nf">div_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">Div</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> +</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> +</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="k">def</span> <span class="nf">overlaps_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">Overlaps</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OVERLAPS"</span><span class="p">)</span> +</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a> +</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> <span class="k">def</span> <span class="nf">distance_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">Distance</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<->"</span><span class="p">)</span> +</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> +</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a> <span class="k">def</span> <span class="nf">dot_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">Dot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> +</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a> <span class="k">def</span> <span class="nf">eq_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">EQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"="</span><span class="p">)</span> +</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a> +</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="k">def</span> <span class="nf">escape_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">Escape</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ESCAPE"</span><span class="p">)</span> +</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> +</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="k">def</span> <span class="nf">glob_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">Glob</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"GLOB"</span><span class="p">)</span> +</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a> +</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a> <span class="k">def</span> <span class="nf">gt_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">GT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> +</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a> +</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a> <span class="k">def</span> <span class="nf">gte_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">GTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">="</span><span class="p">)</span> +</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> +</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a> <span class="k">def</span> <span class="nf">ilike_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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE"</span><span class="p">)</span> +</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a> +</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a> <span class="k">def</span> <span class="nf">is_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">Is</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS"</span><span class="p">)</span> +</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a> +</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a> <span class="k">def</span> <span class="nf">like_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">Like</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">)</span> +</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a> +</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="k">def</span> <span class="nf">similarto_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">SimilarTo</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"SIMILAR TO"</span><span class="p">)</span> +</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> +</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a> <span class="k">def</span> <span class="nf">lt_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">LT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<"</span><span class="p">)</span> +</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a> +</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="k">def</span> <span class="nf">lte_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">LTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<="</span><span class="p">)</span> +</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> +</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"%"</span><span class="p">)</span> +</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> +</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">mul_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">Mul</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"*"</span><span class="p">)</span> +</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> +</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="k">def</span> <span class="nf">neq_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">NEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<>"</span><span class="p">)</span> +</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> +</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="k">def</span> <span class="nf">nullsafeeq_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">NullSafeEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS NOT DISTINCT FROM"</span><span class="p">)</span> +</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> +</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a> <span class="k">def</span> <span class="nf">nullsafeneq_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">NullSafeNEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS DISTINCT FROM"</span><span class="p">)</span> +</span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a> +</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a> <span class="k">def</span> <span class="nf">or_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">Or</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OR"</span><span class="p">)</span> +</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> +</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="k">def</span> <span class="nf">slice_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">Slice</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">":"</span><span class="p">)</span> +</span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a> +</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="k">def</span> <span class="nf">sub_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">Sub</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"-"</span><span class="p">)</span> +</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> +</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a> <span class="k">def</span> <span class="nf">trycast_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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRY_CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a> +</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="k">def</span> <span class="nf">use_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">Use</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"USE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> +</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a> <span class="k">def</span> <span class="nf">binary</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">Binary</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">op</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a> +</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="k">def</span> <span class="nf">function_fallback_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">Func</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="k">for</span> <span class="n">arg_value</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg_value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">arg_value</span><span class="p">:</span> +</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arg_value</span><span class="p">)</span> +</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> +</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">sql_name</span><span class="p">(),</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> +</span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">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="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> <span class="k">return</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">normalize_func</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="si">}</span><span class="s2">(</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">args</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> +</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="k">def</span> <span class="nf">format_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="n">arg_sqls</span> <span class="o">=</span> <span class="nb">tuple</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">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> +</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">",</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="k">return</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> +</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> +</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a> <span class="k">def</span> <span class="nf">text_width</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> +</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">)</span> +</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> +</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> <span class="k">def</span> <span class="nf">format_time</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">Expression</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="nb">str</span><span class="p">]:</span> +</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a> <span class="k">return</span> <span class="n">format_time</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">expression</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span><span class="p">)</span> +</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a> +</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span> +</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> <span class="n">expression</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-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="n">flat</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-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="n">indent</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> +</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="n">expressions</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="n">key</span> <span class="ow">or</span> <span class="s2">"expressions"</span><span class="p">)</span> +</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> +</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> +</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> +</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="k">return</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> +</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> <span class="n">num_sqls</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> </span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> -</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="n">result_sqls</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="n">sql</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">e</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> -</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span><span class="p">:</span> -</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="n">pad</span><span class="si">}{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">stripped_sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a> <span class="p">)</span> -</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</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">"</span><span class="p">)</span> -</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> -</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="n">result_sql</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> -</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">result_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="n">indent</span> <span class="k">else</span> <span class="n">result_sql</span> -</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a> -</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a> <span class="k">def</span> <span class="nf">op_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> <span class="n">flat</span> <span class="o">=</span> <span class="n">flat</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> -</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a> <span class="n">expressions_sql</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="n">flat</span><span class="p">)</span> -</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> -</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expressions_sql</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> -</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="k">def</span> <span class="nf">naked_property</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> -</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> -</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a> -</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="k">def</span> <span class="nf">set_operation</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">Expression</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span> -</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="n">expression</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">op</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</span></a> <span class="p">)</span> -</span><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a> -</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a> <span class="k">def</span> <span class="nf">tag_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">Tag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</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="s1">'prefix'</span><span class="p">)</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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}{</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="s1">'postfix'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a> -</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a> <span class="k">def</span> <span class="nf">token_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">TOKEN_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">token_type</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a> -</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a> <span class="k">def</span> <span class="nf">userdefinedfunction_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">UserDefinedFunction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</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><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a> <span class="p">)</span> -</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> -</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a> <span class="k">def</span> <span class="nf">joinhint_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">JoinHint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a> <span class="n">expressions</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-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> -</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="k">def</span> <span class="nf">kwarg_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">Kwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"=>"</span><span class="p">)</span> -</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> -</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="k">def</span> <span class="nf">when_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">When</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="s2">"MATCHED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"matched"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"NOT MATCHED"</span> -</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="n">source</span> <span class="o">=</span> <span class="s2">" BY SOURCE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">MATCHED_BY_SOURCE</span> <span class="ow">and</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">"source"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="n">condition</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">"condition"</span><span class="p">)</span> -</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="n">condition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">condition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> -</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="n">then_expression</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">"then"</span><span class="p">)</span> -</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">):</span> -</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT </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">then_expression</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><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="k">if</span> <span class="s2">"expression"</span> <span class="ow">in</span> <span class="n">then_expression</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="n">then</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" VALUES </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">):</span> -</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_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 class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> -</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE SET </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="n">then</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">then_expression</span><span class="p">)</span> -</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WHEN </span><span class="si">{</span><span class="n">matched</span><span class="si">}{</span><span class="n">source</span><span class="si">}{</span><span class="n">condition</span><span class="si">}</span><span class="s2"> THEN </span><span class="si">{</span><span class="n">then</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a> -</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="k">def</span> <span class="nf">merge_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">Merge</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"USING </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'using'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ON </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'on'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGE INTO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">' '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="c1"># These are calculated once in case we have the leading_comma / pretty option set, correspondingly</span> +</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> +</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="n">stripped_sep</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> +</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> <span class="n">result_sqls</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a> <span class="n">sql</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">e</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a> +</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span><span class="p">:</span> +</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="n">pad</span><span class="si">}{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">stripped_sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="p">)</span> +</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</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">"</span><span class="p">)</span> +</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a> +</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> <span class="n">result_sql</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> +</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">result_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="n">indent</span> <span class="k">else</span> <span class="n">result_sql</span> +</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a> +</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a> <span class="k">def</span> <span class="nf">op_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a> <span class="n">flat</span> <span class="o">=</span> <span class="n">flat</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> +</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="n">expressions_sql</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="n">flat</span><span class="p">)</span> +</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> +</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expressions_sql</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a> +</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a> <span class="k">def</span> <span class="nf">naked_property</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> +</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> +</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a> +</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="k">def</span> <span class="nf">set_operation</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">Expression</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span> +</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a> <span class="n">expression</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">op</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a> <span class="p">)</span> +</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a> +</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a> <span class="k">def</span> <span class="nf">tag_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">Tag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</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="s1">'prefix'</span><span class="p">)</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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}{</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="s1">'postfix'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a> +</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a> <span class="k">def</span> <span class="nf">token_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">TOKEN_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">token_type</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a> +</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a> <span class="k">def</span> <span class="nf">userdefinedfunction_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">UserDefinedFunction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</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><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a> <span class="p">)</span> +</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> +</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> <span class="k">def</span> <span class="nf">joinhint_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">JoinHint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="n">expressions</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-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> +</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="k">def</span> <span class="nf">kwarg_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">Kwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"=>"</span><span class="p">)</span> +</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> +</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="k">def</span> <span class="nf">when_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">When</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="s2">"MATCHED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"matched"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"NOT MATCHED"</span> +</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="n">source</span> <span class="o">=</span> <span class="s2">" BY SOURCE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">MATCHED_BY_SOURCE</span> <span class="ow">and</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">"source"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="n">condition</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">"condition"</span><span class="p">)</span> +</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="n">condition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">condition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> +</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="n">then_expression</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">"then"</span><span class="p">)</span> +</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">):</span> +</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT </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">then_expression</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><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="k">if</span> <span class="s2">"expression"</span> <span class="ow">in</span> <span class="n">then_expression</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a> <span class="n">then</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" VALUES </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">):</span> +</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_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 class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> +</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE SET </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="n">then</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">then_expression</span><span class="p">)</span> +</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WHEN </span><span class="si">{</span><span class="n">matched</span><span class="si">}{</span><span class="n">source</span><span class="si">}{</span><span class="n">condition</span><span class="si">}</span><span class="s2"> THEN </span><span class="si">{</span><span class="n">then</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a> +</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a> <span class="k">def</span> <span class="nf">merge_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">Merge</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"USING </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'using'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ON </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'on'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGE INTO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">' '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a> +</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a> <span class="k">def</span> <span class="nf">tochar_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">ToChar</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</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">"format"</span><span class="p">):</span> +</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Format argument unsupported for TO_CHAR/TO_VARCHAR function"</span><span class="p">)</span> +</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> +</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a> <span 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">exp</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"text"</span><span class="p">))</span> </span></pre></div> @@ -2715,1971 +2731,1981 @@ </span><span id="Generator-26"><a href="#Generator-26"><span class="linenos"> 26</span></a><span class="sd"> quote_end (str): specifies which ending character to use to delimit quotes. Default: '.</span> </span><span id="Generator-27"><a href="#Generator-27"><span class="linenos"> 27</span></a><span class="sd"> identifier_start (str): specifies which starting character to use to delimit identifiers. Default: ".</span> </span><span id="Generator-28"><a href="#Generator-28"><span class="linenos"> 28</span></a><span class="sd"> identifier_end (str): specifies which ending character to use to delimit identifiers. Default: ".</span> -</span><span id="Generator-29"><a href="#Generator-29"><span class="linenos"> 29</span></a><span class="sd"> identify (bool): if set to True all identifiers will be delimited by the corresponding</span> -</span><span id="Generator-30"><a href="#Generator-30"><span class="linenos"> 30</span></a><span class="sd"> character.</span> -</span><span id="Generator-31"><a href="#Generator-31"><span class="linenos"> 31</span></a><span class="sd"> normalize (bool): if set to True all identifiers will lower cased</span> -</span><span id="Generator-32"><a href="#Generator-32"><span class="linenos"> 32</span></a><span class="sd"> string_escape (str): specifies a string escape character. Default: '.</span> -</span><span id="Generator-33"><a href="#Generator-33"><span class="linenos"> 33</span></a><span class="sd"> identifier_escape (str): specifies an identifier escape character. Default: ".</span> -</span><span id="Generator-34"><a href="#Generator-34"><span class="linenos"> 34</span></a><span class="sd"> pad (int): determines padding in a formatted string. Default: 2.</span> -</span><span id="Generator-35"><a href="#Generator-35"><span class="linenos"> 35</span></a><span class="sd"> indent (int): determines the size of indentation in a formatted string. Default: 4.</span> -</span><span id="Generator-36"><a href="#Generator-36"><span class="linenos"> 36</span></a><span class="sd"> unnest_column_only (bool): if true unnest table aliases are considered only as column aliases</span> -</span><span id="Generator-37"><a href="#Generator-37"><span class="linenos"> 37</span></a><span class="sd"> normalize_functions (str): normalize function names, "upper", "lower", or None</span> -</span><span id="Generator-38"><a href="#Generator-38"><span class="linenos"> 38</span></a><span class="sd"> Default: "upper"</span> -</span><span id="Generator-39"><a href="#Generator-39"><span class="linenos"> 39</span></a><span class="sd"> alias_post_tablesample (bool): if the table alias comes after tablesample</span> -</span><span id="Generator-40"><a href="#Generator-40"><span class="linenos"> 40</span></a><span class="sd"> Default: False</span> -</span><span id="Generator-41"><a href="#Generator-41"><span class="linenos"> 41</span></a><span class="sd"> unsupported_level (ErrorLevel): determines the generator's behavior when it encounters</span> -</span><span id="Generator-42"><a href="#Generator-42"><span class="linenos"> 42</span></a><span class="sd"> unsupported expressions. Default ErrorLevel.WARN.</span> -</span><span id="Generator-43"><a href="#Generator-43"><span class="linenos"> 43</span></a><span class="sd"> null_ordering (str): Indicates the default null ordering method to use if not explicitly set.</span> -</span><span id="Generator-44"><a href="#Generator-44"><span class="linenos"> 44</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> -</span><span id="Generator-45"><a href="#Generator-45"><span class="linenos"> 45</span></a><span class="sd"> Default: "nulls_are_small"</span> -</span><span id="Generator-46"><a href="#Generator-46"><span class="linenos"> 46</span></a><span class="sd"> max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.</span> -</span><span id="Generator-47"><a href="#Generator-47"><span class="linenos"> 47</span></a><span class="sd"> This is only relevant if unsupported_level is ErrorLevel.RAISE.</span> -</span><span id="Generator-48"><a href="#Generator-48"><span class="linenos"> 48</span></a><span class="sd"> Default: 3</span> -</span><span id="Generator-49"><a href="#Generator-49"><span class="linenos"> 49</span></a><span class="sd"> leading_comma (bool): if the the comma is leading or trailing in select statements</span> -</span><span id="Generator-50"><a href="#Generator-50"><span class="linenos"> 50</span></a><span class="sd"> Default: False</span> -</span><span id="Generator-51"><a href="#Generator-51"><span class="linenos"> 51</span></a><span class="sd"> max_text_width: The max number of characters in a segment before creating new lines in pretty mode.</span> -</span><span id="Generator-52"><a href="#Generator-52"><span class="linenos"> 52</span></a><span class="sd"> The default is on the smaller end because the length only represents a segment and not the true</span> -</span><span id="Generator-53"><a href="#Generator-53"><span class="linenos"> 53</span></a><span class="sd"> line length.</span> -</span><span id="Generator-54"><a href="#Generator-54"><span class="linenos"> 54</span></a><span class="sd"> Default: 80</span> -</span><span id="Generator-55"><a href="#Generator-55"><span class="linenos"> 55</span></a><span class="sd"> comments: Whether or not to preserve comments in the output SQL code.</span> -</span><span id="Generator-56"><a href="#Generator-56"><span class="linenos"> 56</span></a><span class="sd"> Default: True</span> -</span><span id="Generator-57"><a href="#Generator-57"><span class="linenos"> 57</span></a><span class="sd"> """</span> -</span><span id="Generator-58"><a href="#Generator-58"><span class="linenos"> 58</span></a> -</span><span id="Generator-59"><a href="#Generator-59"><span class="linenos"> 59</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Generator-60"><a href="#Generator-60"><span class="linenos"> 60</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="Generator-61"><a href="#Generator-61"><span class="linenos"> 61</span></a> <span class="s2">"DATE_ADD"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</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">"unit"</span><span class="p">)</span> -</span><span id="Generator-62"><a href="#Generator-62"><span class="linenos"> 62</span></a> <span class="p">),</span> -</span><span id="Generator-63"><a href="#Generator-63"><span class="linenos"> 63</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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><span id="Generator-64"><a href="#Generator-64"><span class="linenos"> 64</span></a> <span class="s2">"TS_OR_DS_ADD"</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="n">e</span><span class="o">.</span><span class="n">expression</span><span class="p">,</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">"unit"</span><span class="p">)</span> -</span><span id="Generator-65"><a href="#Generator-65"><span class="linenos"> 65</span></a> <span class="p">),</span> -</span><span id="Generator-66"><a href="#Generator-66"><span class="linenos"> 66</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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">"MAP"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">],</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]),</span> -</span><span id="Generator-67"><a href="#Generator-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'DEFAULT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'default'</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">CHARACTER SET=</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="Generator-68"><a href="#Generator-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</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="Generator-69"><a href="#Generator-69"><span class="linenos"> 69</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</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="s2">"EXTERNAL"</span><span class="p">,</span> -</span><span id="Generator-70"><a href="#Generator-70"><span class="linenos"> 70</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</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="Generator-71"><a href="#Generator-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</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="Generator-72"><a href="#Generator-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NO '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'no'</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">LOG"</span><span class="p">,</span> -</span><span id="Generator-73"><a href="#Generator-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</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="s2">"MATERIALIZED"</span><span class="p">,</span> -</span><span id="Generator-74"><a href="#Generator-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</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="s2">"NO PRIMARY INDEX"</span><span class="p">,</span> -</span><span id="Generator-75"><a href="#Generator-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</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="s2">"ON COMMIT PRESERVE ROWS"</span><span class="p">,</span> -</span><span id="Generator-76"><a href="#Generator-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</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="Generator-77"><a href="#Generator-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'MULTI'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'multi'</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">SET"</span><span class="p">,</span> -</span><span id="Generator-78"><a href="#Generator-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</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="sa">f</span><span class="s2">"SQL SECURITY </span><span class="si">{</span><span class="s1">'DEFINER'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'definer'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'INVOKER'</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Generator-79"><a href="#Generator-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'GLOBAL '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'global_'</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">TEMPORARY"</span><span class="p">,</span> -</span><span id="Generator-80"><a href="#Generator-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</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="s2">"TRANSIENT"</span><span class="p">,</span> -</span><span id="Generator-81"><a href="#Generator-81"><span class="linenos"> 81</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="n">e</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> -</span><span id="Generator-82"><a href="#Generator-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</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="sa">f</span><span class="s2">"WITH JOURNAL TABLE=</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="Generator-83"><a href="#Generator-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CaseSpecificColumnConstraint</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NOT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'not_'</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">CASESPECIFIC"</span><span class="p">,</span> -</span><span id="Generator-84"><a href="#Generator-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</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="sa">f</span><span class="s2">"CHARACTER SET </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="Generator-85"><a href="#Generator-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</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="sa">f</span><span class="s2">"FORMAT </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="Generator-86"><a href="#Generator-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UppercaseColumnConstraint</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="sa">f</span><span class="s2">"UPPERCASE"</span><span class="p">,</span> -</span><span id="Generator-87"><a href="#Generator-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</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="sa">f</span><span class="s2">"TITLE </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="Generator-88"><a href="#Generator-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PathColumnConstraint</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="sa">f</span><span class="s2">"PATH </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="Generator-89"><a href="#Generator-89"><span class="linenos"> 89</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</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="sa">f</span><span class="s2">"CHECK (</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="Generator-90"><a href="#Generator-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</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="sa">f</span><span class="s2">"COMMENT </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="Generator-91"><a href="#Generator-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</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="sa">f</span><span class="s2">"COLLATE </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="Generator-92"><a href="#Generator-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EncodeColumnConstraint</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="sa">f</span><span class="s2">"ENCODE </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="Generator-93"><a href="#Generator-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</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="sa">f</span><span class="s2">"DEFAULT </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="Generator-94"><a href="#Generator-94"><span class="linenos"> 94</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">InlineLengthColumnConstraint</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="sa">f</span><span class="s2">"INLINE LENGTH </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="Generator-95"><a href="#Generator-95"><span class="linenos"> 95</span></a> <span class="p">}</span> -</span><span id="Generator-96"><a href="#Generator-96"><span class="linenos"> 96</span></a> -</span><span id="Generator-97"><a href="#Generator-97"><span class="linenos"> 97</span></a> <span class="c1"># Whether or not null ordering is supported in order by</span> -</span><span id="Generator-98"><a href="#Generator-98"><span class="linenos"> 98</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Generator-99"><a href="#Generator-99"><span class="linenos"> 99</span></a> -</span><span id="Generator-100"><a href="#Generator-100"><span class="linenos"> 100</span></a> <span class="c1"># Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported</span> -</span><span id="Generator-101"><a href="#Generator-101"><span class="linenos"> 101</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Generator-102"><a href="#Generator-102"><span class="linenos"> 102</span></a> -</span><span id="Generator-103"><a href="#Generator-103"><span class="linenos"> 103</span></a> <span class="c1"># Always do union distinct or union all</span> -</span><span id="Generator-104"><a href="#Generator-104"><span class="linenos"> 104</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Generator-105"><a href="#Generator-105"><span class="linenos"> 105</span></a> -</span><span id="Generator-106"><a href="#Generator-106"><span class="linenos"> 106</span></a> <span class="c1"># Wrap derived values in parens, usually standard but spark doesn't support it</span> -</span><span id="Generator-107"><a href="#Generator-107"><span class="linenos"> 107</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Generator-108"><a href="#Generator-108"><span class="linenos"> 108</span></a> -</span><span id="Generator-109"><a href="#Generator-109"><span class="linenos"> 109</span></a> <span class="c1"># Whether or not create function uses an AS before the RETURN</span> -</span><span id="Generator-110"><a href="#Generator-110"><span class="linenos"> 110</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Generator-111"><a href="#Generator-111"><span class="linenos"> 111</span></a> -</span><span id="Generator-112"><a href="#Generator-112"><span class="linenos"> 112</span></a> <span class="c1"># Whether or not to treat the division operator "/" as integer division</span> -</span><span id="Generator-113"><a href="#Generator-113"><span class="linenos"> 113</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Generator-114"><a href="#Generator-114"><span class="linenos"> 114</span></a> -</span><span id="Generator-115"><a href="#Generator-115"><span class="linenos"> 115</span></a> <span class="c1"># Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed</span> -</span><span id="Generator-116"><a href="#Generator-116"><span class="linenos"> 116</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Generator-117"><a href="#Generator-117"><span class="linenos"> 117</span></a> -</span><span id="Generator-118"><a href="#Generator-118"><span class="linenos"> 118</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Generator-119"><a href="#Generator-119"><span class="linenos"> 119</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">NCHAR</span><span class="p">:</span> <span class="s2">"CHAR"</span><span class="p">,</span> -</span><span id="Generator-120"><a href="#Generator-120"><span class="linenos"> 120</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> -</span><span id="Generator-121"><a href="#Generator-121"><span class="linenos"> 121</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">MEDIUMTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="Generator-122"><a href="#Generator-122"><span class="linenos"> 122</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">LONGTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> -</span><span id="Generator-123"><a href="#Generator-123"><span class="linenos"> 123</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">MEDIUMBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> -</span><span id="Generator-124"><a href="#Generator-124"><span class="linenos"> 124</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">LONGBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> -</span><span id="Generator-125"><a href="#Generator-125"><span class="linenos"> 125</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">INET</span><span class="p">:</span> <span class="s2">"INET"</span><span class="p">,</span> -</span><span id="Generator-126"><a href="#Generator-126"><span class="linenos"> 126</span></a> <span class="p">}</span> -</span><span id="Generator-127"><a href="#Generator-127"><span class="linenos"> 127</span></a> -</span><span id="Generator-128"><a href="#Generator-128"><span class="linenos"> 128</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Generator-129"><a href="#Generator-129"><span class="linenos"> 129</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCEPT"</span><span class="p">,</span> -</span><span id="Generator-130"><a href="#Generator-130"><span class="linenos"> 130</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"REPLACE"</span><span class="p">,</span> -</span><span id="Generator-131"><a href="#Generator-131"><span class="linenos"> 131</span></a> <span class="p">}</span> +</span><span id="Generator-29"><a href="#Generator-29"><span class="linenos"> 29</span></a><span class="sd"> identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</span> +</span><span id="Generator-30"><a href="#Generator-30"><span class="linenos"> 30</span></a><span class="sd"> normalize (bool): if set to True all identifiers will lower cased</span> +</span><span id="Generator-31"><a href="#Generator-31"><span class="linenos"> 31</span></a><span class="sd"> string_escape (str): specifies a string escape character. Default: '.</span> +</span><span id="Generator-32"><a href="#Generator-32"><span class="linenos"> 32</span></a><span class="sd"> identifier_escape (str): specifies an identifier escape character. Default: ".</span> +</span><span id="Generator-33"><a href="#Generator-33"><span class="linenos"> 33</span></a><span class="sd"> pad (int): determines padding in a formatted string. Default: 2.</span> +</span><span id="Generator-34"><a href="#Generator-34"><span class="linenos"> 34</span></a><span class="sd"> indent (int): determines the size of indentation in a formatted string. Default: 4.</span> +</span><span id="Generator-35"><a href="#Generator-35"><span class="linenos"> 35</span></a><span class="sd"> unnest_column_only (bool): if true unnest table aliases are considered only as column aliases</span> +</span><span id="Generator-36"><a href="#Generator-36"><span class="linenos"> 36</span></a><span class="sd"> normalize_functions (str): normalize function names, "upper", "lower", or None</span> +</span><span id="Generator-37"><a href="#Generator-37"><span class="linenos"> 37</span></a><span class="sd"> Default: "upper"</span> +</span><span id="Generator-38"><a href="#Generator-38"><span class="linenos"> 38</span></a><span class="sd"> alias_post_tablesample (bool): if the table alias comes after tablesample</span> +</span><span id="Generator-39"><a href="#Generator-39"><span class="linenos"> 39</span></a><span class="sd"> Default: False</span> +</span><span id="Generator-40"><a href="#Generator-40"><span class="linenos"> 40</span></a><span class="sd"> unsupported_level (ErrorLevel): determines the generator's behavior when it encounters</span> +</span><span id="Generator-41"><a href="#Generator-41"><span class="linenos"> 41</span></a><span class="sd"> unsupported expressions. Default ErrorLevel.WARN.</span> +</span><span id="Generator-42"><a href="#Generator-42"><span class="linenos"> 42</span></a><span class="sd"> null_ordering (str): Indicates the default null ordering method to use if not explicitly set.</span> +</span><span id="Generator-43"><a href="#Generator-43"><span class="linenos"> 43</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> +</span><span id="Generator-44"><a href="#Generator-44"><span class="linenos"> 44</span></a><span class="sd"> Default: "nulls_are_small"</span> +</span><span id="Generator-45"><a href="#Generator-45"><span class="linenos"> 45</span></a><span class="sd"> max_unsupported (int): Maximum number of unsupported messages to include in a raised UnsupportedError.</span> +</span><span id="Generator-46"><a href="#Generator-46"><span class="linenos"> 46</span></a><span class="sd"> This is only relevant if unsupported_level is ErrorLevel.RAISE.</span> +</span><span id="Generator-47"><a href="#Generator-47"><span class="linenos"> 47</span></a><span class="sd"> Default: 3</span> +</span><span id="Generator-48"><a href="#Generator-48"><span class="linenos"> 48</span></a><span class="sd"> leading_comma (bool): if the the comma is leading or trailing in select statements</span> +</span><span id="Generator-49"><a href="#Generator-49"><span class="linenos"> 49</span></a><span class="sd"> Default: False</span> +</span><span id="Generator-50"><a href="#Generator-50"><span class="linenos"> 50</span></a><span class="sd"> max_text_width: The max number of characters in a segment before creating new lines in pretty mode.</span> +</span><span id="Generator-51"><a href="#Generator-51"><span class="linenos"> 51</span></a><span class="sd"> The default is on the smaller end because the length only represents a segment and not the true</span> +</span><span id="Generator-52"><a href="#Generator-52"><span class="linenos"> 52</span></a><span class="sd"> line length.</span> +</span><span id="Generator-53"><a href="#Generator-53"><span class="linenos"> 53</span></a><span class="sd"> Default: 80</span> +</span><span id="Generator-54"><a href="#Generator-54"><span class="linenos"> 54</span></a><span class="sd"> comments: Whether or not to preserve comments in the output SQL code.</span> +</span><span id="Generator-55"><a href="#Generator-55"><span class="linenos"> 55</span></a><span class="sd"> Default: True</span> +</span><span id="Generator-56"><a href="#Generator-56"><span class="linenos"> 56</span></a><span class="sd"> """</span> +</span><span id="Generator-57"><a href="#Generator-57"><span class="linenos"> 57</span></a> +</span><span id="Generator-58"><a href="#Generator-58"><span class="linenos"> 58</span></a> <span class="n">TRANSFORMS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Generator-59"><a href="#Generator-59"><span class="linenos"> 59</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateAdd</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><span id="Generator-60"><a href="#Generator-60"><span class="linenos"> 60</span></a> <span class="s2">"DATE_ADD"</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="n">e</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">))</span> +</span><span id="Generator-61"><a href="#Generator-61"><span class="linenos"> 61</span></a> <span class="p">),</span> +</span><span id="Generator-62"><a href="#Generator-62"><span class="linenos"> 62</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TsOrDsAdd</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><span id="Generator-63"><a href="#Generator-63"><span class="linenos"> 63</span></a> <span class="s2">"TS_OR_DS_ADD"</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="n">e</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">Literal</span><span class="o">.</span><span class="n">string</span><span class="p">(</span><span class="n">e</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"unit"</span><span class="p">))</span> +</span><span id="Generator-64"><a href="#Generator-64"><span class="linenos"> 64</span></a> <span class="p">),</span> +</span><span id="Generator-65"><a href="#Generator-65"><span class="linenos"> 65</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VarMap</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">"MAP"</span><span class="p">,</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"keys"</span><span class="p">],</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"values"</span><span class="p">]),</span> +</span><span id="Generator-66"><a href="#Generator-66"><span class="linenos"> 66</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'DEFAULT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'default'</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">CHARACTER SET=</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="Generator-67"><a href="#Generator-67"><span class="linenos"> 67</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</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="Generator-68"><a href="#Generator-68"><span class="linenos"> 68</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</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="s2">"EXTERNAL"</span><span class="p">,</span> +</span><span id="Generator-69"><a href="#Generator-69"><span class="linenos"> 69</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</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="Generator-70"><a href="#Generator-70"><span class="linenos"> 70</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</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="Generator-71"><a href="#Generator-71"><span class="linenos"> 71</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NO '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'no'</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">LOG"</span><span class="p">,</span> +</span><span id="Generator-72"><a href="#Generator-72"><span class="linenos"> 72</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</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="s2">"MATERIALIZED"</span><span class="p">,</span> +</span><span id="Generator-73"><a href="#Generator-73"><span class="linenos"> 73</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</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="s2">"NO PRIMARY INDEX"</span><span class="p">,</span> +</span><span id="Generator-74"><a href="#Generator-74"><span class="linenos"> 74</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</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="s2">"ON COMMIT PRESERVE ROWS"</span><span class="p">,</span> +</span><span id="Generator-75"><a href="#Generator-75"><span class="linenos"> 75</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</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="Generator-76"><a href="#Generator-76"><span class="linenos"> 76</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'MULTI'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'multi'</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">SET"</span><span class="p">,</span> +</span><span id="Generator-77"><a href="#Generator-77"><span class="linenos"> 77</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</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="sa">f</span><span class="s2">"SQL SECURITY </span><span class="si">{</span><span class="s1">'DEFINER'</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'definer'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'INVOKER'</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Generator-78"><a href="#Generator-78"><span class="linenos"> 78</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'GLOBAL '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'global_'</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">TEMPORARY"</span><span class="p">,</span> +</span><span id="Generator-79"><a href="#Generator-79"><span class="linenos"> 79</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</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="s2">"TRANSIENT"</span><span class="p">,</span> +</span><span id="Generator-80"><a href="#Generator-80"><span class="linenos"> 80</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</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="n">e</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> +</span><span id="Generator-81"><a href="#Generator-81"><span class="linenos"> 81</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</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="sa">f</span><span class="s2">"WITH JOURNAL TABLE=</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="Generator-82"><a href="#Generator-82"><span class="linenos"> 82</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CaseSpecificColumnConstraint</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="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">'NOT '</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="o">.</span><span class="n">get</span><span class="p">(</span><span class="s1">'not_'</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">CASESPECIFIC"</span><span class="p">,</span> +</span><span id="Generator-83"><a href="#Generator-83"><span class="linenos"> 83</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</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="sa">f</span><span class="s2">"CHARACTER SET </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="Generator-84"><a href="#Generator-84"><span class="linenos"> 84</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</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="sa">f</span><span class="s2">"FORMAT </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="Generator-85"><a href="#Generator-85"><span class="linenos"> 85</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UppercaseColumnConstraint</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="sa">f</span><span class="s2">"UPPERCASE"</span><span class="p">,</span> +</span><span id="Generator-86"><a href="#Generator-86"><span class="linenos"> 86</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</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="sa">f</span><span class="s2">"TITLE </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="Generator-87"><a href="#Generator-87"><span class="linenos"> 87</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PathColumnConstraint</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="sa">f</span><span class="s2">"PATH </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="Generator-88"><a href="#Generator-88"><span class="linenos"> 88</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</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="sa">f</span><span class="s2">"CHECK (</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="Generator-89"><a href="#Generator-89"><span class="linenos"> 89</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</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="sa">f</span><span class="s2">"COMMENT </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="Generator-90"><a href="#Generator-90"><span class="linenos"> 90</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</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="sa">f</span><span class="s2">"COLLATE </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="Generator-91"><a href="#Generator-91"><span class="linenos"> 91</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EncodeColumnConstraint</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="sa">f</span><span class="s2">"ENCODE </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="Generator-92"><a href="#Generator-92"><span class="linenos"> 92</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</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="sa">f</span><span class="s2">"DEFAULT </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="Generator-93"><a href="#Generator-93"><span class="linenos"> 93</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">InlineLengthColumnConstraint</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="sa">f</span><span class="s2">"INLINE LENGTH </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="Generator-94"><a href="#Generator-94"><span class="linenos"> 94</span></a> <span class="p">}</span> +</span><span id="Generator-95"><a href="#Generator-95"><span class="linenos"> 95</span></a> +</span><span id="Generator-96"><a href="#Generator-96"><span class="linenos"> 96</span></a> <span class="c1"># Whether or not null ordering is supported in order by</span> +</span><span id="Generator-97"><a href="#Generator-97"><span class="linenos"> 97</span></a> <span class="n">NULL_ORDERING_SUPPORTED</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Generator-98"><a href="#Generator-98"><span class="linenos"> 98</span></a> +</span><span id="Generator-99"><a href="#Generator-99"><span class="linenos"> 99</span></a> <span class="c1"># Whether or not locking reads (i.e. SELECT ... FOR UPDATE/SHARE) are supported</span> +</span><span id="Generator-100"><a href="#Generator-100"><span class="linenos"> 100</span></a> <span class="n">LOCKING_READS_SUPPORTED</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Generator-101"><a href="#Generator-101"><span class="linenos"> 101</span></a> +</span><span id="Generator-102"><a href="#Generator-102"><span class="linenos"> 102</span></a> <span class="c1"># Always do union distinct or union all</span> +</span><span id="Generator-103"><a href="#Generator-103"><span class="linenos"> 103</span></a> <span class="n">EXPLICIT_UNION</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Generator-104"><a href="#Generator-104"><span class="linenos"> 104</span></a> +</span><span id="Generator-105"><a href="#Generator-105"><span class="linenos"> 105</span></a> <span class="c1"># Wrap derived values in parens, usually standard but spark doesn't support it</span> +</span><span id="Generator-106"><a href="#Generator-106"><span class="linenos"> 106</span></a> <span class="n">WRAP_DERIVED_VALUES</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Generator-107"><a href="#Generator-107"><span class="linenos"> 107</span></a> +</span><span id="Generator-108"><a href="#Generator-108"><span class="linenos"> 108</span></a> <span class="c1"># Whether or not create function uses an AS before the RETURN</span> +</span><span id="Generator-109"><a href="#Generator-109"><span class="linenos"> 109</span></a> <span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Generator-110"><a href="#Generator-110"><span class="linenos"> 110</span></a> +</span><span id="Generator-111"><a href="#Generator-111"><span class="linenos"> 111</span></a> <span class="c1"># Whether or not MERGE ... WHEN MATCHED BY SOURCE is allowed</span> +</span><span id="Generator-112"><a href="#Generator-112"><span class="linenos"> 112</span></a> <span class="n">MATCHED_BY_SOURCE</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Generator-113"><a href="#Generator-113"><span class="linenos"> 113</span></a> +</span><span id="Generator-114"><a href="#Generator-114"><span class="linenos"> 114</span></a> <span class="n">TYPE_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Generator-115"><a href="#Generator-115"><span class="linenos"> 115</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">NCHAR</span><span class="p">:</span> <span class="s2">"CHAR"</span><span class="p">,</span> +</span><span id="Generator-116"><a href="#Generator-116"><span class="linenos"> 116</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">NVARCHAR</span><span class="p">:</span> <span class="s2">"VARCHAR"</span><span class="p">,</span> +</span><span id="Generator-117"><a href="#Generator-117"><span class="linenos"> 117</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">MEDIUMTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="Generator-118"><a href="#Generator-118"><span class="linenos"> 118</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">LONGTEXT</span><span class="p">:</span> <span class="s2">"TEXT"</span><span class="p">,</span> +</span><span id="Generator-119"><a href="#Generator-119"><span class="linenos"> 119</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">MEDIUMBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> +</span><span id="Generator-120"><a href="#Generator-120"><span class="linenos"> 120</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">LONGBLOB</span><span class="p">:</span> <span class="s2">"BLOB"</span><span class="p">,</span> +</span><span id="Generator-121"><a href="#Generator-121"><span class="linenos"> 121</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">INET</span><span class="p">:</span> <span class="s2">"INET"</span><span class="p">,</span> +</span><span id="Generator-122"><a href="#Generator-122"><span class="linenos"> 122</span></a> <span class="p">}</span> +</span><span id="Generator-123"><a href="#Generator-123"><span class="linenos"> 123</span></a> +</span><span id="Generator-124"><a href="#Generator-124"><span class="linenos"> 124</span></a> <span class="n">STAR_MAPPING</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Generator-125"><a href="#Generator-125"><span class="linenos"> 125</span></a> <span class="s2">"except"</span><span class="p">:</span> <span class="s2">"EXCEPT"</span><span class="p">,</span> +</span><span id="Generator-126"><a href="#Generator-126"><span class="linenos"> 126</span></a> <span class="s2">"replace"</span><span class="p">:</span> <span class="s2">"REPLACE"</span><span class="p">,</span> +</span><span id="Generator-127"><a href="#Generator-127"><span class="linenos"> 127</span></a> <span class="p">}</span> +</span><span id="Generator-128"><a href="#Generator-128"><span class="linenos"> 128</span></a> +</span><span id="Generator-129"><a href="#Generator-129"><span class="linenos"> 129</span></a> <span class="n">TOKEN_MAPPING</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">TokenType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Generator-130"><a href="#Generator-130"><span class="linenos"> 130</span></a> +</span><span id="Generator-131"><a href="#Generator-131"><span class="linenos"> 131</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"<"</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> </span><span id="Generator-132"><a href="#Generator-132"><span class="linenos"> 132</span></a> -</span><span id="Generator-133"><a href="#Generator-133"><span class="linenos"> 133</span></a> <span class="n">TOKEN_MAPPING</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">TokenType</span><span class="p">,</span> <span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Generator-133"><a href="#Generator-133"><span class="linenos"> 133</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"@"</span> </span><span id="Generator-134"><a href="#Generator-134"><span class="linenos"> 134</span></a> -</span><span id="Generator-135"><a href="#Generator-135"><span class="linenos"> 135</span></a> <span class="n">STRUCT_DELIMITER</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"<"</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> -</span><span id="Generator-136"><a href="#Generator-136"><span class="linenos"> 136</span></a> -</span><span id="Generator-137"><a href="#Generator-137"><span class="linenos"> 137</span></a> <span class="n">PARAMETER_TOKEN</span> <span class="o">=</span> <span class="s2">"@"</span> -</span><span id="Generator-138"><a href="#Generator-138"><span class="linenos"> 138</span></a> -</span><span id="Generator-139"><a href="#Generator-139"><span class="linenos"> 139</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Generator-140"><a href="#Generator-140"><span class="linenos"> 140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AfterJournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-141"><a href="#Generator-141"><span class="linenos"> 141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-142"><a href="#Generator-142"><span class="linenos"> 142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-143"><a href="#Generator-143"><span class="linenos"> 143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-144"><a href="#Generator-144"><span class="linenos"> 144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-145"><a href="#Generator-145"><span class="linenos"> 145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-146"><a href="#Generator-146"><span class="linenos"> 146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-147"><a href="#Generator-147"><span class="linenos"> 147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-148"><a href="#Generator-148"><span class="linenos"> 148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataBlocksizeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-149"><a href="#Generator-149"><span class="linenos"> 149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-150"><a href="#Generator-150"><span class="linenos"> 150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-151"><a href="#Generator-151"><span class="linenos"> 151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-152"><a href="#Generator-152"><span class="linenos"> 152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EngineProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-153"><a href="#Generator-153"><span class="linenos"> 153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-154"><a href="#Generator-154"><span class="linenos"> 154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-155"><a href="#Generator-155"><span class="linenos"> 155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-156"><a href="#Generator-156"><span class="linenos"> 156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> -</span><span id="Generator-157"><a href="#Generator-157"><span class="linenos"> 157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-158"><a href="#Generator-158"><span class="linenos"> 158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-159"><a href="#Generator-159"><span class="linenos"> 159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-160"><a href="#Generator-160"><span class="linenos"> 160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-161"><a href="#Generator-161"><span class="linenos"> 161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-162"><a href="#Generator-162"><span class="linenos"> 162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-163"><a href="#Generator-163"><span class="linenos"> 163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">,</span> -</span><span id="Generator-164"><a href="#Generator-164"><span class="linenos"> 164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-165"><a href="#Generator-165"><span class="linenos"> 165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-166"><a href="#Generator-166"><span class="linenos"> 166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-167"><a href="#Generator-167"><span class="linenos"> 167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> -</span><span id="Generator-168"><a href="#Generator-168"><span class="linenos"> 168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> -</span><span id="Generator-169"><a href="#Generator-169"><span class="linenos"> 169</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> -</span><span id="Generator-170"><a href="#Generator-170"><span class="linenos"> 170</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> -</span><span id="Generator-171"><a href="#Generator-171"><span class="linenos"> 171</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-172"><a href="#Generator-172"><span class="linenos"> 172</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatDelimitedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-173"><a href="#Generator-173"><span class="linenos"> 173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-174"><a href="#Generator-174"><span class="linenos"> 174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-175"><a href="#Generator-175"><span class="linenos"> 175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-176"><a href="#Generator-176"><span class="linenos"> 176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-177"><a href="#Generator-177"><span class="linenos"> 177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-178"><a href="#Generator-178"><span class="linenos"> 178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-179"><a href="#Generator-179"><span class="linenos"> 179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> -</span><span id="Generator-180"><a href="#Generator-180"><span class="linenos"> 180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-181"><a href="#Generator-181"><span class="linenos"> 181</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> -</span><span id="Generator-182"><a href="#Generator-182"><span class="linenos"> 182</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> -</span><span id="Generator-183"><a href="#Generator-183"><span class="linenos"> 183</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithDataProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> -</span><span id="Generator-184"><a href="#Generator-184"><span class="linenos"> 184</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> -</span><span id="Generator-185"><a href="#Generator-185"><span class="linenos"> 185</span></a> <span class="p">}</span> -</span><span id="Generator-186"><a href="#Generator-186"><span class="linenos"> 186</span></a> -</span><span id="Generator-187"><a href="#Generator-187"><span class="linenos"> 187</span></a> <span class="n">WITH_SEPARATED_COMMENTS</span> <span class="o">=</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">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">)</span> -</span><span id="Generator-188"><a href="#Generator-188"><span class="linenos"> 188</span></a> <span class="n">SENTINEL_LINE_BREAK</span> <span class="o">=</span> <span class="s2">"__SQLGLOT__LB__"</span> -</span><span id="Generator-189"><a href="#Generator-189"><span class="linenos"> 189</span></a> -</span><span id="Generator-190"><a href="#Generator-190"><span class="linenos"> 190</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-191"><a href="#Generator-191"><span class="linenos"> 191</span></a> <span class="s2">"time_mapping"</span><span class="p">,</span> -</span><span id="Generator-192"><a href="#Generator-192"><span class="linenos"> 192</span></a> <span class="s2">"time_trie"</span><span class="p">,</span> -</span><span id="Generator-193"><a href="#Generator-193"><span class="linenos"> 193</span></a> <span class="s2">"pretty"</span><span class="p">,</span> -</span><span id="Generator-194"><a href="#Generator-194"><span class="linenos"> 194</span></a> <span class="s2">"quote_start"</span><span class="p">,</span> -</span><span id="Generator-195"><a href="#Generator-195"><span class="linenos"> 195</span></a> <span class="s2">"quote_end"</span><span class="p">,</span> -</span><span id="Generator-196"><a href="#Generator-196"><span class="linenos"> 196</span></a> <span class="s2">"identifier_start"</span><span class="p">,</span> -</span><span id="Generator-197"><a href="#Generator-197"><span class="linenos"> 197</span></a> <span class="s2">"identifier_end"</span><span class="p">,</span> -</span><span id="Generator-198"><a href="#Generator-198"><span class="linenos"> 198</span></a> <span class="s2">"identify"</span><span class="p">,</span> -</span><span id="Generator-199"><a href="#Generator-199"><span class="linenos"> 199</span></a> <span class="s2">"normalize"</span><span class="p">,</span> -</span><span id="Generator-200"><a href="#Generator-200"><span class="linenos"> 200</span></a> <span class="s2">"string_escape"</span><span class="p">,</span> -</span><span id="Generator-201"><a href="#Generator-201"><span class="linenos"> 201</span></a> <span class="s2">"identifier_escape"</span><span class="p">,</span> -</span><span id="Generator-202"><a href="#Generator-202"><span class="linenos"> 202</span></a> <span class="s2">"pad"</span><span class="p">,</span> -</span><span id="Generator-203"><a href="#Generator-203"><span class="linenos"> 203</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> -</span><span id="Generator-204"><a href="#Generator-204"><span class="linenos"> 204</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> -</span><span id="Generator-205"><a href="#Generator-205"><span class="linenos"> 205</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> -</span><span id="Generator-206"><a href="#Generator-206"><span class="linenos"> 206</span></a> <span class="s2">"normalize_functions"</span><span class="p">,</span> -</span><span id="Generator-207"><a href="#Generator-207"><span class="linenos"> 207</span></a> <span class="s2">"unsupported_level"</span><span class="p">,</span> -</span><span id="Generator-208"><a href="#Generator-208"><span class="linenos"> 208</span></a> <span class="s2">"unsupported_messages"</span><span class="p">,</span> -</span><span id="Generator-209"><a href="#Generator-209"><span class="linenos"> 209</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> -</span><span id="Generator-210"><a href="#Generator-210"><span class="linenos"> 210</span></a> <span class="s2">"max_unsupported"</span><span class="p">,</span> -</span><span id="Generator-211"><a href="#Generator-211"><span class="linenos"> 211</span></a> <span class="s2">"_indent"</span><span class="p">,</span> -</span><span id="Generator-212"><a href="#Generator-212"><span class="linenos"> 212</span></a> <span class="s2">"_escaped_quote_end"</span><span class="p">,</span> -</span><span id="Generator-213"><a href="#Generator-213"><span class="linenos"> 213</span></a> <span class="s2">"_escaped_identifier_end"</span><span class="p">,</span> -</span><span id="Generator-214"><a href="#Generator-214"><span class="linenos"> 214</span></a> <span class="s2">"_leading_comma"</span><span class="p">,</span> -</span><span id="Generator-215"><a href="#Generator-215"><span class="linenos"> 215</span></a> <span class="s2">"_max_text_width"</span><span class="p">,</span> -</span><span id="Generator-216"><a href="#Generator-216"><span class="linenos"> 216</span></a> <span class="s2">"_comments"</span><span class="p">,</span> -</span><span id="Generator-217"><a href="#Generator-217"><span class="linenos"> 217</span></a> <span class="p">)</span> -</span><span id="Generator-218"><a href="#Generator-218"><span class="linenos"> 218</span></a> -</span><span id="Generator-219"><a href="#Generator-219"><span class="linenos"> 219</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="Generator-220"><a href="#Generator-220"><span class="linenos"> 220</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator-221"><a href="#Generator-221"><span class="linenos"> 221</span></a> <span class="n">time_mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-222"><a href="#Generator-222"><span class="linenos"> 222</span></a> <span class="n">time_trie</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-223"><a href="#Generator-223"><span class="linenos"> 223</span></a> <span class="n">pretty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-224"><a href="#Generator-224"><span class="linenos"> 224</span></a> <span class="n">quote_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-225"><a href="#Generator-225"><span class="linenos"> 225</span></a> <span class="n">quote_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-226"><a href="#Generator-226"><span class="linenos"> 226</span></a> <span class="n">identifier_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-227"><a href="#Generator-227"><span class="linenos"> 227</span></a> <span class="n">identifier_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-228"><a href="#Generator-228"><span class="linenos"> 228</span></a> <span class="n">identify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-229"><a href="#Generator-229"><span class="linenos"> 229</span></a> <span class="n">normalize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-230"><a href="#Generator-230"><span class="linenos"> 230</span></a> <span class="n">string_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-231"><a href="#Generator-231"><span class="linenos"> 231</span></a> <span class="n">identifier_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-232"><a href="#Generator-232"><span class="linenos"> 232</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> -</span><span id="Generator-233"><a href="#Generator-233"><span class="linenos"> 233</span></a> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> -</span><span id="Generator-234"><a href="#Generator-234"><span class="linenos"> 234</span></a> <span class="n">index_offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> -</span><span id="Generator-235"><a href="#Generator-235"><span class="linenos"> 235</span></a> <span class="n">unnest_column_only</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-236"><a href="#Generator-236"><span class="linenos"> 236</span></a> <span class="n">alias_post_tablesample</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-237"><a href="#Generator-237"><span class="linenos"> 237</span></a> <span class="n">normalize_functions</span><span class="o">=</span><span class="s2">"upper"</span><span class="p">,</span> -</span><span id="Generator-238"><a href="#Generator-238"><span class="linenos"> 238</span></a> <span class="n">unsupported_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">,</span> -</span><span id="Generator-239"><a href="#Generator-239"><span class="linenos"> 239</span></a> <span class="n">null_ordering</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-240"><a href="#Generator-240"><span class="linenos"> 240</span></a> <span class="n">max_unsupported</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> -</span><span id="Generator-241"><a href="#Generator-241"><span class="linenos"> 241</span></a> <span class="n">leading_comma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-242"><a href="#Generator-242"><span class="linenos"> 242</span></a> <span class="n">max_text_width</span><span class="o">=</span><span class="mi">80</span><span class="p">,</span> -</span><span id="Generator-243"><a href="#Generator-243"><span class="linenos"> 243</span></a> <span class="n">comments</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Generator-244"><a href="#Generator-244"><span class="linenos"> 244</span></a> <span class="p">):</span> -</span><span id="Generator-245"><a href="#Generator-245"><span class="linenos"> 245</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> -</span><span id="Generator-246"><a href="#Generator-246"><span class="linenos"> 246</span></a> -</span><span id="Generator-247"><a href="#Generator-247"><span class="linenos"> 247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span> <span class="o">=</span> <span class="n">time_mapping</span> <span class="ow">or</span> <span class="p">{}</span> -</span><span id="Generator-248"><a href="#Generator-248"><span class="linenos"> 248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span> <span class="o">=</span> <span class="n">time_trie</span> -</span><span id="Generator-249"><a href="#Generator-249"><span class="linenos"> 249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="n">pretty</span> <span class="k">if</span> <span class="n">pretty</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">pretty</span> -</span><span id="Generator-250"><a href="#Generator-250"><span class="linenos"> 250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span> <span class="o">=</span> <span class="n">quote_start</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="Generator-251"><a href="#Generator-251"><span class="linenos"> 251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> <span class="o">=</span> <span class="n">quote_end</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="Generator-252"><a href="#Generator-252"><span class="linenos"> 252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span> <span class="o">=</span> <span class="n">identifier_start</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="Generator-253"><a href="#Generator-253"><span class="linenos"> 253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="Generator-254"><a href="#Generator-254"><span class="linenos"> 254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">identify</span> -</span><span id="Generator-255"><a href="#Generator-255"><span class="linenos"> 255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="o">=</span> <span class="n">normalize</span> -</span><span id="Generator-256"><a href="#Generator-256"><span class="linenos"> 256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">=</span> <span class="n">string_escape</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="Generator-257"><a href="#Generator-257"><span class="linenos"> 257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">=</span> <span class="n">identifier_escape</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="Generator-258"><a href="#Generator-258"><span class="linenos"> 258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="o">=</span> <span class="n">pad</span> -</span><span id="Generator-259"><a href="#Generator-259"><span class="linenos"> 259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> -</span><span id="Generator-260"><a href="#Generator-260"><span class="linenos"> 260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> -</span><span id="Generator-261"><a href="#Generator-261"><span class="linenos"> 261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> -</span><span id="Generator-262"><a href="#Generator-262"><span class="linenos"> 262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">=</span> <span class="n">normalize_functions</span> -</span><span id="Generator-263"><a href="#Generator-263"><span class="linenos"> 263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">=</span> <span class="n">unsupported_level</span> -</span><span id="Generator-264"><a href="#Generator-264"><span class="linenos"> 264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-265"><a href="#Generator-265"><span class="linenos"> 265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span> <span class="o">=</span> <span class="n">max_unsupported</span> -</span><span id="Generator-266"><a href="#Generator-266"><span class="linenos"> 266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> -</span><span id="Generator-267"><a href="#Generator-267"><span class="linenos"> 267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_indent</span> <span class="o">=</span> <span class="n">indent</span> -</span><span id="Generator-268"><a href="#Generator-268"><span class="linenos"> 268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> -</span><span id="Generator-269"><a href="#Generator-269"><span class="linenos"> 269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> -</span><span id="Generator-270"><a href="#Generator-270"><span class="linenos"> 270</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span> <span class="o">=</span> <span class="n">leading_comma</span> -</span><span id="Generator-271"><a href="#Generator-271"><span class="linenos"> 271</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="o">=</span> <span class="n">max_text_width</span> -</span><span id="Generator-272"><a href="#Generator-272"><span class="linenos"> 272</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Generator-135"><a href="#Generator-135"><span class="linenos"> 135</span></a> <span class="n">PROPERTIES_LOCATION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Generator-136"><a href="#Generator-136"><span class="linenos"> 136</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AfterJournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-137"><a href="#Generator-137"><span class="linenos"> 137</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-138"><a href="#Generator-138"><span class="linenos"> 138</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-139"><a href="#Generator-139"><span class="linenos"> 139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-140"><a href="#Generator-140"><span class="linenos"> 140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-141"><a href="#Generator-141"><span class="linenos"> 141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-142"><a href="#Generator-142"><span class="linenos"> 142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-143"><a href="#Generator-143"><span class="linenos"> 143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-144"><a href="#Generator-144"><span class="linenos"> 144</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataBlocksizeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-145"><a href="#Generator-145"><span class="linenos"> 145</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-146"><a href="#Generator-146"><span class="linenos"> 146</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-147"><a href="#Generator-147"><span class="linenos"> 147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-148"><a href="#Generator-148"><span class="linenos"> 148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EngineProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-149"><a href="#Generator-149"><span class="linenos"> 149</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-150"><a href="#Generator-150"><span class="linenos"> 150</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ExternalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-151"><a href="#Generator-151"><span class="linenos"> 151</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-152"><a href="#Generator-152"><span class="linenos"> 152</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Generator-153"><a href="#Generator-153"><span class="linenos"> 153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-154"><a href="#Generator-154"><span class="linenos"> 154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-155"><a href="#Generator-155"><span class="linenos"> 155</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JournalProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-156"><a href="#Generator-156"><span class="linenos"> 156</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-157"><a href="#Generator-157"><span class="linenos"> 157</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LikeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-158"><a href="#Generator-158"><span class="linenos"> 158</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-159"><a href="#Generator-159"><span class="linenos"> 159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">,</span> +</span><span id="Generator-160"><a href="#Generator-160"><span class="linenos"> 160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LogProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-161"><a href="#Generator-161"><span class="linenos"> 161</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MaterializedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-162"><a href="#Generator-162"><span class="linenos"> 162</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-163"><a href="#Generator-163"><span class="linenos"> 163</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> +</span><span id="Generator-164"><a href="#Generator-164"><span class="linenos"> 164</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> +</span><span id="Generator-165"><a href="#Generator-165"><span class="linenos"> 165</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Generator-166"><a href="#Generator-166"><span class="linenos"> 166</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Generator-167"><a href="#Generator-167"><span class="linenos"> 167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ReturnsProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-168"><a href="#Generator-168"><span class="linenos"> 168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatDelimitedProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-169"><a href="#Generator-169"><span class="linenos"> 169</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">RowFormatSerdeProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-170"><a href="#Generator-170"><span class="linenos"> 170</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-171"><a href="#Generator-171"><span class="linenos"> 171</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SerdeProperties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-172"><a href="#Generator-172"><span class="linenos"> 172</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-173"><a href="#Generator-173"><span class="linenos"> 173</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-174"><a href="#Generator-174"><span class="linenos"> 174</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SqlSecurityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-175"><a href="#Generator-175"><span class="linenos"> 175</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">,</span> +</span><span id="Generator-176"><a href="#Generator-176"><span class="linenos"> 176</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TemporaryProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-177"><a href="#Generator-177"><span class="linenos"> 177</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TransientProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">,</span> +</span><span id="Generator-178"><a href="#Generator-178"><span class="linenos"> 178</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">,</span> +</span><span id="Generator-179"><a href="#Generator-179"><span class="linenos"> 179</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithDataProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">,</span> +</span><span id="Generator-180"><a href="#Generator-180"><span class="linenos"> 180</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WithJournalTableProperty</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">,</span> +</span><span id="Generator-181"><a href="#Generator-181"><span class="linenos"> 181</span></a> <span class="p">}</span> +</span><span id="Generator-182"><a href="#Generator-182"><span class="linenos"> 182</span></a> +</span><span id="Generator-183"><a href="#Generator-183"><span class="linenos"> 183</span></a> <span class="n">WITH_SEPARATED_COMMENTS</span> <span class="o">=</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">From</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">)</span> +</span><span id="Generator-184"><a href="#Generator-184"><span class="linenos"> 184</span></a> <span class="n">SENTINEL_LINE_BREAK</span> <span class="o">=</span> <span class="s2">"__SQLGLOT__LB__"</span> +</span><span id="Generator-185"><a href="#Generator-185"><span class="linenos"> 185</span></a> +</span><span id="Generator-186"><a href="#Generator-186"><span class="linenos"> 186</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-187"><a href="#Generator-187"><span class="linenos"> 187</span></a> <span class="s2">"time_mapping"</span><span class="p">,</span> +</span><span id="Generator-188"><a href="#Generator-188"><span class="linenos"> 188</span></a> <span class="s2">"time_trie"</span><span class="p">,</span> +</span><span id="Generator-189"><a href="#Generator-189"><span class="linenos"> 189</span></a> <span class="s2">"pretty"</span><span class="p">,</span> +</span><span id="Generator-190"><a href="#Generator-190"><span class="linenos"> 190</span></a> <span class="s2">"quote_start"</span><span class="p">,</span> +</span><span id="Generator-191"><a href="#Generator-191"><span class="linenos"> 191</span></a> <span class="s2">"quote_end"</span><span class="p">,</span> +</span><span id="Generator-192"><a href="#Generator-192"><span class="linenos"> 192</span></a> <span class="s2">"identifier_start"</span><span class="p">,</span> +</span><span id="Generator-193"><a href="#Generator-193"><span class="linenos"> 193</span></a> <span class="s2">"identifier_end"</span><span class="p">,</span> +</span><span id="Generator-194"><a href="#Generator-194"><span class="linenos"> 194</span></a> <span class="s2">"identify"</span><span class="p">,</span> +</span><span id="Generator-195"><a href="#Generator-195"><span class="linenos"> 195</span></a> <span class="s2">"normalize"</span><span class="p">,</span> +</span><span id="Generator-196"><a href="#Generator-196"><span class="linenos"> 196</span></a> <span class="s2">"string_escape"</span><span class="p">,</span> +</span><span id="Generator-197"><a href="#Generator-197"><span class="linenos"> 197</span></a> <span class="s2">"identifier_escape"</span><span class="p">,</span> +</span><span id="Generator-198"><a href="#Generator-198"><span class="linenos"> 198</span></a> <span class="s2">"pad"</span><span class="p">,</span> +</span><span id="Generator-199"><a href="#Generator-199"><span class="linenos"> 199</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> +</span><span id="Generator-200"><a href="#Generator-200"><span class="linenos"> 200</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> +</span><span id="Generator-201"><a href="#Generator-201"><span class="linenos"> 201</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> +</span><span id="Generator-202"><a href="#Generator-202"><span class="linenos"> 202</span></a> <span class="s2">"normalize_functions"</span><span class="p">,</span> +</span><span id="Generator-203"><a href="#Generator-203"><span class="linenos"> 203</span></a> <span class="s2">"unsupported_level"</span><span class="p">,</span> +</span><span id="Generator-204"><a href="#Generator-204"><span class="linenos"> 204</span></a> <span class="s2">"unsupported_messages"</span><span class="p">,</span> +</span><span id="Generator-205"><a href="#Generator-205"><span class="linenos"> 205</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> +</span><span id="Generator-206"><a href="#Generator-206"><span class="linenos"> 206</span></a> <span class="s2">"max_unsupported"</span><span class="p">,</span> +</span><span id="Generator-207"><a href="#Generator-207"><span class="linenos"> 207</span></a> <span class="s2">"_indent"</span><span class="p">,</span> +</span><span id="Generator-208"><a href="#Generator-208"><span class="linenos"> 208</span></a> <span class="s2">"_escaped_quote_end"</span><span class="p">,</span> +</span><span id="Generator-209"><a href="#Generator-209"><span class="linenos"> 209</span></a> <span class="s2">"_escaped_identifier_end"</span><span class="p">,</span> +</span><span id="Generator-210"><a href="#Generator-210"><span class="linenos"> 210</span></a> <span class="s2">"_leading_comma"</span><span class="p">,</span> +</span><span id="Generator-211"><a href="#Generator-211"><span class="linenos"> 211</span></a> <span class="s2">"_max_text_width"</span><span class="p">,</span> +</span><span id="Generator-212"><a href="#Generator-212"><span class="linenos"> 212</span></a> <span class="s2">"_comments"</span><span class="p">,</span> +</span><span id="Generator-213"><a href="#Generator-213"><span class="linenos"> 213</span></a> <span class="p">)</span> +</span><span id="Generator-214"><a href="#Generator-214"><span class="linenos"> 214</span></a> +</span><span id="Generator-215"><a href="#Generator-215"><span class="linenos"> 215</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="Generator-216"><a href="#Generator-216"><span class="linenos"> 216</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator-217"><a href="#Generator-217"><span class="linenos"> 217</span></a> <span class="n">time_mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-218"><a href="#Generator-218"><span class="linenos"> 218</span></a> <span class="n">time_trie</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-219"><a href="#Generator-219"><span class="linenos"> 219</span></a> <span class="n">pretty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-220"><a href="#Generator-220"><span class="linenos"> 220</span></a> <span class="n">quote_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-221"><a href="#Generator-221"><span class="linenos"> 221</span></a> <span class="n">quote_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-222"><a href="#Generator-222"><span class="linenos"> 222</span></a> <span class="n">identifier_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-223"><a href="#Generator-223"><span class="linenos"> 223</span></a> <span class="n">identifier_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-224"><a href="#Generator-224"><span class="linenos"> 224</span></a> <span class="n">identify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-225"><a href="#Generator-225"><span class="linenos"> 225</span></a> <span class="n">normalize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-226"><a href="#Generator-226"><span class="linenos"> 226</span></a> <span class="n">string_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-227"><a href="#Generator-227"><span class="linenos"> 227</span></a> <span class="n">identifier_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-228"><a href="#Generator-228"><span class="linenos"> 228</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> +</span><span id="Generator-229"><a href="#Generator-229"><span class="linenos"> 229</span></a> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> +</span><span id="Generator-230"><a href="#Generator-230"><span class="linenos"> 230</span></a> <span class="n">index_offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> +</span><span id="Generator-231"><a href="#Generator-231"><span class="linenos"> 231</span></a> <span class="n">unnest_column_only</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-232"><a href="#Generator-232"><span class="linenos"> 232</span></a> <span class="n">alias_post_tablesample</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-233"><a href="#Generator-233"><span class="linenos"> 233</span></a> <span class="n">normalize_functions</span><span class="o">=</span><span class="s2">"upper"</span><span class="p">,</span> +</span><span id="Generator-234"><a href="#Generator-234"><span class="linenos"> 234</span></a> <span class="n">unsupported_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">,</span> +</span><span id="Generator-235"><a href="#Generator-235"><span class="linenos"> 235</span></a> <span class="n">null_ordering</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-236"><a href="#Generator-236"><span class="linenos"> 236</span></a> <span class="n">max_unsupported</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> +</span><span id="Generator-237"><a href="#Generator-237"><span class="linenos"> 237</span></a> <span class="n">leading_comma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-238"><a href="#Generator-238"><span class="linenos"> 238</span></a> <span class="n">max_text_width</span><span class="o">=</span><span class="mi">80</span><span class="p">,</span> +</span><span id="Generator-239"><a href="#Generator-239"><span class="linenos"> 239</span></a> <span class="n">comments</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Generator-240"><a href="#Generator-240"><span class="linenos"> 240</span></a> <span class="p">):</span> +</span><span id="Generator-241"><a href="#Generator-241"><span class="linenos"> 241</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> +</span><span id="Generator-242"><a href="#Generator-242"><span class="linenos"> 242</span></a> +</span><span id="Generator-243"><a href="#Generator-243"><span class="linenos"> 243</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span> <span class="o">=</span> <span class="n">time_mapping</span> <span class="ow">or</span> <span class="p">{}</span> +</span><span id="Generator-244"><a href="#Generator-244"><span class="linenos"> 244</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span> <span class="o">=</span> <span class="n">time_trie</span> +</span><span id="Generator-245"><a href="#Generator-245"><span class="linenos"> 245</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="n">pretty</span> <span class="k">if</span> <span class="n">pretty</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">pretty</span> +</span><span id="Generator-246"><a href="#Generator-246"><span class="linenos"> 246</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span> <span class="o">=</span> <span class="n">quote_start</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="Generator-247"><a href="#Generator-247"><span class="linenos"> 247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> <span class="o">=</span> <span class="n">quote_end</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="Generator-248"><a href="#Generator-248"><span class="linenos"> 248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span> <span class="o">=</span> <span class="n">identifier_start</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="Generator-249"><a href="#Generator-249"><span class="linenos"> 249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="Generator-250"><a href="#Generator-250"><span class="linenos"> 250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">identify</span> +</span><span id="Generator-251"><a href="#Generator-251"><span class="linenos"> 251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="o">=</span> <span class="n">normalize</span> +</span><span id="Generator-252"><a href="#Generator-252"><span class="linenos"> 252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">=</span> <span class="n">string_escape</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="Generator-253"><a href="#Generator-253"><span class="linenos"> 253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">=</span> <span class="n">identifier_escape</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="Generator-254"><a href="#Generator-254"><span class="linenos"> 254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="o">=</span> <span class="n">pad</span> +</span><span id="Generator-255"><a href="#Generator-255"><span class="linenos"> 255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> +</span><span id="Generator-256"><a href="#Generator-256"><span class="linenos"> 256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> +</span><span id="Generator-257"><a href="#Generator-257"><span class="linenos"> 257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> +</span><span id="Generator-258"><a href="#Generator-258"><span class="linenos"> 258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">=</span> <span class="n">normalize_functions</span> +</span><span id="Generator-259"><a href="#Generator-259"><span class="linenos"> 259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">=</span> <span class="n">unsupported_level</span> +</span><span id="Generator-260"><a href="#Generator-260"><span class="linenos"> 260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator-261"><a href="#Generator-261"><span class="linenos"> 261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span> <span class="o">=</span> <span class="n">max_unsupported</span> +</span><span id="Generator-262"><a href="#Generator-262"><span class="linenos"> 262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> +</span><span id="Generator-263"><a href="#Generator-263"><span class="linenos"> 263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_indent</span> <span class="o">=</span> <span class="n">indent</span> +</span><span id="Generator-264"><a href="#Generator-264"><span class="linenos"> 264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> +</span><span id="Generator-265"><a href="#Generator-265"><span class="linenos"> 265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> +</span><span id="Generator-266"><a href="#Generator-266"><span class="linenos"> 266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span> <span class="o">=</span> <span class="n">leading_comma</span> +</span><span id="Generator-267"><a href="#Generator-267"><span class="linenos"> 267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="o">=</span> <span class="n">max_text_width</span> +</span><span id="Generator-268"><a href="#Generator-268"><span class="linenos"> 268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Generator-269"><a href="#Generator-269"><span class="linenos"> 269</span></a> +</span><span id="Generator-270"><a href="#Generator-270"><span class="linenos"> 270</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-271"><a href="#Generator-271"><span class="linenos"> 271</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Generator-272"><a href="#Generator-272"><span class="linenos"> 272</span></a><span class="sd"> Generates a SQL string by interpreting the given syntax tree.</span> </span><span id="Generator-273"><a href="#Generator-273"><span class="linenos"> 273</span></a> -</span><span id="Generator-274"><a href="#Generator-274"><span class="linenos"> 274</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-275"><a href="#Generator-275"><span class="linenos"> 275</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Generator-276"><a href="#Generator-276"><span class="linenos"> 276</span></a><span class="sd"> Generates a SQL string by interpreting the given syntax tree.</span> -</span><span id="Generator-277"><a href="#Generator-277"><span class="linenos"> 277</span></a> -</span><span id="Generator-278"><a href="#Generator-278"><span class="linenos"> 278</span></a><span class="sd"> Args</span> -</span><span id="Generator-279"><a href="#Generator-279"><span class="linenos"> 279</span></a><span class="sd"> expression: the syntax tree.</span> -</span><span id="Generator-280"><a href="#Generator-280"><span class="linenos"> 280</span></a> -</span><span id="Generator-281"><a href="#Generator-281"><span class="linenos"> 281</span></a><span class="sd"> Returns</span> -</span><span id="Generator-282"><a href="#Generator-282"><span class="linenos"> 282</span></a><span class="sd"> the SQL string.</span> -</span><span id="Generator-283"><a href="#Generator-283"><span class="linenos"> 283</span></a><span class="sd"> """</span> -</span><span id="Generator-284"><a href="#Generator-284"><span class="linenos"> 284</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-285"><a href="#Generator-285"><span class="linenos"> 285</span></a> <span class="n">sql</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="o">.</span><span class="n">strip</span><span class="p">()</span> -</span><span id="Generator-286"><a href="#Generator-286"><span class="linenos"> 286</span></a> -</span><span id="Generator-287"><a href="#Generator-287"><span class="linenos"> 287</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> -</span><span id="Generator-288"><a href="#Generator-288"><span class="linenos"> 288</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator-289"><a href="#Generator-289"><span class="linenos"> 289</span></a> -</span><span id="Generator-290"><a href="#Generator-290"><span class="linenos"> 290</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> -</span><span id="Generator-291"><a href="#Generator-291"><span class="linenos"> 291</span></a> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> -</span><span id="Generator-292"><a href="#Generator-292"><span class="linenos"> 292</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> -</span><span id="Generator-293"><a href="#Generator-293"><span class="linenos"> 293</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> -</span><span id="Generator-294"><a href="#Generator-294"><span class="linenos"> 294</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span><span class="p">))</span> +</span><span id="Generator-274"><a href="#Generator-274"><span class="linenos"> 274</span></a><span class="sd"> Args</span> +</span><span id="Generator-275"><a href="#Generator-275"><span class="linenos"> 275</span></a><span class="sd"> expression: the syntax tree.</span> +</span><span id="Generator-276"><a href="#Generator-276"><span class="linenos"> 276</span></a> +</span><span id="Generator-277"><a href="#Generator-277"><span class="linenos"> 277</span></a><span class="sd"> Returns</span> +</span><span id="Generator-278"><a href="#Generator-278"><span class="linenos"> 278</span></a><span class="sd"> the SQL string.</span> +</span><span id="Generator-279"><a href="#Generator-279"><span class="linenos"> 279</span></a><span class="sd"> """</span> +</span><span id="Generator-280"><a href="#Generator-280"><span class="linenos"> 280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator-281"><a href="#Generator-281"><span class="linenos"> 281</span></a> <span class="n">sql</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="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="Generator-282"><a href="#Generator-282"><span class="linenos"> 282</span></a> +</span><span id="Generator-283"><a href="#Generator-283"><span class="linenos"> 283</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> +</span><span id="Generator-284"><a href="#Generator-284"><span class="linenos"> 284</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator-285"><a href="#Generator-285"><span class="linenos"> 285</span></a> +</span><span id="Generator-286"><a href="#Generator-286"><span class="linenos"> 286</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> +</span><span id="Generator-287"><a href="#Generator-287"><span class="linenos"> 287</span></a> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> +</span><span id="Generator-288"><a href="#Generator-288"><span class="linenos"> 288</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> +</span><span id="Generator-289"><a href="#Generator-289"><span class="linenos"> 289</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> +</span><span id="Generator-290"><a href="#Generator-290"><span class="linenos"> 290</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span><span class="p">))</span> +</span><span id="Generator-291"><a href="#Generator-291"><span class="linenos"> 291</span></a> +</span><span id="Generator-292"><a href="#Generator-292"><span class="linenos"> 292</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator-293"><a href="#Generator-293"><span class="linenos"> 293</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-294"><a href="#Generator-294"><span class="linenos"> 294</span></a> <span class="k">return</span> <span class="n">sql</span> </span><span id="Generator-295"><a href="#Generator-295"><span class="linenos"> 295</span></a> -</span><span id="Generator-296"><a href="#Generator-296"><span class="linenos"> 296</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator-297"><a href="#Generator-297"><span class="linenos"> 297</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-298"><a href="#Generator-298"><span class="linenos"> 298</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator-299"><a href="#Generator-299"><span class="linenos"> 299</span></a> -</span><span id="Generator-300"><a href="#Generator-300"><span class="linenos"> 300</span></a> <span class="k">def</span> <span class="nf">unsupported</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-301"><a href="#Generator-301"><span class="linenos"> 301</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> -</span><span id="Generator-302"><a href="#Generator-302"><span class="linenos"> 302</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> -</span><span id="Generator-303"><a href="#Generator-303"><span class="linenos"> 303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> -</span><span id="Generator-304"><a href="#Generator-304"><span class="linenos"> 304</span></a> -</span><span id="Generator-305"><a href="#Generator-305"><span class="linenos"> 305</span></a> <span class="k">def</span> <span class="nf">sep</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-306"><a href="#Generator-306"><span class="linenos"> 306</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="n">sep</span> -</span><span id="Generator-307"><a href="#Generator-307"><span class="linenos"> 307</span></a> -</span><span id="Generator-308"><a href="#Generator-308"><span class="linenos"> 308</span></a> <span class="k">def</span> <span class="nf">seg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-309"><a href="#Generator-309"><span class="linenos"> 309</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-310"><a href="#Generator-310"><span class="linenos"> 310</span></a> -</span><span id="Generator-311"><a href="#Generator-311"><span class="linenos"> 311</span></a> <span class="k">def</span> <span class="nf">pad_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-312"><a href="#Generator-312"><span class="linenos"> 312</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">comment</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> -</span><span id="Generator-313"><a href="#Generator-313"><span class="linenos"> 313</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="n">comment</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> -</span><span id="Generator-314"><a href="#Generator-314"><span class="linenos"> 314</span></a> <span class="k">return</span> <span class="n">comment</span> -</span><span id="Generator-315"><a href="#Generator-315"><span class="linenos"> 315</span></a> -</span><span id="Generator-316"><a href="#Generator-316"><span class="linenos"> 316</span></a> <span class="k">def</span> <span class="nf">maybe_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-317"><a href="#Generator-317"><span class="linenos"> 317</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Generator-318"><a href="#Generator-318"><span class="linenos"> 318</span></a> -</span><span id="Generator-319"><a href="#Generator-319"><span class="linenos"> 319</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="Generator-320"><a href="#Generator-320"><span class="linenos"> 320</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator-321"><a href="#Generator-321"><span class="linenos"> 321</span></a> -</span><span id="Generator-322"><a href="#Generator-322"><span class="linenos"> 322</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-323"><a href="#Generator-323"><span class="linenos"> 323</span></a> <span class="n">comments_sql</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator-324"><a href="#Generator-324"><span class="linenos"> 324</span></a> <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">pad_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span><span class="si">}</span><span class="s2">*/"</span> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span> <span class="k">if</span> <span class="n">comment</span> -</span><span id="Generator-325"><a href="#Generator-325"><span class="linenos"> 325</span></a> <span class="p">)</span> -</span><span id="Generator-326"><a href="#Generator-326"><span class="linenos"> 326</span></a> -</span><span id="Generator-327"><a href="#Generator-327"><span class="linenos"> 327</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments_sql</span><span class="p">:</span> -</span><span id="Generator-328"><a href="#Generator-328"><span class="linenos"> 328</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator-329"><a href="#Generator-329"><span class="linenos"> 329</span></a> -</span><span id="Generator-330"><a href="#Generator-330"><span class="linenos"> 330</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">WITH_SEPARATED_COMMENTS</span><span class="p">):</span> -</span><span id="Generator-331"><a href="#Generator-331"><span class="linenos"> 331</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-332"><a href="#Generator-332"><span class="linenos"> 332</span></a> -</span><span id="Generator-333"><a href="#Generator-333"><span class="linenos"> 333</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-334"><a href="#Generator-334"><span class="linenos"> 334</span></a> -</span><span id="Generator-335"><a href="#Generator-335"><span class="linenos"> 335</span></a> <span class="k">def</span> <span class="nf">wrap</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">Expression</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-336"><a href="#Generator-336"><span class="linenos"> 336</span></a> <span class="n">this_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span> -</span><span id="Generator-337"><a href="#Generator-337"><span class="linenos"> 337</span></a> <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><span id="Generator-338"><a href="#Generator-338"><span class="linenos"> 338</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="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">Union</span><span class="p">))</span> -</span><span id="Generator-339"><a href="#Generator-339"><span class="linenos"> 339</span></a> <span class="k">else</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="Generator-340"><a href="#Generator-340"><span class="linenos"> 340</span></a> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> -</span><span id="Generator-341"><a href="#Generator-341"><span class="linenos"> 341</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> -</span><span id="Generator-342"><a href="#Generator-342"><span class="linenos"> 342</span></a> <span class="p">)</span> -</span><span id="Generator-343"><a href="#Generator-343"><span class="linenos"> 343</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-344"><a href="#Generator-344"><span class="linenos"> 344</span></a> -</span><span id="Generator-345"><a href="#Generator-345"><span class="linenos"> 345</span></a> <span class="k">def</span> <span class="nf">no_identify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-346"><a href="#Generator-346"><span class="linenos"> 346</span></a> <span class="n">original</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> -</span><span id="Generator-347"><a href="#Generator-347"><span class="linenos"> 347</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Generator-348"><a href="#Generator-348"><span class="linenos"> 348</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="Generator-349"><a href="#Generator-349"><span class="linenos"> 349</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">original</span> -</span><span id="Generator-350"><a href="#Generator-350"><span class="linenos"> 350</span></a> <span class="k">return</span> <span class="n">result</span> -</span><span id="Generator-351"><a href="#Generator-351"><span class="linenos"> 351</span></a> -</span><span id="Generator-352"><a href="#Generator-352"><span class="linenos"> 352</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-353"><a href="#Generator-353"><span class="linenos"> 353</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"upper"</span><span class="p">:</span> -</span><span id="Generator-354"><a href="#Generator-354"><span class="linenos"> 354</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Generator-355"><a href="#Generator-355"><span class="linenos"> 355</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"lower"</span><span class="p">:</span> -</span><span id="Generator-356"><a href="#Generator-356"><span class="linenos"> 356</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> -</span><span id="Generator-357"><a href="#Generator-357"><span class="linenos"> 357</span></a> <span class="k">return</span> <span class="n">name</span> -</span><span id="Generator-358"><a href="#Generator-358"><span class="linenos"> 358</span></a> -</span><span id="Generator-359"><a href="#Generator-359"><span class="linenos"> 359</span></a> <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span> -</span><span id="Generator-360"><a href="#Generator-360"><span class="linenos"> 360</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator-361"><a href="#Generator-361"><span class="linenos"> 361</span></a> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> -</span><span id="Generator-362"><a href="#Generator-362"><span class="linenos"> 362</span></a> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> -</span><span id="Generator-363"><a href="#Generator-363"><span class="linenos"> 363</span></a> <span class="n">pad</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-364"><a href="#Generator-364"><span class="linenos"> 364</span></a> <span class="n">skip_first</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="Generator-365"><a href="#Generator-365"><span class="linenos"> 365</span></a> <span class="n">skip_last</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="Generator-366"><a href="#Generator-366"><span class="linenos"> 366</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-367"><a href="#Generator-367"><span class="linenos"> 367</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator-368"><a href="#Generator-368"><span class="linenos"> 368</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator-369"><a href="#Generator-369"><span class="linenos"> 369</span></a> -</span><span id="Generator-370"><a href="#Generator-370"><span class="linenos"> 370</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="k">if</span> <span class="n">pad</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">pad</span> -</span><span id="Generator-371"><a href="#Generator-371"><span class="linenos"> 371</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-372"><a href="#Generator-372"><span class="linenos"> 372</span></a> -</span><span id="Generator-373"><a href="#Generator-373"><span class="linenos"> 373</span></a> <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator-374"><a href="#Generator-374"><span class="linenos"> 374</span></a> <span class="n">line</span> -</span><span id="Generator-375"><a href="#Generator-375"><span class="linenos"> 375</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">skip_first</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">skip_last</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="Generator-376"><a href="#Generator-376"><span class="linenos"> 376</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' '</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">level</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pad</span><span class="p">)</span><span class="si">}{</span><span class="n">line</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-377"><a href="#Generator-377"><span class="linenos"> 377</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> -</span><span id="Generator-378"><a href="#Generator-378"><span class="linenos"> 378</span></a> <span class="p">)</span> -</span><span id="Generator-379"><a href="#Generator-379"><span class="linenos"> 379</span></a> -</span><span id="Generator-380"><a href="#Generator-380"><span class="linenos"> 380</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span> -</span><span id="Generator-381"><a href="#Generator-381"><span class="linenos"> 381</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator-382"><a href="#Generator-382"><span class="linenos"> 382</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> -</span><span id="Generator-383"><a href="#Generator-383"><span class="linenos"> 383</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-384"><a href="#Generator-384"><span class="linenos"> 384</span></a> <span class="n">comment</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Generator-385"><a href="#Generator-385"><span class="linenos"> 385</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-386"><a href="#Generator-386"><span class="linenos"> 386</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="Generator-387"><a href="#Generator-387"><span class="linenos"> 387</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator-388"><a href="#Generator-388"><span class="linenos"> 388</span></a> -</span><span id="Generator-389"><a href="#Generator-389"><span class="linenos"> 389</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="Generator-390"><a href="#Generator-390"><span class="linenos"> 390</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="Generator-391"><a href="#Generator-391"><span class="linenos"> 391</span></a> -</span><span id="Generator-392"><a href="#Generator-392"><span class="linenos"> 392</span></a> <span class="k">if</span> <span class="n">key</span><span class="p">:</span> -</span><span id="Generator-393"><a href="#Generator-393"><span class="linenos"> 393</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="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span> -</span><span id="Generator-394"><a href="#Generator-394"><span class="linenos"> 394</span></a> -</span><span id="Generator-395"><a href="#Generator-395"><span class="linenos"> 395</span></a> <span class="n">transform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> -</span><span id="Generator-396"><a href="#Generator-396"><span class="linenos"> 396</span></a> -</span><span id="Generator-397"><a href="#Generator-397"><span class="linenos"> 397</span></a> <span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> -</span><span id="Generator-398"><a href="#Generator-398"><span class="linenos"> 398</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</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="Generator-399"><a href="#Generator-399"><span class="linenos"> 399</span></a> <span class="k">elif</span> <span class="n">transform</span><span class="p">:</span> -</span><span id="Generator-400"><a href="#Generator-400"><span class="linenos"> 400</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</span> -</span><span id="Generator-401"><a href="#Generator-401"><span class="linenos"> 401</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Expression</span><span class="p">):</span> -</span><span id="Generator-402"><a href="#Generator-402"><span class="linenos"> 402</span></a> <span class="n">exp_handler_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">_sql"</span> -</span><span id="Generator-403"><a href="#Generator-403"><span class="linenos"> 403</span></a> -</span><span id="Generator-404"><a href="#Generator-404"><span class="linenos"> 404</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">):</span> -</span><span id="Generator-405"><a href="#Generator-405"><span class="linenos"> 405</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">)(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-406"><a href="#Generator-406"><span class="linenos"> 406</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Func</span><span class="p">):</span> -</span><span id="Generator-407"><a href="#Generator-407"><span class="linenos"> 407</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-408"><a href="#Generator-408"><span class="linenos"> 408</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Property</span><span class="p">):</span> -</span><span id="Generator-409"><a href="#Generator-409"><span class="linenos"> 409</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">property_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-410"><a href="#Generator-410"><span class="linenos"> 410</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-411"><a href="#Generator-411"><span class="linenos"> 411</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported expression type </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-412"><a href="#Generator-412"><span class="linenos"> 412</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-413"><a href="#Generator-413"><span class="linenos"> 413</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected an Expression. Received </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">expression</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-414"><a href="#Generator-414"><span class="linenos"> 414</span></a> -</span><span id="Generator-415"><a href="#Generator-415"><span class="linenos"> 415</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="ow">and</span> <span class="n">comment</span> <span class="k">else</span> <span class="n">sql</span> -</span><span id="Generator-416"><a href="#Generator-416"><span class="linenos"> 416</span></a> -</span><span id="Generator-417"><a href="#Generator-417"><span class="linenos"> 417</span></a> <span class="k">def</span> <span class="nf">uncache_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">Uncache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-418"><a href="#Generator-418"><span class="linenos"> 418</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> -</span><span id="Generator-419"><a href="#Generator-419"><span class="linenos"> 419</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-420"><a href="#Generator-420"><span class="linenos"> 420</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNCACHE TABLE</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-421"><a href="#Generator-421"><span class="linenos"> 421</span></a> -</span><span id="Generator-422"><a href="#Generator-422"><span class="linenos"> 422</span></a> <span class="k">def</span> <span class="nf">cache_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">Cache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-423"><a href="#Generator-423"><span class="linenos"> 423</span></a> <span class="n">lazy</span> <span class="o">=</span> <span class="s2">" LAZY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"lazy"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-424"><a href="#Generator-424"><span class="linenos"> 424</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> -</span><span id="Generator-425"><a href="#Generator-425"><span class="linenos"> 425</span></a> <span class="n">options</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">"options"</span><span class="p">)</span> -</span><span id="Generator-426"><a href="#Generator-426"><span class="linenos"> 426</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OPTIONS(</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">options</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</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">options</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-427"><a href="#Generator-427"><span class="linenos"> 427</span></a> <span class="n">sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-428"><a href="#Generator-428"><span class="linenos"> 428</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-429"><a href="#Generator-429"><span class="linenos"> 429</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CACHE</span><span class="si">{</span><span class="n">lazy</span><span class="si">}</span><span class="s2"> TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">options</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-430"><a href="#Generator-430"><span class="linenos"> 430</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Generator-431"><a href="#Generator-431"><span class="linenos"> 431</span></a> -</span><span id="Generator-432"><a href="#Generator-432"><span class="linenos"> 432</span></a> <span class="k">def</span> <span class="nf">characterset_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">CharacterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-433"><a href="#Generator-433"><span class="linenos"> 433</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="Generator-434"><a href="#Generator-434"><span class="linenos"> 434</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHAR CHARACTER SET </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">expression</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><span id="Generator-435"><a href="#Generator-435"><span class="linenos"> 435</span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"DEFAULT "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-436"><a href="#Generator-436"><span class="linenos"> 436</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">CHARACTER SET=</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">expression</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><span id="Generator-437"><a href="#Generator-437"><span class="linenos"> 437</span></a> -</span><span id="Generator-438"><a href="#Generator-438"><span class="linenos"> 438</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-439"><a href="#Generator-439"><span class="linenos"> 439</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator-440"><a href="#Generator-440"><span class="linenos"> 440</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> -</span><span id="Generator-441"><a href="#Generator-441"><span class="linenos"> 441</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="Generator-442"><a href="#Generator-442"><span class="linenos"> 442</span></a> <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">"catalog"</span><span class="p">),</span> -</span><span id="Generator-443"><a href="#Generator-443"><span class="linenos"> 443</span></a> <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">"db"</span><span class="p">),</span> -</span><span id="Generator-444"><a href="#Generator-444"><span class="linenos"> 444</span></a> <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">"table"</span><span class="p">),</span> -</span><span id="Generator-445"><a href="#Generator-445"><span class="linenos"> 445</span></a> <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">"this"</span><span class="p">),</span> -</span><span id="Generator-446"><a href="#Generator-446"><span class="linenos"> 446</span></a> <span class="p">)</span> -</span><span id="Generator-447"><a href="#Generator-447"><span class="linenos"> 447</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="Generator-448"><a href="#Generator-448"><span class="linenos"> 448</span></a> <span class="p">)</span> -</span><span id="Generator-449"><a href="#Generator-449"><span class="linenos"> 449</span></a> -</span><span id="Generator-450"><a href="#Generator-450"><span class="linenos"> 450</span></a> <span class="k">def</span> <span class="nf">columndef_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">ColumnDef</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-451"><a href="#Generator-451"><span class="linenos"> 451</span></a> <span class="n">column</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">"this"</span><span class="p">)</span> -</span><span id="Generator-452"><a href="#Generator-452"><span class="linenos"> 452</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator-453"><a href="#Generator-453"><span class="linenos"> 453</span></a> <span class="n">constraints</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">"constraints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-454"><a href="#Generator-454"><span class="linenos"> 454</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">"IF NOT EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-455"><a href="#Generator-455"><span class="linenos"> 455</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-456"><a href="#Generator-456"><span class="linenos"> 456</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">constraints</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-457"><a href="#Generator-457"><span class="linenos"> 457</span></a> -</span><span id="Generator-458"><a href="#Generator-458"><span class="linenos"> 458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">column</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-459"><a href="#Generator-459"><span class="linenos"> 459</span></a> -</span><span id="Generator-460"><a href="#Generator-460"><span class="linenos"> 460</span></a> <span class="k">def</span> <span class="nf">columnconstraint_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">ColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-461"><a href="#Generator-461"><span class="linenos"> 461</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-462"><a href="#Generator-462"><span class="linenos"> 462</span></a> <span class="n">kind_sql</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">"kind"</span><span class="p">)</span> -</span><span id="Generator-463"><a href="#Generator-463"><span class="linenos"> 463</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">kind_sql</span> -</span><span id="Generator-464"><a href="#Generator-464"><span class="linenos"> 464</span></a> -</span><span id="Generator-465"><a href="#Generator-465"><span class="linenos"> 465</span></a> <span class="k">def</span> <span class="nf">autoincrementcolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-466"><a href="#Generator-466"><span class="linenos"> 466</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token_sql</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">)</span> -</span><span id="Generator-467"><a href="#Generator-467"><span class="linenos"> 467</span></a> -</span><span id="Generator-468"><a href="#Generator-468"><span class="linenos"> 468</span></a> <span class="k">def</span> <span class="nf">compresscolumnconstraint_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">CompressColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-469"><a href="#Generator-469"><span class="linenos"> 469</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">this</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="Generator-470"><a href="#Generator-470"><span class="linenos"> 470</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">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">"this"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="Generator-471"><a href="#Generator-471"><span class="linenos"> 471</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-472"><a href="#Generator-472"><span class="linenos"> 472</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-473"><a href="#Generator-473"><span class="linenos"> 473</span></a> -</span><span id="Generator-474"><a href="#Generator-474"><span class="linenos"> 474</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMPRESS </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-475"><a href="#Generator-475"><span class="linenos"> 475</span></a> -</span><span id="Generator-476"><a href="#Generator-476"><span class="linenos"> 476</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="Generator-477"><a href="#Generator-477"><span class="linenos"> 477</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="Generator-478"><a href="#Generator-478"><span class="linenos"> 478</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-479"><a href="#Generator-479"><span class="linenos"> 479</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-480"><a href="#Generator-480"><span class="linenos"> 480</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-481"><a href="#Generator-481"><span class="linenos"> 481</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">" ALWAYS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">" BY DEFAULT "</span> -</span><span id="Generator-482"><a href="#Generator-482"><span class="linenos"> 482</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="Generator-483"><a href="#Generator-483"><span class="linenos"> 483</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"START WITH </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-484"><a href="#Generator-484"><span class="linenos"> 484</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="Generator-485"><a href="#Generator-485"><span class="linenos"> 485</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT BY </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-486"><a href="#Generator-486"><span class="linenos"> 486</span></a> <span class="n">minvalue</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">"minvalue"</span><span class="p">)</span> -</span><span id="Generator-487"><a href="#Generator-487"><span class="linenos"> 487</span></a> <span class="n">minvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MINVALUE </span><span class="si">{</span><span class="n">minvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">minvalue</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-488"><a href="#Generator-488"><span class="linenos"> 488</span></a> <span class="n">maxvalue</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">"maxvalue"</span><span class="p">)</span> -</span><span id="Generator-489"><a href="#Generator-489"><span class="linenos"> 489</span></a> <span class="n">maxvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAXVALUE </span><span class="si">{</span><span class="n">maxvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">maxvalue</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-490"><a href="#Generator-490"><span class="linenos"> 490</span></a> <span class="n">cycle</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">"cycle"</span><span class="p">)</span> -</span><span id="Generator-491"><a href="#Generator-491"><span class="linenos"> 491</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-492"><a href="#Generator-492"><span class="linenos"> 492</span></a> <span class="k">if</span> <span class="n">cycle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-493"><a href="#Generator-493"><span class="linenos"> 493</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' NO'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">cycle</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"> CYCLE"</span> -</span><span id="Generator-494"><a href="#Generator-494"><span class="linenos"> 494</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="n">cycle_sql</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">increment</span> <span class="k">else</span> <span class="n">cycle_sql</span> -</span><span id="Generator-495"><a href="#Generator-495"><span class="linenos"> 495</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-496"><a href="#Generator-496"><span class="linenos"> 496</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">or</span> <span class="n">increment</span> <span class="ow">or</span> <span class="n">cycle_sql</span><span class="p">:</span> -</span><span id="Generator-497"><a href="#Generator-497"><span class="linenos"> 497</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}{</span><span class="n">minvalue</span><span class="si">}{</span><span class="n">maxvalue</span><span class="si">}{</span><span class="n">cycle_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-498"><a href="#Generator-498"><span class="linenos"> 498</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">sequence_opts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-499"><a href="#Generator-499"><span class="linenos"> 499</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GENERATED</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">AS IDENTITY</span><span class="si">{</span><span class="n">sequence_opts</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-500"><a href="#Generator-500"><span class="linenos"> 500</span></a> -</span><span id="Generator-501"><a href="#Generator-501"><span class="linenos"> 501</span></a> <span class="k">def</span> <span class="nf">notnullcolumnconstraint_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">NotNullColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-502"><a href="#Generator-502"><span class="linenos"> 502</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'allow_null'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'NOT '</span><span class="si">}</span><span class="s2">NULL"</span> -</span><span id="Generator-503"><a href="#Generator-503"><span class="linenos"> 503</span></a> -</span><span id="Generator-504"><a href="#Generator-504"><span class="linenos"> 504</span></a> <span class="k">def</span> <span class="nf">primarykeycolumnconstraint_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">PrimaryKeyColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-505"><a href="#Generator-505"><span class="linenos"> 505</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> -</span><span id="Generator-506"><a href="#Generator-506"><span class="linenos"> 506</span></a> <span class="k">if</span> <span class="n">desc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-507"><a href="#Generator-507"><span class="linenos"> 507</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY</span><span class="si">{</span><span class="s1">' DESC'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desc</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ASC'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-508"><a href="#Generator-508"><span class="linenos"> 508</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY"</span> -</span><span id="Generator-509"><a href="#Generator-509"><span class="linenos"> 509</span></a> -</span><span id="Generator-510"><a href="#Generator-510"><span class="linenos"> 510</span></a> <span class="k">def</span> <span class="nf">uniquecolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-511"><a href="#Generator-511"><span class="linenos"> 511</span></a> <span class="k">return</span> <span class="s2">"UNIQUE"</span> -</span><span id="Generator-512"><a href="#Generator-512"><span class="linenos"> 512</span></a> -</span><span id="Generator-513"><a href="#Generator-513"><span class="linenos"> 513</span></a> <span class="k">def</span> <span class="nf">create_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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-514"><a href="#Generator-514"><span class="linenos"> 514</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Generator-515"><a href="#Generator-515"><span class="linenos"> 515</span></a> <span class="n">properties</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">"properties"</span><span class="p">)</span> -</span><span id="Generator-516"><a href="#Generator-516"><span class="linenos"> 516</span></a> <span class="n">properties_exp</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Generator-517"><a href="#Generator-517"><span class="linenos"> 517</span></a> <span class="n">properties_locs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">locate_properties</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">{}</span> -</span><span id="Generator-518"><a href="#Generator-518"><span class="linenos"> 518</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">)</span> <span class="ow">or</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> -</span><span id="Generator-519"><a href="#Generator-519"><span class="linenos"> 519</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span> -</span><span id="Generator-520"><a href="#Generator-520"><span class="linenos"> 520</span></a> <span class="p">):</span> -</span><span id="Generator-521"><a href="#Generator-521"><span class="linenos"> 521</span></a> <span class="n">properties_exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="Generator-522"><a href="#Generator-522"><span class="linenos"> 522</span></a> <span class="s2">"properties"</span><span class="p">,</span> -</span><span id="Generator-523"><a href="#Generator-523"><span class="linenos"> 523</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="Generator-524"><a href="#Generator-524"><span class="linenos"> 524</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span> -</span><span id="Generator-525"><a href="#Generator-525"><span class="linenos"> 525</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">],</span> -</span><span id="Generator-526"><a href="#Generator-526"><span class="linenos"> 526</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">],</span> -</span><span id="Generator-527"><a href="#Generator-527"><span class="linenos"> 527</span></a> <span class="p">]</span> -</span><span id="Generator-528"><a href="#Generator-528"><span class="linenos"> 528</span></a> <span class="p">),</span> -</span><span id="Generator-529"><a href="#Generator-529"><span class="linenos"> 529</span></a> <span class="p">)</span> -</span><span id="Generator-530"><a href="#Generator-530"><span class="linenos"> 530</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"TABLE"</span> <span class="ow">and</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">):</span> -</span><span id="Generator-531"><a href="#Generator-531"><span class="linenos"> 531</span></a> <span class="n">this_name</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> -</span><span id="Generator-532"><a href="#Generator-532"><span class="linenos"> 532</span></a> <span class="n">this_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator-533"><a href="#Generator-533"><span class="linenos"> 533</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]),</span> -</span><span id="Generator-534"><a href="#Generator-534"><span class="linenos"> 534</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-535"><a href="#Generator-535"><span class="linenos"> 535</span></a> <span class="p">)</span> -</span><span id="Generator-536"><a href="#Generator-536"><span class="linenos"> 536</span></a> <span class="n">this_schema</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-537"><a href="#Generator-537"><span class="linenos"> 537</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this_name</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">this_properties</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_schema</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-538"><a href="#Generator-538"><span class="linenos"> 538</span></a> <span class="n">properties_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-539"><a href="#Generator-539"><span class="linenos"> 539</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-540"><a href="#Generator-540"><span class="linenos"> 540</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-541"><a href="#Generator-541"><span class="linenos"> 541</span></a> <span class="n">properties_sql</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">properties_exp</span><span class="p">,</span> <span class="s2">"properties"</span><span class="p">)</span> -</span><span id="Generator-542"><a href="#Generator-542"><span class="linenos"> 542</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="s2">" BEGIN"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"begin"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-543"><a href="#Generator-543"><span class="linenos"> 543</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-544"><a href="#Generator-544"><span class="linenos"> 544</span></a> <span class="k">if</span> <span class="n">expression_sql</span><span class="p">:</span> -</span><span id="Generator-545"><a href="#Generator-545"><span class="linenos"> 545</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">begin</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-546"><a href="#Generator-546"><span class="linenos"> 546</span></a> -</span><span id="Generator-547"><a href="#Generator-547"><span class="linenos"> 547</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Return</span><span class="p">):</span> -</span><span id="Generator-548"><a href="#Generator-548"><span class="linenos"> 548</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">):</span> -</span><span id="Generator-549"><a href="#Generator-549"><span class="linenos"> 549</span></a> <span class="n">postalias_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator-550"><a href="#Generator-550"><span class="linenos"> 550</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="Generator-551"><a href="#Generator-551"><span class="linenos"> 551</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span> -</span><span id="Generator-552"><a href="#Generator-552"><span class="linenos"> 552</span></a> <span class="p">),</span> -</span><span id="Generator-553"><a href="#Generator-553"><span class="linenos"> 553</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-554"><a href="#Generator-554"><span class="linenos"> 554</span></a> <span class="p">)</span> -</span><span id="Generator-555"><a href="#Generator-555"><span class="linenos"> 555</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">postalias_props_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-556"><a href="#Generator-556"><span class="linenos"> 556</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-557"><a href="#Generator-557"><span class="linenos"> 557</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-558"><a href="#Generator-558"><span class="linenos"> 558</span></a> -</span><span id="Generator-559"><a href="#Generator-559"><span class="linenos"> 559</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-560"><a href="#Generator-560"><span class="linenos"> 560</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">):</span> -</span><span id="Generator-561"><a href="#Generator-561"><span class="linenos"> 561</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator-562"><a href="#Generator-562"><span class="linenos"> 562</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]),</span> -</span><span id="Generator-563"><a href="#Generator-563"><span class="linenos"> 563</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-564"><a href="#Generator-564"><span class="linenos"> 564</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator-565"><a href="#Generator-565"><span class="linenos"> 565</span></a> <span class="p">)</span> -</span><span id="Generator-566"><a href="#Generator-566"><span class="linenos"> 566</span></a> -</span><span id="Generator-567"><a href="#Generator-567"><span class="linenos"> 567</span></a> <span class="n">indexes</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">"indexes"</span><span class="p">)</span> -</span><span id="Generator-568"><a href="#Generator-568"><span class="linenos"> 568</span></a> <span class="k">if</span> <span class="n">indexes</span><span class="p">:</span> -</span><span id="Generator-569"><a href="#Generator-569"><span class="linenos"> 569</span></a> <span class="n">indexes_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-570"><a href="#Generator-570"><span class="linenos"> 570</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">indexes</span><span class="p">:</span> -</span><span id="Generator-571"><a href="#Generator-571"><span class="linenos"> 571</span></a> <span class="n">ind_unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">index</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">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-572"><a href="#Generator-572"><span class="linenos"> 572</span></a> <span class="n">ind_primary</span> <span class="o">=</span> <span class="s2">" PRIMARY"</span> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-573"><a href="#Generator-573"><span class="linenos"> 573</span></a> <span class="n">ind_amp</span> <span class="o">=</span> <span class="s2">" AMP"</span> <span class="k">if</span> <span class="n">index</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">"amp"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-574"><a href="#Generator-574"><span class="linenos"> 574</span></a> <span class="n">ind_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-575"><a href="#Generator-575"><span class="linenos"> 575</span></a> <span class="n">ind_columns</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-576"><a href="#Generator-576"><span class="linenos"> 576</span></a> <span class="sa">f</span><span class="s1">' (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s1">)'</span> -</span><span id="Generator-577"><a href="#Generator-577"><span class="linenos"> 577</span></a> <span class="k">if</span> <span class="n">index</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">"columns"</span><span class="p">)</span> -</span><span id="Generator-578"><a href="#Generator-578"><span class="linenos"> 578</span></a> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-579"><a href="#Generator-579"><span class="linenos"> 579</span></a> <span class="p">)</span> -</span><span id="Generator-580"><a href="#Generator-580"><span class="linenos"> 580</span></a> <span class="n">ind_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_unique</span><span class="si">}{</span><span class="n">ind_primary</span><span class="si">}{</span><span class="n">ind_amp</span><span class="si">}</span><span class="s2"> INDEX</span><span class="si">{</span><span class="n">ind_name</span><span class="si">}{</span><span class="n">ind_columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-581"><a href="#Generator-581"><span class="linenos"> 581</span></a> -</span><span id="Generator-582"><a href="#Generator-582"><span class="linenos"> 582</span></a> <span class="k">if</span> <span class="n">indexes_sql</span><span class="p">:</span> -</span><span id="Generator-583"><a href="#Generator-583"><span class="linenos"> 583</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ind_sql</span><span class="p">)</span> -</span><span id="Generator-584"><a href="#Generator-584"><span class="linenos"> 584</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-585"><a href="#Generator-585"><span class="linenos"> 585</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Generator-586"><a href="#Generator-586"><span class="linenos"> 586</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_sql</span><span class="si">}{</span><span class="n">postindex_props_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-587"><a href="#Generator-587"><span class="linenos"> 587</span></a> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> -</span><span id="Generator-588"><a href="#Generator-588"><span class="linenos"> 588</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">postindex_props_sql</span><span class="si">}{</span><span class="n">ind_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-589"><a href="#Generator-589"><span class="linenos"> 589</span></a> <span class="p">)</span> +</span><span id="Generator-296"><a href="#Generator-296"><span class="linenos"> 296</span></a> <span class="k">def</span> <span class="nf">unsupported</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-297"><a href="#Generator-297"><span class="linenos"> 297</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> +</span><span id="Generator-298"><a href="#Generator-298"><span class="linenos"> 298</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> +</span><span id="Generator-299"><a href="#Generator-299"><span class="linenos"> 299</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> +</span><span id="Generator-300"><a href="#Generator-300"><span class="linenos"> 300</span></a> +</span><span id="Generator-301"><a href="#Generator-301"><span class="linenos"> 301</span></a> <span class="k">def</span> <span class="nf">sep</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-302"><a href="#Generator-302"><span class="linenos"> 302</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="n">sep</span> +</span><span id="Generator-303"><a href="#Generator-303"><span class="linenos"> 303</span></a> +</span><span id="Generator-304"><a href="#Generator-304"><span class="linenos"> 304</span></a> <span class="k">def</span> <span class="nf">seg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-305"><a href="#Generator-305"><span class="linenos"> 305</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-306"><a href="#Generator-306"><span class="linenos"> 306</span></a> +</span><span id="Generator-307"><a href="#Generator-307"><span class="linenos"> 307</span></a> <span class="k">def</span> <span class="nf">pad_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-308"><a href="#Generator-308"><span class="linenos"> 308</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">comment</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> +</span><span id="Generator-309"><a href="#Generator-309"><span class="linenos"> 309</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="n">comment</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> +</span><span id="Generator-310"><a href="#Generator-310"><span class="linenos"> 310</span></a> <span class="k">return</span> <span class="n">comment</span> +</span><span id="Generator-311"><a href="#Generator-311"><span class="linenos"> 311</span></a> +</span><span id="Generator-312"><a href="#Generator-312"><span class="linenos"> 312</span></a> <span class="k">def</span> <span class="nf">maybe_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-313"><a href="#Generator-313"><span class="linenos"> 313</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Generator-314"><a href="#Generator-314"><span class="linenos"> 314</span></a> +</span><span id="Generator-315"><a href="#Generator-315"><span class="linenos"> 315</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="Generator-316"><a href="#Generator-316"><span class="linenos"> 316</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator-317"><a href="#Generator-317"><span class="linenos"> 317</span></a> +</span><span id="Generator-318"><a href="#Generator-318"><span class="linenos"> 318</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-319"><a href="#Generator-319"><span class="linenos"> 319</span></a> <span class="n">comments_sql</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator-320"><a href="#Generator-320"><span class="linenos"> 320</span></a> <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">pad_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span><span class="si">}</span><span class="s2">*/"</span> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span> <span class="k">if</span> <span class="n">comment</span> +</span><span id="Generator-321"><a href="#Generator-321"><span class="linenos"> 321</span></a> <span class="p">)</span> +</span><span id="Generator-322"><a href="#Generator-322"><span class="linenos"> 322</span></a> +</span><span id="Generator-323"><a href="#Generator-323"><span class="linenos"> 323</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments_sql</span><span class="p">:</span> +</span><span id="Generator-324"><a href="#Generator-324"><span class="linenos"> 324</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator-325"><a href="#Generator-325"><span class="linenos"> 325</span></a> +</span><span id="Generator-326"><a href="#Generator-326"><span class="linenos"> 326</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">WITH_SEPARATED_COMMENTS</span><span class="p">):</span> +</span><span id="Generator-327"><a href="#Generator-327"><span class="linenos"> 327</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-328"><a href="#Generator-328"><span class="linenos"> 328</span></a> +</span><span id="Generator-329"><a href="#Generator-329"><span class="linenos"> 329</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-330"><a href="#Generator-330"><span class="linenos"> 330</span></a> +</span><span id="Generator-331"><a href="#Generator-331"><span class="linenos"> 331</span></a> <span class="k">def</span> <span class="nf">wrap</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">Expression</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-332"><a href="#Generator-332"><span class="linenos"> 332</span></a> <span class="n">this_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span> +</span><span id="Generator-333"><a href="#Generator-333"><span class="linenos"> 333</span></a> <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><span id="Generator-334"><a href="#Generator-334"><span class="linenos"> 334</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="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">Union</span><span class="p">))</span> +</span><span id="Generator-335"><a href="#Generator-335"><span class="linenos"> 335</span></a> <span class="k">else</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="Generator-336"><a href="#Generator-336"><span class="linenos"> 336</span></a> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> +</span><span id="Generator-337"><a href="#Generator-337"><span class="linenos"> 337</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> +</span><span id="Generator-338"><a href="#Generator-338"><span class="linenos"> 338</span></a> <span class="p">)</span> +</span><span id="Generator-339"><a href="#Generator-339"><span class="linenos"> 339</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-340"><a href="#Generator-340"><span class="linenos"> 340</span></a> +</span><span id="Generator-341"><a href="#Generator-341"><span class="linenos"> 341</span></a> <span class="k">def</span> <span class="nf">no_identify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-342"><a href="#Generator-342"><span class="linenos"> 342</span></a> <span class="n">original</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> +</span><span id="Generator-343"><a href="#Generator-343"><span class="linenos"> 343</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Generator-344"><a href="#Generator-344"><span class="linenos"> 344</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="Generator-345"><a href="#Generator-345"><span class="linenos"> 345</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">original</span> +</span><span id="Generator-346"><a href="#Generator-346"><span class="linenos"> 346</span></a> <span class="k">return</span> <span class="n">result</span> +</span><span id="Generator-347"><a href="#Generator-347"><span class="linenos"> 347</span></a> +</span><span id="Generator-348"><a href="#Generator-348"><span class="linenos"> 348</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-349"><a href="#Generator-349"><span class="linenos"> 349</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"upper"</span><span class="p">:</span> +</span><span id="Generator-350"><a href="#Generator-350"><span class="linenos"> 350</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Generator-351"><a href="#Generator-351"><span class="linenos"> 351</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"lower"</span><span class="p">:</span> +</span><span id="Generator-352"><a href="#Generator-352"><span class="linenos"> 352</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="Generator-353"><a href="#Generator-353"><span class="linenos"> 353</span></a> <span class="k">return</span> <span class="n">name</span> +</span><span id="Generator-354"><a href="#Generator-354"><span class="linenos"> 354</span></a> +</span><span id="Generator-355"><a href="#Generator-355"><span class="linenos"> 355</span></a> <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span> +</span><span id="Generator-356"><a href="#Generator-356"><span class="linenos"> 356</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator-357"><a href="#Generator-357"><span class="linenos"> 357</span></a> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> +</span><span id="Generator-358"><a href="#Generator-358"><span class="linenos"> 358</span></a> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> +</span><span id="Generator-359"><a href="#Generator-359"><span class="linenos"> 359</span></a> <span class="n">pad</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-360"><a href="#Generator-360"><span class="linenos"> 360</span></a> <span class="n">skip_first</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="Generator-361"><a href="#Generator-361"><span class="linenos"> 361</span></a> <span class="n">skip_last</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="Generator-362"><a href="#Generator-362"><span class="linenos"> 362</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-363"><a href="#Generator-363"><span class="linenos"> 363</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator-364"><a href="#Generator-364"><span class="linenos"> 364</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator-365"><a href="#Generator-365"><span class="linenos"> 365</span></a> +</span><span id="Generator-366"><a href="#Generator-366"><span class="linenos"> 366</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="k">if</span> <span class="n">pad</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">pad</span> +</span><span id="Generator-367"><a href="#Generator-367"><span class="linenos"> 367</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-368"><a href="#Generator-368"><span class="linenos"> 368</span></a> +</span><span id="Generator-369"><a href="#Generator-369"><span class="linenos"> 369</span></a> <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator-370"><a href="#Generator-370"><span class="linenos"> 370</span></a> <span class="n">line</span> +</span><span id="Generator-371"><a href="#Generator-371"><span class="linenos"> 371</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">skip_first</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">skip_last</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="Generator-372"><a href="#Generator-372"><span class="linenos"> 372</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' '</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">level</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pad</span><span class="p">)</span><span class="si">}{</span><span class="n">line</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-373"><a href="#Generator-373"><span class="linenos"> 373</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> +</span><span id="Generator-374"><a href="#Generator-374"><span class="linenos"> 374</span></a> <span class="p">)</span> +</span><span id="Generator-375"><a href="#Generator-375"><span class="linenos"> 375</span></a> +</span><span id="Generator-376"><a href="#Generator-376"><span class="linenos"> 376</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span> +</span><span id="Generator-377"><a href="#Generator-377"><span class="linenos"> 377</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator-378"><a href="#Generator-378"><span class="linenos"> 378</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> +</span><span id="Generator-379"><a href="#Generator-379"><span class="linenos"> 379</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-380"><a href="#Generator-380"><span class="linenos"> 380</span></a> <span class="n">comment</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Generator-381"><a href="#Generator-381"><span class="linenos"> 381</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-382"><a href="#Generator-382"><span class="linenos"> 382</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="Generator-383"><a href="#Generator-383"><span class="linenos"> 383</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator-384"><a href="#Generator-384"><span class="linenos"> 384</span></a> +</span><span id="Generator-385"><a href="#Generator-385"><span class="linenos"> 385</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="Generator-386"><a href="#Generator-386"><span class="linenos"> 386</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Generator-387"><a href="#Generator-387"><span class="linenos"> 387</span></a> +</span><span id="Generator-388"><a href="#Generator-388"><span class="linenos"> 388</span></a> <span class="k">if</span> <span class="n">key</span><span class="p">:</span> +</span><span id="Generator-389"><a href="#Generator-389"><span class="linenos"> 389</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="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span> +</span><span id="Generator-390"><a href="#Generator-390"><span class="linenos"> 390</span></a> +</span><span id="Generator-391"><a href="#Generator-391"><span class="linenos"> 391</span></a> <span class="n">transform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> +</span><span id="Generator-392"><a href="#Generator-392"><span class="linenos"> 392</span></a> +</span><span id="Generator-393"><a href="#Generator-393"><span class="linenos"> 393</span></a> <span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> +</span><span id="Generator-394"><a href="#Generator-394"><span class="linenos"> 394</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</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="Generator-395"><a href="#Generator-395"><span class="linenos"> 395</span></a> <span class="k">elif</span> <span class="n">transform</span><span class="p">:</span> +</span><span id="Generator-396"><a href="#Generator-396"><span class="linenos"> 396</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</span> +</span><span id="Generator-397"><a href="#Generator-397"><span class="linenos"> 397</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Expression</span><span class="p">):</span> +</span><span id="Generator-398"><a href="#Generator-398"><span class="linenos"> 398</span></a> <span class="n">exp_handler_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">_sql"</span> +</span><span id="Generator-399"><a href="#Generator-399"><span class="linenos"> 399</span></a> +</span><span id="Generator-400"><a href="#Generator-400"><span class="linenos"> 400</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">):</span> +</span><span id="Generator-401"><a href="#Generator-401"><span class="linenos"> 401</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">)(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-402"><a href="#Generator-402"><span class="linenos"> 402</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Func</span><span class="p">):</span> +</span><span id="Generator-403"><a href="#Generator-403"><span class="linenos"> 403</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-404"><a href="#Generator-404"><span class="linenos"> 404</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Property</span><span class="p">):</span> +</span><span id="Generator-405"><a href="#Generator-405"><span class="linenos"> 405</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">property_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-406"><a href="#Generator-406"><span class="linenos"> 406</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-407"><a href="#Generator-407"><span class="linenos"> 407</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported expression type </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-408"><a href="#Generator-408"><span class="linenos"> 408</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-409"><a href="#Generator-409"><span class="linenos"> 409</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected an Expression. Received </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">expression</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-410"><a href="#Generator-410"><span class="linenos"> 410</span></a> +</span><span id="Generator-411"><a href="#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">maybe_comment</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="ow">and</span> <span class="n">comment</span> <span class="k">else</span> <span class="n">sql</span> +</span><span id="Generator-412"><a href="#Generator-412"><span class="linenos"> 412</span></a> +</span><span id="Generator-413"><a href="#Generator-413"><span class="linenos"> 413</span></a> <span class="k">def</span> <span class="nf">uncache_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">Uncache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-414"><a href="#Generator-414"><span class="linenos"> 414</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> +</span><span id="Generator-415"><a href="#Generator-415"><span class="linenos"> 415</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-416"><a href="#Generator-416"><span class="linenos"> 416</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNCACHE TABLE</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-417"><a href="#Generator-417"><span class="linenos"> 417</span></a> +</span><span id="Generator-418"><a href="#Generator-418"><span class="linenos"> 418</span></a> <span class="k">def</span> <span class="nf">cache_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">Cache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-419"><a href="#Generator-419"><span class="linenos"> 419</span></a> <span class="n">lazy</span> <span class="o">=</span> <span class="s2">" LAZY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"lazy"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-420"><a href="#Generator-420"><span class="linenos"> 420</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> +</span><span id="Generator-421"><a href="#Generator-421"><span class="linenos"> 421</span></a> <span class="n">options</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">"options"</span><span class="p">)</span> +</span><span id="Generator-422"><a href="#Generator-422"><span class="linenos"> 422</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OPTIONS(</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">options</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</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">options</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-423"><a href="#Generator-423"><span class="linenos"> 423</span></a> <span class="n">sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-424"><a href="#Generator-424"><span class="linenos"> 424</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-425"><a href="#Generator-425"><span class="linenos"> 425</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CACHE</span><span class="si">{</span><span class="n">lazy</span><span class="si">}</span><span class="s2"> TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">options</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-426"><a href="#Generator-426"><span class="linenos"> 426</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-427"><a href="#Generator-427"><span class="linenos"> 427</span></a> +</span><span id="Generator-428"><a href="#Generator-428"><span class="linenos"> 428</span></a> <span class="k">def</span> <span class="nf">characterset_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">CharacterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-429"><a href="#Generator-429"><span class="linenos"> 429</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="Generator-430"><a href="#Generator-430"><span class="linenos"> 430</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHAR CHARACTER SET </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">expression</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><span id="Generator-431"><a href="#Generator-431"><span class="linenos"> 431</span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"DEFAULT "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-432"><a href="#Generator-432"><span class="linenos"> 432</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">CHARACTER SET=</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">expression</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><span id="Generator-433"><a href="#Generator-433"><span class="linenos"> 433</span></a> +</span><span id="Generator-434"><a href="#Generator-434"><span class="linenos"> 434</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-435"><a href="#Generator-435"><span class="linenos"> 435</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator-436"><a href="#Generator-436"><span class="linenos"> 436</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> +</span><span id="Generator-437"><a href="#Generator-437"><span class="linenos"> 437</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="Generator-438"><a href="#Generator-438"><span class="linenos"> 438</span></a> <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">"catalog"</span><span class="p">),</span> +</span><span id="Generator-439"><a href="#Generator-439"><span class="linenos"> 439</span></a> <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">"db"</span><span class="p">),</span> +</span><span id="Generator-440"><a href="#Generator-440"><span class="linenos"> 440</span></a> <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">"table"</span><span class="p">),</span> +</span><span id="Generator-441"><a href="#Generator-441"><span class="linenos"> 441</span></a> <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">"this"</span><span class="p">),</span> +</span><span id="Generator-442"><a href="#Generator-442"><span class="linenos"> 442</span></a> <span class="p">)</span> +</span><span id="Generator-443"><a href="#Generator-443"><span class="linenos"> 443</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="Generator-444"><a href="#Generator-444"><span class="linenos"> 444</span></a> <span class="p">)</span> +</span><span id="Generator-445"><a href="#Generator-445"><span class="linenos"> 445</span></a> +</span><span id="Generator-446"><a href="#Generator-446"><span class="linenos"> 446</span></a> <span class="k">def</span> <span class="nf">columndef_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">ColumnDef</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-447"><a href="#Generator-447"><span class="linenos"> 447</span></a> <span class="n">column</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">"this"</span><span class="p">)</span> +</span><span id="Generator-448"><a href="#Generator-448"><span class="linenos"> 448</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator-449"><a href="#Generator-449"><span class="linenos"> 449</span></a> <span class="n">constraints</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">"constraints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-450"><a href="#Generator-450"><span class="linenos"> 450</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">"IF NOT EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-451"><a href="#Generator-451"><span class="linenos"> 451</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-452"><a href="#Generator-452"><span class="linenos"> 452</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">constraints</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-453"><a href="#Generator-453"><span class="linenos"> 453</span></a> +</span><span id="Generator-454"><a href="#Generator-454"><span class="linenos"> 454</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">column</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-455"><a href="#Generator-455"><span class="linenos"> 455</span></a> +</span><span id="Generator-456"><a href="#Generator-456"><span class="linenos"> 456</span></a> <span class="k">def</span> <span class="nf">columnconstraint_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">ColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-457"><a href="#Generator-457"><span class="linenos"> 457</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-458"><a href="#Generator-458"><span class="linenos"> 458</span></a> <span class="n">kind_sql</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">"kind"</span><span class="p">)</span> +</span><span id="Generator-459"><a href="#Generator-459"><span class="linenos"> 459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">kind_sql</span> +</span><span id="Generator-460"><a href="#Generator-460"><span class="linenos"> 460</span></a> +</span><span id="Generator-461"><a href="#Generator-461"><span class="linenos"> 461</span></a> <span class="k">def</span> <span class="nf">autoincrementcolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-462"><a href="#Generator-462"><span class="linenos"> 462</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token_sql</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">)</span> +</span><span id="Generator-463"><a href="#Generator-463"><span class="linenos"> 463</span></a> +</span><span id="Generator-464"><a href="#Generator-464"><span class="linenos"> 464</span></a> <span class="k">def</span> <span class="nf">compresscolumnconstraint_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">CompressColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-465"><a href="#Generator-465"><span class="linenos"> 465</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">this</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="Generator-466"><a href="#Generator-466"><span class="linenos"> 466</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">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">"this"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Generator-467"><a href="#Generator-467"><span class="linenos"> 467</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-468"><a href="#Generator-468"><span class="linenos"> 468</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-469"><a href="#Generator-469"><span class="linenos"> 469</span></a> +</span><span id="Generator-470"><a href="#Generator-470"><span class="linenos"> 470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMPRESS </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-471"><a href="#Generator-471"><span class="linenos"> 471</span></a> +</span><span id="Generator-472"><a href="#Generator-472"><span class="linenos"> 472</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="Generator-473"><a href="#Generator-473"><span class="linenos"> 473</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="Generator-474"><a href="#Generator-474"><span class="linenos"> 474</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-475"><a href="#Generator-475"><span class="linenos"> 475</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-476"><a href="#Generator-476"><span class="linenos"> 476</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-477"><a href="#Generator-477"><span class="linenos"> 477</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">" ALWAYS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">" BY DEFAULT "</span> +</span><span id="Generator-478"><a href="#Generator-478"><span class="linenos"> 478</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="Generator-479"><a href="#Generator-479"><span class="linenos"> 479</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"START WITH </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-480"><a href="#Generator-480"><span class="linenos"> 480</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="Generator-481"><a href="#Generator-481"><span class="linenos"> 481</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT BY </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-482"><a href="#Generator-482"><span class="linenos"> 482</span></a> <span class="n">minvalue</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">"minvalue"</span><span class="p">)</span> +</span><span id="Generator-483"><a href="#Generator-483"><span class="linenos"> 483</span></a> <span class="n">minvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MINVALUE </span><span class="si">{</span><span class="n">minvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">minvalue</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-484"><a href="#Generator-484"><span class="linenos"> 484</span></a> <span class="n">maxvalue</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">"maxvalue"</span><span class="p">)</span> +</span><span id="Generator-485"><a href="#Generator-485"><span class="linenos"> 485</span></a> <span class="n">maxvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAXVALUE </span><span class="si">{</span><span class="n">maxvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">maxvalue</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-486"><a href="#Generator-486"><span class="linenos"> 486</span></a> <span class="n">cycle</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">"cycle"</span><span class="p">)</span> +</span><span id="Generator-487"><a href="#Generator-487"><span class="linenos"> 487</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-488"><a href="#Generator-488"><span class="linenos"> 488</span></a> <span class="k">if</span> <span class="n">cycle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-489"><a href="#Generator-489"><span class="linenos"> 489</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' NO'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">cycle</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"> CYCLE"</span> +</span><span id="Generator-490"><a href="#Generator-490"><span class="linenos"> 490</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="n">cycle_sql</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">increment</span> <span class="k">else</span> <span class="n">cycle_sql</span> +</span><span id="Generator-491"><a href="#Generator-491"><span class="linenos"> 491</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-492"><a href="#Generator-492"><span class="linenos"> 492</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">or</span> <span class="n">increment</span> <span class="ow">or</span> <span class="n">cycle_sql</span><span class="p">:</span> +</span><span id="Generator-493"><a href="#Generator-493"><span class="linenos"> 493</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}{</span><span class="n">minvalue</span><span class="si">}{</span><span class="n">maxvalue</span><span class="si">}{</span><span class="n">cycle_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-494"><a href="#Generator-494"><span class="linenos"> 494</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">sequence_opts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-495"><a href="#Generator-495"><span class="linenos"> 495</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GENERATED</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">AS IDENTITY</span><span class="si">{</span><span class="n">sequence_opts</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-496"><a href="#Generator-496"><span class="linenos"> 496</span></a> +</span><span id="Generator-497"><a href="#Generator-497"><span class="linenos"> 497</span></a> <span class="k">def</span> <span class="nf">notnullcolumnconstraint_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">NotNullColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-498"><a href="#Generator-498"><span class="linenos"> 498</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'allow_null'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'NOT '</span><span class="si">}</span><span class="s2">NULL"</span> +</span><span id="Generator-499"><a href="#Generator-499"><span class="linenos"> 499</span></a> +</span><span id="Generator-500"><a href="#Generator-500"><span class="linenos"> 500</span></a> <span class="k">def</span> <span class="nf">primarykeycolumnconstraint_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">PrimaryKeyColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-501"><a href="#Generator-501"><span class="linenos"> 501</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> +</span><span id="Generator-502"><a href="#Generator-502"><span class="linenos"> 502</span></a> <span class="k">if</span> <span class="n">desc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-503"><a href="#Generator-503"><span class="linenos"> 503</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY</span><span class="si">{</span><span class="s1">' DESC'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desc</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ASC'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-504"><a href="#Generator-504"><span class="linenos"> 504</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY"</span> +</span><span id="Generator-505"><a href="#Generator-505"><span class="linenos"> 505</span></a> +</span><span id="Generator-506"><a href="#Generator-506"><span class="linenos"> 506</span></a> <span class="k">def</span> <span class="nf">uniquecolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-507"><a href="#Generator-507"><span class="linenos"> 507</span></a> <span class="k">return</span> <span class="s2">"UNIQUE"</span> +</span><span id="Generator-508"><a href="#Generator-508"><span class="linenos"> 508</span></a> +</span><span id="Generator-509"><a href="#Generator-509"><span class="linenos"> 509</span></a> <span class="k">def</span> <span class="nf">create_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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-510"><a href="#Generator-510"><span class="linenos"> 510</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Generator-511"><a href="#Generator-511"><span class="linenos"> 511</span></a> <span class="n">properties</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">"properties"</span><span class="p">)</span> +</span><span id="Generator-512"><a href="#Generator-512"><span class="linenos"> 512</span></a> <span class="n">properties_exp</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Generator-513"><a href="#Generator-513"><span class="linenos"> 513</span></a> <span class="n">properties_locs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">locate_properties</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">{}</span> +</span><span id="Generator-514"><a href="#Generator-514"><span class="linenos"> 514</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">)</span> <span class="ow">or</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> +</span><span id="Generator-515"><a href="#Generator-515"><span class="linenos"> 515</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span> +</span><span id="Generator-516"><a href="#Generator-516"><span class="linenos"> 516</span></a> <span class="p">):</span> +</span><span id="Generator-517"><a href="#Generator-517"><span class="linenos"> 517</span></a> <span class="n">properties_exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="Generator-518"><a href="#Generator-518"><span class="linenos"> 518</span></a> <span class="s2">"properties"</span><span class="p">,</span> +</span><span id="Generator-519"><a href="#Generator-519"><span class="linenos"> 519</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="Generator-520"><a href="#Generator-520"><span class="linenos"> 520</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span> +</span><span id="Generator-521"><a href="#Generator-521"><span class="linenos"> 521</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">],</span> +</span><span id="Generator-522"><a href="#Generator-522"><span class="linenos"> 522</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">],</span> +</span><span id="Generator-523"><a href="#Generator-523"><span class="linenos"> 523</span></a> <span class="p">]</span> +</span><span id="Generator-524"><a href="#Generator-524"><span class="linenos"> 524</span></a> <span class="p">),</span> +</span><span id="Generator-525"><a href="#Generator-525"><span class="linenos"> 525</span></a> <span class="p">)</span> +</span><span id="Generator-526"><a href="#Generator-526"><span class="linenos"> 526</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"TABLE"</span> <span class="ow">and</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">):</span> +</span><span id="Generator-527"><a href="#Generator-527"><span class="linenos"> 527</span></a> <span class="n">this_name</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> +</span><span id="Generator-528"><a href="#Generator-528"><span class="linenos"> 528</span></a> <span class="n">this_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator-529"><a href="#Generator-529"><span class="linenos"> 529</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]),</span> +</span><span id="Generator-530"><a href="#Generator-530"><span class="linenos"> 530</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-531"><a href="#Generator-531"><span class="linenos"> 531</span></a> <span class="p">)</span> +</span><span id="Generator-532"><a href="#Generator-532"><span class="linenos"> 532</span></a> <span class="n">this_schema</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-533"><a href="#Generator-533"><span class="linenos"> 533</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this_name</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">this_properties</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_schema</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-534"><a href="#Generator-534"><span class="linenos"> 534</span></a> <span class="n">properties_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-535"><a href="#Generator-535"><span class="linenos"> 535</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-536"><a href="#Generator-536"><span class="linenos"> 536</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-537"><a href="#Generator-537"><span class="linenos"> 537</span></a> <span class="n">properties_sql</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">properties_exp</span><span class="p">,</span> <span class="s2">"properties"</span><span class="p">)</span> +</span><span id="Generator-538"><a href="#Generator-538"><span class="linenos"> 538</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="s2">" BEGIN"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"begin"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-539"><a href="#Generator-539"><span class="linenos"> 539</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-540"><a href="#Generator-540"><span class="linenos"> 540</span></a> <span class="k">if</span> <span class="n">expression_sql</span><span class="p">:</span> +</span><span id="Generator-541"><a href="#Generator-541"><span class="linenos"> 541</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">begin</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-542"><a href="#Generator-542"><span class="linenos"> 542</span></a> +</span><span id="Generator-543"><a href="#Generator-543"><span class="linenos"> 543</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Return</span><span class="p">):</span> +</span><span id="Generator-544"><a href="#Generator-544"><span class="linenos"> 544</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">):</span> +</span><span id="Generator-545"><a href="#Generator-545"><span class="linenos"> 545</span></a> <span class="n">postalias_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator-546"><a href="#Generator-546"><span class="linenos"> 546</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="Generator-547"><a href="#Generator-547"><span class="linenos"> 547</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span> +</span><span id="Generator-548"><a href="#Generator-548"><span class="linenos"> 548</span></a> <span class="p">),</span> +</span><span id="Generator-549"><a href="#Generator-549"><span class="linenos"> 549</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-550"><a href="#Generator-550"><span class="linenos"> 550</span></a> <span class="p">)</span> +</span><span id="Generator-551"><a href="#Generator-551"><span class="linenos"> 551</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">postalias_props_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-552"><a href="#Generator-552"><span class="linenos"> 552</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-553"><a href="#Generator-553"><span class="linenos"> 553</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-554"><a href="#Generator-554"><span class="linenos"> 554</span></a> +</span><span id="Generator-555"><a href="#Generator-555"><span class="linenos"> 555</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-556"><a href="#Generator-556"><span class="linenos"> 556</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">):</span> +</span><span id="Generator-557"><a href="#Generator-557"><span class="linenos"> 557</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator-558"><a href="#Generator-558"><span class="linenos"> 558</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]),</span> +</span><span id="Generator-559"><a href="#Generator-559"><span class="linenos"> 559</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-560"><a href="#Generator-560"><span class="linenos"> 560</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator-561"><a href="#Generator-561"><span class="linenos"> 561</span></a> <span class="p">)</span> +</span><span id="Generator-562"><a href="#Generator-562"><span class="linenos"> 562</span></a> +</span><span id="Generator-563"><a href="#Generator-563"><span class="linenos"> 563</span></a> <span class="n">indexes</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">"indexes"</span><span class="p">)</span> +</span><span id="Generator-564"><a href="#Generator-564"><span class="linenos"> 564</span></a> <span class="k">if</span> <span class="n">indexes</span><span class="p">:</span> +</span><span id="Generator-565"><a href="#Generator-565"><span class="linenos"> 565</span></a> <span class="n">indexes_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator-566"><a href="#Generator-566"><span class="linenos"> 566</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">indexes</span><span class="p">:</span> +</span><span id="Generator-567"><a href="#Generator-567"><span class="linenos"> 567</span></a> <span class="n">ind_unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">index</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">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-568"><a href="#Generator-568"><span class="linenos"> 568</span></a> <span class="n">ind_primary</span> <span class="o">=</span> <span class="s2">" PRIMARY"</span> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-569"><a href="#Generator-569"><span class="linenos"> 569</span></a> <span class="n">ind_amp</span> <span class="o">=</span> <span class="s2">" AMP"</span> <span class="k">if</span> <span class="n">index</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">"amp"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-570"><a href="#Generator-570"><span class="linenos"> 570</span></a> <span class="n">ind_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-571"><a href="#Generator-571"><span class="linenos"> 571</span></a> <span class="n">ind_columns</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-572"><a href="#Generator-572"><span class="linenos"> 572</span></a> <span class="sa">f</span><span class="s1">' (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s1">)'</span> +</span><span id="Generator-573"><a href="#Generator-573"><span class="linenos"> 573</span></a> <span class="k">if</span> <span class="n">index</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">"columns"</span><span class="p">)</span> +</span><span id="Generator-574"><a href="#Generator-574"><span class="linenos"> 574</span></a> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-575"><a href="#Generator-575"><span class="linenos"> 575</span></a> <span class="p">)</span> +</span><span id="Generator-576"><a href="#Generator-576"><span class="linenos"> 576</span></a> <span class="n">ind_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_unique</span><span class="si">}{</span><span class="n">ind_primary</span><span class="si">}{</span><span class="n">ind_amp</span><span class="si">}</span><span class="s2"> INDEX</span><span class="si">{</span><span class="n">ind_name</span><span class="si">}{</span><span class="n">ind_columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-577"><a href="#Generator-577"><span class="linenos"> 577</span></a> +</span><span id="Generator-578"><a href="#Generator-578"><span class="linenos"> 578</span></a> <span class="k">if</span> <span class="n">indexes_sql</span><span class="p">:</span> +</span><span id="Generator-579"><a href="#Generator-579"><span class="linenos"> 579</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ind_sql</span><span class="p">)</span> +</span><span id="Generator-580"><a href="#Generator-580"><span class="linenos"> 580</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-581"><a href="#Generator-581"><span class="linenos"> 581</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Generator-582"><a href="#Generator-582"><span class="linenos"> 582</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_sql</span><span class="si">}{</span><span class="n">postindex_props_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-583"><a href="#Generator-583"><span class="linenos"> 583</span></a> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> +</span><span id="Generator-584"><a href="#Generator-584"><span class="linenos"> 584</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">postindex_props_sql</span><span class="si">}{</span><span class="n">ind_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-585"><a href="#Generator-585"><span class="linenos"> 585</span></a> <span class="p">)</span> +</span><span id="Generator-586"><a href="#Generator-586"><span class="linenos"> 586</span></a> +</span><span id="Generator-587"><a href="#Generator-587"><span class="linenos"> 587</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">indexes_sql</span><span class="p">)</span> +</span><span id="Generator-588"><a href="#Generator-588"><span class="linenos"> 588</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-589"><a href="#Generator-589"><span class="linenos"> 589</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="n">postindex_props_sql</span> </span><span id="Generator-590"><a href="#Generator-590"><span class="linenos"> 590</span></a> -</span><span id="Generator-591"><a href="#Generator-591"><span class="linenos"> 591</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">indexes_sql</span><span class="p">)</span> -</span><span id="Generator-592"><a href="#Generator-592"><span class="linenos"> 592</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-593"><a href="#Generator-593"><span class="linenos"> 593</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="n">postindex_props_sql</span> +</span><span id="Generator-591"><a href="#Generator-591"><span class="linenos"> 591</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="s2">" OR REPLACE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-592"><a href="#Generator-592"><span class="linenos"> 592</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-593"><a href="#Generator-593"><span class="linenos"> 593</span></a> <span class="n">volatile</span> <span class="o">=</span> <span class="s2">" VOLATILE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"volatile"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="Generator-594"><a href="#Generator-594"><span class="linenos"> 594</span></a> -</span><span id="Generator-595"><a href="#Generator-595"><span class="linenos"> 595</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="s2">" OR REPLACE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-596"><a href="#Generator-596"><span class="linenos"> 596</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-597"><a href="#Generator-597"><span class="linenos"> 597</span></a> <span class="n">volatile</span> <span class="o">=</span> <span class="s2">" VOLATILE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"volatile"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-598"><a href="#Generator-598"><span class="linenos"> 598</span></a> -</span><span id="Generator-599"><a href="#Generator-599"><span class="linenos"> 599</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-600"><a href="#Generator-600"><span class="linenos"> 600</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">):</span> -</span><span id="Generator-601"><a href="#Generator-601"><span class="linenos"> 601</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator-602"><a href="#Generator-602"><span class="linenos"> 602</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]),</span> -</span><span id="Generator-603"><a href="#Generator-603"><span class="linenos"> 603</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator-604"><a href="#Generator-604"><span class="linenos"> 604</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator-605"><a href="#Generator-605"><span class="linenos"> 605</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-606"><a href="#Generator-606"><span class="linenos"> 606</span></a> <span class="p">)</span> -</span><span id="Generator-607"><a href="#Generator-607"><span class="linenos"> 607</span></a> -</span><span id="Generator-608"><a href="#Generator-608"><span class="linenos"> 608</span></a> <span class="n">modifiers</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">replace</span><span class="p">,</span> <span class="n">unique</span><span class="p">,</span> <span class="n">volatile</span><span class="p">,</span> <span class="n">postcreate_props_sql</span><span class="p">))</span> -</span><span id="Generator-609"><a href="#Generator-609"><span class="linenos"> 609</span></a> -</span><span id="Generator-610"><a href="#Generator-610"><span class="linenos"> 610</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-611"><a href="#Generator-611"><span class="linenos"> 611</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">):</span> -</span><span id="Generator-612"><a href="#Generator-612"><span class="linenos"> 612</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator-613"><a href="#Generator-613"><span class="linenos"> 613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="Generator-614"><a href="#Generator-614"><span class="linenos"> 614</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span> -</span><span id="Generator-615"><a href="#Generator-615"><span class="linenos"> 615</span></a> <span class="p">),</span> -</span><span id="Generator-616"><a href="#Generator-616"><span class="linenos"> 616</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator-617"><a href="#Generator-617"><span class="linenos"> 617</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator-618"><a href="#Generator-618"><span class="linenos"> 618</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator-619"><a href="#Generator-619"><span class="linenos"> 619</span></a> <span class="p">)</span> -</span><span id="Generator-620"><a href="#Generator-620"><span class="linenos"> 620</span></a> -</span><span id="Generator-621"><a href="#Generator-621"><span class="linenos"> 621</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF NOT EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-622"><a href="#Generator-622"><span class="linenos"> 622</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-623"><a href="#Generator-623"><span class="linenos"> 623</span></a> <span class="s2">" WITH NO SCHEMA BINDING"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_schema_binding"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-624"><a href="#Generator-624"><span class="linenos"> 624</span></a> <span class="p">)</span> -</span><span id="Generator-625"><a href="#Generator-625"><span class="linenos"> 625</span></a> -</span><span id="Generator-626"><a href="#Generator-626"><span class="linenos"> 626</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CREATE</span><span class="si">{</span><span class="n">modifiers</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">properties_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">postexpression_props_sql</span><span class="si">}{</span><span class="n">index_sql</span><span class="si">}{</span><span class="n">no_schema_binding</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-627"><a href="#Generator-627"><span class="linenos"> 627</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_sql</span><span class="p">)</span> -</span><span id="Generator-628"><a href="#Generator-628"><span class="linenos"> 628</span></a> -</span><span id="Generator-629"><a href="#Generator-629"><span class="linenos"> 629</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-630"><a href="#Generator-630"><span class="linenos"> 630</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE </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">expression</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><span id="Generator-631"><a href="#Generator-631"><span class="linenos"> 631</span></a> -</span><span id="Generator-632"><a href="#Generator-632"><span class="linenos"> 632</span></a> <span class="k">def</span> <span class="nf">prepend_ctes</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">Expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-633"><a href="#Generator-633"><span class="linenos"> 633</span></a> <span class="n">with_</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">"with"</span><span class="p">)</span> -</span><span id="Generator-634"><a href="#Generator-634"><span class="linenos"> 634</span></a> <span class="k">if</span> <span class="n">with_</span><span class="p">:</span> -</span><span id="Generator-635"><a href="#Generator-635"><span class="linenos"> 635</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">with_</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-636"><a href="#Generator-636"><span class="linenos"> 636</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator-595"><a href="#Generator-595"><span class="linenos"> 595</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-596"><a href="#Generator-596"><span class="linenos"> 596</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">):</span> +</span><span id="Generator-597"><a href="#Generator-597"><span class="linenos"> 597</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator-598"><a href="#Generator-598"><span class="linenos"> 598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]),</span> +</span><span id="Generator-599"><a href="#Generator-599"><span class="linenos"> 599</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator-600"><a href="#Generator-600"><span class="linenos"> 600</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator-601"><a href="#Generator-601"><span class="linenos"> 601</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-602"><a href="#Generator-602"><span class="linenos"> 602</span></a> <span class="p">)</span> +</span><span id="Generator-603"><a href="#Generator-603"><span class="linenos"> 603</span></a> +</span><span id="Generator-604"><a href="#Generator-604"><span class="linenos"> 604</span></a> <span class="n">modifiers</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">replace</span><span class="p">,</span> <span class="n">unique</span><span class="p">,</span> <span class="n">volatile</span><span class="p">,</span> <span class="n">postcreate_props_sql</span><span class="p">))</span> +</span><span id="Generator-605"><a href="#Generator-605"><span class="linenos"> 605</span></a> +</span><span id="Generator-606"><a href="#Generator-606"><span class="linenos"> 606</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-607"><a href="#Generator-607"><span class="linenos"> 607</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">):</span> +</span><span id="Generator-608"><a href="#Generator-608"><span class="linenos"> 608</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator-609"><a href="#Generator-609"><span class="linenos"> 609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="Generator-610"><a href="#Generator-610"><span class="linenos"> 610</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span> +</span><span id="Generator-611"><a href="#Generator-611"><span class="linenos"> 611</span></a> <span class="p">),</span> +</span><span id="Generator-612"><a href="#Generator-612"><span class="linenos"> 612</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator-613"><a href="#Generator-613"><span class="linenos"> 613</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator-614"><a href="#Generator-614"><span class="linenos"> 614</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator-615"><a href="#Generator-615"><span class="linenos"> 615</span></a> <span class="p">)</span> +</span><span id="Generator-616"><a href="#Generator-616"><span class="linenos"> 616</span></a> +</span><span id="Generator-617"><a href="#Generator-617"><span class="linenos"> 617</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF NOT EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-618"><a href="#Generator-618"><span class="linenos"> 618</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-619"><a href="#Generator-619"><span class="linenos"> 619</span></a> <span class="s2">" WITH NO SCHEMA BINDING"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_schema_binding"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-620"><a href="#Generator-620"><span class="linenos"> 620</span></a> <span class="p">)</span> +</span><span id="Generator-621"><a href="#Generator-621"><span class="linenos"> 621</span></a> +</span><span id="Generator-622"><a href="#Generator-622"><span class="linenos"> 622</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CREATE</span><span class="si">{</span><span class="n">modifiers</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">properties_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">postexpression_props_sql</span><span class="si">}{</span><span class="n">index_sql</span><span class="si">}{</span><span class="n">no_schema_binding</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-623"><a href="#Generator-623"><span class="linenos"> 623</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_sql</span><span class="p">)</span> +</span><span id="Generator-624"><a href="#Generator-624"><span class="linenos"> 624</span></a> +</span><span id="Generator-625"><a href="#Generator-625"><span class="linenos"> 625</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-626"><a href="#Generator-626"><span class="linenos"> 626</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE </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">expression</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><span id="Generator-627"><a href="#Generator-627"><span class="linenos"> 627</span></a> +</span><span id="Generator-628"><a href="#Generator-628"><span class="linenos"> 628</span></a> <span class="k">def</span> <span class="nf">prepend_ctes</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">Expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-629"><a href="#Generator-629"><span class="linenos"> 629</span></a> <span class="n">with_</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">"with"</span><span class="p">)</span> +</span><span id="Generator-630"><a href="#Generator-630"><span class="linenos"> 630</span></a> <span class="k">if</span> <span class="n">with_</span><span class="p">:</span> +</span><span id="Generator-631"><a href="#Generator-631"><span class="linenos"> 631</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">with_</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-632"><a href="#Generator-632"><span class="linenos"> 632</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator-633"><a href="#Generator-633"><span class="linenos"> 633</span></a> +</span><span id="Generator-634"><a href="#Generator-634"><span class="linenos"> 634</span></a> <span class="k">def</span> <span class="nf">with_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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-635"><a href="#Generator-635"><span class="linenos"> 635</span></a> <span class="n">sql</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="Generator-636"><a href="#Generator-636"><span class="linenos"> 636</span></a> <span class="n">recursive</span> <span class="o">=</span> <span class="s2">"RECURSIVE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="Generator-637"><a href="#Generator-637"><span class="linenos"> 637</span></a> -</span><span id="Generator-638"><a href="#Generator-638"><span class="linenos"> 638</span></a> <span class="k">def</span> <span class="nf">with_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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-639"><a href="#Generator-639"><span class="linenos"> 639</span></a> <span class="n">sql</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="Generator-640"><a href="#Generator-640"><span class="linenos"> 640</span></a> <span class="n">recursive</span> <span class="o">=</span> <span class="s2">"RECURSIVE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-641"><a href="#Generator-641"><span class="linenos"> 641</span></a> -</span><span id="Generator-642"><a href="#Generator-642"><span class="linenos"> 642</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="n">recursive</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-638"><a href="#Generator-638"><span class="linenos"> 638</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="n">recursive</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-639"><a href="#Generator-639"><span class="linenos"> 639</span></a> +</span><span id="Generator-640"><a href="#Generator-640"><span class="linenos"> 640</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-641"><a href="#Generator-641"><span class="linenos"> 641</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-642"><a href="#Generator-642"><span class="linenos"> 642</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-643"><a href="#Generator-643"><span class="linenos"> 643</span></a> -</span><span id="Generator-644"><a href="#Generator-644"><span class="linenos"> 644</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-645"><a href="#Generator-645"><span class="linenos"> 645</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-646"><a href="#Generator-646"><span class="linenos"> 646</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-647"><a href="#Generator-647"><span class="linenos"> 647</span></a> -</span><span id="Generator-648"><a href="#Generator-648"><span class="linenos"> 648</span></a> <span class="k">def</span> <span class="nf">tablealias_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">TableAlias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-649"><a href="#Generator-649"><span class="linenos"> 649</span></a> <span class="n">alias</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">"this"</span><span class="p">)</span> -</span><span id="Generator-650"><a href="#Generator-650"><span class="linenos"> 650</span></a> <span class="n">columns</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">"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="Generator-651"><a href="#Generator-651"><span class="linenos"> 651</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-652"><a href="#Generator-652"><span class="linenos"> 652</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-653"><a href="#Generator-653"><span class="linenos"> 653</span></a> -</span><span id="Generator-654"><a href="#Generator-654"><span class="linenos"> 654</span></a> <span class="k">def</span> <span class="nf">bitstring_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">BitString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-655"><a href="#Generator-655"><span class="linenos"> 655</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="Generator-656"><a href="#Generator-656"><span class="linenos"> 656</span></a> -</span><span id="Generator-657"><a href="#Generator-657"><span class="linenos"> 657</span></a> <span class="k">def</span> <span class="nf">hexstring_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">HexString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-658"><a href="#Generator-658"><span class="linenos"> 658</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="Generator-659"><a href="#Generator-659"><span class="linenos"> 659</span></a> -</span><span id="Generator-660"><a href="#Generator-660"><span class="linenos"> 660</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="Generator-661"><a href="#Generator-661"><span class="linenos"> 661</span></a> <span class="n">type_value</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Generator-662"><a href="#Generator-662"><span class="linenos"> 662</span></a> <span class="n">type_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">type_value</span><span class="p">,</span> <span class="n">type_value</span><span class="o">.</span><span class="n">value</span><span class="p">)</span> -</span><span id="Generator-663"><a href="#Generator-663"><span class="linenos"> 663</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-664"><a href="#Generator-664"><span class="linenos"> 664</span></a> <span class="n">interior</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="Generator-665"><a href="#Generator-665"><span class="linenos"> 665</span></a> <span class="n">values</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-666"><a href="#Generator-666"><span class="linenos"> 666</span></a> <span class="k">if</span> <span class="n">interior</span><span class="p">:</span> -</span><span id="Generator-667"><a href="#Generator-667"><span class="linenos"> 667</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">"nested"</span><span class="p">):</span> -</span><span id="Generator-668"><a href="#Generator-668"><span class="linenos"> 668</span></a> <span class="n">nested</span> <span class="o">=</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">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</span><span class="n">interior</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-669"><a href="#Generator-669"><span class="linenos"> 669</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">"values"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-670"><a href="#Generator-670"><span class="linenos"> 670</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)</span> <span class="k">if</span> <span class="n">type_value</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">Type</span><span class="o">.</span><span class="n">ARRAY</span> <span class="k">else</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="Generator-671"><a href="#Generator-671"><span class="linenos"> 671</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-672"><a href="#Generator-672"><span class="linenos"> 672</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</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="w"> </span><span class="s1">'values'</span><span class="p">)</span><span class="si">}{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-673"><a href="#Generator-673"><span class="linenos"> 673</span></a> <span class="p">)</span> -</span><span id="Generator-674"><a href="#Generator-674"><span class="linenos"> 674</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-675"><a href="#Generator-675"><span class="linenos"> 675</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">interior</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-676"><a href="#Generator-676"><span class="linenos"> 676</span></a> -</span><span id="Generator-677"><a href="#Generator-677"><span class="linenos"> 677</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}{</span><span class="n">nested</span><span class="si">}{</span><span class="n">values</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-678"><a href="#Generator-678"><span class="linenos"> 678</span></a> -</span><span id="Generator-679"><a href="#Generator-679"><span class="linenos"> 679</span></a> <span class="k">def</span> <span class="nf">directory_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">Directory</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-680"><a href="#Generator-680"><span class="linenos"> 680</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-681"><a href="#Generator-681"><span class="linenos"> 681</span></a> <span class="n">row_format</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">"row_format"</span><span class="p">)</span> -</span><span id="Generator-682"><a href="#Generator-682"><span class="linenos"> 682</span></a> <span class="n">row_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">row_format</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-683"><a href="#Generator-683"><span class="linenos"> 683</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">local</span><span class="si">}</span><span class="s2">DIRECTORY </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-684"><a href="#Generator-684"><span class="linenos"> 684</span></a> -</span><span id="Generator-685"><a href="#Generator-685"><span class="linenos"> 685</span></a> <span class="k">def</span> <span class="nf">delete_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">Delete</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-686"><a href="#Generator-686"><span class="linenos"> 686</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-687"><a href="#Generator-687"><span class="linenos"> 687</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-688"><a href="#Generator-688"><span class="linenos"> 688</span></a> <span class="n">using_sql</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-689"><a href="#Generator-689"><span class="linenos"> 689</span></a> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</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="w"> </span><span class="s1">'using'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">', USING '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-690"><a href="#Generator-690"><span class="linenos"> 690</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">"using"</span><span class="p">)</span> -</span><span id="Generator-691"><a href="#Generator-691"><span class="linenos"> 691</span></a> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-692"><a href="#Generator-692"><span class="linenos"> 692</span></a> <span class="p">)</span> -</span><span id="Generator-693"><a href="#Generator-693"><span class="linenos"> 693</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Generator-694"><a href="#Generator-694"><span class="linenos"> 694</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="Generator-695"><a href="#Generator-695"><span class="linenos"> 695</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"DELETE</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">using_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-696"><a href="#Generator-696"><span class="linenos"> 696</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Generator-697"><a href="#Generator-697"><span class="linenos"> 697</span></a> -</span><span id="Generator-698"><a href="#Generator-698"><span class="linenos"> 698</span></a> <span class="k">def</span> <span class="nf">drop_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">Drop</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-699"><a href="#Generator-699"><span class="linenos"> 699</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-700"><a href="#Generator-700"><span class="linenos"> 700</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="Generator-701"><a href="#Generator-701"><span class="linenos"> 701</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-702"><a href="#Generator-702"><span class="linenos"> 702</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-703"><a href="#Generator-703"><span class="linenos"> 703</span></a> <span class="n">materialized</span> <span class="o">=</span> <span class="s2">" MATERIALIZED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"materialized"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-704"><a href="#Generator-704"><span class="linenos"> 704</span></a> <span class="n">cascade</span> <span class="o">=</span> <span class="s2">" CASCADE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cascade"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-705"><a href="#Generator-705"><span class="linenos"> 705</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">temporary</span><span class="si">}{</span><span class="n">materialized</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">cascade</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-706"><a href="#Generator-706"><span class="linenos"> 706</span></a> -</span><span id="Generator-707"><a href="#Generator-707"><span class="linenos"> 707</span></a> <span class="k">def</span> <span class="nf">except_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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-708"><a href="#Generator-708"><span class="linenos"> 708</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="Generator-709"><a href="#Generator-709"><span class="linenos"> 709</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator-710"><a href="#Generator-710"><span class="linenos"> 710</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="Generator-711"><a href="#Generator-711"><span class="linenos"> 711</span></a> <span class="p">)</span> -</span><span id="Generator-712"><a href="#Generator-712"><span class="linenos"> 712</span></a> -</span><span id="Generator-713"><a href="#Generator-713"><span class="linenos"> 713</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-714"><a href="#Generator-714"><span class="linenos"> 714</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-715"><a href="#Generator-715"><span class="linenos"> 715</span></a> -</span><span id="Generator-716"><a href="#Generator-716"><span class="linenos"> 716</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-717"><a href="#Generator-717"><span class="linenos"> 717</span></a> <span class="n">direction</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">"direction"</span><span class="p">)</span> -</span><span id="Generator-718"><a href="#Generator-718"><span class="linenos"> 718</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">direction</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-719"><a href="#Generator-719"><span class="linenos"> 719</span></a> <span class="n">count</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">"count"</span><span class="p">)</span> -</span><span id="Generator-720"><a href="#Generator-720"><span class="linenos"> 720</span></a> <span class="n">count</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">count</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">count</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-721"><a href="#Generator-721"><span class="linenos"> 721</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FETCH'</span><span class="p">)</span><span class="si">}{</span><span class="n">direction</span><span class="si">}{</span><span class="n">count</span><span class="si">}</span><span class="s2"> ROWS ONLY"</span> -</span><span id="Generator-722"><a href="#Generator-722"><span class="linenos"> 722</span></a> -</span><span id="Generator-723"><a href="#Generator-723"><span class="linenos"> 723</span></a> <span class="k">def</span> <span class="nf">filter_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">Filter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-724"><a href="#Generator-724"><span class="linenos"> 724</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-725"><a href="#Generator-725"><span class="linenos"> 725</span></a> <span class="n">where</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># where has a leading space</span> -</span><span id="Generator-726"><a href="#Generator-726"><span class="linenos"> 726</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FILTER(</span><span class="si">{</span><span class="n">where</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-727"><a href="#Generator-727"><span class="linenos"> 727</span></a> -</span><span id="Generator-728"><a href="#Generator-728"><span class="linenos"> 728</span></a> <span class="k">def</span> <span class="nf">hint_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">Hint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-729"><a href="#Generator-729"><span class="linenos"> 729</span></a> <span class="k">if</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="Generator-730"><a href="#Generator-730"><span class="linenos"> 730</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hints are not supported"</span><span class="p">)</span> -</span><span id="Generator-731"><a href="#Generator-731"><span class="linenos"> 731</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator-732"><a href="#Generator-732"><span class="linenos"> 732</span></a> -</span><span id="Generator-733"><a href="#Generator-733"><span class="linenos"> 733</span></a> <span class="k">def</span> <span class="nf">index_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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-734"><a href="#Generator-734"><span class="linenos"> 734</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-735"><a href="#Generator-735"><span class="linenos"> 735</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="Generator-736"><a href="#Generator-736"><span class="linenos"> 736</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> -</span><span id="Generator-737"><a href="#Generator-737"><span class="linenos"> 737</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-738"><a href="#Generator-738"><span class="linenos"> 738</span></a> -</span><span id="Generator-739"><a href="#Generator-739"><span class="linenos"> 739</span></a> <span class="k">def</span> <span class="nf">identifier_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">Identifier</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-740"><a href="#Generator-740"><span class="linenos"> 740</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> -</span><span id="Generator-741"><a href="#Generator-741"><span class="linenos"> 741</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="k">else</span> <span class="n">text</span> -</span><span id="Generator-742"><a href="#Generator-742"><span class="linenos"> 742</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span><span class="p">)</span> -</span><span id="Generator-743"><a href="#Generator-743"><span class="linenos"> 743</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">"quoted"</span><span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span><span class="p">:</span> -</span><span id="Generator-744"><a href="#Generator-744"><span class="linenos"> 744</span></a> <span class="n">text</span> <span class="o">=</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">identifier_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-745"><a href="#Generator-745"><span class="linenos"> 745</span></a> <span class="k">return</span> <span class="n">text</span> -</span><span id="Generator-746"><a href="#Generator-746"><span class="linenos"> 746</span></a> -</span><span id="Generator-747"><a href="#Generator-747"><span class="linenos"> 747</span></a> <span class="k">def</span> <span class="nf">national_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">National</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-748"><a href="#Generator-748"><span class="linenos"> 748</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"N</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">expression</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><span id="Generator-749"><a href="#Generator-749"><span class="linenos"> 749</span></a> -</span><span id="Generator-750"><a href="#Generator-750"><span class="linenos"> 750</span></a> <span class="k">def</span> <span class="nf">partition_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">Partition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-751"><a href="#Generator-751"><span class="linenos"> 751</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION(</span><span class="si">{</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="si">}</span><span class="s2">)"</span> +</span><span id="Generator-644"><a href="#Generator-644"><span class="linenos"> 644</span></a> <span class="k">def</span> <span class="nf">tablealias_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">TableAlias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-645"><a href="#Generator-645"><span class="linenos"> 645</span></a> <span class="n">alias</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">"this"</span><span class="p">)</span> +</span><span id="Generator-646"><a href="#Generator-646"><span class="linenos"> 646</span></a> <span class="n">columns</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">"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="Generator-647"><a href="#Generator-647"><span class="linenos"> 647</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-648"><a href="#Generator-648"><span class="linenos"> 648</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-649"><a href="#Generator-649"><span class="linenos"> 649</span></a> +</span><span id="Generator-650"><a href="#Generator-650"><span class="linenos"> 650</span></a> <span class="k">def</span> <span class="nf">bitstring_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">BitString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-651"><a href="#Generator-651"><span class="linenos"> 651</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="Generator-652"><a href="#Generator-652"><span class="linenos"> 652</span></a> +</span><span id="Generator-653"><a href="#Generator-653"><span class="linenos"> 653</span></a> <span class="k">def</span> <span class="nf">hexstring_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">HexString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-654"><a href="#Generator-654"><span class="linenos"> 654</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="Generator-655"><a href="#Generator-655"><span class="linenos"> 655</span></a> +</span><span id="Generator-656"><a href="#Generator-656"><span class="linenos"> 656</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="Generator-657"><a href="#Generator-657"><span class="linenos"> 657</span></a> <span class="n">type_value</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Generator-658"><a href="#Generator-658"><span class="linenos"> 658</span></a> <span class="n">type_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">type_value</span><span class="p">,</span> <span class="n">type_value</span><span class="o">.</span><span class="n">value</span><span class="p">)</span> +</span><span id="Generator-659"><a href="#Generator-659"><span class="linenos"> 659</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-660"><a href="#Generator-660"><span class="linenos"> 660</span></a> <span class="n">interior</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="Generator-661"><a href="#Generator-661"><span class="linenos"> 661</span></a> <span class="n">values</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-662"><a href="#Generator-662"><span class="linenos"> 662</span></a> <span class="k">if</span> <span class="n">interior</span><span class="p">:</span> +</span><span id="Generator-663"><a href="#Generator-663"><span class="linenos"> 663</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">"nested"</span><span class="p">):</span> +</span><span id="Generator-664"><a href="#Generator-664"><span class="linenos"> 664</span></a> <span class="n">nested</span> <span class="o">=</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">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</span><span class="n">interior</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-665"><a href="#Generator-665"><span class="linenos"> 665</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">"values"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-666"><a href="#Generator-666"><span class="linenos"> 666</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)</span> <span class="k">if</span> <span class="n">type_value</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">Type</span><span class="o">.</span><span class="n">ARRAY</span> <span class="k">else</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="Generator-667"><a href="#Generator-667"><span class="linenos"> 667</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-668"><a href="#Generator-668"><span class="linenos"> 668</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</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="w"> </span><span class="s1">'values'</span><span class="p">)</span><span class="si">}{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-669"><a href="#Generator-669"><span class="linenos"> 669</span></a> <span class="p">)</span> +</span><span id="Generator-670"><a href="#Generator-670"><span class="linenos"> 670</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-671"><a href="#Generator-671"><span class="linenos"> 671</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">interior</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-672"><a href="#Generator-672"><span class="linenos"> 672</span></a> +</span><span id="Generator-673"><a href="#Generator-673"><span class="linenos"> 673</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}{</span><span class="n">nested</span><span class="si">}{</span><span class="n">values</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-674"><a href="#Generator-674"><span class="linenos"> 674</span></a> +</span><span id="Generator-675"><a href="#Generator-675"><span class="linenos"> 675</span></a> <span class="k">def</span> <span class="nf">directory_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">Directory</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-676"><a href="#Generator-676"><span class="linenos"> 676</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-677"><a href="#Generator-677"><span class="linenos"> 677</span></a> <span class="n">row_format</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">"row_format"</span><span class="p">)</span> +</span><span id="Generator-678"><a href="#Generator-678"><span class="linenos"> 678</span></a> <span class="n">row_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">row_format</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-679"><a href="#Generator-679"><span class="linenos"> 679</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">local</span><span class="si">}</span><span class="s2">DIRECTORY </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-680"><a href="#Generator-680"><span class="linenos"> 680</span></a> +</span><span id="Generator-681"><a href="#Generator-681"><span class="linenos"> 681</span></a> <span class="k">def</span> <span class="nf">delete_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">Delete</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-682"><a href="#Generator-682"><span class="linenos"> 682</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-683"><a href="#Generator-683"><span class="linenos"> 683</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-684"><a href="#Generator-684"><span class="linenos"> 684</span></a> <span class="n">using_sql</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-685"><a href="#Generator-685"><span class="linenos"> 685</span></a> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</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="w"> </span><span class="s1">'using'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">', USING '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-686"><a href="#Generator-686"><span class="linenos"> 686</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">"using"</span><span class="p">)</span> +</span><span id="Generator-687"><a href="#Generator-687"><span class="linenos"> 687</span></a> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-688"><a href="#Generator-688"><span class="linenos"> 688</span></a> <span class="p">)</span> +</span><span id="Generator-689"><a href="#Generator-689"><span class="linenos"> 689</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Generator-690"><a href="#Generator-690"><span class="linenos"> 690</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="Generator-691"><a href="#Generator-691"><span class="linenos"> 691</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"DELETE</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">using_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-692"><a href="#Generator-692"><span class="linenos"> 692</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-693"><a href="#Generator-693"><span class="linenos"> 693</span></a> +</span><span id="Generator-694"><a href="#Generator-694"><span class="linenos"> 694</span></a> <span class="k">def</span> <span class="nf">drop_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">Drop</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-695"><a href="#Generator-695"><span class="linenos"> 695</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-696"><a href="#Generator-696"><span class="linenos"> 696</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="Generator-697"><a href="#Generator-697"><span class="linenos"> 697</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-698"><a href="#Generator-698"><span class="linenos"> 698</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-699"><a href="#Generator-699"><span class="linenos"> 699</span></a> <span class="n">materialized</span> <span class="o">=</span> <span class="s2">" MATERIALIZED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"materialized"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-700"><a href="#Generator-700"><span class="linenos"> 700</span></a> <span class="n">cascade</span> <span class="o">=</span> <span class="s2">" CASCADE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cascade"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-701"><a href="#Generator-701"><span class="linenos"> 701</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">temporary</span><span class="si">}{</span><span class="n">materialized</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">cascade</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-702"><a href="#Generator-702"><span class="linenos"> 702</span></a> +</span><span id="Generator-703"><a href="#Generator-703"><span class="linenos"> 703</span></a> <span class="k">def</span> <span class="nf">except_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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-704"><a href="#Generator-704"><span class="linenos"> 704</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="Generator-705"><a href="#Generator-705"><span class="linenos"> 705</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator-706"><a href="#Generator-706"><span class="linenos"> 706</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator-707"><a href="#Generator-707"><span class="linenos"> 707</span></a> <span class="p">)</span> +</span><span id="Generator-708"><a href="#Generator-708"><span class="linenos"> 708</span></a> +</span><span id="Generator-709"><a href="#Generator-709"><span class="linenos"> 709</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-710"><a href="#Generator-710"><span class="linenos"> 710</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-711"><a href="#Generator-711"><span class="linenos"> 711</span></a> +</span><span id="Generator-712"><a href="#Generator-712"><span class="linenos"> 712</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-713"><a href="#Generator-713"><span class="linenos"> 713</span></a> <span class="n">direction</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">"direction"</span><span class="p">)</span> +</span><span id="Generator-714"><a href="#Generator-714"><span class="linenos"> 714</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">direction</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-715"><a href="#Generator-715"><span class="linenos"> 715</span></a> <span class="n">count</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">"count"</span><span class="p">)</span> +</span><span id="Generator-716"><a href="#Generator-716"><span class="linenos"> 716</span></a> <span class="n">count</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">count</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">count</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-717"><a href="#Generator-717"><span class="linenos"> 717</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FETCH'</span><span class="p">)</span><span class="si">}{</span><span class="n">direction</span><span class="si">}{</span><span class="n">count</span><span class="si">}</span><span class="s2"> ROWS ONLY"</span> +</span><span id="Generator-718"><a href="#Generator-718"><span class="linenos"> 718</span></a> +</span><span id="Generator-719"><a href="#Generator-719"><span class="linenos"> 719</span></a> <span class="k">def</span> <span class="nf">filter_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">Filter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-720"><a href="#Generator-720"><span class="linenos"> 720</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-721"><a href="#Generator-721"><span class="linenos"> 721</span></a> <span class="n">where</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># where has a leading space</span> +</span><span id="Generator-722"><a href="#Generator-722"><span class="linenos"> 722</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FILTER(</span><span class="si">{</span><span class="n">where</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-723"><a href="#Generator-723"><span class="linenos"> 723</span></a> +</span><span id="Generator-724"><a href="#Generator-724"><span class="linenos"> 724</span></a> <span class="k">def</span> <span class="nf">hint_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">Hint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-725"><a href="#Generator-725"><span class="linenos"> 725</span></a> <span class="k">if</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="Generator-726"><a href="#Generator-726"><span class="linenos"> 726</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hints are not supported"</span><span class="p">)</span> +</span><span id="Generator-727"><a href="#Generator-727"><span class="linenos"> 727</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator-728"><a href="#Generator-728"><span class="linenos"> 728</span></a> +</span><span id="Generator-729"><a href="#Generator-729"><span class="linenos"> 729</span></a> <span class="k">def</span> <span class="nf">index_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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-730"><a href="#Generator-730"><span class="linenos"> 730</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-731"><a href="#Generator-731"><span class="linenos"> 731</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="Generator-732"><a href="#Generator-732"><span class="linenos"> 732</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> +</span><span id="Generator-733"><a href="#Generator-733"><span class="linenos"> 733</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-734"><a href="#Generator-734"><span class="linenos"> 734</span></a> +</span><span id="Generator-735"><a href="#Generator-735"><span class="linenos"> 735</span></a> <span class="k">def</span> <span class="nf">identifier_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">Identifier</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-736"><a href="#Generator-736"><span class="linenos"> 736</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> +</span><span id="Generator-737"><a href="#Generator-737"><span class="linenos"> 737</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="k">else</span> <span class="n">text</span> +</span><span id="Generator-738"><a href="#Generator-738"><span class="linenos"> 738</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span><span class="p">)</span> +</span><span id="Generator-739"><a href="#Generator-739"><span class="linenos"> 739</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">"quoted"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">should_identify</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span><span class="p">):</span> +</span><span id="Generator-740"><a href="#Generator-740"><span class="linenos"> 740</span></a> <span class="n">text</span> <span class="o">=</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">identifier_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-741"><a href="#Generator-741"><span class="linenos"> 741</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="Generator-742"><a href="#Generator-742"><span class="linenos"> 742</span></a> +</span><span id="Generator-743"><a href="#Generator-743"><span class="linenos"> 743</span></a> <span class="k">def</span> <span class="nf">national_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">National</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-744"><a href="#Generator-744"><span class="linenos"> 744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"N</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">expression</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><span id="Generator-745"><a href="#Generator-745"><span class="linenos"> 745</span></a> +</span><span id="Generator-746"><a href="#Generator-746"><span class="linenos"> 746</span></a> <span class="k">def</span> <span class="nf">partition_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">Partition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-747"><a href="#Generator-747"><span class="linenos"> 747</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION(</span><span class="si">{</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="si">}</span><span class="s2">)"</span> +</span><span id="Generator-748"><a href="#Generator-748"><span class="linenos"> 748</span></a> +</span><span id="Generator-749"><a href="#Generator-749"><span class="linenos"> 749</span></a> <span class="k">def</span> <span class="nf">properties_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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-750"><a href="#Generator-750"><span class="linenos"> 750</span></a> <span class="n">root_properties</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator-751"><a href="#Generator-751"><span class="linenos"> 751</span></a> <span class="n">with_properties</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="Generator-752"><a href="#Generator-752"><span class="linenos"> 752</span></a> -</span><span id="Generator-753"><a href="#Generator-753"><span class="linenos"> 753</span></a> <span class="k">def</span> <span class="nf">properties_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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-754"><a href="#Generator-754"><span class="linenos"> 754</span></a> <span class="n">root_properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-755"><a href="#Generator-755"><span class="linenos"> 755</span></a> <span class="n">with_properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-756"><a href="#Generator-756"><span class="linenos"> 756</span></a> -</span><span id="Generator-757"><a href="#Generator-757"><span class="linenos"> 757</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator-758"><a href="#Generator-758"><span class="linenos"> 758</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> -</span><span id="Generator-759"><a href="#Generator-759"><span class="linenos"> 759</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> -</span><span id="Generator-760"><a href="#Generator-760"><span class="linenos"> 760</span></a> <span class="n">with_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-761"><a href="#Generator-761"><span class="linenos"> 761</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> -</span><span id="Generator-762"><a href="#Generator-762"><span class="linenos"> 762</span></a> <span class="n">root_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-753"><a href="#Generator-753"><span class="linenos"> 753</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator-754"><a href="#Generator-754"><span class="linenos"> 754</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> +</span><span id="Generator-755"><a href="#Generator-755"><span class="linenos"> 755</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> +</span><span id="Generator-756"><a href="#Generator-756"><span class="linenos"> 756</span></a> <span class="n">with_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-757"><a href="#Generator-757"><span class="linenos"> 757</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> +</span><span id="Generator-758"><a href="#Generator-758"><span class="linenos"> 758</span></a> <span class="n">root_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-759"><a href="#Generator-759"><span class="linenos"> 759</span></a> +</span><span id="Generator-760"><a href="#Generator-760"><span class="linenos"> 760</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">root_properties</span><span class="p">(</span> +</span><span id="Generator-761"><a href="#Generator-761"><span class="linenos"> 761</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">root_properties</span><span class="p">)</span> +</span><span id="Generator-762"><a href="#Generator-762"><span class="linenos"> 762</span></a> <span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_properties</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">with_properties</span><span class="p">))</span> </span><span id="Generator-763"><a href="#Generator-763"><span class="linenos"> 763</span></a> -</span><span id="Generator-764"><a href="#Generator-764"><span class="linenos"> 764</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">root_properties</span><span class="p">(</span> -</span><span id="Generator-765"><a href="#Generator-765"><span class="linenos"> 765</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">root_properties</span><span class="p">)</span> -</span><span id="Generator-766"><a href="#Generator-766"><span class="linenos"> 766</span></a> <span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_properties</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">with_properties</span><span class="p">))</span> -</span><span id="Generator-767"><a href="#Generator-767"><span class="linenos"> 767</span></a> -</span><span id="Generator-768"><a href="#Generator-768"><span class="linenos"> 768</span></a> <span class="k">def</span> <span class="nf">root_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-769"><a href="#Generator-769"><span class="linenos"> 769</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator-770"><a href="#Generator-770"><span class="linenos"> 770</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">properties</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</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="Generator-771"><a href="#Generator-771"><span class="linenos"> 771</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator-772"><a href="#Generator-772"><span class="linenos"> 772</span></a> -</span><span id="Generator-773"><a href="#Generator-773"><span class="linenos"> 773</span></a> <span class="k">def</span> <span class="nf">properties</span><span class="p">(</span> -</span><span id="Generator-774"><a href="#Generator-774"><span class="linenos"> 774</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator-775"><a href="#Generator-775"><span class="linenos"> 775</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">,</span> -</span><span id="Generator-776"><a href="#Generator-776"><span class="linenos"> 776</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator-777"><a href="#Generator-777"><span class="linenos"> 777</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> -</span><span id="Generator-778"><a href="#Generator-778"><span class="linenos"> 778</span></a> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator-779"><a href="#Generator-779"><span class="linenos"> 779</span></a> <span class="n">wrapped</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Generator-780"><a href="#Generator-780"><span class="linenos"> 780</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-781"><a href="#Generator-781"><span class="linenos"> 781</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator-782"><a href="#Generator-782"><span class="linenos"> 782</span></a> <span class="n">expressions</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">properties</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator-783"><a href="#Generator-783"><span class="linenos"> 783</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">wrapped</span> <span class="k">else</span> <span class="n">expressions</span> -</span><span id="Generator-784"><a href="#Generator-784"><span class="linenos"> 784</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="s1">' '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-785"><a href="#Generator-785"><span class="linenos"> 785</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator-786"><a href="#Generator-786"><span class="linenos"> 786</span></a> -</span><span id="Generator-787"><a href="#Generator-787"><span class="linenos"> 787</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-788"><a href="#Generator-788"><span class="linenos"> 788</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">))</span> -</span><span id="Generator-789"><a href="#Generator-789"><span class="linenos"> 789</span></a> -</span><span id="Generator-790"><a href="#Generator-790"><span class="linenos"> 790</span></a> <span class="k">def</span> <span class="nf">locate_properties</span><span class="p">(</span> -</span><span id="Generator-791"><a href="#Generator-791"><span class="linenos"> 791</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span> -</span><span id="Generator-792"><a href="#Generator-792"><span class="linenos"> 792</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]:</span> -</span><span id="Generator-793"><a href="#Generator-793"><span class="linenos"> 793</span></a> <span class="n">properties_locs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Generator-794"><a href="#Generator-794"><span class="linenos"> 794</span></a> <span class="n">key</span><span class="p">:</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span> -</span><span id="Generator-795"><a href="#Generator-795"><span class="linenos"> 795</span></a> <span class="p">}</span> -</span><span id="Generator-796"><a href="#Generator-796"><span class="linenos"> 796</span></a> -</span><span id="Generator-797"><a href="#Generator-797"><span class="linenos"> 797</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator-798"><a href="#Generator-798"><span class="linenos"> 798</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> -</span><span id="Generator-799"><a href="#Generator-799"><span class="linenos"> 799</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">:</span> -</span><span id="Generator-800"><a href="#Generator-800"><span class="linenos"> 800</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-801"><a href="#Generator-801"><span class="linenos"> 801</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">:</span> -</span><span id="Generator-802"><a href="#Generator-802"><span class="linenos"> 802</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-803"><a href="#Generator-803"><span class="linenos"> 803</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> -</span><span id="Generator-804"><a href="#Generator-804"><span class="linenos"> 804</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-805"><a href="#Generator-805"><span class="linenos"> 805</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> -</span><span id="Generator-806"><a href="#Generator-806"><span class="linenos"> 806</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-807"><a href="#Generator-807"><span class="linenos"> 807</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">:</span> -</span><span id="Generator-808"><a href="#Generator-808"><span class="linenos"> 808</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-809"><a href="#Generator-809"><span class="linenos"> 809</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">:</span> -</span><span id="Generator-810"><a href="#Generator-810"><span class="linenos"> 810</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-811"><a href="#Generator-811"><span class="linenos"> 811</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">:</span> -</span><span id="Generator-812"><a href="#Generator-812"><span class="linenos"> 812</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator-813"><a href="#Generator-813"><span class="linenos"> 813</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">:</span> -</span><span id="Generator-814"><a href="#Generator-814"><span class="linenos"> 814</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 property </span><span class="si">{</span><span class="n">p</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-815"><a href="#Generator-815"><span class="linenos"> 815</span></a> -</span><span id="Generator-816"><a href="#Generator-816"><span class="linenos"> 816</span></a> <span class="k">return</span> <span class="n">properties_locs</span> -</span><span id="Generator-817"><a href="#Generator-817"><span class="linenos"> 817</span></a> -</span><span id="Generator-818"><a href="#Generator-818"><span class="linenos"> 818</span></a> <span class="k">def</span> <span class="nf">property_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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-819"><a href="#Generator-819"><span class="linenos"> 819</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span> -</span><span id="Generator-820"><a href="#Generator-820"><span class="linenos"> 820</span></a> <span class="k">if</span> <span class="n">property_cls</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> -</span><span id="Generator-821"><a href="#Generator-821"><span class="linenos"> 821</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-764"><a href="#Generator-764"><span class="linenos"> 764</span></a> <span class="k">def</span> <span class="nf">root_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-765"><a href="#Generator-765"><span class="linenos"> 765</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator-766"><a href="#Generator-766"><span class="linenos"> 766</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">properties</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</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="Generator-767"><a href="#Generator-767"><span class="linenos"> 767</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator-768"><a href="#Generator-768"><span class="linenos"> 768</span></a> +</span><span id="Generator-769"><a href="#Generator-769"><span class="linenos"> 769</span></a> <span class="k">def</span> <span class="nf">properties</span><span class="p">(</span> +</span><span id="Generator-770"><a href="#Generator-770"><span class="linenos"> 770</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator-771"><a href="#Generator-771"><span class="linenos"> 771</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">,</span> +</span><span id="Generator-772"><a href="#Generator-772"><span class="linenos"> 772</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator-773"><a href="#Generator-773"><span class="linenos"> 773</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> +</span><span id="Generator-774"><a href="#Generator-774"><span class="linenos"> 774</span></a> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator-775"><a href="#Generator-775"><span class="linenos"> 775</span></a> <span class="n">wrapped</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Generator-776"><a href="#Generator-776"><span class="linenos"> 776</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-777"><a href="#Generator-777"><span class="linenos"> 777</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator-778"><a href="#Generator-778"><span class="linenos"> 778</span></a> <span class="n">expressions</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">properties</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator-779"><a href="#Generator-779"><span class="linenos"> 779</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">wrapped</span> <span class="k">else</span> <span class="n">expressions</span> +</span><span id="Generator-780"><a href="#Generator-780"><span class="linenos"> 780</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="s1">' '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-781"><a href="#Generator-781"><span class="linenos"> 781</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator-782"><a href="#Generator-782"><span class="linenos"> 782</span></a> +</span><span id="Generator-783"><a href="#Generator-783"><span class="linenos"> 783</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-784"><a href="#Generator-784"><span class="linenos"> 784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">))</span> +</span><span id="Generator-785"><a href="#Generator-785"><span class="linenos"> 785</span></a> +</span><span id="Generator-786"><a href="#Generator-786"><span class="linenos"> 786</span></a> <span class="k">def</span> <span class="nf">locate_properties</span><span class="p">(</span> +</span><span id="Generator-787"><a href="#Generator-787"><span class="linenos"> 787</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span> +</span><span id="Generator-788"><a href="#Generator-788"><span class="linenos"> 788</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]:</span> +</span><span id="Generator-789"><a href="#Generator-789"><span class="linenos"> 789</span></a> <span class="n">properties_locs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Generator-790"><a href="#Generator-790"><span class="linenos"> 790</span></a> <span class="n">key</span><span class="p">:</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span> +</span><span id="Generator-791"><a href="#Generator-791"><span class="linenos"> 791</span></a> <span class="p">}</span> +</span><span id="Generator-792"><a href="#Generator-792"><span class="linenos"> 792</span></a> +</span><span id="Generator-793"><a href="#Generator-793"><span class="linenos"> 793</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator-794"><a href="#Generator-794"><span class="linenos"> 794</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> +</span><span id="Generator-795"><a href="#Generator-795"><span class="linenos"> 795</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">:</span> +</span><span id="Generator-796"><a href="#Generator-796"><span class="linenos"> 796</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-797"><a href="#Generator-797"><span class="linenos"> 797</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">:</span> +</span><span id="Generator-798"><a href="#Generator-798"><span class="linenos"> 798</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-799"><a href="#Generator-799"><span class="linenos"> 799</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> +</span><span id="Generator-800"><a href="#Generator-800"><span class="linenos"> 800</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-801"><a href="#Generator-801"><span class="linenos"> 801</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> +</span><span id="Generator-802"><a href="#Generator-802"><span class="linenos"> 802</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-803"><a href="#Generator-803"><span class="linenos"> 803</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">:</span> +</span><span id="Generator-804"><a href="#Generator-804"><span class="linenos"> 804</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-805"><a href="#Generator-805"><span class="linenos"> 805</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">:</span> +</span><span id="Generator-806"><a href="#Generator-806"><span class="linenos"> 806</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-807"><a href="#Generator-807"><span class="linenos"> 807</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">:</span> +</span><span id="Generator-808"><a href="#Generator-808"><span class="linenos"> 808</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator-809"><a href="#Generator-809"><span class="linenos"> 809</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">:</span> +</span><span id="Generator-810"><a href="#Generator-810"><span class="linenos"> 810</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 property </span><span class="si">{</span><span class="n">p</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-811"><a href="#Generator-811"><span class="linenos"> 811</span></a> +</span><span id="Generator-812"><a href="#Generator-812"><span class="linenos"> 812</span></a> <span class="k">return</span> <span class="n">properties_locs</span> +</span><span id="Generator-813"><a href="#Generator-813"><span class="linenos"> 813</span></a> +</span><span id="Generator-814"><a href="#Generator-814"><span class="linenos"> 814</span></a> <span class="k">def</span> <span class="nf">property_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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-815"><a href="#Generator-815"><span class="linenos"> 815</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span> +</span><span id="Generator-816"><a href="#Generator-816"><span class="linenos"> 816</span></a> <span class="k">if</span> <span class="n">property_cls</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> +</span><span id="Generator-817"><a href="#Generator-817"><span class="linenos"> 817</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-818"><a href="#Generator-818"><span class="linenos"> 818</span></a> +</span><span id="Generator-819"><a href="#Generator-819"><span class="linenos"> 819</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">property_cls</span><span class="p">)</span> +</span><span id="Generator-820"><a href="#Generator-820"><span class="linenos"> 820</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> +</span><span id="Generator-821"><a href="#Generator-821"><span class="linenos"> 821</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="Generator-822"><a href="#Generator-822"><span class="linenos"> 822</span></a> -</span><span id="Generator-823"><a href="#Generator-823"><span class="linenos"> 823</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">property_cls</span><span class="p">)</span> -</span><span id="Generator-824"><a href="#Generator-824"><span class="linenos"> 824</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> -</span><span id="Generator-825"><a href="#Generator-825"><span class="linenos"> 825</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-826"><a href="#Generator-826"><span class="linenos"> 826</span></a> -</span><span id="Generator-827"><a href="#Generator-827"><span class="linenos"> 827</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="Generator-828"><a href="#Generator-828"><span class="linenos"> 828</span></a> -</span><span id="Generator-829"><a href="#Generator-829"><span class="linenos"> 829</span></a> <span class="k">def</span> <span class="nf">likeproperty_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">LikeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-830"><a href="#Generator-830"><span class="linenos"> 830</span></a> <span class="n">options</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator-831"><a href="#Generator-831"><span class="linenos"> 831</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-832"><a href="#Generator-832"><span class="linenos"> 832</span></a> <span class="k">return</span> <span class="sa">f</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-833"><a href="#Generator-833"><span class="linenos"> 833</span></a> -</span><span id="Generator-834"><a href="#Generator-834"><span class="linenos"> 834</span></a> <span class="k">def</span> <span class="nf">fallbackproperty_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">FallbackProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-835"><a href="#Generator-835"><span class="linenos"> 835</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-836"><a href="#Generator-836"><span class="linenos"> 836</span></a> <span class="n">protection</span> <span class="o">=</span> <span class="s2">" PROTECTION"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"protection"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-837"><a href="#Generator-837"><span class="linenos"> 837</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}</span><span class="s2">FALLBACK</span><span class="si">{</span><span class="n">protection</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-838"><a href="#Generator-838"><span class="linenos"> 838</span></a> -</span><span id="Generator-839"><a href="#Generator-839"><span class="linenos"> 839</span></a> <span class="k">def</span> <span class="nf">journalproperty_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">JournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-840"><a href="#Generator-840"><span class="linenos"> 840</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-841"><a href="#Generator-841"><span class="linenos"> 841</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-842"><a href="#Generator-842"><span class="linenos"> 842</span></a> <span class="n">before</span> <span class="o">=</span> <span class="s2">"BEFORE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"before"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-843"><a href="#Generator-843"><span class="linenos"> 843</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">before</span><span class="si">}</span><span class="s2">JOURNAL"</span> -</span><span id="Generator-844"><a href="#Generator-844"><span class="linenos"> 844</span></a> -</span><span id="Generator-845"><a href="#Generator-845"><span class="linenos"> 845</span></a> <span class="k">def</span> <span class="nf">freespaceproperty_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">FreespaceProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-846"><a href="#Generator-846"><span class="linenos"> 846</span></a> <span class="n">freespace</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">"this"</span><span class="p">)</span> -</span><span id="Generator-847"><a href="#Generator-847"><span class="linenos"> 847</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-848"><a href="#Generator-848"><span class="linenos"> 848</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FREESPACE=</span><span class="si">{</span><span class="n">freespace</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-849"><a href="#Generator-849"><span class="linenos"> 849</span></a> -</span><span id="Generator-850"><a href="#Generator-850"><span class="linenos"> 850</span></a> <span class="k">def</span> <span class="nf">afterjournalproperty_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">AfterJournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-851"><a href="#Generator-851"><span class="linenos"> 851</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-852"><a href="#Generator-852"><span class="linenos"> 852</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-853"><a href="#Generator-853"><span class="linenos"> 853</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-854"><a href="#Generator-854"><span class="linenos"> 854</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">"local"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-855"><a href="#Generator-855"><span class="linenos"> 855</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"NOT LOCAL "</span> -</span><span id="Generator-856"><a href="#Generator-856"><span class="linenos"> 856</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">local</span><span class="si">}</span><span class="s2">AFTER JOURNAL"</span> -</span><span id="Generator-857"><a href="#Generator-857"><span class="linenos"> 857</span></a> -</span><span id="Generator-858"><a href="#Generator-858"><span class="linenos"> 858</span></a> <span class="k">def</span> <span class="nf">checksumproperty_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">ChecksumProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-859"><a href="#Generator-859"><span class="linenos"> 859</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">"default"</span><span class="p">):</span> -</span><span id="Generator-860"><a href="#Generator-860"><span class="linenos"> 860</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="Generator-861"><a href="#Generator-861"><span class="linenos"> 861</span></a> <span class="k">elif</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">"on"</span><span class="p">):</span> -</span><span id="Generator-862"><a href="#Generator-862"><span class="linenos"> 862</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ON"</span> -</span><span id="Generator-863"><a href="#Generator-863"><span class="linenos"> 863</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-864"><a href="#Generator-864"><span class="linenos"> 864</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"OFF"</span> -</span><span id="Generator-865"><a href="#Generator-865"><span class="linenos"> 865</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECKSUM=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-866"><a href="#Generator-866"><span class="linenos"> 866</span></a> -</span><span id="Generator-867"><a href="#Generator-867"><span class="linenos"> 867</span></a> <span class="k">def</span> <span class="nf">mergeblockratioproperty_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">MergeBlockRatioProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-868"><a href="#Generator-868"><span class="linenos"> 868</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">"no"</span><span class="p">):</span> -</span><span id="Generator-869"><a href="#Generator-869"><span class="linenos"> 869</span></a> <span class="k">return</span> <span class="s2">"NO MERGEBLOCKRATIO"</span> -</span><span id="Generator-870"><a href="#Generator-870"><span class="linenos"> 870</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">"default"</span><span class="p">):</span> -</span><span id="Generator-871"><a href="#Generator-871"><span class="linenos"> 871</span></a> <span class="k">return</span> <span class="s2">"DEFAULT MERGEBLOCKRATIO"</span> -</span><span id="Generator-872"><a href="#Generator-872"><span class="linenos"> 872</span></a> -</span><span id="Generator-873"><a href="#Generator-873"><span class="linenos"> 873</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-874"><a href="#Generator-874"><span class="linenos"> 874</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGEBLOCKRATIO=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-875"><a href="#Generator-875"><span class="linenos"> 875</span></a> -</span><span id="Generator-876"><a href="#Generator-876"><span class="linenos"> 876</span></a> <span class="k">def</span> <span class="nf">datablocksizeproperty_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">DataBlocksizeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-877"><a href="#Generator-877"><span class="linenos"> 877</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator-878"><a href="#Generator-878"><span class="linenos"> 878</span></a> <span class="nb">min</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">"min"</span><span class="p">)</span> -</span><span id="Generator-879"><a href="#Generator-879"><span class="linenos"> 879</span></a> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">min</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-880"><a href="#Generator-880"><span class="linenos"> 880</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator-881"><a href="#Generator-881"><span class="linenos"> 881</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="Generator-882"><a href="#Generator-882"><span class="linenos"> 882</span></a> <span class="k">elif</span> <span class="nb">min</span><span class="p">:</span> -</span><span id="Generator-883"><a href="#Generator-883"><span class="linenos"> 883</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MINIMUM"</span> -</span><span id="Generator-884"><a href="#Generator-884"><span class="linenos"> 884</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-885"><a href="#Generator-885"><span class="linenos"> 885</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MAXIMUM"</span> -</span><span id="Generator-886"><a href="#Generator-886"><span class="linenos"> 886</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2"> DATABLOCKSIZE"</span> -</span><span id="Generator-887"><a href="#Generator-887"><span class="linenos"> 887</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-888"><a href="#Generator-888"><span class="linenos"> 888</span></a> <span class="n">units</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">"units"</span><span class="p">)</span> -</span><span id="Generator-889"><a href="#Generator-889"><span class="linenos"> 889</span></a> <span class="n">units</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">units</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-890"><a href="#Generator-890"><span class="linenos"> 890</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATABLOCKSIZE=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'size'</span><span class="p">)</span><span class="si">}{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-891"><a href="#Generator-891"><span class="linenos"> 891</span></a> -</span><span id="Generator-892"><a href="#Generator-892"><span class="linenos"> 892</span></a> <span class="k">def</span> <span class="nf">blockcompressionproperty_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">BlockCompressionProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-893"><a href="#Generator-893"><span class="linenos"> 893</span></a> <span class="n">autotemp</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">"autotemp"</span><span class="p">)</span> -</span><span id="Generator-894"><a href="#Generator-894"><span class="linenos"> 894</span></a> <span class="n">always</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">"always"</span><span class="p">)</span> -</span><span id="Generator-895"><a href="#Generator-895"><span class="linenos"> 895</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator-896"><a href="#Generator-896"><span class="linenos"> 896</span></a> <span class="n">manual</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">"manual"</span><span class="p">)</span> -</span><span id="Generator-897"><a href="#Generator-897"><span class="linenos"> 897</span></a> <span class="n">never</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">"never"</span><span class="p">)</span> -</span><span id="Generator-898"><a href="#Generator-898"><span class="linenos"> 898</span></a> -</span><span id="Generator-899"><a href="#Generator-899"><span class="linenos"> 899</span></a> <span class="k">if</span> <span class="n">autotemp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-900"><a href="#Generator-900"><span class="linenos"> 900</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AUTOTEMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">autotemp</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-901"><a href="#Generator-901"><span class="linenos"> 901</span></a> <span class="k">elif</span> <span class="n">always</span><span class="p">:</span> -</span><span id="Generator-902"><a href="#Generator-902"><span class="linenos"> 902</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ALWAYS"</span> -</span><span id="Generator-903"><a href="#Generator-903"><span class="linenos"> 903</span></a> <span class="k">elif</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator-904"><a href="#Generator-904"><span class="linenos"> 904</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="Generator-905"><a href="#Generator-905"><span class="linenos"> 905</span></a> <span class="k">elif</span> <span class="n">manual</span><span class="p">:</span> -</span><span id="Generator-906"><a href="#Generator-906"><span class="linenos"> 906</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MANUAL"</span> -</span><span id="Generator-907"><a href="#Generator-907"><span class="linenos"> 907</span></a> <span class="k">elif</span> <span class="n">never</span><span class="p">:</span> -</span><span id="Generator-908"><a href="#Generator-908"><span class="linenos"> 908</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"NEVER"</span> -</span><span id="Generator-909"><a href="#Generator-909"><span class="linenos"> 909</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BLOCKCOMPRESSION=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-910"><a href="#Generator-910"><span class="linenos"> 910</span></a> -</span><span id="Generator-911"><a href="#Generator-911"><span class="linenos"> 911</span></a> <span class="k">def</span> <span class="nf">isolatedloadingproperty_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">IsolatedLoadingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-912"><a href="#Generator-912"><span class="linenos"> 912</span></a> <span class="n">no</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">"no"</span><span class="p">)</span> -</span><span id="Generator-913"><a href="#Generator-913"><span class="linenos"> 913</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">" NO"</span> <span class="k">if</span> <span class="n">no</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-914"><a href="#Generator-914"><span class="linenos"> 914</span></a> <span class="n">concurrent</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">"concurrent"</span><span class="p">)</span> -</span><span id="Generator-915"><a href="#Generator-915"><span class="linenos"> 915</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="s2">" CONCURRENT"</span> <span class="k">if</span> <span class="n">concurrent</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-916"><a href="#Generator-916"><span class="linenos"> 916</span></a> -</span><span id="Generator-917"><a href="#Generator-917"><span class="linenos"> 917</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-918"><a href="#Generator-918"><span class="linenos"> 918</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">"for_all"</span><span class="p">):</span> -</span><span id="Generator-919"><a href="#Generator-919"><span class="linenos"> 919</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR ALL"</span> -</span><span id="Generator-920"><a href="#Generator-920"><span class="linenos"> 920</span></a> <span class="k">elif</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">"for_insert"</span><span class="p">):</span> -</span><span id="Generator-921"><a href="#Generator-921"><span class="linenos"> 921</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR INSERT"</span> -</span><span id="Generator-922"><a href="#Generator-922"><span class="linenos"> 922</span></a> <span class="k">elif</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">"for_none"</span><span class="p">):</span> -</span><span id="Generator-923"><a href="#Generator-923"><span class="linenos"> 923</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR NONE"</span> -</span><span id="Generator-924"><a href="#Generator-924"><span class="linenos"> 924</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">concurrent</span><span class="si">}</span><span class="s2"> ISOLATED LOADING</span><span class="si">{</span><span class="n">for_</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-925"><a href="#Generator-925"><span class="linenos"> 925</span></a> -</span><span id="Generator-926"><a href="#Generator-926"><span class="linenos"> 926</span></a> <span class="k">def</span> <span class="nf">lockingproperty_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">LockingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-927"><a href="#Generator-927"><span class="linenos"> 927</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator-928"><a href="#Generator-928"><span class="linenos"> 928</span></a> <span class="n">this</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-929"><a href="#Generator-929"><span class="linenos"> 929</span></a> <span class="n">for_or_in</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">"for_or_in"</span><span class="p">)</span> -</span><span id="Generator-930"><a href="#Generator-930"><span class="linenos"> 930</span></a> <span class="n">lock_type</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">"lock_type"</span><span class="p">)</span> -</span><span id="Generator-931"><a href="#Generator-931"><span class="linenos"> 931</span></a> <span class="n">override</span> <span class="o">=</span> <span class="s2">" OVERRIDE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"override"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-932"><a href="#Generator-932"><span class="linenos"> 932</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOCKING </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">for_or_in</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}{</span><span class="n">override</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-933"><a href="#Generator-933"><span class="linenos"> 933</span></a> -</span><span id="Generator-934"><a href="#Generator-934"><span class="linenos"> 934</span></a> <span class="k">def</span> <span class="nf">withdataproperty_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">WithDataProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-935"><a href="#Generator-935"><span class="linenos"> 935</span></a> <span class="n">data_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'no'</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">DATA"</span> -</span><span id="Generator-936"><a href="#Generator-936"><span class="linenos"> 936</span></a> <span class="n">statistics</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">"statistics"</span><span class="p">)</span> -</span><span id="Generator-937"><a href="#Generator-937"><span class="linenos"> 937</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-938"><a href="#Generator-938"><span class="linenos"> 938</span></a> <span class="k">if</span> <span class="n">statistics</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-939"><a href="#Generator-939"><span class="linenos"> 939</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">statistics</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">STATISTICS"</span> -</span><span id="Generator-940"><a href="#Generator-940"><span class="linenos"> 940</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data_sql</span><span class="si">}{</span><span class="n">statistics_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-941"><a href="#Generator-941"><span class="linenos"> 941</span></a> -</span><span id="Generator-942"><a href="#Generator-942"><span class="linenos"> 942</span></a> <span class="k">def</span> <span class="nf">insert_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">Insert</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-943"><a href="#Generator-943"><span class="linenos"> 943</span></a> <span class="n">overwrite</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">"overwrite"</span><span class="p">)</span> -</span><span id="Generator-944"><a href="#Generator-944"><span class="linenos"> 944</span></a> -</span><span id="Generator-945"><a href="#Generator-945"><span class="linenos"> 945</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">):</span> -</span><span id="Generator-946"><a href="#Generator-946"><span class="linenos"> 946</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> -</span><span id="Generator-947"><a href="#Generator-947"><span class="linenos"> 947</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-948"><a href="#Generator-948"><span class="linenos"> 948</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE TABLE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="Generator-823"><a href="#Generator-823"><span class="linenos"> 823</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="Generator-824"><a href="#Generator-824"><span class="linenos"> 824</span></a> +</span><span id="Generator-825"><a href="#Generator-825"><span class="linenos"> 825</span></a> <span class="k">def</span> <span class="nf">likeproperty_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">LikeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-826"><a href="#Generator-826"><span class="linenos"> 826</span></a> <span class="n">options</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator-827"><a href="#Generator-827"><span class="linenos"> 827</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-828"><a href="#Generator-828"><span class="linenos"> 828</span></a> <span class="k">return</span> <span class="sa">f</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-829"><a href="#Generator-829"><span class="linenos"> 829</span></a> +</span><span id="Generator-830"><a href="#Generator-830"><span class="linenos"> 830</span></a> <span class="k">def</span> <span class="nf">fallbackproperty_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">FallbackProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-831"><a href="#Generator-831"><span class="linenos"> 831</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-832"><a href="#Generator-832"><span class="linenos"> 832</span></a> <span class="n">protection</span> <span class="o">=</span> <span class="s2">" PROTECTION"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"protection"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-833"><a href="#Generator-833"><span class="linenos"> 833</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}</span><span class="s2">FALLBACK</span><span class="si">{</span><span class="n">protection</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-834"><a href="#Generator-834"><span class="linenos"> 834</span></a> +</span><span id="Generator-835"><a href="#Generator-835"><span class="linenos"> 835</span></a> <span class="k">def</span> <span class="nf">journalproperty_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">JournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-836"><a href="#Generator-836"><span class="linenos"> 836</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-837"><a href="#Generator-837"><span class="linenos"> 837</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-838"><a href="#Generator-838"><span class="linenos"> 838</span></a> <span class="n">before</span> <span class="o">=</span> <span class="s2">"BEFORE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"before"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-839"><a href="#Generator-839"><span class="linenos"> 839</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">before</span><span class="si">}</span><span class="s2">JOURNAL"</span> +</span><span id="Generator-840"><a href="#Generator-840"><span class="linenos"> 840</span></a> +</span><span id="Generator-841"><a href="#Generator-841"><span class="linenos"> 841</span></a> <span class="k">def</span> <span class="nf">freespaceproperty_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">FreespaceProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-842"><a href="#Generator-842"><span class="linenos"> 842</span></a> <span class="n">freespace</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">"this"</span><span class="p">)</span> +</span><span id="Generator-843"><a href="#Generator-843"><span class="linenos"> 843</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-844"><a href="#Generator-844"><span class="linenos"> 844</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FREESPACE=</span><span class="si">{</span><span class="n">freespace</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-845"><a href="#Generator-845"><span class="linenos"> 845</span></a> +</span><span id="Generator-846"><a href="#Generator-846"><span class="linenos"> 846</span></a> <span class="k">def</span> <span class="nf">afterjournalproperty_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">AfterJournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-847"><a href="#Generator-847"><span class="linenos"> 847</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-848"><a href="#Generator-848"><span class="linenos"> 848</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-849"><a href="#Generator-849"><span class="linenos"> 849</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-850"><a href="#Generator-850"><span class="linenos"> 850</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">"local"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-851"><a href="#Generator-851"><span class="linenos"> 851</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"NOT LOCAL "</span> +</span><span id="Generator-852"><a href="#Generator-852"><span class="linenos"> 852</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">local</span><span class="si">}</span><span class="s2">AFTER JOURNAL"</span> +</span><span id="Generator-853"><a href="#Generator-853"><span class="linenos"> 853</span></a> +</span><span id="Generator-854"><a href="#Generator-854"><span class="linenos"> 854</span></a> <span class="k">def</span> <span class="nf">checksumproperty_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">ChecksumProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-855"><a href="#Generator-855"><span class="linenos"> 855</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">"default"</span><span class="p">):</span> +</span><span id="Generator-856"><a href="#Generator-856"><span class="linenos"> 856</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="Generator-857"><a href="#Generator-857"><span class="linenos"> 857</span></a> <span class="k">elif</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">"on"</span><span class="p">):</span> +</span><span id="Generator-858"><a href="#Generator-858"><span class="linenos"> 858</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ON"</span> +</span><span id="Generator-859"><a href="#Generator-859"><span class="linenos"> 859</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-860"><a href="#Generator-860"><span class="linenos"> 860</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"OFF"</span> +</span><span id="Generator-861"><a href="#Generator-861"><span class="linenos"> 861</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECKSUM=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-862"><a href="#Generator-862"><span class="linenos"> 862</span></a> +</span><span id="Generator-863"><a href="#Generator-863"><span class="linenos"> 863</span></a> <span class="k">def</span> <span class="nf">mergeblockratioproperty_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">MergeBlockRatioProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-864"><a href="#Generator-864"><span class="linenos"> 864</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">"no"</span><span class="p">):</span> +</span><span id="Generator-865"><a href="#Generator-865"><span class="linenos"> 865</span></a> <span class="k">return</span> <span class="s2">"NO MERGEBLOCKRATIO"</span> +</span><span id="Generator-866"><a href="#Generator-866"><span class="linenos"> 866</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">"default"</span><span class="p">):</span> +</span><span id="Generator-867"><a href="#Generator-867"><span class="linenos"> 867</span></a> <span class="k">return</span> <span class="s2">"DEFAULT MERGEBLOCKRATIO"</span> +</span><span id="Generator-868"><a href="#Generator-868"><span class="linenos"> 868</span></a> +</span><span id="Generator-869"><a href="#Generator-869"><span class="linenos"> 869</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-870"><a href="#Generator-870"><span class="linenos"> 870</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGEBLOCKRATIO=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-871"><a href="#Generator-871"><span class="linenos"> 871</span></a> +</span><span id="Generator-872"><a href="#Generator-872"><span class="linenos"> 872</span></a> <span class="k">def</span> <span class="nf">datablocksizeproperty_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">DataBlocksizeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-873"><a href="#Generator-873"><span class="linenos"> 873</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator-874"><a href="#Generator-874"><span class="linenos"> 874</span></a> <span class="nb">min</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">"min"</span><span class="p">)</span> +</span><span id="Generator-875"><a href="#Generator-875"><span class="linenos"> 875</span></a> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">min</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-876"><a href="#Generator-876"><span class="linenos"> 876</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator-877"><a href="#Generator-877"><span class="linenos"> 877</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="Generator-878"><a href="#Generator-878"><span class="linenos"> 878</span></a> <span class="k">elif</span> <span class="nb">min</span><span class="p">:</span> +</span><span id="Generator-879"><a href="#Generator-879"><span class="linenos"> 879</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MINIMUM"</span> +</span><span id="Generator-880"><a href="#Generator-880"><span class="linenos"> 880</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-881"><a href="#Generator-881"><span class="linenos"> 881</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MAXIMUM"</span> +</span><span id="Generator-882"><a href="#Generator-882"><span class="linenos"> 882</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2"> DATABLOCKSIZE"</span> +</span><span id="Generator-883"><a href="#Generator-883"><span class="linenos"> 883</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-884"><a href="#Generator-884"><span class="linenos"> 884</span></a> <span class="n">units</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">"units"</span><span class="p">)</span> +</span><span id="Generator-885"><a href="#Generator-885"><span class="linenos"> 885</span></a> <span class="n">units</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">units</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-886"><a href="#Generator-886"><span class="linenos"> 886</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATABLOCKSIZE=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'size'</span><span class="p">)</span><span class="si">}{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-887"><a href="#Generator-887"><span class="linenos"> 887</span></a> +</span><span id="Generator-888"><a href="#Generator-888"><span class="linenos"> 888</span></a> <span class="k">def</span> <span class="nf">blockcompressionproperty_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">BlockCompressionProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-889"><a href="#Generator-889"><span class="linenos"> 889</span></a> <span class="n">autotemp</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">"autotemp"</span><span class="p">)</span> +</span><span id="Generator-890"><a href="#Generator-890"><span class="linenos"> 890</span></a> <span class="n">always</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">"always"</span><span class="p">)</span> +</span><span id="Generator-891"><a href="#Generator-891"><span class="linenos"> 891</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator-892"><a href="#Generator-892"><span class="linenos"> 892</span></a> <span class="n">manual</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">"manual"</span><span class="p">)</span> +</span><span id="Generator-893"><a href="#Generator-893"><span class="linenos"> 893</span></a> <span class="n">never</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">"never"</span><span class="p">)</span> +</span><span id="Generator-894"><a href="#Generator-894"><span class="linenos"> 894</span></a> +</span><span id="Generator-895"><a href="#Generator-895"><span class="linenos"> 895</span></a> <span class="k">if</span> <span class="n">autotemp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-896"><a href="#Generator-896"><span class="linenos"> 896</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AUTOTEMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">autotemp</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-897"><a href="#Generator-897"><span class="linenos"> 897</span></a> <span class="k">elif</span> <span class="n">always</span><span class="p">:</span> +</span><span id="Generator-898"><a href="#Generator-898"><span class="linenos"> 898</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ALWAYS"</span> +</span><span id="Generator-899"><a href="#Generator-899"><span class="linenos"> 899</span></a> <span class="k">elif</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator-900"><a href="#Generator-900"><span class="linenos"> 900</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="Generator-901"><a href="#Generator-901"><span class="linenos"> 901</span></a> <span class="k">elif</span> <span class="n">manual</span><span class="p">:</span> +</span><span id="Generator-902"><a href="#Generator-902"><span class="linenos"> 902</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MANUAL"</span> +</span><span id="Generator-903"><a href="#Generator-903"><span class="linenos"> 903</span></a> <span class="k">elif</span> <span class="n">never</span><span class="p">:</span> +</span><span id="Generator-904"><a href="#Generator-904"><span class="linenos"> 904</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"NEVER"</span> +</span><span id="Generator-905"><a href="#Generator-905"><span class="linenos"> 905</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BLOCKCOMPRESSION=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-906"><a href="#Generator-906"><span class="linenos"> 906</span></a> +</span><span id="Generator-907"><a href="#Generator-907"><span class="linenos"> 907</span></a> <span class="k">def</span> <span class="nf">isolatedloadingproperty_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">IsolatedLoadingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-908"><a href="#Generator-908"><span class="linenos"> 908</span></a> <span class="n">no</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">"no"</span><span class="p">)</span> +</span><span id="Generator-909"><a href="#Generator-909"><span class="linenos"> 909</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">" NO"</span> <span class="k">if</span> <span class="n">no</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-910"><a href="#Generator-910"><span class="linenos"> 910</span></a> <span class="n">concurrent</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">"concurrent"</span><span class="p">)</span> +</span><span id="Generator-911"><a href="#Generator-911"><span class="linenos"> 911</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="s2">" CONCURRENT"</span> <span class="k">if</span> <span class="n">concurrent</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-912"><a href="#Generator-912"><span class="linenos"> 912</span></a> +</span><span id="Generator-913"><a href="#Generator-913"><span class="linenos"> 913</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-914"><a href="#Generator-914"><span class="linenos"> 914</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">"for_all"</span><span class="p">):</span> +</span><span id="Generator-915"><a href="#Generator-915"><span class="linenos"> 915</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR ALL"</span> +</span><span id="Generator-916"><a href="#Generator-916"><span class="linenos"> 916</span></a> <span class="k">elif</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">"for_insert"</span><span class="p">):</span> +</span><span id="Generator-917"><a href="#Generator-917"><span class="linenos"> 917</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR INSERT"</span> +</span><span id="Generator-918"><a href="#Generator-918"><span class="linenos"> 918</span></a> <span class="k">elif</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">"for_none"</span><span class="p">):</span> +</span><span id="Generator-919"><a href="#Generator-919"><span class="linenos"> 919</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR NONE"</span> +</span><span id="Generator-920"><a href="#Generator-920"><span class="linenos"> 920</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">concurrent</span><span class="si">}</span><span class="s2"> ISOLATED LOADING</span><span class="si">{</span><span class="n">for_</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-921"><a href="#Generator-921"><span class="linenos"> 921</span></a> +</span><span id="Generator-922"><a href="#Generator-922"><span class="linenos"> 922</span></a> <span class="k">def</span> <span class="nf">lockingproperty_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">LockingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-923"><a href="#Generator-923"><span class="linenos"> 923</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator-924"><a href="#Generator-924"><span class="linenos"> 924</span></a> <span class="n">this</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-925"><a href="#Generator-925"><span class="linenos"> 925</span></a> <span class="n">for_or_in</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">"for_or_in"</span><span class="p">)</span> +</span><span id="Generator-926"><a href="#Generator-926"><span class="linenos"> 926</span></a> <span class="n">lock_type</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">"lock_type"</span><span class="p">)</span> +</span><span id="Generator-927"><a href="#Generator-927"><span class="linenos"> 927</span></a> <span class="n">override</span> <span class="o">=</span> <span class="s2">" OVERRIDE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"override"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-928"><a href="#Generator-928"><span class="linenos"> 928</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOCKING </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">for_or_in</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}{</span><span class="n">override</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-929"><a href="#Generator-929"><span class="linenos"> 929</span></a> +</span><span id="Generator-930"><a href="#Generator-930"><span class="linenos"> 930</span></a> <span class="k">def</span> <span class="nf">withdataproperty_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">WithDataProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-931"><a href="#Generator-931"><span class="linenos"> 931</span></a> <span class="n">data_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'no'</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">DATA"</span> +</span><span id="Generator-932"><a href="#Generator-932"><span class="linenos"> 932</span></a> <span class="n">statistics</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">"statistics"</span><span class="p">)</span> +</span><span id="Generator-933"><a href="#Generator-933"><span class="linenos"> 933</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-934"><a href="#Generator-934"><span class="linenos"> 934</span></a> <span class="k">if</span> <span class="n">statistics</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-935"><a href="#Generator-935"><span class="linenos"> 935</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">statistics</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">STATISTICS"</span> +</span><span id="Generator-936"><a href="#Generator-936"><span class="linenos"> 936</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data_sql</span><span class="si">}{</span><span class="n">statistics_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-937"><a href="#Generator-937"><span class="linenos"> 937</span></a> +</span><span id="Generator-938"><a href="#Generator-938"><span class="linenos"> 938</span></a> <span class="k">def</span> <span class="nf">insert_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">Insert</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-939"><a href="#Generator-939"><span class="linenos"> 939</span></a> <span class="n">overwrite</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">"overwrite"</span><span class="p">)</span> +</span><span id="Generator-940"><a href="#Generator-940"><span class="linenos"> 940</span></a> +</span><span id="Generator-941"><a href="#Generator-941"><span class="linenos"> 941</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">):</span> +</span><span id="Generator-942"><a href="#Generator-942"><span class="linenos"> 942</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="Generator-943"><a href="#Generator-943"><span class="linenos"> 943</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-944"><a href="#Generator-944"><span class="linenos"> 944</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE TABLE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="Generator-945"><a href="#Generator-945"><span class="linenos"> 945</span></a> +</span><span id="Generator-946"><a href="#Generator-946"><span class="linenos"> 946</span></a> <span class="n">alternative</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">"alternative"</span><span class="p">)</span> +</span><span id="Generator-947"><a href="#Generator-947"><span class="linenos"> 947</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OR </span><span class="si">{</span><span class="n">alternative</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">alternative</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-948"><a href="#Generator-948"><span class="linenos"> 948</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</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">expression</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><span id="Generator-949"><a href="#Generator-949"><span class="linenos"> 949</span></a> -</span><span id="Generator-950"><a href="#Generator-950"><span class="linenos"> 950</span></a> <span class="n">alternative</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">"alternative"</span><span class="p">)</span> -</span><span id="Generator-951"><a href="#Generator-951"><span class="linenos"> 951</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OR </span><span class="si">{</span><span class="n">alternative</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">alternative</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-952"><a href="#Generator-952"><span class="linenos"> 952</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</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">expression</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><span id="Generator-953"><a href="#Generator-953"><span class="linenos"> 953</span></a> -</span><span id="Generator-954"><a href="#Generator-954"><span class="linenos"> 954</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-955"><a href="#Generator-955"><span class="linenos"> 955</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-956"><a href="#Generator-956"><span class="linenos"> 956</span></a> <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">"partition"</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"partition"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-957"><a href="#Generator-957"><span class="linenos"> 957</span></a> <span class="p">)</span> -</span><span id="Generator-958"><a href="#Generator-958"><span class="linenos"> 958</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-959"><a href="#Generator-959"><span class="linenos"> 959</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="Generator-960"><a href="#Generator-960"><span class="linenos"> 960</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span> <span class="k">if</span> <span class="n">partition_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-961"><a href="#Generator-961"><span class="linenos"> 961</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT</span><span class="si">{</span><span class="n">alternative</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">exists</span><span class="si">}{</span><span class="n">partition_sql</span><span class="si">}{</span><span class="n">sep</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-962"><a href="#Generator-962"><span class="linenos"> 962</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Generator-963"><a href="#Generator-963"><span class="linenos"> 963</span></a> -</span><span id="Generator-964"><a href="#Generator-964"><span class="linenos"> 964</span></a> <span class="k">def</span> <span class="nf">intersect_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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-965"><a href="#Generator-965"><span class="linenos"> 965</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="Generator-966"><a href="#Generator-966"><span class="linenos"> 966</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator-967"><a href="#Generator-967"><span class="linenos"> 967</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="Generator-968"><a href="#Generator-968"><span class="linenos"> 968</span></a> <span class="p">)</span> -</span><span id="Generator-969"><a href="#Generator-969"><span class="linenos"> 969</span></a> -</span><span id="Generator-970"><a href="#Generator-970"><span class="linenos"> 970</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-971"><a href="#Generator-971"><span class="linenos"> 971</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-972"><a href="#Generator-972"><span class="linenos"> 972</span></a> -</span><span id="Generator-973"><a href="#Generator-973"><span class="linenos"> 973</span></a> <span class="k">def</span> <span class="nf">introducer_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">Introducer</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-974"><a href="#Generator-974"><span class="linenos"> 974</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-975"><a href="#Generator-975"><span class="linenos"> 975</span></a> -</span><span id="Generator-976"><a href="#Generator-976"><span class="linenos"> 976</span></a> <span class="k">def</span> <span class="nf">pseudotype_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">PseudoType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-977"><a href="#Generator-977"><span class="linenos"> 977</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Generator-978"><a href="#Generator-978"><span class="linenos"> 978</span></a> -</span><span id="Generator-979"><a href="#Generator-979"><span class="linenos"> 979</span></a> <span class="k">def</span> <span class="nf">returning_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">Returning</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-980"><a href="#Generator-980"><span class="linenos"> 980</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'RETURNING'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-981"><a href="#Generator-981"><span class="linenos"> 981</span></a> -</span><span id="Generator-982"><a href="#Generator-982"><span class="linenos"> 982</span></a> <span class="k">def</span> <span class="nf">rowformatdelimitedproperty_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">RowFormatDelimitedProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-983"><a href="#Generator-983"><span class="linenos"> 983</span></a> <span class="n">fields</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">"fields"</span><span class="p">)</span> -</span><span id="Generator-984"><a href="#Generator-984"><span class="linenos"> 984</span></a> <span class="n">fields</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FIELDS TERMINATED BY </span><span class="si">{</span><span class="n">fields</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">fields</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-985"><a href="#Generator-985"><span class="linenos"> 985</span></a> <span class="n">escaped</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">"escaped"</span><span class="p">)</span> -</span><span id="Generator-986"><a href="#Generator-986"><span class="linenos"> 986</span></a> <span class="n">escaped</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ESCAPED BY </span><span class="si">{</span><span class="n">escaped</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">escaped</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-987"><a href="#Generator-987"><span class="linenos"> 987</span></a> <span class="n">items</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">"collection_items"</span><span class="p">)</span> -</span><span id="Generator-988"><a href="#Generator-988"><span class="linenos"> 988</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLECTION ITEMS TERMINATED BY </span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-989"><a href="#Generator-989"><span class="linenos"> 989</span></a> <span class="n">keys</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">"map_keys"</span><span class="p">)</span> -</span><span id="Generator-990"><a href="#Generator-990"><span class="linenos"> 990</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAP KEYS TERMINATED BY </span><span class="si">{</span><span class="n">keys</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-991"><a href="#Generator-991"><span class="linenos"> 991</span></a> <span class="n">lines</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">"lines"</span><span class="p">)</span> -</span><span id="Generator-992"><a href="#Generator-992"><span class="linenos"> 992</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LINES TERMINATED BY </span><span class="si">{</span><span class="n">lines</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">lines</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-993"><a href="#Generator-993"><span class="linenos"> 993</span></a> <span class="n">null</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">"null"</span><span class="p">)</span> -</span><span id="Generator-994"><a href="#Generator-994"><span class="linenos"> 994</span></a> <span class="n">null</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" NULL DEFINED AS </span><span class="si">{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">null</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-995"><a href="#Generator-995"><span class="linenos"> 995</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROW FORMAT DELIMITED</span><span class="si">{</span><span class="n">fields</span><span class="si">}{</span><span class="n">escaped</span><span class="si">}{</span><span class="n">items</span><span class="si">}{</span><span class="n">keys</span><span class="si">}{</span><span class="n">lines</span><span class="si">}{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-996"><a href="#Generator-996"><span class="linenos"> 996</span></a> -</span><span id="Generator-997"><a href="#Generator-997"><span class="linenos"> 997</span></a> <span class="k">def</span> <span class="nf">table_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">Table</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-998"><a href="#Generator-998"><span class="linenos"> 998</span></a> <span class="n">table</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator-999"><a href="#Generator-999"><span class="linenos"> 999</span></a> <span class="n">part</span> -</span><span id="Generator-1000"><a href="#Generator-1000"><span class="linenos">1000</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">[</span> -</span><span id="Generator-1001"><a href="#Generator-1001"><span class="linenos">1001</span></a> <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">"catalog"</span><span class="p">),</span> -</span><span id="Generator-1002"><a href="#Generator-1002"><span class="linenos">1002</span></a> <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">"db"</span><span class="p">),</span> -</span><span id="Generator-1003"><a href="#Generator-1003"><span class="linenos">1003</span></a> <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="Generator-1004"><a href="#Generator-1004"><span class="linenos">1004</span></a> <span class="p">]</span> -</span><span id="Generator-1005"><a href="#Generator-1005"><span class="linenos">1005</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="Generator-1006"><a href="#Generator-1006"><span class="linenos">1006</span></a> <span class="p">)</span> -</span><span id="Generator-1007"><a href="#Generator-1007"><span class="linenos">1007</span></a> -</span><span id="Generator-1008"><a href="#Generator-1008"><span class="linenos">1008</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1009"><a href="#Generator-1009"><span class="linenos">1009</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> -</span><span id="Generator-1010"><a href="#Generator-1010"><span class="linenos">1010</span></a> <span class="n">hints</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">"hints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">", "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1011"><a href="#Generator-1011"><span class="linenos">1011</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH (</span><span class="si">{</span><span class="n">hints</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">hints</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1012"><a href="#Generator-1012"><span class="linenos">1012</span></a> <span class="n">laterals</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">"laterals"</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="Generator-1013"><a href="#Generator-1013"><span class="linenos">1013</span></a> <span class="n">joins</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">"joins"</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="Generator-1014"><a href="#Generator-1014"><span class="linenos">1014</span></a> <span class="n">pivots</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">"pivots"</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="Generator-1015"><a href="#Generator-1015"><span class="linenos">1015</span></a> <span class="n">system_time</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">"system_time"</span><span class="p">)</span> -</span><span id="Generator-1016"><a href="#Generator-1016"><span class="linenos">1016</span></a> <span class="n">system_time</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'system_time'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">system_time</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1017"><a href="#Generator-1017"><span class="linenos">1017</span></a> -</span><span id="Generator-1018"><a href="#Generator-1018"><span class="linenos">1018</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">system_time</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">hints</span><span class="si">}{</span><span class="n">laterals</span><span class="si">}{</span><span class="n">joins</span><span class="si">}{</span><span class="n">pivots</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1019"><a href="#Generator-1019"><span class="linenos">1019</span></a> -</span><span id="Generator-1020"><a href="#Generator-1020"><span class="linenos">1020</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1021"><a href="#Generator-1021"><span class="linenos">1021</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="Generator-1022"><a href="#Generator-1022"><span class="linenos">1022</span></a> <span class="n">this</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> -</span><span id="Generator-1023"><a href="#Generator-1023"><span class="linenos">1023</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="s1">'alias'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1024"><a href="#Generator-1024"><span class="linenos">1024</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1025"><a href="#Generator-1025"><span class="linenos">1025</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1026"><a href="#Generator-1026"><span class="linenos">1026</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-1027"><a href="#Generator-1027"><span class="linenos">1027</span></a> <span class="n">method</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">"method"</span><span class="p">)</span> -</span><span id="Generator-1028"><a href="#Generator-1028"><span class="linenos">1028</span></a> <span class="n">method</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">method</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">method</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1029"><a href="#Generator-1029"><span class="linenos">1029</span></a> <span class="n">numerator</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">"bucket_numerator"</span><span class="p">)</span> -</span><span id="Generator-1030"><a href="#Generator-1030"><span class="linenos">1030</span></a> <span class="n">denominator</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">"bucket_denominator"</span><span class="p">)</span> -</span><span id="Generator-1031"><a href="#Generator-1031"><span class="linenos">1031</span></a> <span class="n">field</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">"bucket_field"</span><span class="p">)</span> -</span><span id="Generator-1032"><a href="#Generator-1032"><span class="linenos">1032</span></a> <span class="n">field</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">field</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1033"><a href="#Generator-1033"><span class="linenos">1033</span></a> <span class="n">bucket</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"BUCKET </span><span class="si">{</span><span class="n">numerator</span><span class="si">}</span><span class="s2"> OUT OF </span><span class="si">{</span><span class="n">denominator</span><span class="si">}{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">numerator</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1034"><a href="#Generator-1034"><span class="linenos">1034</span></a> <span class="n">percent</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">"percent"</span><span class="p">)</span> -</span><span id="Generator-1035"><a href="#Generator-1035"><span class="linenos">1035</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">percent</span><span class="si">}</span><span class="s2"> PERCENT"</span> <span class="k">if</span> <span class="n">percent</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1036"><a href="#Generator-1036"><span class="linenos">1036</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> -</span><span id="Generator-1037"><a href="#Generator-1037"><span class="linenos">1037</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rows</span><span class="si">}</span><span class="s2"> ROWS"</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1038"><a href="#Generator-1038"><span class="linenos">1038</span></a> <span class="n">size</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">"size"</span><span class="p">)</span> -</span><span id="Generator-1039"><a href="#Generator-1039"><span class="linenos">1039</span></a> <span class="n">seed</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">"seed"</span><span class="p">)</span> -</span><span id="Generator-1040"><a href="#Generator-1040"><span class="linenos">1040</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">seed_prefix</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">seed</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">seed</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1041"><a href="#Generator-1041"><span class="linenos">1041</span></a> <span class="n">kind</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">"kind"</span><span class="p">,</span> <span class="s2">"TABLESAMPLE"</span><span class="p">)</span> -</span><span id="Generator-1042"><a href="#Generator-1042"><span class="linenos">1042</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">method</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">bucket</span><span class="si">}{</span><span class="n">percent</span><span class="si">}{</span><span class="n">rows</span><span class="si">}{</span><span class="n">size</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">seed</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1043"><a href="#Generator-1043"><span class="linenos">1043</span></a> -</span><span id="Generator-1044"><a href="#Generator-1044"><span class="linenos">1044</span></a> <span class="k">def</span> <span class="nf">pivot_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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1045"><a href="#Generator-1045"><span class="linenos">1045</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1046"><a href="#Generator-1046"><span class="linenos">1046</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1047"><a href="#Generator-1047"><span class="linenos">1047</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> -</span><span id="Generator-1048"><a href="#Generator-1048"><span class="linenos">1048</span></a> <span class="n">unpivot</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">"unpivot"</span><span class="p">)</span> -</span><span id="Generator-1049"><a href="#Generator-1049"><span class="linenos">1049</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="s2">"UNPIVOT"</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="s2">"PIVOT"</span> -</span><span id="Generator-1050"><a href="#Generator-1050"><span class="linenos">1050</span></a> <span class="n">expressions</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">"expressions"</span><span class="p">)</span> -</span><span id="Generator-1051"><a href="#Generator-1051"><span class="linenos">1051</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> -</span><span id="Generator-1052"><a href="#Generator-1052"><span class="linenos">1052</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">direction</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2"> FOR </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1053"><a href="#Generator-1053"><span class="linenos">1053</span></a> -</span><span id="Generator-1054"><a href="#Generator-1054"><span class="linenos">1054</span></a> <span class="k">def</span> <span class="nf">tuple_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">Tuple</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1055"><a href="#Generator-1055"><span class="linenos">1055</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1056"><a href="#Generator-1056"><span class="linenos">1056</span></a> -</span><span id="Generator-1057"><a href="#Generator-1057"><span class="linenos">1057</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1058"><a href="#Generator-1058"><span class="linenos">1058</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1059"><a href="#Generator-1059"><span class="linenos">1059</span></a> <span class="n">set_sql</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="Generator-1060"><a href="#Generator-1060"><span class="linenos">1060</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="Generator-1061"><a href="#Generator-1061"><span class="linenos">1061</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Generator-1062"><a href="#Generator-1062"><span class="linenos">1062</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="Generator-1063"><a href="#Generator-1063"><span class="linenos">1063</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1064"><a href="#Generator-1064"><span class="linenos">1064</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Generator-1065"><a href="#Generator-1065"><span class="linenos">1065</span></a> -</span><span id="Generator-1066"><a href="#Generator-1066"><span class="linenos">1066</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1067"><a href="#Generator-1067"><span class="linenos">1067</span></a> <span class="n">args</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><span id="Generator-1068"><a href="#Generator-1068"><span class="linenos">1068</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1069"><a href="#Generator-1069"><span class="linenos">1069</span></a> <span class="n">values</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"VALUES</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">args</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1070"><a href="#Generator-1070"><span class="linenos">1070</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-1071"><a href="#Generator-1071"><span class="linenos">1071</span></a> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">values</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1072"><a href="#Generator-1072"><span class="linenos">1072</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">WRAP_DERIVED_VALUES</span> <span class="ow">and</span> <span class="p">(</span><span class="n">alias</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">))</span> -</span><span id="Generator-1073"><a href="#Generator-1073"><span class="linenos">1073</span></a> <span class="k">else</span> <span class="n">values</span> -</span><span id="Generator-1074"><a href="#Generator-1074"><span class="linenos">1074</span></a> <span class="p">)</span> -</span><span id="Generator-1075"><a href="#Generator-1075"><span class="linenos">1075</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">values</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">values</span> -</span><span id="Generator-1076"><a href="#Generator-1076"><span class="linenos">1076</span></a> -</span><span id="Generator-1077"><a href="#Generator-1077"><span class="linenos">1077</span></a> <span class="k">def</span> <span class="nf">var_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">Var</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1078"><a href="#Generator-1078"><span class="linenos">1078</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="Generator-1079"><a href="#Generator-1079"><span class="linenos">1079</span></a> -</span><span id="Generator-1080"><a href="#Generator-1080"><span class="linenos">1080</span></a> <span class="k">def</span> <span class="nf">into_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">Into</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1081"><a href="#Generator-1081"><span class="linenos">1081</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1082"><a href="#Generator-1082"><span class="linenos">1082</span></a> <span class="n">unlogged</span> <span class="o">=</span> <span class="s2">" UNLOGGED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unlogged"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1083"><a href="#Generator-1083"><span class="linenos">1083</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'INTO'</span><span class="p">)</span><span class="si">}{</span><span class="n">temporary</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">unlogged</span><span class="si">}</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">expression</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><span id="Generator-950"><a href="#Generator-950"><span class="linenos"> 950</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-951"><a href="#Generator-951"><span class="linenos"> 951</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-952"><a href="#Generator-952"><span class="linenos"> 952</span></a> <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">"partition"</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"partition"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-953"><a href="#Generator-953"><span class="linenos"> 953</span></a> <span class="p">)</span> +</span><span id="Generator-954"><a href="#Generator-954"><span class="linenos"> 954</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-955"><a href="#Generator-955"><span class="linenos"> 955</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="Generator-956"><a href="#Generator-956"><span class="linenos"> 956</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span> <span class="k">if</span> <span class="n">partition_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-957"><a href="#Generator-957"><span class="linenos"> 957</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT</span><span class="si">{</span><span class="n">alternative</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">exists</span><span class="si">}{</span><span class="n">partition_sql</span><span class="si">}{</span><span class="n">sep</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-958"><a href="#Generator-958"><span class="linenos"> 958</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-959"><a href="#Generator-959"><span class="linenos"> 959</span></a> +</span><span id="Generator-960"><a href="#Generator-960"><span class="linenos"> 960</span></a> <span class="k">def</span> <span class="nf">intersect_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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-961"><a href="#Generator-961"><span class="linenos"> 961</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="Generator-962"><a href="#Generator-962"><span class="linenos"> 962</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator-963"><a href="#Generator-963"><span class="linenos"> 963</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator-964"><a href="#Generator-964"><span class="linenos"> 964</span></a> <span class="p">)</span> +</span><span id="Generator-965"><a href="#Generator-965"><span class="linenos"> 965</span></a> +</span><span id="Generator-966"><a href="#Generator-966"><span class="linenos"> 966</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-967"><a href="#Generator-967"><span class="linenos"> 967</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-968"><a href="#Generator-968"><span class="linenos"> 968</span></a> +</span><span id="Generator-969"><a href="#Generator-969"><span class="linenos"> 969</span></a> <span class="k">def</span> <span class="nf">introducer_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">Introducer</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-970"><a href="#Generator-970"><span class="linenos"> 970</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-971"><a href="#Generator-971"><span class="linenos"> 971</span></a> +</span><span id="Generator-972"><a href="#Generator-972"><span class="linenos"> 972</span></a> <span class="k">def</span> <span class="nf">pseudotype_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">PseudoType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-973"><a href="#Generator-973"><span class="linenos"> 973</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Generator-974"><a href="#Generator-974"><span class="linenos"> 974</span></a> +</span><span id="Generator-975"><a href="#Generator-975"><span class="linenos"> 975</span></a> <span class="k">def</span> <span class="nf">returning_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">Returning</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-976"><a href="#Generator-976"><span class="linenos"> 976</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'RETURNING'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-977"><a href="#Generator-977"><span class="linenos"> 977</span></a> +</span><span id="Generator-978"><a href="#Generator-978"><span class="linenos"> 978</span></a> <span class="k">def</span> <span class="nf">rowformatdelimitedproperty_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">RowFormatDelimitedProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-979"><a href="#Generator-979"><span class="linenos"> 979</span></a> <span class="n">fields</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">"fields"</span><span class="p">)</span> +</span><span id="Generator-980"><a href="#Generator-980"><span class="linenos"> 980</span></a> <span class="n">fields</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FIELDS TERMINATED BY </span><span class="si">{</span><span class="n">fields</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">fields</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-981"><a href="#Generator-981"><span class="linenos"> 981</span></a> <span class="n">escaped</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">"escaped"</span><span class="p">)</span> +</span><span id="Generator-982"><a href="#Generator-982"><span class="linenos"> 982</span></a> <span class="n">escaped</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ESCAPED BY </span><span class="si">{</span><span class="n">escaped</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">escaped</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-983"><a href="#Generator-983"><span class="linenos"> 983</span></a> <span class="n">items</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">"collection_items"</span><span class="p">)</span> +</span><span id="Generator-984"><a href="#Generator-984"><span class="linenos"> 984</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLECTION ITEMS TERMINATED BY </span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-985"><a href="#Generator-985"><span class="linenos"> 985</span></a> <span class="n">keys</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">"map_keys"</span><span class="p">)</span> +</span><span id="Generator-986"><a href="#Generator-986"><span class="linenos"> 986</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAP KEYS TERMINATED BY </span><span class="si">{</span><span class="n">keys</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-987"><a href="#Generator-987"><span class="linenos"> 987</span></a> <span class="n">lines</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">"lines"</span><span class="p">)</span> +</span><span id="Generator-988"><a href="#Generator-988"><span class="linenos"> 988</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LINES TERMINATED BY </span><span class="si">{</span><span class="n">lines</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">lines</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-989"><a href="#Generator-989"><span class="linenos"> 989</span></a> <span class="n">null</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">"null"</span><span class="p">)</span> +</span><span id="Generator-990"><a href="#Generator-990"><span class="linenos"> 990</span></a> <span class="n">null</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" NULL DEFINED AS </span><span class="si">{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">null</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-991"><a href="#Generator-991"><span class="linenos"> 991</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROW FORMAT DELIMITED</span><span class="si">{</span><span class="n">fields</span><span class="si">}{</span><span class="n">escaped</span><span class="si">}{</span><span class="n">items</span><span class="si">}{</span><span class="n">keys</span><span class="si">}{</span><span class="n">lines</span><span class="si">}{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-992"><a href="#Generator-992"><span class="linenos"> 992</span></a> +</span><span id="Generator-993"><a href="#Generator-993"><span class="linenos"> 993</span></a> <span class="k">def</span> <span class="nf">table_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">Table</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-994"><a href="#Generator-994"><span class="linenos"> 994</span></a> <span class="n">table</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator-995"><a href="#Generator-995"><span class="linenos"> 995</span></a> <span class="n">part</span> +</span><span id="Generator-996"><a href="#Generator-996"><span class="linenos"> 996</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">[</span> +</span><span id="Generator-997"><a href="#Generator-997"><span class="linenos"> 997</span></a> <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">"catalog"</span><span class="p">),</span> +</span><span id="Generator-998"><a href="#Generator-998"><span class="linenos"> 998</span></a> <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">"db"</span><span class="p">),</span> +</span><span id="Generator-999"><a href="#Generator-999"><span class="linenos"> 999</span></a> <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="Generator-1000"><a href="#Generator-1000"><span class="linenos">1000</span></a> <span class="p">]</span> +</span><span id="Generator-1001"><a href="#Generator-1001"><span class="linenos">1001</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="Generator-1002"><a href="#Generator-1002"><span class="linenos">1002</span></a> <span class="p">)</span> +</span><span id="Generator-1003"><a href="#Generator-1003"><span class="linenos">1003</span></a> +</span><span id="Generator-1004"><a href="#Generator-1004"><span class="linenos">1004</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1005"><a href="#Generator-1005"><span class="linenos">1005</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> +</span><span id="Generator-1006"><a href="#Generator-1006"><span class="linenos">1006</span></a> <span class="n">hints</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">"hints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">", "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1007"><a href="#Generator-1007"><span class="linenos">1007</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH (</span><span class="si">{</span><span class="n">hints</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">hints</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1008"><a href="#Generator-1008"><span class="linenos">1008</span></a> <span class="n">laterals</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">"laterals"</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="Generator-1009"><a href="#Generator-1009"><span class="linenos">1009</span></a> <span class="n">joins</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">"joins"</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="Generator-1010"><a href="#Generator-1010"><span class="linenos">1010</span></a> <span class="n">pivots</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">"pivots"</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="Generator-1011"><a href="#Generator-1011"><span class="linenos">1011</span></a> <span class="n">system_time</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">"system_time"</span><span class="p">)</span> +</span><span id="Generator-1012"><a href="#Generator-1012"><span class="linenos">1012</span></a> <span class="n">system_time</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'system_time'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">system_time</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1013"><a href="#Generator-1013"><span class="linenos">1013</span></a> +</span><span id="Generator-1014"><a href="#Generator-1014"><span class="linenos">1014</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">system_time</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">hints</span><span class="si">}{</span><span class="n">laterals</span><span class="si">}{</span><span class="n">joins</span><span class="si">}{</span><span class="n">pivots</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1015"><a href="#Generator-1015"><span class="linenos">1015</span></a> +</span><span id="Generator-1016"><a href="#Generator-1016"><span class="linenos">1016</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1017"><a href="#Generator-1017"><span class="linenos">1017</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="Generator-1018"><a href="#Generator-1018"><span class="linenos">1018</span></a> <span class="n">this</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> +</span><span id="Generator-1019"><a href="#Generator-1019"><span class="linenos">1019</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="s1">'alias'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1020"><a href="#Generator-1020"><span class="linenos">1020</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1021"><a href="#Generator-1021"><span class="linenos">1021</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1022"><a href="#Generator-1022"><span class="linenos">1022</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-1023"><a href="#Generator-1023"><span class="linenos">1023</span></a> <span class="n">method</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">"method"</span><span class="p">)</span> +</span><span id="Generator-1024"><a href="#Generator-1024"><span class="linenos">1024</span></a> <span class="n">method</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">method</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">method</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1025"><a href="#Generator-1025"><span class="linenos">1025</span></a> <span class="n">numerator</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">"bucket_numerator"</span><span class="p">)</span> +</span><span id="Generator-1026"><a href="#Generator-1026"><span class="linenos">1026</span></a> <span class="n">denominator</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">"bucket_denominator"</span><span class="p">)</span> +</span><span id="Generator-1027"><a href="#Generator-1027"><span class="linenos">1027</span></a> <span class="n">field</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">"bucket_field"</span><span class="p">)</span> +</span><span id="Generator-1028"><a href="#Generator-1028"><span class="linenos">1028</span></a> <span class="n">field</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">field</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1029"><a href="#Generator-1029"><span class="linenos">1029</span></a> <span class="n">bucket</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"BUCKET </span><span class="si">{</span><span class="n">numerator</span><span class="si">}</span><span class="s2"> OUT OF </span><span class="si">{</span><span class="n">denominator</span><span class="si">}{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">numerator</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1030"><a href="#Generator-1030"><span class="linenos">1030</span></a> <span class="n">percent</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">"percent"</span><span class="p">)</span> +</span><span id="Generator-1031"><a href="#Generator-1031"><span class="linenos">1031</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">percent</span><span class="si">}</span><span class="s2"> PERCENT"</span> <span class="k">if</span> <span class="n">percent</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1032"><a href="#Generator-1032"><span class="linenos">1032</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> +</span><span id="Generator-1033"><a href="#Generator-1033"><span class="linenos">1033</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rows</span><span class="si">}</span><span class="s2"> ROWS"</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1034"><a href="#Generator-1034"><span class="linenos">1034</span></a> <span class="n">size</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">"size"</span><span class="p">)</span> +</span><span id="Generator-1035"><a href="#Generator-1035"><span class="linenos">1035</span></a> <span class="n">seed</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">"seed"</span><span class="p">)</span> +</span><span id="Generator-1036"><a href="#Generator-1036"><span class="linenos">1036</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">seed_prefix</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">seed</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">seed</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1037"><a href="#Generator-1037"><span class="linenos">1037</span></a> <span class="n">kind</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">"kind"</span><span class="p">,</span> <span class="s2">"TABLESAMPLE"</span><span class="p">)</span> +</span><span id="Generator-1038"><a href="#Generator-1038"><span class="linenos">1038</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">method</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">bucket</span><span class="si">}{</span><span class="n">percent</span><span class="si">}{</span><span class="n">rows</span><span class="si">}{</span><span class="n">size</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">seed</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1039"><a href="#Generator-1039"><span class="linenos">1039</span></a> +</span><span id="Generator-1040"><a href="#Generator-1040"><span class="linenos">1040</span></a> <span class="k">def</span> <span class="nf">pivot_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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1041"><a href="#Generator-1041"><span class="linenos">1041</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1042"><a href="#Generator-1042"><span class="linenos">1042</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1043"><a href="#Generator-1043"><span class="linenos">1043</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> +</span><span id="Generator-1044"><a href="#Generator-1044"><span class="linenos">1044</span></a> <span class="n">unpivot</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">"unpivot"</span><span class="p">)</span> +</span><span id="Generator-1045"><a href="#Generator-1045"><span class="linenos">1045</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="s2">"UNPIVOT"</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="s2">"PIVOT"</span> +</span><span id="Generator-1046"><a href="#Generator-1046"><span class="linenos">1046</span></a> <span class="n">expressions</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">"expressions"</span><span class="p">)</span> +</span><span id="Generator-1047"><a href="#Generator-1047"><span class="linenos">1047</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> +</span><span id="Generator-1048"><a href="#Generator-1048"><span class="linenos">1048</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">direction</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2"> FOR </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1049"><a href="#Generator-1049"><span class="linenos">1049</span></a> +</span><span id="Generator-1050"><a href="#Generator-1050"><span class="linenos">1050</span></a> <span class="k">def</span> <span class="nf">tuple_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">Tuple</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1051"><a href="#Generator-1051"><span class="linenos">1051</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1052"><a href="#Generator-1052"><span class="linenos">1052</span></a> +</span><span id="Generator-1053"><a href="#Generator-1053"><span class="linenos">1053</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1054"><a href="#Generator-1054"><span class="linenos">1054</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1055"><a href="#Generator-1055"><span class="linenos">1055</span></a> <span class="n">set_sql</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="Generator-1056"><a href="#Generator-1056"><span class="linenos">1056</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="Generator-1057"><a href="#Generator-1057"><span class="linenos">1057</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Generator-1058"><a href="#Generator-1058"><span class="linenos">1058</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="Generator-1059"><a href="#Generator-1059"><span class="linenos">1059</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1060"><a href="#Generator-1060"><span class="linenos">1060</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-1061"><a href="#Generator-1061"><span class="linenos">1061</span></a> +</span><span id="Generator-1062"><a href="#Generator-1062"><span class="linenos">1062</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1063"><a href="#Generator-1063"><span class="linenos">1063</span></a> <span class="n">args</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><span id="Generator-1064"><a href="#Generator-1064"><span class="linenos">1064</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1065"><a href="#Generator-1065"><span class="linenos">1065</span></a> <span class="n">values</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"VALUES</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">args</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1066"><a href="#Generator-1066"><span class="linenos">1066</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-1067"><a href="#Generator-1067"><span class="linenos">1067</span></a> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">values</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1068"><a href="#Generator-1068"><span class="linenos">1068</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">WRAP_DERIVED_VALUES</span> <span class="ow">and</span> <span class="p">(</span><span class="n">alias</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">))</span> +</span><span id="Generator-1069"><a href="#Generator-1069"><span class="linenos">1069</span></a> <span class="k">else</span> <span class="n">values</span> +</span><span id="Generator-1070"><a href="#Generator-1070"><span class="linenos">1070</span></a> <span class="p">)</span> +</span><span id="Generator-1071"><a href="#Generator-1071"><span class="linenos">1071</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">values</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">values</span> +</span><span id="Generator-1072"><a href="#Generator-1072"><span class="linenos">1072</span></a> +</span><span id="Generator-1073"><a href="#Generator-1073"><span class="linenos">1073</span></a> <span class="k">def</span> <span class="nf">var_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">Var</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1074"><a href="#Generator-1074"><span class="linenos">1074</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="Generator-1075"><a href="#Generator-1075"><span class="linenos">1075</span></a> +</span><span id="Generator-1076"><a href="#Generator-1076"><span class="linenos">1076</span></a> <span class="k">def</span> <span class="nf">into_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">Into</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1077"><a href="#Generator-1077"><span class="linenos">1077</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1078"><a href="#Generator-1078"><span class="linenos">1078</span></a> <span class="n">unlogged</span> <span class="o">=</span> <span class="s2">" UNLOGGED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unlogged"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1079"><a href="#Generator-1079"><span class="linenos">1079</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'INTO'</span><span class="p">)</span><span class="si">}{</span><span class="n">temporary</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">unlogged</span><span class="si">}</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">expression</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><span id="Generator-1080"><a href="#Generator-1080"><span class="linenos">1080</span></a> +</span><span id="Generator-1081"><a href="#Generator-1081"><span class="linenos">1081</span></a> <span class="k">def</span> <span class="nf">from_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">From</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1082"><a href="#Generator-1082"><span class="linenos">1082</span></a> <span class="n">expressions</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="Generator-1083"><a href="#Generator-1083"><span class="linenos">1083</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FROM'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1084"><a href="#Generator-1084"><span class="linenos">1084</span></a> -</span><span id="Generator-1085"><a href="#Generator-1085"><span class="linenos">1085</span></a> <span class="k">def</span> <span class="nf">from_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">From</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1086"><a href="#Generator-1086"><span class="linenos">1086</span></a> <span class="n">expressions</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="Generator-1087"><a href="#Generator-1087"><span class="linenos">1087</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FROM'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1088"><a href="#Generator-1088"><span class="linenos">1088</span></a> -</span><span id="Generator-1089"><a href="#Generator-1089"><span class="linenos">1089</span></a> <span class="k">def</span> <span class="nf">group_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">Group</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1090"><a href="#Generator-1090"><span class="linenos">1090</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"GROUP BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1091"><a href="#Generator-1091"><span class="linenos">1091</span></a> <span class="n">grouping_sets</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">"grouping_sets"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator-1092"><a href="#Generator-1092"><span class="linenos">1092</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-1093"><a href="#Generator-1093"><span class="linenos">1093</span></a> <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">seg</span><span class="p">(</span><span class="s1">'GROUPING SETS'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">grouping_sets</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1094"><a href="#Generator-1094"><span class="linenos">1094</span></a> <span class="p">)</span> -</span><span id="Generator-1095"><a href="#Generator-1095"><span class="linenos">1095</span></a> -</span><span id="Generator-1096"><a href="#Generator-1096"><span class="linenos">1096</span></a> <span class="n">cube</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">"cube"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Generator-1097"><a href="#Generator-1097"><span class="linenos">1097</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Generator-1098"><a href="#Generator-1098"><span class="linenos">1098</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1099"><a href="#Generator-1099"><span class="linenos">1099</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1100"><a href="#Generator-1100"><span class="linenos">1100</span></a> <span class="n">cube_sql</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">"cube"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator-1101"><a href="#Generator-1101"><span class="linenos">1101</span></a> <span class="n">cube_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">cube_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">cube_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1102"><a href="#Generator-1102"><span class="linenos">1102</span></a> -</span><span id="Generator-1103"><a href="#Generator-1103"><span class="linenos">1103</span></a> <span class="n">rollup</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">"rollup"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Generator-1104"><a href="#Generator-1104"><span class="linenos">1104</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">rollup</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Generator-1105"><a href="#Generator-1105"><span class="linenos">1105</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1106"><a href="#Generator-1106"><span class="linenos">1106</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1107"><a href="#Generator-1107"><span class="linenos">1107</span></a> <span class="n">rollup_sql</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">"rollup"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator-1108"><a href="#Generator-1108"><span class="linenos">1108</span></a> <span class="n">rollup_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">rollup_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">rollup_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1109"><a href="#Generator-1109"><span class="linenos">1109</span></a> -</span><span id="Generator-1110"><a href="#Generator-1110"><span class="linenos">1110</span></a> <span class="n">groupings</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">,</span> <span class="n">cube_sql</span><span class="p">,</span> <span class="n">rollup_sql</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="Generator-1111"><a href="#Generator-1111"><span class="linenos">1111</span></a> -</span><span id="Generator-1112"><a href="#Generator-1112"><span class="linenos">1112</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">"expressions"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupings</span><span class="p">:</span> -</span><span id="Generator-1113"><a href="#Generator-1113"><span class="linenos">1113</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}</span><span class="s2">,"</span> -</span><span id="Generator-1114"><a href="#Generator-1114"><span class="linenos">1114</span></a> -</span><span id="Generator-1115"><a href="#Generator-1115"><span class="linenos">1115</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="n">groupings</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1085"><a href="#Generator-1085"><span class="linenos">1085</span></a> <span class="k">def</span> <span class="nf">group_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">Group</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1086"><a href="#Generator-1086"><span class="linenos">1086</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"GROUP BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1087"><a href="#Generator-1087"><span class="linenos">1087</span></a> <span class="n">grouping_sets</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">"grouping_sets"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator-1088"><a href="#Generator-1088"><span class="linenos">1088</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-1089"><a href="#Generator-1089"><span class="linenos">1089</span></a> <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">seg</span><span class="p">(</span><span class="s1">'GROUPING SETS'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">grouping_sets</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1090"><a href="#Generator-1090"><span class="linenos">1090</span></a> <span class="p">)</span> +</span><span id="Generator-1091"><a href="#Generator-1091"><span class="linenos">1091</span></a> +</span><span id="Generator-1092"><a href="#Generator-1092"><span class="linenos">1092</span></a> <span class="n">cube</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">"cube"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Generator-1093"><a href="#Generator-1093"><span class="linenos">1093</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Generator-1094"><a href="#Generator-1094"><span class="linenos">1094</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1095"><a href="#Generator-1095"><span class="linenos">1095</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1096"><a href="#Generator-1096"><span class="linenos">1096</span></a> <span class="n">cube_sql</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">"cube"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator-1097"><a href="#Generator-1097"><span class="linenos">1097</span></a> <span class="n">cube_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">cube_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">cube_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1098"><a href="#Generator-1098"><span class="linenos">1098</span></a> +</span><span id="Generator-1099"><a href="#Generator-1099"><span class="linenos">1099</span></a> <span class="n">rollup</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">"rollup"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Generator-1100"><a href="#Generator-1100"><span class="linenos">1100</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">rollup</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Generator-1101"><a href="#Generator-1101"><span class="linenos">1101</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1102"><a href="#Generator-1102"><span class="linenos">1102</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1103"><a href="#Generator-1103"><span class="linenos">1103</span></a> <span class="n">rollup_sql</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">"rollup"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator-1104"><a href="#Generator-1104"><span class="linenos">1104</span></a> <span class="n">rollup_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">rollup_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">rollup_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1105"><a href="#Generator-1105"><span class="linenos">1105</span></a> +</span><span id="Generator-1106"><a href="#Generator-1106"><span class="linenos">1106</span></a> <span class="n">groupings</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">,</span> <span class="n">cube_sql</span><span class="p">,</span> <span class="n">rollup_sql</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="Generator-1107"><a href="#Generator-1107"><span class="linenos">1107</span></a> +</span><span id="Generator-1108"><a href="#Generator-1108"><span class="linenos">1108</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">"expressions"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupings</span><span class="p">:</span> +</span><span id="Generator-1109"><a href="#Generator-1109"><span class="linenos">1109</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}</span><span class="s2">,"</span> +</span><span id="Generator-1110"><a href="#Generator-1110"><span class="linenos">1110</span></a> +</span><span id="Generator-1111"><a href="#Generator-1111"><span class="linenos">1111</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="n">groupings</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1112"><a href="#Generator-1112"><span class="linenos">1112</span></a> +</span><span id="Generator-1113"><a href="#Generator-1113"><span class="linenos">1113</span></a> <span class="k">def</span> <span class="nf">having_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">Having</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1114"><a href="#Generator-1114"><span class="linenos">1114</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="Generator-1115"><a href="#Generator-1115"><span class="linenos">1115</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'HAVING'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1116"><a href="#Generator-1116"><span class="linenos">1116</span></a> -</span><span id="Generator-1117"><a href="#Generator-1117"><span class="linenos">1117</span></a> <span class="k">def</span> <span class="nf">having_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">Having</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1118"><a href="#Generator-1118"><span class="linenos">1118</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="Generator-1119"><a href="#Generator-1119"><span class="linenos">1119</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'HAVING'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1120"><a href="#Generator-1120"><span class="linenos">1120</span></a> -</span><span id="Generator-1121"><a href="#Generator-1121"><span class="linenos">1121</span></a> <span class="k">def</span> <span class="nf">join_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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1122"><a href="#Generator-1122"><span class="linenos">1122</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span> -</span><span id="Generator-1123"><a href="#Generator-1123"><span class="linenos">1123</span></a> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator-1124"><a href="#Generator-1124"><span class="linenos">1124</span></a> <span class="n">op</span> -</span><span id="Generator-1125"><a href="#Generator-1125"><span class="linenos">1125</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="Generator-1126"><a href="#Generator-1126"><span class="linenos">1126</span></a> <span class="s2">"NATURAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-1127"><a href="#Generator-1127"><span class="linenos">1127</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">side</span><span class="p">,</span> -</span><span id="Generator-1128"><a href="#Generator-1128"><span class="linenos">1128</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">kind</span><span class="p">,</span> -</span><span id="Generator-1129"><a href="#Generator-1129"><span class="linenos">1129</span></a> <span class="s2">"JOIN"</span><span class="p">,</span> -</span><span id="Generator-1130"><a href="#Generator-1130"><span class="linenos">1130</span></a> <span class="p">)</span> -</span><span id="Generator-1131"><a href="#Generator-1131"><span class="linenos">1131</span></a> <span class="k">if</span> <span class="n">op</span> -</span><span id="Generator-1132"><a href="#Generator-1132"><span class="linenos">1132</span></a> <span class="p">)</span> -</span><span id="Generator-1133"><a href="#Generator-1133"><span class="linenos">1133</span></a> <span class="p">)</span> -</span><span id="Generator-1134"><a href="#Generator-1134"><span class="linenos">1134</span></a> <span class="n">on_sql</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">"on"</span><span class="p">)</span> -</span><span id="Generator-1135"><a href="#Generator-1135"><span class="linenos">1135</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> -</span><span id="Generator-1136"><a href="#Generator-1136"><span class="linenos">1136</span></a> -</span><span id="Generator-1137"><a href="#Generator-1137"><span class="linenos">1137</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">on_sql</span> <span class="ow">and</span> <span class="n">using</span><span class="p">:</span> -</span><span id="Generator-1138"><a href="#Generator-1138"><span class="linenos">1138</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="o">*</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">column</span><span class="p">)</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">using</span><span class="p">))</span> -</span><span id="Generator-1139"><a href="#Generator-1139"><span class="linenos">1139</span></a> -</span><span id="Generator-1140"><a href="#Generator-1140"><span class="linenos">1140</span></a> <span class="k">if</span> <span class="n">on_sql</span><span class="p">:</span> -</span><span id="Generator-1141"><a href="#Generator-1141"><span class="linenos">1141</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">on_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1142"><a href="#Generator-1142"><span class="linenos">1142</span></a> <span class="n">space</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-1143"><a href="#Generator-1143"><span class="linenos">1143</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> -</span><span id="Generator-1144"><a href="#Generator-1144"><span class="linenos">1144</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">USING (</span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1145"><a href="#Generator-1145"><span class="linenos">1145</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1146"><a href="#Generator-1146"><span class="linenos">1146</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1117"><a href="#Generator-1117"><span class="linenos">1117</span></a> <span class="k">def</span> <span class="nf">join_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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1118"><a href="#Generator-1118"><span class="linenos">1118</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span> +</span><span id="Generator-1119"><a href="#Generator-1119"><span class="linenos">1119</span></a> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator-1120"><a href="#Generator-1120"><span class="linenos">1120</span></a> <span class="n">op</span> +</span><span id="Generator-1121"><a href="#Generator-1121"><span class="linenos">1121</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="Generator-1122"><a href="#Generator-1122"><span class="linenos">1122</span></a> <span class="s2">"NATURAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-1123"><a href="#Generator-1123"><span class="linenos">1123</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">side</span><span class="p">,</span> +</span><span id="Generator-1124"><a href="#Generator-1124"><span class="linenos">1124</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Generator-1125"><a href="#Generator-1125"><span class="linenos">1125</span></a> <span class="s2">"JOIN"</span><span class="p">,</span> +</span><span id="Generator-1126"><a href="#Generator-1126"><span class="linenos">1126</span></a> <span class="p">)</span> +</span><span id="Generator-1127"><a href="#Generator-1127"><span class="linenos">1127</span></a> <span class="k">if</span> <span class="n">op</span> +</span><span id="Generator-1128"><a href="#Generator-1128"><span class="linenos">1128</span></a> <span class="p">)</span> +</span><span id="Generator-1129"><a href="#Generator-1129"><span class="linenos">1129</span></a> <span class="p">)</span> +</span><span id="Generator-1130"><a href="#Generator-1130"><span class="linenos">1130</span></a> <span class="n">on_sql</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">"on"</span><span class="p">)</span> +</span><span id="Generator-1131"><a href="#Generator-1131"><span class="linenos">1131</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> +</span><span id="Generator-1132"><a href="#Generator-1132"><span class="linenos">1132</span></a> +</span><span id="Generator-1133"><a href="#Generator-1133"><span class="linenos">1133</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">on_sql</span> <span class="ow">and</span> <span class="n">using</span><span class="p">:</span> +</span><span id="Generator-1134"><a href="#Generator-1134"><span class="linenos">1134</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="o">*</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">column</span><span class="p">)</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">using</span><span class="p">))</span> +</span><span id="Generator-1135"><a href="#Generator-1135"><span class="linenos">1135</span></a> +</span><span id="Generator-1136"><a href="#Generator-1136"><span class="linenos">1136</span></a> <span class="k">if</span> <span class="n">on_sql</span><span class="p">:</span> +</span><span id="Generator-1137"><a href="#Generator-1137"><span class="linenos">1137</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">on_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1138"><a href="#Generator-1138"><span class="linenos">1138</span></a> <span class="n">space</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-1139"><a href="#Generator-1139"><span class="linenos">1139</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> +</span><span id="Generator-1140"><a href="#Generator-1140"><span class="linenos">1140</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">USING (</span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1141"><a href="#Generator-1141"><span class="linenos">1141</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1142"><a href="#Generator-1142"><span class="linenos">1142</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1143"><a href="#Generator-1143"><span class="linenos">1143</span></a> +</span><span id="Generator-1144"><a href="#Generator-1144"><span class="linenos">1144</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-1145"><a href="#Generator-1145"><span class="linenos">1145</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1146"><a href="#Generator-1146"><span class="linenos">1146</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">op_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_sql</span><span class="si">}{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1147"><a href="#Generator-1147"><span class="linenos">1147</span></a> -</span><span id="Generator-1148"><a href="#Generator-1148"><span class="linenos">1148</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-1149"><a href="#Generator-1149"><span class="linenos">1149</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1150"><a href="#Generator-1150"><span class="linenos">1150</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">op_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_sql</span><span class="si">}{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1151"><a href="#Generator-1151"><span class="linenos">1151</span></a> -</span><span id="Generator-1152"><a href="#Generator-1152"><span class="linenos">1152</span></a> <span class="k">def</span> <span class="nf">lambda_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">Lambda</span><span class="p">,</span> <span class="n">arrow_sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"->"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1153"><a href="#Generator-1153"><span class="linenos">1153</span></a> <span class="n">args</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="Generator-1154"><a href="#Generator-1154"><span class="linenos">1154</span></a> <span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">args</span> -</span><span id="Generator-1155"><a href="#Generator-1155"><span class="linenos">1155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">arrow_sep</span><span class="si">}</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">expression</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><span id="Generator-1156"><a href="#Generator-1156"><span class="linenos">1156</span></a> -</span><span id="Generator-1157"><a href="#Generator-1157"><span class="linenos">1157</span></a> <span class="k">def</span> <span class="nf">lateral_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">Lateral</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1158"><a href="#Generator-1158"><span class="linenos">1158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1159"><a href="#Generator-1159"><span class="linenos">1159</span></a> -</span><span id="Generator-1160"><a href="#Generator-1160"><span class="linenos">1160</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> -</span><span id="Generator-1161"><a href="#Generator-1161"><span class="linenos">1161</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1162"><a href="#Generator-1162"><span class="linenos">1162</span></a> -</span><span id="Generator-1163"><a href="#Generator-1163"><span class="linenos">1163</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">"view"</span><span class="p">):</span> -</span><span id="Generator-1164"><a href="#Generator-1164"><span class="linenos">1164</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span> -</span><span id="Generator-1165"><a href="#Generator-1165"><span class="linenos">1165</span></a> <span class="n">columns</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">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="Generator-1166"><a href="#Generator-1166"><span class="linenos">1166</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">alias</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1167"><a href="#Generator-1167"><span class="linenos">1167</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1168"><a href="#Generator-1168"><span class="linenos">1168</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"LATERAL VIEW</span><span class="si">{</span><span class="s1">' OUTER'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'outer'</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">"</span><span class="p">)</span> -</span><span id="Generator-1169"><a href="#Generator-1169"><span class="linenos">1169</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">table</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1148"><a href="#Generator-1148"><span class="linenos">1148</span></a> <span class="k">def</span> <span class="nf">lambda_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">Lambda</span><span class="p">,</span> <span class="n">arrow_sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"->"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1149"><a href="#Generator-1149"><span class="linenos">1149</span></a> <span class="n">args</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="Generator-1150"><a href="#Generator-1150"><span class="linenos">1150</span></a> <span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">args</span> +</span><span id="Generator-1151"><a href="#Generator-1151"><span class="linenos">1151</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">arrow_sep</span><span class="si">}</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">expression</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><span id="Generator-1152"><a href="#Generator-1152"><span class="linenos">1152</span></a> +</span><span id="Generator-1153"><a href="#Generator-1153"><span class="linenos">1153</span></a> <span class="k">def</span> <span class="nf">lateral_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">Lateral</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1154"><a href="#Generator-1154"><span class="linenos">1154</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1155"><a href="#Generator-1155"><span class="linenos">1155</span></a> +</span><span id="Generator-1156"><a href="#Generator-1156"><span class="linenos">1156</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> +</span><span id="Generator-1157"><a href="#Generator-1157"><span class="linenos">1157</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1158"><a href="#Generator-1158"><span class="linenos">1158</span></a> +</span><span id="Generator-1159"><a href="#Generator-1159"><span class="linenos">1159</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">"view"</span><span class="p">):</span> +</span><span id="Generator-1160"><a href="#Generator-1160"><span class="linenos">1160</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span> +</span><span id="Generator-1161"><a href="#Generator-1161"><span class="linenos">1161</span></a> <span class="n">columns</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">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="Generator-1162"><a href="#Generator-1162"><span class="linenos">1162</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">alias</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1163"><a href="#Generator-1163"><span class="linenos">1163</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1164"><a href="#Generator-1164"><span class="linenos">1164</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"LATERAL VIEW</span><span class="si">{</span><span class="s1">' OUTER'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'outer'</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">"</span><span class="p">)</span> +</span><span id="Generator-1165"><a href="#Generator-1165"><span class="linenos">1165</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">table</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1166"><a href="#Generator-1166"><span class="linenos">1166</span></a> +</span><span id="Generator-1167"><a href="#Generator-1167"><span class="linenos">1167</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1168"><a href="#Generator-1168"><span class="linenos">1168</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> +</span><span id="Generator-1169"><a href="#Generator-1169"><span class="linenos">1169</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1170"><a href="#Generator-1170"><span class="linenos">1170</span></a> -</span><span id="Generator-1171"><a href="#Generator-1171"><span class="linenos">1171</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1172"><a href="#Generator-1172"><span class="linenos">1172</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> -</span><span id="Generator-1173"><a href="#Generator-1173"><span class="linenos">1173</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1171"><a href="#Generator-1171"><span class="linenos">1171</span></a> <span class="k">def</span> <span class="nf">limit_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">Limit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1172"><a href="#Generator-1172"><span class="linenos">1172</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1173"><a href="#Generator-1173"><span class="linenos">1173</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'LIMIT'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1174"><a href="#Generator-1174"><span class="linenos">1174</span></a> -</span><span id="Generator-1175"><a href="#Generator-1175"><span class="linenos">1175</span></a> <span class="k">def</span> <span class="nf">limit_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">Limit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1175"><a href="#Generator-1175"><span class="linenos">1175</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> </span><span id="Generator-1176"><a href="#Generator-1176"><span class="linenos">1176</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1177"><a href="#Generator-1177"><span class="linenos">1177</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'LIMIT'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1177"><a href="#Generator-1177"><span class="linenos">1177</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'OFFSET'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1178"><a href="#Generator-1178"><span class="linenos">1178</span></a> -</span><span id="Generator-1179"><a href="#Generator-1179"><span class="linenos">1179</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1180"><a href="#Generator-1180"><span class="linenos">1180</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1181"><a href="#Generator-1181"><span class="linenos">1181</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'OFFSET'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1182"><a href="#Generator-1182"><span class="linenos">1182</span></a> -</span><span id="Generator-1183"><a href="#Generator-1183"><span class="linenos">1183</span></a> <span class="k">def</span> <span class="nf">lock_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">Lock</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1184"><a href="#Generator-1184"><span class="linenos">1184</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">LOCKING_READS_SUPPORTED</span><span class="p">:</span> -</span><span id="Generator-1185"><a href="#Generator-1185"><span class="linenos">1185</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"UPDATE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"update"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"SHARE"</span> -</span><span id="Generator-1186"><a href="#Generator-1186"><span class="linenos">1186</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"FOR </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-1187"><a href="#Generator-1187"><span class="linenos">1187</span></a> -</span><span id="Generator-1188"><a href="#Generator-1188"><span class="linenos">1188</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Locking reads using 'FOR UPDATE/SHARE' are not supported"</span><span class="p">)</span> -</span><span id="Generator-1189"><a href="#Generator-1189"><span class="linenos">1189</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator-1190"><a href="#Generator-1190"><span class="linenos">1190</span></a> -</span><span id="Generator-1191"><a href="#Generator-1191"><span class="linenos">1191</span></a> <span class="k">def</span> <span class="nf">literal_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">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1192"><a href="#Generator-1192"><span class="linenos">1192</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">""</span> -</span><span id="Generator-1193"><a href="#Generator-1193"><span class="linenos">1193</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="Generator-1194"><a href="#Generator-1194"><span class="linenos">1194</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span><span class="p">)</span> -</span><span id="Generator-1195"><a href="#Generator-1195"><span class="linenos">1195</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator-1196"><a href="#Generator-1196"><span class="linenos">1196</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">)</span> -</span><span id="Generator-1197"><a href="#Generator-1197"><span class="linenos">1197</span></a> <span class="n">text</span> <span class="o">=</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">quote_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1198"><a href="#Generator-1198"><span class="linenos">1198</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="Generator-1179"><a href="#Generator-1179"><span class="linenos">1179</span></a> <span class="k">def</span> <span class="nf">setitem_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">SetItem</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1180"><a href="#Generator-1180"><span class="linenos">1180</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator-1181"><a href="#Generator-1181"><span class="linenos">1181</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1182"><a href="#Generator-1182"><span class="linenos">1182</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1183"><a href="#Generator-1183"><span class="linenos">1183</span></a> <span class="n">expressions</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><span id="Generator-1184"><a href="#Generator-1184"><span class="linenos">1184</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> +</span><span id="Generator-1185"><a href="#Generator-1185"><span class="linenos">1185</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1186"><a href="#Generator-1186"><span class="linenos">1186</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1187"><a href="#Generator-1187"><span class="linenos">1187</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1188"><a href="#Generator-1188"><span class="linenos">1188</span></a> +</span><span id="Generator-1189"><a href="#Generator-1189"><span class="linenos">1189</span></a> <span class="k">def</span> <span class="nf">set_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">Set</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1190"><a href="#Generator-1190"><span class="linenos">1190</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-1191"><a href="#Generator-1191"><span class="linenos">1191</span></a> <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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1192"><a href="#Generator-1192"><span class="linenos">1192</span></a> <span class="p">)</span> +</span><span id="Generator-1193"><a href="#Generator-1193"><span class="linenos">1193</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1194"><a href="#Generator-1194"><span class="linenos">1194</span></a> +</span><span id="Generator-1195"><a href="#Generator-1195"><span class="linenos">1195</span></a> <span class="k">def</span> <span class="nf">lock_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">Lock</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1196"><a href="#Generator-1196"><span class="linenos">1196</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">LOCKING_READS_SUPPORTED</span><span class="p">:</span> +</span><span id="Generator-1197"><a href="#Generator-1197"><span class="linenos">1197</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"UPDATE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"update"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"SHARE"</span> +</span><span id="Generator-1198"><a href="#Generator-1198"><span class="linenos">1198</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"FOR </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="Generator-1199"><a href="#Generator-1199"><span class="linenos">1199</span></a> -</span><span id="Generator-1200"><a href="#Generator-1200"><span class="linenos">1200</span></a> <span class="k">def</span> <span class="nf">loaddata_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">LoadData</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1201"><a href="#Generator-1201"><span class="linenos">1201</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">" LOCAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1202"><a href="#Generator-1202"><span class="linenos">1202</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPATH </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'inpath'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1203"><a href="#Generator-1203"><span class="linenos">1203</span></a> <span class="n">overwrite</span> <span class="o">=</span> <span class="s2">" OVERWRITE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"overwrite"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1204"><a href="#Generator-1204"><span class="linenos">1204</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INTO TABLE </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">expression</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><span id="Generator-1205"><a href="#Generator-1205"><span class="linenos">1205</span></a> <span class="n">partition</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">"partition"</span><span class="p">)</span> -</span><span id="Generator-1206"><a href="#Generator-1206"><span class="linenos">1206</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1207"><a href="#Generator-1207"><span class="linenos">1207</span></a> <span class="n">input_format</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">"input_format"</span><span class="p">)</span> -</span><span id="Generator-1208"><a href="#Generator-1208"><span class="linenos">1208</span></a> <span class="n">input_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPUTFORMAT </span><span class="si">{</span><span class="n">input_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">input_format</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1209"><a href="#Generator-1209"><span class="linenos">1209</span></a> <span class="n">serde</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">"serde"</span><span class="p">)</span> -</span><span id="Generator-1210"><a href="#Generator-1210"><span class="linenos">1210</span></a> <span class="n">serde</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" SERDE </span><span class="si">{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">serde</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1211"><a href="#Generator-1211"><span class="linenos">1211</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOAD DATA</span><span class="si">{</span><span class="n">local</span><span class="si">}{</span><span class="n">inpath</span><span class="si">}{</span><span class="n">overwrite</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">partition</span><span class="si">}{</span><span class="n">input_format</span><span class="si">}{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1212"><a href="#Generator-1212"><span class="linenos">1212</span></a> -</span><span id="Generator-1213"><a href="#Generator-1213"><span class="linenos">1213</span></a> <span class="k">def</span> <span class="nf">null_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1214"><a href="#Generator-1214"><span class="linenos">1214</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> -</span><span id="Generator-1215"><a href="#Generator-1215"><span class="linenos">1215</span></a> -</span><span id="Generator-1216"><a href="#Generator-1216"><span class="linenos">1216</span></a> <span class="k">def</span> <span class="nf">boolean_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">Boolean</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1217"><a href="#Generator-1217"><span class="linenos">1217</span></a> <span class="k">return</span> <span class="s2">"TRUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">"FALSE"</span> -</span><span id="Generator-1218"><a href="#Generator-1218"><span class="linenos">1218</span></a> -</span><span id="Generator-1219"><a href="#Generator-1219"><span class="linenos">1219</span></a> <span class="k">def</span> <span class="nf">order_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">Order</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1220"><a href="#Generator-1220"><span class="linenos">1220</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1221"><a href="#Generator-1221"><span class="linenos">1221</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">this</span> -</span><span id="Generator-1222"><a href="#Generator-1222"><span class="linenos">1222</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">ORDER BY"</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="n">this</span> <span class="ow">or</span> <span class="n">flat</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Generator-1223"><a href="#Generator-1223"><span class="linenos">1223</span></a> -</span><span id="Generator-1224"><a href="#Generator-1224"><span class="linenos">1224</span></a> <span class="k">def</span> <span class="nf">cluster_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">Cluster</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1225"><a href="#Generator-1225"><span class="linenos">1225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1226"><a href="#Generator-1226"><span class="linenos">1226</span></a> -</span><span id="Generator-1227"><a href="#Generator-1227"><span class="linenos">1227</span></a> <span class="k">def</span> <span class="nf">distribute_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">Distribute</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1228"><a href="#Generator-1228"><span class="linenos">1228</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"DISTRIBUTE BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1229"><a href="#Generator-1229"><span class="linenos">1229</span></a> -</span><span id="Generator-1230"><a href="#Generator-1230"><span class="linenos">1230</span></a> <span class="k">def</span> <span class="nf">sort_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">Sort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1231"><a href="#Generator-1231"><span class="linenos">1231</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"SORT BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1232"><a href="#Generator-1232"><span class="linenos">1232</span></a> -</span><span id="Generator-1233"><a href="#Generator-1233"><span class="linenos">1233</span></a> <span class="k">def</span> <span class="nf">ordered_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">Ordered</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1234"><a href="#Generator-1234"><span class="linenos">1234</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> -</span><span id="Generator-1235"><a href="#Generator-1235"><span class="linenos">1235</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> -</span><span id="Generator-1236"><a href="#Generator-1236"><span class="linenos">1236</span></a> -</span><span id="Generator-1237"><a href="#Generator-1237"><span class="linenos">1237</span></a> <span class="n">nulls_first</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">"nulls_first"</span><span class="p">)</span> -</span><span id="Generator-1238"><a href="#Generator-1238"><span class="linenos">1238</span></a> <span class="n">nulls_last</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">nulls_first</span> -</span><span id="Generator-1239"><a href="#Generator-1239"><span class="linenos">1239</span></a> <span class="n">nulls_are_large</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_large"</span> -</span><span id="Generator-1240"><a href="#Generator-1240"><span class="linenos">1240</span></a> <span class="n">nulls_are_small</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span> -</span><span id="Generator-1241"><a href="#Generator-1241"><span class="linenos">1241</span></a> <span class="n">nulls_are_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_last"</span> -</span><span id="Generator-1242"><a href="#Generator-1242"><span class="linenos">1242</span></a> -</span><span id="Generator-1243"><a href="#Generator-1243"><span class="linenos">1243</span></a> <span class="n">sort_order</span> <span class="o">=</span> <span class="s2">" DESC"</span> <span class="k">if</span> <span class="n">desc</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1244"><a href="#Generator-1244"><span class="linenos">1244</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-1245"><a href="#Generator-1245"><span class="linenos">1245</span></a> <span class="k">if</span> <span class="n">nulls_first</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="Generator-1246"><a href="#Generator-1246"><span class="linenos">1246</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="n">nulls_are_last</span> -</span><span id="Generator-1247"><a href="#Generator-1247"><span class="linenos">1247</span></a> <span class="p">):</span> -</span><span id="Generator-1248"><a href="#Generator-1248"><span class="linenos">1248</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS FIRST"</span> -</span><span id="Generator-1249"><a href="#Generator-1249"><span class="linenos">1249</span></a> <span class="k">elif</span> <span class="p">(</span> -</span><span id="Generator-1250"><a href="#Generator-1250"><span class="linenos">1250</span></a> <span class="n">nulls_last</span> -</span><span id="Generator-1251"><a href="#Generator-1251"><span class="linenos">1251</span></a> <span class="ow">and</span> <span class="p">((</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">))</span> -</span><span id="Generator-1252"><a href="#Generator-1252"><span class="linenos">1252</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">nulls_are_last</span> -</span><span id="Generator-1253"><a href="#Generator-1253"><span class="linenos">1253</span></a> <span class="p">):</span> -</span><span id="Generator-1254"><a href="#Generator-1254"><span class="linenos">1254</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS LAST"</span> -</span><span id="Generator-1255"><a href="#Generator-1255"><span class="linenos">1255</span></a> -</span><span id="Generator-1256"><a href="#Generator-1256"><span class="linenos">1256</span></a> <span class="k">if</span> <span class="n">nulls_sort_change</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">NULL_ORDERING_SUPPORTED</span><span class="p">:</span> -</span><span id="Generator-1257"><a href="#Generator-1257"><span class="linenos">1257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span> -</span><span id="Generator-1258"><a href="#Generator-1258"><span class="linenos">1258</span></a> <span class="s2">"Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"</span> -</span><span id="Generator-1259"><a href="#Generator-1259"><span class="linenos">1259</span></a> <span class="p">)</span> -</span><span id="Generator-1260"><a href="#Generator-1260"><span class="linenos">1260</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-1261"><a href="#Generator-1261"><span class="linenos">1261</span></a> -</span><span id="Generator-1262"><a href="#Generator-1262"><span class="linenos">1262</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">sort_order</span><span class="si">}{</span><span class="n">nulls_sort_change</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1263"><a href="#Generator-1263"><span class="linenos">1263</span></a> -</span><span id="Generator-1264"><a href="#Generator-1264"><span class="linenos">1264</span></a> <span class="k">def</span> <span class="nf">matchrecognize_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">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1265"><a href="#Generator-1265"><span class="linenos">1265</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1266"><a href="#Generator-1266"><span class="linenos">1266</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="Generator-1267"><a href="#Generator-1267"><span class="linenos">1267</span></a> <span class="n">measures</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">"measures"</span><span class="p">)</span> -</span><span id="Generator-1268"><a href="#Generator-1268"><span class="linenos">1268</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"MEASURES </span><span class="si">{</span><span class="n">measures</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">measures</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1269"><a href="#Generator-1269"><span class="linenos">1269</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> -</span><span id="Generator-1270"><a href="#Generator-1270"><span class="linenos">1270</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">rows</span><span class="p">)</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1271"><a href="#Generator-1271"><span class="linenos">1271</span></a> <span class="n">after</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">"after"</span><span class="p">)</span> -</span><span id="Generator-1272"><a href="#Generator-1272"><span class="linenos">1272</span></a> <span class="n">after</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">after</span><span class="p">)</span> <span class="k">if</span> <span class="n">after</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1273"><a href="#Generator-1273"><span class="linenos">1273</span></a> <span class="n">pattern</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">"pattern"</span><span class="p">)</span> -</span><span id="Generator-1274"><a href="#Generator-1274"><span class="linenos">1274</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"PATTERN (</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span> <span class="k">if</span> <span class="n">pattern</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1275"><a href="#Generator-1275"><span class="linenos">1275</span></a> <span class="n">define</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">"define"</span><span class="p">)</span> -</span><span id="Generator-1276"><a href="#Generator-1276"><span class="linenos">1276</span></a> <span class="n">define</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"DEFINE </span><span class="si">{</span><span class="n">define</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">define</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1277"><a href="#Generator-1277"><span class="linenos">1277</span></a> <span class="n">body</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator-1278"><a href="#Generator-1278"><span class="linenos">1278</span></a> <span class="p">(</span> -</span><span id="Generator-1279"><a href="#Generator-1279"><span class="linenos">1279</span></a> <span class="n">partition</span><span class="p">,</span> -</span><span id="Generator-1280"><a href="#Generator-1280"><span class="linenos">1280</span></a> <span class="n">order</span><span class="p">,</span> -</span><span id="Generator-1281"><a href="#Generator-1281"><span class="linenos">1281</span></a> <span class="n">measures</span><span class="p">,</span> -</span><span id="Generator-1282"><a href="#Generator-1282"><span class="linenos">1282</span></a> <span class="n">rows</span><span class="p">,</span> -</span><span id="Generator-1283"><a href="#Generator-1283"><span class="linenos">1283</span></a> <span class="n">after</span><span class="p">,</span> -</span><span id="Generator-1284"><a href="#Generator-1284"><span class="linenos">1284</span></a> <span class="n">pattern</span><span class="p">,</span> -</span><span id="Generator-1285"><a href="#Generator-1285"><span class="linenos">1285</span></a> <span class="n">define</span><span class="p">,</span> -</span><span id="Generator-1286"><a href="#Generator-1286"><span class="linenos">1286</span></a> <span class="p">)</span> -</span><span id="Generator-1287"><a href="#Generator-1287"><span class="linenos">1287</span></a> <span class="p">)</span> -</span><span id="Generator-1288"><a href="#Generator-1288"><span class="linenos">1288</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'MATCH_RECOGNIZE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">body</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1289"><a href="#Generator-1289"><span class="linenos">1289</span></a> -</span><span id="Generator-1290"><a href="#Generator-1290"><span class="linenos">1290</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1291"><a href="#Generator-1291"><span class="linenos">1291</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> -</span><span id="Generator-1292"><a href="#Generator-1292"><span class="linenos">1292</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> -</span><span id="Generator-1293"><a href="#Generator-1293"><span class="linenos">1293</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Generator-1294"><a href="#Generator-1294"><span class="linenos">1294</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="Generator-1295"><a href="#Generator-1295"><span class="linenos">1295</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Generator-1296"><a href="#Generator-1296"><span class="linenos">1296</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="Generator-1297"><a href="#Generator-1297"><span class="linenos">1297</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="Generator-1298"><a href="#Generator-1298"><span class="linenos">1298</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="Generator-1299"><a href="#Generator-1299"><span class="linenos">1299</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="Generator-1300"><a href="#Generator-1300"><span class="linenos">1300</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1301"><a href="#Generator-1301"><span class="linenos">1301</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">"windows"</span><span class="p">)</span> -</span><span id="Generator-1302"><a href="#Generator-1302"><span class="linenos">1302</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator-1303"><a href="#Generator-1303"><span class="linenos">1303</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="Generator-1304"><a href="#Generator-1304"><span class="linenos">1304</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="Generator-1305"><a href="#Generator-1305"><span class="linenos">1305</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="Generator-1306"><a href="#Generator-1306"><span class="linenos">1306</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="Generator-1307"><a href="#Generator-1307"><span class="linenos">1307</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="Generator-1308"><a href="#Generator-1308"><span class="linenos">1308</span></a> <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">"offset"</span><span class="p">),</span> -</span><span id="Generator-1309"><a href="#Generator-1309"><span class="linenos">1309</span></a> <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">"lock"</span><span class="p">),</span> -</span><span id="Generator-1310"><a href="#Generator-1310"><span class="linenos">1310</span></a> <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">"sample"</span><span class="p">),</span> -</span><span id="Generator-1311"><a href="#Generator-1311"><span class="linenos">1311</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="Generator-1312"><a href="#Generator-1312"><span class="linenos">1312</span></a> <span class="p">)</span> -</span><span id="Generator-1313"><a href="#Generator-1313"><span class="linenos">1313</span></a> -</span><span id="Generator-1314"><a href="#Generator-1314"><span class="linenos">1314</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1315"><a href="#Generator-1315"><span class="linenos">1315</span></a> <span class="n">hint</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">"hint"</span><span class="p">)</span> -</span><span id="Generator-1316"><a href="#Generator-1316"><span class="linenos">1316</span></a> <span class="n">distinct</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">"distinct"</span><span class="p">)</span> -</span><span id="Generator-1317"><a href="#Generator-1317"><span class="linenos">1317</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">distinct</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1318"><a href="#Generator-1318"><span class="linenos">1318</span></a> <span class="n">expressions</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><span id="Generator-1319"><a href="#Generator-1319"><span class="linenos">1319</span></a> <span class="n">expressions</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="n">expressions</span> -</span><span id="Generator-1320"><a href="#Generator-1320"><span class="linenos">1320</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="Generator-1321"><a href="#Generator-1321"><span class="linenos">1321</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator-1322"><a href="#Generator-1322"><span class="linenos">1322</span></a> <span class="sa">f</span><span class="s2">"SELECT</span><span class="si">{</span><span class="n">hint</span><span class="si">}{</span><span class="n">distinct</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Generator-1323"><a href="#Generator-1323"><span class="linenos">1323</span></a> <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">"into"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Generator-1324"><a href="#Generator-1324"><span class="linenos">1324</span></a> <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">"from"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Generator-1325"><a href="#Generator-1325"><span class="linenos">1325</span></a> <span class="p">)</span> -</span><span id="Generator-1326"><a href="#Generator-1326"><span class="linenos">1326</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Generator-1327"><a href="#Generator-1327"><span class="linenos">1327</span></a> -</span><span id="Generator-1328"><a href="#Generator-1328"><span class="linenos">1328</span></a> <span class="k">def</span> <span class="nf">schema_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">Schema</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1329"><a href="#Generator-1329"><span class="linenos">1329</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1330"><a href="#Generator-1330"><span class="linenos">1330</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1331"><a href="#Generator-1331"><span class="linenos">1331</span></a> <span class="n">sql</span> <span class="o">=</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</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="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1332"><a href="#Generator-1332"><span class="linenos">1332</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1333"><a href="#Generator-1333"><span class="linenos">1333</span></a> -</span><span id="Generator-1334"><a href="#Generator-1334"><span class="linenos">1334</span></a> <span class="k">def</span> <span class="nf">star_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">Star</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1335"><a href="#Generator-1335"><span class="linenos">1335</span></a> <span class="n">except_</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">"except"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1336"><a href="#Generator-1336"><span class="linenos">1336</span></a> <span class="n">except_</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'except'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">except_</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">except_</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1337"><a href="#Generator-1337"><span class="linenos">1337</span></a> <span class="n">replace</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">"replace"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1338"><a href="#Generator-1338"><span class="linenos">1338</span></a> <span class="n">replace</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">replace</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">replace</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1339"><a href="#Generator-1339"><span class="linenos">1339</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"*</span><span class="si">{</span><span class="n">except_</span><span class="si">}{</span><span class="n">replace</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1340"><a href="#Generator-1340"><span class="linenos">1340</span></a> -</span><span id="Generator-1341"><a href="#Generator-1341"><span class="linenos">1341</span></a> <span class="k">def</span> <span class="nf">structkwarg_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">StructKwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1342"><a href="#Generator-1342"><span class="linenos">1342</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1343"><a href="#Generator-1343"><span class="linenos">1343</span></a> -</span><span id="Generator-1344"><a href="#Generator-1344"><span class="linenos">1344</span></a> <span class="k">def</span> <span class="nf">parameter_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">Parameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1345"><a href="#Generator-1345"><span class="linenos">1345</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1346"><a href="#Generator-1346"><span class="linenos">1346</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1347"><a href="#Generator-1347"><span class="linenos">1347</span></a> <span class="k">return</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">PARAMETER_TOKEN</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1348"><a href="#Generator-1348"><span class="linenos">1348</span></a> -</span><span id="Generator-1349"><a href="#Generator-1349"><span class="linenos">1349</span></a> <span class="k">def</span> <span class="nf">sessionparameter_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">SessionParameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1350"><a href="#Generator-1350"><span class="linenos">1350</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1351"><a href="#Generator-1351"><span class="linenos">1351</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span> -</span><span id="Generator-1352"><a href="#Generator-1352"><span class="linenos">1352</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Generator-1353"><a href="#Generator-1353"><span class="linenos">1353</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">."</span> -</span><span id="Generator-1354"><a href="#Generator-1354"><span class="linenos">1354</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"@@</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1200"><a href="#Generator-1200"><span class="linenos">1200</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Locking reads using 'FOR UPDATE/SHARE' are not supported"</span><span class="p">)</span> +</span><span id="Generator-1201"><a href="#Generator-1201"><span class="linenos">1201</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator-1202"><a href="#Generator-1202"><span class="linenos">1202</span></a> +</span><span id="Generator-1203"><a href="#Generator-1203"><span class="linenos">1203</span></a> <span class="k">def</span> <span class="nf">literal_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">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1204"><a href="#Generator-1204"><span class="linenos">1204</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">""</span> +</span><span id="Generator-1205"><a href="#Generator-1205"><span class="linenos">1205</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="Generator-1206"><a href="#Generator-1206"><span class="linenos">1206</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span><span class="p">)</span> +</span><span id="Generator-1207"><a href="#Generator-1207"><span class="linenos">1207</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator-1208"><a href="#Generator-1208"><span class="linenos">1208</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">)</span> +</span><span id="Generator-1209"><a href="#Generator-1209"><span class="linenos">1209</span></a> <span class="n">text</span> <span class="o">=</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">quote_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1210"><a href="#Generator-1210"><span class="linenos">1210</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="Generator-1211"><a href="#Generator-1211"><span class="linenos">1211</span></a> +</span><span id="Generator-1212"><a href="#Generator-1212"><span class="linenos">1212</span></a> <span class="k">def</span> <span class="nf">loaddata_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">LoadData</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1213"><a href="#Generator-1213"><span class="linenos">1213</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">" LOCAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1214"><a href="#Generator-1214"><span class="linenos">1214</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPATH </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'inpath'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1215"><a href="#Generator-1215"><span class="linenos">1215</span></a> <span class="n">overwrite</span> <span class="o">=</span> <span class="s2">" OVERWRITE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"overwrite"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1216"><a href="#Generator-1216"><span class="linenos">1216</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INTO TABLE </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">expression</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><span id="Generator-1217"><a href="#Generator-1217"><span class="linenos">1217</span></a> <span class="n">partition</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">"partition"</span><span class="p">)</span> +</span><span id="Generator-1218"><a href="#Generator-1218"><span class="linenos">1218</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1219"><a href="#Generator-1219"><span class="linenos">1219</span></a> <span class="n">input_format</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">"input_format"</span><span class="p">)</span> +</span><span id="Generator-1220"><a href="#Generator-1220"><span class="linenos">1220</span></a> <span class="n">input_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPUTFORMAT </span><span class="si">{</span><span class="n">input_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">input_format</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1221"><a href="#Generator-1221"><span class="linenos">1221</span></a> <span class="n">serde</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">"serde"</span><span class="p">)</span> +</span><span id="Generator-1222"><a href="#Generator-1222"><span class="linenos">1222</span></a> <span class="n">serde</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" SERDE </span><span class="si">{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">serde</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1223"><a href="#Generator-1223"><span class="linenos">1223</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOAD DATA</span><span class="si">{</span><span class="n">local</span><span class="si">}{</span><span class="n">inpath</span><span class="si">}{</span><span class="n">overwrite</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">partition</span><span class="si">}{</span><span class="n">input_format</span><span class="si">}{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1224"><a href="#Generator-1224"><span class="linenos">1224</span></a> +</span><span id="Generator-1225"><a href="#Generator-1225"><span class="linenos">1225</span></a> <span class="k">def</span> <span class="nf">null_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1226"><a href="#Generator-1226"><span class="linenos">1226</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> +</span><span id="Generator-1227"><a href="#Generator-1227"><span class="linenos">1227</span></a> +</span><span id="Generator-1228"><a href="#Generator-1228"><span class="linenos">1228</span></a> <span class="k">def</span> <span class="nf">boolean_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">Boolean</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1229"><a href="#Generator-1229"><span class="linenos">1229</span></a> <span class="k">return</span> <span class="s2">"TRUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">"FALSE"</span> +</span><span id="Generator-1230"><a href="#Generator-1230"><span class="linenos">1230</span></a> +</span><span id="Generator-1231"><a href="#Generator-1231"><span class="linenos">1231</span></a> <span class="k">def</span> <span class="nf">order_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">Order</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1232"><a href="#Generator-1232"><span class="linenos">1232</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1233"><a href="#Generator-1233"><span class="linenos">1233</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">this</span> +</span><span id="Generator-1234"><a href="#Generator-1234"><span class="linenos">1234</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">ORDER BY"</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="n">this</span> <span class="ow">or</span> <span class="n">flat</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Generator-1235"><a href="#Generator-1235"><span class="linenos">1235</span></a> +</span><span id="Generator-1236"><a href="#Generator-1236"><span class="linenos">1236</span></a> <span class="k">def</span> <span class="nf">cluster_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">Cluster</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1237"><a href="#Generator-1237"><span class="linenos">1237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1238"><a href="#Generator-1238"><span class="linenos">1238</span></a> +</span><span id="Generator-1239"><a href="#Generator-1239"><span class="linenos">1239</span></a> <span class="k">def</span> <span class="nf">distribute_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">Distribute</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1240"><a href="#Generator-1240"><span class="linenos">1240</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"DISTRIBUTE BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1241"><a href="#Generator-1241"><span class="linenos">1241</span></a> +</span><span id="Generator-1242"><a href="#Generator-1242"><span class="linenos">1242</span></a> <span class="k">def</span> <span class="nf">sort_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">Sort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1243"><a href="#Generator-1243"><span class="linenos">1243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"SORT BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1244"><a href="#Generator-1244"><span class="linenos">1244</span></a> +</span><span id="Generator-1245"><a href="#Generator-1245"><span class="linenos">1245</span></a> <span class="k">def</span> <span class="nf">ordered_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">Ordered</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1246"><a href="#Generator-1246"><span class="linenos">1246</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> +</span><span id="Generator-1247"><a href="#Generator-1247"><span class="linenos">1247</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> +</span><span id="Generator-1248"><a href="#Generator-1248"><span class="linenos">1248</span></a> +</span><span id="Generator-1249"><a href="#Generator-1249"><span class="linenos">1249</span></a> <span class="n">nulls_first</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">"nulls_first"</span><span class="p">)</span> +</span><span id="Generator-1250"><a href="#Generator-1250"><span class="linenos">1250</span></a> <span class="n">nulls_last</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">nulls_first</span> +</span><span id="Generator-1251"><a href="#Generator-1251"><span class="linenos">1251</span></a> <span class="n">nulls_are_large</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_large"</span> +</span><span id="Generator-1252"><a href="#Generator-1252"><span class="linenos">1252</span></a> <span class="n">nulls_are_small</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span> +</span><span id="Generator-1253"><a href="#Generator-1253"><span class="linenos">1253</span></a> <span class="n">nulls_are_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_last"</span> +</span><span id="Generator-1254"><a href="#Generator-1254"><span class="linenos">1254</span></a> +</span><span id="Generator-1255"><a href="#Generator-1255"><span class="linenos">1255</span></a> <span class="n">sort_order</span> <span class="o">=</span> <span class="s2">" DESC"</span> <span class="k">if</span> <span class="n">desc</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1256"><a href="#Generator-1256"><span class="linenos">1256</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-1257"><a href="#Generator-1257"><span class="linenos">1257</span></a> <span class="k">if</span> <span class="n">nulls_first</span> <span class="ow">and</span> <span class="p">(</span> +</span><span id="Generator-1258"><a href="#Generator-1258"><span class="linenos">1258</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="n">nulls_are_last</span> +</span><span id="Generator-1259"><a href="#Generator-1259"><span class="linenos">1259</span></a> <span class="p">):</span> +</span><span id="Generator-1260"><a href="#Generator-1260"><span class="linenos">1260</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS FIRST"</span> +</span><span id="Generator-1261"><a href="#Generator-1261"><span class="linenos">1261</span></a> <span class="k">elif</span> <span class="p">(</span> +</span><span id="Generator-1262"><a href="#Generator-1262"><span class="linenos">1262</span></a> <span class="n">nulls_last</span> +</span><span id="Generator-1263"><a href="#Generator-1263"><span class="linenos">1263</span></a> <span class="ow">and</span> <span class="p">((</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">))</span> +</span><span id="Generator-1264"><a href="#Generator-1264"><span class="linenos">1264</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">nulls_are_last</span> +</span><span id="Generator-1265"><a href="#Generator-1265"><span class="linenos">1265</span></a> <span class="p">):</span> +</span><span id="Generator-1266"><a href="#Generator-1266"><span class="linenos">1266</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS LAST"</span> +</span><span id="Generator-1267"><a href="#Generator-1267"><span class="linenos">1267</span></a> +</span><span id="Generator-1268"><a href="#Generator-1268"><span class="linenos">1268</span></a> <span class="k">if</span> <span class="n">nulls_sort_change</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">NULL_ORDERING_SUPPORTED</span><span class="p">:</span> +</span><span id="Generator-1269"><a href="#Generator-1269"><span class="linenos">1269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span> +</span><span id="Generator-1270"><a href="#Generator-1270"><span class="linenos">1270</span></a> <span class="s2">"Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"</span> +</span><span id="Generator-1271"><a href="#Generator-1271"><span class="linenos">1271</span></a> <span class="p">)</span> +</span><span id="Generator-1272"><a href="#Generator-1272"><span class="linenos">1272</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-1273"><a href="#Generator-1273"><span class="linenos">1273</span></a> +</span><span id="Generator-1274"><a href="#Generator-1274"><span class="linenos">1274</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">sort_order</span><span class="si">}{</span><span class="n">nulls_sort_change</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1275"><a href="#Generator-1275"><span class="linenos">1275</span></a> +</span><span id="Generator-1276"><a href="#Generator-1276"><span class="linenos">1276</span></a> <span class="k">def</span> <span class="nf">matchrecognize_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">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1277"><a href="#Generator-1277"><span class="linenos">1277</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1278"><a href="#Generator-1278"><span class="linenos">1278</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="Generator-1279"><a href="#Generator-1279"><span class="linenos">1279</span></a> <span class="n">measures</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">"measures"</span><span class="p">)</span> +</span><span id="Generator-1280"><a href="#Generator-1280"><span class="linenos">1280</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"MEASURES </span><span class="si">{</span><span class="n">measures</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">measures</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1281"><a href="#Generator-1281"><span class="linenos">1281</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> +</span><span id="Generator-1282"><a href="#Generator-1282"><span class="linenos">1282</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">rows</span><span class="p">)</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1283"><a href="#Generator-1283"><span class="linenos">1283</span></a> <span class="n">after</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">"after"</span><span class="p">)</span> +</span><span id="Generator-1284"><a href="#Generator-1284"><span class="linenos">1284</span></a> <span class="n">after</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">after</span><span class="p">)</span> <span class="k">if</span> <span class="n">after</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1285"><a href="#Generator-1285"><span class="linenos">1285</span></a> <span class="n">pattern</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">"pattern"</span><span class="p">)</span> +</span><span id="Generator-1286"><a href="#Generator-1286"><span class="linenos">1286</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"PATTERN (</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span> <span class="k">if</span> <span class="n">pattern</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1287"><a href="#Generator-1287"><span class="linenos">1287</span></a> <span class="n">define</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">"define"</span><span class="p">)</span> +</span><span id="Generator-1288"><a href="#Generator-1288"><span class="linenos">1288</span></a> <span class="n">define</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"DEFINE </span><span class="si">{</span><span class="n">define</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">define</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1289"><a href="#Generator-1289"><span class="linenos">1289</span></a> <span class="n">body</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator-1290"><a href="#Generator-1290"><span class="linenos">1290</span></a> <span class="p">(</span> +</span><span id="Generator-1291"><a href="#Generator-1291"><span class="linenos">1291</span></a> <span class="n">partition</span><span class="p">,</span> +</span><span id="Generator-1292"><a href="#Generator-1292"><span class="linenos">1292</span></a> <span class="n">order</span><span class="p">,</span> +</span><span id="Generator-1293"><a href="#Generator-1293"><span class="linenos">1293</span></a> <span class="n">measures</span><span class="p">,</span> +</span><span id="Generator-1294"><a href="#Generator-1294"><span class="linenos">1294</span></a> <span class="n">rows</span><span class="p">,</span> +</span><span id="Generator-1295"><a href="#Generator-1295"><span class="linenos">1295</span></a> <span class="n">after</span><span class="p">,</span> +</span><span id="Generator-1296"><a href="#Generator-1296"><span class="linenos">1296</span></a> <span class="n">pattern</span><span class="p">,</span> +</span><span id="Generator-1297"><a href="#Generator-1297"><span class="linenos">1297</span></a> <span class="n">define</span><span class="p">,</span> +</span><span id="Generator-1298"><a href="#Generator-1298"><span class="linenos">1298</span></a> <span class="p">)</span> +</span><span id="Generator-1299"><a href="#Generator-1299"><span class="linenos">1299</span></a> <span class="p">)</span> +</span><span id="Generator-1300"><a href="#Generator-1300"><span class="linenos">1300</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'MATCH_RECOGNIZE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">body</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1301"><a href="#Generator-1301"><span class="linenos">1301</span></a> +</span><span id="Generator-1302"><a href="#Generator-1302"><span class="linenos">1302</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1303"><a href="#Generator-1303"><span class="linenos">1303</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="Generator-1304"><a href="#Generator-1304"><span class="linenos">1304</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> +</span><span id="Generator-1305"><a href="#Generator-1305"><span class="linenos">1305</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Generator-1306"><a href="#Generator-1306"><span class="linenos">1306</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="Generator-1307"><a href="#Generator-1307"><span class="linenos">1307</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Generator-1308"><a href="#Generator-1308"><span class="linenos">1308</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="Generator-1309"><a href="#Generator-1309"><span class="linenos">1309</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="Generator-1310"><a href="#Generator-1310"><span class="linenos">1310</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="Generator-1311"><a href="#Generator-1311"><span class="linenos">1311</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="Generator-1312"><a href="#Generator-1312"><span class="linenos">1312</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1313"><a href="#Generator-1313"><span class="linenos">1313</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">"windows"</span><span class="p">)</span> +</span><span id="Generator-1314"><a href="#Generator-1314"><span class="linenos">1314</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator-1315"><a href="#Generator-1315"><span class="linenos">1315</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="Generator-1316"><a href="#Generator-1316"><span class="linenos">1316</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="Generator-1317"><a href="#Generator-1317"><span class="linenos">1317</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="Generator-1318"><a href="#Generator-1318"><span class="linenos">1318</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="Generator-1319"><a href="#Generator-1319"><span class="linenos">1319</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="Generator-1320"><a href="#Generator-1320"><span class="linenos">1320</span></a> <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">"offset"</span><span class="p">),</span> +</span><span id="Generator-1321"><a href="#Generator-1321"><span class="linenos">1321</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="Generator-1322"><a href="#Generator-1322"><span class="linenos">1322</span></a> <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">"sample"</span><span class="p">),</span> +</span><span id="Generator-1323"><a href="#Generator-1323"><span class="linenos">1323</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="Generator-1324"><a href="#Generator-1324"><span class="linenos">1324</span></a> <span class="p">)</span> +</span><span id="Generator-1325"><a href="#Generator-1325"><span class="linenos">1325</span></a> +</span><span id="Generator-1326"><a href="#Generator-1326"><span class="linenos">1326</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1327"><a href="#Generator-1327"><span class="linenos">1327</span></a> <span class="n">hint</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">"hint"</span><span class="p">)</span> +</span><span id="Generator-1328"><a href="#Generator-1328"><span class="linenos">1328</span></a> <span class="n">distinct</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">"distinct"</span><span class="p">)</span> +</span><span id="Generator-1329"><a href="#Generator-1329"><span class="linenos">1329</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">distinct</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1330"><a href="#Generator-1330"><span class="linenos">1330</span></a> <span class="n">expressions</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><span id="Generator-1331"><a href="#Generator-1331"><span class="linenos">1331</span></a> <span class="n">expressions</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="n">expressions</span> +</span><span id="Generator-1332"><a href="#Generator-1332"><span class="linenos">1332</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="Generator-1333"><a href="#Generator-1333"><span class="linenos">1333</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator-1334"><a href="#Generator-1334"><span class="linenos">1334</span></a> <span class="sa">f</span><span class="s2">"SELECT</span><span class="si">{</span><span class="n">hint</span><span class="si">}{</span><span class="n">distinct</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Generator-1335"><a href="#Generator-1335"><span class="linenos">1335</span></a> <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">"into"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Generator-1336"><a href="#Generator-1336"><span class="linenos">1336</span></a> <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">"from"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Generator-1337"><a href="#Generator-1337"><span class="linenos">1337</span></a> <span class="p">)</span> +</span><span id="Generator-1338"><a href="#Generator-1338"><span class="linenos">1338</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-1339"><a href="#Generator-1339"><span class="linenos">1339</span></a> +</span><span id="Generator-1340"><a href="#Generator-1340"><span class="linenos">1340</span></a> <span class="k">def</span> <span class="nf">schema_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">Schema</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1341"><a href="#Generator-1341"><span class="linenos">1341</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1342"><a href="#Generator-1342"><span class="linenos">1342</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1343"><a href="#Generator-1343"><span class="linenos">1343</span></a> <span class="n">sql</span> <span class="o">=</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</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="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1344"><a href="#Generator-1344"><span class="linenos">1344</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1345"><a href="#Generator-1345"><span class="linenos">1345</span></a> +</span><span id="Generator-1346"><a href="#Generator-1346"><span class="linenos">1346</span></a> <span class="k">def</span> <span class="nf">star_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">Star</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1347"><a href="#Generator-1347"><span class="linenos">1347</span></a> <span class="n">except_</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">"except"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1348"><a href="#Generator-1348"><span class="linenos">1348</span></a> <span class="n">except_</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'except'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">except_</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">except_</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1349"><a href="#Generator-1349"><span class="linenos">1349</span></a> <span class="n">replace</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">"replace"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1350"><a href="#Generator-1350"><span class="linenos">1350</span></a> <span class="n">replace</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">replace</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">replace</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1351"><a href="#Generator-1351"><span class="linenos">1351</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"*</span><span class="si">{</span><span class="n">except_</span><span class="si">}{</span><span class="n">replace</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1352"><a href="#Generator-1352"><span class="linenos">1352</span></a> +</span><span id="Generator-1353"><a href="#Generator-1353"><span class="linenos">1353</span></a> <span class="k">def</span> <span class="nf">structkwarg_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">StructKwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1354"><a href="#Generator-1354"><span class="linenos">1354</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1355"><a href="#Generator-1355"><span class="linenos">1355</span></a> -</span><span id="Generator-1356"><a href="#Generator-1356"><span class="linenos">1356</span></a> <span class="k">def</span> <span class="nf">placeholder_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">Placeholder</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1357"><a href="#Generator-1357"><span class="linenos">1357</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">":</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">"?"</span> -</span><span id="Generator-1358"><a href="#Generator-1358"><span class="linenos">1358</span></a> -</span><span id="Generator-1359"><a href="#Generator-1359"><span class="linenos">1359</span></a> <span class="k">def</span> <span class="nf">subquery_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">Subquery</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1360"><a href="#Generator-1360"><span class="linenos">1360</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1361"><a href="#Generator-1361"><span class="linenos">1361</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> -</span><span id="Generator-1362"><a href="#Generator-1362"><span class="linenos">1362</span></a> -</span><span id="Generator-1363"><a href="#Generator-1363"><span class="linenos">1363</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="Generator-1364"><a href="#Generator-1364"><span class="linenos">1364</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator-1365"><a href="#Generator-1365"><span class="linenos">1365</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">),</span> -</span><span id="Generator-1366"><a href="#Generator-1366"><span class="linenos">1366</span></a> <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">"pivots"</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="Generator-1367"><a href="#Generator-1367"><span class="linenos">1367</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="Generator-1368"><a href="#Generator-1368"><span class="linenos">1368</span></a> <span class="p">)</span> -</span><span id="Generator-1369"><a href="#Generator-1369"><span class="linenos">1369</span></a> -</span><span id="Generator-1370"><a href="#Generator-1370"><span class="linenos">1370</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Generator-1371"><a href="#Generator-1371"><span class="linenos">1371</span></a> -</span><span id="Generator-1372"><a href="#Generator-1372"><span class="linenos">1372</span></a> <span class="k">def</span> <span class="nf">qualify_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">Qualify</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1373"><a href="#Generator-1373"><span class="linenos">1373</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="Generator-1374"><a href="#Generator-1374"><span class="linenos">1374</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'QUALIFY'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1375"><a href="#Generator-1375"><span class="linenos">1375</span></a> -</span><span id="Generator-1376"><a href="#Generator-1376"><span class="linenos">1376</span></a> <span class="k">def</span> <span class="nf">union_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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1377"><a href="#Generator-1377"><span class="linenos">1377</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="Generator-1378"><a href="#Generator-1378"><span class="linenos">1378</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator-1379"><a href="#Generator-1379"><span class="linenos">1379</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator-1356"><a href="#Generator-1356"><span class="linenos">1356</span></a> <span class="k">def</span> <span class="nf">parameter_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">Parameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1357"><a href="#Generator-1357"><span class="linenos">1357</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1358"><a href="#Generator-1358"><span class="linenos">1358</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1359"><a href="#Generator-1359"><span class="linenos">1359</span></a> <span class="k">return</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">PARAMETER_TOKEN</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1360"><a href="#Generator-1360"><span class="linenos">1360</span></a> +</span><span id="Generator-1361"><a href="#Generator-1361"><span class="linenos">1361</span></a> <span class="k">def</span> <span class="nf">sessionparameter_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">SessionParameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1362"><a href="#Generator-1362"><span class="linenos">1362</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1363"><a href="#Generator-1363"><span class="linenos">1363</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span> +</span><span id="Generator-1364"><a href="#Generator-1364"><span class="linenos">1364</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Generator-1365"><a href="#Generator-1365"><span class="linenos">1365</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">."</span> +</span><span id="Generator-1366"><a href="#Generator-1366"><span class="linenos">1366</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"@@</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1367"><a href="#Generator-1367"><span class="linenos">1367</span></a> +</span><span id="Generator-1368"><a href="#Generator-1368"><span class="linenos">1368</span></a> <span class="k">def</span> <span class="nf">placeholder_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">Placeholder</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1369"><a href="#Generator-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">":</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">"?"</span> +</span><span id="Generator-1370"><a href="#Generator-1370"><span class="linenos">1370</span></a> +</span><span id="Generator-1371"><a href="#Generator-1371"><span class="linenos">1371</span></a> <span class="k">def</span> <span class="nf">subquery_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">Subquery</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1372"><a href="#Generator-1372"><span class="linenos">1372</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1373"><a href="#Generator-1373"><span class="linenos">1373</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> +</span><span id="Generator-1374"><a href="#Generator-1374"><span class="linenos">1374</span></a> +</span><span id="Generator-1375"><a href="#Generator-1375"><span class="linenos">1375</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="Generator-1376"><a href="#Generator-1376"><span class="linenos">1376</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator-1377"><a href="#Generator-1377"><span class="linenos">1377</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">),</span> +</span><span id="Generator-1378"><a href="#Generator-1378"><span class="linenos">1378</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="Generator-1379"><a href="#Generator-1379"><span class="linenos">1379</span></a> <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">"pivots"</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="Generator-1380"><a href="#Generator-1380"><span class="linenos">1380</span></a> <span class="p">)</span> </span><span id="Generator-1381"><a href="#Generator-1381"><span class="linenos">1381</span></a> -</span><span id="Generator-1382"><a href="#Generator-1382"><span class="linenos">1382</span></a> <span class="k">def</span> <span class="nf">union_op</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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1383"><a href="#Generator-1383"><span class="linenos">1383</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">" DISTINCT"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPLICIT_UNION</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1384"><a href="#Generator-1384"><span class="linenos">1384</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">kind</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" ALL"</span> -</span><span id="Generator-1385"><a href="#Generator-1385"><span class="linenos">1385</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNION</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1386"><a href="#Generator-1386"><span class="linenos">1386</span></a> -</span><span id="Generator-1387"><a href="#Generator-1387"><span class="linenos">1387</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="Generator-1388"><a href="#Generator-1388"><span class="linenos">1388</span></a> <span class="n">args</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="Generator-1389"><a href="#Generator-1389"><span class="linenos">1389</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1390"><a href="#Generator-1390"><span class="linenos">1390</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> -</span><span id="Generator-1391"><a href="#Generator-1391"><span class="linenos">1391</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> -</span><span id="Generator-1392"><a href="#Generator-1392"><span class="linenos">1392</span></a> <span class="n">alias</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">columns</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1393"><a href="#Generator-1393"><span class="linenos">1393</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1394"><a href="#Generator-1394"><span class="linenos">1394</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1395"><a href="#Generator-1395"><span class="linenos">1395</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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">alias</span> -</span><span id="Generator-1396"><a href="#Generator-1396"><span class="linenos">1396</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="s2">" WITH ORDINALITY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1397"><a href="#Generator-1397"><span class="linenos">1397</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> -</span><span id="Generator-1398"><a href="#Generator-1398"><span class="linenos">1398</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH OFFSET AS </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">offset</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1399"><a href="#Generator-1399"><span class="linenos">1399</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNNEST(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ordinality</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">offset</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1400"><a href="#Generator-1400"><span class="linenos">1400</span></a> -</span><span id="Generator-1401"><a href="#Generator-1401"><span class="linenos">1401</span></a> <span class="k">def</span> <span class="nf">where_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">Where</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1402"><a href="#Generator-1402"><span class="linenos">1402</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="Generator-1403"><a href="#Generator-1403"><span class="linenos">1403</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'WHERE'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1404"><a href="#Generator-1404"><span class="linenos">1404</span></a> -</span><span id="Generator-1405"><a href="#Generator-1405"><span class="linenos">1405</span></a> <span class="k">def</span> <span class="nf">window_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">Window</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1406"><a href="#Generator-1406"><span class="linenos">1406</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1407"><a href="#Generator-1407"><span class="linenos">1407</span></a> -</span><span id="Generator-1408"><a href="#Generator-1408"><span class="linenos">1408</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1409"><a href="#Generator-1409"><span class="linenos">1409</span></a> -</span><span id="Generator-1410"><a href="#Generator-1410"><span class="linenos">1410</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="Generator-1411"><a href="#Generator-1411"><span class="linenos">1411</span></a> <span class="n">order_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">order_sql</span><span class="p">(</span><span class="n">order</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="k">if</span> <span class="n">order</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1382"><a href="#Generator-1382"><span class="linenos">1382</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-1383"><a href="#Generator-1383"><span class="linenos">1383</span></a> +</span><span id="Generator-1384"><a href="#Generator-1384"><span class="linenos">1384</span></a> <span class="k">def</span> <span class="nf">qualify_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">Qualify</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1385"><a href="#Generator-1385"><span class="linenos">1385</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="Generator-1386"><a href="#Generator-1386"><span class="linenos">1386</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'QUALIFY'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1387"><a href="#Generator-1387"><span class="linenos">1387</span></a> +</span><span id="Generator-1388"><a href="#Generator-1388"><span class="linenos">1388</span></a> <span class="k">def</span> <span class="nf">union_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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1389"><a href="#Generator-1389"><span class="linenos">1389</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="Generator-1390"><a href="#Generator-1390"><span class="linenos">1390</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator-1391"><a href="#Generator-1391"><span class="linenos">1391</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator-1392"><a href="#Generator-1392"><span class="linenos">1392</span></a> <span class="p">)</span> +</span><span id="Generator-1393"><a href="#Generator-1393"><span class="linenos">1393</span></a> +</span><span id="Generator-1394"><a href="#Generator-1394"><span class="linenos">1394</span></a> <span class="k">def</span> <span class="nf">union_op</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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1395"><a href="#Generator-1395"><span class="linenos">1395</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">" DISTINCT"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPLICIT_UNION</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1396"><a href="#Generator-1396"><span class="linenos">1396</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">kind</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" ALL"</span> +</span><span id="Generator-1397"><a href="#Generator-1397"><span class="linenos">1397</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNION</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1398"><a href="#Generator-1398"><span class="linenos">1398</span></a> +</span><span id="Generator-1399"><a href="#Generator-1399"><span class="linenos">1399</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="Generator-1400"><a href="#Generator-1400"><span class="linenos">1400</span></a> <span class="n">args</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="Generator-1401"><a href="#Generator-1401"><span class="linenos">1401</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1402"><a href="#Generator-1402"><span class="linenos">1402</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> +</span><span id="Generator-1403"><a href="#Generator-1403"><span class="linenos">1403</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> +</span><span id="Generator-1404"><a href="#Generator-1404"><span class="linenos">1404</span></a> <span class="n">alias</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">columns</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1405"><a href="#Generator-1405"><span class="linenos">1405</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1406"><a href="#Generator-1406"><span class="linenos">1406</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1407"><a href="#Generator-1407"><span class="linenos">1407</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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">alias</span> +</span><span id="Generator-1408"><a href="#Generator-1408"><span class="linenos">1408</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="s2">" WITH ORDINALITY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1409"><a href="#Generator-1409"><span class="linenos">1409</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> +</span><span id="Generator-1410"><a href="#Generator-1410"><span class="linenos">1410</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH OFFSET AS </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">offset</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1411"><a href="#Generator-1411"><span class="linenos">1411</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNNEST(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ordinality</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">offset</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1412"><a href="#Generator-1412"><span class="linenos">1412</span></a> -</span><span id="Generator-1413"><a href="#Generator-1413"><span class="linenos">1413</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="n">partition</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">partition</span> <span class="ow">and</span> <span class="n">order</span> <span class="k">else</span> <span class="n">partition</span> -</span><span id="Generator-1414"><a href="#Generator-1414"><span class="linenos">1414</span></a> -</span><span id="Generator-1415"><a href="#Generator-1415"><span class="linenos">1415</span></a> <span class="n">spec</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">"spec"</span><span class="p">)</span> -</span><span id="Generator-1416"><a href="#Generator-1416"><span class="linenos">1416</span></a> <span class="n">spec_sql</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">window_spec_sql</span><span class="p">(</span><span class="n">spec</span><span class="p">)</span> <span class="k">if</span> <span class="n">spec</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1417"><a href="#Generator-1417"><span class="linenos">1417</span></a> -</span><span id="Generator-1418"><a href="#Generator-1418"><span class="linenos">1418</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1419"><a href="#Generator-1419"><span class="linenos">1419</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">'AS'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">arg_key</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'windows'</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'OVER'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1420"><a href="#Generator-1420"><span class="linenos">1420</span></a> -</span><span id="Generator-1421"><a href="#Generator-1421"><span class="linenos">1421</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">partition</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">order</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">spec</span> <span class="ow">and</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="Generator-1422"><a href="#Generator-1422"><span class="linenos">1422</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1423"><a href="#Generator-1423"><span class="linenos">1423</span></a> -</span><span id="Generator-1424"><a href="#Generator-1424"><span class="linenos">1424</span></a> <span class="n">window_args</span> <span class="o">=</span> <span class="n">alias</span> <span class="o">+</span> <span class="n">partition_sql</span> <span class="o">+</span> <span class="n">order_sql</span> <span class="o">+</span> <span class="n">spec_sql</span> -</span><span id="Generator-1425"><a href="#Generator-1425"><span class="linenos">1425</span></a> -</span><span id="Generator-1426"><a href="#Generator-1426"><span class="linenos">1426</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">window_args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1427"><a href="#Generator-1427"><span class="linenos">1427</span></a> -</span><span id="Generator-1428"><a href="#Generator-1428"><span class="linenos">1428</span></a> <span class="k">def</span> <span class="nf">partition_by_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">Window</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1429"><a href="#Generator-1429"><span class="linenos">1429</span></a> <span class="n">partition</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">"partition_by"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1430"><a href="#Generator-1430"><span class="linenos">1430</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1431"><a href="#Generator-1431"><span class="linenos">1431</span></a> -</span><span id="Generator-1432"><a href="#Generator-1432"><span class="linenos">1432</span></a> <span class="k">def</span> <span class="nf">window_spec_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">WindowSpec</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1433"><a href="#Generator-1433"><span class="linenos">1433</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator-1434"><a href="#Generator-1434"><span class="linenos">1434</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"start"</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">expression</span><span class="p">,</span> <span class="s2">"start_side"</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="Generator-1435"><a href="#Generator-1435"><span class="linenos">1435</span></a> <span class="n">end</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-1436"><a href="#Generator-1436"><span class="linenos">1436</span></a> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"end"</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">expression</span><span class="p">,</span> <span class="s2">"end_side"</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="Generator-1437"><a href="#Generator-1437"><span class="linenos">1437</span></a> <span class="ow">or</span> <span class="s2">"CURRENT ROW"</span> -</span><span id="Generator-1438"><a href="#Generator-1438"><span class="linenos">1438</span></a> <span class="p">)</span> -</span><span id="Generator-1439"><a href="#Generator-1439"><span class="linenos">1439</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1440"><a href="#Generator-1440"><span class="linenos">1440</span></a> -</span><span id="Generator-1441"><a href="#Generator-1441"><span class="linenos">1441</span></a> <span class="k">def</span> <span class="nf">withingroup_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">WithinGroup</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1442"><a href="#Generator-1442"><span class="linenos">1442</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1443"><a href="#Generator-1443"><span class="linenos">1443</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># order has a leading space</span> -</span><span id="Generator-1444"><a href="#Generator-1444"><span class="linenos">1444</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> WITHIN GROUP (</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1445"><a href="#Generator-1445"><span class="linenos">1445</span></a> -</span><span id="Generator-1446"><a href="#Generator-1446"><span class="linenos">1446</span></a> <span class="k">def</span> <span class="nf">between_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">Between</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1447"><a href="#Generator-1447"><span class="linenos">1447</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1448"><a href="#Generator-1448"><span class="linenos">1448</span></a> <span class="n">low</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">"low"</span><span class="p">)</span> -</span><span id="Generator-1449"><a href="#Generator-1449"><span class="linenos">1449</span></a> <span class="n">high</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">"high"</span><span class="p">)</span> -</span><span id="Generator-1450"><a href="#Generator-1450"><span class="linenos">1450</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">low</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">high</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1451"><a href="#Generator-1451"><span class="linenos">1451</span></a> -</span><span id="Generator-1452"><a href="#Generator-1452"><span class="linenos">1452</span></a> <span class="k">def</span> <span class="nf">bracket_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">Bracket</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1453"><a href="#Generator-1453"><span class="linenos">1453</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> -</span><span id="Generator-1454"><a href="#Generator-1454"><span class="linenos">1454</span></a> <span class="n">expressions_sql</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator-1455"><a href="#Generator-1455"><span class="linenos">1455</span></a> -</span><span id="Generator-1456"><a href="#Generator-1456"><span class="linenos">1456</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">]"</span> +</span><span id="Generator-1413"><a href="#Generator-1413"><span class="linenos">1413</span></a> <span class="k">def</span> <span class="nf">where_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">Where</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1414"><a href="#Generator-1414"><span class="linenos">1414</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="Generator-1415"><a href="#Generator-1415"><span class="linenos">1415</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'WHERE'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1416"><a href="#Generator-1416"><span class="linenos">1416</span></a> +</span><span id="Generator-1417"><a href="#Generator-1417"><span class="linenos">1417</span></a> <span class="k">def</span> <span class="nf">window_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">Window</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1418"><a href="#Generator-1418"><span class="linenos">1418</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1419"><a href="#Generator-1419"><span class="linenos">1419</span></a> +</span><span id="Generator-1420"><a href="#Generator-1420"><span class="linenos">1420</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1421"><a href="#Generator-1421"><span class="linenos">1421</span></a> +</span><span id="Generator-1422"><a href="#Generator-1422"><span class="linenos">1422</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="Generator-1423"><a href="#Generator-1423"><span class="linenos">1423</span></a> <span class="n">order_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">order_sql</span><span class="p">(</span><span class="n">order</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="k">if</span> <span class="n">order</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1424"><a href="#Generator-1424"><span class="linenos">1424</span></a> +</span><span id="Generator-1425"><a href="#Generator-1425"><span class="linenos">1425</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="n">partition</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">partition</span> <span class="ow">and</span> <span class="n">order</span> <span class="k">else</span> <span class="n">partition</span> +</span><span id="Generator-1426"><a href="#Generator-1426"><span class="linenos">1426</span></a> +</span><span id="Generator-1427"><a href="#Generator-1427"><span class="linenos">1427</span></a> <span class="n">spec</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">"spec"</span><span class="p">)</span> +</span><span id="Generator-1428"><a href="#Generator-1428"><span class="linenos">1428</span></a> <span class="n">spec_sql</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">window_spec_sql</span><span class="p">(</span><span class="n">spec</span><span class="p">)</span> <span class="k">if</span> <span class="n">spec</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1429"><a href="#Generator-1429"><span class="linenos">1429</span></a> +</span><span id="Generator-1430"><a href="#Generator-1430"><span class="linenos">1430</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1431"><a href="#Generator-1431"><span class="linenos">1431</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">'AS'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">arg_key</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'windows'</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'OVER'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1432"><a href="#Generator-1432"><span class="linenos">1432</span></a> +</span><span id="Generator-1433"><a href="#Generator-1433"><span class="linenos">1433</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">partition</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">order</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">spec</span> <span class="ow">and</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="Generator-1434"><a href="#Generator-1434"><span class="linenos">1434</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1435"><a href="#Generator-1435"><span class="linenos">1435</span></a> +</span><span id="Generator-1436"><a href="#Generator-1436"><span class="linenos">1436</span></a> <span class="n">window_args</span> <span class="o">=</span> <span class="n">alias</span> <span class="o">+</span> <span class="n">partition_sql</span> <span class="o">+</span> <span class="n">order_sql</span> <span class="o">+</span> <span class="n">spec_sql</span> +</span><span id="Generator-1437"><a href="#Generator-1437"><span class="linenos">1437</span></a> +</span><span id="Generator-1438"><a href="#Generator-1438"><span class="linenos">1438</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">window_args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1439"><a href="#Generator-1439"><span class="linenos">1439</span></a> +</span><span id="Generator-1440"><a href="#Generator-1440"><span class="linenos">1440</span></a> <span class="k">def</span> <span class="nf">partition_by_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">Window</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1441"><a href="#Generator-1441"><span class="linenos">1441</span></a> <span class="n">partition</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">"partition_by"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1442"><a href="#Generator-1442"><span class="linenos">1442</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1443"><a href="#Generator-1443"><span class="linenos">1443</span></a> +</span><span id="Generator-1444"><a href="#Generator-1444"><span class="linenos">1444</span></a> <span class="k">def</span> <span class="nf">window_spec_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">WindowSpec</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1445"><a href="#Generator-1445"><span class="linenos">1445</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator-1446"><a href="#Generator-1446"><span class="linenos">1446</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"start"</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">expression</span><span class="p">,</span> <span class="s2">"start_side"</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="Generator-1447"><a href="#Generator-1447"><span class="linenos">1447</span></a> <span class="n">end</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-1448"><a href="#Generator-1448"><span class="linenos">1448</span></a> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"end"</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">expression</span><span class="p">,</span> <span class="s2">"end_side"</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="Generator-1449"><a href="#Generator-1449"><span class="linenos">1449</span></a> <span class="ow">or</span> <span class="s2">"CURRENT ROW"</span> +</span><span id="Generator-1450"><a href="#Generator-1450"><span class="linenos">1450</span></a> <span class="p">)</span> +</span><span id="Generator-1451"><a href="#Generator-1451"><span class="linenos">1451</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1452"><a href="#Generator-1452"><span class="linenos">1452</span></a> +</span><span id="Generator-1453"><a href="#Generator-1453"><span class="linenos">1453</span></a> <span class="k">def</span> <span class="nf">withingroup_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">WithinGroup</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1454"><a href="#Generator-1454"><span class="linenos">1454</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1455"><a href="#Generator-1455"><span class="linenos">1455</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># order has a leading space</span> +</span><span id="Generator-1456"><a href="#Generator-1456"><span class="linenos">1456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> WITHIN GROUP (</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> </span><span id="Generator-1457"><a href="#Generator-1457"><span class="linenos">1457</span></a> -</span><span id="Generator-1458"><a href="#Generator-1458"><span class="linenos">1458</span></a> <span class="k">def</span> <span class="nf">all_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">All</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1459"><a href="#Generator-1459"><span class="linenos">1459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALL </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1460"><a href="#Generator-1460"><span class="linenos">1460</span></a> -</span><span id="Generator-1461"><a href="#Generator-1461"><span class="linenos">1461</span></a> <span class="k">def</span> <span class="nf">any_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">Any</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1462"><a href="#Generator-1462"><span class="linenos">1462</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1463"><a href="#Generator-1463"><span class="linenos">1463</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Generator-1464"><a href="#Generator-1464"><span class="linenos">1464</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Generator-1465"><a href="#Generator-1465"><span class="linenos">1465</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ANY </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1466"><a href="#Generator-1466"><span class="linenos">1466</span></a> -</span><span id="Generator-1467"><a href="#Generator-1467"><span class="linenos">1467</span></a> <span class="k">def</span> <span class="nf">exists_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">Exists</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1468"><a href="#Generator-1468"><span class="linenos">1468</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXISTS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1458"><a href="#Generator-1458"><span class="linenos">1458</span></a> <span class="k">def</span> <span class="nf">between_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">Between</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1459"><a href="#Generator-1459"><span class="linenos">1459</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1460"><a href="#Generator-1460"><span class="linenos">1460</span></a> <span class="n">low</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">"low"</span><span class="p">)</span> +</span><span id="Generator-1461"><a href="#Generator-1461"><span class="linenos">1461</span></a> <span class="n">high</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">"high"</span><span class="p">)</span> +</span><span id="Generator-1462"><a href="#Generator-1462"><span class="linenos">1462</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">low</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">high</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1463"><a href="#Generator-1463"><span class="linenos">1463</span></a> +</span><span id="Generator-1464"><a href="#Generator-1464"><span class="linenos">1464</span></a> <span class="k">def</span> <span class="nf">bracket_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">Bracket</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1465"><a href="#Generator-1465"><span class="linenos">1465</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> +</span><span id="Generator-1466"><a href="#Generator-1466"><span class="linenos">1466</span></a> <span class="n">expressions_sql</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator-1467"><a href="#Generator-1467"><span class="linenos">1467</span></a> +</span><span id="Generator-1468"><a href="#Generator-1468"><span class="linenos">1468</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">]"</span> </span><span id="Generator-1469"><a href="#Generator-1469"><span class="linenos">1469</span></a> -</span><span id="Generator-1470"><a href="#Generator-1470"><span class="linenos">1470</span></a> <span class="k">def</span> <span class="nf">case_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">Case</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1471"><a href="#Generator-1471"><span class="linenos">1471</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1472"><a href="#Generator-1472"><span class="linenos">1472</span></a> <span class="n">statements</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"CASE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"CASE"</span><span class="p">]</span> -</span><span id="Generator-1473"><a href="#Generator-1473"><span class="linenos">1473</span></a> -</span><span id="Generator-1474"><a href="#Generator-1474"><span class="linenos">1474</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"ifs"</span><span class="p">]:</span> -</span><span id="Generator-1475"><a href="#Generator-1475"><span class="linenos">1475</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WHEN </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="Generator-1476"><a href="#Generator-1476"><span class="linenos">1476</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"THEN </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">'true'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-1477"><a href="#Generator-1477"><span class="linenos">1477</span></a> -</span><span id="Generator-1478"><a href="#Generator-1478"><span class="linenos">1478</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator-1479"><a href="#Generator-1479"><span class="linenos">1479</span></a> -</span><span id="Generator-1480"><a href="#Generator-1480"><span class="linenos">1480</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator-1481"><a href="#Generator-1481"><span class="linenos">1481</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ELSE </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-1482"><a href="#Generator-1482"><span class="linenos">1482</span></a> -</span><span id="Generator-1483"><a href="#Generator-1483"><span class="linenos">1483</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"END"</span><span class="p">)</span> -</span><span id="Generator-1484"><a href="#Generator-1484"><span class="linenos">1484</span></a> -</span><span id="Generator-1485"><a href="#Generator-1485"><span class="linenos">1485</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> -</span><span id="Generator-1486"><a href="#Generator-1486"><span class="linenos">1486</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">),</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1487"><a href="#Generator-1487"><span class="linenos">1487</span></a> -</span><span id="Generator-1488"><a href="#Generator-1488"><span class="linenos">1488</span></a> <span class="k">return</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> +</span><span id="Generator-1470"><a href="#Generator-1470"><span class="linenos">1470</span></a> <span class="k">def</span> <span class="nf">all_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">All</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1471"><a href="#Generator-1471"><span class="linenos">1471</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALL </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1472"><a href="#Generator-1472"><span class="linenos">1472</span></a> +</span><span id="Generator-1473"><a href="#Generator-1473"><span class="linenos">1473</span></a> <span class="k">def</span> <span class="nf">any_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">Any</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1474"><a href="#Generator-1474"><span class="linenos">1474</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1475"><a href="#Generator-1475"><span class="linenos">1475</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Generator-1476"><a href="#Generator-1476"><span class="linenos">1476</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Generator-1477"><a href="#Generator-1477"><span class="linenos">1477</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ANY </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1478"><a href="#Generator-1478"><span class="linenos">1478</span></a> +</span><span id="Generator-1479"><a href="#Generator-1479"><span class="linenos">1479</span></a> <span class="k">def</span> <span class="nf">exists_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">Exists</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1480"><a href="#Generator-1480"><span class="linenos">1480</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXISTS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1481"><a href="#Generator-1481"><span class="linenos">1481</span></a> +</span><span id="Generator-1482"><a href="#Generator-1482"><span class="linenos">1482</span></a> <span class="k">def</span> <span class="nf">case_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">Case</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1483"><a href="#Generator-1483"><span class="linenos">1483</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1484"><a href="#Generator-1484"><span class="linenos">1484</span></a> <span class="n">statements</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"CASE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"CASE"</span><span class="p">]</span> +</span><span id="Generator-1485"><a href="#Generator-1485"><span class="linenos">1485</span></a> +</span><span id="Generator-1486"><a href="#Generator-1486"><span class="linenos">1486</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"ifs"</span><span class="p">]:</span> +</span><span id="Generator-1487"><a href="#Generator-1487"><span class="linenos">1487</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WHEN </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="Generator-1488"><a href="#Generator-1488"><span class="linenos">1488</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"THEN </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">'true'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="Generator-1489"><a href="#Generator-1489"><span class="linenos">1489</span></a> -</span><span id="Generator-1490"><a href="#Generator-1490"><span class="linenos">1490</span></a> <span class="k">def</span> <span class="nf">constraint_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">Constraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1491"><a href="#Generator-1491"><span class="linenos">1491</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1492"><a href="#Generator-1492"><span class="linenos">1492</span></a> <span class="n">expressions</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="Generator-1493"><a href="#Generator-1493"><span class="linenos">1493</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1490"><a href="#Generator-1490"><span class="linenos">1490</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator-1491"><a href="#Generator-1491"><span class="linenos">1491</span></a> +</span><span id="Generator-1492"><a href="#Generator-1492"><span class="linenos">1492</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator-1493"><a href="#Generator-1493"><span class="linenos">1493</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ELSE </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="Generator-1494"><a href="#Generator-1494"><span class="linenos">1494</span></a> -</span><span id="Generator-1495"><a href="#Generator-1495"><span class="linenos">1495</span></a> <span class="k">def</span> <span class="nf">extract_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">Extract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1496"><a href="#Generator-1496"><span class="linenos">1496</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1497"><a href="#Generator-1497"><span class="linenos">1497</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-1498"><a href="#Generator-1498"><span class="linenos">1498</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXTRACT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FROM </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1495"><a href="#Generator-1495"><span class="linenos">1495</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"END"</span><span class="p">)</span> +</span><span id="Generator-1496"><a href="#Generator-1496"><span class="linenos">1496</span></a> +</span><span id="Generator-1497"><a href="#Generator-1497"><span class="linenos">1497</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> +</span><span id="Generator-1498"><a href="#Generator-1498"><span class="linenos">1498</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">),</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="Generator-1499"><a href="#Generator-1499"><span class="linenos">1499</span></a> -</span><span id="Generator-1500"><a href="#Generator-1500"><span class="linenos">1500</span></a> <span class="k">def</span> <span class="nf">trim_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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1501"><a href="#Generator-1501"><span class="linenos">1501</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> -</span><span id="Generator-1502"><a href="#Generator-1502"><span class="linenos">1502</span></a> -</span><span id="Generator-1503"><a href="#Generator-1503"><span class="linenos">1503</span></a> <span class="k">if</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"LEADING"</span><span class="p">:</span> -</span><span id="Generator-1504"><a href="#Generator-1504"><span class="linenos">1504</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"LTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Generator-1505"><a href="#Generator-1505"><span class="linenos">1505</span></a> <span class="k">elif</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"TRAILING"</span><span class="p">:</span> -</span><span id="Generator-1506"><a href="#Generator-1506"><span class="linenos">1506</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"RTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Generator-1507"><a href="#Generator-1507"><span class="linenos">1507</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1508"><a href="#Generator-1508"><span class="linenos">1508</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1509"><a href="#Generator-1509"><span class="linenos">1509</span></a> -</span><span id="Generator-1510"><a href="#Generator-1510"><span class="linenos">1510</span></a> <span class="k">def</span> <span class="nf">concat_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">Concat</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1511"><a href="#Generator-1511"><span class="linenos">1511</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Generator-1512"><a href="#Generator-1512"><span class="linenos">1512</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="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> -</span><span id="Generator-1513"><a href="#Generator-1513"><span class="linenos">1513</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1500"><a href="#Generator-1500"><span class="linenos">1500</span></a> <span class="k">return</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> +</span><span id="Generator-1501"><a href="#Generator-1501"><span class="linenos">1501</span></a> +</span><span id="Generator-1502"><a href="#Generator-1502"><span class="linenos">1502</span></a> <span class="k">def</span> <span class="nf">constraint_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">Constraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1503"><a href="#Generator-1503"><span class="linenos">1503</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1504"><a href="#Generator-1504"><span class="linenos">1504</span></a> <span class="n">expressions</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="Generator-1505"><a href="#Generator-1505"><span class="linenos">1505</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1506"><a href="#Generator-1506"><span class="linenos">1506</span></a> +</span><span id="Generator-1507"><a href="#Generator-1507"><span class="linenos">1507</span></a> <span class="k">def</span> <span class="nf">extract_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">Extract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1508"><a href="#Generator-1508"><span class="linenos">1508</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1509"><a href="#Generator-1509"><span class="linenos">1509</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-1510"><a href="#Generator-1510"><span class="linenos">1510</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXTRACT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FROM </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1511"><a href="#Generator-1511"><span class="linenos">1511</span></a> +</span><span id="Generator-1512"><a href="#Generator-1512"><span class="linenos">1512</span></a> <span class="k">def</span> <span class="nf">trim_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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1513"><a href="#Generator-1513"><span class="linenos">1513</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> </span><span id="Generator-1514"><a href="#Generator-1514"><span class="linenos">1514</span></a> -</span><span id="Generator-1515"><a href="#Generator-1515"><span class="linenos">1515</span></a> <span class="k">def</span> <span class="nf">check_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">Check</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1516"><a href="#Generator-1516"><span class="linenos">1516</span></a> <span class="n">this</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="n">key</span><span class="o">=</span><span class="s2">"this"</span><span class="p">)</span> -</span><span id="Generator-1517"><a href="#Generator-1517"><span class="linenos">1517</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECK (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1518"><a href="#Generator-1518"><span class="linenos">1518</span></a> -</span><span id="Generator-1519"><a href="#Generator-1519"><span class="linenos">1519</span></a> <span class="k">def</span> <span class="nf">foreignkey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1520"><a href="#Generator-1520"><span class="linenos">1520</span></a> <span class="n">expressions</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="Generator-1521"><a href="#Generator-1521"><span class="linenos">1521</span></a> <span class="n">reference</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">"reference"</span><span class="p">)</span> -</span><span id="Generator-1522"><a href="#Generator-1522"><span class="linenos">1522</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">reference</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">reference</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1523"><a href="#Generator-1523"><span class="linenos">1523</span></a> <span class="n">delete</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">"delete"</span><span class="p">)</span> -</span><span id="Generator-1524"><a href="#Generator-1524"><span class="linenos">1524</span></a> <span class="n">delete</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON DELETE </span><span class="si">{</span><span class="n">delete</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">delete</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1525"><a href="#Generator-1525"><span class="linenos">1525</span></a> <span class="n">update</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">"update"</span><span class="p">)</span> -</span><span id="Generator-1526"><a href="#Generator-1526"><span class="linenos">1526</span></a> <span class="n">update</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON UPDATE </span><span class="si">{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">update</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1527"><a href="#Generator-1527"><span class="linenos">1527</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOREIGN KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">reference</span><span class="si">}{</span><span class="n">delete</span><span class="si">}{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1528"><a href="#Generator-1528"><span class="linenos">1528</span></a> -</span><span id="Generator-1529"><a href="#Generator-1529"><span class="linenos">1529</span></a> <span class="k">def</span> <span class="nf">primarykey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1530"><a href="#Generator-1530"><span class="linenos">1530</span></a> <span class="n">expressions</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="Generator-1531"><a href="#Generator-1531"><span class="linenos">1531</span></a> <span class="n">options</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="s2">"options"</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="Generator-1532"><a href="#Generator-1532"><span class="linenos">1532</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1533"><a href="#Generator-1533"><span class="linenos">1533</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1534"><a href="#Generator-1534"><span class="linenos">1534</span></a> -</span><span id="Generator-1535"><a href="#Generator-1535"><span class="linenos">1535</span></a> <span class="k">def</span> <span class="nf">unique_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">Unique</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1536"><a href="#Generator-1536"><span class="linenos">1536</span></a> <span class="n">columns</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">"expressions"</span><span class="p">)</span> -</span><span id="Generator-1537"><a href="#Generator-1537"><span class="linenos">1537</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNIQUE (</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1538"><a href="#Generator-1538"><span class="linenos">1538</span></a> -</span><span id="Generator-1539"><a href="#Generator-1539"><span class="linenos">1539</span></a> <span class="k">def</span> <span class="nf">if_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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1540"><a href="#Generator-1540"><span class="linenos">1540</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">case_sql</span><span class="p">(</span> -</span><span id="Generator-1541"><a href="#Generator-1541"><span class="linenos">1541</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Case</span><span class="p">(</span><span class="n">ifs</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()],</span> <span class="n">default</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">"false"</span><span class="p">))</span> -</span><span id="Generator-1542"><a href="#Generator-1542"><span class="linenos">1542</span></a> <span class="p">)</span> -</span><span id="Generator-1543"><a href="#Generator-1543"><span class="linenos">1543</span></a> -</span><span id="Generator-1544"><a href="#Generator-1544"><span class="linenos">1544</span></a> <span class="k">def</span> <span class="nf">in_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">In</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1545"><a href="#Generator-1545"><span class="linenos">1545</span></a> <span class="n">query</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">"query"</span><span class="p">)</span> -</span><span id="Generator-1546"><a href="#Generator-1546"><span class="linenos">1546</span></a> <span class="n">unnest</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">"unnest"</span><span class="p">)</span> -</span><span id="Generator-1547"><a href="#Generator-1547"><span class="linenos">1547</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> -</span><span id="Generator-1548"><a href="#Generator-1548"><span class="linenos">1548</span></a> <span class="n">is_global</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1549"><a href="#Generator-1549"><span class="linenos">1549</span></a> -</span><span id="Generator-1550"><a href="#Generator-1550"><span class="linenos">1550</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> -</span><span id="Generator-1551"><a href="#Generator-1551"><span class="linenos">1551</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> -</span><span id="Generator-1552"><a href="#Generator-1552"><span class="linenos">1552</span></a> <span class="k">elif</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="Generator-1553"><a href="#Generator-1553"><span class="linenos">1553</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">in_unnest_op</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span> -</span><span id="Generator-1554"><a href="#Generator-1554"><span class="linenos">1554</span></a> <span class="k">elif</span> <span class="n">field</span><span class="p">:</span> -</span><span id="Generator-1555"><a href="#Generator-1555"><span class="linenos">1555</span></a> <span class="n">in_sql</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">field</span><span class="p">)</span> -</span><span id="Generator-1556"><a href="#Generator-1556"><span class="linenos">1556</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1557"><a href="#Generator-1557"><span class="linenos">1557</span></a> <span class="n">in_sql</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1558"><a href="#Generator-1558"><span class="linenos">1558</span></a> -</span><span id="Generator-1559"><a href="#Generator-1559"><span class="linenos">1559</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">is_global</span><span class="si">}</span><span class="s2"> IN </span><span class="si">{</span><span class="n">in_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1560"><a href="#Generator-1560"><span class="linenos">1560</span></a> -</span><span id="Generator-1561"><a href="#Generator-1561"><span class="linenos">1561</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</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="Generator-1562"><a href="#Generator-1562"><span class="linenos">1562</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(SELECT </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">unnest</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1563"><a href="#Generator-1563"><span class="linenos">1563</span></a> -</span><span id="Generator-1564"><a href="#Generator-1564"><span class="linenos">1564</span></a> <span class="k">def</span> <span class="nf">interval_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">Interval</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1565"><a href="#Generator-1565"><span class="linenos">1565</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1566"><a href="#Generator-1566"><span class="linenos">1566</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> -</span><span id="Generator-1567"><a href="#Generator-1567"><span class="linenos">1567</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-1568"><a href="#Generator-1568"><span class="linenos">1568</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1569"><a href="#Generator-1569"><span class="linenos">1569</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Paren</span><span class="p">)</span> -</span><span id="Generator-1570"><a href="#Generator-1570"><span class="linenos">1570</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1571"><a href="#Generator-1571"><span class="linenos">1571</span></a> <span class="p">)</span> -</span><span id="Generator-1572"><a href="#Generator-1572"><span class="linenos">1572</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1573"><a href="#Generator-1573"><span class="linenos">1573</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator-1574"><a href="#Generator-1574"><span class="linenos">1574</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="Generator-1575"><a href="#Generator-1575"><span class="linenos">1575</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1576"><a href="#Generator-1576"><span class="linenos">1576</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERVAL</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1577"><a href="#Generator-1577"><span class="linenos">1577</span></a> -</span><span id="Generator-1578"><a href="#Generator-1578"><span class="linenos">1578</span></a> <span class="k">def</span> <span class="nf">return_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">Return</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1579"><a href="#Generator-1579"><span class="linenos">1579</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURN </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">expression</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><span id="Generator-1580"><a href="#Generator-1580"><span class="linenos">1580</span></a> -</span><span id="Generator-1581"><a href="#Generator-1581"><span class="linenos">1581</span></a> <span class="k">def</span> <span class="nf">reference_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">Reference</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1582"><a href="#Generator-1582"><span class="linenos">1582</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1583"><a href="#Generator-1583"><span class="linenos">1583</span></a> <span class="n">expressions</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="Generator-1584"><a href="#Generator-1584"><span class="linenos">1584</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1585"><a href="#Generator-1585"><span class="linenos">1585</span></a> <span class="n">options</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="s2">"options"</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="Generator-1586"><a href="#Generator-1586"><span class="linenos">1586</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1587"><a href="#Generator-1587"><span class="linenos">1587</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REFERENCES </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1588"><a href="#Generator-1588"><span class="linenos">1588</span></a> -</span><span id="Generator-1589"><a href="#Generator-1589"><span class="linenos">1589</span></a> <span class="k">def</span> <span class="nf">anonymous_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">Anonymous</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1590"><a href="#Generator-1590"><span class="linenos">1590</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator-1591"><a href="#Generator-1591"><span class="linenos">1591</span></a> -</span><span id="Generator-1592"><a href="#Generator-1592"><span class="linenos">1592</span></a> <span class="k">def</span> <span class="nf">paren_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">Paren</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1593"><a href="#Generator-1593"><span class="linenos">1593</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">unnest</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="Generator-1594"><a href="#Generator-1594"><span class="linenos">1594</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator-1595"><a href="#Generator-1595"><span class="linenos">1595</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1596"><a href="#Generator-1596"><span class="linenos">1596</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</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="Generator-1597"><a href="#Generator-1597"><span class="linenos">1597</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1598"><a href="#Generator-1598"><span class="linenos">1598</span></a> -</span><span id="Generator-1599"><a href="#Generator-1599"><span class="linenos">1599</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-1515"><a href="#Generator-1515"><span class="linenos">1515</span></a> <span class="k">if</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"LEADING"</span><span class="p">:</span> +</span><span id="Generator-1516"><a href="#Generator-1516"><span class="linenos">1516</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"LTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Generator-1517"><a href="#Generator-1517"><span class="linenos">1517</span></a> <span class="k">elif</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"TRAILING"</span><span class="p">:</span> +</span><span id="Generator-1518"><a href="#Generator-1518"><span class="linenos">1518</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"RTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Generator-1519"><a href="#Generator-1519"><span class="linenos">1519</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1520"><a href="#Generator-1520"><span class="linenos">1520</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1521"><a href="#Generator-1521"><span class="linenos">1521</span></a> +</span><span id="Generator-1522"><a href="#Generator-1522"><span class="linenos">1522</span></a> <span class="k">def</span> <span class="nf">concat_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">Concat</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1523"><a href="#Generator-1523"><span class="linenos">1523</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Generator-1524"><a href="#Generator-1524"><span class="linenos">1524</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="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> +</span><span id="Generator-1525"><a href="#Generator-1525"><span class="linenos">1525</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1526"><a href="#Generator-1526"><span class="linenos">1526</span></a> +</span><span id="Generator-1527"><a href="#Generator-1527"><span class="linenos">1527</span></a> <span class="k">def</span> <span class="nf">check_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">Check</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1528"><a href="#Generator-1528"><span class="linenos">1528</span></a> <span class="n">this</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="n">key</span><span class="o">=</span><span class="s2">"this"</span><span class="p">)</span> +</span><span id="Generator-1529"><a href="#Generator-1529"><span class="linenos">1529</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECK (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1530"><a href="#Generator-1530"><span class="linenos">1530</span></a> +</span><span id="Generator-1531"><a href="#Generator-1531"><span class="linenos">1531</span></a> <span class="k">def</span> <span class="nf">foreignkey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1532"><a href="#Generator-1532"><span class="linenos">1532</span></a> <span class="n">expressions</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="Generator-1533"><a href="#Generator-1533"><span class="linenos">1533</span></a> <span class="n">reference</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">"reference"</span><span class="p">)</span> +</span><span id="Generator-1534"><a href="#Generator-1534"><span class="linenos">1534</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">reference</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">reference</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1535"><a href="#Generator-1535"><span class="linenos">1535</span></a> <span class="n">delete</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">"delete"</span><span class="p">)</span> +</span><span id="Generator-1536"><a href="#Generator-1536"><span class="linenos">1536</span></a> <span class="n">delete</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON DELETE </span><span class="si">{</span><span class="n">delete</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">delete</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1537"><a href="#Generator-1537"><span class="linenos">1537</span></a> <span class="n">update</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">"update"</span><span class="p">)</span> +</span><span id="Generator-1538"><a href="#Generator-1538"><span class="linenos">1538</span></a> <span class="n">update</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON UPDATE </span><span class="si">{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">update</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1539"><a href="#Generator-1539"><span class="linenos">1539</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOREIGN KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">reference</span><span class="si">}{</span><span class="n">delete</span><span class="si">}{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1540"><a href="#Generator-1540"><span class="linenos">1540</span></a> +</span><span id="Generator-1541"><a href="#Generator-1541"><span class="linenos">1541</span></a> <span class="k">def</span> <span class="nf">primarykey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1542"><a href="#Generator-1542"><span class="linenos">1542</span></a> <span class="n">expressions</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="Generator-1543"><a href="#Generator-1543"><span class="linenos">1543</span></a> <span class="n">options</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="s2">"options"</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="Generator-1544"><a href="#Generator-1544"><span class="linenos">1544</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1545"><a href="#Generator-1545"><span class="linenos">1545</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1546"><a href="#Generator-1546"><span class="linenos">1546</span></a> +</span><span id="Generator-1547"><a href="#Generator-1547"><span class="linenos">1547</span></a> <span class="k">def</span> <span class="nf">unique_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">Unique</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1548"><a href="#Generator-1548"><span class="linenos">1548</span></a> <span class="n">columns</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">"expressions"</span><span class="p">)</span> +</span><span id="Generator-1549"><a href="#Generator-1549"><span class="linenos">1549</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNIQUE (</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1550"><a href="#Generator-1550"><span class="linenos">1550</span></a> +</span><span id="Generator-1551"><a href="#Generator-1551"><span class="linenos">1551</span></a> <span class="k">def</span> <span class="nf">if_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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1552"><a href="#Generator-1552"><span class="linenos">1552</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">case_sql</span><span class="p">(</span> +</span><span id="Generator-1553"><a href="#Generator-1553"><span class="linenos">1553</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Case</span><span class="p">(</span><span class="n">ifs</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()],</span> <span class="n">default</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">"false"</span><span class="p">))</span> +</span><span id="Generator-1554"><a href="#Generator-1554"><span class="linenos">1554</span></a> <span class="p">)</span> +</span><span id="Generator-1555"><a href="#Generator-1555"><span class="linenos">1555</span></a> +</span><span id="Generator-1556"><a href="#Generator-1556"><span class="linenos">1556</span></a> <span class="k">def</span> <span class="nf">in_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">In</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1557"><a href="#Generator-1557"><span class="linenos">1557</span></a> <span class="n">query</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">"query"</span><span class="p">)</span> +</span><span id="Generator-1558"><a href="#Generator-1558"><span class="linenos">1558</span></a> <span class="n">unnest</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">"unnest"</span><span class="p">)</span> +</span><span id="Generator-1559"><a href="#Generator-1559"><span class="linenos">1559</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> +</span><span id="Generator-1560"><a href="#Generator-1560"><span class="linenos">1560</span></a> <span class="n">is_global</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1561"><a href="#Generator-1561"><span class="linenos">1561</span></a> +</span><span id="Generator-1562"><a href="#Generator-1562"><span class="linenos">1562</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> +</span><span id="Generator-1563"><a href="#Generator-1563"><span class="linenos">1563</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> +</span><span id="Generator-1564"><a href="#Generator-1564"><span class="linenos">1564</span></a> <span class="k">elif</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="Generator-1565"><a href="#Generator-1565"><span class="linenos">1565</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">in_unnest_op</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span> +</span><span id="Generator-1566"><a href="#Generator-1566"><span class="linenos">1566</span></a> <span class="k">elif</span> <span class="n">field</span><span class="p">:</span> +</span><span id="Generator-1567"><a href="#Generator-1567"><span class="linenos">1567</span></a> <span class="n">in_sql</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">field</span><span class="p">)</span> +</span><span id="Generator-1568"><a href="#Generator-1568"><span class="linenos">1568</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1569"><a href="#Generator-1569"><span class="linenos">1569</span></a> <span class="n">in_sql</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1570"><a href="#Generator-1570"><span class="linenos">1570</span></a> +</span><span id="Generator-1571"><a href="#Generator-1571"><span class="linenos">1571</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">is_global</span><span class="si">}</span><span class="s2"> IN </span><span class="si">{</span><span class="n">in_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1572"><a href="#Generator-1572"><span class="linenos">1572</span></a> +</span><span id="Generator-1573"><a href="#Generator-1573"><span class="linenos">1573</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</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="Generator-1574"><a href="#Generator-1574"><span class="linenos">1574</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(SELECT </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">unnest</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1575"><a href="#Generator-1575"><span class="linenos">1575</span></a> +</span><span id="Generator-1576"><a href="#Generator-1576"><span class="linenos">1576</span></a> <span class="k">def</span> <span class="nf">interval_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">Interval</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1577"><a href="#Generator-1577"><span class="linenos">1577</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1578"><a href="#Generator-1578"><span class="linenos">1578</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> +</span><span id="Generator-1579"><a href="#Generator-1579"><span class="linenos">1579</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-1580"><a href="#Generator-1580"><span class="linenos">1580</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1581"><a href="#Generator-1581"><span class="linenos">1581</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Paren</span><span class="p">)</span> +</span><span id="Generator-1582"><a href="#Generator-1582"><span class="linenos">1582</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1583"><a href="#Generator-1583"><span class="linenos">1583</span></a> <span class="p">)</span> +</span><span id="Generator-1584"><a href="#Generator-1584"><span class="linenos">1584</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1585"><a href="#Generator-1585"><span class="linenos">1585</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator-1586"><a href="#Generator-1586"><span class="linenos">1586</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="Generator-1587"><a href="#Generator-1587"><span class="linenos">1587</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1588"><a href="#Generator-1588"><span class="linenos">1588</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERVAL</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1589"><a href="#Generator-1589"><span class="linenos">1589</span></a> +</span><span id="Generator-1590"><a href="#Generator-1590"><span class="linenos">1590</span></a> <span class="k">def</span> <span class="nf">return_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">Return</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1591"><a href="#Generator-1591"><span class="linenos">1591</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURN </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">expression</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><span id="Generator-1592"><a href="#Generator-1592"><span class="linenos">1592</span></a> +</span><span id="Generator-1593"><a href="#Generator-1593"><span class="linenos">1593</span></a> <span class="k">def</span> <span class="nf">reference_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">Reference</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1594"><a href="#Generator-1594"><span class="linenos">1594</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1595"><a href="#Generator-1595"><span class="linenos">1595</span></a> <span class="n">expressions</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="Generator-1596"><a href="#Generator-1596"><span class="linenos">1596</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1597"><a href="#Generator-1597"><span class="linenos">1597</span></a> <span class="n">options</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="s2">"options"</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="Generator-1598"><a href="#Generator-1598"><span class="linenos">1598</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1599"><a href="#Generator-1599"><span class="linenos">1599</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REFERENCES </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1600"><a href="#Generator-1600"><span class="linenos">1600</span></a> -</span><span id="Generator-1601"><a href="#Generator-1601"><span class="linenos">1601</span></a> <span class="k">def</span> <span class="nf">neg_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">Neg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1602"><a href="#Generator-1602"><span class="linenos">1602</span></a> <span class="c1"># This makes sure we don't convert "- - 5" to "--5", which is a comment</span> -</span><span id="Generator-1603"><a href="#Generator-1603"><span class="linenos">1603</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1604"><a href="#Generator-1604"><span class="linenos">1604</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">this_sql</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1605"><a href="#Generator-1605"><span class="linenos">1605</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"-</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1606"><a href="#Generator-1606"><span class="linenos">1606</span></a> -</span><span id="Generator-1607"><a href="#Generator-1607"><span class="linenos">1607</span></a> <span class="k">def</span> <span class="nf">not_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">Not</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1608"><a href="#Generator-1608"><span class="linenos">1608</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"NOT </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">expression</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><span id="Generator-1609"><a href="#Generator-1609"><span class="linenos">1609</span></a> -</span><span id="Generator-1610"><a href="#Generator-1610"><span class="linenos">1610</span></a> <span class="k">def</span> <span class="nf">alias_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">Alias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1611"><a href="#Generator-1611"><span class="linenos">1611</span></a> <span class="n">to_sql</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">"alias"</span><span class="p">)</span> -</span><span id="Generator-1612"><a href="#Generator-1612"><span class="linenos">1612</span></a> <span class="n">to_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">to_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1613"><a href="#Generator-1613"><span class="linenos">1613</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1614"><a href="#Generator-1614"><span class="linenos">1614</span></a> -</span><span id="Generator-1615"><a href="#Generator-1615"><span class="linenos">1615</span></a> <span class="k">def</span> <span class="nf">aliases_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">Aliases</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1616"><a href="#Generator-1616"><span class="linenos">1616</span></a> <span class="k">return</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">expression</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"> AS (</span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1617"><a href="#Generator-1617"><span class="linenos">1617</span></a> -</span><span id="Generator-1618"><a href="#Generator-1618"><span class="linenos">1618</span></a> <span class="k">def</span> <span class="nf">attimezone_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">AtTimeZone</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1619"><a href="#Generator-1619"><span class="linenos">1619</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1620"><a href="#Generator-1620"><span class="linenos">1620</span></a> <span class="n">zone</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">"zone"</span><span class="p">)</span> -</span><span id="Generator-1621"><a href="#Generator-1621"><span class="linenos">1621</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1622"><a href="#Generator-1622"><span class="linenos">1622</span></a> -</span><span id="Generator-1623"><a href="#Generator-1623"><span class="linenos">1623</span></a> <span class="k">def</span> <span class="nf">add_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">Add</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1624"><a href="#Generator-1624"><span class="linenos">1624</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> -</span><span id="Generator-1625"><a href="#Generator-1625"><span class="linenos">1625</span></a> -</span><span id="Generator-1626"><a href="#Generator-1626"><span class="linenos">1626</span></a> <span class="k">def</span> <span class="nf">and_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">And</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1627"><a href="#Generator-1627"><span class="linenos">1627</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">)</span> -</span><span id="Generator-1628"><a href="#Generator-1628"><span class="linenos">1628</span></a> -</span><span id="Generator-1629"><a href="#Generator-1629"><span class="linenos">1629</span></a> <span class="k">def</span> <span class="nf">connector_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">Connector</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1630"><a href="#Generator-1630"><span class="linenos">1630</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator-1631"><a href="#Generator-1631"><span class="linenos">1631</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">op</span><span class="p">)</span> -</span><span id="Generator-1632"><a href="#Generator-1632"><span class="linenos">1632</span></a> -</span><span id="Generator-1633"><a href="#Generator-1633"><span class="linenos">1633</span></a> <span class="n">sqls</span> <span class="o">=</span> <span class="nb">tuple</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="n">unnest</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> -</span><span id="Generator-1634"><a href="#Generator-1634"><span class="linenos">1634</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-1635"><a href="#Generator-1635"><span class="linenos">1635</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">op</span><span class="si">}</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> -</span><span id="Generator-1636"><a href="#Generator-1636"><span class="linenos">1636</span></a> -</span><span id="Generator-1637"><a href="#Generator-1637"><span class="linenos">1637</span></a> <span class="k">def</span> <span class="nf">bitwiseand_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">BitwiseAnd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1638"><a href="#Generator-1638"><span class="linenos">1638</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"&"</span><span class="p">)</span> -</span><span id="Generator-1639"><a href="#Generator-1639"><span class="linenos">1639</span></a> -</span><span id="Generator-1640"><a href="#Generator-1640"><span class="linenos">1640</span></a> <span class="k">def</span> <span class="nf">bitwiseleftshift_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">BitwiseLeftShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1641"><a href="#Generator-1641"><span class="linenos">1641</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<<"</span><span class="p">)</span> -</span><span id="Generator-1642"><a href="#Generator-1642"><span class="linenos">1642</span></a> -</span><span id="Generator-1643"><a href="#Generator-1643"><span class="linenos">1643</span></a> <span class="k">def</span> <span class="nf">bitwisenot_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">BitwiseNot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1644"><a href="#Generator-1644"><span class="linenos">1644</span></a> <span class="k">return</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">expression</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><span id="Generator-1645"><a href="#Generator-1645"><span class="linenos">1645</span></a> -</span><span id="Generator-1646"><a href="#Generator-1646"><span class="linenos">1646</span></a> <span class="k">def</span> <span class="nf">bitwiseor_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">BitwiseOr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1647"><a href="#Generator-1647"><span class="linenos">1647</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"|"</span><span class="p">)</span> +</span><span id="Generator-1601"><a href="#Generator-1601"><span class="linenos">1601</span></a> <span class="k">def</span> <span class="nf">anonymous_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">Anonymous</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1602"><a href="#Generator-1602"><span class="linenos">1602</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator-1603"><a href="#Generator-1603"><span class="linenos">1603</span></a> +</span><span id="Generator-1604"><a href="#Generator-1604"><span class="linenos">1604</span></a> <span class="k">def</span> <span class="nf">paren_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">Paren</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1605"><a href="#Generator-1605"><span class="linenos">1605</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">unnest</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="Generator-1606"><a href="#Generator-1606"><span class="linenos">1606</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator-1607"><a href="#Generator-1607"><span class="linenos">1607</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1608"><a href="#Generator-1608"><span class="linenos">1608</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</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="Generator-1609"><a href="#Generator-1609"><span class="linenos">1609</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1610"><a href="#Generator-1610"><span class="linenos">1610</span></a> +</span><span id="Generator-1611"><a href="#Generator-1611"><span class="linenos">1611</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator-1612"><a href="#Generator-1612"><span class="linenos">1612</span></a> +</span><span id="Generator-1613"><a href="#Generator-1613"><span class="linenos">1613</span></a> <span class="k">def</span> <span class="nf">neg_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">Neg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1614"><a href="#Generator-1614"><span class="linenos">1614</span></a> <span class="c1"># This makes sure we don't convert "- - 5" to "--5", which is a comment</span> +</span><span id="Generator-1615"><a href="#Generator-1615"><span class="linenos">1615</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1616"><a href="#Generator-1616"><span class="linenos">1616</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">this_sql</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1617"><a href="#Generator-1617"><span class="linenos">1617</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"-</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1618"><a href="#Generator-1618"><span class="linenos">1618</span></a> +</span><span id="Generator-1619"><a href="#Generator-1619"><span class="linenos">1619</span></a> <span class="k">def</span> <span class="nf">not_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">Not</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1620"><a href="#Generator-1620"><span class="linenos">1620</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"NOT </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">expression</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><span id="Generator-1621"><a href="#Generator-1621"><span class="linenos">1621</span></a> +</span><span id="Generator-1622"><a href="#Generator-1622"><span class="linenos">1622</span></a> <span class="k">def</span> <span class="nf">alias_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">Alias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1623"><a href="#Generator-1623"><span class="linenos">1623</span></a> <span class="n">to_sql</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">"alias"</span><span class="p">)</span> +</span><span id="Generator-1624"><a href="#Generator-1624"><span class="linenos">1624</span></a> <span class="n">to_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">to_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1625"><a href="#Generator-1625"><span class="linenos">1625</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1626"><a href="#Generator-1626"><span class="linenos">1626</span></a> +</span><span id="Generator-1627"><a href="#Generator-1627"><span class="linenos">1627</span></a> <span class="k">def</span> <span class="nf">aliases_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">Aliases</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1628"><a href="#Generator-1628"><span class="linenos">1628</span></a> <span class="k">return</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">expression</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"> AS (</span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1629"><a href="#Generator-1629"><span class="linenos">1629</span></a> +</span><span id="Generator-1630"><a href="#Generator-1630"><span class="linenos">1630</span></a> <span class="k">def</span> <span class="nf">attimezone_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">AtTimeZone</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1631"><a href="#Generator-1631"><span class="linenos">1631</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1632"><a href="#Generator-1632"><span class="linenos">1632</span></a> <span class="n">zone</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">"zone"</span><span class="p">)</span> +</span><span id="Generator-1633"><a href="#Generator-1633"><span class="linenos">1633</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1634"><a href="#Generator-1634"><span class="linenos">1634</span></a> +</span><span id="Generator-1635"><a href="#Generator-1635"><span class="linenos">1635</span></a> <span class="k">def</span> <span class="nf">add_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">Add</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1636"><a href="#Generator-1636"><span class="linenos">1636</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> +</span><span id="Generator-1637"><a href="#Generator-1637"><span class="linenos">1637</span></a> +</span><span id="Generator-1638"><a href="#Generator-1638"><span class="linenos">1638</span></a> <span class="k">def</span> <span class="nf">and_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">And</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1639"><a href="#Generator-1639"><span class="linenos">1639</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">)</span> +</span><span id="Generator-1640"><a href="#Generator-1640"><span class="linenos">1640</span></a> +</span><span id="Generator-1641"><a href="#Generator-1641"><span class="linenos">1641</span></a> <span class="k">def</span> <span class="nf">connector_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">Connector</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1642"><a href="#Generator-1642"><span class="linenos">1642</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator-1643"><a href="#Generator-1643"><span class="linenos">1643</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">op</span><span class="p">)</span> +</span><span id="Generator-1644"><a href="#Generator-1644"><span class="linenos">1644</span></a> +</span><span id="Generator-1645"><a href="#Generator-1645"><span class="linenos">1645</span></a> <span class="n">sqls</span> <span class="o">=</span> <span class="nb">tuple</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="n">unnest</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> +</span><span id="Generator-1646"><a href="#Generator-1646"><span class="linenos">1646</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-1647"><a href="#Generator-1647"><span class="linenos">1647</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">op</span><span class="si">}</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> </span><span id="Generator-1648"><a href="#Generator-1648"><span class="linenos">1648</span></a> -</span><span id="Generator-1649"><a href="#Generator-1649"><span class="linenos">1649</span></a> <span class="k">def</span> <span class="nf">bitwiserightshift_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">BitwiseRightShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1650"><a href="#Generator-1650"><span class="linenos">1650</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">>"</span><span class="p">)</span> +</span><span id="Generator-1649"><a href="#Generator-1649"><span class="linenos">1649</span></a> <span class="k">def</span> <span class="nf">bitwiseand_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">BitwiseAnd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1650"><a href="#Generator-1650"><span class="linenos">1650</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"&"</span><span class="p">)</span> </span><span id="Generator-1651"><a href="#Generator-1651"><span class="linenos">1651</span></a> -</span><span id="Generator-1652"><a href="#Generator-1652"><span class="linenos">1652</span></a> <span class="k">def</span> <span class="nf">bitwisexor_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">BitwiseXor</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1653"><a href="#Generator-1653"><span class="linenos">1653</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">)</span> +</span><span id="Generator-1652"><a href="#Generator-1652"><span class="linenos">1652</span></a> <span class="k">def</span> <span class="nf">bitwiseleftshift_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">BitwiseLeftShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1653"><a href="#Generator-1653"><span class="linenos">1653</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<<"</span><span class="p">)</span> </span><span id="Generator-1654"><a href="#Generator-1654"><span class="linenos">1654</span></a> -</span><span id="Generator-1655"><a href="#Generator-1655"><span class="linenos">1655</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1656"><a href="#Generator-1656"><span class="linenos">1656</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1655"><a href="#Generator-1655"><span class="linenos">1655</span></a> <span class="k">def</span> <span class="nf">bitwisenot_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">BitwiseNot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1656"><a href="#Generator-1656"><span class="linenos">1656</span></a> <span class="k">return</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">expression</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><span id="Generator-1657"><a href="#Generator-1657"><span class="linenos">1657</span></a> -</span><span id="Generator-1658"><a href="#Generator-1658"><span class="linenos">1658</span></a> <span class="k">def</span> <span class="nf">currentdate_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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1659"><a href="#Generator-1659"><span class="linenos">1659</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1660"><a href="#Generator-1660"><span class="linenos">1660</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE(</span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> -</span><span id="Generator-1661"><a href="#Generator-1661"><span class="linenos">1661</span></a> -</span><span id="Generator-1662"><a href="#Generator-1662"><span class="linenos">1662</span></a> <span class="k">def</span> <span class="nf">collate_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">Collate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1663"><a href="#Generator-1663"><span class="linenos">1663</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"COLLATE"</span><span class="p">)</span> -</span><span id="Generator-1664"><a href="#Generator-1664"><span class="linenos">1664</span></a> -</span><span id="Generator-1665"><a href="#Generator-1665"><span class="linenos">1665</span></a> <span class="k">def</span> <span class="nf">command_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">Command</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1666"><a href="#Generator-1666"><span class="linenos">1666</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s1">'expression'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1667"><a href="#Generator-1667"><span class="linenos">1667</span></a> -</span><span id="Generator-1668"><a href="#Generator-1668"><span class="linenos">1668</span></a> <span class="k">def</span> <span class="nf">comment_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">Comment</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1669"><a href="#Generator-1669"><span class="linenos">1669</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1670"><a href="#Generator-1670"><span class="linenos">1670</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="Generator-1671"><a href="#Generator-1671"><span class="linenos">1671</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-1672"><a href="#Generator-1672"><span class="linenos">1672</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-1673"><a href="#Generator-1673"><span class="linenos">1673</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMENT</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> IS </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1674"><a href="#Generator-1674"><span class="linenos">1674</span></a> -</span><span id="Generator-1675"><a href="#Generator-1675"><span class="linenos">1675</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1676"><a href="#Generator-1676"><span class="linenos">1676</span></a> <span class="k">return</span> <span class="s2">"BEGIN"</span> -</span><span id="Generator-1677"><a href="#Generator-1677"><span class="linenos">1677</span></a> -</span><span id="Generator-1678"><a href="#Generator-1678"><span class="linenos">1678</span></a> <span class="k">def</span> <span class="nf">commit_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">Commit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1679"><a href="#Generator-1679"><span class="linenos">1679</span></a> <span class="n">chain</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">"chain"</span><span class="p">)</span> -</span><span id="Generator-1680"><a href="#Generator-1680"><span class="linenos">1680</span></a> <span class="k">if</span> <span class="n">chain</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-1681"><a href="#Generator-1681"><span class="linenos">1681</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="s2">" AND CHAIN"</span> <span class="k">if</span> <span class="n">chain</span> <span class="k">else</span> <span class="s2">" AND NO CHAIN"</span> -</span><span id="Generator-1682"><a href="#Generator-1682"><span class="linenos">1682</span></a> -</span><span id="Generator-1683"><a href="#Generator-1683"><span class="linenos">1683</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMIT</span><span class="si">{</span><span class="n">chain</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1684"><a href="#Generator-1684"><span class="linenos">1684</span></a> -</span><span id="Generator-1685"><a href="#Generator-1685"><span class="linenos">1685</span></a> <span class="k">def</span> <span class="nf">rollback_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">Rollback</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1686"><a href="#Generator-1686"><span class="linenos">1686</span></a> <span class="n">savepoint</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">"savepoint"</span><span class="p">)</span> -</span><span id="Generator-1687"><a href="#Generator-1687"><span class="linenos">1687</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TO </span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">savepoint</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1688"><a href="#Generator-1688"><span class="linenos">1688</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROLLBACK</span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1658"><a href="#Generator-1658"><span class="linenos">1658</span></a> <span class="k">def</span> <span class="nf">bitwiseor_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">BitwiseOr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1659"><a href="#Generator-1659"><span class="linenos">1659</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"|"</span><span class="p">)</span> +</span><span id="Generator-1660"><a href="#Generator-1660"><span class="linenos">1660</span></a> +</span><span id="Generator-1661"><a href="#Generator-1661"><span class="linenos">1661</span></a> <span class="k">def</span> <span class="nf">bitwiserightshift_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">BitwiseRightShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1662"><a href="#Generator-1662"><span class="linenos">1662</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">>"</span><span class="p">)</span> +</span><span id="Generator-1663"><a href="#Generator-1663"><span class="linenos">1663</span></a> +</span><span id="Generator-1664"><a href="#Generator-1664"><span class="linenos">1664</span></a> <span class="k">def</span> <span class="nf">bitwisexor_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">BitwiseXor</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1665"><a href="#Generator-1665"><span class="linenos">1665</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">)</span> +</span><span id="Generator-1666"><a href="#Generator-1666"><span class="linenos">1666</span></a> +</span><span id="Generator-1667"><a href="#Generator-1667"><span class="linenos">1667</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1668"><a href="#Generator-1668"><span class="linenos">1668</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1669"><a href="#Generator-1669"><span class="linenos">1669</span></a> +</span><span id="Generator-1670"><a href="#Generator-1670"><span class="linenos">1670</span></a> <span class="k">def</span> <span class="nf">currentdate_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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1671"><a href="#Generator-1671"><span class="linenos">1671</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1672"><a href="#Generator-1672"><span class="linenos">1672</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE(</span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> +</span><span id="Generator-1673"><a href="#Generator-1673"><span class="linenos">1673</span></a> +</span><span id="Generator-1674"><a href="#Generator-1674"><span class="linenos">1674</span></a> <span class="k">def</span> <span class="nf">collate_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">Collate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1675"><a href="#Generator-1675"><span class="linenos">1675</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"COLLATE"</span><span class="p">)</span> +</span><span id="Generator-1676"><a href="#Generator-1676"><span class="linenos">1676</span></a> +</span><span id="Generator-1677"><a href="#Generator-1677"><span class="linenos">1677</span></a> <span class="k">def</span> <span class="nf">command_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">Command</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1678"><a href="#Generator-1678"><span class="linenos">1678</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s1">'expression'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1679"><a href="#Generator-1679"><span class="linenos">1679</span></a> +</span><span id="Generator-1680"><a href="#Generator-1680"><span class="linenos">1680</span></a> <span class="k">def</span> <span class="nf">comment_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">Comment</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1681"><a href="#Generator-1681"><span class="linenos">1681</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1682"><a href="#Generator-1682"><span class="linenos">1682</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="Generator-1683"><a href="#Generator-1683"><span class="linenos">1683</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-1684"><a href="#Generator-1684"><span class="linenos">1684</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-1685"><a href="#Generator-1685"><span class="linenos">1685</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMENT</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> IS </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1686"><a href="#Generator-1686"><span class="linenos">1686</span></a> +</span><span id="Generator-1687"><a href="#Generator-1687"><span class="linenos">1687</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1688"><a href="#Generator-1688"><span class="linenos">1688</span></a> <span class="k">return</span> <span class="s2">"BEGIN"</span> </span><span id="Generator-1689"><a href="#Generator-1689"><span class="linenos">1689</span></a> -</span><span id="Generator-1690"><a href="#Generator-1690"><span class="linenos">1690</span></a> <span class="k">def</span> <span class="nf">altercolumn_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">AlterColumn</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1691"><a href="#Generator-1691"><span class="linenos">1691</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1692"><a href="#Generator-1692"><span class="linenos">1692</span></a> -</span><span id="Generator-1693"><a href="#Generator-1693"><span class="linenos">1693</span></a> <span class="n">dtype</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">"dtype"</span><span class="p">)</span> -</span><span id="Generator-1694"><a href="#Generator-1694"><span class="linenos">1694</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="p">:</span> -</span><span id="Generator-1695"><a href="#Generator-1695"><span class="linenos">1695</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="Generator-1696"><a href="#Generator-1696"><span class="linenos">1696</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1697"><a href="#Generator-1697"><span class="linenos">1697</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> -</span><span id="Generator-1698"><a href="#Generator-1698"><span class="linenos">1698</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">using</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1699"><a href="#Generator-1699"><span class="linenos">1699</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TYPE </span><span class="si">{</span><span class="n">dtype</span><span class="si">}{</span><span class="n">collate</span><span class="si">}{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1700"><a href="#Generator-1700"><span class="linenos">1700</span></a> -</span><span id="Generator-1701"><a href="#Generator-1701"><span class="linenos">1701</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator-1702"><a href="#Generator-1702"><span class="linenos">1702</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator-1703"><a href="#Generator-1703"><span class="linenos">1703</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET DEFAULT </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1690"><a href="#Generator-1690"><span class="linenos">1690</span></a> <span class="k">def</span> <span class="nf">commit_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">Commit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1691"><a href="#Generator-1691"><span class="linenos">1691</span></a> <span class="n">chain</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">"chain"</span><span class="p">)</span> +</span><span id="Generator-1692"><a href="#Generator-1692"><span class="linenos">1692</span></a> <span class="k">if</span> <span class="n">chain</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-1693"><a href="#Generator-1693"><span class="linenos">1693</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="s2">" AND CHAIN"</span> <span class="k">if</span> <span class="n">chain</span> <span class="k">else</span> <span class="s2">" AND NO CHAIN"</span> +</span><span id="Generator-1694"><a href="#Generator-1694"><span class="linenos">1694</span></a> +</span><span id="Generator-1695"><a href="#Generator-1695"><span class="linenos">1695</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMIT</span><span class="si">{</span><span class="n">chain</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1696"><a href="#Generator-1696"><span class="linenos">1696</span></a> +</span><span id="Generator-1697"><a href="#Generator-1697"><span class="linenos">1697</span></a> <span class="k">def</span> <span class="nf">rollback_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">Rollback</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1698"><a href="#Generator-1698"><span class="linenos">1698</span></a> <span class="n">savepoint</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">"savepoint"</span><span class="p">)</span> +</span><span id="Generator-1699"><a href="#Generator-1699"><span class="linenos">1699</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TO </span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">savepoint</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1700"><a href="#Generator-1700"><span class="linenos">1700</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROLLBACK</span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1701"><a href="#Generator-1701"><span class="linenos">1701</span></a> +</span><span id="Generator-1702"><a href="#Generator-1702"><span class="linenos">1702</span></a> <span class="k">def</span> <span class="nf">altercolumn_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">AlterColumn</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1703"><a href="#Generator-1703"><span class="linenos">1703</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> </span><span id="Generator-1704"><a href="#Generator-1704"><span class="linenos">1704</span></a> -</span><span id="Generator-1705"><a href="#Generator-1705"><span class="linenos">1705</span></a> <span class="k">if</span> <span class="ow">not</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">"drop"</span><span class="p">):</span> -</span><span id="Generator-1706"><a href="#Generator-1706"><span class="linenos">1706</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported ALTER COLUMN syntax"</span><span class="p">)</span> -</span><span id="Generator-1707"><a href="#Generator-1707"><span class="linenos">1707</span></a> -</span><span id="Generator-1708"><a href="#Generator-1708"><span class="linenos">1708</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> DROP DEFAULT"</span> -</span><span id="Generator-1709"><a href="#Generator-1709"><span class="linenos">1709</span></a> -</span><span id="Generator-1710"><a href="#Generator-1710"><span class="linenos">1710</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1711"><a href="#Generator-1711"><span class="linenos">1711</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1712"><a href="#Generator-1712"><span class="linenos">1712</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1713"><a href="#Generator-1713"><span class="linenos">1713</span></a> -</span><span id="Generator-1714"><a href="#Generator-1714"><span class="linenos">1714</span></a> <span class="k">def</span> <span class="nf">altertable_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">AlterTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1715"><a href="#Generator-1715"><span class="linenos">1715</span></a> <span class="n">actions</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"actions"</span><span class="p">]</span> +</span><span id="Generator-1705"><a href="#Generator-1705"><span class="linenos">1705</span></a> <span class="n">dtype</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">"dtype"</span><span class="p">)</span> +</span><span id="Generator-1706"><a href="#Generator-1706"><span class="linenos">1706</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="p">:</span> +</span><span id="Generator-1707"><a href="#Generator-1707"><span class="linenos">1707</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> +</span><span id="Generator-1708"><a href="#Generator-1708"><span class="linenos">1708</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1709"><a href="#Generator-1709"><span class="linenos">1709</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> +</span><span id="Generator-1710"><a href="#Generator-1710"><span class="linenos">1710</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">using</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1711"><a href="#Generator-1711"><span class="linenos">1711</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TYPE </span><span class="si">{</span><span class="n">dtype</span><span class="si">}{</span><span class="n">collate</span><span class="si">}{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1712"><a href="#Generator-1712"><span class="linenos">1712</span></a> +</span><span id="Generator-1713"><a href="#Generator-1713"><span class="linenos">1713</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator-1714"><a href="#Generator-1714"><span class="linenos">1714</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator-1715"><a href="#Generator-1715"><span class="linenos">1715</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET DEFAULT </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1716"><a href="#Generator-1716"><span class="linenos">1716</span></a> -</span><span id="Generator-1717"><a href="#Generator-1717"><span class="linenos">1717</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">):</span> -</span><span id="Generator-1718"><a href="#Generator-1718"><span class="linenos">1718</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMN "</span><span class="p">)</span> -</span><span id="Generator-1719"><a href="#Generator-1719"><span class="linenos">1719</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> -</span><span id="Generator-1720"><a href="#Generator-1720"><span class="linenos">1720</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMNS "</span><span class="p">)</span> -</span><span id="Generator-1721"><a href="#Generator-1721"><span class="linenos">1721</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">):</span> -</span><span id="Generator-1722"><a href="#Generator-1722"><span class="linenos">1722</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1723"><a href="#Generator-1723"><span class="linenos">1723</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1724"><a href="#Generator-1724"><span class="linenos">1724</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">)</span> +</span><span id="Generator-1717"><a href="#Generator-1717"><span class="linenos">1717</span></a> <span class="k">if</span> <span class="ow">not</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">"drop"</span><span class="p">):</span> +</span><span id="Generator-1718"><a href="#Generator-1718"><span class="linenos">1718</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported ALTER COLUMN syntax"</span><span class="p">)</span> +</span><span id="Generator-1719"><a href="#Generator-1719"><span class="linenos">1719</span></a> +</span><span id="Generator-1720"><a href="#Generator-1720"><span class="linenos">1720</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> DROP DEFAULT"</span> +</span><span id="Generator-1721"><a href="#Generator-1721"><span class="linenos">1721</span></a> +</span><span id="Generator-1722"><a href="#Generator-1722"><span class="linenos">1722</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1723"><a href="#Generator-1723"><span class="linenos">1723</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1724"><a href="#Generator-1724"><span class="linenos">1724</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span><span id="Generator-1725"><a href="#Generator-1725"><span class="linenos">1725</span></a> -</span><span id="Generator-1726"><a href="#Generator-1726"><span class="linenos">1726</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1727"><a href="#Generator-1727"><span class="linenos">1727</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER TABLE</span><span class="si">{</span><span class="n">exists</span><span class="si">}</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">expression</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="si">{</span><span class="n">actions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1726"><a href="#Generator-1726"><span class="linenos">1726</span></a> <span class="k">def</span> <span class="nf">altertable_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">AlterTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1727"><a href="#Generator-1727"><span class="linenos">1727</span></a> <span class="n">actions</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"actions"</span><span class="p">]</span> </span><span id="Generator-1728"><a href="#Generator-1728"><span class="linenos">1728</span></a> -</span><span id="Generator-1729"><a href="#Generator-1729"><span class="linenos">1729</span></a> <span class="k">def</span> <span class="nf">droppartition_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">DropPartition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1730"><a href="#Generator-1730"><span class="linenos">1730</span></a> <span class="n">expressions</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><span id="Generator-1731"><a href="#Generator-1731"><span class="linenos">1731</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator-1732"><a href="#Generator-1732"><span class="linenos">1732</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1733"><a href="#Generator-1733"><span class="linenos">1733</span></a> -</span><span id="Generator-1734"><a href="#Generator-1734"><span class="linenos">1734</span></a> <span class="k">def</span> <span class="nf">addconstraint_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">AddConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1735"><a href="#Generator-1735"><span class="linenos">1735</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1736"><a href="#Generator-1736"><span class="linenos">1736</span></a> <span class="n">expression_</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">"expression"</span><span class="p">)</span> -</span><span id="Generator-1737"><a href="#Generator-1737"><span class="linenos">1737</span></a> <span class="n">add_constraint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ADD CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"ADD"</span> -</span><span id="Generator-1738"><a href="#Generator-1738"><span class="linenos">1738</span></a> -</span><span id="Generator-1739"><a href="#Generator-1739"><span class="linenos">1739</span></a> <span class="n">enforced</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">"enforced"</span><span class="p">)</span> -</span><span id="Generator-1740"><a href="#Generator-1740"><span class="linenos">1740</span></a> <span class="k">if</span> <span class="n">enforced</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator-1741"><a href="#Generator-1741"><span class="linenos">1741</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> CHECK (</span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="s1">' ENFORCED'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">enforced</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">"</span> -</span><span id="Generator-1742"><a href="#Generator-1742"><span class="linenos">1742</span></a> -</span><span id="Generator-1743"><a href="#Generator-1743"><span class="linenos">1743</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1744"><a href="#Generator-1744"><span class="linenos">1744</span></a> -</span><span id="Generator-1745"><a href="#Generator-1745"><span class="linenos">1745</span></a> <span class="k">def</span> <span class="nf">distinct_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">Distinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1746"><a href="#Generator-1746"><span class="linenos">1746</span></a> <span class="n">this</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="Generator-1747"><a href="#Generator-1747"><span class="linenos">1747</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1748"><a href="#Generator-1748"><span class="linenos">1748</span></a> -</span><span id="Generator-1749"><a href="#Generator-1749"><span class="linenos">1749</span></a> <span class="n">on</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">"on"</span><span class="p">)</span> -</span><span id="Generator-1750"><a href="#Generator-1750"><span class="linenos">1750</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">on</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1751"><a href="#Generator-1751"><span class="linenos">1751</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DISTINCT</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1752"><a href="#Generator-1752"><span class="linenos">1752</span></a> -</span><span id="Generator-1753"><a href="#Generator-1753"><span class="linenos">1753</span></a> <span class="k">def</span> <span class="nf">ignorenulls_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">IgnoreNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1754"><a href="#Generator-1754"><span class="linenos">1754</span></a> <span class="k">return</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">expression</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"> IGNORE NULLS"</span> -</span><span id="Generator-1755"><a href="#Generator-1755"><span class="linenos">1755</span></a> -</span><span id="Generator-1756"><a href="#Generator-1756"><span class="linenos">1756</span></a> <span class="k">def</span> <span class="nf">respectnulls_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">RespectNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1757"><a href="#Generator-1757"><span class="linenos">1757</span></a> <span class="k">return</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">expression</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"> RESPECT NULLS"</span> -</span><span id="Generator-1758"><a href="#Generator-1758"><span class="linenos">1758</span></a> -</span><span id="Generator-1759"><a href="#Generator-1759"><span class="linenos">1759</span></a> <span class="k">def</span> <span class="nf">intdiv_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">IntDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1760"><a href="#Generator-1760"><span class="linenos">1760</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="Generator-1761"><a href="#Generator-1761"><span class="linenos">1761</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">div</span><span class="p">,</span> <span class="n">to</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">"INT"</span><span class="p">)))</span> -</span><span id="Generator-1762"><a href="#Generator-1762"><span class="linenos">1762</span></a> -</span><span id="Generator-1763"><a href="#Generator-1763"><span class="linenos">1763</span></a> <span class="k">def</span> <span class="nf">dpipe_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">DPipe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1764"><a href="#Generator-1764"><span class="linenos">1764</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"||"</span><span class="p">)</span> -</span><span id="Generator-1765"><a href="#Generator-1765"><span class="linenos">1765</span></a> -</span><span id="Generator-1766"><a href="#Generator-1766"><span class="linenos">1766</span></a> <span class="k">def</span> <span class="nf">div_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">Div</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1767"><a href="#Generator-1767"><span class="linenos">1767</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="Generator-1768"><a href="#Generator-1768"><span class="linenos">1768</span></a> -</span><span id="Generator-1769"><a href="#Generator-1769"><span class="linenos">1769</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="Generator-1770"><a href="#Generator-1770"><span class="linenos">1770</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">div</span><span class="p">,</span> <span class="n">to</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">"INT"</span><span class="p">)))</span> -</span><span id="Generator-1771"><a href="#Generator-1771"><span class="linenos">1771</span></a> -</span><span id="Generator-1772"><a href="#Generator-1772"><span class="linenos">1772</span></a> <span class="k">return</span> <span class="n">div</span> -</span><span id="Generator-1773"><a href="#Generator-1773"><span class="linenos">1773</span></a> -</span><span id="Generator-1774"><a href="#Generator-1774"><span class="linenos">1774</span></a> <span class="k">def</span> <span class="nf">floatdiv_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">FloatDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1775"><a href="#Generator-1775"><span class="linenos">1775</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="Generator-1776"><a href="#Generator-1776"><span class="linenos">1776</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">to</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">"DOUBLE"</span><span class="p">))</span> -</span><span id="Generator-1777"><a href="#Generator-1777"><span class="linenos">1777</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">div_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">))</span> +</span><span id="Generator-1729"><a href="#Generator-1729"><span class="linenos">1729</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">):</span> +</span><span id="Generator-1730"><a href="#Generator-1730"><span class="linenos">1730</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMN "</span><span class="p">)</span> +</span><span id="Generator-1731"><a href="#Generator-1731"><span class="linenos">1731</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> +</span><span id="Generator-1732"><a href="#Generator-1732"><span class="linenos">1732</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMNS "</span><span class="p">)</span> +</span><span id="Generator-1733"><a href="#Generator-1733"><span class="linenos">1733</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">):</span> +</span><span id="Generator-1734"><a href="#Generator-1734"><span class="linenos">1734</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1735"><a href="#Generator-1735"><span class="linenos">1735</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1736"><a href="#Generator-1736"><span class="linenos">1736</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">)</span> +</span><span id="Generator-1737"><a href="#Generator-1737"><span class="linenos">1737</span></a> +</span><span id="Generator-1738"><a href="#Generator-1738"><span class="linenos">1738</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1739"><a href="#Generator-1739"><span class="linenos">1739</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER TABLE</span><span class="si">{</span><span class="n">exists</span><span class="si">}</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">expression</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="si">{</span><span class="n">actions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1740"><a href="#Generator-1740"><span class="linenos">1740</span></a> +</span><span id="Generator-1741"><a href="#Generator-1741"><span class="linenos">1741</span></a> <span class="k">def</span> <span class="nf">droppartition_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">DropPartition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1742"><a href="#Generator-1742"><span class="linenos">1742</span></a> <span class="n">expressions</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><span id="Generator-1743"><a href="#Generator-1743"><span class="linenos">1743</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator-1744"><a href="#Generator-1744"><span class="linenos">1744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1745"><a href="#Generator-1745"><span class="linenos">1745</span></a> +</span><span id="Generator-1746"><a href="#Generator-1746"><span class="linenos">1746</span></a> <span class="k">def</span> <span class="nf">addconstraint_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">AddConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1747"><a href="#Generator-1747"><span class="linenos">1747</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1748"><a href="#Generator-1748"><span class="linenos">1748</span></a> <span class="n">expression_</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">"expression"</span><span class="p">)</span> +</span><span id="Generator-1749"><a href="#Generator-1749"><span class="linenos">1749</span></a> <span class="n">add_constraint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ADD CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"ADD"</span> +</span><span id="Generator-1750"><a href="#Generator-1750"><span class="linenos">1750</span></a> +</span><span id="Generator-1751"><a href="#Generator-1751"><span class="linenos">1751</span></a> <span class="n">enforced</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">"enforced"</span><span class="p">)</span> +</span><span id="Generator-1752"><a href="#Generator-1752"><span class="linenos">1752</span></a> <span class="k">if</span> <span class="n">enforced</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator-1753"><a href="#Generator-1753"><span class="linenos">1753</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> CHECK (</span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="s1">' ENFORCED'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">enforced</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">"</span> +</span><span id="Generator-1754"><a href="#Generator-1754"><span class="linenos">1754</span></a> +</span><span id="Generator-1755"><a href="#Generator-1755"><span class="linenos">1755</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1756"><a href="#Generator-1756"><span class="linenos">1756</span></a> +</span><span id="Generator-1757"><a href="#Generator-1757"><span class="linenos">1757</span></a> <span class="k">def</span> <span class="nf">distinct_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">Distinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1758"><a href="#Generator-1758"><span class="linenos">1758</span></a> <span class="n">this</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="Generator-1759"><a href="#Generator-1759"><span class="linenos">1759</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1760"><a href="#Generator-1760"><span class="linenos">1760</span></a> +</span><span id="Generator-1761"><a href="#Generator-1761"><span class="linenos">1761</span></a> <span class="n">on</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">"on"</span><span class="p">)</span> +</span><span id="Generator-1762"><a href="#Generator-1762"><span class="linenos">1762</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">on</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1763"><a href="#Generator-1763"><span class="linenos">1763</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DISTINCT</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1764"><a href="#Generator-1764"><span class="linenos">1764</span></a> +</span><span id="Generator-1765"><a href="#Generator-1765"><span class="linenos">1765</span></a> <span class="k">def</span> <span class="nf">ignorenulls_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">IgnoreNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1766"><a href="#Generator-1766"><span class="linenos">1766</span></a> <span class="k">return</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">expression</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"> IGNORE NULLS"</span> +</span><span id="Generator-1767"><a href="#Generator-1767"><span class="linenos">1767</span></a> +</span><span id="Generator-1768"><a href="#Generator-1768"><span class="linenos">1768</span></a> <span class="k">def</span> <span class="nf">respectnulls_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">RespectNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1769"><a href="#Generator-1769"><span class="linenos">1769</span></a> <span class="k">return</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">expression</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"> RESPECT NULLS"</span> +</span><span id="Generator-1770"><a href="#Generator-1770"><span class="linenos">1770</span></a> +</span><span id="Generator-1771"><a href="#Generator-1771"><span class="linenos">1771</span></a> <span class="k">def</span> <span class="nf">intdiv_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">IntDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1772"><a href="#Generator-1772"><span class="linenos">1772</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span> +</span><span id="Generator-1773"><a href="#Generator-1773"><span class="linenos">1773</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> +</span><span id="Generator-1774"><a href="#Generator-1774"><span class="linenos">1774</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="Generator-1775"><a href="#Generator-1775"><span class="linenos">1775</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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><span id="Generator-1776"><a href="#Generator-1776"><span class="linenos">1776</span></a> <span class="p">)</span> +</span><span id="Generator-1777"><a href="#Generator-1777"><span class="linenos">1777</span></a> <span class="p">)</span> </span><span id="Generator-1778"><a href="#Generator-1778"><span class="linenos">1778</span></a> -</span><span id="Generator-1779"><a href="#Generator-1779"><span class="linenos">1779</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="Generator-1780"><a href="#Generator-1780"><span class="linenos">1780</span></a> -</span><span id="Generator-1781"><a href="#Generator-1781"><span class="linenos">1781</span></a> <span class="k">def</span> <span class="nf">overlaps_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">Overlaps</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1782"><a href="#Generator-1782"><span class="linenos">1782</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OVERLAPS"</span><span class="p">)</span> -</span><span id="Generator-1783"><a href="#Generator-1783"><span class="linenos">1783</span></a> -</span><span id="Generator-1784"><a href="#Generator-1784"><span class="linenos">1784</span></a> <span class="k">def</span> <span class="nf">distance_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">Distance</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1785"><a href="#Generator-1785"><span class="linenos">1785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<->"</span><span class="p">)</span> -</span><span id="Generator-1786"><a href="#Generator-1786"><span class="linenos">1786</span></a> -</span><span id="Generator-1787"><a href="#Generator-1787"><span class="linenos">1787</span></a> <span class="k">def</span> <span class="nf">dot_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">Dot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1788"><a href="#Generator-1788"><span class="linenos">1788</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1789"><a href="#Generator-1789"><span class="linenos">1789</span></a> -</span><span id="Generator-1790"><a href="#Generator-1790"><span class="linenos">1790</span></a> <span class="k">def</span> <span class="nf">eq_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">EQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1791"><a href="#Generator-1791"><span class="linenos">1791</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"="</span><span class="p">)</span> -</span><span id="Generator-1792"><a href="#Generator-1792"><span class="linenos">1792</span></a> -</span><span id="Generator-1793"><a href="#Generator-1793"><span class="linenos">1793</span></a> <span class="k">def</span> <span class="nf">escape_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">Escape</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1794"><a href="#Generator-1794"><span class="linenos">1794</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ESCAPE"</span><span class="p">)</span> -</span><span id="Generator-1795"><a href="#Generator-1795"><span class="linenos">1795</span></a> -</span><span id="Generator-1796"><a href="#Generator-1796"><span class="linenos">1796</span></a> <span class="k">def</span> <span class="nf">glob_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">Glob</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1797"><a href="#Generator-1797"><span class="linenos">1797</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"GLOB"</span><span class="p">)</span> -</span><span id="Generator-1798"><a href="#Generator-1798"><span class="linenos">1798</span></a> -</span><span id="Generator-1799"><a href="#Generator-1799"><span class="linenos">1799</span></a> <span class="k">def</span> <span class="nf">gt_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">GT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1800"><a href="#Generator-1800"><span class="linenos">1800</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> -</span><span id="Generator-1801"><a href="#Generator-1801"><span class="linenos">1801</span></a> -</span><span id="Generator-1802"><a href="#Generator-1802"><span class="linenos">1802</span></a> <span class="k">def</span> <span class="nf">gte_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">GTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1803"><a href="#Generator-1803"><span class="linenos">1803</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">="</span><span class="p">)</span> -</span><span id="Generator-1804"><a href="#Generator-1804"><span class="linenos">1804</span></a> -</span><span id="Generator-1805"><a href="#Generator-1805"><span class="linenos">1805</span></a> <span class="k">def</span> <span class="nf">ilike_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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1806"><a href="#Generator-1806"><span class="linenos">1806</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE"</span><span class="p">)</span> -</span><span id="Generator-1807"><a href="#Generator-1807"><span class="linenos">1807</span></a> -</span><span id="Generator-1808"><a href="#Generator-1808"><span class="linenos">1808</span></a> <span class="k">def</span> <span class="nf">is_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">Is</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1809"><a href="#Generator-1809"><span class="linenos">1809</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS"</span><span class="p">)</span> -</span><span id="Generator-1810"><a href="#Generator-1810"><span class="linenos">1810</span></a> -</span><span id="Generator-1811"><a href="#Generator-1811"><span class="linenos">1811</span></a> <span class="k">def</span> <span class="nf">like_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">Like</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1812"><a href="#Generator-1812"><span class="linenos">1812</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">)</span> -</span><span id="Generator-1813"><a href="#Generator-1813"><span class="linenos">1813</span></a> -</span><span id="Generator-1814"><a href="#Generator-1814"><span class="linenos">1814</span></a> <span class="k">def</span> <span class="nf">similarto_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">SimilarTo</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1815"><a href="#Generator-1815"><span class="linenos">1815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"SIMILAR TO"</span><span class="p">)</span> -</span><span id="Generator-1816"><a href="#Generator-1816"><span class="linenos">1816</span></a> -</span><span id="Generator-1817"><a href="#Generator-1817"><span class="linenos">1817</span></a> <span class="k">def</span> <span class="nf">lt_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">LT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1818"><a href="#Generator-1818"><span class="linenos">1818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<"</span><span class="p">)</span> -</span><span id="Generator-1819"><a href="#Generator-1819"><span class="linenos">1819</span></a> -</span><span id="Generator-1820"><a href="#Generator-1820"><span class="linenos">1820</span></a> <span class="k">def</span> <span class="nf">lte_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">LTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1821"><a href="#Generator-1821"><span class="linenos">1821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<="</span><span class="p">)</span> -</span><span id="Generator-1822"><a href="#Generator-1822"><span class="linenos">1822</span></a> -</span><span id="Generator-1823"><a href="#Generator-1823"><span class="linenos">1823</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1824"><a href="#Generator-1824"><span class="linenos">1824</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"%"</span><span class="p">)</span> -</span><span id="Generator-1825"><a href="#Generator-1825"><span class="linenos">1825</span></a> -</span><span id="Generator-1826"><a href="#Generator-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">mul_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">Mul</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1827"><a href="#Generator-1827"><span class="linenos">1827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"*"</span><span class="p">)</span> -</span><span id="Generator-1828"><a href="#Generator-1828"><span class="linenos">1828</span></a> -</span><span id="Generator-1829"><a href="#Generator-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">neq_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">NEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1830"><a href="#Generator-1830"><span class="linenos">1830</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<>"</span><span class="p">)</span> -</span><span id="Generator-1831"><a href="#Generator-1831"><span class="linenos">1831</span></a> -</span><span id="Generator-1832"><a href="#Generator-1832"><span class="linenos">1832</span></a> <span class="k">def</span> <span class="nf">nullsafeeq_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">NullSafeEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1833"><a href="#Generator-1833"><span class="linenos">1833</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS NOT DISTINCT FROM"</span><span class="p">)</span> -</span><span id="Generator-1834"><a href="#Generator-1834"><span class="linenos">1834</span></a> -</span><span id="Generator-1835"><a href="#Generator-1835"><span class="linenos">1835</span></a> <span class="k">def</span> <span class="nf">nullsafeneq_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">NullSafeNEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1836"><a href="#Generator-1836"><span class="linenos">1836</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS DISTINCT FROM"</span><span class="p">)</span> -</span><span id="Generator-1837"><a href="#Generator-1837"><span class="linenos">1837</span></a> -</span><span id="Generator-1838"><a href="#Generator-1838"><span class="linenos">1838</span></a> <span class="k">def</span> <span class="nf">or_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">Or</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1839"><a href="#Generator-1839"><span class="linenos">1839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OR"</span><span class="p">)</span> -</span><span id="Generator-1840"><a href="#Generator-1840"><span class="linenos">1840</span></a> -</span><span id="Generator-1841"><a href="#Generator-1841"><span class="linenos">1841</span></a> <span class="k">def</span> <span class="nf">slice_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">Slice</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1842"><a href="#Generator-1842"><span class="linenos">1842</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">":"</span><span class="p">)</span> -</span><span id="Generator-1843"><a href="#Generator-1843"><span class="linenos">1843</span></a> -</span><span id="Generator-1844"><a href="#Generator-1844"><span class="linenos">1844</span></a> <span class="k">def</span> <span class="nf">sub_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">Sub</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1845"><a href="#Generator-1845"><span class="linenos">1845</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"-"</span><span class="p">)</span> -</span><span id="Generator-1846"><a href="#Generator-1846"><span class="linenos">1846</span></a> -</span><span id="Generator-1847"><a href="#Generator-1847"><span class="linenos">1847</span></a> <span class="k">def</span> <span class="nf">trycast_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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1848"><a href="#Generator-1848"><span class="linenos">1848</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRY_CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1849"><a href="#Generator-1849"><span class="linenos">1849</span></a> -</span><span id="Generator-1850"><a href="#Generator-1850"><span class="linenos">1850</span></a> <span class="k">def</span> <span class="nf">use_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">Use</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1851"><a href="#Generator-1851"><span class="linenos">1851</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator-1852"><a href="#Generator-1852"><span class="linenos">1852</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1853"><a href="#Generator-1853"><span class="linenos">1853</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1854"><a href="#Generator-1854"><span class="linenos">1854</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1855"><a href="#Generator-1855"><span class="linenos">1855</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"USE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1856"><a href="#Generator-1856"><span class="linenos">1856</span></a> -</span><span id="Generator-1857"><a href="#Generator-1857"><span class="linenos">1857</span></a> <span class="k">def</span> <span class="nf">binary</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">Binary</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1858"><a href="#Generator-1858"><span class="linenos">1858</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">op</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1859"><a href="#Generator-1859"><span class="linenos">1859</span></a> -</span><span id="Generator-1860"><a href="#Generator-1860"><span class="linenos">1860</span></a> <span class="k">def</span> <span class="nf">function_fallback_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">Func</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1861"><a href="#Generator-1861"><span class="linenos">1861</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-1862"><a href="#Generator-1862"><span class="linenos">1862</span></a> <span class="k">for</span> <span class="n">arg_value</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> -</span><span id="Generator-1863"><a href="#Generator-1863"><span class="linenos">1863</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg_value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="Generator-1864"><a href="#Generator-1864"><span class="linenos">1864</span></a> <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">arg_value</span><span class="p">:</span> -</span><span id="Generator-1865"><a href="#Generator-1865"><span class="linenos">1865</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="Generator-1866"><a href="#Generator-1866"><span class="linenos">1866</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1867"><a href="#Generator-1867"><span class="linenos">1867</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arg_value</span><span class="p">)</span> -</span><span id="Generator-1868"><a href="#Generator-1868"><span class="linenos">1868</span></a> -</span><span id="Generator-1869"><a href="#Generator-1869"><span class="linenos">1869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">sql_name</span><span class="p">(),</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> -</span><span id="Generator-1870"><a href="#Generator-1870"><span class="linenos">1870</span></a> -</span><span id="Generator-1871"><a href="#Generator-1871"><span class="linenos">1871</span></a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">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="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1872"><a href="#Generator-1872"><span class="linenos">1872</span></a> <span class="k">return</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">normalize_func</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="si">}</span><span class="s2">(</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">args</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1873"><a href="#Generator-1873"><span class="linenos">1873</span></a> -</span><span id="Generator-1874"><a href="#Generator-1874"><span class="linenos">1874</span></a> <span class="k">def</span> <span class="nf">format_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1875"><a href="#Generator-1875"><span class="linenos">1875</span></a> <span class="n">arg_sqls</span> <span class="o">=</span> <span class="nb">tuple</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">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Generator-1876"><a href="#Generator-1876"><span class="linenos">1876</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> -</span><span id="Generator-1877"><a href="#Generator-1877"><span class="linenos">1877</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">",</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator-1878"><a href="#Generator-1878"><span class="linenos">1878</span></a> <span class="k">return</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> -</span><span id="Generator-1879"><a href="#Generator-1879"><span class="linenos">1879</span></a> -</span><span id="Generator-1880"><a href="#Generator-1880"><span class="linenos">1880</span></a> <span class="k">def</span> <span class="nf">text_width</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> -</span><span id="Generator-1881"><a href="#Generator-1881"><span class="linenos">1881</span></a> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">)</span> -</span><span id="Generator-1882"><a href="#Generator-1882"><span class="linenos">1882</span></a> -</span><span id="Generator-1883"><a href="#Generator-1883"><span class="linenos">1883</span></a> <span class="k">def</span> <span class="nf">format_time</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">Expression</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="nb">str</span><span class="p">]:</span> -</span><span id="Generator-1884"><a href="#Generator-1884"><span class="linenos">1884</span></a> <span class="k">return</span> <span class="n">format_time</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">expression</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span><span class="p">)</span> -</span><span id="Generator-1885"><a href="#Generator-1885"><span class="linenos">1885</span></a> -</span><span id="Generator-1886"><a href="#Generator-1886"><span class="linenos">1886</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span> -</span><span id="Generator-1887"><a href="#Generator-1887"><span class="linenos">1887</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator-1888"><a href="#Generator-1888"><span class="linenos">1888</span></a> <span class="n">expression</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="Generator-1889"><a href="#Generator-1889"><span class="linenos">1889</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator-1890"><a href="#Generator-1890"><span class="linenos">1890</span></a> <span class="n">flat</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="Generator-1891"><a href="#Generator-1891"><span class="linenos">1891</span></a> <span class="n">indent</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Generator-1892"><a href="#Generator-1892"><span class="linenos">1892</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> -</span><span id="Generator-1893"><a href="#Generator-1893"><span class="linenos">1893</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator-1894"><a href="#Generator-1894"><span class="linenos">1894</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1895"><a href="#Generator-1895"><span class="linenos">1895</span></a> <span class="n">expressions</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="n">key</span> <span class="ow">or</span> <span class="s2">"expressions"</span><span class="p">)</span> -</span><span id="Generator-1896"><a href="#Generator-1896"><span class="linenos">1896</span></a> -</span><span id="Generator-1897"><a href="#Generator-1897"><span class="linenos">1897</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator-1898"><a href="#Generator-1898"><span class="linenos">1898</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator-1899"><a href="#Generator-1899"><span class="linenos">1899</span></a> -</span><span id="Generator-1900"><a href="#Generator-1900"><span class="linenos">1900</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> -</span><span id="Generator-1901"><a href="#Generator-1901"><span class="linenos">1901</span></a> <span class="k">return</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator-1902"><a href="#Generator-1902"><span class="linenos">1902</span></a> -</span><span id="Generator-1903"><a href="#Generator-1903"><span class="linenos">1903</span></a> <span class="n">num_sqls</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator-1904"><a href="#Generator-1904"><span class="linenos">1904</span></a> -</span><span id="Generator-1905"><a href="#Generator-1905"><span class="linenos">1905</span></a> <span class="c1"># These are calculated once in case we have the leading_comma / pretty option set, correspondingly</span> -</span><span id="Generator-1906"><a href="#Generator-1906"><span class="linenos">1906</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> -</span><span id="Generator-1907"><a href="#Generator-1907"><span class="linenos">1907</span></a> <span class="n">stripped_sep</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="Generator-1779"><a href="#Generator-1779"><span class="linenos">1779</span></a> <span class="k">def</span> <span class="nf">dpipe_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">DPipe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1780"><a href="#Generator-1780"><span class="linenos">1780</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"||"</span><span class="p">)</span> +</span><span id="Generator-1781"><a href="#Generator-1781"><span class="linenos">1781</span></a> +</span><span id="Generator-1782"><a href="#Generator-1782"><span class="linenos">1782</span></a> <span class="k">def</span> <span class="nf">div_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">Div</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1783"><a href="#Generator-1783"><span class="linenos">1783</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> +</span><span id="Generator-1784"><a href="#Generator-1784"><span class="linenos">1784</span></a> +</span><span id="Generator-1785"><a href="#Generator-1785"><span class="linenos">1785</span></a> <span class="k">def</span> <span class="nf">overlaps_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">Overlaps</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1786"><a href="#Generator-1786"><span class="linenos">1786</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OVERLAPS"</span><span class="p">)</span> +</span><span id="Generator-1787"><a href="#Generator-1787"><span class="linenos">1787</span></a> +</span><span id="Generator-1788"><a href="#Generator-1788"><span class="linenos">1788</span></a> <span class="k">def</span> <span class="nf">distance_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">Distance</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1789"><a href="#Generator-1789"><span class="linenos">1789</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<->"</span><span class="p">)</span> +</span><span id="Generator-1790"><a href="#Generator-1790"><span class="linenos">1790</span></a> +</span><span id="Generator-1791"><a href="#Generator-1791"><span class="linenos">1791</span></a> <span class="k">def</span> <span class="nf">dot_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">Dot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1792"><a href="#Generator-1792"><span class="linenos">1792</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1793"><a href="#Generator-1793"><span class="linenos">1793</span></a> +</span><span id="Generator-1794"><a href="#Generator-1794"><span class="linenos">1794</span></a> <span class="k">def</span> <span class="nf">eq_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">EQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1795"><a href="#Generator-1795"><span class="linenos">1795</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"="</span><span class="p">)</span> +</span><span id="Generator-1796"><a href="#Generator-1796"><span class="linenos">1796</span></a> +</span><span id="Generator-1797"><a href="#Generator-1797"><span class="linenos">1797</span></a> <span class="k">def</span> <span class="nf">escape_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">Escape</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1798"><a href="#Generator-1798"><span class="linenos">1798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ESCAPE"</span><span class="p">)</span> +</span><span id="Generator-1799"><a href="#Generator-1799"><span class="linenos">1799</span></a> +</span><span id="Generator-1800"><a href="#Generator-1800"><span class="linenos">1800</span></a> <span class="k">def</span> <span class="nf">glob_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">Glob</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1801"><a href="#Generator-1801"><span class="linenos">1801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"GLOB"</span><span class="p">)</span> +</span><span id="Generator-1802"><a href="#Generator-1802"><span class="linenos">1802</span></a> +</span><span id="Generator-1803"><a href="#Generator-1803"><span class="linenos">1803</span></a> <span class="k">def</span> <span class="nf">gt_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">GT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1804"><a href="#Generator-1804"><span class="linenos">1804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> +</span><span id="Generator-1805"><a href="#Generator-1805"><span class="linenos">1805</span></a> +</span><span id="Generator-1806"><a href="#Generator-1806"><span class="linenos">1806</span></a> <span class="k">def</span> <span class="nf">gte_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">GTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1807"><a href="#Generator-1807"><span class="linenos">1807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">="</span><span class="p">)</span> +</span><span id="Generator-1808"><a href="#Generator-1808"><span class="linenos">1808</span></a> +</span><span id="Generator-1809"><a href="#Generator-1809"><span class="linenos">1809</span></a> <span class="k">def</span> <span class="nf">ilike_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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1810"><a href="#Generator-1810"><span class="linenos">1810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE"</span><span class="p">)</span> +</span><span id="Generator-1811"><a href="#Generator-1811"><span class="linenos">1811</span></a> +</span><span id="Generator-1812"><a href="#Generator-1812"><span class="linenos">1812</span></a> <span class="k">def</span> <span class="nf">is_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">Is</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1813"><a href="#Generator-1813"><span class="linenos">1813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS"</span><span class="p">)</span> +</span><span id="Generator-1814"><a href="#Generator-1814"><span class="linenos">1814</span></a> +</span><span id="Generator-1815"><a href="#Generator-1815"><span class="linenos">1815</span></a> <span class="k">def</span> <span class="nf">like_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">Like</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1816"><a href="#Generator-1816"><span class="linenos">1816</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">)</span> +</span><span id="Generator-1817"><a href="#Generator-1817"><span class="linenos">1817</span></a> +</span><span id="Generator-1818"><a href="#Generator-1818"><span class="linenos">1818</span></a> <span class="k">def</span> <span class="nf">similarto_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">SimilarTo</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1819"><a href="#Generator-1819"><span class="linenos">1819</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"SIMILAR TO"</span><span class="p">)</span> +</span><span id="Generator-1820"><a href="#Generator-1820"><span class="linenos">1820</span></a> +</span><span id="Generator-1821"><a href="#Generator-1821"><span class="linenos">1821</span></a> <span class="k">def</span> <span class="nf">lt_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">LT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1822"><a href="#Generator-1822"><span class="linenos">1822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<"</span><span class="p">)</span> +</span><span id="Generator-1823"><a href="#Generator-1823"><span class="linenos">1823</span></a> +</span><span id="Generator-1824"><a href="#Generator-1824"><span class="linenos">1824</span></a> <span class="k">def</span> <span class="nf">lte_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">LTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1825"><a href="#Generator-1825"><span class="linenos">1825</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<="</span><span class="p">)</span> +</span><span id="Generator-1826"><a href="#Generator-1826"><span class="linenos">1826</span></a> +</span><span id="Generator-1827"><a href="#Generator-1827"><span class="linenos">1827</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1828"><a href="#Generator-1828"><span class="linenos">1828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"%"</span><span class="p">)</span> +</span><span id="Generator-1829"><a href="#Generator-1829"><span class="linenos">1829</span></a> +</span><span id="Generator-1830"><a href="#Generator-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">mul_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">Mul</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1831"><a href="#Generator-1831"><span class="linenos">1831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"*"</span><span class="p">)</span> +</span><span id="Generator-1832"><a href="#Generator-1832"><span class="linenos">1832</span></a> +</span><span id="Generator-1833"><a href="#Generator-1833"><span class="linenos">1833</span></a> <span class="k">def</span> <span class="nf">neq_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">NEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1834"><a href="#Generator-1834"><span class="linenos">1834</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<>"</span><span class="p">)</span> +</span><span id="Generator-1835"><a href="#Generator-1835"><span class="linenos">1835</span></a> +</span><span id="Generator-1836"><a href="#Generator-1836"><span class="linenos">1836</span></a> <span class="k">def</span> <span class="nf">nullsafeeq_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">NullSafeEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1837"><a href="#Generator-1837"><span class="linenos">1837</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS NOT DISTINCT FROM"</span><span class="p">)</span> +</span><span id="Generator-1838"><a href="#Generator-1838"><span class="linenos">1838</span></a> +</span><span id="Generator-1839"><a href="#Generator-1839"><span class="linenos">1839</span></a> <span class="k">def</span> <span class="nf">nullsafeneq_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">NullSafeNEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1840"><a href="#Generator-1840"><span class="linenos">1840</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS DISTINCT FROM"</span><span class="p">)</span> +</span><span id="Generator-1841"><a href="#Generator-1841"><span class="linenos">1841</span></a> +</span><span id="Generator-1842"><a href="#Generator-1842"><span class="linenos">1842</span></a> <span class="k">def</span> <span class="nf">or_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">Or</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1843"><a href="#Generator-1843"><span class="linenos">1843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OR"</span><span class="p">)</span> +</span><span id="Generator-1844"><a href="#Generator-1844"><span class="linenos">1844</span></a> +</span><span id="Generator-1845"><a href="#Generator-1845"><span class="linenos">1845</span></a> <span class="k">def</span> <span class="nf">slice_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">Slice</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1846"><a href="#Generator-1846"><span class="linenos">1846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">":"</span><span class="p">)</span> +</span><span id="Generator-1847"><a href="#Generator-1847"><span class="linenos">1847</span></a> +</span><span id="Generator-1848"><a href="#Generator-1848"><span class="linenos">1848</span></a> <span class="k">def</span> <span class="nf">sub_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">Sub</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1849"><a href="#Generator-1849"><span class="linenos">1849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"-"</span><span class="p">)</span> +</span><span id="Generator-1850"><a href="#Generator-1850"><span class="linenos">1850</span></a> +</span><span id="Generator-1851"><a href="#Generator-1851"><span class="linenos">1851</span></a> <span class="k">def</span> <span class="nf">trycast_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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1852"><a href="#Generator-1852"><span class="linenos">1852</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRY_CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1853"><a href="#Generator-1853"><span class="linenos">1853</span></a> +</span><span id="Generator-1854"><a href="#Generator-1854"><span class="linenos">1854</span></a> <span class="k">def</span> <span class="nf">use_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">Use</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1855"><a href="#Generator-1855"><span class="linenos">1855</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator-1856"><a href="#Generator-1856"><span class="linenos">1856</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1857"><a href="#Generator-1857"><span class="linenos">1857</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1858"><a href="#Generator-1858"><span class="linenos">1858</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1859"><a href="#Generator-1859"><span class="linenos">1859</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"USE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1860"><a href="#Generator-1860"><span class="linenos">1860</span></a> +</span><span id="Generator-1861"><a href="#Generator-1861"><span class="linenos">1861</span></a> <span class="k">def</span> <span class="nf">binary</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">Binary</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1862"><a href="#Generator-1862"><span class="linenos">1862</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">op</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1863"><a href="#Generator-1863"><span class="linenos">1863</span></a> +</span><span id="Generator-1864"><a href="#Generator-1864"><span class="linenos">1864</span></a> <span class="k">def</span> <span class="nf">function_fallback_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">Func</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1865"><a href="#Generator-1865"><span class="linenos">1865</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator-1866"><a href="#Generator-1866"><span class="linenos">1866</span></a> <span class="k">for</span> <span class="n">arg_value</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="Generator-1867"><a href="#Generator-1867"><span class="linenos">1867</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg_value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="Generator-1868"><a href="#Generator-1868"><span class="linenos">1868</span></a> <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">arg_value</span><span class="p">:</span> +</span><span id="Generator-1869"><a href="#Generator-1869"><span class="linenos">1869</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="Generator-1870"><a href="#Generator-1870"><span class="linenos">1870</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1871"><a href="#Generator-1871"><span class="linenos">1871</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arg_value</span><span class="p">)</span> +</span><span id="Generator-1872"><a href="#Generator-1872"><span class="linenos">1872</span></a> +</span><span id="Generator-1873"><a href="#Generator-1873"><span class="linenos">1873</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">sql_name</span><span class="p">(),</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> +</span><span id="Generator-1874"><a href="#Generator-1874"><span class="linenos">1874</span></a> +</span><span id="Generator-1875"><a href="#Generator-1875"><span class="linenos">1875</span></a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">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="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1876"><a href="#Generator-1876"><span class="linenos">1876</span></a> <span class="k">return</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">normalize_func</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="si">}</span><span class="s2">(</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">args</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1877"><a href="#Generator-1877"><span class="linenos">1877</span></a> +</span><span id="Generator-1878"><a href="#Generator-1878"><span class="linenos">1878</span></a> <span class="k">def</span> <span class="nf">format_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1879"><a href="#Generator-1879"><span class="linenos">1879</span></a> <span class="n">arg_sqls</span> <span class="o">=</span> <span class="nb">tuple</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">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Generator-1880"><a href="#Generator-1880"><span class="linenos">1880</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> +</span><span id="Generator-1881"><a href="#Generator-1881"><span class="linenos">1881</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">",</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator-1882"><a href="#Generator-1882"><span class="linenos">1882</span></a> <span class="k">return</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> +</span><span id="Generator-1883"><a href="#Generator-1883"><span class="linenos">1883</span></a> +</span><span id="Generator-1884"><a href="#Generator-1884"><span class="linenos">1884</span></a> <span class="k">def</span> <span class="nf">text_width</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> +</span><span id="Generator-1885"><a href="#Generator-1885"><span class="linenos">1885</span></a> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">)</span> +</span><span id="Generator-1886"><a href="#Generator-1886"><span class="linenos">1886</span></a> +</span><span id="Generator-1887"><a href="#Generator-1887"><span class="linenos">1887</span></a> <span class="k">def</span> <span class="nf">format_time</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">Expression</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="nb">str</span><span class="p">]:</span> +</span><span id="Generator-1888"><a href="#Generator-1888"><span class="linenos">1888</span></a> <span class="k">return</span> <span class="n">format_time</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">expression</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span><span class="p">)</span> +</span><span id="Generator-1889"><a href="#Generator-1889"><span class="linenos">1889</span></a> +</span><span id="Generator-1890"><a href="#Generator-1890"><span class="linenos">1890</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span> +</span><span id="Generator-1891"><a href="#Generator-1891"><span class="linenos">1891</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator-1892"><a href="#Generator-1892"><span class="linenos">1892</span></a> <span class="n">expression</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="Generator-1893"><a href="#Generator-1893"><span class="linenos">1893</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator-1894"><a href="#Generator-1894"><span class="linenos">1894</span></a> <span class="n">flat</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="Generator-1895"><a href="#Generator-1895"><span class="linenos">1895</span></a> <span class="n">indent</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Generator-1896"><a href="#Generator-1896"><span class="linenos">1896</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> +</span><span id="Generator-1897"><a href="#Generator-1897"><span class="linenos">1897</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator-1898"><a href="#Generator-1898"><span class="linenos">1898</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1899"><a href="#Generator-1899"><span class="linenos">1899</span></a> <span class="n">expressions</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="n">key</span> <span class="ow">or</span> <span class="s2">"expressions"</span><span class="p">)</span> +</span><span id="Generator-1900"><a href="#Generator-1900"><span class="linenos">1900</span></a> +</span><span id="Generator-1901"><a href="#Generator-1901"><span class="linenos">1901</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator-1902"><a href="#Generator-1902"><span class="linenos">1902</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator-1903"><a href="#Generator-1903"><span class="linenos">1903</span></a> +</span><span id="Generator-1904"><a href="#Generator-1904"><span class="linenos">1904</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> +</span><span id="Generator-1905"><a href="#Generator-1905"><span class="linenos">1905</span></a> <span class="k">return</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator-1906"><a href="#Generator-1906"><span class="linenos">1906</span></a> +</span><span id="Generator-1907"><a href="#Generator-1907"><span class="linenos">1907</span></a> <span class="n">num_sqls</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> </span><span id="Generator-1908"><a href="#Generator-1908"><span class="linenos">1908</span></a> -</span><span id="Generator-1909"><a href="#Generator-1909"><span class="linenos">1909</span></a> <span class="n">result_sqls</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator-1910"><a href="#Generator-1910"><span class="linenos">1910</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="Generator-1911"><a href="#Generator-1911"><span class="linenos">1911</span></a> <span class="n">sql</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">e</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator-1912"><a href="#Generator-1912"><span class="linenos">1912</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1913"><a href="#Generator-1913"><span class="linenos">1913</span></a> -</span><span id="Generator-1914"><a href="#Generator-1914"><span class="linenos">1914</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator-1915"><a href="#Generator-1915"><span class="linenos">1915</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span><span class="p">:</span> -</span><span id="Generator-1916"><a href="#Generator-1916"><span class="linenos">1916</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="n">pad</span><span class="si">}{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-1917"><a href="#Generator-1917"><span class="linenos">1917</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1918"><a href="#Generator-1918"><span class="linenos">1918</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Generator-1919"><a href="#Generator-1919"><span class="linenos">1919</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">stripped_sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1920"><a href="#Generator-1920"><span class="linenos">1920</span></a> <span class="p">)</span> -</span><span id="Generator-1921"><a href="#Generator-1921"><span class="linenos">1921</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1922"><a href="#Generator-1922"><span class="linenos">1922</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</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">"</span><span class="p">)</span> -</span><span id="Generator-1923"><a href="#Generator-1923"><span class="linenos">1923</span></a> -</span><span id="Generator-1924"><a href="#Generator-1924"><span class="linenos">1924</span></a> <span class="n">result_sql</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> -</span><span id="Generator-1925"><a href="#Generator-1925"><span class="linenos">1925</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">result_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="n">indent</span> <span class="k">else</span> <span class="n">result_sql</span> -</span><span id="Generator-1926"><a href="#Generator-1926"><span class="linenos">1926</span></a> -</span><span id="Generator-1927"><a href="#Generator-1927"><span class="linenos">1927</span></a> <span class="k">def</span> <span class="nf">op_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1928"><a href="#Generator-1928"><span class="linenos">1928</span></a> <span class="n">flat</span> <span class="o">=</span> <span class="n">flat</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> -</span><span id="Generator-1929"><a href="#Generator-1929"><span class="linenos">1929</span></a> <span class="n">expressions_sql</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="n">flat</span><span class="p">)</span> -</span><span id="Generator-1930"><a href="#Generator-1930"><span class="linenos">1930</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> -</span><span id="Generator-1931"><a href="#Generator-1931"><span class="linenos">1931</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1932"><a href="#Generator-1932"><span class="linenos">1932</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expressions_sql</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1933"><a href="#Generator-1933"><span class="linenos">1933</span></a> -</span><span id="Generator-1934"><a href="#Generator-1934"><span class="linenos">1934</span></a> <span class="k">def</span> <span class="nf">naked_property</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1935"><a href="#Generator-1935"><span class="linenos">1935</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> -</span><span id="Generator-1936"><a href="#Generator-1936"><span class="linenos">1936</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> -</span><span id="Generator-1937"><a href="#Generator-1937"><span class="linenos">1937</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator-1938"><a href="#Generator-1938"><span class="linenos">1938</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="Generator-1939"><a href="#Generator-1939"><span class="linenos">1939</span></a> -</span><span id="Generator-1940"><a href="#Generator-1940"><span class="linenos">1940</span></a> <span class="k">def</span> <span class="nf">set_operation</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">Expression</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1941"><a href="#Generator-1941"><span class="linenos">1941</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1942"><a href="#Generator-1942"><span class="linenos">1942</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span> -</span><span id="Generator-1943"><a href="#Generator-1943"><span class="linenos">1943</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="Generator-1944"><a href="#Generator-1944"><span class="linenos">1944</span></a> <span class="n">expression</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">op</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1945"><a href="#Generator-1945"><span class="linenos">1945</span></a> <span class="p">)</span> -</span><span id="Generator-1946"><a href="#Generator-1946"><span class="linenos">1946</span></a> -</span><span id="Generator-1947"><a href="#Generator-1947"><span class="linenos">1947</span></a> <span class="k">def</span> <span class="nf">tag_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">Tag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1948"><a href="#Generator-1948"><span class="linenos">1948</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</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="s1">'prefix'</span><span class="p">)</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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}{</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="s1">'postfix'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1949"><a href="#Generator-1949"><span class="linenos">1949</span></a> -</span><span id="Generator-1950"><a href="#Generator-1950"><span class="linenos">1950</span></a> <span class="k">def</span> <span class="nf">token_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1951"><a href="#Generator-1951"><span class="linenos">1951</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">TOKEN_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">token_type</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="Generator-1952"><a href="#Generator-1952"><span class="linenos">1952</span></a> -</span><span id="Generator-1953"><a href="#Generator-1953"><span class="linenos">1953</span></a> <span class="k">def</span> <span class="nf">userdefinedfunction_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">UserDefinedFunction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1954"><a href="#Generator-1954"><span class="linenos">1954</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1955"><a href="#Generator-1955"><span class="linenos">1955</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</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><span id="Generator-1956"><a href="#Generator-1956"><span class="linenos">1956</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator-1957"><a href="#Generator-1957"><span class="linenos">1957</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1958"><a href="#Generator-1958"><span class="linenos">1958</span></a> <span class="p">)</span> -</span><span id="Generator-1959"><a href="#Generator-1959"><span class="linenos">1959</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1960"><a href="#Generator-1960"><span class="linenos">1960</span></a> -</span><span id="Generator-1961"><a href="#Generator-1961"><span class="linenos">1961</span></a> <span class="k">def</span> <span class="nf">joinhint_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">JoinHint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1962"><a href="#Generator-1962"><span class="linenos">1962</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1963"><a href="#Generator-1963"><span class="linenos">1963</span></a> <span class="n">expressions</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="Generator-1964"><a href="#Generator-1964"><span class="linenos">1964</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator-1965"><a href="#Generator-1965"><span class="linenos">1965</span></a> -</span><span id="Generator-1966"><a href="#Generator-1966"><span class="linenos">1966</span></a> <span class="k">def</span> <span class="nf">kwarg_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">Kwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1967"><a href="#Generator-1967"><span class="linenos">1967</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"=>"</span><span class="p">)</span> -</span><span id="Generator-1968"><a href="#Generator-1968"><span class="linenos">1968</span></a> -</span><span id="Generator-1969"><a href="#Generator-1969"><span class="linenos">1969</span></a> <span class="k">def</span> <span class="nf">when_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">When</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1970"><a href="#Generator-1970"><span class="linenos">1970</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="s2">"MATCHED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"matched"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"NOT MATCHED"</span> -</span><span id="Generator-1971"><a href="#Generator-1971"><span class="linenos">1971</span></a> <span class="n">source</span> <span class="o">=</span> <span class="s2">" BY SOURCE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">MATCHED_BY_SOURCE</span> <span class="ow">and</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">"source"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1972"><a href="#Generator-1972"><span class="linenos">1972</span></a> <span class="n">condition</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">"condition"</span><span class="p">)</span> -</span><span id="Generator-1973"><a href="#Generator-1973"><span class="linenos">1973</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="n">condition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">condition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator-1974"><a href="#Generator-1974"><span class="linenos">1974</span></a> -</span><span id="Generator-1975"><a href="#Generator-1975"><span class="linenos">1975</span></a> <span class="n">then_expression</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">"then"</span><span class="p">)</span> -</span><span id="Generator-1976"><a href="#Generator-1976"><span class="linenos">1976</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">):</span> -</span><span id="Generator-1977"><a href="#Generator-1977"><span class="linenos">1977</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT </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">then_expression</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><span id="Generator-1978"><a href="#Generator-1978"><span class="linenos">1978</span></a> <span class="k">if</span> <span class="s2">"expression"</span> <span class="ow">in</span> <span class="n">then_expression</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Generator-1979"><a href="#Generator-1979"><span class="linenos">1979</span></a> <span class="n">then</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" VALUES </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1980"><a href="#Generator-1980"><span class="linenos">1980</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">):</span> -</span><span id="Generator-1981"><a href="#Generator-1981"><span class="linenos">1981</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_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 class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> -</span><span id="Generator-1982"><a href="#Generator-1982"><span class="linenos">1982</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1983"><a href="#Generator-1983"><span class="linenos">1983</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1984"><a href="#Generator-1984"><span class="linenos">1984</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE SET </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1985"><a href="#Generator-1985"><span class="linenos">1985</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator-1986"><a href="#Generator-1986"><span class="linenos">1986</span></a> <span class="n">then</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">then_expression</span><span class="p">)</span> -</span><span id="Generator-1987"><a href="#Generator-1987"><span class="linenos">1987</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WHEN </span><span class="si">{</span><span class="n">matched</span><span class="si">}{</span><span class="n">source</span><span class="si">}{</span><span class="n">condition</span><span class="si">}</span><span class="s2"> THEN </span><span class="si">{</span><span class="n">then</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1988"><a href="#Generator-1988"><span class="linenos">1988</span></a> -</span><span id="Generator-1989"><a href="#Generator-1989"><span class="linenos">1989</span></a> <span class="k">def</span> <span class="nf">merge_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">Merge</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator-1990"><a href="#Generator-1990"><span class="linenos">1990</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator-1991"><a href="#Generator-1991"><span class="linenos">1991</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"USING </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'using'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1992"><a href="#Generator-1992"><span class="linenos">1992</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ON </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'on'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator-1993"><a href="#Generator-1993"><span class="linenos">1993</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGE INTO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">' '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1909"><a href="#Generator-1909"><span class="linenos">1909</span></a> <span class="c1"># These are calculated once in case we have the leading_comma / pretty option set, correspondingly</span> +</span><span id="Generator-1910"><a href="#Generator-1910"><span class="linenos">1910</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> +</span><span id="Generator-1911"><a href="#Generator-1911"><span class="linenos">1911</span></a> <span class="n">stripped_sep</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="Generator-1912"><a href="#Generator-1912"><span class="linenos">1912</span></a> +</span><span id="Generator-1913"><a href="#Generator-1913"><span class="linenos">1913</span></a> <span class="n">result_sqls</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator-1914"><a href="#Generator-1914"><span class="linenos">1914</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="Generator-1915"><a href="#Generator-1915"><span class="linenos">1915</span></a> <span class="n">sql</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">e</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator-1916"><a href="#Generator-1916"><span class="linenos">1916</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1917"><a href="#Generator-1917"><span class="linenos">1917</span></a> +</span><span id="Generator-1918"><a href="#Generator-1918"><span class="linenos">1918</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator-1919"><a href="#Generator-1919"><span class="linenos">1919</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span><span class="p">:</span> +</span><span id="Generator-1920"><a href="#Generator-1920"><span class="linenos">1920</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="n">pad</span><span class="si">}{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-1921"><a href="#Generator-1921"><span class="linenos">1921</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1922"><a href="#Generator-1922"><span class="linenos">1922</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Generator-1923"><a href="#Generator-1923"><span class="linenos">1923</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">stripped_sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1924"><a href="#Generator-1924"><span class="linenos">1924</span></a> <span class="p">)</span> +</span><span id="Generator-1925"><a href="#Generator-1925"><span class="linenos">1925</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1926"><a href="#Generator-1926"><span class="linenos">1926</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</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">"</span><span class="p">)</span> +</span><span id="Generator-1927"><a href="#Generator-1927"><span class="linenos">1927</span></a> +</span><span id="Generator-1928"><a href="#Generator-1928"><span class="linenos">1928</span></a> <span class="n">result_sql</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> +</span><span id="Generator-1929"><a href="#Generator-1929"><span class="linenos">1929</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">result_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="n">indent</span> <span class="k">else</span> <span class="n">result_sql</span> +</span><span id="Generator-1930"><a href="#Generator-1930"><span class="linenos">1930</span></a> +</span><span id="Generator-1931"><a href="#Generator-1931"><span class="linenos">1931</span></a> <span class="k">def</span> <span class="nf">op_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1932"><a href="#Generator-1932"><span class="linenos">1932</span></a> <span class="n">flat</span> <span class="o">=</span> <span class="n">flat</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> +</span><span id="Generator-1933"><a href="#Generator-1933"><span class="linenos">1933</span></a> <span class="n">expressions_sql</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="n">flat</span><span class="p">)</span> +</span><span id="Generator-1934"><a href="#Generator-1934"><span class="linenos">1934</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> +</span><span id="Generator-1935"><a href="#Generator-1935"><span class="linenos">1935</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1936"><a href="#Generator-1936"><span class="linenos">1936</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expressions_sql</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1937"><a href="#Generator-1937"><span class="linenos">1937</span></a> +</span><span id="Generator-1938"><a href="#Generator-1938"><span class="linenos">1938</span></a> <span class="k">def</span> <span class="nf">naked_property</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1939"><a href="#Generator-1939"><span class="linenos">1939</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> +</span><span id="Generator-1940"><a href="#Generator-1940"><span class="linenos">1940</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> +</span><span id="Generator-1941"><a href="#Generator-1941"><span class="linenos">1941</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator-1942"><a href="#Generator-1942"><span class="linenos">1942</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="Generator-1943"><a href="#Generator-1943"><span class="linenos">1943</span></a> +</span><span id="Generator-1944"><a href="#Generator-1944"><span class="linenos">1944</span></a> <span class="k">def</span> <span class="nf">set_operation</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">Expression</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1945"><a href="#Generator-1945"><span class="linenos">1945</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1946"><a href="#Generator-1946"><span class="linenos">1946</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span> +</span><span id="Generator-1947"><a href="#Generator-1947"><span class="linenos">1947</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="Generator-1948"><a href="#Generator-1948"><span class="linenos">1948</span></a> <span class="n">expression</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">op</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1949"><a href="#Generator-1949"><span class="linenos">1949</span></a> <span class="p">)</span> +</span><span id="Generator-1950"><a href="#Generator-1950"><span class="linenos">1950</span></a> +</span><span id="Generator-1951"><a href="#Generator-1951"><span class="linenos">1951</span></a> <span class="k">def</span> <span class="nf">tag_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">Tag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1952"><a href="#Generator-1952"><span class="linenos">1952</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</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="s1">'prefix'</span><span class="p">)</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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}{</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="s1">'postfix'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1953"><a href="#Generator-1953"><span class="linenos">1953</span></a> +</span><span id="Generator-1954"><a href="#Generator-1954"><span class="linenos">1954</span></a> <span class="k">def</span> <span class="nf">token_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1955"><a href="#Generator-1955"><span class="linenos">1955</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">TOKEN_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">token_type</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="Generator-1956"><a href="#Generator-1956"><span class="linenos">1956</span></a> +</span><span id="Generator-1957"><a href="#Generator-1957"><span class="linenos">1957</span></a> <span class="k">def</span> <span class="nf">userdefinedfunction_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">UserDefinedFunction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1958"><a href="#Generator-1958"><span class="linenos">1958</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1959"><a href="#Generator-1959"><span class="linenos">1959</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</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><span id="Generator-1960"><a href="#Generator-1960"><span class="linenos">1960</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator-1961"><a href="#Generator-1961"><span class="linenos">1961</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1962"><a href="#Generator-1962"><span class="linenos">1962</span></a> <span class="p">)</span> +</span><span id="Generator-1963"><a href="#Generator-1963"><span class="linenos">1963</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1964"><a href="#Generator-1964"><span class="linenos">1964</span></a> +</span><span id="Generator-1965"><a href="#Generator-1965"><span class="linenos">1965</span></a> <span class="k">def</span> <span class="nf">joinhint_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">JoinHint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1966"><a href="#Generator-1966"><span class="linenos">1966</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1967"><a href="#Generator-1967"><span class="linenos">1967</span></a> <span class="n">expressions</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="Generator-1968"><a href="#Generator-1968"><span class="linenos">1968</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator-1969"><a href="#Generator-1969"><span class="linenos">1969</span></a> +</span><span id="Generator-1970"><a href="#Generator-1970"><span class="linenos">1970</span></a> <span class="k">def</span> <span class="nf">kwarg_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">Kwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1971"><a href="#Generator-1971"><span class="linenos">1971</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"=>"</span><span class="p">)</span> +</span><span id="Generator-1972"><a href="#Generator-1972"><span class="linenos">1972</span></a> +</span><span id="Generator-1973"><a href="#Generator-1973"><span class="linenos">1973</span></a> <span class="k">def</span> <span class="nf">when_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">When</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1974"><a href="#Generator-1974"><span class="linenos">1974</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="s2">"MATCHED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"matched"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"NOT MATCHED"</span> +</span><span id="Generator-1975"><a href="#Generator-1975"><span class="linenos">1975</span></a> <span class="n">source</span> <span class="o">=</span> <span class="s2">" BY SOURCE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">MATCHED_BY_SOURCE</span> <span class="ow">and</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">"source"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1976"><a href="#Generator-1976"><span class="linenos">1976</span></a> <span class="n">condition</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">"condition"</span><span class="p">)</span> +</span><span id="Generator-1977"><a href="#Generator-1977"><span class="linenos">1977</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="n">condition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">condition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator-1978"><a href="#Generator-1978"><span class="linenos">1978</span></a> +</span><span id="Generator-1979"><a href="#Generator-1979"><span class="linenos">1979</span></a> <span class="n">then_expression</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">"then"</span><span class="p">)</span> +</span><span id="Generator-1980"><a href="#Generator-1980"><span class="linenos">1980</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">):</span> +</span><span id="Generator-1981"><a href="#Generator-1981"><span class="linenos">1981</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT </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">then_expression</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><span id="Generator-1982"><a href="#Generator-1982"><span class="linenos">1982</span></a> <span class="k">if</span> <span class="s2">"expression"</span> <span class="ow">in</span> <span class="n">then_expression</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Generator-1983"><a href="#Generator-1983"><span class="linenos">1983</span></a> <span class="n">then</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" VALUES </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1984"><a href="#Generator-1984"><span class="linenos">1984</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">):</span> +</span><span id="Generator-1985"><a href="#Generator-1985"><span class="linenos">1985</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_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 class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> +</span><span id="Generator-1986"><a href="#Generator-1986"><span class="linenos">1986</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1987"><a href="#Generator-1987"><span class="linenos">1987</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1988"><a href="#Generator-1988"><span class="linenos">1988</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE SET </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1989"><a href="#Generator-1989"><span class="linenos">1989</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator-1990"><a href="#Generator-1990"><span class="linenos">1990</span></a> <span class="n">then</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">then_expression</span><span class="p">)</span> +</span><span id="Generator-1991"><a href="#Generator-1991"><span class="linenos">1991</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WHEN </span><span class="si">{</span><span class="n">matched</span><span class="si">}{</span><span class="n">source</span><span class="si">}{</span><span class="n">condition</span><span class="si">}</span><span class="s2"> THEN </span><span class="si">{</span><span class="n">then</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1992"><a href="#Generator-1992"><span class="linenos">1992</span></a> +</span><span id="Generator-1993"><a href="#Generator-1993"><span class="linenos">1993</span></a> <span class="k">def</span> <span class="nf">merge_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">Merge</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-1994"><a href="#Generator-1994"><span class="linenos">1994</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator-1995"><a href="#Generator-1995"><span class="linenos">1995</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"USING </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'using'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1996"><a href="#Generator-1996"><span class="linenos">1996</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ON </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'on'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1997"><a href="#Generator-1997"><span class="linenos">1997</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGE INTO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">' '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator-1998"><a href="#Generator-1998"><span class="linenos">1998</span></a> +</span><span id="Generator-1999"><a href="#Generator-1999"><span class="linenos">1999</span></a> <span class="k">def</span> <span class="nf">tochar_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">ToChar</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator-2000"><a href="#Generator-2000"><span class="linenos">2000</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">"format"</span><span class="p">):</span> +</span><span id="Generator-2001"><a href="#Generator-2001"><span class="linenos">2001</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Format argument unsupported for TO_CHAR/TO_VARCHAR function"</span><span class="p">)</span> +</span><span id="Generator-2002"><a href="#Generator-2002"><span class="linenos">2002</span></a> +</span><span id="Generator-2003"><a href="#Generator-2003"><span class="linenos">2003</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">exp</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"text"</span><span class="p">))</span> </span></pre></div> @@ -4696,8 +4722,7 @@ represents a python time format and the output the target time format</li> <li><strong>quote_end (str):</strong> specifies which ending character to use to delimit quotes. Default: '.</li> <li><strong>identifier_start (str):</strong> specifies which starting character to use to delimit identifiers. Default: ".</li> <li><strong>identifier_end (str):</strong> specifies which ending character to use to delimit identifiers. Default: ".</li> -<li><strong>identify (bool):</strong> if set to True all identifiers will be delimited by the corresponding -character.</li> +<li><strong>identify (bool | str):</strong> 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always.</li> <li><strong>normalize (bool):</strong> if set to True all identifiers will lower cased</li> <li><strong>string_escape (str):</strong> specifies a string escape character. Default: '.</li> <li><strong>identifier_escape (str):</strong> specifies an identifier escape character. Default: ".</li> @@ -4738,60 +4763,60 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.__init__"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.__init__-219"><a href="#Generator.__init__-219"><span class="linenos">219</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="Generator.__init__-220"><a href="#Generator.__init__-220"><span class="linenos">220</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator.__init__-221"><a href="#Generator.__init__-221"><span class="linenos">221</span></a> <span class="n">time_mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-222"><a href="#Generator.__init__-222"><span class="linenos">222</span></a> <span class="n">time_trie</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-223"><a href="#Generator.__init__-223"><span class="linenos">223</span></a> <span class="n">pretty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-224"><a href="#Generator.__init__-224"><span class="linenos">224</span></a> <span class="n">quote_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-225"><a href="#Generator.__init__-225"><span class="linenos">225</span></a> <span class="n">quote_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-226"><a href="#Generator.__init__-226"><span class="linenos">226</span></a> <span class="n">identifier_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-227"><a href="#Generator.__init__-227"><span class="linenos">227</span></a> <span class="n">identifier_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-228"><a href="#Generator.__init__-228"><span class="linenos">228</span></a> <span class="n">identify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.__init__-229"><a href="#Generator.__init__-229"><span class="linenos">229</span></a> <span class="n">normalize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.__init__-230"><a href="#Generator.__init__-230"><span class="linenos">230</span></a> <span class="n">string_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-231"><a href="#Generator.__init__-231"><span class="linenos">231</span></a> <span class="n">identifier_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-232"><a href="#Generator.__init__-232"><span class="linenos">232</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> -</span><span id="Generator.__init__-233"><a href="#Generator.__init__-233"><span class="linenos">233</span></a> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> -</span><span id="Generator.__init__-234"><a href="#Generator.__init__-234"><span class="linenos">234</span></a> <span class="n">index_offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> -</span><span id="Generator.__init__-235"><a href="#Generator.__init__-235"><span class="linenos">235</span></a> <span class="n">unnest_column_only</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.__init__-236"><a href="#Generator.__init__-236"><span class="linenos">236</span></a> <span class="n">alias_post_tablesample</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.__init__-237"><a href="#Generator.__init__-237"><span class="linenos">237</span></a> <span class="n">normalize_functions</span><span class="o">=</span><span class="s2">"upper"</span><span class="p">,</span> -</span><span id="Generator.__init__-238"><a href="#Generator.__init__-238"><span class="linenos">238</span></a> <span class="n">unsupported_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">,</span> -</span><span id="Generator.__init__-239"><a href="#Generator.__init__-239"><span class="linenos">239</span></a> <span class="n">null_ordering</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.__init__-240"><a href="#Generator.__init__-240"><span class="linenos">240</span></a> <span class="n">max_unsupported</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> -</span><span id="Generator.__init__-241"><a href="#Generator.__init__-241"><span class="linenos">241</span></a> <span class="n">leading_comma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.__init__-242"><a href="#Generator.__init__-242"><span class="linenos">242</span></a> <span class="n">max_text_width</span><span class="o">=</span><span class="mi">80</span><span class="p">,</span> -</span><span id="Generator.__init__-243"><a href="#Generator.__init__-243"><span class="linenos">243</span></a> <span class="n">comments</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Generator.__init__-244"><a href="#Generator.__init__-244"><span class="linenos">244</span></a> <span class="p">):</span> -</span><span id="Generator.__init__-245"><a href="#Generator.__init__-245"><span class="linenos">245</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> -</span><span id="Generator.__init__-246"><a href="#Generator.__init__-246"><span class="linenos">246</span></a> -</span><span id="Generator.__init__-247"><a href="#Generator.__init__-247"><span class="linenos">247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span> <span class="o">=</span> <span class="n">time_mapping</span> <span class="ow">or</span> <span class="p">{}</span> -</span><span id="Generator.__init__-248"><a href="#Generator.__init__-248"><span class="linenos">248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span> <span class="o">=</span> <span class="n">time_trie</span> -</span><span id="Generator.__init__-249"><a href="#Generator.__init__-249"><span class="linenos">249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="n">pretty</span> <span class="k">if</span> <span class="n">pretty</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">pretty</span> -</span><span id="Generator.__init__-250"><a href="#Generator.__init__-250"><span class="linenos">250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span> <span class="o">=</span> <span class="n">quote_start</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="Generator.__init__-251"><a href="#Generator.__init__-251"><span class="linenos">251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> <span class="o">=</span> <span class="n">quote_end</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="Generator.__init__-252"><a href="#Generator.__init__-252"><span class="linenos">252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span> <span class="o">=</span> <span class="n">identifier_start</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="Generator.__init__-253"><a href="#Generator.__init__-253"><span class="linenos">253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="Generator.__init__-254"><a href="#Generator.__init__-254"><span class="linenos">254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">identify</span> -</span><span id="Generator.__init__-255"><a href="#Generator.__init__-255"><span class="linenos">255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="o">=</span> <span class="n">normalize</span> -</span><span id="Generator.__init__-256"><a href="#Generator.__init__-256"><span class="linenos">256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">=</span> <span class="n">string_escape</span> <span class="ow">or</span> <span class="s2">"'"</span> -</span><span id="Generator.__init__-257"><a href="#Generator.__init__-257"><span class="linenos">257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">=</span> <span class="n">identifier_escape</span> <span class="ow">or</span> <span class="s1">'"'</span> -</span><span id="Generator.__init__-258"><a href="#Generator.__init__-258"><span class="linenos">258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="o">=</span> <span class="n">pad</span> -</span><span id="Generator.__init__-259"><a href="#Generator.__init__-259"><span class="linenos">259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> -</span><span id="Generator.__init__-260"><a href="#Generator.__init__-260"><span class="linenos">260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> -</span><span id="Generator.__init__-261"><a href="#Generator.__init__-261"><span class="linenos">261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> -</span><span id="Generator.__init__-262"><a href="#Generator.__init__-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">=</span> <span class="n">normalize_functions</span> -</span><span id="Generator.__init__-263"><a href="#Generator.__init__-263"><span class="linenos">263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">=</span> <span class="n">unsupported_level</span> -</span><span id="Generator.__init__-264"><a href="#Generator.__init__-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.__init__-265"><a href="#Generator.__init__-265"><span class="linenos">265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span> <span class="o">=</span> <span class="n">max_unsupported</span> -</span><span id="Generator.__init__-266"><a href="#Generator.__init__-266"><span class="linenos">266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> -</span><span id="Generator.__init__-267"><a href="#Generator.__init__-267"><span class="linenos">267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_indent</span> <span class="o">=</span> <span class="n">indent</span> -</span><span id="Generator.__init__-268"><a href="#Generator.__init__-268"><span class="linenos">268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> -</span><span id="Generator.__init__-269"><a href="#Generator.__init__-269"><span class="linenos">269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> -</span><span id="Generator.__init__-270"><a href="#Generator.__init__-270"><span class="linenos">270</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span> <span class="o">=</span> <span class="n">leading_comma</span> -</span><span id="Generator.__init__-271"><a href="#Generator.__init__-271"><span class="linenos">271</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="o">=</span> <span class="n">max_text_width</span> -</span><span id="Generator.__init__-272"><a href="#Generator.__init__-272"><span class="linenos">272</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="n">comments</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.__init__-215"><a href="#Generator.__init__-215"><span class="linenos">215</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="Generator.__init__-216"><a href="#Generator.__init__-216"><span class="linenos">216</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator.__init__-217"><a href="#Generator.__init__-217"><span class="linenos">217</span></a> <span class="n">time_mapping</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-218"><a href="#Generator.__init__-218"><span class="linenos">218</span></a> <span class="n">time_trie</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-219"><a href="#Generator.__init__-219"><span class="linenos">219</span></a> <span class="n">pretty</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-220"><a href="#Generator.__init__-220"><span class="linenos">220</span></a> <span class="n">quote_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-221"><a href="#Generator.__init__-221"><span class="linenos">221</span></a> <span class="n">quote_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-222"><a href="#Generator.__init__-222"><span class="linenos">222</span></a> <span class="n">identifier_start</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-223"><a href="#Generator.__init__-223"><span class="linenos">223</span></a> <span class="n">identifier_end</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-224"><a href="#Generator.__init__-224"><span class="linenos">224</span></a> <span class="n">identify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.__init__-225"><a href="#Generator.__init__-225"><span class="linenos">225</span></a> <span class="n">normalize</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.__init__-226"><a href="#Generator.__init__-226"><span class="linenos">226</span></a> <span class="n">string_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-227"><a href="#Generator.__init__-227"><span class="linenos">227</span></a> <span class="n">identifier_escape</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-228"><a href="#Generator.__init__-228"><span class="linenos">228</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> +</span><span id="Generator.__init__-229"><a href="#Generator.__init__-229"><span class="linenos">229</span></a> <span class="n">indent</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> +</span><span id="Generator.__init__-230"><a href="#Generator.__init__-230"><span class="linenos">230</span></a> <span class="n">index_offset</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> +</span><span id="Generator.__init__-231"><a href="#Generator.__init__-231"><span class="linenos">231</span></a> <span class="n">unnest_column_only</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.__init__-232"><a href="#Generator.__init__-232"><span class="linenos">232</span></a> <span class="n">alias_post_tablesample</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.__init__-233"><a href="#Generator.__init__-233"><span class="linenos">233</span></a> <span class="n">normalize_functions</span><span class="o">=</span><span class="s2">"upper"</span><span class="p">,</span> +</span><span id="Generator.__init__-234"><a href="#Generator.__init__-234"><span class="linenos">234</span></a> <span class="n">unsupported_level</span><span class="o">=</span><span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">,</span> +</span><span id="Generator.__init__-235"><a href="#Generator.__init__-235"><span class="linenos">235</span></a> <span class="n">null_ordering</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.__init__-236"><a href="#Generator.__init__-236"><span class="linenos">236</span></a> <span class="n">max_unsupported</span><span class="o">=</span><span class="mi">3</span><span class="p">,</span> +</span><span id="Generator.__init__-237"><a href="#Generator.__init__-237"><span class="linenos">237</span></a> <span class="n">leading_comma</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.__init__-238"><a href="#Generator.__init__-238"><span class="linenos">238</span></a> <span class="n">max_text_width</span><span class="o">=</span><span class="mi">80</span><span class="p">,</span> +</span><span id="Generator.__init__-239"><a href="#Generator.__init__-239"><span class="linenos">239</span></a> <span class="n">comments</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Generator.__init__-240"><a href="#Generator.__init__-240"><span class="linenos">240</span></a> <span class="p">):</span> +</span><span id="Generator.__init__-241"><a href="#Generator.__init__-241"><span class="linenos">241</span></a> <span class="kn">import</span> <span class="nn">sqlglot</span> +</span><span id="Generator.__init__-242"><a href="#Generator.__init__-242"><span class="linenos">242</span></a> +</span><span id="Generator.__init__-243"><a href="#Generator.__init__-243"><span class="linenos">243</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span> <span class="o">=</span> <span class="n">time_mapping</span> <span class="ow">or</span> <span class="p">{}</span> +</span><span id="Generator.__init__-244"><a href="#Generator.__init__-244"><span class="linenos">244</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span> <span class="o">=</span> <span class="n">time_trie</span> +</span><span id="Generator.__init__-245"><a href="#Generator.__init__-245"><span class="linenos">245</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="o">=</span> <span class="n">pretty</span> <span class="k">if</span> <span class="n">pretty</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">sqlglot</span><span class="o">.</span><span class="n">pretty</span> +</span><span id="Generator.__init__-246"><a href="#Generator.__init__-246"><span class="linenos">246</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_start</span> <span class="o">=</span> <span class="n">quote_start</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="Generator.__init__-247"><a href="#Generator.__init__-247"><span class="linenos">247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> <span class="o">=</span> <span class="n">quote_end</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="Generator.__init__-248"><a href="#Generator.__init__-248"><span class="linenos">248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_start</span> <span class="o">=</span> <span class="n">identifier_start</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="Generator.__init__-249"><a href="#Generator.__init__-249"><span class="linenos">249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="Generator.__init__-250"><a href="#Generator.__init__-250"><span class="linenos">250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">identify</span> +</span><span id="Generator.__init__-251"><a href="#Generator.__init__-251"><span class="linenos">251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="o">=</span> <span class="n">normalize</span> +</span><span id="Generator.__init__-252"><a href="#Generator.__init__-252"><span class="linenos">252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">=</span> <span class="n">string_escape</span> <span class="ow">or</span> <span class="s2">"'"</span> +</span><span id="Generator.__init__-253"><a href="#Generator.__init__-253"><span class="linenos">253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">=</span> <span class="n">identifier_escape</span> <span class="ow">or</span> <span class="s1">'"'</span> +</span><span id="Generator.__init__-254"><a href="#Generator.__init__-254"><span class="linenos">254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="o">=</span> <span class="n">pad</span> +</span><span id="Generator.__init__-255"><a href="#Generator.__init__-255"><span class="linenos">255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> +</span><span id="Generator.__init__-256"><a href="#Generator.__init__-256"><span class="linenos">256</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> +</span><span id="Generator.__init__-257"><a href="#Generator.__init__-257"><span class="linenos">257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> +</span><span id="Generator.__init__-258"><a href="#Generator.__init__-258"><span class="linenos">258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">=</span> <span class="n">normalize_functions</span> +</span><span id="Generator.__init__-259"><a href="#Generator.__init__-259"><span class="linenos">259</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">=</span> <span class="n">unsupported_level</span> +</span><span id="Generator.__init__-260"><a href="#Generator.__init__-260"><span class="linenos">260</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.__init__-261"><a href="#Generator.__init__-261"><span class="linenos">261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span> <span class="o">=</span> <span class="n">max_unsupported</span> +</span><span id="Generator.__init__-262"><a href="#Generator.__init__-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> +</span><span id="Generator.__init__-263"><a href="#Generator.__init__-263"><span class="linenos">263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_indent</span> <span class="o">=</span> <span class="n">indent</span> +</span><span id="Generator.__init__-264"><a href="#Generator.__init__-264"><span class="linenos">264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">string_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span> +</span><span id="Generator.__init__-265"><a href="#Generator.__init__-265"><span class="linenos">265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_escape</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span> +</span><span id="Generator.__init__-266"><a href="#Generator.__init__-266"><span class="linenos">266</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span> <span class="o">=</span> <span class="n">leading_comma</span> +</span><span id="Generator.__init__-267"><a href="#Generator.__init__-267"><span class="linenos">267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="o">=</span> <span class="n">max_text_width</span> +</span><span id="Generator.__init__-268"><a href="#Generator.__init__-268"><span class="linenos">268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="n">comments</span> </span></pre></div> @@ -4809,31 +4834,31 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.generate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.generate-274"><a href="#Generator.generate-274"><span class="linenos">274</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.generate-275"><a href="#Generator.generate-275"><span class="linenos">275</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Generator.generate-276"><a href="#Generator.generate-276"><span class="linenos">276</span></a><span class="sd"> Generates a SQL string by interpreting the given syntax tree.</span> -</span><span id="Generator.generate-277"><a href="#Generator.generate-277"><span class="linenos">277</span></a> -</span><span id="Generator.generate-278"><a href="#Generator.generate-278"><span class="linenos">278</span></a><span class="sd"> Args</span> -</span><span id="Generator.generate-279"><a href="#Generator.generate-279"><span class="linenos">279</span></a><span class="sd"> expression: the syntax tree.</span> -</span><span id="Generator.generate-280"><a href="#Generator.generate-280"><span class="linenos">280</span></a> -</span><span id="Generator.generate-281"><a href="#Generator.generate-281"><span class="linenos">281</span></a><span class="sd"> Returns</span> -</span><span id="Generator.generate-282"><a href="#Generator.generate-282"><span class="linenos">282</span></a><span class="sd"> the SQL string.</span> -</span><span id="Generator.generate-283"><a href="#Generator.generate-283"><span class="linenos">283</span></a><span class="sd"> """</span> -</span><span id="Generator.generate-284"><a href="#Generator.generate-284"><span class="linenos">284</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.generate-285"><a href="#Generator.generate-285"><span class="linenos">285</span></a> <span class="n">sql</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="o">.</span><span class="n">strip</span><span class="p">()</span> -</span><span id="Generator.generate-286"><a href="#Generator.generate-286"><span class="linenos">286</span></a> -</span><span id="Generator.generate-287"><a href="#Generator.generate-287"><span class="linenos">287</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> -</span><span id="Generator.generate-288"><a href="#Generator.generate-288"><span class="linenos">288</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator.generate-289"><a href="#Generator.generate-289"><span class="linenos">289</span></a> -</span><span id="Generator.generate-290"><a href="#Generator.generate-290"><span class="linenos">290</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> -</span><span id="Generator.generate-291"><a href="#Generator.generate-291"><span class="linenos">291</span></a> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> -</span><span id="Generator.generate-292"><a href="#Generator.generate-292"><span class="linenos">292</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> -</span><span id="Generator.generate-293"><a href="#Generator.generate-293"><span class="linenos">293</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> -</span><span id="Generator.generate-294"><a href="#Generator.generate-294"><span class="linenos">294</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span><span class="p">))</span> -</span><span id="Generator.generate-295"><a href="#Generator.generate-295"><span class="linenos">295</span></a> -</span><span id="Generator.generate-296"><a href="#Generator.generate-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator.generate-297"><a href="#Generator.generate-297"><span class="linenos">297</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.generate-298"><a href="#Generator.generate-298"><span class="linenos">298</span></a> <span class="k">return</span> <span class="n">sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.generate-270"><a href="#Generator.generate-270"><span class="linenos">270</span></a> <span class="k">def</span> <span class="nf">generate</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">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 class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.generate-271"><a href="#Generator.generate-271"><span class="linenos">271</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Generator.generate-272"><a href="#Generator.generate-272"><span class="linenos">272</span></a><span class="sd"> Generates a SQL string by interpreting the given syntax tree.</span> +</span><span id="Generator.generate-273"><a href="#Generator.generate-273"><span class="linenos">273</span></a> +</span><span id="Generator.generate-274"><a href="#Generator.generate-274"><span class="linenos">274</span></a><span class="sd"> Args</span> +</span><span id="Generator.generate-275"><a href="#Generator.generate-275"><span class="linenos">275</span></a><span class="sd"> expression: the syntax tree.</span> +</span><span id="Generator.generate-276"><a href="#Generator.generate-276"><span class="linenos">276</span></a> +</span><span id="Generator.generate-277"><a href="#Generator.generate-277"><span class="linenos">277</span></a><span class="sd"> Returns</span> +</span><span id="Generator.generate-278"><a href="#Generator.generate-278"><span class="linenos">278</span></a><span class="sd"> the SQL string.</span> +</span><span id="Generator.generate-279"><a href="#Generator.generate-279"><span class="linenos">279</span></a><span class="sd"> """</span> +</span><span id="Generator.generate-280"><a href="#Generator.generate-280"><span class="linenos">280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.generate-281"><a href="#Generator.generate-281"><span class="linenos">281</span></a> <span class="n">sql</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="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="Generator.generate-282"><a href="#Generator.generate-282"><span class="linenos">282</span></a> +</span><span id="Generator.generate-283"><a href="#Generator.generate-283"><span class="linenos">283</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> +</span><span id="Generator.generate-284"><a href="#Generator.generate-284"><span class="linenos">284</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator.generate-285"><a href="#Generator.generate-285"><span class="linenos">285</span></a> +</span><span id="Generator.generate-286"><a href="#Generator.generate-286"><span class="linenos">286</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> +</span><span id="Generator.generate-287"><a href="#Generator.generate-287"><span class="linenos">287</span></a> <span class="k">for</span> <span class="n">msg</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> +</span><span id="Generator.generate-288"><a href="#Generator.generate-288"><span class="linenos">288</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">warning</span><span class="p">(</span><span class="n">msg</span><span class="p">)</span> +</span><span id="Generator.generate-289"><a href="#Generator.generate-289"><span class="linenos">289</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">:</span> +</span><span id="Generator.generate-290"><a href="#Generator.generate-290"><span class="linenos">290</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_unsupported</span><span class="p">))</span> +</span><span id="Generator.generate-291"><a href="#Generator.generate-291"><span class="linenos">291</span></a> +</span><span id="Generator.generate-292"><a href="#Generator.generate-292"><span class="linenos">292</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator.generate-293"><a href="#Generator.generate-293"><span class="linenos">293</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">,</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.generate-294"><a href="#Generator.generate-294"><span class="linenos">294</span></a> <span class="k">return</span> <span class="n">sql</span> </span></pre></div> @@ -4859,10 +4884,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.unsupported"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.unsupported-300"><a href="#Generator.unsupported-300"><span class="linenos">300</span></a> <span class="k">def</span> <span class="nf">unsupported</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.unsupported-301"><a href="#Generator.unsupported-301"><span class="linenos">301</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> -</span><span id="Generator.unsupported-302"><a href="#Generator.unsupported-302"><span class="linenos">302</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> -</span><span id="Generator.unsupported-303"><a href="#Generator.unsupported-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.unsupported-296"><a href="#Generator.unsupported-296"><span class="linenos">296</span></a> <span class="k">def</span> <span class="nf">unsupported</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.unsupported-297"><a href="#Generator.unsupported-297"><span class="linenos">297</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> +</span><span id="Generator.unsupported-298"><a href="#Generator.unsupported-298"><span class="linenos">298</span></a> <span class="k">raise</span> <span class="n">UnsupportedError</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> +</span><span id="Generator.unsupported-299"><a href="#Generator.unsupported-299"><span class="linenos">299</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported_messages</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">message</span><span class="p">)</span> </span></pre></div> @@ -4880,8 +4905,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.sep"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sep-305"><a href="#Generator.sep-305"><span class="linenos">305</span></a> <span class="k">def</span> <span class="nf">sep</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.sep-306"><a href="#Generator.sep-306"><span class="linenos">306</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="n">sep</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sep-301"><a href="#Generator.sep-301"><span class="linenos">301</span></a> <span class="k">def</span> <span class="nf">sep</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.sep-302"><a href="#Generator.sep-302"><span class="linenos">302</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="n">sep</span> </span></pre></div> @@ -4899,8 +4924,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.seg"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.seg-308"><a href="#Generator.seg-308"><span class="linenos">308</span></a> <span class="k">def</span> <span class="nf">seg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.seg-309"><a href="#Generator.seg-309"><span class="linenos">309</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.seg-304"><a href="#Generator.seg-304"><span class="linenos">304</span></a> <span class="k">def</span> <span class="nf">seg</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.seg-305"><a href="#Generator.seg-305"><span class="linenos">305</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="n">sep</span><span class="p">)</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -4918,10 +4943,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.pad_comment"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.pad_comment-311"><a href="#Generator.pad_comment-311"><span class="linenos">311</span></a> <span class="k">def</span> <span class="nf">pad_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.pad_comment-312"><a href="#Generator.pad_comment-312"><span class="linenos">312</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">comment</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> -</span><span id="Generator.pad_comment-313"><a href="#Generator.pad_comment-313"><span class="linenos">313</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="n">comment</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> -</span><span id="Generator.pad_comment-314"><a href="#Generator.pad_comment-314"><span class="linenos">314</span></a> <span class="k">return</span> <span class="n">comment</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.pad_comment-307"><a href="#Generator.pad_comment-307"><span class="linenos">307</span></a> <span class="k">def</span> <span class="nf">pad_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.pad_comment-308"><a href="#Generator.pad_comment-308"><span class="linenos">308</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="n">comment</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> +</span><span id="Generator.pad_comment-309"><a href="#Generator.pad_comment-309"><span class="linenos">309</span></a> <span class="n">comment</span> <span class="o">=</span> <span class="n">comment</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">comment</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">else</span> <span class="n">comment</span> +</span><span id="Generator.pad_comment-310"><a href="#Generator.pad_comment-310"><span class="linenos">310</span></a> <span class="k">return</span> <span class="n">comment</span> </span></pre></div> @@ -4939,24 +4964,24 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.maybe_comment"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.maybe_comment-316"><a href="#Generator.maybe_comment-316"><span class="linenos">316</span></a> <span class="k">def</span> <span class="nf">maybe_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.maybe_comment-317"><a href="#Generator.maybe_comment-317"><span class="linenos">317</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Generator.maybe_comment-318"><a href="#Generator.maybe_comment-318"><span class="linenos">318</span></a> -</span><span id="Generator.maybe_comment-319"><a href="#Generator.maybe_comment-319"><span class="linenos">319</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="Generator.maybe_comment-320"><a href="#Generator.maybe_comment-320"><span class="linenos">320</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator.maybe_comment-321"><a href="#Generator.maybe_comment-321"><span class="linenos">321</span></a> -</span><span id="Generator.maybe_comment-322"><a href="#Generator.maybe_comment-322"><span class="linenos">322</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.maybe_comment-323"><a href="#Generator.maybe_comment-323"><span class="linenos">323</span></a> <span class="n">comments_sql</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator.maybe_comment-324"><a href="#Generator.maybe_comment-324"><span class="linenos">324</span></a> <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">pad_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span><span class="si">}</span><span class="s2">*/"</span> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span> <span class="k">if</span> <span class="n">comment</span> -</span><span id="Generator.maybe_comment-325"><a href="#Generator.maybe_comment-325"><span class="linenos">325</span></a> <span class="p">)</span> -</span><span id="Generator.maybe_comment-326"><a href="#Generator.maybe_comment-326"><span class="linenos">326</span></a> -</span><span id="Generator.maybe_comment-327"><a href="#Generator.maybe_comment-327"><span class="linenos">327</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments_sql</span><span class="p">:</span> -</span><span id="Generator.maybe_comment-328"><a href="#Generator.maybe_comment-328"><span class="linenos">328</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator.maybe_comment-329"><a href="#Generator.maybe_comment-329"><span class="linenos">329</span></a> -</span><span id="Generator.maybe_comment-330"><a href="#Generator.maybe_comment-330"><span class="linenos">330</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">WITH_SEPARATED_COMMENTS</span><span class="p">):</span> -</span><span id="Generator.maybe_comment-331"><a href="#Generator.maybe_comment-331"><span class="linenos">331</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.maybe_comment-332"><a href="#Generator.maybe_comment-332"><span class="linenos">332</span></a> -</span><span id="Generator.maybe_comment-333"><a href="#Generator.maybe_comment-333"><span class="linenos">333</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.maybe_comment-312"><a href="#Generator.maybe_comment-312"><span class="linenos">312</span></a> <span class="k">def</span> <span class="nf">maybe_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.maybe_comment-313"><a href="#Generator.maybe_comment-313"><span class="linenos">313</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Generator.maybe_comment-314"><a href="#Generator.maybe_comment-314"><span class="linenos">314</span></a> +</span><span id="Generator.maybe_comment-315"><a href="#Generator.maybe_comment-315"><span class="linenos">315</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="Generator.maybe_comment-316"><a href="#Generator.maybe_comment-316"><span class="linenos">316</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator.maybe_comment-317"><a href="#Generator.maybe_comment-317"><span class="linenos">317</span></a> +</span><span id="Generator.maybe_comment-318"><a href="#Generator.maybe_comment-318"><span class="linenos">318</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.maybe_comment-319"><a href="#Generator.maybe_comment-319"><span class="linenos">319</span></a> <span class="n">comments_sql</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator.maybe_comment-320"><a href="#Generator.maybe_comment-320"><span class="linenos">320</span></a> <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">pad_comment</span><span class="p">(</span><span class="n">comment</span><span class="p">)</span><span class="si">}</span><span class="s2">*/"</span> <span class="k">for</span> <span class="n">comment</span> <span class="ow">in</span> <span class="n">comments</span> <span class="k">if</span> <span class="n">comment</span> +</span><span id="Generator.maybe_comment-321"><a href="#Generator.maybe_comment-321"><span class="linenos">321</span></a> <span class="p">)</span> +</span><span id="Generator.maybe_comment-322"><a href="#Generator.maybe_comment-322"><span class="linenos">322</span></a> +</span><span id="Generator.maybe_comment-323"><a href="#Generator.maybe_comment-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">comments_sql</span><span class="p">:</span> +</span><span id="Generator.maybe_comment-324"><a href="#Generator.maybe_comment-324"><span class="linenos">324</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator.maybe_comment-325"><a href="#Generator.maybe_comment-325"><span class="linenos">325</span></a> +</span><span id="Generator.maybe_comment-326"><a href="#Generator.maybe_comment-326"><span class="linenos">326</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">WITH_SEPARATED_COMMENTS</span><span class="p">):</span> +</span><span id="Generator.maybe_comment-327"><a href="#Generator.maybe_comment-327"><span class="linenos">327</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.maybe_comment-328"><a href="#Generator.maybe_comment-328"><span class="linenos">328</span></a> +</span><span id="Generator.maybe_comment-329"><a href="#Generator.maybe_comment-329"><span class="linenos">329</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">comments_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -4974,15 +4999,15 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.wrap"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.wrap-335"><a href="#Generator.wrap-335"><span class="linenos">335</span></a> <span class="k">def</span> <span class="nf">wrap</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">Expression</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.wrap-336"><a href="#Generator.wrap-336"><span class="linenos">336</span></a> <span class="n">this_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span> -</span><span id="Generator.wrap-337"><a href="#Generator.wrap-337"><span class="linenos">337</span></a> <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><span id="Generator.wrap-338"><a href="#Generator.wrap-338"><span class="linenos">338</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="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">Union</span><span class="p">))</span> -</span><span id="Generator.wrap-339"><a href="#Generator.wrap-339"><span class="linenos">339</span></a> <span class="k">else</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="Generator.wrap-340"><a href="#Generator.wrap-340"><span class="linenos">340</span></a> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> -</span><span id="Generator.wrap-341"><a href="#Generator.wrap-341"><span class="linenos">341</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> -</span><span id="Generator.wrap-342"><a href="#Generator.wrap-342"><span class="linenos">342</span></a> <span class="p">)</span> -</span><span id="Generator.wrap-343"><a href="#Generator.wrap-343"><span class="linenos">343</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.wrap-331"><a href="#Generator.wrap-331"><span class="linenos">331</span></a> <span class="k">def</span> <span class="nf">wrap</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">Expression</span> <span class="o">|</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.wrap-332"><a href="#Generator.wrap-332"><span class="linenos">332</span></a> <span class="n">this_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span> +</span><span id="Generator.wrap-333"><a href="#Generator.wrap-333"><span class="linenos">333</span></a> <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><span id="Generator.wrap-334"><a href="#Generator.wrap-334"><span class="linenos">334</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="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">Union</span><span class="p">))</span> +</span><span id="Generator.wrap-335"><a href="#Generator.wrap-335"><span class="linenos">335</span></a> <span class="k">else</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="Generator.wrap-336"><a href="#Generator.wrap-336"><span class="linenos">336</span></a> <span class="n">level</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> +</span><span id="Generator.wrap-337"><a href="#Generator.wrap-337"><span class="linenos">337</span></a> <span class="n">pad</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> +</span><span id="Generator.wrap-338"><a href="#Generator.wrap-338"><span class="linenos">338</span></a> <span class="p">)</span> +</span><span id="Generator.wrap-339"><a href="#Generator.wrap-339"><span class="linenos">339</span></a> <span class="k">return</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5000,12 +5025,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.no_identify"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.no_identify-345"><a href="#Generator.no_identify-345"><span class="linenos">345</span></a> <span class="k">def</span> <span class="nf">no_identify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.no_identify-346"><a href="#Generator.no_identify-346"><span class="linenos">346</span></a> <span class="n">original</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> -</span><span id="Generator.no_identify-347"><a href="#Generator.no_identify-347"><span class="linenos">347</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Generator.no_identify-348"><a href="#Generator.no_identify-348"><span class="linenos">348</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="Generator.no_identify-349"><a href="#Generator.no_identify-349"><span class="linenos">349</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">original</span> -</span><span id="Generator.no_identify-350"><a href="#Generator.no_identify-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="n">result</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.no_identify-341"><a href="#Generator.no_identify-341"><span class="linenos">341</span></a> <span class="k">def</span> <span class="nf">no_identify</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[</span><span class="o">...</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.no_identify-342"><a href="#Generator.no_identify-342"><span class="linenos">342</span></a> <span class="n">original</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> +</span><span id="Generator.no_identify-343"><a href="#Generator.no_identify-343"><span class="linenos">343</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Generator.no_identify-344"><a href="#Generator.no_identify-344"><span class="linenos">344</span></a> <span class="n">result</span> <span class="o">=</span> <span class="n">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="Generator.no_identify-345"><a href="#Generator.no_identify-345"><span class="linenos">345</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span> <span class="o">=</span> <span class="n">original</span> +</span><span id="Generator.no_identify-346"><a href="#Generator.no_identify-346"><span class="linenos">346</span></a> <span class="k">return</span> <span class="n">result</span> </span></pre></div> @@ -5023,12 +5048,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.normalize_func"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.normalize_func-352"><a href="#Generator.normalize_func-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.normalize_func-353"><a href="#Generator.normalize_func-353"><span class="linenos">353</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"upper"</span><span class="p">:</span> -</span><span id="Generator.normalize_func-354"><a href="#Generator.normalize_func-354"><span class="linenos">354</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Generator.normalize_func-355"><a href="#Generator.normalize_func-355"><span class="linenos">355</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"lower"</span><span class="p">:</span> -</span><span id="Generator.normalize_func-356"><a href="#Generator.normalize_func-356"><span class="linenos">356</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> -</span><span id="Generator.normalize_func-357"><a href="#Generator.normalize_func-357"><span class="linenos">357</span></a> <span class="k">return</span> <span class="n">name</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.normalize_func-348"><a href="#Generator.normalize_func-348"><span class="linenos">348</span></a> <span class="k">def</span> <span class="nf">normalize_func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.normalize_func-349"><a href="#Generator.normalize_func-349"><span class="linenos">349</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"upper"</span><span class="p">:</span> +</span><span id="Generator.normalize_func-350"><a href="#Generator.normalize_func-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Generator.normalize_func-351"><a href="#Generator.normalize_func-351"><span class="linenos">351</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize_functions</span> <span class="o">==</span> <span class="s2">"lower"</span><span class="p">:</span> +</span><span id="Generator.normalize_func-352"><a href="#Generator.normalize_func-352"><span class="linenos">352</span></a> <span class="k">return</span> <span class="n">name</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="Generator.normalize_func-353"><a href="#Generator.normalize_func-353"><span class="linenos">353</span></a> <span class="k">return</span> <span class="n">name</span> </span></pre></div> @@ -5046,26 +5071,26 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.indent"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.indent-359"><a href="#Generator.indent-359"><span class="linenos">359</span></a> <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span> -</span><span id="Generator.indent-360"><a href="#Generator.indent-360"><span class="linenos">360</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator.indent-361"><a href="#Generator.indent-361"><span class="linenos">361</span></a> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> -</span><span id="Generator.indent-362"><a href="#Generator.indent-362"><span class="linenos">362</span></a> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> -</span><span id="Generator.indent-363"><a href="#Generator.indent-363"><span class="linenos">363</span></a> <span class="n">pad</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.indent-364"><a href="#Generator.indent-364"><span class="linenos">364</span></a> <span class="n">skip_first</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="Generator.indent-365"><a href="#Generator.indent-365"><span class="linenos">365</span></a> <span class="n">skip_last</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="Generator.indent-366"><a href="#Generator.indent-366"><span class="linenos">366</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.indent-367"><a href="#Generator.indent-367"><span class="linenos">367</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator.indent-368"><a href="#Generator.indent-368"><span class="linenos">368</span></a> <span class="k">return</span> <span class="n">sql</span> -</span><span id="Generator.indent-369"><a href="#Generator.indent-369"><span class="linenos">369</span></a> -</span><span id="Generator.indent-370"><a href="#Generator.indent-370"><span class="linenos">370</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="k">if</span> <span class="n">pad</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">pad</span> -</span><span id="Generator.indent-371"><a href="#Generator.indent-371"><span class="linenos">371</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.indent-372"><a href="#Generator.indent-372"><span class="linenos">372</span></a> -</span><span id="Generator.indent-373"><a href="#Generator.indent-373"><span class="linenos">373</span></a> <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator.indent-374"><a href="#Generator.indent-374"><span class="linenos">374</span></a> <span class="n">line</span> -</span><span id="Generator.indent-375"><a href="#Generator.indent-375"><span class="linenos">375</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">skip_first</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">skip_last</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="Generator.indent-376"><a href="#Generator.indent-376"><span class="linenos">376</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' '</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">level</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pad</span><span class="p">)</span><span class="si">}{</span><span class="n">line</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.indent-377"><a href="#Generator.indent-377"><span class="linenos">377</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> -</span><span id="Generator.indent-378"><a href="#Generator.indent-378"><span class="linenos">378</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.indent-355"><a href="#Generator.indent-355"><span class="linenos">355</span></a> <span class="k">def</span> <span class="nf">indent</span><span class="p">(</span> +</span><span id="Generator.indent-356"><a href="#Generator.indent-356"><span class="linenos">356</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator.indent-357"><a href="#Generator.indent-357"><span class="linenos">357</span></a> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> +</span><span id="Generator.indent-358"><a href="#Generator.indent-358"><span class="linenos">358</span></a> <span class="n">level</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> +</span><span id="Generator.indent-359"><a href="#Generator.indent-359"><span class="linenos">359</span></a> <span class="n">pad</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.indent-360"><a href="#Generator.indent-360"><span class="linenos">360</span></a> <span class="n">skip_first</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="Generator.indent-361"><a href="#Generator.indent-361"><span class="linenos">361</span></a> <span class="n">skip_last</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="Generator.indent-362"><a href="#Generator.indent-362"><span class="linenos">362</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.indent-363"><a href="#Generator.indent-363"><span class="linenos">363</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator.indent-364"><a href="#Generator.indent-364"><span class="linenos">364</span></a> <span class="k">return</span> <span class="n">sql</span> +</span><span id="Generator.indent-365"><a href="#Generator.indent-365"><span class="linenos">365</span></a> +</span><span id="Generator.indent-366"><a href="#Generator.indent-366"><span class="linenos">366</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> <span class="k">if</span> <span class="n">pad</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">pad</span> +</span><span id="Generator.indent-367"><a href="#Generator.indent-367"><span class="linenos">367</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="n">sql</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.indent-368"><a href="#Generator.indent-368"><span class="linenos">368</span></a> +</span><span id="Generator.indent-369"><a href="#Generator.indent-369"><span class="linenos">369</span></a> <span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator.indent-370"><a href="#Generator.indent-370"><span class="linenos">370</span></a> <span class="n">line</span> +</span><span id="Generator.indent-371"><a href="#Generator.indent-371"><span class="linenos">371</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">skip_first</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">skip_last</span> <span class="ow">and</span> <span class="n">i</span> <span class="o">==</span> <span class="nb">len</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="Generator.indent-372"><a href="#Generator.indent-372"><span class="linenos">372</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' '</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">level</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="bp">self</span><span class="o">.</span><span class="n">_indent</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pad</span><span class="p">)</span><span class="si">}{</span><span class="n">line</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.indent-373"><a href="#Generator.indent-373"><span class="linenos">373</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">line</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">lines</span><span class="p">)</span> +</span><span id="Generator.indent-374"><a href="#Generator.indent-374"><span class="linenos">374</span></a> <span class="p">)</span> </span></pre></div> @@ -5083,42 +5108,42 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sql-380"><a href="#Generator.sql-380"><span class="linenos">380</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span> -</span><span id="Generator.sql-381"><a href="#Generator.sql-381"><span class="linenos">381</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator.sql-382"><a href="#Generator.sql-382"><span class="linenos">382</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> -</span><span id="Generator.sql-383"><a href="#Generator.sql-383"><span class="linenos">383</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.sql-384"><a href="#Generator.sql-384"><span class="linenos">384</span></a> <span class="n">comment</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Generator.sql-385"><a href="#Generator.sql-385"><span class="linenos">385</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.sql-386"><a href="#Generator.sql-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="Generator.sql-387"><a href="#Generator.sql-387"><span class="linenos">387</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator.sql-388"><a href="#Generator.sql-388"><span class="linenos">388</span></a> -</span><span id="Generator.sql-389"><a href="#Generator.sql-389"><span class="linenos">389</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> -</span><span id="Generator.sql-390"><a href="#Generator.sql-390"><span class="linenos">390</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="Generator.sql-391"><a href="#Generator.sql-391"><span class="linenos">391</span></a> -</span><span id="Generator.sql-392"><a href="#Generator.sql-392"><span class="linenos">392</span></a> <span class="k">if</span> <span class="n">key</span><span class="p">:</span> -</span><span id="Generator.sql-393"><a href="#Generator.sql-393"><span class="linenos">393</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="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span> -</span><span id="Generator.sql-394"><a href="#Generator.sql-394"><span class="linenos">394</span></a> -</span><span id="Generator.sql-395"><a href="#Generator.sql-395"><span class="linenos">395</span></a> <span class="n">transform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> -</span><span id="Generator.sql-396"><a href="#Generator.sql-396"><span class="linenos">396</span></a> -</span><span id="Generator.sql-397"><a href="#Generator.sql-397"><span class="linenos">397</span></a> <span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> -</span><span id="Generator.sql-398"><a href="#Generator.sql-398"><span class="linenos">398</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</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="Generator.sql-399"><a href="#Generator.sql-399"><span class="linenos">399</span></a> <span class="k">elif</span> <span class="n">transform</span><span class="p">:</span> -</span><span id="Generator.sql-400"><a href="#Generator.sql-400"><span class="linenos">400</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</span> -</span><span id="Generator.sql-401"><a href="#Generator.sql-401"><span class="linenos">401</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Expression</span><span class="p">):</span> -</span><span id="Generator.sql-402"><a href="#Generator.sql-402"><span class="linenos">402</span></a> <span class="n">exp_handler_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">_sql"</span> -</span><span id="Generator.sql-403"><a href="#Generator.sql-403"><span class="linenos">403</span></a> -</span><span id="Generator.sql-404"><a href="#Generator.sql-404"><span class="linenos">404</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">):</span> -</span><span id="Generator.sql-405"><a href="#Generator.sql-405"><span class="linenos">405</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">)(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.sql-406"><a href="#Generator.sql-406"><span class="linenos">406</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Func</span><span class="p">):</span> -</span><span id="Generator.sql-407"><a href="#Generator.sql-407"><span class="linenos">407</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.sql-408"><a href="#Generator.sql-408"><span class="linenos">408</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Property</span><span class="p">):</span> -</span><span id="Generator.sql-409"><a href="#Generator.sql-409"><span class="linenos">409</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">property_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.sql-410"><a href="#Generator.sql-410"><span class="linenos">410</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.sql-411"><a href="#Generator.sql-411"><span class="linenos">411</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported expression type </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.sql-412"><a href="#Generator.sql-412"><span class="linenos">412</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.sql-413"><a href="#Generator.sql-413"><span class="linenos">413</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected an Expression. Received </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">expression</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.sql-414"><a href="#Generator.sql-414"><span class="linenos">414</span></a> -</span><span id="Generator.sql-415"><a href="#Generator.sql-415"><span class="linenos">415</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="ow">and</span> <span class="n">comment</span> <span class="k">else</span> <span class="n">sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sql-376"><a href="#Generator.sql-376"><span class="linenos">376</span></a> <span class="k">def</span> <span class="nf">sql</span><span class="p">(</span> +</span><span id="Generator.sql-377"><a href="#Generator.sql-377"><span class="linenos">377</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator.sql-378"><a href="#Generator.sql-378"><span class="linenos">378</span></a> <span class="n">expression</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> +</span><span id="Generator.sql-379"><a href="#Generator.sql-379"><span class="linenos">379</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.sql-380"><a href="#Generator.sql-380"><span class="linenos">380</span></a> <span class="n">comment</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Generator.sql-381"><a href="#Generator.sql-381"><span class="linenos">381</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.sql-382"><a href="#Generator.sql-382"><span class="linenos">382</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="Generator.sql-383"><a href="#Generator.sql-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator.sql-384"><a href="#Generator.sql-384"><span class="linenos">384</span></a> +</span><span id="Generator.sql-385"><a href="#Generator.sql-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> +</span><span id="Generator.sql-386"><a href="#Generator.sql-386"><span class="linenos">386</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Generator.sql-387"><a href="#Generator.sql-387"><span class="linenos">387</span></a> +</span><span id="Generator.sql-388"><a href="#Generator.sql-388"><span class="linenos">388</span></a> <span class="k">if</span> <span class="n">key</span><span class="p">:</span> +</span><span id="Generator.sql-389"><a href="#Generator.sql-389"><span class="linenos">389</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="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">key</span><span class="p">))</span> +</span><span id="Generator.sql-390"><a href="#Generator.sql-390"><span class="linenos">390</span></a> +</span><span id="Generator.sql-391"><a href="#Generator.sql-391"><span class="linenos">391</span></a> <span class="n">transform</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TRANSFORMS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> +</span><span id="Generator.sql-392"><a href="#Generator.sql-392"><span class="linenos">392</span></a> +</span><span id="Generator.sql-393"><a href="#Generator.sql-393"><span class="linenos">393</span></a> <span class="k">if</span> <span class="n">callable</span><span class="p">(</span><span class="n">transform</span><span class="p">):</span> +</span><span id="Generator.sql-394"><a href="#Generator.sql-394"><span class="linenos">394</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</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="Generator.sql-395"><a href="#Generator.sql-395"><span class="linenos">395</span></a> <span class="k">elif</span> <span class="n">transform</span><span class="p">:</span> +</span><span id="Generator.sql-396"><a href="#Generator.sql-396"><span class="linenos">396</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="n">transform</span> +</span><span id="Generator.sql-397"><a href="#Generator.sql-397"><span class="linenos">397</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Expression</span><span class="p">):</span> +</span><span id="Generator.sql-398"><a href="#Generator.sql-398"><span class="linenos">398</span></a> <span class="n">exp_handler_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">_sql"</span> +</span><span id="Generator.sql-399"><a href="#Generator.sql-399"><span class="linenos">399</span></a> +</span><span id="Generator.sql-400"><a href="#Generator.sql-400"><span class="linenos">400</span></a> <span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">):</span> +</span><span id="Generator.sql-401"><a href="#Generator.sql-401"><span class="linenos">401</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_handler_name</span><span class="p">)(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.sql-402"><a href="#Generator.sql-402"><span class="linenos">402</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Func</span><span class="p">):</span> +</span><span id="Generator.sql-403"><a href="#Generator.sql-403"><span class="linenos">403</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.sql-404"><a href="#Generator.sql-404"><span class="linenos">404</span></a> <span class="k">elif</span> <span class="nb">isinstance</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">Property</span><span class="p">):</span> +</span><span id="Generator.sql-405"><a href="#Generator.sql-405"><span class="linenos">405</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">property_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.sql-406"><a href="#Generator.sql-406"><span class="linenos">406</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.sql-407"><a href="#Generator.sql-407"><span class="linenos">407</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unsupported expression type </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.sql-408"><a href="#Generator.sql-408"><span class="linenos">408</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.sql-409"><a href="#Generator.sql-409"><span class="linenos">409</span></a> <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected an Expression. Received </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">expression</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.sql-410"><a href="#Generator.sql-410"><span class="linenos">410</span></a> +</span><span id="Generator.sql-411"><a href="#Generator.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">maybe_comment</span><span class="p">(</span><span class="n">sql</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="ow">and</span> <span class="n">comment</span> <span class="k">else</span> <span class="n">sql</span> </span></pre></div> @@ -5136,10 +5161,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.uncache_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.uncache_sql-417"><a href="#Generator.uncache_sql-417"><span class="linenos">417</span></a> <span class="k">def</span> <span class="nf">uncache_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">Uncache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.uncache_sql-418"><a href="#Generator.uncache_sql-418"><span class="linenos">418</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> -</span><span id="Generator.uncache_sql-419"><a href="#Generator.uncache_sql-419"><span class="linenos">419</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.uncache_sql-420"><a href="#Generator.uncache_sql-420"><span class="linenos">420</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNCACHE TABLE</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.uncache_sql-413"><a href="#Generator.uncache_sql-413"><span class="linenos">413</span></a> <span class="k">def</span> <span class="nf">uncache_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">Uncache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.uncache_sql-414"><a href="#Generator.uncache_sql-414"><span class="linenos">414</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> +</span><span id="Generator.uncache_sql-415"><a href="#Generator.uncache_sql-415"><span class="linenos">415</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.uncache_sql-416"><a href="#Generator.uncache_sql-416"><span class="linenos">416</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNCACHE TABLE</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5157,15 +5182,15 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.cache_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cache_sql-422"><a href="#Generator.cache_sql-422"><span class="linenos">422</span></a> <span class="k">def</span> <span class="nf">cache_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">Cache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.cache_sql-423"><a href="#Generator.cache_sql-423"><span class="linenos">423</span></a> <span class="n">lazy</span> <span class="o">=</span> <span class="s2">" LAZY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"lazy"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.cache_sql-424"><a href="#Generator.cache_sql-424"><span class="linenos">424</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> -</span><span id="Generator.cache_sql-425"><a href="#Generator.cache_sql-425"><span class="linenos">425</span></a> <span class="n">options</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">"options"</span><span class="p">)</span> -</span><span id="Generator.cache_sql-426"><a href="#Generator.cache_sql-426"><span class="linenos">426</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OPTIONS(</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">options</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</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">options</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.cache_sql-427"><a href="#Generator.cache_sql-427"><span class="linenos">427</span></a> <span class="n">sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.cache_sql-428"><a href="#Generator.cache_sql-428"><span class="linenos">428</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.cache_sql-429"><a href="#Generator.cache_sql-429"><span class="linenos">429</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CACHE</span><span class="si">{</span><span class="n">lazy</span><span class="si">}</span><span class="s2"> TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">options</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.cache_sql-430"><a href="#Generator.cache_sql-430"><span class="linenos">430</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cache_sql-418"><a href="#Generator.cache_sql-418"><span class="linenos">418</span></a> <span class="k">def</span> <span class="nf">cache_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">Cache</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.cache_sql-419"><a href="#Generator.cache_sql-419"><span class="linenos">419</span></a> <span class="n">lazy</span> <span class="o">=</span> <span class="s2">" LAZY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"lazy"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.cache_sql-420"><a href="#Generator.cache_sql-420"><span class="linenos">420</span></a> <span class="n">table</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">"this"</span><span class="p">)</span> +</span><span id="Generator.cache_sql-421"><a href="#Generator.cache_sql-421"><span class="linenos">421</span></a> <span class="n">options</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">"options"</span><span class="p">)</span> +</span><span id="Generator.cache_sql-422"><a href="#Generator.cache_sql-422"><span class="linenos">422</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OPTIONS(</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">options</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span><span class="si">}</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">options</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.cache_sql-423"><a href="#Generator.cache_sql-423"><span class="linenos">423</span></a> <span class="n">sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.cache_sql-424"><a href="#Generator.cache_sql-424"><span class="linenos">424</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.cache_sql-425"><a href="#Generator.cache_sql-425"><span class="linenos">425</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CACHE</span><span class="si">{</span><span class="n">lazy</span><span class="si">}</span><span class="s2"> TABLE </span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">options</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.cache_sql-426"><a href="#Generator.cache_sql-426"><span class="linenos">426</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -5183,11 +5208,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.characterset_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.characterset_sql-432"><a href="#Generator.characterset_sql-432"><span class="linenos">432</span></a> <span class="k">def</span> <span class="nf">characterset_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">CharacterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.characterset_sql-433"><a href="#Generator.characterset_sql-433"><span class="linenos">433</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> -</span><span id="Generator.characterset_sql-434"><a href="#Generator.characterset_sql-434"><span class="linenos">434</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHAR CHARACTER SET </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">expression</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><span id="Generator.characterset_sql-435"><a href="#Generator.characterset_sql-435"><span class="linenos">435</span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"DEFAULT "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.characterset_sql-436"><a href="#Generator.characterset_sql-436"><span class="linenos">436</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">CHARACTER SET=</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.characterset_sql-428"><a href="#Generator.characterset_sql-428"><span class="linenos">428</span></a> <span class="k">def</span> <span class="nf">characterset_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">CharacterSet</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.characterset_sql-429"><a href="#Generator.characterset_sql-429"><span class="linenos">429</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">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">):</span> +</span><span id="Generator.characterset_sql-430"><a href="#Generator.characterset_sql-430"><span class="linenos">430</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHAR CHARACTER SET </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">expression</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><span id="Generator.characterset_sql-431"><a href="#Generator.characterset_sql-431"><span class="linenos">431</span></a> <span class="n">default</span> <span class="o">=</span> <span class="s2">"DEFAULT "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"default"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.characterset_sql-432"><a href="#Generator.characterset_sql-432"><span class="linenos">432</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">CHARACTER SET=</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">expression</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></pre></div> @@ -5205,17 +5230,17 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.column_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.column_sql-438"><a href="#Generator.column_sql-438"><span class="linenos">438</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.column_sql-439"><a href="#Generator.column_sql-439"><span class="linenos">439</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator.column_sql-440"><a href="#Generator.column_sql-440"><span class="linenos">440</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> -</span><span id="Generator.column_sql-441"><a href="#Generator.column_sql-441"><span class="linenos">441</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="Generator.column_sql-442"><a href="#Generator.column_sql-442"><span class="linenos">442</span></a> <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">"catalog"</span><span class="p">),</span> -</span><span id="Generator.column_sql-443"><a href="#Generator.column_sql-443"><span class="linenos">443</span></a> <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">"db"</span><span class="p">),</span> -</span><span id="Generator.column_sql-444"><a href="#Generator.column_sql-444"><span class="linenos">444</span></a> <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">"table"</span><span class="p">),</span> -</span><span id="Generator.column_sql-445"><a href="#Generator.column_sql-445"><span class="linenos">445</span></a> <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">"this"</span><span class="p">),</span> -</span><span id="Generator.column_sql-446"><a href="#Generator.column_sql-446"><span class="linenos">446</span></a> <span class="p">)</span> -</span><span id="Generator.column_sql-447"><a href="#Generator.column_sql-447"><span class="linenos">447</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="Generator.column_sql-448"><a href="#Generator.column_sql-448"><span class="linenos">448</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.column_sql-434"><a href="#Generator.column_sql-434"><span class="linenos">434</span></a> <span class="k">def</span> <span class="nf">column_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">Column</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.column_sql-435"><a href="#Generator.column_sql-435"><span class="linenos">435</span></a> <span class="k">return</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator.column_sql-436"><a href="#Generator.column_sql-436"><span class="linenos">436</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span><span class="n">part</span><span class="p">)</span> +</span><span id="Generator.column_sql-437"><a href="#Generator.column_sql-437"><span class="linenos">437</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="Generator.column_sql-438"><a href="#Generator.column_sql-438"><span class="linenos">438</span></a> <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">"catalog"</span><span class="p">),</span> +</span><span id="Generator.column_sql-439"><a href="#Generator.column_sql-439"><span class="linenos">439</span></a> <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">"db"</span><span class="p">),</span> +</span><span id="Generator.column_sql-440"><a href="#Generator.column_sql-440"><span class="linenos">440</span></a> <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">"table"</span><span class="p">),</span> +</span><span id="Generator.column_sql-441"><a href="#Generator.column_sql-441"><span class="linenos">441</span></a> <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">"this"</span><span class="p">),</span> +</span><span id="Generator.column_sql-442"><a href="#Generator.column_sql-442"><span class="linenos">442</span></a> <span class="p">)</span> +</span><span id="Generator.column_sql-443"><a href="#Generator.column_sql-443"><span class="linenos">443</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="Generator.column_sql-444"><a href="#Generator.column_sql-444"><span class="linenos">444</span></a> <span class="p">)</span> </span></pre></div> @@ -5233,15 +5258,15 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.columndef_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.columndef_sql-450"><a href="#Generator.columndef_sql-450"><span class="linenos">450</span></a> <span class="k">def</span> <span class="nf">columndef_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">ColumnDef</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.columndef_sql-451"><a href="#Generator.columndef_sql-451"><span class="linenos">451</span></a> <span class="n">column</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">"this"</span><span class="p">)</span> -</span><span id="Generator.columndef_sql-452"><a href="#Generator.columndef_sql-452"><span class="linenos">452</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator.columndef_sql-453"><a href="#Generator.columndef_sql-453"><span class="linenos">453</span></a> <span class="n">constraints</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">"constraints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.columndef_sql-454"><a href="#Generator.columndef_sql-454"><span class="linenos">454</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">"IF NOT EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.columndef_sql-455"><a href="#Generator.columndef_sql-455"><span class="linenos">455</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.columndef_sql-456"><a href="#Generator.columndef_sql-456"><span class="linenos">456</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">constraints</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.columndef_sql-457"><a href="#Generator.columndef_sql-457"><span class="linenos">457</span></a> -</span><span id="Generator.columndef_sql-458"><a href="#Generator.columndef_sql-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">column</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.columndef_sql-446"><a href="#Generator.columndef_sql-446"><span class="linenos">446</span></a> <span class="k">def</span> <span class="nf">columndef_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">ColumnDef</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.columndef_sql-447"><a href="#Generator.columndef_sql-447"><span class="linenos">447</span></a> <span class="n">column</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">"this"</span><span class="p">)</span> +</span><span id="Generator.columndef_sql-448"><a href="#Generator.columndef_sql-448"><span class="linenos">448</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator.columndef_sql-449"><a href="#Generator.columndef_sql-449"><span class="linenos">449</span></a> <span class="n">constraints</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">"constraints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.columndef_sql-450"><a href="#Generator.columndef_sql-450"><span class="linenos">450</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">"IF NOT EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.columndef_sql-451"><a href="#Generator.columndef_sql-451"><span class="linenos">451</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.columndef_sql-452"><a href="#Generator.columndef_sql-452"><span class="linenos">452</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">constraints</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.columndef_sql-453"><a href="#Generator.columndef_sql-453"><span class="linenos">453</span></a> +</span><span id="Generator.columndef_sql-454"><a href="#Generator.columndef_sql-454"><span class="linenos">454</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">column</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">constraints</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5259,10 +5284,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.columnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.columnconstraint_sql-460"><a href="#Generator.columnconstraint_sql-460"><span class="linenos">460</span></a> <span class="k">def</span> <span class="nf">columnconstraint_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">ColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.columnconstraint_sql-461"><a href="#Generator.columnconstraint_sql-461"><span class="linenos">461</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.columnconstraint_sql-462"><a href="#Generator.columnconstraint_sql-462"><span class="linenos">462</span></a> <span class="n">kind_sql</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">"kind"</span><span class="p">)</span> -</span><span id="Generator.columnconstraint_sql-463"><a href="#Generator.columnconstraint_sql-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">kind_sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.columnconstraint_sql-456"><a href="#Generator.columnconstraint_sql-456"><span class="linenos">456</span></a> <span class="k">def</span> <span class="nf">columnconstraint_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">ColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.columnconstraint_sql-457"><a href="#Generator.columnconstraint_sql-457"><span class="linenos">457</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.columnconstraint_sql-458"><a href="#Generator.columnconstraint_sql-458"><span class="linenos">458</span></a> <span class="n">kind_sql</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">"kind"</span><span class="p">)</span> +</span><span id="Generator.columnconstraint_sql-459"><a href="#Generator.columnconstraint_sql-459"><span class="linenos">459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">kind_sql</span> </span></pre></div> @@ -5280,8 +5305,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.autoincrementcolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.autoincrementcolumnconstraint_sql-465"><a href="#Generator.autoincrementcolumnconstraint_sql-465"><span class="linenos">465</span></a> <span class="k">def</span> <span class="nf">autoincrementcolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.autoincrementcolumnconstraint_sql-466"><a href="#Generator.autoincrementcolumnconstraint_sql-466"><span class="linenos">466</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token_sql</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.autoincrementcolumnconstraint_sql-461"><a href="#Generator.autoincrementcolumnconstraint_sql-461"><span class="linenos">461</span></a> <span class="k">def</span> <span class="nf">autoincrementcolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.autoincrementcolumnconstraint_sql-462"><a href="#Generator.autoincrementcolumnconstraint_sql-462"><span class="linenos">462</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">token_sql</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">)</span> </span></pre></div> @@ -5299,13 +5324,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.compresscolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.compresscolumnconstraint_sql-468"><a href="#Generator.compresscolumnconstraint_sql-468"><span class="linenos">468</span></a> <span class="k">def</span> <span class="nf">compresscolumnconstraint_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">CompressColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.compresscolumnconstraint_sql-469"><a href="#Generator.compresscolumnconstraint_sql-469"><span class="linenos">469</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">this</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="Generator.compresscolumnconstraint_sql-470"><a href="#Generator.compresscolumnconstraint_sql-470"><span class="linenos">470</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">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">"this"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="Generator.compresscolumnconstraint_sql-471"><a href="#Generator.compresscolumnconstraint_sql-471"><span class="linenos">471</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.compresscolumnconstraint_sql-472"><a href="#Generator.compresscolumnconstraint_sql-472"><span class="linenos">472</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.compresscolumnconstraint_sql-473"><a href="#Generator.compresscolumnconstraint_sql-473"><span class="linenos">473</span></a> -</span><span id="Generator.compresscolumnconstraint_sql-474"><a href="#Generator.compresscolumnconstraint_sql-474"><span class="linenos">474</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMPRESS </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.compresscolumnconstraint_sql-464"><a href="#Generator.compresscolumnconstraint_sql-464"><span class="linenos">464</span></a> <span class="k">def</span> <span class="nf">compresscolumnconstraint_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">CompressColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.compresscolumnconstraint_sql-465"><a href="#Generator.compresscolumnconstraint_sql-465"><span class="linenos">465</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">this</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="Generator.compresscolumnconstraint_sql-466"><a href="#Generator.compresscolumnconstraint_sql-466"><span class="linenos">466</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">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">"this"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Generator.compresscolumnconstraint_sql-467"><a href="#Generator.compresscolumnconstraint_sql-467"><span class="linenos">467</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.compresscolumnconstraint_sql-468"><a href="#Generator.compresscolumnconstraint_sql-468"><span class="linenos">468</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.compresscolumnconstraint_sql-469"><a href="#Generator.compresscolumnconstraint_sql-469"><span class="linenos">469</span></a> +</span><span id="Generator.compresscolumnconstraint_sql-470"><a href="#Generator.compresscolumnconstraint_sql-470"><span class="linenos">470</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMPRESS </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5323,30 +5348,30 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.generatedasidentitycolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.generatedasidentitycolumnconstraint_sql-476"><a href="#Generator.generatedasidentitycolumnconstraint_sql-476"><span class="linenos">476</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-477"><a href="#Generator.generatedasidentitycolumnconstraint_sql-477"><span class="linenos">477</span></a> <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">GeneratedAsIdentityColumnConstraint</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-478"><a href="#Generator.generatedasidentitycolumnconstraint_sql-478"><span class="linenos">478</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-479"><a href="#Generator.generatedasidentitycolumnconstraint_sql-479"><span class="linenos">479</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-480"><a href="#Generator.generatedasidentitycolumnconstraint_sql-480"><span class="linenos">480</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-481"><a href="#Generator.generatedasidentitycolumnconstraint_sql-481"><span class="linenos">481</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">" ALWAYS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">" BY DEFAULT "</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-482"><a href="#Generator.generatedasidentitycolumnconstraint_sql-482"><span class="linenos">482</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-483"><a href="#Generator.generatedasidentitycolumnconstraint_sql-483"><span class="linenos">483</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"START WITH </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-484"><a href="#Generator.generatedasidentitycolumnconstraint_sql-484"><span class="linenos">484</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-485"><a href="#Generator.generatedasidentitycolumnconstraint_sql-485"><span class="linenos">485</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT BY </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-486"><a href="#Generator.generatedasidentitycolumnconstraint_sql-486"><span class="linenos">486</span></a> <span class="n">minvalue</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">"minvalue"</span><span class="p">)</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-487"><a href="#Generator.generatedasidentitycolumnconstraint_sql-487"><span class="linenos">487</span></a> <span class="n">minvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MINVALUE </span><span class="si">{</span><span class="n">minvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">minvalue</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-488"><a href="#Generator.generatedasidentitycolumnconstraint_sql-488"><span class="linenos">488</span></a> <span class="n">maxvalue</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">"maxvalue"</span><span class="p">)</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-489"><a href="#Generator.generatedasidentitycolumnconstraint_sql-489"><span class="linenos">489</span></a> <span class="n">maxvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAXVALUE </span><span class="si">{</span><span class="n">maxvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">maxvalue</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-490"><a href="#Generator.generatedasidentitycolumnconstraint_sql-490"><span class="linenos">490</span></a> <span class="n">cycle</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">"cycle"</span><span class="p">)</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-491"><a href="#Generator.generatedasidentitycolumnconstraint_sql-491"><span class="linenos">491</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-492"><a href="#Generator.generatedasidentitycolumnconstraint_sql-492"><span class="linenos">492</span></a> <span class="k">if</span> <span class="n">cycle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-493"><a href="#Generator.generatedasidentitycolumnconstraint_sql-493"><span class="linenos">493</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' NO'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">cycle</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"> CYCLE"</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-494"><a href="#Generator.generatedasidentitycolumnconstraint_sql-494"><span class="linenos">494</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="n">cycle_sql</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">increment</span> <span class="k">else</span> <span class="n">cycle_sql</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-495"><a href="#Generator.generatedasidentitycolumnconstraint_sql-495"><span class="linenos">495</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-496"><a href="#Generator.generatedasidentitycolumnconstraint_sql-496"><span class="linenos">496</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">or</span> <span class="n">increment</span> <span class="ow">or</span> <span class="n">cycle_sql</span><span class="p">:</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-497"><a href="#Generator.generatedasidentitycolumnconstraint_sql-497"><span class="linenos">497</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}{</span><span class="n">minvalue</span><span class="si">}{</span><span class="n">maxvalue</span><span class="si">}{</span><span class="n">cycle_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-498"><a href="#Generator.generatedasidentitycolumnconstraint_sql-498"><span class="linenos">498</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">sequence_opts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.generatedasidentitycolumnconstraint_sql-499"><a href="#Generator.generatedasidentitycolumnconstraint_sql-499"><span class="linenos">499</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GENERATED</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">AS IDENTITY</span><span class="si">{</span><span class="n">sequence_opts</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.generatedasidentitycolumnconstraint_sql-472"><a href="#Generator.generatedasidentitycolumnconstraint_sql-472"><span class="linenos">472</span></a> <span class="k">def</span> <span class="nf">generatedasidentitycolumnconstraint_sql</span><span class="p">(</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-473"><a href="#Generator.generatedasidentitycolumnconstraint_sql-473"><span class="linenos">473</span></a> <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">GeneratedAsIdentityColumnConstraint</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-474"><a href="#Generator.generatedasidentitycolumnconstraint_sql-474"><span class="linenos">474</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-475"><a href="#Generator.generatedasidentitycolumnconstraint_sql-475"><span class="linenos">475</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-476"><a href="#Generator.generatedasidentitycolumnconstraint_sql-476"><span class="linenos">476</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-477"><a href="#Generator.generatedasidentitycolumnconstraint_sql-477"><span class="linenos">477</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">" ALWAYS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">" BY DEFAULT "</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-478"><a href="#Generator.generatedasidentitycolumnconstraint_sql-478"><span class="linenos">478</span></a> <span class="n">start</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">"start"</span><span class="p">)</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-479"><a href="#Generator.generatedasidentitycolumnconstraint_sql-479"><span class="linenos">479</span></a> <span class="n">start</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"START WITH </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">start</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-480"><a href="#Generator.generatedasidentitycolumnconstraint_sql-480"><span class="linenos">480</span></a> <span class="n">increment</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">"increment"</span><span class="p">)</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-481"><a href="#Generator.generatedasidentitycolumnconstraint_sql-481"><span class="linenos">481</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INCREMENT BY </span><span class="si">{</span><span class="n">increment</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">increment</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-482"><a href="#Generator.generatedasidentitycolumnconstraint_sql-482"><span class="linenos">482</span></a> <span class="n">minvalue</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">"minvalue"</span><span class="p">)</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-483"><a href="#Generator.generatedasidentitycolumnconstraint_sql-483"><span class="linenos">483</span></a> <span class="n">minvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MINVALUE </span><span class="si">{</span><span class="n">minvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">minvalue</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-484"><a href="#Generator.generatedasidentitycolumnconstraint_sql-484"><span class="linenos">484</span></a> <span class="n">maxvalue</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">"maxvalue"</span><span class="p">)</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-485"><a href="#Generator.generatedasidentitycolumnconstraint_sql-485"><span class="linenos">485</span></a> <span class="n">maxvalue</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAXVALUE </span><span class="si">{</span><span class="n">maxvalue</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">maxvalue</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-486"><a href="#Generator.generatedasidentitycolumnconstraint_sql-486"><span class="linenos">486</span></a> <span class="n">cycle</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">"cycle"</span><span class="p">)</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-487"><a href="#Generator.generatedasidentitycolumnconstraint_sql-487"><span class="linenos">487</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-488"><a href="#Generator.generatedasidentitycolumnconstraint_sql-488"><span class="linenos">488</span></a> <span class="k">if</span> <span class="n">cycle</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-489"><a href="#Generator.generatedasidentitycolumnconstraint_sql-489"><span class="linenos">489</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">' NO'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">cycle</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"> CYCLE"</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-490"><a href="#Generator.generatedasidentitycolumnconstraint_sql-490"><span class="linenos">490</span></a> <span class="n">cycle_sql</span> <span class="o">=</span> <span class="n">cycle_sql</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">increment</span> <span class="k">else</span> <span class="n">cycle_sql</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-491"><a href="#Generator.generatedasidentitycolumnconstraint_sql-491"><span class="linenos">491</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-492"><a href="#Generator.generatedasidentitycolumnconstraint_sql-492"><span class="linenos">492</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">or</span> <span class="n">increment</span> <span class="ow">or</span> <span class="n">cycle_sql</span><span class="p">:</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-493"><a href="#Generator.generatedasidentitycolumnconstraint_sql-493"><span class="linenos">493</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">start</span><span class="si">}{</span><span class="n">increment</span><span class="si">}{</span><span class="n">minvalue</span><span class="si">}{</span><span class="n">maxvalue</span><span class="si">}{</span><span class="n">cycle_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-494"><a href="#Generator.generatedasidentitycolumnconstraint_sql-494"><span class="linenos">494</span></a> <span class="n">sequence_opts</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">sequence_opts</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.generatedasidentitycolumnconstraint_sql-495"><a href="#Generator.generatedasidentitycolumnconstraint_sql-495"><span class="linenos">495</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"GENERATED</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">AS IDENTITY</span><span class="si">{</span><span class="n">sequence_opts</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5364,8 +5389,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.notnullcolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.notnullcolumnconstraint_sql-501"><a href="#Generator.notnullcolumnconstraint_sql-501"><span class="linenos">501</span></a> <span class="k">def</span> <span class="nf">notnullcolumnconstraint_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">NotNullColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.notnullcolumnconstraint_sql-502"><a href="#Generator.notnullcolumnconstraint_sql-502"><span class="linenos">502</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'allow_null'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'NOT '</span><span class="si">}</span><span class="s2">NULL"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.notnullcolumnconstraint_sql-497"><a href="#Generator.notnullcolumnconstraint_sql-497"><span class="linenos">497</span></a> <span class="k">def</span> <span class="nf">notnullcolumnconstraint_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">NotNullColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.notnullcolumnconstraint_sql-498"><a href="#Generator.notnullcolumnconstraint_sql-498"><span class="linenos">498</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'allow_null'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'NOT '</span><span class="si">}</span><span class="s2">NULL"</span> </span></pre></div> @@ -5383,11 +5408,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.primarykeycolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.primarykeycolumnconstraint_sql-504"><a href="#Generator.primarykeycolumnconstraint_sql-504"><span class="linenos">504</span></a> <span class="k">def</span> <span class="nf">primarykeycolumnconstraint_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">PrimaryKeyColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.primarykeycolumnconstraint_sql-505"><a href="#Generator.primarykeycolumnconstraint_sql-505"><span class="linenos">505</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> -</span><span id="Generator.primarykeycolumnconstraint_sql-506"><a href="#Generator.primarykeycolumnconstraint_sql-506"><span class="linenos">506</span></a> <span class="k">if</span> <span class="n">desc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.primarykeycolumnconstraint_sql-507"><a href="#Generator.primarykeycolumnconstraint_sql-507"><span class="linenos">507</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY</span><span class="si">{</span><span class="s1">' DESC'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desc</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ASC'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.primarykeycolumnconstraint_sql-508"><a href="#Generator.primarykeycolumnconstraint_sql-508"><span class="linenos">508</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.primarykeycolumnconstraint_sql-500"><a href="#Generator.primarykeycolumnconstraint_sql-500"><span class="linenos">500</span></a> <span class="k">def</span> <span class="nf">primarykeycolumnconstraint_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">PrimaryKeyColumnConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.primarykeycolumnconstraint_sql-501"><a href="#Generator.primarykeycolumnconstraint_sql-501"><span class="linenos">501</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> +</span><span id="Generator.primarykeycolumnconstraint_sql-502"><a href="#Generator.primarykeycolumnconstraint_sql-502"><span class="linenos">502</span></a> <span class="k">if</span> <span class="n">desc</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.primarykeycolumnconstraint_sql-503"><a href="#Generator.primarykeycolumnconstraint_sql-503"><span class="linenos">503</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY</span><span class="si">{</span><span class="s1">' DESC'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">desc</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ASC'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.primarykeycolumnconstraint_sql-504"><a href="#Generator.primarykeycolumnconstraint_sql-504"><span class="linenos">504</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY"</span> </span></pre></div> @@ -5405,8 +5430,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.uniquecolumnconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.uniquecolumnconstraint_sql-510"><a href="#Generator.uniquecolumnconstraint_sql-510"><span class="linenos">510</span></a> <span class="k">def</span> <span class="nf">uniquecolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.uniquecolumnconstraint_sql-511"><a href="#Generator.uniquecolumnconstraint_sql-511"><span class="linenos">511</span></a> <span class="k">return</span> <span class="s2">"UNIQUE"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.uniquecolumnconstraint_sql-506"><a href="#Generator.uniquecolumnconstraint_sql-506"><span class="linenos">506</span></a> <span class="k">def</span> <span class="nf">uniquecolumnconstraint_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.uniquecolumnconstraint_sql-507"><a href="#Generator.uniquecolumnconstraint_sql-507"><span class="linenos">507</span></a> <span class="k">return</span> <span class="s2">"UNIQUE"</span> </span></pre></div> @@ -5424,121 +5449,121 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.create_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.create_sql-513"><a href="#Generator.create_sql-513"><span class="linenos">513</span></a> <span class="k">def</span> <span class="nf">create_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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.create_sql-514"><a href="#Generator.create_sql-514"><span class="linenos">514</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Generator.create_sql-515"><a href="#Generator.create_sql-515"><span class="linenos">515</span></a> <span class="n">properties</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">"properties"</span><span class="p">)</span> -</span><span id="Generator.create_sql-516"><a href="#Generator.create_sql-516"><span class="linenos">516</span></a> <span class="n">properties_exp</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="Generator.create_sql-517"><a href="#Generator.create_sql-517"><span class="linenos">517</span></a> <span class="n">properties_locs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">locate_properties</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">{}</span> -</span><span id="Generator.create_sql-518"><a href="#Generator.create_sql-518"><span class="linenos">518</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">)</span> <span class="ow">or</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> -</span><span id="Generator.create_sql-519"><a href="#Generator.create_sql-519"><span class="linenos">519</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span> -</span><span id="Generator.create_sql-520"><a href="#Generator.create_sql-520"><span class="linenos">520</span></a> <span class="p">):</span> -</span><span id="Generator.create_sql-521"><a href="#Generator.create_sql-521"><span class="linenos">521</span></a> <span class="n">properties_exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="Generator.create_sql-522"><a href="#Generator.create_sql-522"><span class="linenos">522</span></a> <span class="s2">"properties"</span><span class="p">,</span> -</span><span id="Generator.create_sql-523"><a href="#Generator.create_sql-523"><span class="linenos">523</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-524"><a href="#Generator.create_sql-524"><span class="linenos">524</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span> -</span><span id="Generator.create_sql-525"><a href="#Generator.create_sql-525"><span class="linenos">525</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">],</span> -</span><span id="Generator.create_sql-526"><a href="#Generator.create_sql-526"><span class="linenos">526</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">],</span> -</span><span id="Generator.create_sql-527"><a href="#Generator.create_sql-527"><span class="linenos">527</span></a> <span class="p">]</span> -</span><span id="Generator.create_sql-528"><a href="#Generator.create_sql-528"><span class="linenos">528</span></a> <span class="p">),</span> -</span><span id="Generator.create_sql-529"><a href="#Generator.create_sql-529"><span class="linenos">529</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-530"><a href="#Generator.create_sql-530"><span class="linenos">530</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"TABLE"</span> <span class="ow">and</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">):</span> -</span><span id="Generator.create_sql-531"><a href="#Generator.create_sql-531"><span class="linenos">531</span></a> <span class="n">this_name</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> -</span><span id="Generator.create_sql-532"><a href="#Generator.create_sql-532"><span class="linenos">532</span></a> <span class="n">this_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-533"><a href="#Generator.create_sql-533"><span class="linenos">533</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]),</span> -</span><span id="Generator.create_sql-534"><a href="#Generator.create_sql-534"><span class="linenos">534</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.create_sql-535"><a href="#Generator.create_sql-535"><span class="linenos">535</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-536"><a href="#Generator.create_sql-536"><span class="linenos">536</span></a> <span class="n">this_schema</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.create_sql-537"><a href="#Generator.create_sql-537"><span class="linenos">537</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this_name</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">this_properties</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_schema</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-538"><a href="#Generator.create_sql-538"><span class="linenos">538</span></a> <span class="n">properties_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-539"><a href="#Generator.create_sql-539"><span class="linenos">539</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.create_sql-540"><a href="#Generator.create_sql-540"><span class="linenos">540</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.create_sql-541"><a href="#Generator.create_sql-541"><span class="linenos">541</span></a> <span class="n">properties_sql</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">properties_exp</span><span class="p">,</span> <span class="s2">"properties"</span><span class="p">)</span> -</span><span id="Generator.create_sql-542"><a href="#Generator.create_sql-542"><span class="linenos">542</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="s2">" BEGIN"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"begin"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-543"><a href="#Generator.create_sql-543"><span class="linenos">543</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.create_sql-544"><a href="#Generator.create_sql-544"><span class="linenos">544</span></a> <span class="k">if</span> <span class="n">expression_sql</span><span class="p">:</span> -</span><span id="Generator.create_sql-545"><a href="#Generator.create_sql-545"><span class="linenos">545</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">begin</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-546"><a href="#Generator.create_sql-546"><span class="linenos">546</span></a> -</span><span id="Generator.create_sql-547"><a href="#Generator.create_sql-547"><span class="linenos">547</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Return</span><span class="p">):</span> -</span><span id="Generator.create_sql-548"><a href="#Generator.create_sql-548"><span class="linenos">548</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">):</span> -</span><span id="Generator.create_sql-549"><a href="#Generator.create_sql-549"><span class="linenos">549</span></a> <span class="n">postalias_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-550"><a href="#Generator.create_sql-550"><span class="linenos">550</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-551"><a href="#Generator.create_sql-551"><span class="linenos">551</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span> -</span><span id="Generator.create_sql-552"><a href="#Generator.create_sql-552"><span class="linenos">552</span></a> <span class="p">),</span> -</span><span id="Generator.create_sql-553"><a href="#Generator.create_sql-553"><span class="linenos">553</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.create_sql-554"><a href="#Generator.create_sql-554"><span class="linenos">554</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-555"><a href="#Generator.create_sql-555"><span class="linenos">555</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">postalias_props_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-556"><a href="#Generator.create_sql-556"><span class="linenos">556</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.create_sql-557"><a href="#Generator.create_sql-557"><span class="linenos">557</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-558"><a href="#Generator.create_sql-558"><span class="linenos">558</span></a> -</span><span id="Generator.create_sql-559"><a href="#Generator.create_sql-559"><span class="linenos">559</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-560"><a href="#Generator.create_sql-560"><span class="linenos">560</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">):</span> -</span><span id="Generator.create_sql-561"><a href="#Generator.create_sql-561"><span class="linenos">561</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-562"><a href="#Generator.create_sql-562"><span class="linenos">562</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]),</span> -</span><span id="Generator.create_sql-563"><a href="#Generator.create_sql-563"><span class="linenos">563</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.create_sql-564"><a href="#Generator.create_sql-564"><span class="linenos">564</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator.create_sql-565"><a href="#Generator.create_sql-565"><span class="linenos">565</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-566"><a href="#Generator.create_sql-566"><span class="linenos">566</span></a> -</span><span id="Generator.create_sql-567"><a href="#Generator.create_sql-567"><span class="linenos">567</span></a> <span class="n">indexes</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">"indexes"</span><span class="p">)</span> -</span><span id="Generator.create_sql-568"><a href="#Generator.create_sql-568"><span class="linenos">568</span></a> <span class="k">if</span> <span class="n">indexes</span><span class="p">:</span> -</span><span id="Generator.create_sql-569"><a href="#Generator.create_sql-569"><span class="linenos">569</span></a> <span class="n">indexes_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.create_sql-570"><a href="#Generator.create_sql-570"><span class="linenos">570</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">indexes</span><span class="p">:</span> -</span><span id="Generator.create_sql-571"><a href="#Generator.create_sql-571"><span class="linenos">571</span></a> <span class="n">ind_unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">index</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">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-572"><a href="#Generator.create_sql-572"><span class="linenos">572</span></a> <span class="n">ind_primary</span> <span class="o">=</span> <span class="s2">" PRIMARY"</span> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-573"><a href="#Generator.create_sql-573"><span class="linenos">573</span></a> <span class="n">ind_amp</span> <span class="o">=</span> <span class="s2">" AMP"</span> <span class="k">if</span> <span class="n">index</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">"amp"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-574"><a href="#Generator.create_sql-574"><span class="linenos">574</span></a> <span class="n">ind_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-575"><a href="#Generator.create_sql-575"><span class="linenos">575</span></a> <span class="n">ind_columns</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.create_sql-576"><a href="#Generator.create_sql-576"><span class="linenos">576</span></a> <span class="sa">f</span><span class="s1">' (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s1">)'</span> -</span><span id="Generator.create_sql-577"><a href="#Generator.create_sql-577"><span class="linenos">577</span></a> <span class="k">if</span> <span class="n">index</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">"columns"</span><span class="p">)</span> -</span><span id="Generator.create_sql-578"><a href="#Generator.create_sql-578"><span class="linenos">578</span></a> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-579"><a href="#Generator.create_sql-579"><span class="linenos">579</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-580"><a href="#Generator.create_sql-580"><span class="linenos">580</span></a> <span class="n">ind_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_unique</span><span class="si">}{</span><span class="n">ind_primary</span><span class="si">}{</span><span class="n">ind_amp</span><span class="si">}</span><span class="s2"> INDEX</span><span class="si">{</span><span class="n">ind_name</span><span class="si">}{</span><span class="n">ind_columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-581"><a href="#Generator.create_sql-581"><span class="linenos">581</span></a> -</span><span id="Generator.create_sql-582"><a href="#Generator.create_sql-582"><span class="linenos">582</span></a> <span class="k">if</span> <span class="n">indexes_sql</span><span class="p">:</span> -</span><span id="Generator.create_sql-583"><a href="#Generator.create_sql-583"><span class="linenos">583</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ind_sql</span><span class="p">)</span> -</span><span id="Generator.create_sql-584"><a href="#Generator.create_sql-584"><span class="linenos">584</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.create_sql-585"><a href="#Generator.create_sql-585"><span class="linenos">585</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Generator.create_sql-586"><a href="#Generator.create_sql-586"><span class="linenos">586</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_sql</span><span class="si">}{</span><span class="n">postindex_props_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-587"><a href="#Generator.create_sql-587"><span class="linenos">587</span></a> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> -</span><span id="Generator.create_sql-588"><a href="#Generator.create_sql-588"><span class="linenos">588</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">postindex_props_sql</span><span class="si">}{</span><span class="n">ind_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-589"><a href="#Generator.create_sql-589"><span class="linenos">589</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.create_sql-509"><a href="#Generator.create_sql-509"><span class="linenos">509</span></a> <span class="k">def</span> <span class="nf">create_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">Create</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.create_sql-510"><a href="#Generator.create_sql-510"><span class="linenos">510</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Generator.create_sql-511"><a href="#Generator.create_sql-511"><span class="linenos">511</span></a> <span class="n">properties</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">"properties"</span><span class="p">)</span> +</span><span id="Generator.create_sql-512"><a href="#Generator.create_sql-512"><span class="linenos">512</span></a> <span class="n">properties_exp</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="Generator.create_sql-513"><a href="#Generator.create_sql-513"><span class="linenos">513</span></a> <span class="n">properties_locs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">locate_properties</span><span class="p">(</span><span class="n">properties</span><span class="p">)</span> <span class="k">if</span> <span class="n">properties</span> <span class="k">else</span> <span class="p">{}</span> +</span><span id="Generator.create_sql-514"><a href="#Generator.create_sql-514"><span class="linenos">514</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">)</span> <span class="ow">or</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> +</span><span id="Generator.create_sql-515"><a href="#Generator.create_sql-515"><span class="linenos">515</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span> +</span><span id="Generator.create_sql-516"><a href="#Generator.create_sql-516"><span class="linenos">516</span></a> <span class="p">):</span> +</span><span id="Generator.create_sql-517"><a href="#Generator.create_sql-517"><span class="linenos">517</span></a> <span class="n">properties_exp</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="Generator.create_sql-518"><a href="#Generator.create_sql-518"><span class="linenos">518</span></a> <span class="s2">"properties"</span><span class="p">,</span> +</span><span id="Generator.create_sql-519"><a href="#Generator.create_sql-519"><span class="linenos">519</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-520"><a href="#Generator.create_sql-520"><span class="linenos">520</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span> +</span><span id="Generator.create_sql-521"><a href="#Generator.create_sql-521"><span class="linenos">521</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">],</span> +</span><span id="Generator.create_sql-522"><a href="#Generator.create_sql-522"><span class="linenos">522</span></a> <span class="o">*</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">],</span> +</span><span id="Generator.create_sql-523"><a href="#Generator.create_sql-523"><span class="linenos">523</span></a> <span class="p">]</span> +</span><span id="Generator.create_sql-524"><a href="#Generator.create_sql-524"><span class="linenos">524</span></a> <span class="p">),</span> +</span><span id="Generator.create_sql-525"><a href="#Generator.create_sql-525"><span class="linenos">525</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-526"><a href="#Generator.create_sql-526"><span class="linenos">526</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="s2">"TABLE"</span> <span class="ow">and</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">):</span> +</span><span id="Generator.create_sql-527"><a href="#Generator.create_sql-527"><span class="linenos">527</span></a> <span class="n">this_name</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> +</span><span id="Generator.create_sql-528"><a href="#Generator.create_sql-528"><span class="linenos">528</span></a> <span class="n">this_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-529"><a href="#Generator.create_sql-529"><span class="linenos">529</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]),</span> +</span><span id="Generator.create_sql-530"><a href="#Generator.create_sql-530"><span class="linenos">530</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.create_sql-531"><a href="#Generator.create_sql-531"><span class="linenos">531</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-532"><a href="#Generator.create_sql-532"><span class="linenos">532</span></a> <span class="n">this_schema</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.create_sql-533"><a href="#Generator.create_sql-533"><span class="linenos">533</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this_name</span><span class="si">}</span><span class="s2">, </span><span class="si">{</span><span class="n">this_properties</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_schema</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-534"><a href="#Generator.create_sql-534"><span class="linenos">534</span></a> <span class="n">properties_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-535"><a href="#Generator.create_sql-535"><span class="linenos">535</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.create_sql-536"><a href="#Generator.create_sql-536"><span class="linenos">536</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.create_sql-537"><a href="#Generator.create_sql-537"><span class="linenos">537</span></a> <span class="n">properties_sql</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">properties_exp</span><span class="p">,</span> <span class="s2">"properties"</span><span class="p">)</span> +</span><span id="Generator.create_sql-538"><a href="#Generator.create_sql-538"><span class="linenos">538</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="s2">" BEGIN"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"begin"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-539"><a href="#Generator.create_sql-539"><span class="linenos">539</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.create_sql-540"><a href="#Generator.create_sql-540"><span class="linenos">540</span></a> <span class="k">if</span> <span class="n">expression_sql</span><span class="p">:</span> +</span><span id="Generator.create_sql-541"><a href="#Generator.create_sql-541"><span class="linenos">541</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">begin</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-542"><a href="#Generator.create_sql-542"><span class="linenos">542</span></a> +</span><span id="Generator.create_sql-543"><a href="#Generator.create_sql-543"><span class="linenos">543</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CREATE_FUNCTION_RETURN_AS</span> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</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">Return</span><span class="p">):</span> +</span><span id="Generator.create_sql-544"><a href="#Generator.create_sql-544"><span class="linenos">544</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">):</span> +</span><span id="Generator.create_sql-545"><a href="#Generator.create_sql-545"><span class="linenos">545</span></a> <span class="n">postalias_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-546"><a href="#Generator.create_sql-546"><span class="linenos">546</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-547"><a href="#Generator.create_sql-547"><span class="linenos">547</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span> +</span><span id="Generator.create_sql-548"><a href="#Generator.create_sql-548"><span class="linenos">548</span></a> <span class="p">),</span> +</span><span id="Generator.create_sql-549"><a href="#Generator.create_sql-549"><span class="linenos">549</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.create_sql-550"><a href="#Generator.create_sql-550"><span class="linenos">550</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-551"><a href="#Generator.create_sql-551"><span class="linenos">551</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">postalias_props_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-552"><a href="#Generator.create_sql-552"><span class="linenos">552</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.create_sql-553"><a href="#Generator.create_sql-553"><span class="linenos">553</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-554"><a href="#Generator.create_sql-554"><span class="linenos">554</span></a> +</span><span id="Generator.create_sql-555"><a href="#Generator.create_sql-555"><span class="linenos">555</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-556"><a href="#Generator.create_sql-556"><span class="linenos">556</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">):</span> +</span><span id="Generator.create_sql-557"><a href="#Generator.create_sql-557"><span class="linenos">557</span></a> <span class="n">postindex_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-558"><a href="#Generator.create_sql-558"><span class="linenos">558</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]),</span> +</span><span id="Generator.create_sql-559"><a href="#Generator.create_sql-559"><span class="linenos">559</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.create_sql-560"><a href="#Generator.create_sql-560"><span class="linenos">560</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator.create_sql-561"><a href="#Generator.create_sql-561"><span class="linenos">561</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-562"><a href="#Generator.create_sql-562"><span class="linenos">562</span></a> +</span><span id="Generator.create_sql-563"><a href="#Generator.create_sql-563"><span class="linenos">563</span></a> <span class="n">indexes</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">"indexes"</span><span class="p">)</span> +</span><span id="Generator.create_sql-564"><a href="#Generator.create_sql-564"><span class="linenos">564</span></a> <span class="k">if</span> <span class="n">indexes</span><span class="p">:</span> +</span><span id="Generator.create_sql-565"><a href="#Generator.create_sql-565"><span class="linenos">565</span></a> <span class="n">indexes_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.create_sql-566"><a href="#Generator.create_sql-566"><span class="linenos">566</span></a> <span class="k">for</span> <span class="n">index</span> <span class="ow">in</span> <span class="n">indexes</span><span class="p">:</span> +</span><span id="Generator.create_sql-567"><a href="#Generator.create_sql-567"><span class="linenos">567</span></a> <span class="n">ind_unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">index</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">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-568"><a href="#Generator.create_sql-568"><span class="linenos">568</span></a> <span class="n">ind_primary</span> <span class="o">=</span> <span class="s2">" PRIMARY"</span> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-569"><a href="#Generator.create_sql-569"><span class="linenos">569</span></a> <span class="n">ind_amp</span> <span class="o">=</span> <span class="s2">" AMP"</span> <span class="k">if</span> <span class="n">index</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">"amp"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-570"><a href="#Generator.create_sql-570"><span class="linenos">570</span></a> <span class="n">ind_name</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">index</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">index</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-571"><a href="#Generator.create_sql-571"><span class="linenos">571</span></a> <span class="n">ind_columns</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.create_sql-572"><a href="#Generator.create_sql-572"><span class="linenos">572</span></a> <span class="sa">f</span><span class="s1">' (</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">index</span><span class="p">,</span><span class="w"> </span><span class="n">key</span><span class="o">=</span><span class="s2">"columns"</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s1">)'</span> +</span><span id="Generator.create_sql-573"><a href="#Generator.create_sql-573"><span class="linenos">573</span></a> <span class="k">if</span> <span class="n">index</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">"columns"</span><span class="p">)</span> +</span><span id="Generator.create_sql-574"><a href="#Generator.create_sql-574"><span class="linenos">574</span></a> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-575"><a href="#Generator.create_sql-575"><span class="linenos">575</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-576"><a href="#Generator.create_sql-576"><span class="linenos">576</span></a> <span class="n">ind_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_unique</span><span class="si">}{</span><span class="n">ind_primary</span><span class="si">}{</span><span class="n">ind_amp</span><span class="si">}</span><span class="s2"> INDEX</span><span class="si">{</span><span class="n">ind_name</span><span class="si">}{</span><span class="n">ind_columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-577"><a href="#Generator.create_sql-577"><span class="linenos">577</span></a> +</span><span id="Generator.create_sql-578"><a href="#Generator.create_sql-578"><span class="linenos">578</span></a> <span class="k">if</span> <span class="n">indexes_sql</span><span class="p">:</span> +</span><span id="Generator.create_sql-579"><a href="#Generator.create_sql-579"><span class="linenos">579</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ind_sql</span><span class="p">)</span> +</span><span id="Generator.create_sql-580"><a href="#Generator.create_sql-580"><span class="linenos">580</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.create_sql-581"><a href="#Generator.create_sql-581"><span class="linenos">581</span></a> <span class="n">indexes_sql</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Generator.create_sql-582"><a href="#Generator.create_sql-582"><span class="linenos">582</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">ind_sql</span><span class="si">}{</span><span class="n">postindex_props_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-583"><a href="#Generator.create_sql-583"><span class="linenos">583</span></a> <span class="k">if</span> <span class="n">index</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">"primary"</span><span class="p">)</span> +</span><span id="Generator.create_sql-584"><a href="#Generator.create_sql-584"><span class="linenos">584</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">postindex_props_sql</span><span class="si">}{</span><span class="n">ind_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-585"><a href="#Generator.create_sql-585"><span class="linenos">585</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-586"><a href="#Generator.create_sql-586"><span class="linenos">586</span></a> +</span><span id="Generator.create_sql-587"><a href="#Generator.create_sql-587"><span class="linenos">587</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">indexes_sql</span><span class="p">)</span> +</span><span id="Generator.create_sql-588"><a href="#Generator.create_sql-588"><span class="linenos">588</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.create_sql-589"><a href="#Generator.create_sql-589"><span class="linenos">589</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="n">postindex_props_sql</span> </span><span id="Generator.create_sql-590"><a href="#Generator.create_sql-590"><span class="linenos">590</span></a> -</span><span id="Generator.create_sql-591"><a href="#Generator.create_sql-591"><span class="linenos">591</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">indexes_sql</span><span class="p">)</span> -</span><span id="Generator.create_sql-592"><a href="#Generator.create_sql-592"><span class="linenos">592</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.create_sql-593"><a href="#Generator.create_sql-593"><span class="linenos">593</span></a> <span class="n">index_sql</span> <span class="o">=</span> <span class="n">postindex_props_sql</span> +</span><span id="Generator.create_sql-591"><a href="#Generator.create_sql-591"><span class="linenos">591</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="s2">" OR REPLACE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-592"><a href="#Generator.create_sql-592"><span class="linenos">592</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-593"><a href="#Generator.create_sql-593"><span class="linenos">593</span></a> <span class="n">volatile</span> <span class="o">=</span> <span class="s2">" VOLATILE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"volatile"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> </span><span id="Generator.create_sql-594"><a href="#Generator.create_sql-594"><span class="linenos">594</span></a> -</span><span id="Generator.create_sql-595"><a href="#Generator.create_sql-595"><span class="linenos">595</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="s2">" OR REPLACE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"replace"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-596"><a href="#Generator.create_sql-596"><span class="linenos">596</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="s2">" UNIQUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unique"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-597"><a href="#Generator.create_sql-597"><span class="linenos">597</span></a> <span class="n">volatile</span> <span class="o">=</span> <span class="s2">" VOLATILE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"volatile"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-598"><a href="#Generator.create_sql-598"><span class="linenos">598</span></a> -</span><span id="Generator.create_sql-599"><a href="#Generator.create_sql-599"><span class="linenos">599</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-600"><a href="#Generator.create_sql-600"><span class="linenos">600</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">):</span> -</span><span id="Generator.create_sql-601"><a href="#Generator.create_sql-601"><span class="linenos">601</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-602"><a href="#Generator.create_sql-602"><span class="linenos">602</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]),</span> -</span><span id="Generator.create_sql-603"><a href="#Generator.create_sql-603"><span class="linenos">603</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator.create_sql-604"><a href="#Generator.create_sql-604"><span class="linenos">604</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator.create_sql-605"><a href="#Generator.create_sql-605"><span class="linenos">605</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.create_sql-606"><a href="#Generator.create_sql-606"><span class="linenos">606</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-607"><a href="#Generator.create_sql-607"><span class="linenos">607</span></a> -</span><span id="Generator.create_sql-608"><a href="#Generator.create_sql-608"><span class="linenos">608</span></a> <span class="n">modifiers</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">replace</span><span class="p">,</span> <span class="n">unique</span><span class="p">,</span> <span class="n">volatile</span><span class="p">,</span> <span class="n">postcreate_props_sql</span><span class="p">))</span> -</span><span id="Generator.create_sql-609"><a href="#Generator.create_sql-609"><span class="linenos">609</span></a> -</span><span id="Generator.create_sql-610"><a href="#Generator.create_sql-610"><span class="linenos">610</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-611"><a href="#Generator.create_sql-611"><span class="linenos">611</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">):</span> -</span><span id="Generator.create_sql-612"><a href="#Generator.create_sql-612"><span class="linenos">612</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-613"><a href="#Generator.create_sql-613"><span class="linenos">613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> -</span><span id="Generator.create_sql-614"><a href="#Generator.create_sql-614"><span class="linenos">614</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span> -</span><span id="Generator.create_sql-615"><a href="#Generator.create_sql-615"><span class="linenos">615</span></a> <span class="p">),</span> -</span><span id="Generator.create_sql-616"><a href="#Generator.create_sql-616"><span class="linenos">616</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator.create_sql-617"><a href="#Generator.create_sql-617"><span class="linenos">617</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> -</span><span id="Generator.create_sql-618"><a href="#Generator.create_sql-618"><span class="linenos">618</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> -</span><span id="Generator.create_sql-619"><a href="#Generator.create_sql-619"><span class="linenos">619</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-620"><a href="#Generator.create_sql-620"><span class="linenos">620</span></a> -</span><span id="Generator.create_sql-621"><a href="#Generator.create_sql-621"><span class="linenos">621</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF NOT EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-622"><a href="#Generator.create_sql-622"><span class="linenos">622</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.create_sql-623"><a href="#Generator.create_sql-623"><span class="linenos">623</span></a> <span class="s2">" WITH NO SCHEMA BINDING"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_schema_binding"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.create_sql-624"><a href="#Generator.create_sql-624"><span class="linenos">624</span></a> <span class="p">)</span> -</span><span id="Generator.create_sql-625"><a href="#Generator.create_sql-625"><span class="linenos">625</span></a> -</span><span id="Generator.create_sql-626"><a href="#Generator.create_sql-626"><span class="linenos">626</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CREATE</span><span class="si">{</span><span class="n">modifiers</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">properties_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">postexpression_props_sql</span><span class="si">}{</span><span class="n">index_sql</span><span class="si">}{</span><span class="n">no_schema_binding</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.create_sql-627"><a href="#Generator.create_sql-627"><span class="linenos">627</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_sql</span><span class="p">)</span> +</span><span id="Generator.create_sql-595"><a href="#Generator.create_sql-595"><span class="linenos">595</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-596"><a href="#Generator.create_sql-596"><span class="linenos">596</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">):</span> +</span><span id="Generator.create_sql-597"><a href="#Generator.create_sql-597"><span class="linenos">597</span></a> <span class="n">postcreate_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-598"><a href="#Generator.create_sql-598"><span class="linenos">598</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]),</span> +</span><span id="Generator.create_sql-599"><a href="#Generator.create_sql-599"><span class="linenos">599</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator.create_sql-600"><a href="#Generator.create_sql-600"><span class="linenos">600</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator.create_sql-601"><a href="#Generator.create_sql-601"><span class="linenos">601</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.create_sql-602"><a href="#Generator.create_sql-602"><span class="linenos">602</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-603"><a href="#Generator.create_sql-603"><span class="linenos">603</span></a> +</span><span id="Generator.create_sql-604"><a href="#Generator.create_sql-604"><span class="linenos">604</span></a> <span class="n">modifiers</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">((</span><span class="n">replace</span><span class="p">,</span> <span class="n">unique</span><span class="p">,</span> <span class="n">volatile</span><span class="p">,</span> <span class="n">postcreate_props_sql</span><span class="p">))</span> +</span><span id="Generator.create_sql-605"><a href="#Generator.create_sql-605"><span class="linenos">605</span></a> +</span><span id="Generator.create_sql-606"><a href="#Generator.create_sql-606"><span class="linenos">606</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-607"><a href="#Generator.create_sql-607"><span class="linenos">607</span></a> <span class="k">if</span> <span class="n">properties_locs</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">):</span> +</span><span id="Generator.create_sql-608"><a href="#Generator.create_sql-608"><span class="linenos">608</span></a> <span class="n">postexpression_props_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-609"><a href="#Generator.create_sql-609"><span class="linenos">609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span> +</span><span id="Generator.create_sql-610"><a href="#Generator.create_sql-610"><span class="linenos">610</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span> +</span><span id="Generator.create_sql-611"><a href="#Generator.create_sql-611"><span class="linenos">611</span></a> <span class="p">),</span> +</span><span id="Generator.create_sql-612"><a href="#Generator.create_sql-612"><span class="linenos">612</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator.create_sql-613"><a href="#Generator.create_sql-613"><span class="linenos">613</span></a> <span class="n">prefix</span><span class="o">=</span><span class="s2">" "</span><span class="p">,</span> +</span><span id="Generator.create_sql-614"><a href="#Generator.create_sql-614"><span class="linenos">614</span></a> <span class="n">wrapped</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> +</span><span id="Generator.create_sql-615"><a href="#Generator.create_sql-615"><span class="linenos">615</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-616"><a href="#Generator.create_sql-616"><span class="linenos">616</span></a> +</span><span id="Generator.create_sql-617"><a href="#Generator.create_sql-617"><span class="linenos">617</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF NOT EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-618"><a href="#Generator.create_sql-618"><span class="linenos">618</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.create_sql-619"><a href="#Generator.create_sql-619"><span class="linenos">619</span></a> <span class="s2">" WITH NO SCHEMA BINDING"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no_schema_binding"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.create_sql-620"><a href="#Generator.create_sql-620"><span class="linenos">620</span></a> <span class="p">)</span> +</span><span id="Generator.create_sql-621"><a href="#Generator.create_sql-621"><span class="linenos">621</span></a> +</span><span id="Generator.create_sql-622"><a href="#Generator.create_sql-622"><span class="linenos">622</span></a> <span class="n">expression_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"CREATE</span><span class="si">{</span><span class="n">modifiers</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">properties_sql</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">postexpression_props_sql</span><span class="si">}{</span><span class="n">index_sql</span><span class="si">}{</span><span class="n">no_schema_binding</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.create_sql-623"><a href="#Generator.create_sql-623"><span class="linenos">623</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_sql</span><span class="p">)</span> </span></pre></div> @@ -5556,8 +5581,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.describe_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.describe_sql-629"><a href="#Generator.describe_sql-629"><span class="linenos">629</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.describe_sql-630"><a href="#Generator.describe_sql-630"><span class="linenos">630</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE </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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.describe_sql-625"><a href="#Generator.describe_sql-625"><span class="linenos">625</span></a> <span class="k">def</span> <span class="nf">describe_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">Describe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.describe_sql-626"><a href="#Generator.describe_sql-626"><span class="linenos">626</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DESCRIBE </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">expression</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></pre></div> @@ -5575,11 +5600,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.prepend_ctes"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.prepend_ctes-632"><a href="#Generator.prepend_ctes-632"><span class="linenos">632</span></a> <span class="k">def</span> <span class="nf">prepend_ctes</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">Expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.prepend_ctes-633"><a href="#Generator.prepend_ctes-633"><span class="linenos">633</span></a> <span class="n">with_</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">"with"</span><span class="p">)</span> -</span><span id="Generator.prepend_ctes-634"><a href="#Generator.prepend_ctes-634"><span class="linenos">634</span></a> <span class="k">if</span> <span class="n">with_</span><span class="p">:</span> -</span><span id="Generator.prepend_ctes-635"><a href="#Generator.prepend_ctes-635"><span class="linenos">635</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">with_</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.prepend_ctes-636"><a href="#Generator.prepend_ctes-636"><span class="linenos">636</span></a> <span class="k">return</span> <span class="n">sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.prepend_ctes-628"><a href="#Generator.prepend_ctes-628"><span class="linenos">628</span></a> <span class="k">def</span> <span class="nf">prepend_ctes</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">Expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.prepend_ctes-629"><a href="#Generator.prepend_ctes-629"><span class="linenos">629</span></a> <span class="n">with_</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">"with"</span><span class="p">)</span> +</span><span id="Generator.prepend_ctes-630"><a href="#Generator.prepend_ctes-630"><span class="linenos">630</span></a> <span class="k">if</span> <span class="n">with_</span><span class="p">:</span> +</span><span id="Generator.prepend_ctes-631"><a href="#Generator.prepend_ctes-631"><span class="linenos">631</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">with_</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.prepend_ctes-632"><a href="#Generator.prepend_ctes-632"><span class="linenos">632</span></a> <span class="k">return</span> <span class="n">sql</span> </span></pre></div> @@ -5597,11 +5622,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.with_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.with_sql-638"><a href="#Generator.with_sql-638"><span class="linenos">638</span></a> <span class="k">def</span> <span class="nf">with_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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.with_sql-639"><a href="#Generator.with_sql-639"><span class="linenos">639</span></a> <span class="n">sql</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="Generator.with_sql-640"><a href="#Generator.with_sql-640"><span class="linenos">640</span></a> <span class="n">recursive</span> <span class="o">=</span> <span class="s2">"RECURSIVE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.with_sql-641"><a href="#Generator.with_sql-641"><span class="linenos">641</span></a> -</span><span id="Generator.with_sql-642"><a href="#Generator.with_sql-642"><span class="linenos">642</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="n">recursive</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.with_sql-634"><a href="#Generator.with_sql-634"><span class="linenos">634</span></a> <span class="k">def</span> <span class="nf">with_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">With</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.with_sql-635"><a href="#Generator.with_sql-635"><span class="linenos">635</span></a> <span class="n">sql</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="Generator.with_sql-636"><a href="#Generator.with_sql-636"><span class="linenos">636</span></a> <span class="n">recursive</span> <span class="o">=</span> <span class="s2">"RECURSIVE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"recursive"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.with_sql-637"><a href="#Generator.with_sql-637"><span class="linenos">637</span></a> +</span><span id="Generator.with_sql-638"><a href="#Generator.with_sql-638"><span class="linenos">638</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="n">recursive</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5619,9 +5644,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.cte_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cte_sql-644"><a href="#Generator.cte_sql-644"><span class="linenos">644</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.cte_sql-645"><a href="#Generator.cte_sql-645"><span class="linenos">645</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.cte_sql-646"><a href="#Generator.cte_sql-646"><span class="linenos">646</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cte_sql-640"><a href="#Generator.cte_sql-640"><span class="linenos">640</span></a> <span class="k">def</span> <span class="nf">cte_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">CTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.cte_sql-641"><a href="#Generator.cte_sql-641"><span class="linenos">641</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.cte_sql-642"><a href="#Generator.cte_sql-642"><span class="linenos">642</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2"> AS </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5639,11 +5664,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.tablealias_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tablealias_sql-648"><a href="#Generator.tablealias_sql-648"><span class="linenos">648</span></a> <span class="k">def</span> <span class="nf">tablealias_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">TableAlias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.tablealias_sql-649"><a href="#Generator.tablealias_sql-649"><span class="linenos">649</span></a> <span class="n">alias</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">"this"</span><span class="p">)</span> -</span><span id="Generator.tablealias_sql-650"><a href="#Generator.tablealias_sql-650"><span class="linenos">650</span></a> <span class="n">columns</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">"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="Generator.tablealias_sql-651"><a href="#Generator.tablealias_sql-651"><span class="linenos">651</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablealias_sql-652"><a href="#Generator.tablealias_sql-652"><span class="linenos">652</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tablealias_sql-644"><a href="#Generator.tablealias_sql-644"><span class="linenos">644</span></a> <span class="k">def</span> <span class="nf">tablealias_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">TableAlias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.tablealias_sql-645"><a href="#Generator.tablealias_sql-645"><span class="linenos">645</span></a> <span class="n">alias</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">"this"</span><span class="p">)</span> +</span><span id="Generator.tablealias_sql-646"><a href="#Generator.tablealias_sql-646"><span class="linenos">646</span></a> <span class="n">columns</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">"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="Generator.tablealias_sql-647"><a href="#Generator.tablealias_sql-647"><span class="linenos">647</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablealias_sql-648"><a href="#Generator.tablealias_sql-648"><span class="linenos">648</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">alias</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5661,8 +5686,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitstring_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitstring_sql-654"><a href="#Generator.bitstring_sql-654"><span class="linenos">654</span></a> <span class="k">def</span> <span class="nf">bitstring_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">BitString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitstring_sql-655"><a href="#Generator.bitstring_sql-655"><span class="linenos">655</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitstring_sql-650"><a href="#Generator.bitstring_sql-650"><span class="linenos">650</span></a> <span class="k">def</span> <span class="nf">bitstring_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">BitString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitstring_sql-651"><a href="#Generator.bitstring_sql-651"><span class="linenos">651</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></pre></div> @@ -5680,8 +5705,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.hexstring_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.hexstring_sql-657"><a href="#Generator.hexstring_sql-657"><span class="linenos">657</span></a> <span class="k">def</span> <span class="nf">hexstring_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">HexString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.hexstring_sql-658"><a href="#Generator.hexstring_sql-658"><span class="linenos">658</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.hexstring_sql-653"><a href="#Generator.hexstring_sql-653"><span class="linenos">653</span></a> <span class="k">def</span> <span class="nf">hexstring_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">HexString</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.hexstring_sql-654"><a href="#Generator.hexstring_sql-654"><span class="linenos">654</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></pre></div> @@ -5699,24 +5724,24 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.datatype_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.datatype_sql-660"><a href="#Generator.datatype_sql-660"><span class="linenos">660</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="Generator.datatype_sql-661"><a href="#Generator.datatype_sql-661"><span class="linenos">661</span></a> <span class="n">type_value</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="Generator.datatype_sql-662"><a href="#Generator.datatype_sql-662"><span class="linenos">662</span></a> <span class="n">type_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">type_value</span><span class="p">,</span> <span class="n">type_value</span><span class="o">.</span><span class="n">value</span><span class="p">)</span> -</span><span id="Generator.datatype_sql-663"><a href="#Generator.datatype_sql-663"><span class="linenos">663</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.datatype_sql-664"><a href="#Generator.datatype_sql-664"><span class="linenos">664</span></a> <span class="n">interior</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="Generator.datatype_sql-665"><a href="#Generator.datatype_sql-665"><span class="linenos">665</span></a> <span class="n">values</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.datatype_sql-666"><a href="#Generator.datatype_sql-666"><span class="linenos">666</span></a> <span class="k">if</span> <span class="n">interior</span><span class="p">:</span> -</span><span id="Generator.datatype_sql-667"><a href="#Generator.datatype_sql-667"><span class="linenos">667</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">"nested"</span><span class="p">):</span> -</span><span id="Generator.datatype_sql-668"><a href="#Generator.datatype_sql-668"><span class="linenos">668</span></a> <span class="n">nested</span> <span class="o">=</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">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</span><span class="n">interior</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.datatype_sql-669"><a href="#Generator.datatype_sql-669"><span class="linenos">669</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">"values"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.datatype_sql-670"><a href="#Generator.datatype_sql-670"><span class="linenos">670</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)</span> <span class="k">if</span> <span class="n">type_value</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">Type</span><span class="o">.</span><span class="n">ARRAY</span> <span class="k">else</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> -</span><span id="Generator.datatype_sql-671"><a href="#Generator.datatype_sql-671"><span class="linenos">671</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.datatype_sql-672"><a href="#Generator.datatype_sql-672"><span class="linenos">672</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</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="w"> </span><span class="s1">'values'</span><span class="p">)</span><span class="si">}{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.datatype_sql-673"><a href="#Generator.datatype_sql-673"><span class="linenos">673</span></a> <span class="p">)</span> -</span><span id="Generator.datatype_sql-674"><a href="#Generator.datatype_sql-674"><span class="linenos">674</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.datatype_sql-675"><a href="#Generator.datatype_sql-675"><span class="linenos">675</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">interior</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.datatype_sql-676"><a href="#Generator.datatype_sql-676"><span class="linenos">676</span></a> -</span><span id="Generator.datatype_sql-677"><a href="#Generator.datatype_sql-677"><span class="linenos">677</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}{</span><span class="n">nested</span><span class="si">}{</span><span class="n">values</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.datatype_sql-656"><a href="#Generator.datatype_sql-656"><span class="linenos">656</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="Generator.datatype_sql-657"><a href="#Generator.datatype_sql-657"><span class="linenos">657</span></a> <span class="n">type_value</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="Generator.datatype_sql-658"><a href="#Generator.datatype_sql-658"><span class="linenos">658</span></a> <span class="n">type_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">type_value</span><span class="p">,</span> <span class="n">type_value</span><span class="o">.</span><span class="n">value</span><span class="p">)</span> +</span><span id="Generator.datatype_sql-659"><a href="#Generator.datatype_sql-659"><span class="linenos">659</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.datatype_sql-660"><a href="#Generator.datatype_sql-660"><span class="linenos">660</span></a> <span class="n">interior</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="Generator.datatype_sql-661"><a href="#Generator.datatype_sql-661"><span class="linenos">661</span></a> <span class="n">values</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.datatype_sql-662"><a href="#Generator.datatype_sql-662"><span class="linenos">662</span></a> <span class="k">if</span> <span class="n">interior</span><span class="p">:</span> +</span><span id="Generator.datatype_sql-663"><a href="#Generator.datatype_sql-663"><span class="linenos">663</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">"nested"</span><span class="p">):</span> +</span><span id="Generator.datatype_sql-664"><a href="#Generator.datatype_sql-664"><span class="linenos">664</span></a> <span class="n">nested</span> <span class="o">=</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">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</span><span class="n">interior</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">STRUCT_DELIMITER</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.datatype_sql-665"><a href="#Generator.datatype_sql-665"><span class="linenos">665</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">"values"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.datatype_sql-666"><a href="#Generator.datatype_sql-666"><span class="linenos">666</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="p">(</span><span class="s2">"["</span><span class="p">,</span> <span class="s2">"]"</span><span class="p">)</span> <span class="k">if</span> <span class="n">type_value</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">Type</span><span class="o">.</span><span class="n">ARRAY</span> <span class="k">else</span> <span class="p">(</span><span class="s2">"("</span><span class="p">,</span> <span class="s2">")"</span><span class="p">)</span> +</span><span id="Generator.datatype_sql-667"><a href="#Generator.datatype_sql-667"><span class="linenos">667</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.datatype_sql-668"><a href="#Generator.datatype_sql-668"><span class="linenos">668</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">}{</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="w"> </span><span class="s1">'values'</span><span class="p">)</span><span class="si">}{</span><span class="n">delimiters</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.datatype_sql-669"><a href="#Generator.datatype_sql-669"><span class="linenos">669</span></a> <span class="p">)</span> +</span><span id="Generator.datatype_sql-670"><a href="#Generator.datatype_sql-670"><span class="linenos">670</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.datatype_sql-671"><a href="#Generator.datatype_sql-671"><span class="linenos">671</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">interior</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.datatype_sql-672"><a href="#Generator.datatype_sql-672"><span class="linenos">672</span></a> +</span><span id="Generator.datatype_sql-673"><a href="#Generator.datatype_sql-673"><span class="linenos">673</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">type_sql</span><span class="si">}{</span><span class="n">nested</span><span class="si">}{</span><span class="n">values</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5734,11 +5759,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.directory_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.directory_sql-679"><a href="#Generator.directory_sql-679"><span class="linenos">679</span></a> <span class="k">def</span> <span class="nf">directory_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">Directory</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.directory_sql-680"><a href="#Generator.directory_sql-680"><span class="linenos">680</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.directory_sql-681"><a href="#Generator.directory_sql-681"><span class="linenos">681</span></a> <span class="n">row_format</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">"row_format"</span><span class="p">)</span> -</span><span id="Generator.directory_sql-682"><a href="#Generator.directory_sql-682"><span class="linenos">682</span></a> <span class="n">row_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">row_format</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.directory_sql-683"><a href="#Generator.directory_sql-683"><span class="linenos">683</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">local</span><span class="si">}</span><span class="s2">DIRECTORY </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.directory_sql-675"><a href="#Generator.directory_sql-675"><span class="linenos">675</span></a> <span class="k">def</span> <span class="nf">directory_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">Directory</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.directory_sql-676"><a href="#Generator.directory_sql-676"><span class="linenos">676</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.directory_sql-677"><a href="#Generator.directory_sql-677"><span class="linenos">677</span></a> <span class="n">row_format</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">"row_format"</span><span class="p">)</span> +</span><span id="Generator.directory_sql-678"><a href="#Generator.directory_sql-678"><span class="linenos">678</span></a> <span class="n">row_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">row_format</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.directory_sql-679"><a href="#Generator.directory_sql-679"><span class="linenos">679</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">local</span><span class="si">}</span><span class="s2">DIRECTORY </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">row_format</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5756,18 +5781,18 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.delete_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.delete_sql-685"><a href="#Generator.delete_sql-685"><span class="linenos">685</span></a> <span class="k">def</span> <span class="nf">delete_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">Delete</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.delete_sql-686"><a href="#Generator.delete_sql-686"><span class="linenos">686</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.delete_sql-687"><a href="#Generator.delete_sql-687"><span class="linenos">687</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.delete_sql-688"><a href="#Generator.delete_sql-688"><span class="linenos">688</span></a> <span class="n">using_sql</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.delete_sql-689"><a href="#Generator.delete_sql-689"><span class="linenos">689</span></a> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</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="w"> </span><span class="s1">'using'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">', USING '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.delete_sql-690"><a href="#Generator.delete_sql-690"><span class="linenos">690</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">"using"</span><span class="p">)</span> -</span><span id="Generator.delete_sql-691"><a href="#Generator.delete_sql-691"><span class="linenos">691</span></a> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.delete_sql-692"><a href="#Generator.delete_sql-692"><span class="linenos">692</span></a> <span class="p">)</span> -</span><span id="Generator.delete_sql-693"><a href="#Generator.delete_sql-693"><span class="linenos">693</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Generator.delete_sql-694"><a href="#Generator.delete_sql-694"><span class="linenos">694</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="Generator.delete_sql-695"><a href="#Generator.delete_sql-695"><span class="linenos">695</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"DELETE</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">using_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.delete_sql-696"><a href="#Generator.delete_sql-696"><span class="linenos">696</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.delete_sql-681"><a href="#Generator.delete_sql-681"><span class="linenos">681</span></a> <span class="k">def</span> <span class="nf">delete_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">Delete</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.delete_sql-682"><a href="#Generator.delete_sql-682"><span class="linenos">682</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.delete_sql-683"><a href="#Generator.delete_sql-683"><span class="linenos">683</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FROM </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.delete_sql-684"><a href="#Generator.delete_sql-684"><span class="linenos">684</span></a> <span class="n">using_sql</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.delete_sql-685"><a href="#Generator.delete_sql-685"><span class="linenos">685</span></a> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</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="w"> </span><span class="s1">'using'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">', USING '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.delete_sql-686"><a href="#Generator.delete_sql-686"><span class="linenos">686</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">"using"</span><span class="p">)</span> +</span><span id="Generator.delete_sql-687"><a href="#Generator.delete_sql-687"><span class="linenos">687</span></a> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.delete_sql-688"><a href="#Generator.delete_sql-688"><span class="linenos">688</span></a> <span class="p">)</span> +</span><span id="Generator.delete_sql-689"><a href="#Generator.delete_sql-689"><span class="linenos">689</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Generator.delete_sql-690"><a href="#Generator.delete_sql-690"><span class="linenos">690</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="Generator.delete_sql-691"><a href="#Generator.delete_sql-691"><span class="linenos">691</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"DELETE</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">using_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.delete_sql-692"><a href="#Generator.delete_sql-692"><span class="linenos">692</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -5785,14 +5810,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.drop_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.drop_sql-698"><a href="#Generator.drop_sql-698"><span class="linenos">698</span></a> <span class="k">def</span> <span class="nf">drop_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">Drop</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.drop_sql-699"><a href="#Generator.drop_sql-699"><span class="linenos">699</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.drop_sql-700"><a href="#Generator.drop_sql-700"><span class="linenos">700</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="Generator.drop_sql-701"><a href="#Generator.drop_sql-701"><span class="linenos">701</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.drop_sql-702"><a href="#Generator.drop_sql-702"><span class="linenos">702</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.drop_sql-703"><a href="#Generator.drop_sql-703"><span class="linenos">703</span></a> <span class="n">materialized</span> <span class="o">=</span> <span class="s2">" MATERIALIZED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"materialized"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.drop_sql-704"><a href="#Generator.drop_sql-704"><span class="linenos">704</span></a> <span class="n">cascade</span> <span class="o">=</span> <span class="s2">" CASCADE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cascade"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.drop_sql-705"><a href="#Generator.drop_sql-705"><span class="linenos">705</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">temporary</span><span class="si">}{</span><span class="n">materialized</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">cascade</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.drop_sql-694"><a href="#Generator.drop_sql-694"><span class="linenos">694</span></a> <span class="k">def</span> <span class="nf">drop_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">Drop</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.drop_sql-695"><a href="#Generator.drop_sql-695"><span class="linenos">695</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.drop_sql-696"><a href="#Generator.drop_sql-696"><span class="linenos">696</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="Generator.drop_sql-697"><a href="#Generator.drop_sql-697"><span class="linenos">697</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.drop_sql-698"><a href="#Generator.drop_sql-698"><span class="linenos">698</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.drop_sql-699"><a href="#Generator.drop_sql-699"><span class="linenos">699</span></a> <span class="n">materialized</span> <span class="o">=</span> <span class="s2">" MATERIALIZED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"materialized"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.drop_sql-700"><a href="#Generator.drop_sql-700"><span class="linenos">700</span></a> <span class="n">cascade</span> <span class="o">=</span> <span class="s2">" CASCADE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"cascade"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.drop_sql-701"><a href="#Generator.drop_sql-701"><span class="linenos">701</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">temporary</span><span class="si">}{</span><span class="n">materialized</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">exists_sql</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">cascade</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5810,11 +5835,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.except_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.except_sql-707"><a href="#Generator.except_sql-707"><span class="linenos">707</span></a> <span class="k">def</span> <span class="nf">except_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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.except_sql-708"><a href="#Generator.except_sql-708"><span class="linenos">708</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="Generator.except_sql-709"><a href="#Generator.except_sql-709"><span class="linenos">709</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator.except_sql-710"><a href="#Generator.except_sql-710"><span class="linenos">710</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="Generator.except_sql-711"><a href="#Generator.except_sql-711"><span class="linenos">711</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.except_sql-703"><a href="#Generator.except_sql-703"><span class="linenos">703</span></a> <span class="k">def</span> <span class="nf">except_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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.except_sql-704"><a href="#Generator.except_sql-704"><span class="linenos">704</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="Generator.except_sql-705"><a href="#Generator.except_sql-705"><span class="linenos">705</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator.except_sql-706"><a href="#Generator.except_sql-706"><span class="linenos">706</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">except_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator.except_sql-707"><a href="#Generator.except_sql-707"><span class="linenos">707</span></a> <span class="p">)</span> </span></pre></div> @@ -5832,8 +5857,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.except_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.except_op-713"><a href="#Generator.except_op-713"><span class="linenos">713</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.except_op-714"><a href="#Generator.except_op-714"><span class="linenos">714</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.except_op-709"><a href="#Generator.except_op-709"><span class="linenos">709</span></a> <span class="k">def</span> <span class="nf">except_op</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">Except</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.except_op-710"><a href="#Generator.except_op-710"><span class="linenos">710</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXCEPT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5851,12 +5876,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.fetch_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.fetch_sql-716"><a href="#Generator.fetch_sql-716"><span class="linenos">716</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.fetch_sql-717"><a href="#Generator.fetch_sql-717"><span class="linenos">717</span></a> <span class="n">direction</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">"direction"</span><span class="p">)</span> -</span><span id="Generator.fetch_sql-718"><a href="#Generator.fetch_sql-718"><span class="linenos">718</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">direction</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.fetch_sql-719"><a href="#Generator.fetch_sql-719"><span class="linenos">719</span></a> <span class="n">count</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">"count"</span><span class="p">)</span> -</span><span id="Generator.fetch_sql-720"><a href="#Generator.fetch_sql-720"><span class="linenos">720</span></a> <span class="n">count</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">count</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">count</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.fetch_sql-721"><a href="#Generator.fetch_sql-721"><span class="linenos">721</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FETCH'</span><span class="p">)</span><span class="si">}{</span><span class="n">direction</span><span class="si">}{</span><span class="n">count</span><span class="si">}</span><span class="s2"> ROWS ONLY"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.fetch_sql-712"><a href="#Generator.fetch_sql-712"><span class="linenos">712</span></a> <span class="k">def</span> <span class="nf">fetch_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">Fetch</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.fetch_sql-713"><a href="#Generator.fetch_sql-713"><span class="linenos">713</span></a> <span class="n">direction</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">"direction"</span><span class="p">)</span> +</span><span id="Generator.fetch_sql-714"><a href="#Generator.fetch_sql-714"><span class="linenos">714</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">direction</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.fetch_sql-715"><a href="#Generator.fetch_sql-715"><span class="linenos">715</span></a> <span class="n">count</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">"count"</span><span class="p">)</span> +</span><span id="Generator.fetch_sql-716"><a href="#Generator.fetch_sql-716"><span class="linenos">716</span></a> <span class="n">count</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">count</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">count</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.fetch_sql-717"><a href="#Generator.fetch_sql-717"><span class="linenos">717</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FETCH'</span><span class="p">)</span><span class="si">}{</span><span class="n">direction</span><span class="si">}{</span><span class="n">count</span><span class="si">}</span><span class="s2"> ROWS ONLY"</span> </span></pre></div> @@ -5874,10 +5899,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.filter_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.filter_sql-723"><a href="#Generator.filter_sql-723"><span class="linenos">723</span></a> <span class="k">def</span> <span class="nf">filter_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">Filter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.filter_sql-724"><a href="#Generator.filter_sql-724"><span class="linenos">724</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.filter_sql-725"><a href="#Generator.filter_sql-725"><span class="linenos">725</span></a> <span class="n">where</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># where has a leading space</span> -</span><span id="Generator.filter_sql-726"><a href="#Generator.filter_sql-726"><span class="linenos">726</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FILTER(</span><span class="si">{</span><span class="n">where</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.filter_sql-719"><a href="#Generator.filter_sql-719"><span class="linenos">719</span></a> <span class="k">def</span> <span class="nf">filter_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">Filter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.filter_sql-720"><a href="#Generator.filter_sql-720"><span class="linenos">720</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.filter_sql-721"><a href="#Generator.filter_sql-721"><span class="linenos">721</span></a> <span class="n">where</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># where has a leading space</span> +</span><span id="Generator.filter_sql-722"><a href="#Generator.filter_sql-722"><span class="linenos">722</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FILTER(</span><span class="si">{</span><span class="n">where</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -5895,10 +5920,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.hint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.hint_sql-728"><a href="#Generator.hint_sql-728"><span class="linenos">728</span></a> <span class="k">def</span> <span class="nf">hint_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">Hint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.hint_sql-729"><a href="#Generator.hint_sql-729"><span class="linenos">729</span></a> <span class="k">if</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="Generator.hint_sql-730"><a href="#Generator.hint_sql-730"><span class="linenos">730</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hints are not supported"</span><span class="p">)</span> -</span><span id="Generator.hint_sql-731"><a href="#Generator.hint_sql-731"><span class="linenos">731</span></a> <span class="k">return</span> <span class="s2">""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.hint_sql-724"><a href="#Generator.hint_sql-724"><span class="linenos">724</span></a> <span class="k">def</span> <span class="nf">hint_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">Hint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.hint_sql-725"><a href="#Generator.hint_sql-725"><span class="linenos">725</span></a> <span class="k">if</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="Generator.hint_sql-726"><a href="#Generator.hint_sql-726"><span class="linenos">726</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Hints are not supported"</span><span class="p">)</span> +</span><span id="Generator.hint_sql-727"><a href="#Generator.hint_sql-727"><span class="linenos">727</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -5916,11 +5941,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.index_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.index_sql-733"><a href="#Generator.index_sql-733"><span class="linenos">733</span></a> <span class="k">def</span> <span class="nf">index_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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.index_sql-734"><a href="#Generator.index_sql-734"><span class="linenos">734</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.index_sql-735"><a href="#Generator.index_sql-735"><span class="linenos">735</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> -</span><span id="Generator.index_sql-736"><a href="#Generator.index_sql-736"><span class="linenos">736</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> -</span><span id="Generator.index_sql-737"><a href="#Generator.index_sql-737"><span class="linenos">737</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.index_sql-729"><a href="#Generator.index_sql-729"><span class="linenos">729</span></a> <span class="k">def</span> <span class="nf">index_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">Index</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.index_sql-730"><a href="#Generator.index_sql-730"><span class="linenos">730</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.index_sql-731"><a href="#Generator.index_sql-731"><span class="linenos">731</span></a> <span class="n">table</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">"table"</span><span class="p">)</span> +</span><span id="Generator.index_sql-732"><a href="#Generator.index_sql-732"><span class="linenos">732</span></a> <span class="n">columns</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">"columns"</span><span class="p">)</span> +</span><span id="Generator.index_sql-733"><a href="#Generator.index_sql-733"><span class="linenos">733</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> ON </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -5938,13 +5963,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.identifier_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.identifier_sql-739"><a href="#Generator.identifier_sql-739"><span class="linenos">739</span></a> <span class="k">def</span> <span class="nf">identifier_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">Identifier</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.identifier_sql-740"><a href="#Generator.identifier_sql-740"><span class="linenos">740</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> -</span><span id="Generator.identifier_sql-741"><a href="#Generator.identifier_sql-741"><span class="linenos">741</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="k">else</span> <span class="n">text</span> -</span><span id="Generator.identifier_sql-742"><a href="#Generator.identifier_sql-742"><span class="linenos">742</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span><span class="p">)</span> -</span><span id="Generator.identifier_sql-743"><a href="#Generator.identifier_sql-743"><span class="linenos">743</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">"quoted"</span><span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span><span class="p">:</span> -</span><span id="Generator.identifier_sql-744"><a href="#Generator.identifier_sql-744"><span class="linenos">744</span></a> <span class="n">text</span> <span class="o">=</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">identifier_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.identifier_sql-745"><a href="#Generator.identifier_sql-745"><span class="linenos">745</span></a> <span class="k">return</span> <span class="n">text</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.identifier_sql-735"><a href="#Generator.identifier_sql-735"><span class="linenos">735</span></a> <span class="k">def</span> <span class="nf">identifier_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">Identifier</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.identifier_sql-736"><a href="#Generator.identifier_sql-736"><span class="linenos">736</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> +</span><span id="Generator.identifier_sql-737"><a href="#Generator.identifier_sql-737"><span class="linenos">737</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">normalize</span> <span class="k">else</span> <span class="n">text</span> +</span><span id="Generator.identifier_sql-738"><a href="#Generator.identifier_sql-738"><span class="linenos">738</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_identifier_end</span><span class="p">)</span> +</span><span id="Generator.identifier_sql-739"><a href="#Generator.identifier_sql-739"><span class="linenos">739</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">"quoted"</span><span class="p">)</span> <span class="ow">or</span> <span class="n">should_identify</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">identify</span><span class="p">):</span> +</span><span id="Generator.identifier_sql-740"><a href="#Generator.identifier_sql-740"><span class="linenos">740</span></a> <span class="n">text</span> <span class="o">=</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">identifier_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.identifier_sql-741"><a href="#Generator.identifier_sql-741"><span class="linenos">741</span></a> <span class="k">return</span> <span class="n">text</span> </span></pre></div> @@ -5962,8 +5987,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.national_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.national_sql-747"><a href="#Generator.national_sql-747"><span class="linenos">747</span></a> <span class="k">def</span> <span class="nf">national_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">National</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.national_sql-748"><a href="#Generator.national_sql-748"><span class="linenos">748</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"N</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.national_sql-743"><a href="#Generator.national_sql-743"><span class="linenos">743</span></a> <span class="k">def</span> <span class="nf">national_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">National</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.national_sql-744"><a href="#Generator.national_sql-744"><span class="linenos">744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"N</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">expression</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></pre></div> @@ -5981,8 +6006,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.partition_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.partition_sql-750"><a href="#Generator.partition_sql-750"><span class="linenos">750</span></a> <span class="k">def</span> <span class="nf">partition_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">Partition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.partition_sql-751"><a href="#Generator.partition_sql-751"><span class="linenos">751</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION(</span><span class="si">{</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="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.partition_sql-746"><a href="#Generator.partition_sql-746"><span class="linenos">746</span></a> <span class="k">def</span> <span class="nf">partition_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">Partition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.partition_sql-747"><a href="#Generator.partition_sql-747"><span class="linenos">747</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION(</span><span class="si">{</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="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -6000,20 +6025,20 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.properties_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.properties_sql-753"><a href="#Generator.properties_sql-753"><span class="linenos">753</span></a> <span class="k">def</span> <span class="nf">properties_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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.properties_sql-754"><a href="#Generator.properties_sql-754"><span class="linenos">754</span></a> <span class="n">root_properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.properties_sql-755"><a href="#Generator.properties_sql-755"><span class="linenos">755</span></a> <span class="n">with_properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.properties_sql-756"><a href="#Generator.properties_sql-756"><span class="linenos">756</span></a> -</span><span id="Generator.properties_sql-757"><a href="#Generator.properties_sql-757"><span class="linenos">757</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator.properties_sql-758"><a href="#Generator.properties_sql-758"><span class="linenos">758</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> -</span><span id="Generator.properties_sql-759"><a href="#Generator.properties_sql-759"><span class="linenos">759</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> -</span><span id="Generator.properties_sql-760"><a href="#Generator.properties_sql-760"><span class="linenos">760</span></a> <span class="n">with_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.properties_sql-761"><a href="#Generator.properties_sql-761"><span class="linenos">761</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> -</span><span id="Generator.properties_sql-762"><a href="#Generator.properties_sql-762"><span class="linenos">762</span></a> <span class="n">root_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.properties_sql-763"><a href="#Generator.properties_sql-763"><span class="linenos">763</span></a> -</span><span id="Generator.properties_sql-764"><a href="#Generator.properties_sql-764"><span class="linenos">764</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">root_properties</span><span class="p">(</span> -</span><span id="Generator.properties_sql-765"><a href="#Generator.properties_sql-765"><span class="linenos">765</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">root_properties</span><span class="p">)</span> -</span><span id="Generator.properties_sql-766"><a href="#Generator.properties_sql-766"><span class="linenos">766</span></a> <span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_properties</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">with_properties</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.properties_sql-749"><a href="#Generator.properties_sql-749"><span class="linenos">749</span></a> <span class="k">def</span> <span class="nf">properties_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">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.properties_sql-750"><a href="#Generator.properties_sql-750"><span class="linenos">750</span></a> <span class="n">root_properties</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.properties_sql-751"><a href="#Generator.properties_sql-751"><span class="linenos">751</span></a> <span class="n">with_properties</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.properties_sql-752"><a href="#Generator.properties_sql-752"><span class="linenos">752</span></a> +</span><span id="Generator.properties_sql-753"><a href="#Generator.properties_sql-753"><span class="linenos">753</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator.properties_sql-754"><a href="#Generator.properties_sql-754"><span class="linenos">754</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> +</span><span id="Generator.properties_sql-755"><a href="#Generator.properties_sql-755"><span class="linenos">755</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> +</span><span id="Generator.properties_sql-756"><a href="#Generator.properties_sql-756"><span class="linenos">756</span></a> <span class="n">with_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.properties_sql-757"><a href="#Generator.properties_sql-757"><span class="linenos">757</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> +</span><span id="Generator.properties_sql-758"><a href="#Generator.properties_sql-758"><span class="linenos">758</span></a> <span class="n">root_properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.properties_sql-759"><a href="#Generator.properties_sql-759"><span class="linenos">759</span></a> +</span><span id="Generator.properties_sql-760"><a href="#Generator.properties_sql-760"><span class="linenos">760</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">root_properties</span><span class="p">(</span> +</span><span id="Generator.properties_sql-761"><a href="#Generator.properties_sql-761"><span class="linenos">761</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">root_properties</span><span class="p">)</span> +</span><span id="Generator.properties_sql-762"><a href="#Generator.properties_sql-762"><span class="linenos">762</span></a> <span class="p">)</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">with_properties</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">(</span><span class="n">expressions</span><span class="o">=</span><span class="n">with_properties</span><span class="p">))</span> </span></pre></div> @@ -6031,10 +6056,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.root_properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.root_properties-768"><a href="#Generator.root_properties-768"><span class="linenos">768</span></a> <span class="k">def</span> <span class="nf">root_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.root_properties-769"><a href="#Generator.root_properties-769"><span class="linenos">769</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator.root_properties-770"><a href="#Generator.root_properties-770"><span class="linenos">770</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">properties</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</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="Generator.root_properties-771"><a href="#Generator.root_properties-771"><span class="linenos">771</span></a> <span class="k">return</span> <span class="s2">""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.root_properties-764"><a href="#Generator.root_properties-764"><span class="linenos">764</span></a> <span class="k">def</span> <span class="nf">root_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.root_properties-765"><a href="#Generator.root_properties-765"><span class="linenos">765</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator.root_properties-766"><a href="#Generator.root_properties-766"><span class="linenos">766</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">properties</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</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="Generator.root_properties-767"><a href="#Generator.root_properties-767"><span class="linenos">767</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -6052,19 +6077,19 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.properties-773"><a href="#Generator.properties-773"><span class="linenos">773</span></a> <span class="k">def</span> <span class="nf">properties</span><span class="p">(</span> -</span><span id="Generator.properties-774"><a href="#Generator.properties-774"><span class="linenos">774</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator.properties-775"><a href="#Generator.properties-775"><span class="linenos">775</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">,</span> -</span><span id="Generator.properties-776"><a href="#Generator.properties-776"><span class="linenos">776</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator.properties-777"><a href="#Generator.properties-777"><span class="linenos">777</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> -</span><span id="Generator.properties-778"><a href="#Generator.properties-778"><span class="linenos">778</span></a> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator.properties-779"><a href="#Generator.properties-779"><span class="linenos">779</span></a> <span class="n">wrapped</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Generator.properties-780"><a href="#Generator.properties-780"><span class="linenos">780</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.properties-781"><a href="#Generator.properties-781"><span class="linenos">781</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator.properties-782"><a href="#Generator.properties-782"><span class="linenos">782</span></a> <span class="n">expressions</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">properties</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator.properties-783"><a href="#Generator.properties-783"><span class="linenos">783</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">wrapped</span> <span class="k">else</span> <span class="n">expressions</span> -</span><span id="Generator.properties-784"><a href="#Generator.properties-784"><span class="linenos">784</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="s1">' '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.properties-785"><a href="#Generator.properties-785"><span class="linenos">785</span></a> <span class="k">return</span> <span class="s2">""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.properties-769"><a href="#Generator.properties-769"><span class="linenos">769</span></a> <span class="k">def</span> <span class="nf">properties</span><span class="p">(</span> +</span><span id="Generator.properties-770"><a href="#Generator.properties-770"><span class="linenos">770</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator.properties-771"><a href="#Generator.properties-771"><span class="linenos">771</span></a> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">,</span> +</span><span id="Generator.properties-772"><a href="#Generator.properties-772"><span class="linenos">772</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator.properties-773"><a href="#Generator.properties-773"><span class="linenos">773</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> +</span><span id="Generator.properties-774"><a href="#Generator.properties-774"><span class="linenos">774</span></a> <span class="n">suffix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator.properties-775"><a href="#Generator.properties-775"><span class="linenos">775</span></a> <span class="n">wrapped</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Generator.properties-776"><a href="#Generator.properties-776"><span class="linenos">776</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.properties-777"><a href="#Generator.properties-777"><span class="linenos">777</span></a> <span class="k">if</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator.properties-778"><a href="#Generator.properties-778"><span class="linenos">778</span></a> <span class="n">expressions</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">properties</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator.properties-779"><a href="#Generator.properties-779"><span class="linenos">779</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">wrapped</span> <span class="k">else</span> <span class="n">expressions</span> +</span><span id="Generator.properties-780"><a href="#Generator.properties-780"><span class="linenos">780</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="s1">' '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="ow">and</span><span class="w"> </span><span class="n">prefix</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="s1">' '</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">suffix</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.properties-781"><a href="#Generator.properties-781"><span class="linenos">781</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -6082,8 +6107,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.with_properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.with_properties-787"><a href="#Generator.with_properties-787"><span class="linenos">787</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.with_properties-788"><a href="#Generator.with_properties-788"><span class="linenos">788</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.with_properties-783"><a href="#Generator.with_properties-783"><span class="linenos">783</span></a> <span class="k">def</span> <span class="nf">with_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.with_properties-784"><a href="#Generator.with_properties-784"><span class="linenos">784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">properties</span><span class="p">(</span><span class="n">properties</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">))</span> </span></pre></div> @@ -6101,33 +6126,33 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.locate_properties"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.locate_properties-790"><a href="#Generator.locate_properties-790"><span class="linenos">790</span></a> <span class="k">def</span> <span class="nf">locate_properties</span><span class="p">(</span> -</span><span id="Generator.locate_properties-791"><a href="#Generator.locate_properties-791"><span class="linenos">791</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span> -</span><span id="Generator.locate_properties-792"><a href="#Generator.locate_properties-792"><span class="linenos">792</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]:</span> -</span><span id="Generator.locate_properties-793"><a href="#Generator.locate_properties-793"><span class="linenos">793</span></a> <span class="n">properties_locs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Generator.locate_properties-794"><a href="#Generator.locate_properties-794"><span class="linenos">794</span></a> <span class="n">key</span><span class="p">:</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span> -</span><span id="Generator.locate_properties-795"><a href="#Generator.locate_properties-795"><span class="linenos">795</span></a> <span class="p">}</span> -</span><span id="Generator.locate_properties-796"><a href="#Generator.locate_properties-796"><span class="linenos">796</span></a> -</span><span id="Generator.locate_properties-797"><a href="#Generator.locate_properties-797"><span class="linenos">797</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator.locate_properties-798"><a href="#Generator.locate_properties-798"><span class="linenos">798</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> -</span><span id="Generator.locate_properties-799"><a href="#Generator.locate_properties-799"><span class="linenos">799</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">:</span> -</span><span id="Generator.locate_properties-800"><a href="#Generator.locate_properties-800"><span class="linenos">800</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-801"><a href="#Generator.locate_properties-801"><span class="linenos">801</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">:</span> -</span><span id="Generator.locate_properties-802"><a href="#Generator.locate_properties-802"><span class="linenos">802</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-803"><a href="#Generator.locate_properties-803"><span class="linenos">803</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> -</span><span id="Generator.locate_properties-804"><a href="#Generator.locate_properties-804"><span class="linenos">804</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-805"><a href="#Generator.locate_properties-805"><span class="linenos">805</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> -</span><span id="Generator.locate_properties-806"><a href="#Generator.locate_properties-806"><span class="linenos">806</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-807"><a href="#Generator.locate_properties-807"><span class="linenos">807</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">:</span> -</span><span id="Generator.locate_properties-808"><a href="#Generator.locate_properties-808"><span class="linenos">808</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-809"><a href="#Generator.locate_properties-809"><span class="linenos">809</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">:</span> -</span><span id="Generator.locate_properties-810"><a href="#Generator.locate_properties-810"><span class="linenos">810</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-811"><a href="#Generator.locate_properties-811"><span class="linenos">811</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">:</span> -</span><span id="Generator.locate_properties-812"><a href="#Generator.locate_properties-812"><span class="linenos">812</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Generator.locate_properties-813"><a href="#Generator.locate_properties-813"><span class="linenos">813</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">:</span> -</span><span id="Generator.locate_properties-814"><a href="#Generator.locate_properties-814"><span class="linenos">814</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 property </span><span class="si">{</span><span class="n">p</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.locate_properties-815"><a href="#Generator.locate_properties-815"><span class="linenos">815</span></a> -</span><span id="Generator.locate_properties-816"><a href="#Generator.locate_properties-816"><span class="linenos">816</span></a> <span class="k">return</span> <span class="n">properties_locs</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.locate_properties-786"><a href="#Generator.locate_properties-786"><span class="linenos">786</span></a> <span class="k">def</span> <span class="nf">locate_properties</span><span class="p">(</span> +</span><span id="Generator.locate_properties-787"><a href="#Generator.locate_properties-787"><span class="linenos">787</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">properties</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span> +</span><span id="Generator.locate_properties-788"><a href="#Generator.locate_properties-788"><span class="linenos">788</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]:</span> +</span><span id="Generator.locate_properties-789"><a href="#Generator.locate_properties-789"><span class="linenos">789</span></a> <span class="n">properties_locs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="p">,</span> <span class="nb">list</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Generator.locate_properties-790"><a href="#Generator.locate_properties-790"><span class="linenos">790</span></a> <span class="n">key</span><span class="p">:</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span> +</span><span id="Generator.locate_properties-791"><a href="#Generator.locate_properties-791"><span class="linenos">791</span></a> <span class="p">}</span> +</span><span id="Generator.locate_properties-792"><a href="#Generator.locate_properties-792"><span class="linenos">792</span></a> +</span><span id="Generator.locate_properties-793"><a href="#Generator.locate_properties-793"><span class="linenos">793</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator.locate_properties-794"><a href="#Generator.locate_properties-794"><span class="linenos">794</span></a> <span class="n">p_loc</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTIES_LOCATION</span><span class="p">[</span><span class="n">p</span><span class="o">.</span><span class="vm">__class__</span><span class="p">]</span> +</span><span id="Generator.locate_properties-795"><a href="#Generator.locate_properties-795"><span class="linenos">795</span></a> <span class="k">if</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">:</span> +</span><span id="Generator.locate_properties-796"><a href="#Generator.locate_properties-796"><span class="linenos">796</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_NAME</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-797"><a href="#Generator.locate_properties-797"><span class="linenos">797</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">:</span> +</span><span id="Generator.locate_properties-798"><a href="#Generator.locate_properties-798"><span class="linenos">798</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_INDEX</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-799"><a href="#Generator.locate_properties-799"><span class="linenos">799</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">:</span> +</span><span id="Generator.locate_properties-800"><a href="#Generator.locate_properties-800"><span class="linenos">800</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_SCHEMA</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-801"><a href="#Generator.locate_properties-801"><span class="linenos">801</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">:</span> +</span><span id="Generator.locate_properties-802"><a href="#Generator.locate_properties-802"><span class="linenos">802</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_WITH</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-803"><a href="#Generator.locate_properties-803"><span class="linenos">803</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">:</span> +</span><span id="Generator.locate_properties-804"><a href="#Generator.locate_properties-804"><span class="linenos">804</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_CREATE</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-805"><a href="#Generator.locate_properties-805"><span class="linenos">805</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">:</span> +</span><span id="Generator.locate_properties-806"><a href="#Generator.locate_properties-806"><span class="linenos">806</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_ALIAS</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-807"><a href="#Generator.locate_properties-807"><span class="linenos">807</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">:</span> +</span><span id="Generator.locate_properties-808"><a href="#Generator.locate_properties-808"><span class="linenos">808</span></a> <span class="n">properties_locs</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">POST_EXPRESSION</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Generator.locate_properties-809"><a href="#Generator.locate_properties-809"><span class="linenos">809</span></a> <span class="k">elif</span> <span class="n">p_loc</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">Location</span><span class="o">.</span><span class="n">UNSUPPORTED</span><span class="p">:</span> +</span><span id="Generator.locate_properties-810"><a href="#Generator.locate_properties-810"><span class="linenos">810</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 property </span><span class="si">{</span><span class="n">p</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.locate_properties-811"><a href="#Generator.locate_properties-811"><span class="linenos">811</span></a> +</span><span id="Generator.locate_properties-812"><a href="#Generator.locate_properties-812"><span class="linenos">812</span></a> <span class="k">return</span> <span class="n">properties_locs</span> </span></pre></div> @@ -6145,16 +6170,16 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.property_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.property_sql-818"><a href="#Generator.property_sql-818"><span class="linenos">818</span></a> <span class="k">def</span> <span class="nf">property_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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.property_sql-819"><a href="#Generator.property_sql-819"><span class="linenos">819</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span> -</span><span id="Generator.property_sql-820"><a href="#Generator.property_sql-820"><span class="linenos">820</span></a> <span class="k">if</span> <span class="n">property_cls</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> -</span><span id="Generator.property_sql-821"><a href="#Generator.property_sql-821"><span class="linenos">821</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.property_sql-814"><a href="#Generator.property_sql-814"><span class="linenos">814</span></a> <span class="k">def</span> <span class="nf">property_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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.property_sql-815"><a href="#Generator.property_sql-815"><span class="linenos">815</span></a> <span class="n">property_cls</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span> +</span><span id="Generator.property_sql-816"><a href="#Generator.property_sql-816"><span class="linenos">816</span></a> <span class="k">if</span> <span class="n">property_cls</span> <span class="o">==</span> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">:</span> +</span><span id="Generator.property_sql-817"><a href="#Generator.property_sql-817"><span class="linenos">817</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.property_sql-818"><a href="#Generator.property_sql-818"><span class="linenos">818</span></a> +</span><span id="Generator.property_sql-819"><a href="#Generator.property_sql-819"><span class="linenos">819</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">property_cls</span><span class="p">)</span> +</span><span id="Generator.property_sql-820"><a href="#Generator.property_sql-820"><span class="linenos">820</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> +</span><span id="Generator.property_sql-821"><a href="#Generator.property_sql-821"><span class="linenos">821</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> </span><span id="Generator.property_sql-822"><a href="#Generator.property_sql-822"><span class="linenos">822</span></a> -</span><span id="Generator.property_sql-823"><a href="#Generator.property_sql-823"><span class="linenos">823</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">property_cls</span><span class="p">)</span> -</span><span id="Generator.property_sql-824"><a href="#Generator.property_sql-824"><span class="linenos">824</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> -</span><span id="Generator.property_sql-825"><a href="#Generator.property_sql-825"><span class="linenos">825</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.property_sql-826"><a href="#Generator.property_sql-826"><span class="linenos">826</span></a> -</span><span id="Generator.property_sql-827"><a href="#Generator.property_sql-827"><span class="linenos">827</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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><span id="Generator.property_sql-823"><a href="#Generator.property_sql-823"><span class="linenos">823</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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></pre></div> @@ -6172,10 +6197,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.likeproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.likeproperty_sql-829"><a href="#Generator.likeproperty_sql-829"><span class="linenos">829</span></a> <span class="k">def</span> <span class="nf">likeproperty_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">LikeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.likeproperty_sql-830"><a href="#Generator.likeproperty_sql-830"><span class="linenos">830</span></a> <span class="n">options</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator.likeproperty_sql-831"><a href="#Generator.likeproperty_sql-831"><span class="linenos">831</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.likeproperty_sql-832"><a href="#Generator.likeproperty_sql-832"><span class="linenos">832</span></a> <span class="k">return</span> <span class="sa">f</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.likeproperty_sql-825"><a href="#Generator.likeproperty_sql-825"><span class="linenos">825</span></a> <span class="k">def</span> <span class="nf">likeproperty_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">LikeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.likeproperty_sql-826"><a href="#Generator.likeproperty_sql-826"><span class="linenos">826</span></a> <span class="n">options</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span><span class="si">}</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="p">,</span><span class="w"> </span><span class="s1">'value'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator.likeproperty_sql-827"><a href="#Generator.likeproperty_sql-827"><span class="linenos">827</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.likeproperty_sql-828"><a href="#Generator.likeproperty_sql-828"><span class="linenos">828</span></a> <span class="k">return</span> <span class="sa">f</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6193,10 +6218,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.fallbackproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.fallbackproperty_sql-834"><a href="#Generator.fallbackproperty_sql-834"><span class="linenos">834</span></a> <span class="k">def</span> <span class="nf">fallbackproperty_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">FallbackProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.fallbackproperty_sql-835"><a href="#Generator.fallbackproperty_sql-835"><span class="linenos">835</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.fallbackproperty_sql-836"><a href="#Generator.fallbackproperty_sql-836"><span class="linenos">836</span></a> <span class="n">protection</span> <span class="o">=</span> <span class="s2">" PROTECTION"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"protection"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.fallbackproperty_sql-837"><a href="#Generator.fallbackproperty_sql-837"><span class="linenos">837</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}</span><span class="s2">FALLBACK</span><span class="si">{</span><span class="n">protection</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.fallbackproperty_sql-830"><a href="#Generator.fallbackproperty_sql-830"><span class="linenos">830</span></a> <span class="k">def</span> <span class="nf">fallbackproperty_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">FallbackProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.fallbackproperty_sql-831"><a href="#Generator.fallbackproperty_sql-831"><span class="linenos">831</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.fallbackproperty_sql-832"><a href="#Generator.fallbackproperty_sql-832"><span class="linenos">832</span></a> <span class="n">protection</span> <span class="o">=</span> <span class="s2">" PROTECTION"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"protection"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.fallbackproperty_sql-833"><a href="#Generator.fallbackproperty_sql-833"><span class="linenos">833</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}</span><span class="s2">FALLBACK</span><span class="si">{</span><span class="n">protection</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6214,11 +6239,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.journalproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.journalproperty_sql-839"><a href="#Generator.journalproperty_sql-839"><span class="linenos">839</span></a> <span class="k">def</span> <span class="nf">journalproperty_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">JournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.journalproperty_sql-840"><a href="#Generator.journalproperty_sql-840"><span class="linenos">840</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.journalproperty_sql-841"><a href="#Generator.journalproperty_sql-841"><span class="linenos">841</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.journalproperty_sql-842"><a href="#Generator.journalproperty_sql-842"><span class="linenos">842</span></a> <span class="n">before</span> <span class="o">=</span> <span class="s2">"BEFORE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"before"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.journalproperty_sql-843"><a href="#Generator.journalproperty_sql-843"><span class="linenos">843</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">before</span><span class="si">}</span><span class="s2">JOURNAL"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.journalproperty_sql-835"><a href="#Generator.journalproperty_sql-835"><span class="linenos">835</span></a> <span class="k">def</span> <span class="nf">journalproperty_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">JournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.journalproperty_sql-836"><a href="#Generator.journalproperty_sql-836"><span class="linenos">836</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.journalproperty_sql-837"><a href="#Generator.journalproperty_sql-837"><span class="linenos">837</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.journalproperty_sql-838"><a href="#Generator.journalproperty_sql-838"><span class="linenos">838</span></a> <span class="n">before</span> <span class="o">=</span> <span class="s2">"BEFORE "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"before"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.journalproperty_sql-839"><a href="#Generator.journalproperty_sql-839"><span class="linenos">839</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">before</span><span class="si">}</span><span class="s2">JOURNAL"</span> </span></pre></div> @@ -6236,10 +6261,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.freespaceproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.freespaceproperty_sql-845"><a href="#Generator.freespaceproperty_sql-845"><span class="linenos">845</span></a> <span class="k">def</span> <span class="nf">freespaceproperty_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">FreespaceProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.freespaceproperty_sql-846"><a href="#Generator.freespaceproperty_sql-846"><span class="linenos">846</span></a> <span class="n">freespace</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">"this"</span><span class="p">)</span> -</span><span id="Generator.freespaceproperty_sql-847"><a href="#Generator.freespaceproperty_sql-847"><span class="linenos">847</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.freespaceproperty_sql-848"><a href="#Generator.freespaceproperty_sql-848"><span class="linenos">848</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FREESPACE=</span><span class="si">{</span><span class="n">freespace</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.freespaceproperty_sql-841"><a href="#Generator.freespaceproperty_sql-841"><span class="linenos">841</span></a> <span class="k">def</span> <span class="nf">freespaceproperty_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">FreespaceProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.freespaceproperty_sql-842"><a href="#Generator.freespaceproperty_sql-842"><span class="linenos">842</span></a> <span class="n">freespace</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">"this"</span><span class="p">)</span> +</span><span id="Generator.freespaceproperty_sql-843"><a href="#Generator.freespaceproperty_sql-843"><span class="linenos">843</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.freespaceproperty_sql-844"><a href="#Generator.freespaceproperty_sql-844"><span class="linenos">844</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FREESPACE=</span><span class="si">{</span><span class="n">freespace</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6257,13 +6282,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.afterjournalproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.afterjournalproperty_sql-850"><a href="#Generator.afterjournalproperty_sql-850"><span class="linenos">850</span></a> <span class="k">def</span> <span class="nf">afterjournalproperty_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">AfterJournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.afterjournalproperty_sql-851"><a href="#Generator.afterjournalproperty_sql-851"><span class="linenos">851</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.afterjournalproperty_sql-852"><a href="#Generator.afterjournalproperty_sql-852"><span class="linenos">852</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.afterjournalproperty_sql-853"><a href="#Generator.afterjournalproperty_sql-853"><span class="linenos">853</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.afterjournalproperty_sql-854"><a href="#Generator.afterjournalproperty_sql-854"><span class="linenos">854</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">"local"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.afterjournalproperty_sql-855"><a href="#Generator.afterjournalproperty_sql-855"><span class="linenos">855</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"NOT LOCAL "</span> -</span><span id="Generator.afterjournalproperty_sql-856"><a href="#Generator.afterjournalproperty_sql-856"><span class="linenos">856</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">local</span><span class="si">}</span><span class="s2">AFTER JOURNAL"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.afterjournalproperty_sql-846"><a href="#Generator.afterjournalproperty_sql-846"><span class="linenos">846</span></a> <span class="k">def</span> <span class="nf">afterjournalproperty_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">AfterJournalProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.afterjournalproperty_sql-847"><a href="#Generator.afterjournalproperty_sql-847"><span class="linenos">847</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">"NO "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"no"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.afterjournalproperty_sql-848"><a href="#Generator.afterjournalproperty_sql-848"><span class="linenos">848</span></a> <span class="n">dual</span> <span class="o">=</span> <span class="s2">"DUAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"dual"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.afterjournalproperty_sql-849"><a href="#Generator.afterjournalproperty_sql-849"><span class="linenos">849</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.afterjournalproperty_sql-850"><a href="#Generator.afterjournalproperty_sql-850"><span class="linenos">850</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">"local"</span><span class="p">)</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.afterjournalproperty_sql-851"><a href="#Generator.afterjournalproperty_sql-851"><span class="linenos">851</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">"LOCAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">"NOT LOCAL "</span> +</span><span id="Generator.afterjournalproperty_sql-852"><a href="#Generator.afterjournalproperty_sql-852"><span class="linenos">852</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">dual</span><span class="si">}{</span><span class="n">local</span><span class="si">}</span><span class="s2">AFTER JOURNAL"</span> </span></pre></div> @@ -6281,14 +6306,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.checksumproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.checksumproperty_sql-858"><a href="#Generator.checksumproperty_sql-858"><span class="linenos">858</span></a> <span class="k">def</span> <span class="nf">checksumproperty_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">ChecksumProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.checksumproperty_sql-859"><a href="#Generator.checksumproperty_sql-859"><span class="linenos">859</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">"default"</span><span class="p">):</span> -</span><span id="Generator.checksumproperty_sql-860"><a href="#Generator.checksumproperty_sql-860"><span class="linenos">860</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="Generator.checksumproperty_sql-861"><a href="#Generator.checksumproperty_sql-861"><span class="linenos">861</span></a> <span class="k">elif</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">"on"</span><span class="p">):</span> -</span><span id="Generator.checksumproperty_sql-862"><a href="#Generator.checksumproperty_sql-862"><span class="linenos">862</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ON"</span> -</span><span id="Generator.checksumproperty_sql-863"><a href="#Generator.checksumproperty_sql-863"><span class="linenos">863</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.checksumproperty_sql-864"><a href="#Generator.checksumproperty_sql-864"><span class="linenos">864</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"OFF"</span> -</span><span id="Generator.checksumproperty_sql-865"><a href="#Generator.checksumproperty_sql-865"><span class="linenos">865</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECKSUM=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.checksumproperty_sql-854"><a href="#Generator.checksumproperty_sql-854"><span class="linenos">854</span></a> <span class="k">def</span> <span class="nf">checksumproperty_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">ChecksumProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.checksumproperty_sql-855"><a href="#Generator.checksumproperty_sql-855"><span class="linenos">855</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">"default"</span><span class="p">):</span> +</span><span id="Generator.checksumproperty_sql-856"><a href="#Generator.checksumproperty_sql-856"><span class="linenos">856</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="Generator.checksumproperty_sql-857"><a href="#Generator.checksumproperty_sql-857"><span class="linenos">857</span></a> <span class="k">elif</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">"on"</span><span class="p">):</span> +</span><span id="Generator.checksumproperty_sql-858"><a href="#Generator.checksumproperty_sql-858"><span class="linenos">858</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ON"</span> +</span><span id="Generator.checksumproperty_sql-859"><a href="#Generator.checksumproperty_sql-859"><span class="linenos">859</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.checksumproperty_sql-860"><a href="#Generator.checksumproperty_sql-860"><span class="linenos">860</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"OFF"</span> +</span><span id="Generator.checksumproperty_sql-861"><a href="#Generator.checksumproperty_sql-861"><span class="linenos">861</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECKSUM=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6306,14 +6331,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.mergeblockratioproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.mergeblockratioproperty_sql-867"><a href="#Generator.mergeblockratioproperty_sql-867"><span class="linenos">867</span></a> <span class="k">def</span> <span class="nf">mergeblockratioproperty_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">MergeBlockRatioProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.mergeblockratioproperty_sql-868"><a href="#Generator.mergeblockratioproperty_sql-868"><span class="linenos">868</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">"no"</span><span class="p">):</span> -</span><span id="Generator.mergeblockratioproperty_sql-869"><a href="#Generator.mergeblockratioproperty_sql-869"><span class="linenos">869</span></a> <span class="k">return</span> <span class="s2">"NO MERGEBLOCKRATIO"</span> -</span><span id="Generator.mergeblockratioproperty_sql-870"><a href="#Generator.mergeblockratioproperty_sql-870"><span class="linenos">870</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">"default"</span><span class="p">):</span> -</span><span id="Generator.mergeblockratioproperty_sql-871"><a href="#Generator.mergeblockratioproperty_sql-871"><span class="linenos">871</span></a> <span class="k">return</span> <span class="s2">"DEFAULT MERGEBLOCKRATIO"</span> -</span><span id="Generator.mergeblockratioproperty_sql-872"><a href="#Generator.mergeblockratioproperty_sql-872"><span class="linenos">872</span></a> -</span><span id="Generator.mergeblockratioproperty_sql-873"><a href="#Generator.mergeblockratioproperty_sql-873"><span class="linenos">873</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.mergeblockratioproperty_sql-874"><a href="#Generator.mergeblockratioproperty_sql-874"><span class="linenos">874</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGEBLOCKRATIO=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.mergeblockratioproperty_sql-863"><a href="#Generator.mergeblockratioproperty_sql-863"><span class="linenos">863</span></a> <span class="k">def</span> <span class="nf">mergeblockratioproperty_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">MergeBlockRatioProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.mergeblockratioproperty_sql-864"><a href="#Generator.mergeblockratioproperty_sql-864"><span class="linenos">864</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">"no"</span><span class="p">):</span> +</span><span id="Generator.mergeblockratioproperty_sql-865"><a href="#Generator.mergeblockratioproperty_sql-865"><span class="linenos">865</span></a> <span class="k">return</span> <span class="s2">"NO MERGEBLOCKRATIO"</span> +</span><span id="Generator.mergeblockratioproperty_sql-866"><a href="#Generator.mergeblockratioproperty_sql-866"><span class="linenos">866</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">"default"</span><span class="p">):</span> +</span><span id="Generator.mergeblockratioproperty_sql-867"><a href="#Generator.mergeblockratioproperty_sql-867"><span class="linenos">867</span></a> <span class="k">return</span> <span class="s2">"DEFAULT MERGEBLOCKRATIO"</span> +</span><span id="Generator.mergeblockratioproperty_sql-868"><a href="#Generator.mergeblockratioproperty_sql-868"><span class="linenos">868</span></a> +</span><span id="Generator.mergeblockratioproperty_sql-869"><a href="#Generator.mergeblockratioproperty_sql-869"><span class="linenos">869</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="s2">" PERCENT"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"percent"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.mergeblockratioproperty_sql-870"><a href="#Generator.mergeblockratioproperty_sql-870"><span class="linenos">870</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGEBLOCKRATIO=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">percent</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6331,21 +6356,21 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.datablocksizeproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.datablocksizeproperty_sql-876"><a href="#Generator.datablocksizeproperty_sql-876"><span class="linenos">876</span></a> <span class="k">def</span> <span class="nf">datablocksizeproperty_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">DataBlocksizeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.datablocksizeproperty_sql-877"><a href="#Generator.datablocksizeproperty_sql-877"><span class="linenos">877</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator.datablocksizeproperty_sql-878"><a href="#Generator.datablocksizeproperty_sql-878"><span class="linenos">878</span></a> <span class="nb">min</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">"min"</span><span class="p">)</span> -</span><span id="Generator.datablocksizeproperty_sql-879"><a href="#Generator.datablocksizeproperty_sql-879"><span class="linenos">879</span></a> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">min</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.datablocksizeproperty_sql-880"><a href="#Generator.datablocksizeproperty_sql-880"><span class="linenos">880</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator.datablocksizeproperty_sql-881"><a href="#Generator.datablocksizeproperty_sql-881"><span class="linenos">881</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="Generator.datablocksizeproperty_sql-882"><a href="#Generator.datablocksizeproperty_sql-882"><span class="linenos">882</span></a> <span class="k">elif</span> <span class="nb">min</span><span class="p">:</span> -</span><span id="Generator.datablocksizeproperty_sql-883"><a href="#Generator.datablocksizeproperty_sql-883"><span class="linenos">883</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MINIMUM"</span> -</span><span id="Generator.datablocksizeproperty_sql-884"><a href="#Generator.datablocksizeproperty_sql-884"><span class="linenos">884</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.datablocksizeproperty_sql-885"><a href="#Generator.datablocksizeproperty_sql-885"><span class="linenos">885</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MAXIMUM"</span> -</span><span id="Generator.datablocksizeproperty_sql-886"><a href="#Generator.datablocksizeproperty_sql-886"><span class="linenos">886</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2"> DATABLOCKSIZE"</span> -</span><span id="Generator.datablocksizeproperty_sql-887"><a href="#Generator.datablocksizeproperty_sql-887"><span class="linenos">887</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.datablocksizeproperty_sql-888"><a href="#Generator.datablocksizeproperty_sql-888"><span class="linenos">888</span></a> <span class="n">units</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">"units"</span><span class="p">)</span> -</span><span id="Generator.datablocksizeproperty_sql-889"><a href="#Generator.datablocksizeproperty_sql-889"><span class="linenos">889</span></a> <span class="n">units</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">units</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.datablocksizeproperty_sql-890"><a href="#Generator.datablocksizeproperty_sql-890"><span class="linenos">890</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATABLOCKSIZE=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'size'</span><span class="p">)</span><span class="si">}{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.datablocksizeproperty_sql-872"><a href="#Generator.datablocksizeproperty_sql-872"><span class="linenos">872</span></a> <span class="k">def</span> <span class="nf">datablocksizeproperty_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">DataBlocksizeProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.datablocksizeproperty_sql-873"><a href="#Generator.datablocksizeproperty_sql-873"><span class="linenos">873</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator.datablocksizeproperty_sql-874"><a href="#Generator.datablocksizeproperty_sql-874"><span class="linenos">874</span></a> <span class="nb">min</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">"min"</span><span class="p">)</span> +</span><span id="Generator.datablocksizeproperty_sql-875"><a href="#Generator.datablocksizeproperty_sql-875"><span class="linenos">875</span></a> <span class="k">if</span> <span class="n">default</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="ow">or</span> <span class="nb">min</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.datablocksizeproperty_sql-876"><a href="#Generator.datablocksizeproperty_sql-876"><span class="linenos">876</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator.datablocksizeproperty_sql-877"><a href="#Generator.datablocksizeproperty_sql-877"><span class="linenos">877</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="Generator.datablocksizeproperty_sql-878"><a href="#Generator.datablocksizeproperty_sql-878"><span class="linenos">878</span></a> <span class="k">elif</span> <span class="nb">min</span><span class="p">:</span> +</span><span id="Generator.datablocksizeproperty_sql-879"><a href="#Generator.datablocksizeproperty_sql-879"><span class="linenos">879</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MINIMUM"</span> +</span><span id="Generator.datablocksizeproperty_sql-880"><a href="#Generator.datablocksizeproperty_sql-880"><span class="linenos">880</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.datablocksizeproperty_sql-881"><a href="#Generator.datablocksizeproperty_sql-881"><span class="linenos">881</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MAXIMUM"</span> +</span><span id="Generator.datablocksizeproperty_sql-882"><a href="#Generator.datablocksizeproperty_sql-882"><span class="linenos">882</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2"> DATABLOCKSIZE"</span> +</span><span id="Generator.datablocksizeproperty_sql-883"><a href="#Generator.datablocksizeproperty_sql-883"><span class="linenos">883</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.datablocksizeproperty_sql-884"><a href="#Generator.datablocksizeproperty_sql-884"><span class="linenos">884</span></a> <span class="n">units</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">"units"</span><span class="p">)</span> +</span><span id="Generator.datablocksizeproperty_sql-885"><a href="#Generator.datablocksizeproperty_sql-885"><span class="linenos">885</span></a> <span class="n">units</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">units</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.datablocksizeproperty_sql-886"><a href="#Generator.datablocksizeproperty_sql-886"><span class="linenos">886</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DATABLOCKSIZE=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'size'</span><span class="p">)</span><span class="si">}{</span><span class="n">units</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6363,24 +6388,24 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.blockcompressionproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.blockcompressionproperty_sql-892"><a href="#Generator.blockcompressionproperty_sql-892"><span class="linenos">892</span></a> <span class="k">def</span> <span class="nf">blockcompressionproperty_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">BlockCompressionProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.blockcompressionproperty_sql-893"><a href="#Generator.blockcompressionproperty_sql-893"><span class="linenos">893</span></a> <span class="n">autotemp</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">"autotemp"</span><span class="p">)</span> -</span><span id="Generator.blockcompressionproperty_sql-894"><a href="#Generator.blockcompressionproperty_sql-894"><span class="linenos">894</span></a> <span class="n">always</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">"always"</span><span class="p">)</span> -</span><span id="Generator.blockcompressionproperty_sql-895"><a href="#Generator.blockcompressionproperty_sql-895"><span class="linenos">895</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator.blockcompressionproperty_sql-896"><a href="#Generator.blockcompressionproperty_sql-896"><span class="linenos">896</span></a> <span class="n">manual</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">"manual"</span><span class="p">)</span> -</span><span id="Generator.blockcompressionproperty_sql-897"><a href="#Generator.blockcompressionproperty_sql-897"><span class="linenos">897</span></a> <span class="n">never</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">"never"</span><span class="p">)</span> -</span><span id="Generator.blockcompressionproperty_sql-898"><a href="#Generator.blockcompressionproperty_sql-898"><span class="linenos">898</span></a> -</span><span id="Generator.blockcompressionproperty_sql-899"><a href="#Generator.blockcompressionproperty_sql-899"><span class="linenos">899</span></a> <span class="k">if</span> <span class="n">autotemp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.blockcompressionproperty_sql-900"><a href="#Generator.blockcompressionproperty_sql-900"><span class="linenos">900</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AUTOTEMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">autotemp</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.blockcompressionproperty_sql-901"><a href="#Generator.blockcompressionproperty_sql-901"><span class="linenos">901</span></a> <span class="k">elif</span> <span class="n">always</span><span class="p">:</span> -</span><span id="Generator.blockcompressionproperty_sql-902"><a href="#Generator.blockcompressionproperty_sql-902"><span class="linenos">902</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ALWAYS"</span> -</span><span id="Generator.blockcompressionproperty_sql-903"><a href="#Generator.blockcompressionproperty_sql-903"><span class="linenos">903</span></a> <span class="k">elif</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator.blockcompressionproperty_sql-904"><a href="#Generator.blockcompressionproperty_sql-904"><span class="linenos">904</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> -</span><span id="Generator.blockcompressionproperty_sql-905"><a href="#Generator.blockcompressionproperty_sql-905"><span class="linenos">905</span></a> <span class="k">elif</span> <span class="n">manual</span><span class="p">:</span> -</span><span id="Generator.blockcompressionproperty_sql-906"><a href="#Generator.blockcompressionproperty_sql-906"><span class="linenos">906</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MANUAL"</span> -</span><span id="Generator.blockcompressionproperty_sql-907"><a href="#Generator.blockcompressionproperty_sql-907"><span class="linenos">907</span></a> <span class="k">elif</span> <span class="n">never</span><span class="p">:</span> -</span><span id="Generator.blockcompressionproperty_sql-908"><a href="#Generator.blockcompressionproperty_sql-908"><span class="linenos">908</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"NEVER"</span> -</span><span id="Generator.blockcompressionproperty_sql-909"><a href="#Generator.blockcompressionproperty_sql-909"><span class="linenos">909</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BLOCKCOMPRESSION=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.blockcompressionproperty_sql-888"><a href="#Generator.blockcompressionproperty_sql-888"><span class="linenos">888</span></a> <span class="k">def</span> <span class="nf">blockcompressionproperty_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">BlockCompressionProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.blockcompressionproperty_sql-889"><a href="#Generator.blockcompressionproperty_sql-889"><span class="linenos">889</span></a> <span class="n">autotemp</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">"autotemp"</span><span class="p">)</span> +</span><span id="Generator.blockcompressionproperty_sql-890"><a href="#Generator.blockcompressionproperty_sql-890"><span class="linenos">890</span></a> <span class="n">always</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">"always"</span><span class="p">)</span> +</span><span id="Generator.blockcompressionproperty_sql-891"><a href="#Generator.blockcompressionproperty_sql-891"><span class="linenos">891</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator.blockcompressionproperty_sql-892"><a href="#Generator.blockcompressionproperty_sql-892"><span class="linenos">892</span></a> <span class="n">manual</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">"manual"</span><span class="p">)</span> +</span><span id="Generator.blockcompressionproperty_sql-893"><a href="#Generator.blockcompressionproperty_sql-893"><span class="linenos">893</span></a> <span class="n">never</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">"never"</span><span class="p">)</span> +</span><span id="Generator.blockcompressionproperty_sql-894"><a href="#Generator.blockcompressionproperty_sql-894"><span class="linenos">894</span></a> +</span><span id="Generator.blockcompressionproperty_sql-895"><a href="#Generator.blockcompressionproperty_sql-895"><span class="linenos">895</span></a> <span class="k">if</span> <span class="n">autotemp</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.blockcompressionproperty_sql-896"><a href="#Generator.blockcompressionproperty_sql-896"><span class="linenos">896</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"AUTOTEMP(</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">autotemp</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.blockcompressionproperty_sql-897"><a href="#Generator.blockcompressionproperty_sql-897"><span class="linenos">897</span></a> <span class="k">elif</span> <span class="n">always</span><span class="p">:</span> +</span><span id="Generator.blockcompressionproperty_sql-898"><a href="#Generator.blockcompressionproperty_sql-898"><span class="linenos">898</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"ALWAYS"</span> +</span><span id="Generator.blockcompressionproperty_sql-899"><a href="#Generator.blockcompressionproperty_sql-899"><span class="linenos">899</span></a> <span class="k">elif</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator.blockcompressionproperty_sql-900"><a href="#Generator.blockcompressionproperty_sql-900"><span class="linenos">900</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"DEFAULT"</span> +</span><span id="Generator.blockcompressionproperty_sql-901"><a href="#Generator.blockcompressionproperty_sql-901"><span class="linenos">901</span></a> <span class="k">elif</span> <span class="n">manual</span><span class="p">:</span> +</span><span id="Generator.blockcompressionproperty_sql-902"><a href="#Generator.blockcompressionproperty_sql-902"><span class="linenos">902</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"MANUAL"</span> +</span><span id="Generator.blockcompressionproperty_sql-903"><a href="#Generator.blockcompressionproperty_sql-903"><span class="linenos">903</span></a> <span class="k">elif</span> <span class="n">never</span><span class="p">:</span> +</span><span id="Generator.blockcompressionproperty_sql-904"><a href="#Generator.blockcompressionproperty_sql-904"><span class="linenos">904</span></a> <span class="nb">property</span> <span class="o">=</span> <span class="s2">"NEVER"</span> +</span><span id="Generator.blockcompressionproperty_sql-905"><a href="#Generator.blockcompressionproperty_sql-905"><span class="linenos">905</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"BLOCKCOMPRESSION=</span><span class="si">{</span><span class="nb">property</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6398,20 +6423,20 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.isolatedloadingproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.isolatedloadingproperty_sql-911"><a href="#Generator.isolatedloadingproperty_sql-911"><span class="linenos">911</span></a> <span class="k">def</span> <span class="nf">isolatedloadingproperty_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">IsolatedLoadingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.isolatedloadingproperty_sql-912"><a href="#Generator.isolatedloadingproperty_sql-912"><span class="linenos">912</span></a> <span class="n">no</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">"no"</span><span class="p">)</span> -</span><span id="Generator.isolatedloadingproperty_sql-913"><a href="#Generator.isolatedloadingproperty_sql-913"><span class="linenos">913</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">" NO"</span> <span class="k">if</span> <span class="n">no</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.isolatedloadingproperty_sql-914"><a href="#Generator.isolatedloadingproperty_sql-914"><span class="linenos">914</span></a> <span class="n">concurrent</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">"concurrent"</span><span class="p">)</span> -</span><span id="Generator.isolatedloadingproperty_sql-915"><a href="#Generator.isolatedloadingproperty_sql-915"><span class="linenos">915</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="s2">" CONCURRENT"</span> <span class="k">if</span> <span class="n">concurrent</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.isolatedloadingproperty_sql-916"><a href="#Generator.isolatedloadingproperty_sql-916"><span class="linenos">916</span></a> -</span><span id="Generator.isolatedloadingproperty_sql-917"><a href="#Generator.isolatedloadingproperty_sql-917"><span class="linenos">917</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.isolatedloadingproperty_sql-918"><a href="#Generator.isolatedloadingproperty_sql-918"><span class="linenos">918</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">"for_all"</span><span class="p">):</span> -</span><span id="Generator.isolatedloadingproperty_sql-919"><a href="#Generator.isolatedloadingproperty_sql-919"><span class="linenos">919</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR ALL"</span> -</span><span id="Generator.isolatedloadingproperty_sql-920"><a href="#Generator.isolatedloadingproperty_sql-920"><span class="linenos">920</span></a> <span class="k">elif</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">"for_insert"</span><span class="p">):</span> -</span><span id="Generator.isolatedloadingproperty_sql-921"><a href="#Generator.isolatedloadingproperty_sql-921"><span class="linenos">921</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR INSERT"</span> -</span><span id="Generator.isolatedloadingproperty_sql-922"><a href="#Generator.isolatedloadingproperty_sql-922"><span class="linenos">922</span></a> <span class="k">elif</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">"for_none"</span><span class="p">):</span> -</span><span id="Generator.isolatedloadingproperty_sql-923"><a href="#Generator.isolatedloadingproperty_sql-923"><span class="linenos">923</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR NONE"</span> -</span><span id="Generator.isolatedloadingproperty_sql-924"><a href="#Generator.isolatedloadingproperty_sql-924"><span class="linenos">924</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">concurrent</span><span class="si">}</span><span class="s2"> ISOLATED LOADING</span><span class="si">{</span><span class="n">for_</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.isolatedloadingproperty_sql-907"><a href="#Generator.isolatedloadingproperty_sql-907"><span class="linenos">907</span></a> <span class="k">def</span> <span class="nf">isolatedloadingproperty_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">IsolatedLoadingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.isolatedloadingproperty_sql-908"><a href="#Generator.isolatedloadingproperty_sql-908"><span class="linenos">908</span></a> <span class="n">no</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">"no"</span><span class="p">)</span> +</span><span id="Generator.isolatedloadingproperty_sql-909"><a href="#Generator.isolatedloadingproperty_sql-909"><span class="linenos">909</span></a> <span class="n">no</span> <span class="o">=</span> <span class="s2">" NO"</span> <span class="k">if</span> <span class="n">no</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.isolatedloadingproperty_sql-910"><a href="#Generator.isolatedloadingproperty_sql-910"><span class="linenos">910</span></a> <span class="n">concurrent</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">"concurrent"</span><span class="p">)</span> +</span><span id="Generator.isolatedloadingproperty_sql-911"><a href="#Generator.isolatedloadingproperty_sql-911"><span class="linenos">911</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="s2">" CONCURRENT"</span> <span class="k">if</span> <span class="n">concurrent</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.isolatedloadingproperty_sql-912"><a href="#Generator.isolatedloadingproperty_sql-912"><span class="linenos">912</span></a> +</span><span id="Generator.isolatedloadingproperty_sql-913"><a href="#Generator.isolatedloadingproperty_sql-913"><span class="linenos">913</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.isolatedloadingproperty_sql-914"><a href="#Generator.isolatedloadingproperty_sql-914"><span class="linenos">914</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">"for_all"</span><span class="p">):</span> +</span><span id="Generator.isolatedloadingproperty_sql-915"><a href="#Generator.isolatedloadingproperty_sql-915"><span class="linenos">915</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR ALL"</span> +</span><span id="Generator.isolatedloadingproperty_sql-916"><a href="#Generator.isolatedloadingproperty_sql-916"><span class="linenos">916</span></a> <span class="k">elif</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">"for_insert"</span><span class="p">):</span> +</span><span id="Generator.isolatedloadingproperty_sql-917"><a href="#Generator.isolatedloadingproperty_sql-917"><span class="linenos">917</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR INSERT"</span> +</span><span id="Generator.isolatedloadingproperty_sql-918"><a href="#Generator.isolatedloadingproperty_sql-918"><span class="linenos">918</span></a> <span class="k">elif</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">"for_none"</span><span class="p">):</span> +</span><span id="Generator.isolatedloadingproperty_sql-919"><a href="#Generator.isolatedloadingproperty_sql-919"><span class="linenos">919</span></a> <span class="n">for_</span> <span class="o">=</span> <span class="s2">" FOR NONE"</span> +</span><span id="Generator.isolatedloadingproperty_sql-920"><a href="#Generator.isolatedloadingproperty_sql-920"><span class="linenos">920</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WITH</span><span class="si">{</span><span class="n">no</span><span class="si">}{</span><span class="n">concurrent</span><span class="si">}</span><span class="s2"> ISOLATED LOADING</span><span class="si">{</span><span class="n">for_</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6429,13 +6454,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.lockingproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lockingproperty_sql-926"><a href="#Generator.lockingproperty_sql-926"><span class="linenos">926</span></a> <span class="k">def</span> <span class="nf">lockingproperty_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">LockingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.lockingproperty_sql-927"><a href="#Generator.lockingproperty_sql-927"><span class="linenos">927</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator.lockingproperty_sql-928"><a href="#Generator.lockingproperty_sql-928"><span class="linenos">928</span></a> <span class="n">this</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.lockingproperty_sql-929"><a href="#Generator.lockingproperty_sql-929"><span class="linenos">929</span></a> <span class="n">for_or_in</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">"for_or_in"</span><span class="p">)</span> -</span><span id="Generator.lockingproperty_sql-930"><a href="#Generator.lockingproperty_sql-930"><span class="linenos">930</span></a> <span class="n">lock_type</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">"lock_type"</span><span class="p">)</span> -</span><span id="Generator.lockingproperty_sql-931"><a href="#Generator.lockingproperty_sql-931"><span class="linenos">931</span></a> <span class="n">override</span> <span class="o">=</span> <span class="s2">" OVERRIDE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"override"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.lockingproperty_sql-932"><a href="#Generator.lockingproperty_sql-932"><span class="linenos">932</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOCKING </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">for_or_in</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}{</span><span class="n">override</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lockingproperty_sql-922"><a href="#Generator.lockingproperty_sql-922"><span class="linenos">922</span></a> <span class="k">def</span> <span class="nf">lockingproperty_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">LockingProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.lockingproperty_sql-923"><a href="#Generator.lockingproperty_sql-923"><span class="linenos">923</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator.lockingproperty_sql-924"><a href="#Generator.lockingproperty_sql-924"><span class="linenos">924</span></a> <span class="n">this</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.lockingproperty_sql-925"><a href="#Generator.lockingproperty_sql-925"><span class="linenos">925</span></a> <span class="n">for_or_in</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">"for_or_in"</span><span class="p">)</span> +</span><span id="Generator.lockingproperty_sql-926"><a href="#Generator.lockingproperty_sql-926"><span class="linenos">926</span></a> <span class="n">lock_type</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">"lock_type"</span><span class="p">)</span> +</span><span id="Generator.lockingproperty_sql-927"><a href="#Generator.lockingproperty_sql-927"><span class="linenos">927</span></a> <span class="n">override</span> <span class="o">=</span> <span class="s2">" OVERRIDE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"override"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.lockingproperty_sql-928"><a href="#Generator.lockingproperty_sql-928"><span class="linenos">928</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOCKING </span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">for_or_in</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}{</span><span class="n">override</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6453,13 +6478,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.withdataproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.withdataproperty_sql-934"><a href="#Generator.withdataproperty_sql-934"><span class="linenos">934</span></a> <span class="k">def</span> <span class="nf">withdataproperty_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">WithDataProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.withdataproperty_sql-935"><a href="#Generator.withdataproperty_sql-935"><span class="linenos">935</span></a> <span class="n">data_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'no'</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">DATA"</span> -</span><span id="Generator.withdataproperty_sql-936"><a href="#Generator.withdataproperty_sql-936"><span class="linenos">936</span></a> <span class="n">statistics</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">"statistics"</span><span class="p">)</span> -</span><span id="Generator.withdataproperty_sql-937"><a href="#Generator.withdataproperty_sql-937"><span class="linenos">937</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.withdataproperty_sql-938"><a href="#Generator.withdataproperty_sql-938"><span class="linenos">938</span></a> <span class="k">if</span> <span class="n">statistics</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.withdataproperty_sql-939"><a href="#Generator.withdataproperty_sql-939"><span class="linenos">939</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">statistics</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">STATISTICS"</span> -</span><span id="Generator.withdataproperty_sql-940"><a href="#Generator.withdataproperty_sql-940"><span class="linenos">940</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data_sql</span><span class="si">}{</span><span class="n">statistics_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.withdataproperty_sql-930"><a href="#Generator.withdataproperty_sql-930"><span class="linenos">930</span></a> <span class="k">def</span> <span class="nf">withdataproperty_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">WithDataProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.withdataproperty_sql-931"><a href="#Generator.withdataproperty_sql-931"><span class="linenos">931</span></a> <span class="n">data_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"WITH </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'no'</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">DATA"</span> +</span><span id="Generator.withdataproperty_sql-932"><a href="#Generator.withdataproperty_sql-932"><span class="linenos">932</span></a> <span class="n">statistics</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">"statistics"</span><span class="p">)</span> +</span><span id="Generator.withdataproperty_sql-933"><a href="#Generator.withdataproperty_sql-933"><span class="linenos">933</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.withdataproperty_sql-934"><a href="#Generator.withdataproperty_sql-934"><span class="linenos">934</span></a> <span class="k">if</span> <span class="n">statistics</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.withdataproperty_sql-935"><a href="#Generator.withdataproperty_sql-935"><span class="linenos">935</span></a> <span class="n">statistics_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="s1">'NO '</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="ow">not</span><span class="w"> </span><span class="n">statistics</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">STATISTICS"</span> +</span><span id="Generator.withdataproperty_sql-936"><a href="#Generator.withdataproperty_sql-936"><span class="linenos">936</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">data_sql</span><span class="si">}{</span><span class="n">statistics_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6477,27 +6502,27 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.insert_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.insert_sql-942"><a href="#Generator.insert_sql-942"><span class="linenos">942</span></a> <span class="k">def</span> <span class="nf">insert_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">Insert</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.insert_sql-943"><a href="#Generator.insert_sql-943"><span class="linenos">943</span></a> <span class="n">overwrite</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">"overwrite"</span><span class="p">)</span> -</span><span id="Generator.insert_sql-944"><a href="#Generator.insert_sql-944"><span class="linenos">944</span></a> -</span><span id="Generator.insert_sql-945"><a href="#Generator.insert_sql-945"><span class="linenos">945</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">):</span> -</span><span id="Generator.insert_sql-946"><a href="#Generator.insert_sql-946"><span class="linenos">946</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> -</span><span id="Generator.insert_sql-947"><a href="#Generator.insert_sql-947"><span class="linenos">947</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.insert_sql-948"><a href="#Generator.insert_sql-948"><span class="linenos">948</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE TABLE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.insert_sql-938"><a href="#Generator.insert_sql-938"><span class="linenos">938</span></a> <span class="k">def</span> <span class="nf">insert_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">Insert</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.insert_sql-939"><a href="#Generator.insert_sql-939"><span class="linenos">939</span></a> <span class="n">overwrite</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">"overwrite"</span><span class="p">)</span> +</span><span id="Generator.insert_sql-940"><a href="#Generator.insert_sql-940"><span class="linenos">940</span></a> +</span><span id="Generator.insert_sql-941"><a href="#Generator.insert_sql-941"><span class="linenos">941</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">):</span> +</span><span id="Generator.insert_sql-942"><a href="#Generator.insert_sql-942"><span class="linenos">942</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="Generator.insert_sql-943"><a href="#Generator.insert_sql-943"><span class="linenos">943</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.insert_sql-944"><a href="#Generator.insert_sql-944"><span class="linenos">944</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">"OVERWRITE TABLE "</span> <span class="k">if</span> <span class="n">overwrite</span> <span class="k">else</span> <span class="s2">"INTO "</span> +</span><span id="Generator.insert_sql-945"><a href="#Generator.insert_sql-945"><span class="linenos">945</span></a> +</span><span id="Generator.insert_sql-946"><a href="#Generator.insert_sql-946"><span class="linenos">946</span></a> <span class="n">alternative</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">"alternative"</span><span class="p">)</span> +</span><span id="Generator.insert_sql-947"><a href="#Generator.insert_sql-947"><span class="linenos">947</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OR </span><span class="si">{</span><span class="n">alternative</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">alternative</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.insert_sql-948"><a href="#Generator.insert_sql-948"><span class="linenos">948</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</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">expression</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><span id="Generator.insert_sql-949"><a href="#Generator.insert_sql-949"><span class="linenos">949</span></a> -</span><span id="Generator.insert_sql-950"><a href="#Generator.insert_sql-950"><span class="linenos">950</span></a> <span class="n">alternative</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">"alternative"</span><span class="p">)</span> -</span><span id="Generator.insert_sql-951"><a href="#Generator.insert_sql-951"><span class="linenos">951</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" OR </span><span class="si">{</span><span class="n">alternative</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">alternative</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.insert_sql-952"><a href="#Generator.insert_sql-952"><span class="linenos">952</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</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">expression</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><span id="Generator.insert_sql-953"><a href="#Generator.insert_sql-953"><span class="linenos">953</span></a> -</span><span id="Generator.insert_sql-954"><a href="#Generator.insert_sql-954"><span class="linenos">954</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.insert_sql-955"><a href="#Generator.insert_sql-955"><span class="linenos">955</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.insert_sql-956"><a href="#Generator.insert_sql-956"><span class="linenos">956</span></a> <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">"partition"</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"partition"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.insert_sql-957"><a href="#Generator.insert_sql-957"><span class="linenos">957</span></a> <span class="p">)</span> -</span><span id="Generator.insert_sql-958"><a href="#Generator.insert_sql-958"><span class="linenos">958</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.insert_sql-959"><a href="#Generator.insert_sql-959"><span class="linenos">959</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="Generator.insert_sql-960"><a href="#Generator.insert_sql-960"><span class="linenos">960</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span> <span class="k">if</span> <span class="n">partition_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.insert_sql-961"><a href="#Generator.insert_sql-961"><span class="linenos">961</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT</span><span class="si">{</span><span class="n">alternative</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">exists</span><span class="si">}{</span><span class="n">partition_sql</span><span class="si">}{</span><span class="n">sep</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.insert_sql-962"><a href="#Generator.insert_sql-962"><span class="linenos">962</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Generator.insert_sql-950"><a href="#Generator.insert_sql-950"><span class="linenos">950</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.insert_sql-951"><a href="#Generator.insert_sql-951"><span class="linenos">951</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.insert_sql-952"><a href="#Generator.insert_sql-952"><span class="linenos">952</span></a> <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">"partition"</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"partition"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.insert_sql-953"><a href="#Generator.insert_sql-953"><span class="linenos">953</span></a> <span class="p">)</span> +</span><span id="Generator.insert_sql-954"><a href="#Generator.insert_sql-954"><span class="linenos">954</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.insert_sql-955"><a href="#Generator.insert_sql-955"><span class="linenos">955</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="Generator.insert_sql-956"><a href="#Generator.insert_sql-956"><span class="linenos">956</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span> <span class="k">if</span> <span class="n">partition_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.insert_sql-957"><a href="#Generator.insert_sql-957"><span class="linenos">957</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT</span><span class="si">{</span><span class="n">alternative</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">exists</span><span class="si">}{</span><span class="n">partition_sql</span><span class="si">}{</span><span class="n">sep</span><span class="si">}{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.insert_sql-958"><a href="#Generator.insert_sql-958"><span class="linenos">958</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -6515,11 +6540,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.intersect_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.intersect_sql-964"><a href="#Generator.intersect_sql-964"><span class="linenos">964</span></a> <span class="k">def</span> <span class="nf">intersect_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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.intersect_sql-965"><a href="#Generator.intersect_sql-965"><span class="linenos">965</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="Generator.intersect_sql-966"><a href="#Generator.intersect_sql-966"><span class="linenos">966</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator.intersect_sql-967"><a href="#Generator.intersect_sql-967"><span class="linenos">967</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="Generator.intersect_sql-968"><a href="#Generator.intersect_sql-968"><span class="linenos">968</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.intersect_sql-960"><a href="#Generator.intersect_sql-960"><span class="linenos">960</span></a> <span class="k">def</span> <span class="nf">intersect_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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.intersect_sql-961"><a href="#Generator.intersect_sql-961"><span class="linenos">961</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="Generator.intersect_sql-962"><a href="#Generator.intersect_sql-962"><span class="linenos">962</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator.intersect_sql-963"><a href="#Generator.intersect_sql-963"><span class="linenos">963</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">intersect_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator.intersect_sql-964"><a href="#Generator.intersect_sql-964"><span class="linenos">964</span></a> <span class="p">)</span> </span></pre></div> @@ -6537,8 +6562,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.intersect_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.intersect_op-970"><a href="#Generator.intersect_op-970"><span class="linenos">970</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.intersect_op-971"><a href="#Generator.intersect_op-971"><span class="linenos">971</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.intersect_op-966"><a href="#Generator.intersect_op-966"><span class="linenos">966</span></a> <span class="k">def</span> <span class="nf">intersect_op</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">Intersect</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.intersect_op-967"><a href="#Generator.intersect_op-967"><span class="linenos">967</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERSECT</span><span class="si">{</span><span class="s1">''</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'distinct'</span><span class="p">)</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">' ALL'</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6556,8 +6581,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.introducer_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.introducer_sql-973"><a href="#Generator.introducer_sql-973"><span class="linenos">973</span></a> <span class="k">def</span> <span class="nf">introducer_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">Introducer</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.introducer_sql-974"><a href="#Generator.introducer_sql-974"><span class="linenos">974</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.introducer_sql-969"><a href="#Generator.introducer_sql-969"><span class="linenos">969</span></a> <span class="k">def</span> <span class="nf">introducer_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">Introducer</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.introducer_sql-970"><a href="#Generator.introducer_sql-970"><span class="linenos">970</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6575,8 +6600,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.pseudotype_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.pseudotype_sql-976"><a href="#Generator.pseudotype_sql-976"><span class="linenos">976</span></a> <span class="k">def</span> <span class="nf">pseudotype_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">PseudoType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.pseudotype_sql-977"><a href="#Generator.pseudotype_sql-977"><span class="linenos">977</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.pseudotype_sql-972"><a href="#Generator.pseudotype_sql-972"><span class="linenos">972</span></a> <span class="k">def</span> <span class="nf">pseudotype_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">PseudoType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.pseudotype_sql-973"><a href="#Generator.pseudotype_sql-973"><span class="linenos">973</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> </span></pre></div> @@ -6594,8 +6619,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.returning_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.returning_sql-979"><a href="#Generator.returning_sql-979"><span class="linenos">979</span></a> <span class="k">def</span> <span class="nf">returning_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">Returning</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.returning_sql-980"><a href="#Generator.returning_sql-980"><span class="linenos">980</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'RETURNING'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.returning_sql-975"><a href="#Generator.returning_sql-975"><span class="linenos">975</span></a> <span class="k">def</span> <span class="nf">returning_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">Returning</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.returning_sql-976"><a href="#Generator.returning_sql-976"><span class="linenos">976</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'RETURNING'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6613,20 +6638,20 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.rowformatdelimitedproperty_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.rowformatdelimitedproperty_sql-982"><a href="#Generator.rowformatdelimitedproperty_sql-982"><span class="linenos">982</span></a> <span class="k">def</span> <span class="nf">rowformatdelimitedproperty_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">RowFormatDelimitedProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-983"><a href="#Generator.rowformatdelimitedproperty_sql-983"><span class="linenos">983</span></a> <span class="n">fields</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">"fields"</span><span class="p">)</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-984"><a href="#Generator.rowformatdelimitedproperty_sql-984"><span class="linenos">984</span></a> <span class="n">fields</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FIELDS TERMINATED BY </span><span class="si">{</span><span class="n">fields</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">fields</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-985"><a href="#Generator.rowformatdelimitedproperty_sql-985"><span class="linenos">985</span></a> <span class="n">escaped</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">"escaped"</span><span class="p">)</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-986"><a href="#Generator.rowformatdelimitedproperty_sql-986"><span class="linenos">986</span></a> <span class="n">escaped</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ESCAPED BY </span><span class="si">{</span><span class="n">escaped</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">escaped</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-987"><a href="#Generator.rowformatdelimitedproperty_sql-987"><span class="linenos">987</span></a> <span class="n">items</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">"collection_items"</span><span class="p">)</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-988"><a href="#Generator.rowformatdelimitedproperty_sql-988"><span class="linenos">988</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLECTION ITEMS TERMINATED BY </span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-989"><a href="#Generator.rowformatdelimitedproperty_sql-989"><span class="linenos">989</span></a> <span class="n">keys</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">"map_keys"</span><span class="p">)</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-990"><a href="#Generator.rowformatdelimitedproperty_sql-990"><span class="linenos">990</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAP KEYS TERMINATED BY </span><span class="si">{</span><span class="n">keys</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-991"><a href="#Generator.rowformatdelimitedproperty_sql-991"><span class="linenos">991</span></a> <span class="n">lines</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">"lines"</span><span class="p">)</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-992"><a href="#Generator.rowformatdelimitedproperty_sql-992"><span class="linenos">992</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LINES TERMINATED BY </span><span class="si">{</span><span class="n">lines</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">lines</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-993"><a href="#Generator.rowformatdelimitedproperty_sql-993"><span class="linenos">993</span></a> <span class="n">null</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">"null"</span><span class="p">)</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-994"><a href="#Generator.rowformatdelimitedproperty_sql-994"><span class="linenos">994</span></a> <span class="n">null</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" NULL DEFINED AS </span><span class="si">{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">null</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rowformatdelimitedproperty_sql-995"><a href="#Generator.rowformatdelimitedproperty_sql-995"><span class="linenos">995</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROW FORMAT DELIMITED</span><span class="si">{</span><span class="n">fields</span><span class="si">}{</span><span class="n">escaped</span><span class="si">}{</span><span class="n">items</span><span class="si">}{</span><span class="n">keys</span><span class="si">}{</span><span class="n">lines</span><span class="si">}{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.rowformatdelimitedproperty_sql-978"><a href="#Generator.rowformatdelimitedproperty_sql-978"><span class="linenos">978</span></a> <span class="k">def</span> <span class="nf">rowformatdelimitedproperty_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">RowFormatDelimitedProperty</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-979"><a href="#Generator.rowformatdelimitedproperty_sql-979"><span class="linenos">979</span></a> <span class="n">fields</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">"fields"</span><span class="p">)</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-980"><a href="#Generator.rowformatdelimitedproperty_sql-980"><span class="linenos">980</span></a> <span class="n">fields</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" FIELDS TERMINATED BY </span><span class="si">{</span><span class="n">fields</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">fields</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-981"><a href="#Generator.rowformatdelimitedproperty_sql-981"><span class="linenos">981</span></a> <span class="n">escaped</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">"escaped"</span><span class="p">)</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-982"><a href="#Generator.rowformatdelimitedproperty_sql-982"><span class="linenos">982</span></a> <span class="n">escaped</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ESCAPED BY </span><span class="si">{</span><span class="n">escaped</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">escaped</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-983"><a href="#Generator.rowformatdelimitedproperty_sql-983"><span class="linenos">983</span></a> <span class="n">items</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">"collection_items"</span><span class="p">)</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-984"><a href="#Generator.rowformatdelimitedproperty_sql-984"><span class="linenos">984</span></a> <span class="n">items</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLECTION ITEMS TERMINATED BY </span><span class="si">{</span><span class="n">items</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">items</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-985"><a href="#Generator.rowformatdelimitedproperty_sql-985"><span class="linenos">985</span></a> <span class="n">keys</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">"map_keys"</span><span class="p">)</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-986"><a href="#Generator.rowformatdelimitedproperty_sql-986"><span class="linenos">986</span></a> <span class="n">keys</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" MAP KEYS TERMINATED BY </span><span class="si">{</span><span class="n">keys</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">keys</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-987"><a href="#Generator.rowformatdelimitedproperty_sql-987"><span class="linenos">987</span></a> <span class="n">lines</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">"lines"</span><span class="p">)</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-988"><a href="#Generator.rowformatdelimitedproperty_sql-988"><span class="linenos">988</span></a> <span class="n">lines</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" LINES TERMINATED BY </span><span class="si">{</span><span class="n">lines</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">lines</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-989"><a href="#Generator.rowformatdelimitedproperty_sql-989"><span class="linenos">989</span></a> <span class="n">null</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">"null"</span><span class="p">)</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-990"><a href="#Generator.rowformatdelimitedproperty_sql-990"><span class="linenos">990</span></a> <span class="n">null</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" NULL DEFINED AS </span><span class="si">{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">null</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rowformatdelimitedproperty_sql-991"><a href="#Generator.rowformatdelimitedproperty_sql-991"><span class="linenos">991</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROW FORMAT DELIMITED</span><span class="si">{</span><span class="n">fields</span><span class="si">}{</span><span class="n">escaped</span><span class="si">}{</span><span class="n">items</span><span class="si">}{</span><span class="n">keys</span><span class="si">}{</span><span class="n">lines</span><span class="si">}{</span><span class="n">null</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6644,28 +6669,28 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.table_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.table_sql-997"><a href="#Generator.table_sql-997"><span class="linenos"> 997</span></a> <span class="k">def</span> <span class="nf">table_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">Table</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.table_sql-998"><a href="#Generator.table_sql-998"><span class="linenos"> 998</span></a> <span class="n">table</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator.table_sql-999"><a href="#Generator.table_sql-999"><span class="linenos"> 999</span></a> <span class="n">part</span> -</span><span id="Generator.table_sql-1000"><a href="#Generator.table_sql-1000"><span class="linenos">1000</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">[</span> -</span><span id="Generator.table_sql-1001"><a href="#Generator.table_sql-1001"><span class="linenos">1001</span></a> <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">"catalog"</span><span class="p">),</span> -</span><span id="Generator.table_sql-1002"><a href="#Generator.table_sql-1002"><span class="linenos">1002</span></a> <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">"db"</span><span class="p">),</span> -</span><span id="Generator.table_sql-1003"><a href="#Generator.table_sql-1003"><span class="linenos">1003</span></a> <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="Generator.table_sql-1004"><a href="#Generator.table_sql-1004"><span class="linenos">1004</span></a> <span class="p">]</span> -</span><span id="Generator.table_sql-1005"><a href="#Generator.table_sql-1005"><span class="linenos">1005</span></a> <span class="k">if</span> <span class="n">part</span> -</span><span id="Generator.table_sql-1006"><a href="#Generator.table_sql-1006"><span class="linenos">1006</span></a> <span class="p">)</span> -</span><span id="Generator.table_sql-1007"><a href="#Generator.table_sql-1007"><span class="linenos">1007</span></a> -</span><span id="Generator.table_sql-1008"><a href="#Generator.table_sql-1008"><span class="linenos">1008</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.table_sql-1009"><a href="#Generator.table_sql-1009"><span class="linenos">1009</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> -</span><span id="Generator.table_sql-1010"><a href="#Generator.table_sql-1010"><span class="linenos">1010</span></a> <span class="n">hints</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">"hints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">", "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.table_sql-1011"><a href="#Generator.table_sql-1011"><span class="linenos">1011</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH (</span><span class="si">{</span><span class="n">hints</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">hints</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.table_sql-1012"><a href="#Generator.table_sql-1012"><span class="linenos">1012</span></a> <span class="n">laterals</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">"laterals"</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="Generator.table_sql-1013"><a href="#Generator.table_sql-1013"><span class="linenos">1013</span></a> <span class="n">joins</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">"joins"</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="Generator.table_sql-1014"><a href="#Generator.table_sql-1014"><span class="linenos">1014</span></a> <span class="n">pivots</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">"pivots"</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="Generator.table_sql-1015"><a href="#Generator.table_sql-1015"><span class="linenos">1015</span></a> <span class="n">system_time</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">"system_time"</span><span class="p">)</span> -</span><span id="Generator.table_sql-1016"><a href="#Generator.table_sql-1016"><span class="linenos">1016</span></a> <span class="n">system_time</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'system_time'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">system_time</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.table_sql-1017"><a href="#Generator.table_sql-1017"><span class="linenos">1017</span></a> -</span><span id="Generator.table_sql-1018"><a href="#Generator.table_sql-1018"><span class="linenos">1018</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">system_time</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">hints</span><span class="si">}{</span><span class="n">laterals</span><span class="si">}{</span><span class="n">joins</span><span class="si">}{</span><span class="n">pivots</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.table_sql-993"><a href="#Generator.table_sql-993"><span class="linenos"> 993</span></a> <span class="k">def</span> <span class="nf">table_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">Table</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.table_sql-994"><a href="#Generator.table_sql-994"><span class="linenos"> 994</span></a> <span class="n">table</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator.table_sql-995"><a href="#Generator.table_sql-995"><span class="linenos"> 995</span></a> <span class="n">part</span> +</span><span id="Generator.table_sql-996"><a href="#Generator.table_sql-996"><span class="linenos"> 996</span></a> <span class="k">for</span> <span class="n">part</span> <span class="ow">in</span> <span class="p">[</span> +</span><span id="Generator.table_sql-997"><a href="#Generator.table_sql-997"><span class="linenos"> 997</span></a> <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">"catalog"</span><span class="p">),</span> +</span><span id="Generator.table_sql-998"><a href="#Generator.table_sql-998"><span class="linenos"> 998</span></a> <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">"db"</span><span class="p">),</span> +</span><span id="Generator.table_sql-999"><a href="#Generator.table_sql-999"><span class="linenos"> 999</span></a> <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="Generator.table_sql-1000"><a href="#Generator.table_sql-1000"><span class="linenos">1000</span></a> <span class="p">]</span> +</span><span id="Generator.table_sql-1001"><a href="#Generator.table_sql-1001"><span class="linenos">1001</span></a> <span class="k">if</span> <span class="n">part</span> +</span><span id="Generator.table_sql-1002"><a href="#Generator.table_sql-1002"><span class="linenos">1002</span></a> <span class="p">)</span> +</span><span id="Generator.table_sql-1003"><a href="#Generator.table_sql-1003"><span class="linenos">1003</span></a> +</span><span id="Generator.table_sql-1004"><a href="#Generator.table_sql-1004"><span class="linenos">1004</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.table_sql-1005"><a href="#Generator.table_sql-1005"><span class="linenos">1005</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> +</span><span id="Generator.table_sql-1006"><a href="#Generator.table_sql-1006"><span class="linenos">1006</span></a> <span class="n">hints</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">"hints"</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="s2">", "</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.table_sql-1007"><a href="#Generator.table_sql-1007"><span class="linenos">1007</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH (</span><span class="si">{</span><span class="n">hints</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">hints</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.table_sql-1008"><a href="#Generator.table_sql-1008"><span class="linenos">1008</span></a> <span class="n">laterals</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">"laterals"</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="Generator.table_sql-1009"><a href="#Generator.table_sql-1009"><span class="linenos">1009</span></a> <span class="n">joins</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">"joins"</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="Generator.table_sql-1010"><a href="#Generator.table_sql-1010"><span class="linenos">1010</span></a> <span class="n">pivots</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">"pivots"</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="Generator.table_sql-1011"><a href="#Generator.table_sql-1011"><span class="linenos">1011</span></a> <span class="n">system_time</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">"system_time"</span><span class="p">)</span> +</span><span id="Generator.table_sql-1012"><a href="#Generator.table_sql-1012"><span class="linenos">1012</span></a> <span class="n">system_time</span> <span class="o">=</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'system_time'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">system_time</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.table_sql-1013"><a href="#Generator.table_sql-1013"><span class="linenos">1013</span></a> +</span><span id="Generator.table_sql-1014"><a href="#Generator.table_sql-1014"><span class="linenos">1014</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">table</span><span class="si">}{</span><span class="n">system_time</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">hints</span><span class="si">}{</span><span class="n">laterals</span><span class="si">}{</span><span class="n">joins</span><span class="si">}{</span><span class="n">pivots</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6683,29 +6708,29 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.tablesample_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tablesample_sql-1020"><a href="#Generator.tablesample_sql-1020"><span class="linenos">1020</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.tablesample_sql-1021"><a href="#Generator.tablesample_sql-1021"><span class="linenos">1021</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="Generator.tablesample_sql-1022"><a href="#Generator.tablesample_sql-1022"><span class="linenos">1022</span></a> <span class="n">this</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1023"><a href="#Generator.tablesample_sql-1023"><span class="linenos">1023</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="s1">'alias'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.tablesample_sql-1024"><a href="#Generator.tablesample_sql-1024"><span class="linenos">1024</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.tablesample_sql-1025"><a href="#Generator.tablesample_sql-1025"><span class="linenos">1025</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1026"><a href="#Generator.tablesample_sql-1026"><span class="linenos">1026</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1027"><a href="#Generator.tablesample_sql-1027"><span class="linenos">1027</span></a> <span class="n">method</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">"method"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1028"><a href="#Generator.tablesample_sql-1028"><span class="linenos">1028</span></a> <span class="n">method</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">method</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">method</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1029"><a href="#Generator.tablesample_sql-1029"><span class="linenos">1029</span></a> <span class="n">numerator</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">"bucket_numerator"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1030"><a href="#Generator.tablesample_sql-1030"><span class="linenos">1030</span></a> <span class="n">denominator</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">"bucket_denominator"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1031"><a href="#Generator.tablesample_sql-1031"><span class="linenos">1031</span></a> <span class="n">field</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">"bucket_field"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1032"><a href="#Generator.tablesample_sql-1032"><span class="linenos">1032</span></a> <span class="n">field</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">field</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1033"><a href="#Generator.tablesample_sql-1033"><span class="linenos">1033</span></a> <span class="n">bucket</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"BUCKET </span><span class="si">{</span><span class="n">numerator</span><span class="si">}</span><span class="s2"> OUT OF </span><span class="si">{</span><span class="n">denominator</span><span class="si">}{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">numerator</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1034"><a href="#Generator.tablesample_sql-1034"><span class="linenos">1034</span></a> <span class="n">percent</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">"percent"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1035"><a href="#Generator.tablesample_sql-1035"><span class="linenos">1035</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">percent</span><span class="si">}</span><span class="s2"> PERCENT"</span> <span class="k">if</span> <span class="n">percent</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1036"><a href="#Generator.tablesample_sql-1036"><span class="linenos">1036</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1037"><a href="#Generator.tablesample_sql-1037"><span class="linenos">1037</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rows</span><span class="si">}</span><span class="s2"> ROWS"</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1038"><a href="#Generator.tablesample_sql-1038"><span class="linenos">1038</span></a> <span class="n">size</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">"size"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1039"><a href="#Generator.tablesample_sql-1039"><span class="linenos">1039</span></a> <span class="n">seed</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">"seed"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1040"><a href="#Generator.tablesample_sql-1040"><span class="linenos">1040</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">seed_prefix</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">seed</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">seed</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.tablesample_sql-1041"><a href="#Generator.tablesample_sql-1041"><span class="linenos">1041</span></a> <span class="n">kind</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">"kind"</span><span class="p">,</span> <span class="s2">"TABLESAMPLE"</span><span class="p">)</span> -</span><span id="Generator.tablesample_sql-1042"><a href="#Generator.tablesample_sql-1042"><span class="linenos">1042</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">method</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">bucket</span><span class="si">}{</span><span class="n">percent</span><span class="si">}{</span><span class="n">rows</span><span class="si">}{</span><span class="n">size</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">seed</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tablesample_sql-1016"><a href="#Generator.tablesample_sql-1016"><span class="linenos">1016</span></a> <span class="k">def</span> <span class="nf">tablesample_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">TableSample</span><span class="p">,</span> <span class="n">seed_prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"SEED"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.tablesample_sql-1017"><a href="#Generator.tablesample_sql-1017"><span class="linenos">1017</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="Generator.tablesample_sql-1018"><a href="#Generator.tablesample_sql-1018"><span class="linenos">1018</span></a> <span class="n">this</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="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1019"><a href="#Generator.tablesample_sql-1019"><span class="linenos">1019</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span><span class="w"> </span><span class="s1">'alias'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.tablesample_sql-1020"><a href="#Generator.tablesample_sql-1020"><span class="linenos">1020</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.tablesample_sql-1021"><a href="#Generator.tablesample_sql-1021"><span class="linenos">1021</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1022"><a href="#Generator.tablesample_sql-1022"><span class="linenos">1022</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1023"><a href="#Generator.tablesample_sql-1023"><span class="linenos">1023</span></a> <span class="n">method</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">"method"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1024"><a href="#Generator.tablesample_sql-1024"><span class="linenos">1024</span></a> <span class="n">method</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">method</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">method</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1025"><a href="#Generator.tablesample_sql-1025"><span class="linenos">1025</span></a> <span class="n">numerator</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">"bucket_numerator"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1026"><a href="#Generator.tablesample_sql-1026"><span class="linenos">1026</span></a> <span class="n">denominator</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">"bucket_denominator"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1027"><a href="#Generator.tablesample_sql-1027"><span class="linenos">1027</span></a> <span class="n">field</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">"bucket_field"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1028"><a href="#Generator.tablesample_sql-1028"><span class="linenos">1028</span></a> <span class="n">field</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">field</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1029"><a href="#Generator.tablesample_sql-1029"><span class="linenos">1029</span></a> <span class="n">bucket</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"BUCKET </span><span class="si">{</span><span class="n">numerator</span><span class="si">}</span><span class="s2"> OUT OF </span><span class="si">{</span><span class="n">denominator</span><span class="si">}{</span><span class="n">field</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">numerator</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1030"><a href="#Generator.tablesample_sql-1030"><span class="linenos">1030</span></a> <span class="n">percent</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">"percent"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1031"><a href="#Generator.tablesample_sql-1031"><span class="linenos">1031</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">percent</span><span class="si">}</span><span class="s2"> PERCENT"</span> <span class="k">if</span> <span class="n">percent</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1032"><a href="#Generator.tablesample_sql-1032"><span class="linenos">1032</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1033"><a href="#Generator.tablesample_sql-1033"><span class="linenos">1033</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">rows</span><span class="si">}</span><span class="s2"> ROWS"</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1034"><a href="#Generator.tablesample_sql-1034"><span class="linenos">1034</span></a> <span class="n">size</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">"size"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1035"><a href="#Generator.tablesample_sql-1035"><span class="linenos">1035</span></a> <span class="n">seed</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">"seed"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1036"><a href="#Generator.tablesample_sql-1036"><span class="linenos">1036</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">seed_prefix</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">seed</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">seed</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.tablesample_sql-1037"><a href="#Generator.tablesample_sql-1037"><span class="linenos">1037</span></a> <span class="n">kind</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">"kind"</span><span class="p">,</span> <span class="s2">"TABLESAMPLE"</span><span class="p">)</span> +</span><span id="Generator.tablesample_sql-1038"><a href="#Generator.tablesample_sql-1038"><span class="linenos">1038</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">method</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">bucket</span><span class="si">}{</span><span class="n">percent</span><span class="si">}{</span><span class="n">rows</span><span class="si">}{</span><span class="n">size</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">seed</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6723,15 +6748,15 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.pivot_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.pivot_sql-1044"><a href="#Generator.pivot_sql-1044"><span class="linenos">1044</span></a> <span class="k">def</span> <span class="nf">pivot_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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.pivot_sql-1045"><a href="#Generator.pivot_sql-1045"><span class="linenos">1045</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.pivot_sql-1046"><a href="#Generator.pivot_sql-1046"><span class="linenos">1046</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.pivot_sql-1047"><a href="#Generator.pivot_sql-1047"><span class="linenos">1047</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> -</span><span id="Generator.pivot_sql-1048"><a href="#Generator.pivot_sql-1048"><span class="linenos">1048</span></a> <span class="n">unpivot</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">"unpivot"</span><span class="p">)</span> -</span><span id="Generator.pivot_sql-1049"><a href="#Generator.pivot_sql-1049"><span class="linenos">1049</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="s2">"UNPIVOT"</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="s2">"PIVOT"</span> -</span><span id="Generator.pivot_sql-1050"><a href="#Generator.pivot_sql-1050"><span class="linenos">1050</span></a> <span class="n">expressions</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">"expressions"</span><span class="p">)</span> -</span><span id="Generator.pivot_sql-1051"><a href="#Generator.pivot_sql-1051"><span class="linenos">1051</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> -</span><span id="Generator.pivot_sql-1052"><a href="#Generator.pivot_sql-1052"><span class="linenos">1052</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">direction</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2"> FOR </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.pivot_sql-1040"><a href="#Generator.pivot_sql-1040"><span class="linenos">1040</span></a> <span class="k">def</span> <span class="nf">pivot_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">Pivot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.pivot_sql-1041"><a href="#Generator.pivot_sql-1041"><span class="linenos">1041</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.pivot_sql-1042"><a href="#Generator.pivot_sql-1042"><span class="linenos">1042</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.pivot_sql-1043"><a href="#Generator.pivot_sql-1043"><span class="linenos">1043</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> +</span><span id="Generator.pivot_sql-1044"><a href="#Generator.pivot_sql-1044"><span class="linenos">1044</span></a> <span class="n">unpivot</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">"unpivot"</span><span class="p">)</span> +</span><span id="Generator.pivot_sql-1045"><a href="#Generator.pivot_sql-1045"><span class="linenos">1045</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="s2">"UNPIVOT"</span> <span class="k">if</span> <span class="n">unpivot</span> <span class="k">else</span> <span class="s2">"PIVOT"</span> +</span><span id="Generator.pivot_sql-1046"><a href="#Generator.pivot_sql-1046"><span class="linenos">1046</span></a> <span class="n">expressions</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">"expressions"</span><span class="p">)</span> +</span><span id="Generator.pivot_sql-1047"><a href="#Generator.pivot_sql-1047"><span class="linenos">1047</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> +</span><span id="Generator.pivot_sql-1048"><a href="#Generator.pivot_sql-1048"><span class="linenos">1048</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">direction</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2"> FOR </span><span class="si">{</span><span class="n">field</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6749,8 +6774,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.tuple_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tuple_sql-1054"><a href="#Generator.tuple_sql-1054"><span class="linenos">1054</span></a> <span class="k">def</span> <span class="nf">tuple_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">Tuple</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.tuple_sql-1055"><a href="#Generator.tuple_sql-1055"><span class="linenos">1055</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tuple_sql-1050"><a href="#Generator.tuple_sql-1050"><span class="linenos">1050</span></a> <span class="k">def</span> <span class="nf">tuple_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">Tuple</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.tuple_sql-1051"><a href="#Generator.tuple_sql-1051"><span class="linenos">1051</span></a> <span class="k">return</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -6768,14 +6793,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.update_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.update_sql-1057"><a href="#Generator.update_sql-1057"><span class="linenos">1057</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.update_sql-1058"><a href="#Generator.update_sql-1058"><span class="linenos">1058</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.update_sql-1059"><a href="#Generator.update_sql-1059"><span class="linenos">1059</span></a> <span class="n">set_sql</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="Generator.update_sql-1060"><a href="#Generator.update_sql-1060"><span class="linenos">1060</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> -</span><span id="Generator.update_sql-1061"><a href="#Generator.update_sql-1061"><span class="linenos">1061</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> -</span><span id="Generator.update_sql-1062"><a href="#Generator.update_sql-1062"><span class="linenos">1062</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> -</span><span id="Generator.update_sql-1063"><a href="#Generator.update_sql-1063"><span class="linenos">1063</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.update_sql-1064"><a href="#Generator.update_sql-1064"><span class="linenos">1064</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.update_sql-1053"><a href="#Generator.update_sql-1053"><span class="linenos">1053</span></a> <span class="k">def</span> <span class="nf">update_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">Update</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.update_sql-1054"><a href="#Generator.update_sql-1054"><span class="linenos">1054</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.update_sql-1055"><a href="#Generator.update_sql-1055"><span class="linenos">1055</span></a> <span class="n">set_sql</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="Generator.update_sql-1056"><a href="#Generator.update_sql-1056"><span class="linenos">1056</span></a> <span class="n">from_sql</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">"from"</span><span class="p">)</span> +</span><span id="Generator.update_sql-1057"><a href="#Generator.update_sql-1057"><span class="linenos">1057</span></a> <span class="n">where_sql</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">"where"</span><span class="p">)</span> +</span><span id="Generator.update_sql-1058"><a href="#Generator.update_sql-1058"><span class="linenos">1058</span></a> <span class="n">returning</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">"returning"</span><span class="p">)</span> +</span><span id="Generator.update_sql-1059"><a href="#Generator.update_sql-1059"><span class="linenos">1059</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET </span><span class="si">{</span><span class="n">set_sql</span><span class="si">}{</span><span class="n">from_sql</span><span class="si">}{</span><span class="n">where_sql</span><span class="si">}{</span><span class="n">returning</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.update_sql-1060"><a href="#Generator.update_sql-1060"><span class="linenos">1060</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -6793,16 +6818,16 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.values_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.values_sql-1066"><a href="#Generator.values_sql-1066"><span class="linenos">1066</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.values_sql-1067"><a href="#Generator.values_sql-1067"><span class="linenos">1067</span></a> <span class="n">args</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><span id="Generator.values_sql-1068"><a href="#Generator.values_sql-1068"><span class="linenos">1068</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.values_sql-1069"><a href="#Generator.values_sql-1069"><span class="linenos">1069</span></a> <span class="n">values</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"VALUES</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">args</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.values_sql-1070"><a href="#Generator.values_sql-1070"><span class="linenos">1070</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.values_sql-1071"><a href="#Generator.values_sql-1071"><span class="linenos">1071</span></a> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">values</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.values_sql-1072"><a href="#Generator.values_sql-1072"><span class="linenos">1072</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">WRAP_DERIVED_VALUES</span> <span class="ow">and</span> <span class="p">(</span><span class="n">alias</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">))</span> -</span><span id="Generator.values_sql-1073"><a href="#Generator.values_sql-1073"><span class="linenos">1073</span></a> <span class="k">else</span> <span class="n">values</span> -</span><span id="Generator.values_sql-1074"><a href="#Generator.values_sql-1074"><span class="linenos">1074</span></a> <span class="p">)</span> -</span><span id="Generator.values_sql-1075"><a href="#Generator.values_sql-1075"><span class="linenos">1075</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">values</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">values</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.values_sql-1062"><a href="#Generator.values_sql-1062"><span class="linenos">1062</span></a> <span class="k">def</span> <span class="nf">values_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">Values</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.values_sql-1063"><a href="#Generator.values_sql-1063"><span class="linenos">1063</span></a> <span class="n">args</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><span id="Generator.values_sql-1064"><a href="#Generator.values_sql-1064"><span class="linenos">1064</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.values_sql-1065"><a href="#Generator.values_sql-1065"><span class="linenos">1065</span></a> <span class="n">values</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"VALUES</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</span><span class="n">args</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.values_sql-1066"><a href="#Generator.values_sql-1066"><span class="linenos">1066</span></a> <span class="n">values</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.values_sql-1067"><a href="#Generator.values_sql-1067"><span class="linenos">1067</span></a> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">values</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.values_sql-1068"><a href="#Generator.values_sql-1068"><span class="linenos">1068</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">WRAP_DERIVED_VALUES</span> <span class="ow">and</span> <span class="p">(</span><span class="n">alias</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">))</span> +</span><span id="Generator.values_sql-1069"><a href="#Generator.values_sql-1069"><span class="linenos">1069</span></a> <span class="k">else</span> <span class="n">values</span> +</span><span id="Generator.values_sql-1070"><a href="#Generator.values_sql-1070"><span class="linenos">1070</span></a> <span class="p">)</span> +</span><span id="Generator.values_sql-1071"><a href="#Generator.values_sql-1071"><span class="linenos">1071</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">values</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">values</span> </span></pre></div> @@ -6820,8 +6845,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.var_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.var_sql-1077"><a href="#Generator.var_sql-1077"><span class="linenos">1077</span></a> <span class="k">def</span> <span class="nf">var_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">Var</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.var_sql-1078"><a href="#Generator.var_sql-1078"><span class="linenos">1078</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.var_sql-1073"><a href="#Generator.var_sql-1073"><span class="linenos">1073</span></a> <span class="k">def</span> <span class="nf">var_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">Var</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.var_sql-1074"><a href="#Generator.var_sql-1074"><span class="linenos">1074</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></pre></div> @@ -6839,10 +6864,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.into_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.into_sql-1080"><a href="#Generator.into_sql-1080"><span class="linenos">1080</span></a> <span class="k">def</span> <span class="nf">into_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">Into</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.into_sql-1081"><a href="#Generator.into_sql-1081"><span class="linenos">1081</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.into_sql-1082"><a href="#Generator.into_sql-1082"><span class="linenos">1082</span></a> <span class="n">unlogged</span> <span class="o">=</span> <span class="s2">" UNLOGGED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unlogged"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.into_sql-1083"><a href="#Generator.into_sql-1083"><span class="linenos">1083</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'INTO'</span><span class="p">)</span><span class="si">}{</span><span class="n">temporary</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">unlogged</span><span class="si">}</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.into_sql-1076"><a href="#Generator.into_sql-1076"><span class="linenos">1076</span></a> <span class="k">def</span> <span class="nf">into_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">Into</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.into_sql-1077"><a href="#Generator.into_sql-1077"><span class="linenos">1077</span></a> <span class="n">temporary</span> <span class="o">=</span> <span class="s2">" TEMPORARY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"temporary"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.into_sql-1078"><a href="#Generator.into_sql-1078"><span class="linenos">1078</span></a> <span class="n">unlogged</span> <span class="o">=</span> <span class="s2">" UNLOGGED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"unlogged"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.into_sql-1079"><a href="#Generator.into_sql-1079"><span class="linenos">1079</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'INTO'</span><span class="p">)</span><span class="si">}{</span><span class="n">temporary</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="n">unlogged</span><span class="si">}</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">expression</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></pre></div> @@ -6860,9 +6885,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.from_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.from_sql-1085"><a href="#Generator.from_sql-1085"><span class="linenos">1085</span></a> <span class="k">def</span> <span class="nf">from_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">From</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.from_sql-1086"><a href="#Generator.from_sql-1086"><span class="linenos">1086</span></a> <span class="n">expressions</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="Generator.from_sql-1087"><a href="#Generator.from_sql-1087"><span class="linenos">1087</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FROM'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.from_sql-1081"><a href="#Generator.from_sql-1081"><span class="linenos">1081</span></a> <span class="k">def</span> <span class="nf">from_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">From</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.from_sql-1082"><a href="#Generator.from_sql-1082"><span class="linenos">1082</span></a> <span class="n">expressions</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="Generator.from_sql-1083"><a href="#Generator.from_sql-1083"><span class="linenos">1083</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'FROM'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6880,33 +6905,33 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.group_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.group_sql-1089"><a href="#Generator.group_sql-1089"><span class="linenos">1089</span></a> <span class="k">def</span> <span class="nf">group_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">Group</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.group_sql-1090"><a href="#Generator.group_sql-1090"><span class="linenos">1090</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"GROUP BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.group_sql-1091"><a href="#Generator.group_sql-1091"><span class="linenos">1091</span></a> <span class="n">grouping_sets</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">"grouping_sets"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator.group_sql-1092"><a href="#Generator.group_sql-1092"><span class="linenos">1092</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.group_sql-1093"><a href="#Generator.group_sql-1093"><span class="linenos">1093</span></a> <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">seg</span><span class="p">(</span><span class="s1">'GROUPING SETS'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">grouping_sets</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.group_sql-1094"><a href="#Generator.group_sql-1094"><span class="linenos">1094</span></a> <span class="p">)</span> -</span><span id="Generator.group_sql-1095"><a href="#Generator.group_sql-1095"><span class="linenos">1095</span></a> -</span><span id="Generator.group_sql-1096"><a href="#Generator.group_sql-1096"><span class="linenos">1096</span></a> <span class="n">cube</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">"cube"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Generator.group_sql-1097"><a href="#Generator.group_sql-1097"><span class="linenos">1097</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Generator.group_sql-1098"><a href="#Generator.group_sql-1098"><span class="linenos">1098</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.group_sql-1099"><a href="#Generator.group_sql-1099"><span class="linenos">1099</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.group_sql-1100"><a href="#Generator.group_sql-1100"><span class="linenos">1100</span></a> <span class="n">cube_sql</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">"cube"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator.group_sql-1101"><a href="#Generator.group_sql-1101"><span class="linenos">1101</span></a> <span class="n">cube_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">cube_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">cube_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.group_sql-1102"><a href="#Generator.group_sql-1102"><span class="linenos">1102</span></a> -</span><span id="Generator.group_sql-1103"><a href="#Generator.group_sql-1103"><span class="linenos">1103</span></a> <span class="n">rollup</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">"rollup"</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Generator.group_sql-1104"><a href="#Generator.group_sql-1104"><span class="linenos">1104</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">rollup</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Generator.group_sql-1105"><a href="#Generator.group_sql-1105"><span class="linenos">1105</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.group_sql-1106"><a href="#Generator.group_sql-1106"><span class="linenos">1106</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.group_sql-1107"><a href="#Generator.group_sql-1107"><span class="linenos">1107</span></a> <span class="n">rollup_sql</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">"rollup"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator.group_sql-1108"><a href="#Generator.group_sql-1108"><span class="linenos">1108</span></a> <span class="n">rollup_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">rollup_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">rollup_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.group_sql-1109"><a href="#Generator.group_sql-1109"><span class="linenos">1109</span></a> -</span><span id="Generator.group_sql-1110"><a href="#Generator.group_sql-1110"><span class="linenos">1110</span></a> <span class="n">groupings</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">,</span> <span class="n">cube_sql</span><span class="p">,</span> <span class="n">rollup_sql</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="Generator.group_sql-1111"><a href="#Generator.group_sql-1111"><span class="linenos">1111</span></a> -</span><span id="Generator.group_sql-1112"><a href="#Generator.group_sql-1112"><span class="linenos">1112</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">"expressions"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupings</span><span class="p">:</span> -</span><span id="Generator.group_sql-1113"><a href="#Generator.group_sql-1113"><span class="linenos">1113</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}</span><span class="s2">,"</span> -</span><span id="Generator.group_sql-1114"><a href="#Generator.group_sql-1114"><span class="linenos">1114</span></a> -</span><span id="Generator.group_sql-1115"><a href="#Generator.group_sql-1115"><span class="linenos">1115</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="n">groupings</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.group_sql-1085"><a href="#Generator.group_sql-1085"><span class="linenos">1085</span></a> <span class="k">def</span> <span class="nf">group_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">Group</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.group_sql-1086"><a href="#Generator.group_sql-1086"><span class="linenos">1086</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"GROUP BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.group_sql-1087"><a href="#Generator.group_sql-1087"><span class="linenos">1087</span></a> <span class="n">grouping_sets</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">"grouping_sets"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator.group_sql-1088"><a href="#Generator.group_sql-1088"><span class="linenos">1088</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.group_sql-1089"><a href="#Generator.group_sql-1089"><span class="linenos">1089</span></a> <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">seg</span><span class="p">(</span><span class="s1">'GROUPING SETS'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">grouping_sets</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.group_sql-1090"><a href="#Generator.group_sql-1090"><span class="linenos">1090</span></a> <span class="p">)</span> +</span><span id="Generator.group_sql-1091"><a href="#Generator.group_sql-1091"><span class="linenos">1091</span></a> +</span><span id="Generator.group_sql-1092"><a href="#Generator.group_sql-1092"><span class="linenos">1092</span></a> <span class="n">cube</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">"cube"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Generator.group_sql-1093"><a href="#Generator.group_sql-1093"><span class="linenos">1093</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">cube</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Generator.group_sql-1094"><a href="#Generator.group_sql-1094"><span class="linenos">1094</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.group_sql-1095"><a href="#Generator.group_sql-1095"><span class="linenos">1095</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.group_sql-1096"><a href="#Generator.group_sql-1096"><span class="linenos">1096</span></a> <span class="n">cube_sql</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">"cube"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator.group_sql-1097"><a href="#Generator.group_sql-1097"><span class="linenos">1097</span></a> <span class="n">cube_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'CUBE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">cube_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">cube_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.group_sql-1098"><a href="#Generator.group_sql-1098"><span class="linenos">1098</span></a> +</span><span id="Generator.group_sql-1099"><a href="#Generator.group_sql-1099"><span class="linenos">1099</span></a> <span class="n">rollup</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">"rollup"</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Generator.group_sql-1100"><a href="#Generator.group_sql-1100"><span class="linenos">1100</span></a> <span class="k">if</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">rollup</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="ow">is</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Generator.group_sql-1101"><a href="#Generator.group_sql-1101"><span class="linenos">1101</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'WITH ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.group_sql-1102"><a href="#Generator.group_sql-1102"><span class="linenos">1102</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.group_sql-1103"><a href="#Generator.group_sql-1103"><span class="linenos">1103</span></a> <span class="n">rollup_sql</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">"rollup"</span><span class="p">,</span> <span class="n">indent</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator.group_sql-1104"><a href="#Generator.group_sql-1104"><span class="linenos">1104</span></a> <span class="n">rollup_sql</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="s1">'ROLLUP'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">rollup_sql</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">rollup_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.group_sql-1105"><a href="#Generator.group_sql-1105"><span class="linenos">1105</span></a> +</span><span id="Generator.group_sql-1106"><a href="#Generator.group_sql-1106"><span class="linenos">1106</span></a> <span class="n">groupings</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">,</span> <span class="n">cube_sql</span><span class="p">,</span> <span class="n">rollup_sql</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="Generator.group_sql-1107"><a href="#Generator.group_sql-1107"><span class="linenos">1107</span></a> +</span><span id="Generator.group_sql-1108"><a href="#Generator.group_sql-1108"><span class="linenos">1108</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">"expressions"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">groupings</span><span class="p">:</span> +</span><span id="Generator.group_sql-1109"><a href="#Generator.group_sql-1109"><span class="linenos">1109</span></a> <span class="n">group_by</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}</span><span class="s2">,"</span> +</span><span id="Generator.group_sql-1110"><a href="#Generator.group_sql-1110"><span class="linenos">1110</span></a> +</span><span id="Generator.group_sql-1111"><a href="#Generator.group_sql-1111"><span class="linenos">1111</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">group_by</span><span class="si">}{</span><span class="n">groupings</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6924,9 +6949,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.having_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.having_sql-1117"><a href="#Generator.having_sql-1117"><span class="linenos">1117</span></a> <span class="k">def</span> <span class="nf">having_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">Having</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.having_sql-1118"><a href="#Generator.having_sql-1118"><span class="linenos">1118</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="Generator.having_sql-1119"><a href="#Generator.having_sql-1119"><span class="linenos">1119</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'HAVING'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.having_sql-1113"><a href="#Generator.having_sql-1113"><span class="linenos">1113</span></a> <span class="k">def</span> <span class="nf">having_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">Having</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.having_sql-1114"><a href="#Generator.having_sql-1114"><span class="linenos">1114</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="Generator.having_sql-1115"><a href="#Generator.having_sql-1115"><span class="linenos">1115</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'HAVING'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6944,36 +6969,36 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.join_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.join_sql-1121"><a href="#Generator.join_sql-1121"><span class="linenos">1121</span></a> <span class="k">def</span> <span class="nf">join_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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.join_sql-1122"><a href="#Generator.join_sql-1122"><span class="linenos">1122</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span> -</span><span id="Generator.join_sql-1123"><a href="#Generator.join_sql-1123"><span class="linenos">1123</span></a> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator.join_sql-1124"><a href="#Generator.join_sql-1124"><span class="linenos">1124</span></a> <span class="n">op</span> -</span><span id="Generator.join_sql-1125"><a href="#Generator.join_sql-1125"><span class="linenos">1125</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="p">(</span> -</span><span id="Generator.join_sql-1126"><a href="#Generator.join_sql-1126"><span class="linenos">1126</span></a> <span class="s2">"NATURAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.join_sql-1127"><a href="#Generator.join_sql-1127"><span class="linenos">1127</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">side</span><span class="p">,</span> -</span><span id="Generator.join_sql-1128"><a href="#Generator.join_sql-1128"><span class="linenos">1128</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">kind</span><span class="p">,</span> -</span><span id="Generator.join_sql-1129"><a href="#Generator.join_sql-1129"><span class="linenos">1129</span></a> <span class="s2">"JOIN"</span><span class="p">,</span> -</span><span id="Generator.join_sql-1130"><a href="#Generator.join_sql-1130"><span class="linenos">1130</span></a> <span class="p">)</span> -</span><span id="Generator.join_sql-1131"><a href="#Generator.join_sql-1131"><span class="linenos">1131</span></a> <span class="k">if</span> <span class="n">op</span> -</span><span id="Generator.join_sql-1132"><a href="#Generator.join_sql-1132"><span class="linenos">1132</span></a> <span class="p">)</span> -</span><span id="Generator.join_sql-1133"><a href="#Generator.join_sql-1133"><span class="linenos">1133</span></a> <span class="p">)</span> -</span><span id="Generator.join_sql-1134"><a href="#Generator.join_sql-1134"><span class="linenos">1134</span></a> <span class="n">on_sql</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">"on"</span><span class="p">)</span> -</span><span id="Generator.join_sql-1135"><a href="#Generator.join_sql-1135"><span class="linenos">1135</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> -</span><span id="Generator.join_sql-1136"><a href="#Generator.join_sql-1136"><span class="linenos">1136</span></a> -</span><span id="Generator.join_sql-1137"><a href="#Generator.join_sql-1137"><span class="linenos">1137</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">on_sql</span> <span class="ow">and</span> <span class="n">using</span><span class="p">:</span> -</span><span id="Generator.join_sql-1138"><a href="#Generator.join_sql-1138"><span class="linenos">1138</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="o">*</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">column</span><span class="p">)</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">using</span><span class="p">))</span> -</span><span id="Generator.join_sql-1139"><a href="#Generator.join_sql-1139"><span class="linenos">1139</span></a> -</span><span id="Generator.join_sql-1140"><a href="#Generator.join_sql-1140"><span class="linenos">1140</span></a> <span class="k">if</span> <span class="n">on_sql</span><span class="p">:</span> -</span><span id="Generator.join_sql-1141"><a href="#Generator.join_sql-1141"><span class="linenos">1141</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">on_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.join_sql-1142"><a href="#Generator.join_sql-1142"><span class="linenos">1142</span></a> <span class="n">space</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.join_sql-1143"><a href="#Generator.join_sql-1143"><span class="linenos">1143</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> -</span><span id="Generator.join_sql-1144"><a href="#Generator.join_sql-1144"><span class="linenos">1144</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">USING (</span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.join_sql-1145"><a href="#Generator.join_sql-1145"><span class="linenos">1145</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.join_sql-1146"><a href="#Generator.join_sql-1146"><span class="linenos">1146</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.join_sql-1147"><a href="#Generator.join_sql-1147"><span class="linenos">1147</span></a> -</span><span id="Generator.join_sql-1148"><a href="#Generator.join_sql-1148"><span class="linenos">1148</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.join_sql-1149"><a href="#Generator.join_sql-1149"><span class="linenos">1149</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> -</span><span id="Generator.join_sql-1150"><a href="#Generator.join_sql-1150"><span class="linenos">1150</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">op_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_sql</span><span class="si">}{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.join_sql-1117"><a href="#Generator.join_sql-1117"><span class="linenos">1117</span></a> <span class="k">def</span> <span class="nf">join_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">Join</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.join_sql-1118"><a href="#Generator.join_sql-1118"><span class="linenos">1118</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span> +</span><span id="Generator.join_sql-1119"><a href="#Generator.join_sql-1119"><span class="linenos">1119</span></a> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator.join_sql-1120"><a href="#Generator.join_sql-1120"><span class="linenos">1120</span></a> <span class="n">op</span> +</span><span id="Generator.join_sql-1121"><a href="#Generator.join_sql-1121"><span class="linenos">1121</span></a> <span class="k">for</span> <span class="n">op</span> <span class="ow">in</span> <span class="p">(</span> +</span><span id="Generator.join_sql-1122"><a href="#Generator.join_sql-1122"><span class="linenos">1122</span></a> <span class="s2">"NATURAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"natural"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.join_sql-1123"><a href="#Generator.join_sql-1123"><span class="linenos">1123</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">side</span><span class="p">,</span> +</span><span id="Generator.join_sql-1124"><a href="#Generator.join_sql-1124"><span class="linenos">1124</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Generator.join_sql-1125"><a href="#Generator.join_sql-1125"><span class="linenos">1125</span></a> <span class="s2">"JOIN"</span><span class="p">,</span> +</span><span id="Generator.join_sql-1126"><a href="#Generator.join_sql-1126"><span class="linenos">1126</span></a> <span class="p">)</span> +</span><span id="Generator.join_sql-1127"><a href="#Generator.join_sql-1127"><span class="linenos">1127</span></a> <span class="k">if</span> <span class="n">op</span> +</span><span id="Generator.join_sql-1128"><a href="#Generator.join_sql-1128"><span class="linenos">1128</span></a> <span class="p">)</span> +</span><span id="Generator.join_sql-1129"><a href="#Generator.join_sql-1129"><span class="linenos">1129</span></a> <span class="p">)</span> +</span><span id="Generator.join_sql-1130"><a href="#Generator.join_sql-1130"><span class="linenos">1130</span></a> <span class="n">on_sql</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">"on"</span><span class="p">)</span> +</span><span id="Generator.join_sql-1131"><a href="#Generator.join_sql-1131"><span class="linenos">1131</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> +</span><span id="Generator.join_sql-1132"><a href="#Generator.join_sql-1132"><span class="linenos">1132</span></a> +</span><span id="Generator.join_sql-1133"><a href="#Generator.join_sql-1133"><span class="linenos">1133</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">on_sql</span> <span class="ow">and</span> <span class="n">using</span><span class="p">:</span> +</span><span id="Generator.join_sql-1134"><a href="#Generator.join_sql-1134"><span class="linenos">1134</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="n">csv</span><span class="p">(</span><span class="o">*</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">column</span><span class="p">)</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">using</span><span class="p">))</span> +</span><span id="Generator.join_sql-1135"><a href="#Generator.join_sql-1135"><span class="linenos">1135</span></a> +</span><span id="Generator.join_sql-1136"><a href="#Generator.join_sql-1136"><span class="linenos">1136</span></a> <span class="k">if</span> <span class="n">on_sql</span><span class="p">:</span> +</span><span id="Generator.join_sql-1137"><a href="#Generator.join_sql-1137"><span class="linenos">1137</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">on_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.join_sql-1138"><a href="#Generator.join_sql-1138"><span class="linenos">1138</span></a> <span class="n">space</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.join_sql-1139"><a href="#Generator.join_sql-1139"><span class="linenos">1139</span></a> <span class="k">if</span> <span class="n">using</span><span class="p">:</span> +</span><span id="Generator.join_sql-1140"><a href="#Generator.join_sql-1140"><span class="linenos">1140</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">USING (</span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.join_sql-1141"><a href="#Generator.join_sql-1141"><span class="linenos">1141</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.join_sql-1142"><a href="#Generator.join_sql-1142"><span class="linenos">1142</span></a> <span class="n">on_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">space</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.join_sql-1143"><a href="#Generator.join_sql-1143"><span class="linenos">1143</span></a> +</span><span id="Generator.join_sql-1144"><a href="#Generator.join_sql-1144"><span class="linenos">1144</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.join_sql-1145"><a href="#Generator.join_sql-1145"><span class="linenos">1145</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> +</span><span id="Generator.join_sql-1146"><a href="#Generator.join_sql-1146"><span class="linenos">1146</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}{</span><span class="n">op_sql</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this_sql</span><span class="si">}{</span><span class="n">on_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -6991,10 +7016,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.lambda_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lambda_sql-1152"><a href="#Generator.lambda_sql-1152"><span class="linenos">1152</span></a> <span class="k">def</span> <span class="nf">lambda_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">Lambda</span><span class="p">,</span> <span class="n">arrow_sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"->"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.lambda_sql-1153"><a href="#Generator.lambda_sql-1153"><span class="linenos">1153</span></a> <span class="n">args</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="Generator.lambda_sql-1154"><a href="#Generator.lambda_sql-1154"><span class="linenos">1154</span></a> <span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">args</span> -</span><span id="Generator.lambda_sql-1155"><a href="#Generator.lambda_sql-1155"><span class="linenos">1155</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">arrow_sep</span><span class="si">}</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lambda_sql-1148"><a href="#Generator.lambda_sql-1148"><span class="linenos">1148</span></a> <span class="k">def</span> <span class="nf">lambda_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">Lambda</span><span class="p">,</span> <span class="n">arrow_sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"->"</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.lambda_sql-1149"><a href="#Generator.lambda_sql-1149"><span class="linenos">1149</span></a> <span class="n">args</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="Generator.lambda_sql-1150"><a href="#Generator.lambda_sql-1150"><span class="linenos">1150</span></a> <span class="n">args</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">args</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">","</span><span class="p">))</span> <span class="o">></span> <span class="mi">1</span> <span class="k">else</span> <span class="n">args</span> +</span><span id="Generator.lambda_sql-1151"><a href="#Generator.lambda_sql-1151"><span class="linenos">1151</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">arrow_sep</span><span class="si">}</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">expression</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></pre></div> @@ -7012,23 +7037,23 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.lateral_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lateral_sql-1157"><a href="#Generator.lateral_sql-1157"><span class="linenos">1157</span></a> <span class="k">def</span> <span class="nf">lateral_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">Lateral</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.lateral_sql-1158"><a href="#Generator.lateral_sql-1158"><span class="linenos">1158</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.lateral_sql-1159"><a href="#Generator.lateral_sql-1159"><span class="linenos">1159</span></a> -</span><span id="Generator.lateral_sql-1160"><a href="#Generator.lateral_sql-1160"><span class="linenos">1160</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> -</span><span id="Generator.lateral_sql-1161"><a href="#Generator.lateral_sql-1161"><span class="linenos">1161</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.lateral_sql-1162"><a href="#Generator.lateral_sql-1162"><span class="linenos">1162</span></a> -</span><span id="Generator.lateral_sql-1163"><a href="#Generator.lateral_sql-1163"><span class="linenos">1163</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">"view"</span><span class="p">):</span> -</span><span id="Generator.lateral_sql-1164"><a href="#Generator.lateral_sql-1164"><span class="linenos">1164</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span> -</span><span id="Generator.lateral_sql-1165"><a href="#Generator.lateral_sql-1165"><span class="linenos">1165</span></a> <span class="n">columns</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">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="Generator.lateral_sql-1166"><a href="#Generator.lateral_sql-1166"><span class="linenos">1166</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">alias</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.lateral_sql-1167"><a href="#Generator.lateral_sql-1167"><span class="linenos">1167</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.lateral_sql-1168"><a href="#Generator.lateral_sql-1168"><span class="linenos">1168</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"LATERAL VIEW</span><span class="si">{</span><span class="s1">' OUTER'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'outer'</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">"</span><span class="p">)</span> -</span><span id="Generator.lateral_sql-1169"><a href="#Generator.lateral_sql-1169"><span class="linenos">1169</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">table</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.lateral_sql-1170"><a href="#Generator.lateral_sql-1170"><span class="linenos">1170</span></a> -</span><span id="Generator.lateral_sql-1171"><a href="#Generator.lateral_sql-1171"><span class="linenos">1171</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.lateral_sql-1172"><a href="#Generator.lateral_sql-1172"><span class="linenos">1172</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> -</span><span id="Generator.lateral_sql-1173"><a href="#Generator.lateral_sql-1173"><span class="linenos">1173</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lateral_sql-1153"><a href="#Generator.lateral_sql-1153"><span class="linenos">1153</span></a> <span class="k">def</span> <span class="nf">lateral_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">Lateral</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.lateral_sql-1154"><a href="#Generator.lateral_sql-1154"><span class="linenos">1154</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.lateral_sql-1155"><a href="#Generator.lateral_sql-1155"><span class="linenos">1155</span></a> +</span><span id="Generator.lateral_sql-1156"><a href="#Generator.lateral_sql-1156"><span class="linenos">1156</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> +</span><span id="Generator.lateral_sql-1157"><a href="#Generator.lateral_sql-1157"><span class="linenos">1157</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.lateral_sql-1158"><a href="#Generator.lateral_sql-1158"><span class="linenos">1158</span></a> +</span><span id="Generator.lateral_sql-1159"><a href="#Generator.lateral_sql-1159"><span class="linenos">1159</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">"view"</span><span class="p">):</span> +</span><span id="Generator.lateral_sql-1160"><a href="#Generator.lateral_sql-1160"><span class="linenos">1160</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"alias"</span><span class="p">]</span> +</span><span id="Generator.lateral_sql-1161"><a href="#Generator.lateral_sql-1161"><span class="linenos">1161</span></a> <span class="n">columns</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">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="Generator.lateral_sql-1162"><a href="#Generator.lateral_sql-1162"><span class="linenos">1162</span></a> <span class="n">table</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">alias</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">alias</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.lateral_sql-1163"><a href="#Generator.lateral_sql-1163"><span class="linenos">1163</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.lateral_sql-1164"><a href="#Generator.lateral_sql-1164"><span class="linenos">1164</span></a> <span class="n">op_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"LATERAL VIEW</span><span class="si">{</span><span class="s1">' OUTER'</span><span class="w"> </span><span class="k">if</span><span class="w"> </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="s1">'outer'</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">"</span><span class="p">)</span> +</span><span id="Generator.lateral_sql-1165"><a href="#Generator.lateral_sql-1165"><span class="linenos">1165</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op_sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">table</span><span class="si">}{</span><span class="n">columns</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.lateral_sql-1166"><a href="#Generator.lateral_sql-1166"><span class="linenos">1166</span></a> +</span><span id="Generator.lateral_sql-1167"><a href="#Generator.lateral_sql-1167"><span class="linenos">1167</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.lateral_sql-1168"><a href="#Generator.lateral_sql-1168"><span class="linenos">1168</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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="s2">""</span> +</span><span id="Generator.lateral_sql-1169"><a href="#Generator.lateral_sql-1169"><span class="linenos">1169</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LATERAL </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7046,9 +7071,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.limit_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.limit_sql-1175"><a href="#Generator.limit_sql-1175"><span class="linenos">1175</span></a> <span class="k">def</span> <span class="nf">limit_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">Limit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.limit_sql-1176"><a href="#Generator.limit_sql-1176"><span class="linenos">1176</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.limit_sql-1177"><a href="#Generator.limit_sql-1177"><span class="linenos">1177</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'LIMIT'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.limit_sql-1171"><a href="#Generator.limit_sql-1171"><span class="linenos">1171</span></a> <span class="k">def</span> <span class="nf">limit_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">Limit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.limit_sql-1172"><a href="#Generator.limit_sql-1172"><span class="linenos">1172</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.limit_sql-1173"><a href="#Generator.limit_sql-1173"><span class="linenos">1173</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'LIMIT'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7066,9 +7091,57 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.offset_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.offset_sql-1179"><a href="#Generator.offset_sql-1179"><span class="linenos">1179</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.offset_sql-1180"><a href="#Generator.offset_sql-1180"><span class="linenos">1180</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.offset_sql-1181"><a href="#Generator.offset_sql-1181"><span class="linenos">1181</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'OFFSET'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.offset_sql-1175"><a href="#Generator.offset_sql-1175"><span class="linenos">1175</span></a> <span class="k">def</span> <span class="nf">offset_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">Offset</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.offset_sql-1176"><a href="#Generator.offset_sql-1176"><span class="linenos">1176</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.offset_sql-1177"><a href="#Generator.offset_sql-1177"><span class="linenos">1177</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">'OFFSET'</span><span class="p">)</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span></pre></div> + + + + + </div> + <div id="Generator.setitem_sql" class="classattr"> + <input id="Generator.setitem_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">setitem_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#SetItem">sqlglot.expressions.SetItem</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="Generator.setitem_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Generator.setitem_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.setitem_sql-1179"><a href="#Generator.setitem_sql-1179"><span class="linenos">1179</span></a> <span class="k">def</span> <span class="nf">setitem_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">SetItem</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.setitem_sql-1180"><a href="#Generator.setitem_sql-1180"><span class="linenos">1180</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator.setitem_sql-1181"><a href="#Generator.setitem_sql-1181"><span class="linenos">1181</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.setitem_sql-1182"><a href="#Generator.setitem_sql-1182"><span class="linenos">1182</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.setitem_sql-1183"><a href="#Generator.setitem_sql-1183"><span class="linenos">1183</span></a> <span class="n">expressions</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><span id="Generator.setitem_sql-1184"><a href="#Generator.setitem_sql-1184"><span class="linenos">1184</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> +</span><span id="Generator.setitem_sql-1185"><a href="#Generator.setitem_sql-1185"><span class="linenos">1185</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.setitem_sql-1186"><a href="#Generator.setitem_sql-1186"><span class="linenos">1186</span></a> <span class="n">global_</span> <span class="o">=</span> <span class="s2">"GLOBAL "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.setitem_sql-1187"><a href="#Generator.setitem_sql-1187"><span class="linenos">1187</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">global_</span><span class="si">}{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> +</span></pre></div> + + + + + </div> + <div id="Generator.set_sql" class="classattr"> + <input id="Generator.set_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">set_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#Set">sqlglot.expressions.Set</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="Generator.set_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Generator.set_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.set_sql-1189"><a href="#Generator.set_sql-1189"><span class="linenos">1189</span></a> <span class="k">def</span> <span class="nf">set_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">Set</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.set_sql-1190"><a href="#Generator.set_sql-1190"><span class="linenos">1190</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.set_sql-1191"><a href="#Generator.set_sql-1191"><span class="linenos">1191</span></a> <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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.set_sql-1192"><a href="#Generator.set_sql-1192"><span class="linenos">1192</span></a> <span class="p">)</span> +</span><span id="Generator.set_sql-1193"><a href="#Generator.set_sql-1193"><span class="linenos">1193</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"SET</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7086,13 +7159,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.lock_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lock_sql-1183"><a href="#Generator.lock_sql-1183"><span class="linenos">1183</span></a> <span class="k">def</span> <span class="nf">lock_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">Lock</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.lock_sql-1184"><a href="#Generator.lock_sql-1184"><span class="linenos">1184</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">LOCKING_READS_SUPPORTED</span><span class="p">:</span> -</span><span id="Generator.lock_sql-1185"><a href="#Generator.lock_sql-1185"><span class="linenos">1185</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"UPDATE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"update"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"SHARE"</span> -</span><span id="Generator.lock_sql-1186"><a href="#Generator.lock_sql-1186"><span class="linenos">1186</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"FOR </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.lock_sql-1187"><a href="#Generator.lock_sql-1187"><span class="linenos">1187</span></a> -</span><span id="Generator.lock_sql-1188"><a href="#Generator.lock_sql-1188"><span class="linenos">1188</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Locking reads using 'FOR UPDATE/SHARE' are not supported"</span><span class="p">)</span> -</span><span id="Generator.lock_sql-1189"><a href="#Generator.lock_sql-1189"><span class="linenos">1189</span></a> <span class="k">return</span> <span class="s2">""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lock_sql-1195"><a href="#Generator.lock_sql-1195"><span class="linenos">1195</span></a> <span class="k">def</span> <span class="nf">lock_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">Lock</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.lock_sql-1196"><a href="#Generator.lock_sql-1196"><span class="linenos">1196</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">LOCKING_READS_SUPPORTED</span><span class="p">:</span> +</span><span id="Generator.lock_sql-1197"><a href="#Generator.lock_sql-1197"><span class="linenos">1197</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"UPDATE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"update"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"SHARE"</span> +</span><span id="Generator.lock_sql-1198"><a href="#Generator.lock_sql-1198"><span class="linenos">1198</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"FOR </span><span class="si">{</span><span class="n">lock_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.lock_sql-1199"><a href="#Generator.lock_sql-1199"><span class="linenos">1199</span></a> +</span><span id="Generator.lock_sql-1200"><a href="#Generator.lock_sql-1200"><span class="linenos">1200</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Locking reads using 'FOR UPDATE/SHARE' are not supported"</span><span class="p">)</span> +</span><span id="Generator.lock_sql-1201"><a href="#Generator.lock_sql-1201"><span class="linenos">1201</span></a> <span class="k">return</span> <span class="s2">""</span> </span></pre></div> @@ -7110,14 +7183,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.literal_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.literal_sql-1191"><a href="#Generator.literal_sql-1191"><span class="linenos">1191</span></a> <span class="k">def</span> <span class="nf">literal_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">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.literal_sql-1192"><a href="#Generator.literal_sql-1192"><span class="linenos">1192</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">""</span> -</span><span id="Generator.literal_sql-1193"><a href="#Generator.literal_sql-1193"><span class="linenos">1193</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> -</span><span id="Generator.literal_sql-1194"><a href="#Generator.literal_sql-1194"><span class="linenos">1194</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span><span class="p">)</span> -</span><span id="Generator.literal_sql-1195"><a href="#Generator.literal_sql-1195"><span class="linenos">1195</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator.literal_sql-1196"><a href="#Generator.literal_sql-1196"><span class="linenos">1196</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">)</span> -</span><span id="Generator.literal_sql-1197"><a href="#Generator.literal_sql-1197"><span class="linenos">1197</span></a> <span class="n">text</span> <span class="o">=</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">quote_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.literal_sql-1198"><a href="#Generator.literal_sql-1198"><span class="linenos">1198</span></a> <span class="k">return</span> <span class="n">text</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.literal_sql-1203"><a href="#Generator.literal_sql-1203"><span class="linenos">1203</span></a> <span class="k">def</span> <span class="nf">literal_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">Literal</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.literal_sql-1204"><a href="#Generator.literal_sql-1204"><span class="linenos">1204</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="ow">or</span> <span class="s2">""</span> +</span><span id="Generator.literal_sql-1205"><a href="#Generator.literal_sql-1205"><span class="linenos">1205</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_string</span><span class="p">:</span> +</span><span id="Generator.literal_sql-1206"><a href="#Generator.literal_sql-1206"><span class="linenos">1206</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_escaped_quote_end</span><span class="p">)</span> +</span><span id="Generator.literal_sql-1207"><a href="#Generator.literal_sql-1207"><span class="linenos">1207</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator.literal_sql-1208"><a href="#Generator.literal_sql-1208"><span class="linenos">1208</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">SENTINEL_LINE_BREAK</span><span class="p">)</span> +</span><span id="Generator.literal_sql-1209"><a href="#Generator.literal_sql-1209"><span class="linenos">1209</span></a> <span class="n">text</span> <span class="o">=</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">quote_start</span><span class="si">}{</span><span class="n">text</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">quote_end</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.literal_sql-1210"><a href="#Generator.literal_sql-1210"><span class="linenos">1210</span></a> <span class="k">return</span> <span class="n">text</span> </span></pre></div> @@ -7135,18 +7208,18 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.loaddata_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.loaddata_sql-1200"><a href="#Generator.loaddata_sql-1200"><span class="linenos">1200</span></a> <span class="k">def</span> <span class="nf">loaddata_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">LoadData</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.loaddata_sql-1201"><a href="#Generator.loaddata_sql-1201"><span class="linenos">1201</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">" LOCAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.loaddata_sql-1202"><a href="#Generator.loaddata_sql-1202"><span class="linenos">1202</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPATH </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'inpath'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.loaddata_sql-1203"><a href="#Generator.loaddata_sql-1203"><span class="linenos">1203</span></a> <span class="n">overwrite</span> <span class="o">=</span> <span class="s2">" OVERWRITE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"overwrite"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.loaddata_sql-1204"><a href="#Generator.loaddata_sql-1204"><span class="linenos">1204</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INTO TABLE </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">expression</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><span id="Generator.loaddata_sql-1205"><a href="#Generator.loaddata_sql-1205"><span class="linenos">1205</span></a> <span class="n">partition</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">"partition"</span><span class="p">)</span> -</span><span id="Generator.loaddata_sql-1206"><a href="#Generator.loaddata_sql-1206"><span class="linenos">1206</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.loaddata_sql-1207"><a href="#Generator.loaddata_sql-1207"><span class="linenos">1207</span></a> <span class="n">input_format</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">"input_format"</span><span class="p">)</span> -</span><span id="Generator.loaddata_sql-1208"><a href="#Generator.loaddata_sql-1208"><span class="linenos">1208</span></a> <span class="n">input_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPUTFORMAT </span><span class="si">{</span><span class="n">input_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">input_format</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.loaddata_sql-1209"><a href="#Generator.loaddata_sql-1209"><span class="linenos">1209</span></a> <span class="n">serde</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">"serde"</span><span class="p">)</span> -</span><span id="Generator.loaddata_sql-1210"><a href="#Generator.loaddata_sql-1210"><span class="linenos">1210</span></a> <span class="n">serde</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" SERDE </span><span class="si">{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">serde</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.loaddata_sql-1211"><a href="#Generator.loaddata_sql-1211"><span class="linenos">1211</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOAD DATA</span><span class="si">{</span><span class="n">local</span><span class="si">}{</span><span class="n">inpath</span><span class="si">}{</span><span class="n">overwrite</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">partition</span><span class="si">}{</span><span class="n">input_format</span><span class="si">}{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.loaddata_sql-1212"><a href="#Generator.loaddata_sql-1212"><span class="linenos">1212</span></a> <span class="k">def</span> <span class="nf">loaddata_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">LoadData</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.loaddata_sql-1213"><a href="#Generator.loaddata_sql-1213"><span class="linenos">1213</span></a> <span class="n">local</span> <span class="o">=</span> <span class="s2">" LOCAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"local"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.loaddata_sql-1214"><a href="#Generator.loaddata_sql-1214"><span class="linenos">1214</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPATH </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'inpath'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.loaddata_sql-1215"><a href="#Generator.loaddata_sql-1215"><span class="linenos">1215</span></a> <span class="n">overwrite</span> <span class="o">=</span> <span class="s2">" OVERWRITE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"overwrite"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.loaddata_sql-1216"><a href="#Generator.loaddata_sql-1216"><span class="linenos">1216</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INTO TABLE </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">expression</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><span id="Generator.loaddata_sql-1217"><a href="#Generator.loaddata_sql-1217"><span class="linenos">1217</span></a> <span class="n">partition</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">"partition"</span><span class="p">)</span> +</span><span id="Generator.loaddata_sql-1218"><a href="#Generator.loaddata_sql-1218"><span class="linenos">1218</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.loaddata_sql-1219"><a href="#Generator.loaddata_sql-1219"><span class="linenos">1219</span></a> <span class="n">input_format</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">"input_format"</span><span class="p">)</span> +</span><span id="Generator.loaddata_sql-1220"><a href="#Generator.loaddata_sql-1220"><span class="linenos">1220</span></a> <span class="n">input_format</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" INPUTFORMAT </span><span class="si">{</span><span class="n">input_format</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">input_format</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.loaddata_sql-1221"><a href="#Generator.loaddata_sql-1221"><span class="linenos">1221</span></a> <span class="n">serde</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">"serde"</span><span class="p">)</span> +</span><span id="Generator.loaddata_sql-1222"><a href="#Generator.loaddata_sql-1222"><span class="linenos">1222</span></a> <span class="n">serde</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" SERDE </span><span class="si">{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">serde</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.loaddata_sql-1223"><a href="#Generator.loaddata_sql-1223"><span class="linenos">1223</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"LOAD DATA</span><span class="si">{</span><span class="n">local</span><span class="si">}{</span><span class="n">inpath</span><span class="si">}{</span><span class="n">overwrite</span><span class="si">}{</span><span class="n">this</span><span class="si">}{</span><span class="n">partition</span><span class="si">}{</span><span class="n">input_format</span><span class="si">}{</span><span class="n">serde</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7164,8 +7237,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.null_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.null_sql-1213"><a href="#Generator.null_sql-1213"><span class="linenos">1213</span></a> <span class="k">def</span> <span class="nf">null_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.null_sql-1214"><a href="#Generator.null_sql-1214"><span class="linenos">1214</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.null_sql-1225"><a href="#Generator.null_sql-1225"><span class="linenos">1225</span></a> <span class="k">def</span> <span class="nf">null_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.null_sql-1226"><a href="#Generator.null_sql-1226"><span class="linenos">1226</span></a> <span class="k">return</span> <span class="s2">"NULL"</span> </span></pre></div> @@ -7183,8 +7256,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.boolean_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.boolean_sql-1216"><a href="#Generator.boolean_sql-1216"><span class="linenos">1216</span></a> <span class="k">def</span> <span class="nf">boolean_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">Boolean</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.boolean_sql-1217"><a href="#Generator.boolean_sql-1217"><span class="linenos">1217</span></a> <span class="k">return</span> <span class="s2">"TRUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">"FALSE"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.boolean_sql-1228"><a href="#Generator.boolean_sql-1228"><span class="linenos">1228</span></a> <span class="k">def</span> <span class="nf">boolean_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">Boolean</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.boolean_sql-1229"><a href="#Generator.boolean_sql-1229"><span class="linenos">1229</span></a> <span class="k">return</span> <span class="s2">"TRUE"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> <span class="k">else</span> <span class="s2">"FALSE"</span> </span></pre></div> @@ -7202,10 +7275,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.order_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.order_sql-1219"><a href="#Generator.order_sql-1219"><span class="linenos">1219</span></a> <span class="k">def</span> <span class="nf">order_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">Order</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.order_sql-1220"><a href="#Generator.order_sql-1220"><span class="linenos">1220</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.order_sql-1221"><a href="#Generator.order_sql-1221"><span class="linenos">1221</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">this</span> -</span><span id="Generator.order_sql-1222"><a href="#Generator.order_sql-1222"><span class="linenos">1222</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">ORDER BY"</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="n">this</span> <span class="ow">or</span> <span class="n">flat</span><span class="p">)</span> <span class="c1"># type: ignore</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.order_sql-1231"><a href="#Generator.order_sql-1231"><span class="linenos">1231</span></a> <span class="k">def</span> <span class="nf">order_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">Order</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.order_sql-1232"><a href="#Generator.order_sql-1232"><span class="linenos">1232</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.order_sql-1233"><a href="#Generator.order_sql-1233"><span class="linenos">1233</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="n">this</span> +</span><span id="Generator.order_sql-1234"><a href="#Generator.order_sql-1234"><span class="linenos">1234</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">ORDER BY"</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="n">this</span> <span class="ow">or</span> <span class="n">flat</span><span class="p">)</span> <span class="c1"># type: ignore</span> </span></pre></div> @@ -7223,8 +7296,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.cluster_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cluster_sql-1224"><a href="#Generator.cluster_sql-1224"><span class="linenos">1224</span></a> <span class="k">def</span> <span class="nf">cluster_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">Cluster</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.cluster_sql-1225"><a href="#Generator.cluster_sql-1225"><span class="linenos">1225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cluster_sql-1236"><a href="#Generator.cluster_sql-1236"><span class="linenos">1236</span></a> <span class="k">def</span> <span class="nf">cluster_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">Cluster</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.cluster_sql-1237"><a href="#Generator.cluster_sql-1237"><span class="linenos">1237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"CLUSTER BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -7242,8 +7315,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.distribute_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.distribute_sql-1227"><a href="#Generator.distribute_sql-1227"><span class="linenos">1227</span></a> <span class="k">def</span> <span class="nf">distribute_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">Distribute</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.distribute_sql-1228"><a href="#Generator.distribute_sql-1228"><span class="linenos">1228</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"DISTRIBUTE BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.distribute_sql-1239"><a href="#Generator.distribute_sql-1239"><span class="linenos">1239</span></a> <span class="k">def</span> <span class="nf">distribute_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">Distribute</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.distribute_sql-1240"><a href="#Generator.distribute_sql-1240"><span class="linenos">1240</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"DISTRIBUTE BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -7261,8 +7334,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.sort_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sort_sql-1230"><a href="#Generator.sort_sql-1230"><span class="linenos">1230</span></a> <span class="k">def</span> <span class="nf">sort_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">Sort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.sort_sql-1231"><a href="#Generator.sort_sql-1231"><span class="linenos">1231</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"SORT BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sort_sql-1242"><a href="#Generator.sort_sql-1242"><span class="linenos">1242</span></a> <span class="k">def</span> <span class="nf">sort_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">Sort</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.sort_sql-1243"><a href="#Generator.sort_sql-1243"><span class="linenos">1243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">op_expressions</span><span class="p">(</span><span class="s2">"SORT BY"</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -7280,36 +7353,36 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.ordered_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.ordered_sql-1233"><a href="#Generator.ordered_sql-1233"><span class="linenos">1233</span></a> <span class="k">def</span> <span class="nf">ordered_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">Ordered</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.ordered_sql-1234"><a href="#Generator.ordered_sql-1234"><span class="linenos">1234</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> -</span><span id="Generator.ordered_sql-1235"><a href="#Generator.ordered_sql-1235"><span class="linenos">1235</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> -</span><span id="Generator.ordered_sql-1236"><a href="#Generator.ordered_sql-1236"><span class="linenos">1236</span></a> -</span><span id="Generator.ordered_sql-1237"><a href="#Generator.ordered_sql-1237"><span class="linenos">1237</span></a> <span class="n">nulls_first</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">"nulls_first"</span><span class="p">)</span> -</span><span id="Generator.ordered_sql-1238"><a href="#Generator.ordered_sql-1238"><span class="linenos">1238</span></a> <span class="n">nulls_last</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">nulls_first</span> -</span><span id="Generator.ordered_sql-1239"><a href="#Generator.ordered_sql-1239"><span class="linenos">1239</span></a> <span class="n">nulls_are_large</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_large"</span> -</span><span id="Generator.ordered_sql-1240"><a href="#Generator.ordered_sql-1240"><span class="linenos">1240</span></a> <span class="n">nulls_are_small</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span> -</span><span id="Generator.ordered_sql-1241"><a href="#Generator.ordered_sql-1241"><span class="linenos">1241</span></a> <span class="n">nulls_are_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_last"</span> -</span><span id="Generator.ordered_sql-1242"><a href="#Generator.ordered_sql-1242"><span class="linenos">1242</span></a> -</span><span id="Generator.ordered_sql-1243"><a href="#Generator.ordered_sql-1243"><span class="linenos">1243</span></a> <span class="n">sort_order</span> <span class="o">=</span> <span class="s2">" DESC"</span> <span class="k">if</span> <span class="n">desc</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.ordered_sql-1244"><a href="#Generator.ordered_sql-1244"><span class="linenos">1244</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.ordered_sql-1245"><a href="#Generator.ordered_sql-1245"><span class="linenos">1245</span></a> <span class="k">if</span> <span class="n">nulls_first</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="Generator.ordered_sql-1246"><a href="#Generator.ordered_sql-1246"><span class="linenos">1246</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="n">nulls_are_last</span> -</span><span id="Generator.ordered_sql-1247"><a href="#Generator.ordered_sql-1247"><span class="linenos">1247</span></a> <span class="p">):</span> -</span><span id="Generator.ordered_sql-1248"><a href="#Generator.ordered_sql-1248"><span class="linenos">1248</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS FIRST"</span> -</span><span id="Generator.ordered_sql-1249"><a href="#Generator.ordered_sql-1249"><span class="linenos">1249</span></a> <span class="k">elif</span> <span class="p">(</span> -</span><span id="Generator.ordered_sql-1250"><a href="#Generator.ordered_sql-1250"><span class="linenos">1250</span></a> <span class="n">nulls_last</span> -</span><span id="Generator.ordered_sql-1251"><a href="#Generator.ordered_sql-1251"><span class="linenos">1251</span></a> <span class="ow">and</span> <span class="p">((</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">))</span> -</span><span id="Generator.ordered_sql-1252"><a href="#Generator.ordered_sql-1252"><span class="linenos">1252</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">nulls_are_last</span> -</span><span id="Generator.ordered_sql-1253"><a href="#Generator.ordered_sql-1253"><span class="linenos">1253</span></a> <span class="p">):</span> -</span><span id="Generator.ordered_sql-1254"><a href="#Generator.ordered_sql-1254"><span class="linenos">1254</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS LAST"</span> -</span><span id="Generator.ordered_sql-1255"><a href="#Generator.ordered_sql-1255"><span class="linenos">1255</span></a> -</span><span id="Generator.ordered_sql-1256"><a href="#Generator.ordered_sql-1256"><span class="linenos">1256</span></a> <span class="k">if</span> <span class="n">nulls_sort_change</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">NULL_ORDERING_SUPPORTED</span><span class="p">:</span> -</span><span id="Generator.ordered_sql-1257"><a href="#Generator.ordered_sql-1257"><span class="linenos">1257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span> -</span><span id="Generator.ordered_sql-1258"><a href="#Generator.ordered_sql-1258"><span class="linenos">1258</span></a> <span class="s2">"Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"</span> -</span><span id="Generator.ordered_sql-1259"><a href="#Generator.ordered_sql-1259"><span class="linenos">1259</span></a> <span class="p">)</span> -</span><span id="Generator.ordered_sql-1260"><a href="#Generator.ordered_sql-1260"><span class="linenos">1260</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.ordered_sql-1261"><a href="#Generator.ordered_sql-1261"><span class="linenos">1261</span></a> -</span><span id="Generator.ordered_sql-1262"><a href="#Generator.ordered_sql-1262"><span class="linenos">1262</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">sort_order</span><span class="si">}{</span><span class="n">nulls_sort_change</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.ordered_sql-1245"><a href="#Generator.ordered_sql-1245"><span class="linenos">1245</span></a> <span class="k">def</span> <span class="nf">ordered_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">Ordered</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.ordered_sql-1246"><a href="#Generator.ordered_sql-1246"><span class="linenos">1246</span></a> <span class="n">desc</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">"desc"</span><span class="p">)</span> +</span><span id="Generator.ordered_sql-1247"><a href="#Generator.ordered_sql-1247"><span class="linenos">1247</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> +</span><span id="Generator.ordered_sql-1248"><a href="#Generator.ordered_sql-1248"><span class="linenos">1248</span></a> +</span><span id="Generator.ordered_sql-1249"><a href="#Generator.ordered_sql-1249"><span class="linenos">1249</span></a> <span class="n">nulls_first</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">"nulls_first"</span><span class="p">)</span> +</span><span id="Generator.ordered_sql-1250"><a href="#Generator.ordered_sql-1250"><span class="linenos">1250</span></a> <span class="n">nulls_last</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">nulls_first</span> +</span><span id="Generator.ordered_sql-1251"><a href="#Generator.ordered_sql-1251"><span class="linenos">1251</span></a> <span class="n">nulls_are_large</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_large"</span> +</span><span id="Generator.ordered_sql-1252"><a href="#Generator.ordered_sql-1252"><span class="linenos">1252</span></a> <span class="n">nulls_are_small</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span> +</span><span id="Generator.ordered_sql-1253"><a href="#Generator.ordered_sql-1253"><span class="linenos">1253</span></a> <span class="n">nulls_are_last</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_last"</span> +</span><span id="Generator.ordered_sql-1254"><a href="#Generator.ordered_sql-1254"><span class="linenos">1254</span></a> +</span><span id="Generator.ordered_sql-1255"><a href="#Generator.ordered_sql-1255"><span class="linenos">1255</span></a> <span class="n">sort_order</span> <span class="o">=</span> <span class="s2">" DESC"</span> <span class="k">if</span> <span class="n">desc</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.ordered_sql-1256"><a href="#Generator.ordered_sql-1256"><span class="linenos">1256</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.ordered_sql-1257"><a href="#Generator.ordered_sql-1257"><span class="linenos">1257</span></a> <span class="k">if</span> <span class="n">nulls_first</span> <span class="ow">and</span> <span class="p">(</span> +</span><span id="Generator.ordered_sql-1258"><a href="#Generator.ordered_sql-1258"><span class="linenos">1258</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="n">nulls_are_last</span> +</span><span id="Generator.ordered_sql-1259"><a href="#Generator.ordered_sql-1259"><span class="linenos">1259</span></a> <span class="p">):</span> +</span><span id="Generator.ordered_sql-1260"><a href="#Generator.ordered_sql-1260"><span class="linenos">1260</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS FIRST"</span> +</span><span id="Generator.ordered_sql-1261"><a href="#Generator.ordered_sql-1261"><span class="linenos">1261</span></a> <span class="k">elif</span> <span class="p">(</span> +</span><span id="Generator.ordered_sql-1262"><a href="#Generator.ordered_sql-1262"><span class="linenos">1262</span></a> <span class="n">nulls_last</span> +</span><span id="Generator.ordered_sql-1263"><a href="#Generator.ordered_sql-1263"><span class="linenos">1263</span></a> <span class="ow">and</span> <span class="p">((</span><span class="n">asc</span> <span class="ow">and</span> <span class="n">nulls_are_small</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="n">nulls_are_large</span><span class="p">))</span> +</span><span id="Generator.ordered_sql-1264"><a href="#Generator.ordered_sql-1264"><span class="linenos">1264</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">nulls_are_last</span> +</span><span id="Generator.ordered_sql-1265"><a href="#Generator.ordered_sql-1265"><span class="linenos">1265</span></a> <span class="p">):</span> +</span><span id="Generator.ordered_sql-1266"><a href="#Generator.ordered_sql-1266"><span class="linenos">1266</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">" NULLS LAST"</span> +</span><span id="Generator.ordered_sql-1267"><a href="#Generator.ordered_sql-1267"><span class="linenos">1267</span></a> +</span><span id="Generator.ordered_sql-1268"><a href="#Generator.ordered_sql-1268"><span class="linenos">1268</span></a> <span class="k">if</span> <span class="n">nulls_sort_change</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">NULL_ORDERING_SUPPORTED</span><span class="p">:</span> +</span><span id="Generator.ordered_sql-1269"><a href="#Generator.ordered_sql-1269"><span class="linenos">1269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span> +</span><span id="Generator.ordered_sql-1270"><a href="#Generator.ordered_sql-1270"><span class="linenos">1270</span></a> <span class="s2">"Sorting in an ORDER BY on NULLS FIRST/NULLS LAST is not supported by this dialect"</span> +</span><span id="Generator.ordered_sql-1271"><a href="#Generator.ordered_sql-1271"><span class="linenos">1271</span></a> <span class="p">)</span> +</span><span id="Generator.ordered_sql-1272"><a href="#Generator.ordered_sql-1272"><span class="linenos">1272</span></a> <span class="n">nulls_sort_change</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.ordered_sql-1273"><a href="#Generator.ordered_sql-1273"><span class="linenos">1273</span></a> +</span><span id="Generator.ordered_sql-1274"><a href="#Generator.ordered_sql-1274"><span class="linenos">1274</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">sort_order</span><span class="si">}{</span><span class="n">nulls_sort_change</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7327,31 +7400,31 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.matchrecognize_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.matchrecognize_sql-1264"><a href="#Generator.matchrecognize_sql-1264"><span class="linenos">1264</span></a> <span class="k">def</span> <span class="nf">matchrecognize_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">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.matchrecognize_sql-1265"><a href="#Generator.matchrecognize_sql-1265"><span class="linenos">1265</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1266"><a href="#Generator.matchrecognize_sql-1266"><span class="linenos">1266</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1267"><a href="#Generator.matchrecognize_sql-1267"><span class="linenos">1267</span></a> <span class="n">measures</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">"measures"</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1268"><a href="#Generator.matchrecognize_sql-1268"><span class="linenos">1268</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"MEASURES </span><span class="si">{</span><span class="n">measures</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">measures</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.matchrecognize_sql-1269"><a href="#Generator.matchrecognize_sql-1269"><span class="linenos">1269</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1270"><a href="#Generator.matchrecognize_sql-1270"><span class="linenos">1270</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">rows</span><span class="p">)</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.matchrecognize_sql-1271"><a href="#Generator.matchrecognize_sql-1271"><span class="linenos">1271</span></a> <span class="n">after</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">"after"</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1272"><a href="#Generator.matchrecognize_sql-1272"><span class="linenos">1272</span></a> <span class="n">after</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">after</span><span class="p">)</span> <span class="k">if</span> <span class="n">after</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.matchrecognize_sql-1273"><a href="#Generator.matchrecognize_sql-1273"><span class="linenos">1273</span></a> <span class="n">pattern</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">"pattern"</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1274"><a href="#Generator.matchrecognize_sql-1274"><span class="linenos">1274</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"PATTERN (</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span> <span class="k">if</span> <span class="n">pattern</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.matchrecognize_sql-1275"><a href="#Generator.matchrecognize_sql-1275"><span class="linenos">1275</span></a> <span class="n">define</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">"define"</span><span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1276"><a href="#Generator.matchrecognize_sql-1276"><span class="linenos">1276</span></a> <span class="n">define</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"DEFINE </span><span class="si">{</span><span class="n">define</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">define</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.matchrecognize_sql-1277"><a href="#Generator.matchrecognize_sql-1277"><span class="linenos">1277</span></a> <span class="n">body</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> -</span><span id="Generator.matchrecognize_sql-1278"><a href="#Generator.matchrecognize_sql-1278"><span class="linenos">1278</span></a> <span class="p">(</span> -</span><span id="Generator.matchrecognize_sql-1279"><a href="#Generator.matchrecognize_sql-1279"><span class="linenos">1279</span></a> <span class="n">partition</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1280"><a href="#Generator.matchrecognize_sql-1280"><span class="linenos">1280</span></a> <span class="n">order</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1281"><a href="#Generator.matchrecognize_sql-1281"><span class="linenos">1281</span></a> <span class="n">measures</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1282"><a href="#Generator.matchrecognize_sql-1282"><span class="linenos">1282</span></a> <span class="n">rows</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1283"><a href="#Generator.matchrecognize_sql-1283"><span class="linenos">1283</span></a> <span class="n">after</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1284"><a href="#Generator.matchrecognize_sql-1284"><span class="linenos">1284</span></a> <span class="n">pattern</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1285"><a href="#Generator.matchrecognize_sql-1285"><span class="linenos">1285</span></a> <span class="n">define</span><span class="p">,</span> -</span><span id="Generator.matchrecognize_sql-1286"><a href="#Generator.matchrecognize_sql-1286"><span class="linenos">1286</span></a> <span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1287"><a href="#Generator.matchrecognize_sql-1287"><span class="linenos">1287</span></a> <span class="p">)</span> -</span><span id="Generator.matchrecognize_sql-1288"><a href="#Generator.matchrecognize_sql-1288"><span class="linenos">1288</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'MATCH_RECOGNIZE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">body</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.matchrecognize_sql-1276"><a href="#Generator.matchrecognize_sql-1276"><span class="linenos">1276</span></a> <span class="k">def</span> <span class="nf">matchrecognize_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">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.matchrecognize_sql-1277"><a href="#Generator.matchrecognize_sql-1277"><span class="linenos">1277</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1278"><a href="#Generator.matchrecognize_sql-1278"><span class="linenos">1278</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1279"><a href="#Generator.matchrecognize_sql-1279"><span class="linenos">1279</span></a> <span class="n">measures</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">"measures"</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1280"><a href="#Generator.matchrecognize_sql-1280"><span class="linenos">1280</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"MEASURES </span><span class="si">{</span><span class="n">measures</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">measures</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.matchrecognize_sql-1281"><a href="#Generator.matchrecognize_sql-1281"><span class="linenos">1281</span></a> <span class="n">rows</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">"rows"</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1282"><a href="#Generator.matchrecognize_sql-1282"><span class="linenos">1282</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">rows</span><span class="p">)</span> <span class="k">if</span> <span class="n">rows</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.matchrecognize_sql-1283"><a href="#Generator.matchrecognize_sql-1283"><span class="linenos">1283</span></a> <span class="n">after</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">"after"</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1284"><a href="#Generator.matchrecognize_sql-1284"><span class="linenos">1284</span></a> <span class="n">after</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">after</span><span class="p">)</span> <span class="k">if</span> <span class="n">after</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.matchrecognize_sql-1285"><a href="#Generator.matchrecognize_sql-1285"><span class="linenos">1285</span></a> <span class="n">pattern</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">"pattern"</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1286"><a href="#Generator.matchrecognize_sql-1286"><span class="linenos">1286</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"PATTERN (</span><span class="si">{</span><span class="n">pattern</span><span class="si">}</span><span class="s2">)"</span><span class="p">)</span> <span class="k">if</span> <span class="n">pattern</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.matchrecognize_sql-1287"><a href="#Generator.matchrecognize_sql-1287"><span class="linenos">1287</span></a> <span class="n">define</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">"define"</span><span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1288"><a href="#Generator.matchrecognize_sql-1288"><span class="linenos">1288</span></a> <span class="n">define</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="sa">f</span><span class="s2">"DEFINE </span><span class="si">{</span><span class="n">define</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">define</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.matchrecognize_sql-1289"><a href="#Generator.matchrecognize_sql-1289"><span class="linenos">1289</span></a> <span class="n">body</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span> +</span><span id="Generator.matchrecognize_sql-1290"><a href="#Generator.matchrecognize_sql-1290"><span class="linenos">1290</span></a> <span class="p">(</span> +</span><span id="Generator.matchrecognize_sql-1291"><a href="#Generator.matchrecognize_sql-1291"><span class="linenos">1291</span></a> <span class="n">partition</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1292"><a href="#Generator.matchrecognize_sql-1292"><span class="linenos">1292</span></a> <span class="n">order</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1293"><a href="#Generator.matchrecognize_sql-1293"><span class="linenos">1293</span></a> <span class="n">measures</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1294"><a href="#Generator.matchrecognize_sql-1294"><span class="linenos">1294</span></a> <span class="n">rows</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1295"><a href="#Generator.matchrecognize_sql-1295"><span class="linenos">1295</span></a> <span class="n">after</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1296"><a href="#Generator.matchrecognize_sql-1296"><span class="linenos">1296</span></a> <span class="n">pattern</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1297"><a href="#Generator.matchrecognize_sql-1297"><span class="linenos">1297</span></a> <span class="n">define</span><span class="p">,</span> +</span><span id="Generator.matchrecognize_sql-1298"><a href="#Generator.matchrecognize_sql-1298"><span class="linenos">1298</span></a> <span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1299"><a href="#Generator.matchrecognize_sql-1299"><span class="linenos">1299</span></a> <span class="p">)</span> +</span><span id="Generator.matchrecognize_sql-1300"><a href="#Generator.matchrecognize_sql-1300"><span class="linenos">1300</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'MATCH_RECOGNIZE'</span><span class="p">)</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">body</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7369,29 +7442,29 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.query_modifiers"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.query_modifiers-1290"><a href="#Generator.query_modifiers-1290"><span class="linenos">1290</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.query_modifiers-1291"><a href="#Generator.query_modifiers-1291"><span class="linenos">1291</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> -</span><span id="Generator.query_modifiers-1292"><a href="#Generator.query_modifiers-1292"><span class="linenos">1292</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> -</span><span id="Generator.query_modifiers-1293"><a href="#Generator.query_modifiers-1293"><span class="linenos">1293</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Generator.query_modifiers-1294"><a href="#Generator.query_modifiers-1294"><span class="linenos">1294</span></a> <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">"match"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1295"><a href="#Generator.query_modifiers-1295"><span class="linenos">1295</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> -</span><span id="Generator.query_modifiers-1296"><a href="#Generator.query_modifiers-1296"><span class="linenos">1296</span></a> <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">"where"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1297"><a href="#Generator.query_modifiers-1297"><span class="linenos">1297</span></a> <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">"group"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1298"><a href="#Generator.query_modifiers-1298"><span class="linenos">1298</span></a> <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">"having"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1299"><a href="#Generator.query_modifiers-1299"><span class="linenos">1299</span></a> <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">"qualify"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1300"><a href="#Generator.query_modifiers-1300"><span class="linenos">1300</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.query_modifiers-1301"><a href="#Generator.query_modifiers-1301"><span class="linenos">1301</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">"windows"</span><span class="p">)</span> -</span><span id="Generator.query_modifiers-1302"><a href="#Generator.query_modifiers-1302"><span class="linenos">1302</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator.query_modifiers-1303"><a href="#Generator.query_modifiers-1303"><span class="linenos">1303</span></a> <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">"distribute"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1304"><a href="#Generator.query_modifiers-1304"><span class="linenos">1304</span></a> <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">"sort"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1305"><a href="#Generator.query_modifiers-1305"><span class="linenos">1305</span></a> <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">"cluster"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1306"><a href="#Generator.query_modifiers-1306"><span class="linenos">1306</span></a> <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">"order"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1307"><a href="#Generator.query_modifiers-1307"><span class="linenos">1307</span></a> <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">"limit"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1308"><a href="#Generator.query_modifiers-1308"><span class="linenos">1308</span></a> <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">"offset"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1309"><a href="#Generator.query_modifiers-1309"><span class="linenos">1309</span></a> <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">"lock"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1310"><a href="#Generator.query_modifiers-1310"><span class="linenos">1310</span></a> <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">"sample"</span><span class="p">),</span> -</span><span id="Generator.query_modifiers-1311"><a href="#Generator.query_modifiers-1311"><span class="linenos">1311</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> -</span><span id="Generator.query_modifiers-1312"><a href="#Generator.query_modifiers-1312"><span class="linenos">1312</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.query_modifiers-1302"><a href="#Generator.query_modifiers-1302"><span class="linenos">1302</span></a> <span class="k">def</span> <span class="nf">query_modifiers</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">Expression</span><span class="p">,</span> <span class="o">*</span><span class="n">sqls</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.query_modifiers-1303"><a href="#Generator.query_modifiers-1303"><span class="linenos">1303</span></a> <span class="k">return</span> <span class="n">csv</span><span class="p">(</span> +</span><span id="Generator.query_modifiers-1304"><a href="#Generator.query_modifiers-1304"><span class="linenos">1304</span></a> <span class="o">*</span><span class="n">sqls</span><span class="p">,</span> +</span><span id="Generator.query_modifiers-1305"><a href="#Generator.query_modifiers-1305"><span class="linenos">1305</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Generator.query_modifiers-1306"><a href="#Generator.query_modifiers-1306"><span class="linenos">1306</span></a> <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">"match"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1307"><a href="#Generator.query_modifiers-1307"><span class="linenos">1307</span></a> <span class="o">*</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">sql</span><span class="p">)</span> <span class="k">for</span> <span class="n">sql</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]],</span> +</span><span id="Generator.query_modifiers-1308"><a href="#Generator.query_modifiers-1308"><span class="linenos">1308</span></a> <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">"where"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1309"><a href="#Generator.query_modifiers-1309"><span class="linenos">1309</span></a> <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">"group"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1310"><a href="#Generator.query_modifiers-1310"><span class="linenos">1310</span></a> <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">"having"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1311"><a href="#Generator.query_modifiers-1311"><span class="linenos">1311</span></a> <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">"qualify"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1312"><a href="#Generator.query_modifiers-1312"><span class="linenos">1312</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s2">"WINDOW "</span><span class="p">)</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="s2">"windows"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.query_modifiers-1313"><a href="#Generator.query_modifiers-1313"><span class="linenos">1313</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">"windows"</span><span class="p">)</span> +</span><span id="Generator.query_modifiers-1314"><a href="#Generator.query_modifiers-1314"><span class="linenos">1314</span></a> <span class="k">else</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator.query_modifiers-1315"><a href="#Generator.query_modifiers-1315"><span class="linenos">1315</span></a> <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">"distribute"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1316"><a href="#Generator.query_modifiers-1316"><span class="linenos">1316</span></a> <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">"sort"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1317"><a href="#Generator.query_modifiers-1317"><span class="linenos">1317</span></a> <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">"cluster"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1318"><a href="#Generator.query_modifiers-1318"><span class="linenos">1318</span></a> <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">"order"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1319"><a href="#Generator.query_modifiers-1319"><span class="linenos">1319</span></a> <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">"limit"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1320"><a href="#Generator.query_modifiers-1320"><span class="linenos">1320</span></a> <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">"offset"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1321"><a href="#Generator.query_modifiers-1321"><span class="linenos">1321</span></a> <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">"lock"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1322"><a href="#Generator.query_modifiers-1322"><span class="linenos">1322</span></a> <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">"sample"</span><span class="p">),</span> +</span><span id="Generator.query_modifiers-1323"><a href="#Generator.query_modifiers-1323"><span class="linenos">1323</span></a> <span class="n">sep</span><span class="o">=</span><span class="s2">""</span><span class="p">,</span> +</span><span id="Generator.query_modifiers-1324"><a href="#Generator.query_modifiers-1324"><span class="linenos">1324</span></a> <span class="p">)</span> </span></pre></div> @@ -7409,19 +7482,19 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.select_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.select_sql-1314"><a href="#Generator.select_sql-1314"><span class="linenos">1314</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.select_sql-1315"><a href="#Generator.select_sql-1315"><span class="linenos">1315</span></a> <span class="n">hint</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">"hint"</span><span class="p">)</span> -</span><span id="Generator.select_sql-1316"><a href="#Generator.select_sql-1316"><span class="linenos">1316</span></a> <span class="n">distinct</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">"distinct"</span><span class="p">)</span> -</span><span id="Generator.select_sql-1317"><a href="#Generator.select_sql-1317"><span class="linenos">1317</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">distinct</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.select_sql-1318"><a href="#Generator.select_sql-1318"><span class="linenos">1318</span></a> <span class="n">expressions</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><span id="Generator.select_sql-1319"><a href="#Generator.select_sql-1319"><span class="linenos">1319</span></a> <span class="n">expressions</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="n">expressions</span> -</span><span id="Generator.select_sql-1320"><a href="#Generator.select_sql-1320"><span class="linenos">1320</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="Generator.select_sql-1321"><a href="#Generator.select_sql-1321"><span class="linenos">1321</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator.select_sql-1322"><a href="#Generator.select_sql-1322"><span class="linenos">1322</span></a> <span class="sa">f</span><span class="s2">"SELECT</span><span class="si">{</span><span class="n">hint</span><span class="si">}{</span><span class="n">distinct</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Generator.select_sql-1323"><a href="#Generator.select_sql-1323"><span class="linenos">1323</span></a> <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">"into"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Generator.select_sql-1324"><a href="#Generator.select_sql-1324"><span class="linenos">1324</span></a> <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">"from"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Generator.select_sql-1325"><a href="#Generator.select_sql-1325"><span class="linenos">1325</span></a> <span class="p">)</span> -</span><span id="Generator.select_sql-1326"><a href="#Generator.select_sql-1326"><span class="linenos">1326</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.select_sql-1326"><a href="#Generator.select_sql-1326"><span class="linenos">1326</span></a> <span class="k">def</span> <span class="nf">select_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">Select</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.select_sql-1327"><a href="#Generator.select_sql-1327"><span class="linenos">1327</span></a> <span class="n">hint</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">"hint"</span><span class="p">)</span> +</span><span id="Generator.select_sql-1328"><a href="#Generator.select_sql-1328"><span class="linenos">1328</span></a> <span class="n">distinct</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">"distinct"</span><span class="p">)</span> +</span><span id="Generator.select_sql-1329"><a href="#Generator.select_sql-1329"><span class="linenos">1329</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">distinct</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">distinct</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.select_sql-1330"><a href="#Generator.select_sql-1330"><span class="linenos">1330</span></a> <span class="n">expressions</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><span id="Generator.select_sql-1331"><a href="#Generator.select_sql-1331"><span class="linenos">1331</span></a> <span class="n">expressions</span> <span class="o">=</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">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="n">expressions</span> +</span><span id="Generator.select_sql-1332"><a href="#Generator.select_sql-1332"><span class="linenos">1332</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="Generator.select_sql-1333"><a href="#Generator.select_sql-1333"><span class="linenos">1333</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator.select_sql-1334"><a href="#Generator.select_sql-1334"><span class="linenos">1334</span></a> <span class="sa">f</span><span class="s2">"SELECT</span><span class="si">{</span><span class="n">hint</span><span class="si">}{</span><span class="n">distinct</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Generator.select_sql-1335"><a href="#Generator.select_sql-1335"><span class="linenos">1335</span></a> <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">"into"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Generator.select_sql-1336"><a href="#Generator.select_sql-1336"><span class="linenos">1336</span></a> <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">"from"</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Generator.select_sql-1337"><a href="#Generator.select_sql-1337"><span class="linenos">1337</span></a> <span class="p">)</span> +</span><span id="Generator.select_sql-1338"><a href="#Generator.select_sql-1338"><span class="linenos">1338</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -7439,11 +7512,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.schema_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.schema_sql-1328"><a href="#Generator.schema_sql-1328"><span class="linenos">1328</span></a> <span class="k">def</span> <span class="nf">schema_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">Schema</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.schema_sql-1329"><a href="#Generator.schema_sql-1329"><span class="linenos">1329</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.schema_sql-1330"><a href="#Generator.schema_sql-1330"><span class="linenos">1330</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.schema_sql-1331"><a href="#Generator.schema_sql-1331"><span class="linenos">1331</span></a> <span class="n">sql</span> <span class="o">=</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</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="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.schema_sql-1332"><a href="#Generator.schema_sql-1332"><span class="linenos">1332</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.schema_sql-1340"><a href="#Generator.schema_sql-1340"><span class="linenos">1340</span></a> <span class="k">def</span> <span class="nf">schema_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">Schema</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.schema_sql-1341"><a href="#Generator.schema_sql-1341"><span class="linenos">1341</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.schema_sql-1342"><a href="#Generator.schema_sql-1342"><span class="linenos">1342</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> "</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.schema_sql-1343"><a href="#Generator.schema_sql-1343"><span class="linenos">1343</span></a> <span class="n">sql</span> <span class="o">=</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">sep</span><span class="p">(</span><span class="s1">''</span><span class="p">)</span><span class="si">}{</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="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.schema_sql-1344"><a href="#Generator.schema_sql-1344"><span class="linenos">1344</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7461,12 +7534,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.star_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.star_sql-1334"><a href="#Generator.star_sql-1334"><span class="linenos">1334</span></a> <span class="k">def</span> <span class="nf">star_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">Star</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.star_sql-1335"><a href="#Generator.star_sql-1335"><span class="linenos">1335</span></a> <span class="n">except_</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">"except"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.star_sql-1336"><a href="#Generator.star_sql-1336"><span class="linenos">1336</span></a> <span class="n">except_</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'except'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">except_</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">except_</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.star_sql-1337"><a href="#Generator.star_sql-1337"><span class="linenos">1337</span></a> <span class="n">replace</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">"replace"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.star_sql-1338"><a href="#Generator.star_sql-1338"><span class="linenos">1338</span></a> <span class="n">replace</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">replace</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">replace</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.star_sql-1339"><a href="#Generator.star_sql-1339"><span class="linenos">1339</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"*</span><span class="si">{</span><span class="n">except_</span><span class="si">}{</span><span class="n">replace</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.star_sql-1346"><a href="#Generator.star_sql-1346"><span class="linenos">1346</span></a> <span class="k">def</span> <span class="nf">star_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">Star</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.star_sql-1347"><a href="#Generator.star_sql-1347"><span class="linenos">1347</span></a> <span class="n">except_</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">"except"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.star_sql-1348"><a href="#Generator.star_sql-1348"><span class="linenos">1348</span></a> <span class="n">except_</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'except'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">except_</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">except_</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.star_sql-1349"><a href="#Generator.star_sql-1349"><span class="linenos">1349</span></a> <span class="n">replace</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">"replace"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.star_sql-1350"><a href="#Generator.star_sql-1350"><span class="linenos">1350</span></a> <span class="n">replace</span> <span class="o">=</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">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STAR_MAPPING</span><span class="p">[</span><span class="s1">'replace'</span><span class="p">])</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">replace</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">replace</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.star_sql-1351"><a href="#Generator.star_sql-1351"><span class="linenos">1351</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"*</span><span class="si">{</span><span class="n">except_</span><span class="si">}{</span><span class="n">replace</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7484,8 +7557,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.structkwarg_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.structkwarg_sql-1341"><a href="#Generator.structkwarg_sql-1341"><span class="linenos">1341</span></a> <span class="k">def</span> <span class="nf">structkwarg_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">StructKwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.structkwarg_sql-1342"><a href="#Generator.structkwarg_sql-1342"><span class="linenos">1342</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.structkwarg_sql-1353"><a href="#Generator.structkwarg_sql-1353"><span class="linenos">1353</span></a> <span class="k">def</span> <span class="nf">structkwarg_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">StructKwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.structkwarg_sql-1354"><a href="#Generator.structkwarg_sql-1354"><span class="linenos">1354</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7503,10 +7576,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.parameter_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.parameter_sql-1344"><a href="#Generator.parameter_sql-1344"><span class="linenos">1344</span></a> <span class="k">def</span> <span class="nf">parameter_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">Parameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.parameter_sql-1345"><a href="#Generator.parameter_sql-1345"><span class="linenos">1345</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.parameter_sql-1346"><a href="#Generator.parameter_sql-1346"><span class="linenos">1346</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.parameter_sql-1347"><a href="#Generator.parameter_sql-1347"><span class="linenos">1347</span></a> <span class="k">return</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">PARAMETER_TOKEN</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.parameter_sql-1356"><a href="#Generator.parameter_sql-1356"><span class="linenos">1356</span></a> <span class="k">def</span> <span class="nf">parameter_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">Parameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.parameter_sql-1357"><a href="#Generator.parameter_sql-1357"><span class="linenos">1357</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.parameter_sql-1358"><a href="#Generator.parameter_sql-1358"><span class="linenos">1358</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="se">{{</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="se">}}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.parameter_sql-1359"><a href="#Generator.parameter_sql-1359"><span class="linenos">1359</span></a> <span class="k">return</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">PARAMETER_TOKEN</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7524,12 +7597,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.sessionparameter_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sessionparameter_sql-1349"><a href="#Generator.sessionparameter_sql-1349"><span class="linenos">1349</span></a> <span class="k">def</span> <span class="nf">sessionparameter_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">SessionParameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.sessionparameter_sql-1350"><a href="#Generator.sessionparameter_sql-1350"><span class="linenos">1350</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.sessionparameter_sql-1351"><a href="#Generator.sessionparameter_sql-1351"><span class="linenos">1351</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span> -</span><span id="Generator.sessionparameter_sql-1352"><a href="#Generator.sessionparameter_sql-1352"><span class="linenos">1352</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Generator.sessionparameter_sql-1353"><a href="#Generator.sessionparameter_sql-1353"><span class="linenos">1353</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">."</span> -</span><span id="Generator.sessionparameter_sql-1354"><a href="#Generator.sessionparameter_sql-1354"><span class="linenos">1354</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"@@</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sessionparameter_sql-1361"><a href="#Generator.sessionparameter_sql-1361"><span class="linenos">1361</span></a> <span class="k">def</span> <span class="nf">sessionparameter_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">SessionParameter</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.sessionparameter_sql-1362"><a href="#Generator.sessionparameter_sql-1362"><span class="linenos">1362</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.sessionparameter_sql-1363"><a href="#Generator.sessionparameter_sql-1363"><span class="linenos">1363</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s2">"kind"</span><span class="p">)</span> +</span><span id="Generator.sessionparameter_sql-1364"><a href="#Generator.sessionparameter_sql-1364"><span class="linenos">1364</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Generator.sessionparameter_sql-1365"><a href="#Generator.sessionparameter_sql-1365"><span class="linenos">1365</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">."</span> +</span><span id="Generator.sessionparameter_sql-1366"><a href="#Generator.sessionparameter_sql-1366"><span class="linenos">1366</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"@@</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7547,8 +7620,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.placeholder_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.placeholder_sql-1356"><a href="#Generator.placeholder_sql-1356"><span class="linenos">1356</span></a> <span class="k">def</span> <span class="nf">placeholder_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">Placeholder</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.placeholder_sql-1357"><a href="#Generator.placeholder_sql-1357"><span class="linenos">1357</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">":</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">"?"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.placeholder_sql-1368"><a href="#Generator.placeholder_sql-1368"><span class="linenos">1368</span></a> <span class="k">def</span> <span class="nf">placeholder_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">Placeholder</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.placeholder_sql-1369"><a href="#Generator.placeholder_sql-1369"><span class="linenos">1369</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">":</span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> <span class="k">else</span> <span class="s2">"?"</span> </span></pre></div> @@ -7566,18 +7639,18 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.subquery_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.subquery_sql-1359"><a href="#Generator.subquery_sql-1359"><span class="linenos">1359</span></a> <span class="k">def</span> <span class="nf">subquery_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">Subquery</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.subquery_sql-1360"><a href="#Generator.subquery_sql-1360"><span class="linenos">1360</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.subquery_sql-1361"><a href="#Generator.subquery_sql-1361"><span class="linenos">1361</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> -</span><span id="Generator.subquery_sql-1362"><a href="#Generator.subquery_sql-1362"><span class="linenos">1362</span></a> -</span><span id="Generator.subquery_sql-1363"><a href="#Generator.subquery_sql-1363"><span class="linenos">1363</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="Generator.subquery_sql-1364"><a href="#Generator.subquery_sql-1364"><span class="linenos">1364</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator.subquery_sql-1365"><a href="#Generator.subquery_sql-1365"><span class="linenos">1365</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">),</span> -</span><span id="Generator.subquery_sql-1366"><a href="#Generator.subquery_sql-1366"><span class="linenos">1366</span></a> <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">"pivots"</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="Generator.subquery_sql-1367"><a href="#Generator.subquery_sql-1367"><span class="linenos">1367</span></a> <span class="n">alias</span><span class="p">,</span> -</span><span id="Generator.subquery_sql-1368"><a href="#Generator.subquery_sql-1368"><span class="linenos">1368</span></a> <span class="p">)</span> -</span><span id="Generator.subquery_sql-1369"><a href="#Generator.subquery_sql-1369"><span class="linenos">1369</span></a> -</span><span id="Generator.subquery_sql-1370"><a href="#Generator.subquery_sql-1370"><span class="linenos">1370</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.subquery_sql-1371"><a href="#Generator.subquery_sql-1371"><span class="linenos">1371</span></a> <span class="k">def</span> <span class="nf">subquery_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">Subquery</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">" AS "</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.subquery_sql-1372"><a href="#Generator.subquery_sql-1372"><span class="linenos">1372</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.subquery_sql-1373"><a href="#Generator.subquery_sql-1373"><span class="linenos">1373</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</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="s2">""</span> +</span><span id="Generator.subquery_sql-1374"><a href="#Generator.subquery_sql-1374"><span class="linenos">1374</span></a> +</span><span id="Generator.subquery_sql-1375"><a href="#Generator.subquery_sql-1375"><span class="linenos">1375</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="Generator.subquery_sql-1376"><a href="#Generator.subquery_sql-1376"><span class="linenos">1376</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator.subquery_sql-1377"><a href="#Generator.subquery_sql-1377"><span class="linenos">1377</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">),</span> +</span><span id="Generator.subquery_sql-1378"><a href="#Generator.subquery_sql-1378"><span class="linenos">1378</span></a> <span class="n">alias</span><span class="p">,</span> +</span><span id="Generator.subquery_sql-1379"><a href="#Generator.subquery_sql-1379"><span class="linenos">1379</span></a> <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">"pivots"</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="Generator.subquery_sql-1380"><a href="#Generator.subquery_sql-1380"><span class="linenos">1380</span></a> <span class="p">)</span> +</span><span id="Generator.subquery_sql-1381"><a href="#Generator.subquery_sql-1381"><span class="linenos">1381</span></a> +</span><span id="Generator.subquery_sql-1382"><a href="#Generator.subquery_sql-1382"><span class="linenos">1382</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -7595,9 +7668,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.qualify_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.qualify_sql-1372"><a href="#Generator.qualify_sql-1372"><span class="linenos">1372</span></a> <span class="k">def</span> <span class="nf">qualify_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">Qualify</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.qualify_sql-1373"><a href="#Generator.qualify_sql-1373"><span class="linenos">1373</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="Generator.qualify_sql-1374"><a href="#Generator.qualify_sql-1374"><span class="linenos">1374</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'QUALIFY'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.qualify_sql-1384"><a href="#Generator.qualify_sql-1384"><span class="linenos">1384</span></a> <span class="k">def</span> <span class="nf">qualify_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">Qualify</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.qualify_sql-1385"><a href="#Generator.qualify_sql-1385"><span class="linenos">1385</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="Generator.qualify_sql-1386"><a href="#Generator.qualify_sql-1386"><span class="linenos">1386</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'QUALIFY'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7615,11 +7688,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.union_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.union_sql-1376"><a href="#Generator.union_sql-1376"><span class="linenos">1376</span></a> <span class="k">def</span> <span class="nf">union_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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.union_sql-1377"><a href="#Generator.union_sql-1377"><span class="linenos">1377</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> -</span><span id="Generator.union_sql-1378"><a href="#Generator.union_sql-1378"><span class="linenos">1378</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Generator.union_sql-1379"><a href="#Generator.union_sql-1379"><span class="linenos">1379</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> -</span><span id="Generator.union_sql-1380"><a href="#Generator.union_sql-1380"><span class="linenos">1380</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.union_sql-1388"><a href="#Generator.union_sql-1388"><span class="linenos">1388</span></a> <span class="k">def</span> <span class="nf">union_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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.union_sql-1389"><a href="#Generator.union_sql-1389"><span class="linenos">1389</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span> +</span><span id="Generator.union_sql-1390"><a href="#Generator.union_sql-1390"><span class="linenos">1390</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Generator.union_sql-1391"><a href="#Generator.union_sql-1391"><span class="linenos">1391</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">set_operation</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_op</span><span class="p">(</span><span class="n">expression</span><span class="p">)),</span> +</span><span id="Generator.union_sql-1392"><a href="#Generator.union_sql-1392"><span class="linenos">1392</span></a> <span class="p">)</span> </span></pre></div> @@ -7637,10 +7710,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.union_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.union_op-1382"><a href="#Generator.union_op-1382"><span class="linenos">1382</span></a> <span class="k">def</span> <span class="nf">union_op</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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.union_op-1383"><a href="#Generator.union_op-1383"><span class="linenos">1383</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">" DISTINCT"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPLICIT_UNION</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.union_op-1384"><a href="#Generator.union_op-1384"><span class="linenos">1384</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">kind</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" ALL"</span> -</span><span id="Generator.union_op-1385"><a href="#Generator.union_op-1385"><span class="linenos">1385</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNION</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.union_op-1394"><a href="#Generator.union_op-1394"><span class="linenos">1394</span></a> <span class="k">def</span> <span class="nf">union_op</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">Union</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.union_op-1395"><a href="#Generator.union_op-1395"><span class="linenos">1395</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">" DISTINCT"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPLICIT_UNION</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.union_op-1396"><a href="#Generator.union_op-1396"><span class="linenos">1396</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">kind</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"distinct"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" ALL"</span> +</span><span id="Generator.union_op-1397"><a href="#Generator.union_op-1397"><span class="linenos">1397</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNION</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7658,19 +7731,19 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.unnest_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.unnest_sql-1387"><a href="#Generator.unnest_sql-1387"><span class="linenos">1387</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="Generator.unnest_sql-1388"><a href="#Generator.unnest_sql-1388"><span class="linenos">1388</span></a> <span class="n">args</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="Generator.unnest_sql-1389"><a href="#Generator.unnest_sql-1389"><span class="linenos">1389</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.unnest_sql-1390"><a href="#Generator.unnest_sql-1390"><span class="linenos">1390</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> -</span><span id="Generator.unnest_sql-1391"><a href="#Generator.unnest_sql-1391"><span class="linenos">1391</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> -</span><span id="Generator.unnest_sql-1392"><a href="#Generator.unnest_sql-1392"><span class="linenos">1392</span></a> <span class="n">alias</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">columns</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.unnest_sql-1393"><a href="#Generator.unnest_sql-1393"><span class="linenos">1393</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.unnest_sql-1394"><a href="#Generator.unnest_sql-1394"><span class="linenos">1394</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.unnest_sql-1395"><a href="#Generator.unnest_sql-1395"><span class="linenos">1395</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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">alias</span> -</span><span id="Generator.unnest_sql-1396"><a href="#Generator.unnest_sql-1396"><span class="linenos">1396</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="s2">" WITH ORDINALITY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.unnest_sql-1397"><a href="#Generator.unnest_sql-1397"><span class="linenos">1397</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> -</span><span id="Generator.unnest_sql-1398"><a href="#Generator.unnest_sql-1398"><span class="linenos">1398</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH OFFSET AS </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">offset</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.unnest_sql-1399"><a href="#Generator.unnest_sql-1399"><span class="linenos">1399</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNNEST(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ordinality</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">offset</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.unnest_sql-1399"><a href="#Generator.unnest_sql-1399"><span class="linenos">1399</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="Generator.unnest_sql-1400"><a href="#Generator.unnest_sql-1400"><span class="linenos">1400</span></a> <span class="n">args</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="Generator.unnest_sql-1401"><a href="#Generator.unnest_sql-1401"><span class="linenos">1401</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.unnest_sql-1402"><a href="#Generator.unnest_sql-1402"><span class="linenos">1402</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> +</span><span id="Generator.unnest_sql-1403"><a href="#Generator.unnest_sql-1403"><span class="linenos">1403</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">alias</span><span class="o">.</span><span class="n">columns</span> +</span><span id="Generator.unnest_sql-1404"><a href="#Generator.unnest_sql-1404"><span class="linenos">1404</span></a> <span class="n">alias</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">columns</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.unnest_sql-1405"><a href="#Generator.unnest_sql-1405"><span class="linenos">1405</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.unnest_sql-1406"><a href="#Generator.unnest_sql-1406"><span class="linenos">1406</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.unnest_sql-1407"><a href="#Generator.unnest_sql-1407"><span class="linenos">1407</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="sa">f</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">alias</span> +</span><span id="Generator.unnest_sql-1408"><a href="#Generator.unnest_sql-1408"><span class="linenos">1408</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="s2">" WITH ORDINALITY"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"ordinality"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.unnest_sql-1409"><a href="#Generator.unnest_sql-1409"><span class="linenos">1409</span></a> <span class="n">offset</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">"offset"</span><span class="p">)</span> +</span><span id="Generator.unnest_sql-1410"><a href="#Generator.unnest_sql-1410"><span class="linenos">1410</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" WITH OFFSET AS </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">offset</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">offset</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.unnest_sql-1411"><a href="#Generator.unnest_sql-1411"><span class="linenos">1411</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNNEST(</span><span class="si">{</span><span class="n">args</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">ordinality</span><span class="si">}{</span><span class="n">alias</span><span class="si">}{</span><span class="n">offset</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7688,9 +7761,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.where_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.where_sql-1401"><a href="#Generator.where_sql-1401"><span class="linenos">1401</span></a> <span class="k">def</span> <span class="nf">where_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">Where</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.where_sql-1402"><a href="#Generator.where_sql-1402"><span class="linenos">1402</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> -</span><span id="Generator.where_sql-1403"><a href="#Generator.where_sql-1403"><span class="linenos">1403</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'WHERE'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.where_sql-1413"><a href="#Generator.where_sql-1413"><span class="linenos">1413</span></a> <span class="k">def</span> <span class="nf">where_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">Where</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.where_sql-1414"><a href="#Generator.where_sql-1414"><span class="linenos">1414</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</span><span class="p">))</span> +</span><span id="Generator.where_sql-1415"><a href="#Generator.where_sql-1415"><span class="linenos">1415</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="s1">'WHERE'</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7708,28 +7781,28 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.window_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.window_sql-1405"><a href="#Generator.window_sql-1405"><span class="linenos">1405</span></a> <span class="k">def</span> <span class="nf">window_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">Window</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.window_sql-1406"><a href="#Generator.window_sql-1406"><span class="linenos">1406</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.window_sql-1407"><a href="#Generator.window_sql-1407"><span class="linenos">1407</span></a> -</span><span id="Generator.window_sql-1408"><a href="#Generator.window_sql-1408"><span class="linenos">1408</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.window_sql-1409"><a href="#Generator.window_sql-1409"><span class="linenos">1409</span></a> -</span><span id="Generator.window_sql-1410"><a href="#Generator.window_sql-1410"><span class="linenos">1410</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="Generator.window_sql-1411"><a href="#Generator.window_sql-1411"><span class="linenos">1411</span></a> <span class="n">order_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">order_sql</span><span class="p">(</span><span class="n">order</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="k">if</span> <span class="n">order</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.window_sql-1412"><a href="#Generator.window_sql-1412"><span class="linenos">1412</span></a> -</span><span id="Generator.window_sql-1413"><a href="#Generator.window_sql-1413"><span class="linenos">1413</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="n">partition</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">partition</span> <span class="ow">and</span> <span class="n">order</span> <span class="k">else</span> <span class="n">partition</span> -</span><span id="Generator.window_sql-1414"><a href="#Generator.window_sql-1414"><span class="linenos">1414</span></a> -</span><span id="Generator.window_sql-1415"><a href="#Generator.window_sql-1415"><span class="linenos">1415</span></a> <span class="n">spec</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">"spec"</span><span class="p">)</span> -</span><span id="Generator.window_sql-1416"><a href="#Generator.window_sql-1416"><span class="linenos">1416</span></a> <span class="n">spec_sql</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">window_spec_sql</span><span class="p">(</span><span class="n">spec</span><span class="p">)</span> <span class="k">if</span> <span class="n">spec</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.window_sql-1417"><a href="#Generator.window_sql-1417"><span class="linenos">1417</span></a> -</span><span id="Generator.window_sql-1418"><a href="#Generator.window_sql-1418"><span class="linenos">1418</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.window_sql-1419"><a href="#Generator.window_sql-1419"><span class="linenos">1419</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">'AS'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">arg_key</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'windows'</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'OVER'</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.window_sql-1420"><a href="#Generator.window_sql-1420"><span class="linenos">1420</span></a> -</span><span id="Generator.window_sql-1421"><a href="#Generator.window_sql-1421"><span class="linenos">1421</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">partition</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">order</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">spec</span> <span class="ow">and</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="Generator.window_sql-1422"><a href="#Generator.window_sql-1422"><span class="linenos">1422</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.window_sql-1423"><a href="#Generator.window_sql-1423"><span class="linenos">1423</span></a> -</span><span id="Generator.window_sql-1424"><a href="#Generator.window_sql-1424"><span class="linenos">1424</span></a> <span class="n">window_args</span> <span class="o">=</span> <span class="n">alias</span> <span class="o">+</span> <span class="n">partition_sql</span> <span class="o">+</span> <span class="n">order_sql</span> <span class="o">+</span> <span class="n">spec_sql</span> -</span><span id="Generator.window_sql-1425"><a href="#Generator.window_sql-1425"><span class="linenos">1425</span></a> -</span><span id="Generator.window_sql-1426"><a href="#Generator.window_sql-1426"><span class="linenos">1426</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">window_args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.window_sql-1417"><a href="#Generator.window_sql-1417"><span class="linenos">1417</span></a> <span class="k">def</span> <span class="nf">window_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">Window</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.window_sql-1418"><a href="#Generator.window_sql-1418"><span class="linenos">1418</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.window_sql-1419"><a href="#Generator.window_sql-1419"><span class="linenos">1419</span></a> +</span><span id="Generator.window_sql-1420"><a href="#Generator.window_sql-1420"><span class="linenos">1420</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">partition_by_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.window_sql-1421"><a href="#Generator.window_sql-1421"><span class="linenos">1421</span></a> +</span><span id="Generator.window_sql-1422"><a href="#Generator.window_sql-1422"><span class="linenos">1422</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="Generator.window_sql-1423"><a href="#Generator.window_sql-1423"><span class="linenos">1423</span></a> <span class="n">order_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">order_sql</span><span class="p">(</span><span class="n">order</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="k">if</span> <span class="n">order</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.window_sql-1424"><a href="#Generator.window_sql-1424"><span class="linenos">1424</span></a> +</span><span id="Generator.window_sql-1425"><a href="#Generator.window_sql-1425"><span class="linenos">1425</span></a> <span class="n">partition_sql</span> <span class="o">=</span> <span class="n">partition</span> <span class="o">+</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">partition</span> <span class="ow">and</span> <span class="n">order</span> <span class="k">else</span> <span class="n">partition</span> +</span><span id="Generator.window_sql-1426"><a href="#Generator.window_sql-1426"><span class="linenos">1426</span></a> +</span><span id="Generator.window_sql-1427"><a href="#Generator.window_sql-1427"><span class="linenos">1427</span></a> <span class="n">spec</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">"spec"</span><span class="p">)</span> +</span><span id="Generator.window_sql-1428"><a href="#Generator.window_sql-1428"><span class="linenos">1428</span></a> <span class="n">spec_sql</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">window_spec_sql</span><span class="p">(</span><span class="n">spec</span><span class="p">)</span> <span class="k">if</span> <span class="n">spec</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.window_sql-1429"><a href="#Generator.window_sql-1429"><span class="linenos">1429</span></a> +</span><span id="Generator.window_sql-1430"><a href="#Generator.window_sql-1430"><span class="linenos">1430</span></a> <span class="n">alias</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.window_sql-1431"><a href="#Generator.window_sql-1431"><span class="linenos">1431</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="s1">'AS'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expression</span><span class="o">.</span><span class="n">arg_key</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="s1">'windows'</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">'OVER'</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.window_sql-1432"><a href="#Generator.window_sql-1432"><span class="linenos">1432</span></a> +</span><span id="Generator.window_sql-1433"><a href="#Generator.window_sql-1433"><span class="linenos">1433</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">partition</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">order</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">spec</span> <span class="ow">and</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="Generator.window_sql-1434"><a href="#Generator.window_sql-1434"><span class="linenos">1434</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">alias</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.window_sql-1435"><a href="#Generator.window_sql-1435"><span class="linenos">1435</span></a> +</span><span id="Generator.window_sql-1436"><a href="#Generator.window_sql-1436"><span class="linenos">1436</span></a> <span class="n">window_args</span> <span class="o">=</span> <span class="n">alias</span> <span class="o">+</span> <span class="n">partition_sql</span> <span class="o">+</span> <span class="n">order_sql</span> <span class="o">+</span> <span class="n">spec_sql</span> +</span><span id="Generator.window_sql-1437"><a href="#Generator.window_sql-1437"><span class="linenos">1437</span></a> +</span><span id="Generator.window_sql-1438"><a href="#Generator.window_sql-1438"><span class="linenos">1438</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> (</span><span class="si">{</span><span class="n">window_args</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -7747,9 +7820,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.partition_by_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.partition_by_sql-1428"><a href="#Generator.partition_by_sql-1428"><span class="linenos">1428</span></a> <span class="k">def</span> <span class="nf">partition_by_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">Window</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.partition_by_sql-1429"><a href="#Generator.partition_by_sql-1429"><span class="linenos">1429</span></a> <span class="n">partition</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">"partition_by"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.partition_by_sql-1430"><a href="#Generator.partition_by_sql-1430"><span class="linenos">1430</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.partition_by_sql-1440"><a href="#Generator.partition_by_sql-1440"><span class="linenos">1440</span></a> <span class="k">def</span> <span class="nf">partition_by_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">Window</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.partition_by_sql-1441"><a href="#Generator.partition_by_sql-1441"><span class="linenos">1441</span></a> <span class="n">partition</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">"partition_by"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.partition_by_sql-1442"><a href="#Generator.partition_by_sql-1442"><span class="linenos">1442</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PARTITION BY </span><span class="si">{</span><span class="n">partition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">partition</span> <span class="k">else</span> <span class="s2">""</span> </span></pre></div> @@ -7767,14 +7840,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.window_spec_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.window_spec_sql-1432"><a href="#Generator.window_spec_sql-1432"><span class="linenos">1432</span></a> <span class="k">def</span> <span class="nf">window_spec_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">WindowSpec</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.window_spec_sql-1433"><a href="#Generator.window_spec_sql-1433"><span class="linenos">1433</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator.window_spec_sql-1434"><a href="#Generator.window_spec_sql-1434"><span class="linenos">1434</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"start"</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">expression</span><span class="p">,</span> <span class="s2">"start_side"</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="Generator.window_spec_sql-1435"><a href="#Generator.window_spec_sql-1435"><span class="linenos">1435</span></a> <span class="n">end</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.window_spec_sql-1436"><a href="#Generator.window_spec_sql-1436"><span class="linenos">1436</span></a> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"end"</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">expression</span><span class="p">,</span> <span class="s2">"end_side"</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="Generator.window_spec_sql-1437"><a href="#Generator.window_spec_sql-1437"><span class="linenos">1437</span></a> <span class="ow">or</span> <span class="s2">"CURRENT ROW"</span> -</span><span id="Generator.window_spec_sql-1438"><a href="#Generator.window_spec_sql-1438"><span class="linenos">1438</span></a> <span class="p">)</span> -</span><span id="Generator.window_spec_sql-1439"><a href="#Generator.window_spec_sql-1439"><span class="linenos">1439</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.window_spec_sql-1444"><a href="#Generator.window_spec_sql-1444"><span class="linenos">1444</span></a> <span class="k">def</span> <span class="nf">window_spec_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">WindowSpec</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.window_spec_sql-1445"><a href="#Generator.window_spec_sql-1445"><span class="linenos">1445</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator.window_spec_sql-1446"><a href="#Generator.window_spec_sql-1446"><span class="linenos">1446</span></a> <span class="n">start</span> <span class="o">=</span> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"start"</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">expression</span><span class="p">,</span> <span class="s2">"start_side"</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="Generator.window_spec_sql-1447"><a href="#Generator.window_spec_sql-1447"><span class="linenos">1447</span></a> <span class="n">end</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.window_spec_sql-1448"><a href="#Generator.window_spec_sql-1448"><span class="linenos">1448</span></a> <span class="n">csv</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">expression</span><span class="p">,</span> <span class="s2">"end"</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">expression</span><span class="p">,</span> <span class="s2">"end_side"</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="Generator.window_spec_sql-1449"><a href="#Generator.window_spec_sql-1449"><span class="linenos">1449</span></a> <span class="ow">or</span> <span class="s2">"CURRENT ROW"</span> +</span><span id="Generator.window_spec_sql-1450"><a href="#Generator.window_spec_sql-1450"><span class="linenos">1450</span></a> <span class="p">)</span> +</span><span id="Generator.window_spec_sql-1451"><a href="#Generator.window_spec_sql-1451"><span class="linenos">1451</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">start</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7792,10 +7865,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.withingroup_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.withingroup_sql-1441"><a href="#Generator.withingroup_sql-1441"><span class="linenos">1441</span></a> <span class="k">def</span> <span class="nf">withingroup_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">WithinGroup</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.withingroup_sql-1442"><a href="#Generator.withingroup_sql-1442"><span class="linenos">1442</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.withingroup_sql-1443"><a href="#Generator.withingroup_sql-1443"><span class="linenos">1443</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># order has a leading space</span> -</span><span id="Generator.withingroup_sql-1444"><a href="#Generator.withingroup_sql-1444"><span class="linenos">1444</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> WITHIN GROUP (</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.withingroup_sql-1453"><a href="#Generator.withingroup_sql-1453"><span class="linenos">1453</span></a> <span class="k">def</span> <span class="nf">withingroup_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">WithinGroup</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.withingroup_sql-1454"><a href="#Generator.withingroup_sql-1454"><span class="linenos">1454</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.withingroup_sql-1455"><a href="#Generator.withingroup_sql-1455"><span class="linenos">1455</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)[</span><span class="mi">1</span><span class="p">:]</span> <span class="c1"># order has a leading space</span> +</span><span id="Generator.withingroup_sql-1456"><a href="#Generator.withingroup_sql-1456"><span class="linenos">1456</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> WITHIN GROUP (</span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -7813,11 +7886,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.between_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.between_sql-1446"><a href="#Generator.between_sql-1446"><span class="linenos">1446</span></a> <span class="k">def</span> <span class="nf">between_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">Between</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.between_sql-1447"><a href="#Generator.between_sql-1447"><span class="linenos">1447</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.between_sql-1448"><a href="#Generator.between_sql-1448"><span class="linenos">1448</span></a> <span class="n">low</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">"low"</span><span class="p">)</span> -</span><span id="Generator.between_sql-1449"><a href="#Generator.between_sql-1449"><span class="linenos">1449</span></a> <span class="n">high</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">"high"</span><span class="p">)</span> -</span><span id="Generator.between_sql-1450"><a href="#Generator.between_sql-1450"><span class="linenos">1450</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">low</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">high</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.between_sql-1458"><a href="#Generator.between_sql-1458"><span class="linenos">1458</span></a> <span class="k">def</span> <span class="nf">between_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">Between</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.between_sql-1459"><a href="#Generator.between_sql-1459"><span class="linenos">1459</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.between_sql-1460"><a href="#Generator.between_sql-1460"><span class="linenos">1460</span></a> <span class="n">low</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">"low"</span><span class="p">)</span> +</span><span id="Generator.between_sql-1461"><a href="#Generator.between_sql-1461"><span class="linenos">1461</span></a> <span class="n">high</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">"high"</span><span class="p">)</span> +</span><span id="Generator.between_sql-1462"><a href="#Generator.between_sql-1462"><span class="linenos">1462</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> BETWEEN </span><span class="si">{</span><span class="n">low</span><span class="si">}</span><span class="s2"> AND </span><span class="si">{</span><span class="n">high</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7835,11 +7908,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bracket_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bracket_sql-1452"><a href="#Generator.bracket_sql-1452"><span class="linenos">1452</span></a> <span class="k">def</span> <span class="nf">bracket_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">Bracket</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bracket_sql-1453"><a href="#Generator.bracket_sql-1453"><span class="linenos">1453</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> -</span><span id="Generator.bracket_sql-1454"><a href="#Generator.bracket_sql-1454"><span class="linenos">1454</span></a> <span class="n">expressions_sql</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator.bracket_sql-1455"><a href="#Generator.bracket_sql-1455"><span class="linenos">1455</span></a> -</span><span id="Generator.bracket_sql-1456"><a href="#Generator.bracket_sql-1456"><span class="linenos">1456</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">]"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bracket_sql-1464"><a href="#Generator.bracket_sql-1464"><span class="linenos">1464</span></a> <span class="k">def</span> <span class="nf">bracket_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">Bracket</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bracket_sql-1465"><a href="#Generator.bracket_sql-1465"><span class="linenos">1465</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> +</span><span id="Generator.bracket_sql-1466"><a href="#Generator.bracket_sql-1466"><span class="linenos">1466</span></a> <span class="n">expressions_sql</span> <span class="o">=</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator.bracket_sql-1467"><a href="#Generator.bracket_sql-1467"><span class="linenos">1467</span></a> +</span><span id="Generator.bracket_sql-1468"><a href="#Generator.bracket_sql-1468"><span class="linenos">1468</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">]"</span> </span></pre></div> @@ -7857,8 +7930,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.all_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.all_sql-1458"><a href="#Generator.all_sql-1458"><span class="linenos">1458</span></a> <span class="k">def</span> <span class="nf">all_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">All</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.all_sql-1459"><a href="#Generator.all_sql-1459"><span class="linenos">1459</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALL </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.all_sql-1470"><a href="#Generator.all_sql-1470"><span class="linenos">1470</span></a> <span class="k">def</span> <span class="nf">all_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">All</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.all_sql-1471"><a href="#Generator.all_sql-1471"><span class="linenos">1471</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALL </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7876,11 +7949,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.any_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.any_sql-1461"><a href="#Generator.any_sql-1461"><span class="linenos">1461</span></a> <span class="k">def</span> <span class="nf">any_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">Any</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.any_sql-1462"><a href="#Generator.any_sql-1462"><span class="linenos">1462</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.any_sql-1463"><a href="#Generator.any_sql-1463"><span class="linenos">1463</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Generator.any_sql-1464"><a href="#Generator.any_sql-1464"><span class="linenos">1464</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Generator.any_sql-1465"><a href="#Generator.any_sql-1465"><span class="linenos">1465</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ANY </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.any_sql-1473"><a href="#Generator.any_sql-1473"><span class="linenos">1473</span></a> <span class="k">def</span> <span class="nf">any_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">Any</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.any_sql-1474"><a href="#Generator.any_sql-1474"><span class="linenos">1474</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.any_sql-1475"><a href="#Generator.any_sql-1475"><span class="linenos">1475</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">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Generator.any_sql-1476"><a href="#Generator.any_sql-1476"><span class="linenos">1476</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Generator.any_sql-1477"><a href="#Generator.any_sql-1477"><span class="linenos">1477</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ANY </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7898,8 +7971,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.exists_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.exists_sql-1467"><a href="#Generator.exists_sql-1467"><span class="linenos">1467</span></a> <span class="k">def</span> <span class="nf">exists_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">Exists</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.exists_sql-1468"><a href="#Generator.exists_sql-1468"><span class="linenos">1468</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXISTS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.exists_sql-1479"><a href="#Generator.exists_sql-1479"><span class="linenos">1479</span></a> <span class="k">def</span> <span class="nf">exists_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">Exists</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.exists_sql-1480"><a href="#Generator.exists_sql-1480"><span class="linenos">1480</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXISTS</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7917,25 +7990,25 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.case_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.case_sql-1470"><a href="#Generator.case_sql-1470"><span class="linenos">1470</span></a> <span class="k">def</span> <span class="nf">case_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">Case</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.case_sql-1471"><a href="#Generator.case_sql-1471"><span class="linenos">1471</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.case_sql-1472"><a href="#Generator.case_sql-1472"><span class="linenos">1472</span></a> <span class="n">statements</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"CASE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"CASE"</span><span class="p">]</span> -</span><span id="Generator.case_sql-1473"><a href="#Generator.case_sql-1473"><span class="linenos">1473</span></a> -</span><span id="Generator.case_sql-1474"><a href="#Generator.case_sql-1474"><span class="linenos">1474</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"ifs"</span><span class="p">]:</span> -</span><span id="Generator.case_sql-1475"><a href="#Generator.case_sql-1475"><span class="linenos">1475</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WHEN </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="Generator.case_sql-1476"><a href="#Generator.case_sql-1476"><span class="linenos">1476</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"THEN </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">'true'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.case_sql-1477"><a href="#Generator.case_sql-1477"><span class="linenos">1477</span></a> -</span><span id="Generator.case_sql-1478"><a href="#Generator.case_sql-1478"><span class="linenos">1478</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator.case_sql-1479"><a href="#Generator.case_sql-1479"><span class="linenos">1479</span></a> -</span><span id="Generator.case_sql-1480"><a href="#Generator.case_sql-1480"><span class="linenos">1480</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator.case_sql-1481"><a href="#Generator.case_sql-1481"><span class="linenos">1481</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ELSE </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.case_sql-1482"><a href="#Generator.case_sql-1482"><span class="linenos">1482</span></a> -</span><span id="Generator.case_sql-1483"><a href="#Generator.case_sql-1483"><span class="linenos">1483</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"END"</span><span class="p">)</span> -</span><span id="Generator.case_sql-1484"><a href="#Generator.case_sql-1484"><span class="linenos">1484</span></a> -</span><span id="Generator.case_sql-1485"><a href="#Generator.case_sql-1485"><span class="linenos">1485</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> -</span><span id="Generator.case_sql-1486"><a href="#Generator.case_sql-1486"><span class="linenos">1486</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">),</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.case_sql-1487"><a href="#Generator.case_sql-1487"><span class="linenos">1487</span></a> -</span><span id="Generator.case_sql-1488"><a href="#Generator.case_sql-1488"><span class="linenos">1488</span></a> <span class="k">return</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.case_sql-1482"><a href="#Generator.case_sql-1482"><span class="linenos">1482</span></a> <span class="k">def</span> <span class="nf">case_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">Case</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.case_sql-1483"><a href="#Generator.case_sql-1483"><span class="linenos">1483</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.case_sql-1484"><a href="#Generator.case_sql-1484"><span class="linenos">1484</span></a> <span class="n">statements</span> <span class="o">=</span> <span class="p">[</span><span class="sa">f</span><span class="s2">"CASE </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"CASE"</span><span class="p">]</span> +</span><span id="Generator.case_sql-1485"><a href="#Generator.case_sql-1485"><span class="linenos">1485</span></a> +</span><span id="Generator.case_sql-1486"><a href="#Generator.case_sql-1486"><span class="linenos">1486</span></a> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"ifs"</span><span class="p">]:</span> +</span><span id="Generator.case_sql-1487"><a href="#Generator.case_sql-1487"><span class="linenos">1487</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"WHEN </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="Generator.case_sql-1488"><a href="#Generator.case_sql-1488"><span class="linenos">1488</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"THEN </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">'true'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.case_sql-1489"><a href="#Generator.case_sql-1489"><span class="linenos">1489</span></a> +</span><span id="Generator.case_sql-1490"><a href="#Generator.case_sql-1490"><span class="linenos">1490</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator.case_sql-1491"><a href="#Generator.case_sql-1491"><span class="linenos">1491</span></a> +</span><span id="Generator.case_sql-1492"><a href="#Generator.case_sql-1492"><span class="linenos">1492</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator.case_sql-1493"><a href="#Generator.case_sql-1493"><span class="linenos">1493</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ELSE </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.case_sql-1494"><a href="#Generator.case_sql-1494"><span class="linenos">1494</span></a> +</span><span id="Generator.case_sql-1495"><a href="#Generator.case_sql-1495"><span class="linenos">1495</span></a> <span class="n">statements</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"END"</span><span class="p">)</span> +</span><span id="Generator.case_sql-1496"><a href="#Generator.case_sql-1496"><span class="linenos">1496</span></a> +</span><span id="Generator.case_sql-1497"><a href="#Generator.case_sql-1497"><span class="linenos">1497</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> +</span><span id="Generator.case_sql-1498"><a href="#Generator.case_sql-1498"><span class="linenos">1498</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">),</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.case_sql-1499"><a href="#Generator.case_sql-1499"><span class="linenos">1499</span></a> +</span><span id="Generator.case_sql-1500"><a href="#Generator.case_sql-1500"><span class="linenos">1500</span></a> <span class="k">return</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">statements</span><span class="p">)</span> </span></pre></div> @@ -7953,10 +8026,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.constraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.constraint_sql-1490"><a href="#Generator.constraint_sql-1490"><span class="linenos">1490</span></a> <span class="k">def</span> <span class="nf">constraint_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">Constraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.constraint_sql-1491"><a href="#Generator.constraint_sql-1491"><span class="linenos">1491</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.constraint_sql-1492"><a href="#Generator.constraint_sql-1492"><span class="linenos">1492</span></a> <span class="n">expressions</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="Generator.constraint_sql-1493"><a href="#Generator.constraint_sql-1493"><span class="linenos">1493</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.constraint_sql-1502"><a href="#Generator.constraint_sql-1502"><span class="linenos">1502</span></a> <span class="k">def</span> <span class="nf">constraint_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">Constraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.constraint_sql-1503"><a href="#Generator.constraint_sql-1503"><span class="linenos">1503</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.constraint_sql-1504"><a href="#Generator.constraint_sql-1504"><span class="linenos">1504</span></a> <span class="n">expressions</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="Generator.constraint_sql-1505"><a href="#Generator.constraint_sql-1505"><span class="linenos">1505</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -7974,10 +8047,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.extract_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.extract_sql-1495"><a href="#Generator.extract_sql-1495"><span class="linenos">1495</span></a> <span class="k">def</span> <span class="nf">extract_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">Extract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.extract_sql-1496"><a href="#Generator.extract_sql-1496"><span class="linenos">1496</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.extract_sql-1497"><a href="#Generator.extract_sql-1497"><span class="linenos">1497</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.extract_sql-1498"><a href="#Generator.extract_sql-1498"><span class="linenos">1498</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXTRACT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FROM </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.extract_sql-1507"><a href="#Generator.extract_sql-1507"><span class="linenos">1507</span></a> <span class="k">def</span> <span class="nf">extract_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">Extract</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.extract_sql-1508"><a href="#Generator.extract_sql-1508"><span class="linenos">1508</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.extract_sql-1509"><a href="#Generator.extract_sql-1509"><span class="linenos">1509</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.extract_sql-1510"><a href="#Generator.extract_sql-1510"><span class="linenos">1510</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"EXTRACT(</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> FROM </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -7995,15 +8068,15 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.trim_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.trim_sql-1500"><a href="#Generator.trim_sql-1500"><span class="linenos">1500</span></a> <span class="k">def</span> <span class="nf">trim_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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.trim_sql-1501"><a href="#Generator.trim_sql-1501"><span class="linenos">1501</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> -</span><span id="Generator.trim_sql-1502"><a href="#Generator.trim_sql-1502"><span class="linenos">1502</span></a> -</span><span id="Generator.trim_sql-1503"><a href="#Generator.trim_sql-1503"><span class="linenos">1503</span></a> <span class="k">if</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"LEADING"</span><span class="p">:</span> -</span><span id="Generator.trim_sql-1504"><a href="#Generator.trim_sql-1504"><span class="linenos">1504</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"LTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Generator.trim_sql-1505"><a href="#Generator.trim_sql-1505"><span class="linenos">1505</span></a> <span class="k">elif</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"TRAILING"</span><span class="p">:</span> -</span><span id="Generator.trim_sql-1506"><a href="#Generator.trim_sql-1506"><span class="linenos">1506</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"RTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Generator.trim_sql-1507"><a href="#Generator.trim_sql-1507"><span class="linenos">1507</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.trim_sql-1508"><a href="#Generator.trim_sql-1508"><span class="linenos">1508</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.trim_sql-1512"><a href="#Generator.trim_sql-1512"><span class="linenos">1512</span></a> <span class="k">def</span> <span class="nf">trim_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">Trim</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.trim_sql-1513"><a href="#Generator.trim_sql-1513"><span class="linenos">1513</span></a> <span class="n">trim_type</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">"position"</span><span class="p">)</span> +</span><span id="Generator.trim_sql-1514"><a href="#Generator.trim_sql-1514"><span class="linenos">1514</span></a> +</span><span id="Generator.trim_sql-1515"><a href="#Generator.trim_sql-1515"><span class="linenos">1515</span></a> <span class="k">if</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"LEADING"</span><span class="p">:</span> +</span><span id="Generator.trim_sql-1516"><a href="#Generator.trim_sql-1516"><span class="linenos">1516</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"LTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Generator.trim_sql-1517"><a href="#Generator.trim_sql-1517"><span class="linenos">1517</span></a> <span class="k">elif</span> <span class="n">trim_type</span> <span class="o">==</span> <span class="s2">"TRAILING"</span><span class="p">:</span> +</span><span id="Generator.trim_sql-1518"><a href="#Generator.trim_sql-1518"><span class="linenos">1518</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"RTRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Generator.trim_sql-1519"><a href="#Generator.trim_sql-1519"><span class="linenos">1519</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.trim_sql-1520"><a href="#Generator.trim_sql-1520"><span class="linenos">1520</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="s2">"TRIM"</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -8021,10 +8094,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.concat_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.concat_sql-1510"><a href="#Generator.concat_sql-1510"><span class="linenos">1510</span></a> <span class="k">def</span> <span class="nf">concat_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">Concat</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.concat_sql-1511"><a href="#Generator.concat_sql-1511"><span class="linenos">1511</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Generator.concat_sql-1512"><a href="#Generator.concat_sql-1512"><span class="linenos">1512</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="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> -</span><span id="Generator.concat_sql-1513"><a href="#Generator.concat_sql-1513"><span class="linenos">1513</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.concat_sql-1522"><a href="#Generator.concat_sql-1522"><span class="linenos">1522</span></a> <span class="k">def</span> <span class="nf">concat_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">Concat</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.concat_sql-1523"><a href="#Generator.concat_sql-1523"><span class="linenos">1523</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Generator.concat_sql-1524"><a href="#Generator.concat_sql-1524"><span class="linenos">1524</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="o">.</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> +</span><span id="Generator.concat_sql-1525"><a href="#Generator.concat_sql-1525"><span class="linenos">1525</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">function_fallback_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </span></pre></div> @@ -8042,9 +8115,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.check_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.check_sql-1515"><a href="#Generator.check_sql-1515"><span class="linenos">1515</span></a> <span class="k">def</span> <span class="nf">check_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">Check</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.check_sql-1516"><a href="#Generator.check_sql-1516"><span class="linenos">1516</span></a> <span class="n">this</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="n">key</span><span class="o">=</span><span class="s2">"this"</span><span class="p">)</span> -</span><span id="Generator.check_sql-1517"><a href="#Generator.check_sql-1517"><span class="linenos">1517</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECK (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.check_sql-1527"><a href="#Generator.check_sql-1527"><span class="linenos">1527</span></a> <span class="k">def</span> <span class="nf">check_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">Check</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.check_sql-1528"><a href="#Generator.check_sql-1528"><span class="linenos">1528</span></a> <span class="n">this</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="n">key</span><span class="o">=</span><span class="s2">"this"</span><span class="p">)</span> +</span><span id="Generator.check_sql-1529"><a href="#Generator.check_sql-1529"><span class="linenos">1529</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CHECK (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -8062,15 +8135,15 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.foreignkey_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.foreignkey_sql-1519"><a href="#Generator.foreignkey_sql-1519"><span class="linenos">1519</span></a> <span class="k">def</span> <span class="nf">foreignkey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.foreignkey_sql-1520"><a href="#Generator.foreignkey_sql-1520"><span class="linenos">1520</span></a> <span class="n">expressions</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="Generator.foreignkey_sql-1521"><a href="#Generator.foreignkey_sql-1521"><span class="linenos">1521</span></a> <span class="n">reference</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">"reference"</span><span class="p">)</span> -</span><span id="Generator.foreignkey_sql-1522"><a href="#Generator.foreignkey_sql-1522"><span class="linenos">1522</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">reference</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">reference</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.foreignkey_sql-1523"><a href="#Generator.foreignkey_sql-1523"><span class="linenos">1523</span></a> <span class="n">delete</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">"delete"</span><span class="p">)</span> -</span><span id="Generator.foreignkey_sql-1524"><a href="#Generator.foreignkey_sql-1524"><span class="linenos">1524</span></a> <span class="n">delete</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON DELETE </span><span class="si">{</span><span class="n">delete</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">delete</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.foreignkey_sql-1525"><a href="#Generator.foreignkey_sql-1525"><span class="linenos">1525</span></a> <span class="n">update</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">"update"</span><span class="p">)</span> -</span><span id="Generator.foreignkey_sql-1526"><a href="#Generator.foreignkey_sql-1526"><span class="linenos">1526</span></a> <span class="n">update</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON UPDATE </span><span class="si">{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">update</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.foreignkey_sql-1527"><a href="#Generator.foreignkey_sql-1527"><span class="linenos">1527</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOREIGN KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">reference</span><span class="si">}{</span><span class="n">delete</span><span class="si">}{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.foreignkey_sql-1531"><a href="#Generator.foreignkey_sql-1531"><span class="linenos">1531</span></a> <span class="k">def</span> <span class="nf">foreignkey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.foreignkey_sql-1532"><a href="#Generator.foreignkey_sql-1532"><span class="linenos">1532</span></a> <span class="n">expressions</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="Generator.foreignkey_sql-1533"><a href="#Generator.foreignkey_sql-1533"><span class="linenos">1533</span></a> <span class="n">reference</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">"reference"</span><span class="p">)</span> +</span><span id="Generator.foreignkey_sql-1534"><a href="#Generator.foreignkey_sql-1534"><span class="linenos">1534</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">reference</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">reference</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.foreignkey_sql-1535"><a href="#Generator.foreignkey_sql-1535"><span class="linenos">1535</span></a> <span class="n">delete</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">"delete"</span><span class="p">)</span> +</span><span id="Generator.foreignkey_sql-1536"><a href="#Generator.foreignkey_sql-1536"><span class="linenos">1536</span></a> <span class="n">delete</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON DELETE </span><span class="si">{</span><span class="n">delete</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">delete</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.foreignkey_sql-1537"><a href="#Generator.foreignkey_sql-1537"><span class="linenos">1537</span></a> <span class="n">update</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">"update"</span><span class="p">)</span> +</span><span id="Generator.foreignkey_sql-1538"><a href="#Generator.foreignkey_sql-1538"><span class="linenos">1538</span></a> <span class="n">update</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON UPDATE </span><span class="si">{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">update</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.foreignkey_sql-1539"><a href="#Generator.foreignkey_sql-1539"><span class="linenos">1539</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"FOREIGN KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">reference</span><span class="si">}{</span><span class="n">delete</span><span class="si">}{</span><span class="n">update</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8088,11 +8161,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.primarykey_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.primarykey_sql-1529"><a href="#Generator.primarykey_sql-1529"><span class="linenos">1529</span></a> <span class="k">def</span> <span class="nf">primarykey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.primarykey_sql-1530"><a href="#Generator.primarykey_sql-1530"><span class="linenos">1530</span></a> <span class="n">expressions</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="Generator.primarykey_sql-1531"><a href="#Generator.primarykey_sql-1531"><span class="linenos">1531</span></a> <span class="n">options</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="s2">"options"</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="Generator.primarykey_sql-1532"><a href="#Generator.primarykey_sql-1532"><span class="linenos">1532</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.primarykey_sql-1533"><a href="#Generator.primarykey_sql-1533"><span class="linenos">1533</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.primarykey_sql-1541"><a href="#Generator.primarykey_sql-1541"><span class="linenos">1541</span></a> <span class="k">def</span> <span class="nf">primarykey_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">ForeignKey</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.primarykey_sql-1542"><a href="#Generator.primarykey_sql-1542"><span class="linenos">1542</span></a> <span class="n">expressions</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="Generator.primarykey_sql-1543"><a href="#Generator.primarykey_sql-1543"><span class="linenos">1543</span></a> <span class="n">options</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="s2">"options"</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="Generator.primarykey_sql-1544"><a href="#Generator.primarykey_sql-1544"><span class="linenos">1544</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.primarykey_sql-1545"><a href="#Generator.primarykey_sql-1545"><span class="linenos">1545</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"PRIMARY KEY (</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8110,9 +8183,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.unique_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.unique_sql-1535"><a href="#Generator.unique_sql-1535"><span class="linenos">1535</span></a> <span class="k">def</span> <span class="nf">unique_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">Unique</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.unique_sql-1536"><a href="#Generator.unique_sql-1536"><span class="linenos">1536</span></a> <span class="n">columns</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">"expressions"</span><span class="p">)</span> -</span><span id="Generator.unique_sql-1537"><a href="#Generator.unique_sql-1537"><span class="linenos">1537</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNIQUE (</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.unique_sql-1547"><a href="#Generator.unique_sql-1547"><span class="linenos">1547</span></a> <span class="k">def</span> <span class="nf">unique_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">Unique</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.unique_sql-1548"><a href="#Generator.unique_sql-1548"><span class="linenos">1548</span></a> <span class="n">columns</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">"expressions"</span><span class="p">)</span> +</span><span id="Generator.unique_sql-1549"><a href="#Generator.unique_sql-1549"><span class="linenos">1549</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"UNIQUE (</span><span class="si">{</span><span class="n">columns</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -8130,10 +8203,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.if_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.if_sql-1539"><a href="#Generator.if_sql-1539"><span class="linenos">1539</span></a> <span class="k">def</span> <span class="nf">if_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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.if_sql-1540"><a href="#Generator.if_sql-1540"><span class="linenos">1540</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">case_sql</span><span class="p">(</span> -</span><span id="Generator.if_sql-1541"><a href="#Generator.if_sql-1541"><span class="linenos">1541</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Case</span><span class="p">(</span><span class="n">ifs</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()],</span> <span class="n">default</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">"false"</span><span class="p">))</span> -</span><span id="Generator.if_sql-1542"><a href="#Generator.if_sql-1542"><span class="linenos">1542</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.if_sql-1551"><a href="#Generator.if_sql-1551"><span class="linenos">1551</span></a> <span class="k">def</span> <span class="nf">if_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">If</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.if_sql-1552"><a href="#Generator.if_sql-1552"><span class="linenos">1552</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">case_sql</span><span class="p">(</span> +</span><span id="Generator.if_sql-1553"><a href="#Generator.if_sql-1553"><span class="linenos">1553</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Case</span><span class="p">(</span><span class="n">ifs</span><span class="o">=</span><span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">()],</span> <span class="n">default</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">"false"</span><span class="p">))</span> +</span><span id="Generator.if_sql-1554"><a href="#Generator.if_sql-1554"><span class="linenos">1554</span></a> <span class="p">)</span> </span></pre></div> @@ -8151,22 +8224,22 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.in_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.in_sql-1544"><a href="#Generator.in_sql-1544"><span class="linenos">1544</span></a> <span class="k">def</span> <span class="nf">in_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">In</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.in_sql-1545"><a href="#Generator.in_sql-1545"><span class="linenos">1545</span></a> <span class="n">query</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">"query"</span><span class="p">)</span> -</span><span id="Generator.in_sql-1546"><a href="#Generator.in_sql-1546"><span class="linenos">1546</span></a> <span class="n">unnest</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">"unnest"</span><span class="p">)</span> -</span><span id="Generator.in_sql-1547"><a href="#Generator.in_sql-1547"><span class="linenos">1547</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> -</span><span id="Generator.in_sql-1548"><a href="#Generator.in_sql-1548"><span class="linenos">1548</span></a> <span class="n">is_global</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.in_sql-1549"><a href="#Generator.in_sql-1549"><span class="linenos">1549</span></a> -</span><span id="Generator.in_sql-1550"><a href="#Generator.in_sql-1550"><span class="linenos">1550</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> -</span><span id="Generator.in_sql-1551"><a href="#Generator.in_sql-1551"><span class="linenos">1551</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> -</span><span id="Generator.in_sql-1552"><a href="#Generator.in_sql-1552"><span class="linenos">1552</span></a> <span class="k">elif</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="Generator.in_sql-1553"><a href="#Generator.in_sql-1553"><span class="linenos">1553</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">in_unnest_op</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span> -</span><span id="Generator.in_sql-1554"><a href="#Generator.in_sql-1554"><span class="linenos">1554</span></a> <span class="k">elif</span> <span class="n">field</span><span class="p">:</span> -</span><span id="Generator.in_sql-1555"><a href="#Generator.in_sql-1555"><span class="linenos">1555</span></a> <span class="n">in_sql</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">field</span><span class="p">)</span> -</span><span id="Generator.in_sql-1556"><a href="#Generator.in_sql-1556"><span class="linenos">1556</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.in_sql-1557"><a href="#Generator.in_sql-1557"><span class="linenos">1557</span></a> <span class="n">in_sql</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.in_sql-1558"><a href="#Generator.in_sql-1558"><span class="linenos">1558</span></a> -</span><span id="Generator.in_sql-1559"><a href="#Generator.in_sql-1559"><span class="linenos">1559</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">is_global</span><span class="si">}</span><span class="s2"> IN </span><span class="si">{</span><span class="n">in_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.in_sql-1556"><a href="#Generator.in_sql-1556"><span class="linenos">1556</span></a> <span class="k">def</span> <span class="nf">in_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">In</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.in_sql-1557"><a href="#Generator.in_sql-1557"><span class="linenos">1557</span></a> <span class="n">query</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">"query"</span><span class="p">)</span> +</span><span id="Generator.in_sql-1558"><a href="#Generator.in_sql-1558"><span class="linenos">1558</span></a> <span class="n">unnest</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">"unnest"</span><span class="p">)</span> +</span><span id="Generator.in_sql-1559"><a href="#Generator.in_sql-1559"><span class="linenos">1559</span></a> <span class="n">field</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">"field"</span><span class="p">)</span> +</span><span id="Generator.in_sql-1560"><a href="#Generator.in_sql-1560"><span class="linenos">1560</span></a> <span class="n">is_global</span> <span class="o">=</span> <span class="s2">" GLOBAL"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"is_global"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.in_sql-1561"><a href="#Generator.in_sql-1561"><span class="linenos">1561</span></a> +</span><span id="Generator.in_sql-1562"><a href="#Generator.in_sql-1562"><span class="linenos">1562</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> +</span><span id="Generator.in_sql-1563"><a href="#Generator.in_sql-1563"><span class="linenos">1563</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">query</span><span class="p">)</span> +</span><span id="Generator.in_sql-1564"><a href="#Generator.in_sql-1564"><span class="linenos">1564</span></a> <span class="k">elif</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="Generator.in_sql-1565"><a href="#Generator.in_sql-1565"><span class="linenos">1565</span></a> <span class="n">in_sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">in_unnest_op</span><span class="p">(</span><span class="n">unnest</span><span class="p">)</span> +</span><span id="Generator.in_sql-1566"><a href="#Generator.in_sql-1566"><span class="linenos">1566</span></a> <span class="k">elif</span> <span class="n">field</span><span class="p">:</span> +</span><span id="Generator.in_sql-1567"><a href="#Generator.in_sql-1567"><span class="linenos">1567</span></a> <span class="n">in_sql</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">field</span><span class="p">)</span> +</span><span id="Generator.in_sql-1568"><a href="#Generator.in_sql-1568"><span class="linenos">1568</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.in_sql-1569"><a href="#Generator.in_sql-1569"><span class="linenos">1569</span></a> <span class="n">in_sql</span> <span class="o">=</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">expressions</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.in_sql-1570"><a href="#Generator.in_sql-1570"><span class="linenos">1570</span></a> +</span><span id="Generator.in_sql-1571"><a href="#Generator.in_sql-1571"><span class="linenos">1571</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">is_global</span><span class="si">}</span><span class="s2"> IN </span><span class="si">{</span><span class="n">in_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8184,8 +8257,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.in_unnest_op"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.in_unnest_op-1561"><a href="#Generator.in_unnest_op-1561"><span class="linenos">1561</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</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="Generator.in_unnest_op-1562"><a href="#Generator.in_unnest_op-1562"><span class="linenos">1562</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(SELECT </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">unnest</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.in_unnest_op-1573"><a href="#Generator.in_unnest_op-1573"><span class="linenos">1573</span></a> <span class="k">def</span> <span class="nf">in_unnest_op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unnest</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="Generator.in_unnest_op-1574"><a href="#Generator.in_unnest_op-1574"><span class="linenos">1574</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"(SELECT </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">unnest</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -8203,19 +8276,19 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.interval_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.interval_sql-1564"><a href="#Generator.interval_sql-1564"><span class="linenos">1564</span></a> <span class="k">def</span> <span class="nf">interval_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">Interval</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.interval_sql-1565"><a href="#Generator.interval_sql-1565"><span class="linenos">1565</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.interval_sql-1566"><a href="#Generator.interval_sql-1566"><span class="linenos">1566</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> -</span><span id="Generator.interval_sql-1567"><a href="#Generator.interval_sql-1567"><span class="linenos">1567</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.interval_sql-1568"><a href="#Generator.interval_sql-1568"><span class="linenos">1568</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.interval_sql-1569"><a href="#Generator.interval_sql-1569"><span class="linenos">1569</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Paren</span><span class="p">)</span> -</span><span id="Generator.interval_sql-1570"><a href="#Generator.interval_sql-1570"><span class="linenos">1570</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> -</span><span id="Generator.interval_sql-1571"><a href="#Generator.interval_sql-1571"><span class="linenos">1571</span></a> <span class="p">)</span> -</span><span id="Generator.interval_sql-1572"><a href="#Generator.interval_sql-1572"><span class="linenos">1572</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.interval_sql-1573"><a href="#Generator.interval_sql-1573"><span class="linenos">1573</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Generator.interval_sql-1574"><a href="#Generator.interval_sql-1574"><span class="linenos">1574</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> -</span><span id="Generator.interval_sql-1575"><a href="#Generator.interval_sql-1575"><span class="linenos">1575</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.interval_sql-1576"><a href="#Generator.interval_sql-1576"><span class="linenos">1576</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERVAL</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.interval_sql-1576"><a href="#Generator.interval_sql-1576"><span class="linenos">1576</span></a> <span class="k">def</span> <span class="nf">interval_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">Interval</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.interval_sql-1577"><a href="#Generator.interval_sql-1577"><span class="linenos">1577</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.interval_sql-1578"><a href="#Generator.interval_sql-1578"><span class="linenos">1578</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> +</span><span id="Generator.interval_sql-1579"><a href="#Generator.interval_sql-1579"><span class="linenos">1579</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.interval_sql-1580"><a href="#Generator.interval_sql-1580"><span class="linenos">1580</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.interval_sql-1581"><a href="#Generator.interval_sql-1581"><span class="linenos">1581</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Paren</span><span class="p">)</span> +</span><span id="Generator.interval_sql-1582"><a href="#Generator.interval_sql-1582"><span class="linenos">1582</span></a> <span class="k">else</span> <span class="sa">f</span><span class="s2">" (</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">)"</span> +</span><span id="Generator.interval_sql-1583"><a href="#Generator.interval_sql-1583"><span class="linenos">1583</span></a> <span class="p">)</span> +</span><span id="Generator.interval_sql-1584"><a href="#Generator.interval_sql-1584"><span class="linenos">1584</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.interval_sql-1585"><a href="#Generator.interval_sql-1585"><span class="linenos">1585</span></a> <span class="n">this</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Generator.interval_sql-1586"><a href="#Generator.interval_sql-1586"><span class="linenos">1586</span></a> <span class="n">unit</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">"unit"</span><span class="p">)</span> +</span><span id="Generator.interval_sql-1587"><a href="#Generator.interval_sql-1587"><span class="linenos">1587</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">unit</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.interval_sql-1588"><a href="#Generator.interval_sql-1588"><span class="linenos">1588</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"INTERVAL</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">unit</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8233,8 +8306,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.return_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.return_sql-1578"><a href="#Generator.return_sql-1578"><span class="linenos">1578</span></a> <span class="k">def</span> <span class="nf">return_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">Return</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.return_sql-1579"><a href="#Generator.return_sql-1579"><span class="linenos">1579</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURN </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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.return_sql-1590"><a href="#Generator.return_sql-1590"><span class="linenos">1590</span></a> <span class="k">def</span> <span class="nf">return_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">Return</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.return_sql-1591"><a href="#Generator.return_sql-1591"><span class="linenos">1591</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RETURN </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">expression</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></pre></div> @@ -8252,13 +8325,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.reference_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.reference_sql-1581"><a href="#Generator.reference_sql-1581"><span class="linenos">1581</span></a> <span class="k">def</span> <span class="nf">reference_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">Reference</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.reference_sql-1582"><a href="#Generator.reference_sql-1582"><span class="linenos">1582</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.reference_sql-1583"><a href="#Generator.reference_sql-1583"><span class="linenos">1583</span></a> <span class="n">expressions</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="Generator.reference_sql-1584"><a href="#Generator.reference_sql-1584"><span class="linenos">1584</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.reference_sql-1585"><a href="#Generator.reference_sql-1585"><span class="linenos">1585</span></a> <span class="n">options</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="s2">"options"</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="Generator.reference_sql-1586"><a href="#Generator.reference_sql-1586"><span class="linenos">1586</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.reference_sql-1587"><a href="#Generator.reference_sql-1587"><span class="linenos">1587</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REFERENCES </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.reference_sql-1593"><a href="#Generator.reference_sql-1593"><span class="linenos">1593</span></a> <span class="k">def</span> <span class="nf">reference_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">Reference</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.reference_sql-1594"><a href="#Generator.reference_sql-1594"><span class="linenos">1594</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.reference_sql-1595"><a href="#Generator.reference_sql-1595"><span class="linenos">1595</span></a> <span class="n">expressions</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="Generator.reference_sql-1596"><a href="#Generator.reference_sql-1596"><span class="linenos">1596</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">expressions</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.reference_sql-1597"><a href="#Generator.reference_sql-1597"><span class="linenos">1597</span></a> <span class="n">options</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="s2">"options"</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="Generator.reference_sql-1598"><a href="#Generator.reference_sql-1598"><span class="linenos">1598</span></a> <span class="n">options</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">options</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.reference_sql-1599"><a href="#Generator.reference_sql-1599"><span class="linenos">1599</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"REFERENCES </span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}{</span><span class="n">options</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8276,8 +8349,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.anonymous_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.anonymous_sql-1589"><a href="#Generator.anonymous_sql-1589"><span class="linenos">1589</span></a> <span class="k">def</span> <span class="nf">anonymous_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">Anonymous</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.anonymous_sql-1590"><a href="#Generator.anonymous_sql-1590"><span class="linenos">1590</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.anonymous_sql-1601"><a href="#Generator.anonymous_sql-1601"><span class="linenos">1601</span></a> <span class="k">def</span> <span class="nf">anonymous_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">Anonymous</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.anonymous_sql-1602"><a href="#Generator.anonymous_sql-1602"><span class="linenos">1602</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="o">*</span><span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> </span></pre></div> @@ -8295,14 +8368,14 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.paren_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.paren_sql-1592"><a href="#Generator.paren_sql-1592"><span class="linenos">1592</span></a> <span class="k">def</span> <span class="nf">paren_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">Paren</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.paren_sql-1593"><a href="#Generator.paren_sql-1593"><span class="linenos">1593</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">unnest</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="Generator.paren_sql-1594"><a href="#Generator.paren_sql-1594"><span class="linenos">1594</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Generator.paren_sql-1595"><a href="#Generator.paren_sql-1595"><span class="linenos">1595</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.paren_sql-1596"><a href="#Generator.paren_sql-1596"><span class="linenos">1596</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</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="Generator.paren_sql-1597"><a href="#Generator.paren_sql-1597"><span class="linenos">1597</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.paren_sql-1598"><a href="#Generator.paren_sql-1598"><span class="linenos">1598</span></a> -</span><span id="Generator.paren_sql-1599"><a href="#Generator.paren_sql-1599"><span class="linenos">1599</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.paren_sql-1604"><a href="#Generator.paren_sql-1604"><span class="linenos">1604</span></a> <span class="k">def</span> <span class="nf">paren_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">Paren</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.paren_sql-1605"><a href="#Generator.paren_sql-1605"><span class="linenos">1605</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">unnest</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="Generator.paren_sql-1606"><a href="#Generator.paren_sql-1606"><span class="linenos">1606</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Generator.paren_sql-1607"><a href="#Generator.paren_sql-1607"><span class="linenos">1607</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.paren_sql-1608"><a href="#Generator.paren_sql-1608"><span class="linenos">1608</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">indent</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">expression</span><span class="p">,</span> <span class="s2">"this"</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="Generator.paren_sql-1609"><a href="#Generator.paren_sql-1609"><span class="linenos">1609</span></a> <span class="n">sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"(</span><span class="si">{</span><span class="n">sql</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="s1">')'</span><span class="p">,</span><span class="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.paren_sql-1610"><a href="#Generator.paren_sql-1610"><span class="linenos">1610</span></a> +</span><span id="Generator.paren_sql-1611"><a href="#Generator.paren_sql-1611"><span class="linenos">1611</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">prepend_ctes</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> </span></pre></div> @@ -8320,11 +8393,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.neg_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.neg_sql-1601"><a href="#Generator.neg_sql-1601"><span class="linenos">1601</span></a> <span class="k">def</span> <span class="nf">neg_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">Neg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.neg_sql-1602"><a href="#Generator.neg_sql-1602"><span class="linenos">1602</span></a> <span class="c1"># This makes sure we don't convert "- - 5" to "--5", which is a comment</span> -</span><span id="Generator.neg_sql-1603"><a href="#Generator.neg_sql-1603"><span class="linenos">1603</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> -</span><span id="Generator.neg_sql-1604"><a href="#Generator.neg_sql-1604"><span class="linenos">1604</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">this_sql</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.neg_sql-1605"><a href="#Generator.neg_sql-1605"><span class="linenos">1605</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"-</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.neg_sql-1613"><a href="#Generator.neg_sql-1613"><span class="linenos">1613</span></a> <span class="k">def</span> <span class="nf">neg_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">Neg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.neg_sql-1614"><a href="#Generator.neg_sql-1614"><span class="linenos">1614</span></a> <span class="c1"># This makes sure we don't convert "- - 5" to "--5", which is a comment</span> +</span><span id="Generator.neg_sql-1615"><a href="#Generator.neg_sql-1615"><span class="linenos">1615</span></a> <span class="n">this_sql</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">"this"</span><span class="p">)</span> +</span><span id="Generator.neg_sql-1616"><a href="#Generator.neg_sql-1616"><span class="linenos">1616</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">" "</span> <span class="k">if</span> <span class="n">this_sql</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"-"</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.neg_sql-1617"><a href="#Generator.neg_sql-1617"><span class="linenos">1617</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"-</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">this_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8342,8 +8415,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.not_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.not_sql-1607"><a href="#Generator.not_sql-1607"><span class="linenos">1607</span></a> <span class="k">def</span> <span class="nf">not_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">Not</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.not_sql-1608"><a href="#Generator.not_sql-1608"><span class="linenos">1608</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"NOT </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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.not_sql-1619"><a href="#Generator.not_sql-1619"><span class="linenos">1619</span></a> <span class="k">def</span> <span class="nf">not_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">Not</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.not_sql-1620"><a href="#Generator.not_sql-1620"><span class="linenos">1620</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"NOT </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">expression</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></pre></div> @@ -8361,10 +8434,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.alias_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.alias_sql-1610"><a href="#Generator.alias_sql-1610"><span class="linenos">1610</span></a> <span class="k">def</span> <span class="nf">alias_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">Alias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.alias_sql-1611"><a href="#Generator.alias_sql-1611"><span class="linenos">1611</span></a> <span class="n">to_sql</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">"alias"</span><span class="p">)</span> -</span><span id="Generator.alias_sql-1612"><a href="#Generator.alias_sql-1612"><span class="linenos">1612</span></a> <span class="n">to_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">to_sql</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.alias_sql-1613"><a href="#Generator.alias_sql-1613"><span class="linenos">1613</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.alias_sql-1622"><a href="#Generator.alias_sql-1622"><span class="linenos">1622</span></a> <span class="k">def</span> <span class="nf">alias_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">Alias</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.alias_sql-1623"><a href="#Generator.alias_sql-1623"><span class="linenos">1623</span></a> <span class="n">to_sql</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">"alias"</span><span class="p">)</span> +</span><span id="Generator.alias_sql-1624"><a href="#Generator.alias_sql-1624"><span class="linenos">1624</span></a> <span class="n">to_sql</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AS </span><span class="si">{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">to_sql</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.alias_sql-1625"><a href="#Generator.alias_sql-1625"><span class="linenos">1625</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="si">}{</span><span class="n">to_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8382,8 +8455,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.aliases_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.aliases_sql-1615"><a href="#Generator.aliases_sql-1615"><span class="linenos">1615</span></a> <span class="k">def</span> <span class="nf">aliases_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">Aliases</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.aliases_sql-1616"><a href="#Generator.aliases_sql-1616"><span class="linenos">1616</span></a> <span class="k">return</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">expression</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"> AS (</span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.aliases_sql-1627"><a href="#Generator.aliases_sql-1627"><span class="linenos">1627</span></a> <span class="k">def</span> <span class="nf">aliases_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">Aliases</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.aliases_sql-1628"><a href="#Generator.aliases_sql-1628"><span class="linenos">1628</span></a> <span class="k">return</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">expression</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"> AS (</span><span class="si">{</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="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -8401,10 +8474,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.attimezone_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.attimezone_sql-1618"><a href="#Generator.attimezone_sql-1618"><span class="linenos">1618</span></a> <span class="k">def</span> <span class="nf">attimezone_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">AtTimeZone</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.attimezone_sql-1619"><a href="#Generator.attimezone_sql-1619"><span class="linenos">1619</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.attimezone_sql-1620"><a href="#Generator.attimezone_sql-1620"><span class="linenos">1620</span></a> <span class="n">zone</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">"zone"</span><span class="p">)</span> -</span><span id="Generator.attimezone_sql-1621"><a href="#Generator.attimezone_sql-1621"><span class="linenos">1621</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.attimezone_sql-1630"><a href="#Generator.attimezone_sql-1630"><span class="linenos">1630</span></a> <span class="k">def</span> <span class="nf">attimezone_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">AtTimeZone</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.attimezone_sql-1631"><a href="#Generator.attimezone_sql-1631"><span class="linenos">1631</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.attimezone_sql-1632"><a href="#Generator.attimezone_sql-1632"><span class="linenos">1632</span></a> <span class="n">zone</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">"zone"</span><span class="p">)</span> +</span><span id="Generator.attimezone_sql-1633"><a href="#Generator.attimezone_sql-1633"><span class="linenos">1633</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> AT TIME ZONE </span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8422,8 +8495,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.add_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.add_sql-1623"><a href="#Generator.add_sql-1623"><span class="linenos">1623</span></a> <span class="k">def</span> <span class="nf">add_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">Add</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.add_sql-1624"><a href="#Generator.add_sql-1624"><span class="linenos">1624</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.add_sql-1635"><a href="#Generator.add_sql-1635"><span class="linenos">1635</span></a> <span class="k">def</span> <span class="nf">add_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">Add</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.add_sql-1636"><a href="#Generator.add_sql-1636"><span class="linenos">1636</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> </span></pre></div> @@ -8441,8 +8514,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.and_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.and_sql-1626"><a href="#Generator.and_sql-1626"><span class="linenos">1626</span></a> <span class="k">def</span> <span class="nf">and_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">And</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.and_sql-1627"><a href="#Generator.and_sql-1627"><span class="linenos">1627</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.and_sql-1638"><a href="#Generator.and_sql-1638"><span class="linenos">1638</span></a> <span class="k">def</span> <span class="nf">and_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">And</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.and_sql-1639"><a href="#Generator.and_sql-1639"><span class="linenos">1639</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"AND"</span><span class="p">)</span> </span></pre></div> @@ -8460,13 +8533,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.connector_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.connector_sql-1629"><a href="#Generator.connector_sql-1629"><span class="linenos">1629</span></a> <span class="k">def</span> <span class="nf">connector_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">Connector</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.connector_sql-1630"><a href="#Generator.connector_sql-1630"><span class="linenos">1630</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator.connector_sql-1631"><a href="#Generator.connector_sql-1631"><span class="linenos">1631</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">op</span><span class="p">)</span> -</span><span id="Generator.connector_sql-1632"><a href="#Generator.connector_sql-1632"><span class="linenos">1632</span></a> -</span><span id="Generator.connector_sql-1633"><a href="#Generator.connector_sql-1633"><span class="linenos">1633</span></a> <span class="n">sqls</span> <span class="o">=</span> <span class="nb">tuple</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="n">unnest</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> -</span><span id="Generator.connector_sql-1634"><a href="#Generator.connector_sql-1634"><span class="linenos">1634</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.connector_sql-1635"><a href="#Generator.connector_sql-1635"><span class="linenos">1635</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">op</span><span class="si">}</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.connector_sql-1641"><a href="#Generator.connector_sql-1641"><span class="linenos">1641</span></a> <span class="k">def</span> <span class="nf">connector_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">Connector</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.connector_sql-1642"><a href="#Generator.connector_sql-1642"><span class="linenos">1642</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator.connector_sql-1643"><a href="#Generator.connector_sql-1643"><span class="linenos">1643</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">op</span><span class="p">)</span> +</span><span id="Generator.connector_sql-1644"><a href="#Generator.connector_sql-1644"><span class="linenos">1644</span></a> +</span><span id="Generator.connector_sql-1645"><a href="#Generator.connector_sql-1645"><span class="linenos">1645</span></a> <span class="n">sqls</span> <span class="o">=</span> <span class="nb">tuple</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">flatten</span><span class="p">(</span><span class="n">unnest</span><span class="o">=</span><span class="kc">False</span><span class="p">))</span> +</span><span id="Generator.connector_sql-1646"><a href="#Generator.connector_sql-1646"><span class="linenos">1646</span></a> <span class="n">sep</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.connector_sql-1647"><a href="#Generator.connector_sql-1647"><span class="linenos">1647</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="si">}{</span><span class="n">op</span><span class="si">}</span><span class="s2"> "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">sqls</span><span class="p">)</span> </span></pre></div> @@ -8484,8 +8557,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitwiseand_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiseand_sql-1637"><a href="#Generator.bitwiseand_sql-1637"><span class="linenos">1637</span></a> <span class="k">def</span> <span class="nf">bitwiseand_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">BitwiseAnd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitwiseand_sql-1638"><a href="#Generator.bitwiseand_sql-1638"><span class="linenos">1638</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"&"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiseand_sql-1649"><a href="#Generator.bitwiseand_sql-1649"><span class="linenos">1649</span></a> <span class="k">def</span> <span class="nf">bitwiseand_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">BitwiseAnd</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitwiseand_sql-1650"><a href="#Generator.bitwiseand_sql-1650"><span class="linenos">1650</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"&"</span><span class="p">)</span> </span></pre></div> @@ -8503,8 +8576,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitwiseleftshift_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiseleftshift_sql-1640"><a href="#Generator.bitwiseleftshift_sql-1640"><span class="linenos">1640</span></a> <span class="k">def</span> <span class="nf">bitwiseleftshift_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">BitwiseLeftShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitwiseleftshift_sql-1641"><a href="#Generator.bitwiseleftshift_sql-1641"><span class="linenos">1641</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<<"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiseleftshift_sql-1652"><a href="#Generator.bitwiseleftshift_sql-1652"><span class="linenos">1652</span></a> <span class="k">def</span> <span class="nf">bitwiseleftshift_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">BitwiseLeftShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitwiseleftshift_sql-1653"><a href="#Generator.bitwiseleftshift_sql-1653"><span class="linenos">1653</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<<"</span><span class="p">)</span> </span></pre></div> @@ -8522,8 +8595,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitwisenot_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwisenot_sql-1643"><a href="#Generator.bitwisenot_sql-1643"><span class="linenos">1643</span></a> <span class="k">def</span> <span class="nf">bitwisenot_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">BitwiseNot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitwisenot_sql-1644"><a href="#Generator.bitwisenot_sql-1644"><span class="linenos">1644</span></a> <span class="k">return</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwisenot_sql-1655"><a href="#Generator.bitwisenot_sql-1655"><span class="linenos">1655</span></a> <span class="k">def</span> <span class="nf">bitwisenot_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">BitwiseNot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitwisenot_sql-1656"><a href="#Generator.bitwisenot_sql-1656"><span class="linenos">1656</span></a> <span class="k">return</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">expression</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></pre></div> @@ -8541,8 +8614,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitwiseor_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiseor_sql-1646"><a href="#Generator.bitwiseor_sql-1646"><span class="linenos">1646</span></a> <span class="k">def</span> <span class="nf">bitwiseor_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">BitwiseOr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitwiseor_sql-1647"><a href="#Generator.bitwiseor_sql-1647"><span class="linenos">1647</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"|"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiseor_sql-1658"><a href="#Generator.bitwiseor_sql-1658"><span class="linenos">1658</span></a> <span class="k">def</span> <span class="nf">bitwiseor_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">BitwiseOr</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitwiseor_sql-1659"><a href="#Generator.bitwiseor_sql-1659"><span class="linenos">1659</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"|"</span><span class="p">)</span> </span></pre></div> @@ -8560,8 +8633,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitwiserightshift_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiserightshift_sql-1649"><a href="#Generator.bitwiserightshift_sql-1649"><span class="linenos">1649</span></a> <span class="k">def</span> <span class="nf">bitwiserightshift_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">BitwiseRightShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitwiserightshift_sql-1650"><a href="#Generator.bitwiserightshift_sql-1650"><span class="linenos">1650</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">>"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwiserightshift_sql-1661"><a href="#Generator.bitwiserightshift_sql-1661"><span class="linenos">1661</span></a> <span class="k">def</span> <span class="nf">bitwiserightshift_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">BitwiseRightShift</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitwiserightshift_sql-1662"><a href="#Generator.bitwiserightshift_sql-1662"><span class="linenos">1662</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">>"</span><span class="p">)</span> </span></pre></div> @@ -8579,8 +8652,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.bitwisexor_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwisexor_sql-1652"><a href="#Generator.bitwisexor_sql-1652"><span class="linenos">1652</span></a> <span class="k">def</span> <span class="nf">bitwisexor_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">BitwiseXor</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.bitwisexor_sql-1653"><a href="#Generator.bitwisexor_sql-1653"><span class="linenos">1653</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.bitwisexor_sql-1664"><a href="#Generator.bitwisexor_sql-1664"><span class="linenos">1664</span></a> <span class="k">def</span> <span class="nf">bitwisexor_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">BitwiseXor</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.bitwisexor_sql-1665"><a href="#Generator.bitwisexor_sql-1665"><span class="linenos">1665</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"^"</span><span class="p">)</span> </span></pre></div> @@ -8598,8 +8671,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.cast_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cast_sql-1655"><a href="#Generator.cast_sql-1655"><span class="linenos">1655</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="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.cast_sql-1656"><a href="#Generator.cast_sql-1656"><span class="linenos">1656</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.cast_sql-1667"><a href="#Generator.cast_sql-1667"><span class="linenos">1667</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="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.cast_sql-1668"><a href="#Generator.cast_sql-1668"><span class="linenos">1668</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -8617,9 +8690,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.currentdate_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.currentdate_sql-1658"><a href="#Generator.currentdate_sql-1658"><span class="linenos">1658</span></a> <span class="k">def</span> <span class="nf">currentdate_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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.currentdate_sql-1659"><a href="#Generator.currentdate_sql-1659"><span class="linenos">1659</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> -</span><span id="Generator.currentdate_sql-1660"><a href="#Generator.currentdate_sql-1660"><span class="linenos">1660</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE(</span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.currentdate_sql-1670"><a href="#Generator.currentdate_sql-1670"><span class="linenos">1670</span></a> <span class="k">def</span> <span class="nf">currentdate_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">CurrentDate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.currentdate_sql-1671"><a href="#Generator.currentdate_sql-1671"><span class="linenos">1671</span></a> <span class="n">zone</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">"this"</span><span class="p">)</span> +</span><span id="Generator.currentdate_sql-1672"><a href="#Generator.currentdate_sql-1672"><span class="linenos">1672</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"CURRENT_DATE(</span><span class="si">{</span><span class="n">zone</span><span class="si">}</span><span class="s2">)"</span> <span class="k">if</span> <span class="n">zone</span> <span class="k">else</span> <span class="s2">"CURRENT_DATE"</span> </span></pre></div> @@ -8637,8 +8710,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.collate_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.collate_sql-1662"><a href="#Generator.collate_sql-1662"><span class="linenos">1662</span></a> <span class="k">def</span> <span class="nf">collate_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">Collate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.collate_sql-1663"><a href="#Generator.collate_sql-1663"><span class="linenos">1663</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"COLLATE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.collate_sql-1674"><a href="#Generator.collate_sql-1674"><span class="linenos">1674</span></a> <span class="k">def</span> <span class="nf">collate_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">Collate</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.collate_sql-1675"><a href="#Generator.collate_sql-1675"><span class="linenos">1675</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"COLLATE"</span><span class="p">)</span> </span></pre></div> @@ -8656,8 +8729,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.command_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.command_sql-1665"><a href="#Generator.command_sql-1665"><span class="linenos">1665</span></a> <span class="k">def</span> <span class="nf">command_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">Command</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.command_sql-1666"><a href="#Generator.command_sql-1666"><span class="linenos">1666</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s1">'expression'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.command_sql-1677"><a href="#Generator.command_sql-1677"><span class="linenos">1677</span></a> <span class="k">def</span> <span class="nf">command_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">Command</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.command_sql-1678"><a href="#Generator.command_sql-1678"><span class="linenos">1678</span></a> <span class="k">return</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'this'</span><span class="p">)</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="n">text</span><span class="p">(</span><span class="s1">'expression'</span><span class="p">)</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8675,12 +8748,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.comment_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.comment_sql-1668"><a href="#Generator.comment_sql-1668"><span class="linenos">1668</span></a> <span class="k">def</span> <span class="nf">comment_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">Comment</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.comment_sql-1669"><a href="#Generator.comment_sql-1669"><span class="linenos">1669</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.comment_sql-1670"><a href="#Generator.comment_sql-1670"><span class="linenos">1670</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> -</span><span id="Generator.comment_sql-1671"><a href="#Generator.comment_sql-1671"><span class="linenos">1671</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.comment_sql-1672"><a href="#Generator.comment_sql-1672"><span class="linenos">1672</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.comment_sql-1673"><a href="#Generator.comment_sql-1673"><span class="linenos">1673</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMENT</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> IS </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.comment_sql-1680"><a href="#Generator.comment_sql-1680"><span class="linenos">1680</span></a> <span class="k">def</span> <span class="nf">comment_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">Comment</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.comment_sql-1681"><a href="#Generator.comment_sql-1681"><span class="linenos">1681</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.comment_sql-1682"><a href="#Generator.comment_sql-1682"><span class="linenos">1682</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> +</span><span id="Generator.comment_sql-1683"><a href="#Generator.comment_sql-1683"><span class="linenos">1683</span></a> <span class="n">exists_sql</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.comment_sql-1684"><a href="#Generator.comment_sql-1684"><span class="linenos">1684</span></a> <span class="n">expression_sql</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.comment_sql-1685"><a href="#Generator.comment_sql-1685"><span class="linenos">1685</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMENT</span><span class="si">{</span><span class="n">exists_sql</span><span class="si">}</span><span class="s2">ON </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> IS </span><span class="si">{</span><span class="n">expression_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8692,14 +8765,14 @@ Default: True</li> <div class="attr function"> <span class="def">def</span> - <span class="name">transaction_sql</span><span class="signature pdoc-code condensed">(<span class="param"><span class="bp">self</span>, </span><span class="param"><span class="o">*</span><span class="n">_</span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + <span class="name">transaction_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#Transaction">sqlglot.expressions.Transaction</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> <label class="view-source-button" for="Generator.transaction_sql-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#Generator.transaction_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.transaction_sql-1675"><a href="#Generator.transaction_sql-1675"><span class="linenos">1675</span></a> <span class="k">def</span> <span class="nf">transaction_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.transaction_sql-1676"><a href="#Generator.transaction_sql-1676"><span class="linenos">1676</span></a> <span class="k">return</span> <span class="s2">"BEGIN"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.transaction_sql-1687"><a href="#Generator.transaction_sql-1687"><span class="linenos">1687</span></a> <span class="k">def</span> <span class="nf">transaction_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">Transaction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.transaction_sql-1688"><a href="#Generator.transaction_sql-1688"><span class="linenos">1688</span></a> <span class="k">return</span> <span class="s2">"BEGIN"</span> </span></pre></div> @@ -8717,12 +8790,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.commit_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.commit_sql-1678"><a href="#Generator.commit_sql-1678"><span class="linenos">1678</span></a> <span class="k">def</span> <span class="nf">commit_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">Commit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.commit_sql-1679"><a href="#Generator.commit_sql-1679"><span class="linenos">1679</span></a> <span class="n">chain</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">"chain"</span><span class="p">)</span> -</span><span id="Generator.commit_sql-1680"><a href="#Generator.commit_sql-1680"><span class="linenos">1680</span></a> <span class="k">if</span> <span class="n">chain</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.commit_sql-1681"><a href="#Generator.commit_sql-1681"><span class="linenos">1681</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="s2">" AND CHAIN"</span> <span class="k">if</span> <span class="n">chain</span> <span class="k">else</span> <span class="s2">" AND NO CHAIN"</span> -</span><span id="Generator.commit_sql-1682"><a href="#Generator.commit_sql-1682"><span class="linenos">1682</span></a> -</span><span id="Generator.commit_sql-1683"><a href="#Generator.commit_sql-1683"><span class="linenos">1683</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMIT</span><span class="si">{</span><span class="n">chain</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.commit_sql-1690"><a href="#Generator.commit_sql-1690"><span class="linenos">1690</span></a> <span class="k">def</span> <span class="nf">commit_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">Commit</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.commit_sql-1691"><a href="#Generator.commit_sql-1691"><span class="linenos">1691</span></a> <span class="n">chain</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">"chain"</span><span class="p">)</span> +</span><span id="Generator.commit_sql-1692"><a href="#Generator.commit_sql-1692"><span class="linenos">1692</span></a> <span class="k">if</span> <span class="n">chain</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.commit_sql-1693"><a href="#Generator.commit_sql-1693"><span class="linenos">1693</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="s2">" AND CHAIN"</span> <span class="k">if</span> <span class="n">chain</span> <span class="k">else</span> <span class="s2">" AND NO CHAIN"</span> +</span><span id="Generator.commit_sql-1694"><a href="#Generator.commit_sql-1694"><span class="linenos">1694</span></a> +</span><span id="Generator.commit_sql-1695"><a href="#Generator.commit_sql-1695"><span class="linenos">1695</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"COMMIT</span><span class="si">{</span><span class="n">chain</span><span class="w"> </span><span class="ow">or</span><span class="w"> </span><span class="s1">''</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8740,10 +8813,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.rollback_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.rollback_sql-1685"><a href="#Generator.rollback_sql-1685"><span class="linenos">1685</span></a> <span class="k">def</span> <span class="nf">rollback_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">Rollback</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.rollback_sql-1686"><a href="#Generator.rollback_sql-1686"><span class="linenos">1686</span></a> <span class="n">savepoint</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">"savepoint"</span><span class="p">)</span> -</span><span id="Generator.rollback_sql-1687"><a href="#Generator.rollback_sql-1687"><span class="linenos">1687</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TO </span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">savepoint</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.rollback_sql-1688"><a href="#Generator.rollback_sql-1688"><span class="linenos">1688</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROLLBACK</span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.rollback_sql-1697"><a href="#Generator.rollback_sql-1697"><span class="linenos">1697</span></a> <span class="k">def</span> <span class="nf">rollback_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">Rollback</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.rollback_sql-1698"><a href="#Generator.rollback_sql-1698"><span class="linenos">1698</span></a> <span class="n">savepoint</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">"savepoint"</span><span class="p">)</span> +</span><span id="Generator.rollback_sql-1699"><a href="#Generator.rollback_sql-1699"><span class="linenos">1699</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" TO </span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">savepoint</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.rollback_sql-1700"><a href="#Generator.rollback_sql-1700"><span class="linenos">1700</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ROLLBACK</span><span class="si">{</span><span class="n">savepoint</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8761,25 +8834,25 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.altercolumn_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.altercolumn_sql-1690"><a href="#Generator.altercolumn_sql-1690"><span class="linenos">1690</span></a> <span class="k">def</span> <span class="nf">altercolumn_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">AlterColumn</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.altercolumn_sql-1691"><a href="#Generator.altercolumn_sql-1691"><span class="linenos">1691</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.altercolumn_sql-1692"><a href="#Generator.altercolumn_sql-1692"><span class="linenos">1692</span></a> -</span><span id="Generator.altercolumn_sql-1693"><a href="#Generator.altercolumn_sql-1693"><span class="linenos">1693</span></a> <span class="n">dtype</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">"dtype"</span><span class="p">)</span> -</span><span id="Generator.altercolumn_sql-1694"><a href="#Generator.altercolumn_sql-1694"><span class="linenos">1694</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="p">:</span> -</span><span id="Generator.altercolumn_sql-1695"><a href="#Generator.altercolumn_sql-1695"><span class="linenos">1695</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> -</span><span id="Generator.altercolumn_sql-1696"><a href="#Generator.altercolumn_sql-1696"><span class="linenos">1696</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.altercolumn_sql-1697"><a href="#Generator.altercolumn_sql-1697"><span class="linenos">1697</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> -</span><span id="Generator.altercolumn_sql-1698"><a href="#Generator.altercolumn_sql-1698"><span class="linenos">1698</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">using</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.altercolumn_sql-1699"><a href="#Generator.altercolumn_sql-1699"><span class="linenos">1699</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TYPE </span><span class="si">{</span><span class="n">dtype</span><span class="si">}{</span><span class="n">collate</span><span class="si">}{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.altercolumn_sql-1700"><a href="#Generator.altercolumn_sql-1700"><span class="linenos">1700</span></a> -</span><span id="Generator.altercolumn_sql-1701"><a href="#Generator.altercolumn_sql-1701"><span class="linenos">1701</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> -</span><span id="Generator.altercolumn_sql-1702"><a href="#Generator.altercolumn_sql-1702"><span class="linenos">1702</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Generator.altercolumn_sql-1703"><a href="#Generator.altercolumn_sql-1703"><span class="linenos">1703</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET DEFAULT </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.altercolumn_sql-1702"><a href="#Generator.altercolumn_sql-1702"><span class="linenos">1702</span></a> <span class="k">def</span> <span class="nf">altercolumn_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">AlterColumn</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.altercolumn_sql-1703"><a href="#Generator.altercolumn_sql-1703"><span class="linenos">1703</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> </span><span id="Generator.altercolumn_sql-1704"><a href="#Generator.altercolumn_sql-1704"><span class="linenos">1704</span></a> -</span><span id="Generator.altercolumn_sql-1705"><a href="#Generator.altercolumn_sql-1705"><span class="linenos">1705</span></a> <span class="k">if</span> <span class="ow">not</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">"drop"</span><span class="p">):</span> -</span><span id="Generator.altercolumn_sql-1706"><a href="#Generator.altercolumn_sql-1706"><span class="linenos">1706</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported ALTER COLUMN syntax"</span><span class="p">)</span> -</span><span id="Generator.altercolumn_sql-1707"><a href="#Generator.altercolumn_sql-1707"><span class="linenos">1707</span></a> -</span><span id="Generator.altercolumn_sql-1708"><a href="#Generator.altercolumn_sql-1708"><span class="linenos">1708</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> DROP DEFAULT"</span> +</span><span id="Generator.altercolumn_sql-1705"><a href="#Generator.altercolumn_sql-1705"><span class="linenos">1705</span></a> <span class="n">dtype</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">"dtype"</span><span class="p">)</span> +</span><span id="Generator.altercolumn_sql-1706"><a href="#Generator.altercolumn_sql-1706"><span class="linenos">1706</span></a> <span class="k">if</span> <span class="n">dtype</span><span class="p">:</span> +</span><span id="Generator.altercolumn_sql-1707"><a href="#Generator.altercolumn_sql-1707"><span class="linenos">1707</span></a> <span class="n">collate</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">"collate"</span><span class="p">)</span> +</span><span id="Generator.altercolumn_sql-1708"><a href="#Generator.altercolumn_sql-1708"><span class="linenos">1708</span></a> <span class="n">collate</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" COLLATE </span><span class="si">{</span><span class="n">collate</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">collate</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.altercolumn_sql-1709"><a href="#Generator.altercolumn_sql-1709"><span class="linenos">1709</span></a> <span class="n">using</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">"using"</span><span class="p">)</span> +</span><span id="Generator.altercolumn_sql-1710"><a href="#Generator.altercolumn_sql-1710"><span class="linenos">1710</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" USING </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">using</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.altercolumn_sql-1711"><a href="#Generator.altercolumn_sql-1711"><span class="linenos">1711</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> TYPE </span><span class="si">{</span><span class="n">dtype</span><span class="si">}{</span><span class="n">collate</span><span class="si">}{</span><span class="n">using</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.altercolumn_sql-1712"><a href="#Generator.altercolumn_sql-1712"><span class="linenos">1712</span></a> +</span><span id="Generator.altercolumn_sql-1713"><a href="#Generator.altercolumn_sql-1713"><span class="linenos">1713</span></a> <span class="n">default</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">"default"</span><span class="p">)</span> +</span><span id="Generator.altercolumn_sql-1714"><a href="#Generator.altercolumn_sql-1714"><span class="linenos">1714</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Generator.altercolumn_sql-1715"><a href="#Generator.altercolumn_sql-1715"><span class="linenos">1715</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> SET DEFAULT </span><span class="si">{</span><span class="n">default</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.altercolumn_sql-1716"><a href="#Generator.altercolumn_sql-1716"><span class="linenos">1716</span></a> +</span><span id="Generator.altercolumn_sql-1717"><a href="#Generator.altercolumn_sql-1717"><span class="linenos">1717</span></a> <span class="k">if</span> <span class="ow">not</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">"drop"</span><span class="p">):</span> +</span><span id="Generator.altercolumn_sql-1718"><a href="#Generator.altercolumn_sql-1718"><span class="linenos">1718</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Unsupported ALTER COLUMN syntax"</span><span class="p">)</span> +</span><span id="Generator.altercolumn_sql-1719"><a href="#Generator.altercolumn_sql-1719"><span class="linenos">1719</span></a> +</span><span id="Generator.altercolumn_sql-1720"><a href="#Generator.altercolumn_sql-1720"><span class="linenos">1720</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER COLUMN </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> DROP DEFAULT"</span> </span></pre></div> @@ -8797,9 +8870,9 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.renametable_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.renametable_sql-1710"><a href="#Generator.renametable_sql-1710"><span class="linenos">1710</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.renametable_sql-1711"><a href="#Generator.renametable_sql-1711"><span class="linenos">1711</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.renametable_sql-1712"><a href="#Generator.renametable_sql-1712"><span class="linenos">1712</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.renametable_sql-1722"><a href="#Generator.renametable_sql-1722"><span class="linenos">1722</span></a> <span class="k">def</span> <span class="nf">renametable_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">RenameTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.renametable_sql-1723"><a href="#Generator.renametable_sql-1723"><span class="linenos">1723</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.renametable_sql-1724"><a href="#Generator.renametable_sql-1724"><span class="linenos">1724</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"RENAME TO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8817,20 +8890,20 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.altertable_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.altertable_sql-1714"><a href="#Generator.altertable_sql-1714"><span class="linenos">1714</span></a> <span class="k">def</span> <span class="nf">altertable_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">AlterTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.altertable_sql-1715"><a href="#Generator.altertable_sql-1715"><span class="linenos">1715</span></a> <span class="n">actions</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"actions"</span><span class="p">]</span> -</span><span id="Generator.altertable_sql-1716"><a href="#Generator.altertable_sql-1716"><span class="linenos">1716</span></a> -</span><span id="Generator.altertable_sql-1717"><a href="#Generator.altertable_sql-1717"><span class="linenos">1717</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">):</span> -</span><span id="Generator.altertable_sql-1718"><a href="#Generator.altertable_sql-1718"><span class="linenos">1718</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMN "</span><span class="p">)</span> -</span><span id="Generator.altertable_sql-1719"><a href="#Generator.altertable_sql-1719"><span class="linenos">1719</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> -</span><span id="Generator.altertable_sql-1720"><a href="#Generator.altertable_sql-1720"><span class="linenos">1720</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMNS "</span><span class="p">)</span> -</span><span id="Generator.altertable_sql-1721"><a href="#Generator.altertable_sql-1721"><span class="linenos">1721</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">):</span> -</span><span id="Generator.altertable_sql-1722"><a href="#Generator.altertable_sql-1722"><span class="linenos">1722</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.altertable_sql-1723"><a href="#Generator.altertable_sql-1723"><span class="linenos">1723</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.altertable_sql-1724"><a href="#Generator.altertable_sql-1724"><span class="linenos">1724</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">)</span> -</span><span id="Generator.altertable_sql-1725"><a href="#Generator.altertable_sql-1725"><span class="linenos">1725</span></a> -</span><span id="Generator.altertable_sql-1726"><a href="#Generator.altertable_sql-1726"><span class="linenos">1726</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.altertable_sql-1727"><a href="#Generator.altertable_sql-1727"><span class="linenos">1727</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER TABLE</span><span class="si">{</span><span class="n">exists</span><span class="si">}</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">expression</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="si">{</span><span class="n">actions</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.altertable_sql-1726"><a href="#Generator.altertable_sql-1726"><span class="linenos">1726</span></a> <span class="k">def</span> <span class="nf">altertable_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">AlterTable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.altertable_sql-1727"><a href="#Generator.altertable_sql-1727"><span class="linenos">1727</span></a> <span class="n">actions</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"actions"</span><span class="p">]</span> +</span><span id="Generator.altertable_sql-1728"><a href="#Generator.altertable_sql-1728"><span class="linenos">1728</span></a> +</span><span id="Generator.altertable_sql-1729"><a href="#Generator.altertable_sql-1729"><span class="linenos">1729</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnDef</span><span class="p">):</span> +</span><span id="Generator.altertable_sql-1730"><a href="#Generator.altertable_sql-1730"><span class="linenos">1730</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMN "</span><span class="p">)</span> +</span><span id="Generator.altertable_sql-1731"><a href="#Generator.altertable_sql-1731"><span class="linenos">1731</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">):</span> +</span><span id="Generator.altertable_sql-1732"><a href="#Generator.altertable_sql-1732"><span class="linenos">1732</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">prefix</span><span class="o">=</span><span class="s2">"ADD COLUMNS "</span><span class="p">)</span> +</span><span id="Generator.altertable_sql-1733"><a href="#Generator.altertable_sql-1733"><span class="linenos">1733</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">actions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">):</span> +</span><span id="Generator.altertable_sql-1734"><a href="#Generator.altertable_sql-1734"><span class="linenos">1734</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">,</span> <span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.altertable_sql-1735"><a href="#Generator.altertable_sql-1735"><span class="linenos">1735</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.altertable_sql-1736"><a href="#Generator.altertable_sql-1736"><span class="linenos">1736</span></a> <span class="n">actions</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="s2">"actions"</span><span class="p">)</span> +</span><span id="Generator.altertable_sql-1737"><a href="#Generator.altertable_sql-1737"><span class="linenos">1737</span></a> +</span><span id="Generator.altertable_sql-1738"><a href="#Generator.altertable_sql-1738"><span class="linenos">1738</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.altertable_sql-1739"><a href="#Generator.altertable_sql-1739"><span class="linenos">1739</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"ALTER TABLE</span><span class="si">{</span><span class="n">exists</span><span class="si">}</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">expression</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="si">{</span><span class="n">actions</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8848,10 +8921,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.droppartition_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.droppartition_sql-1729"><a href="#Generator.droppartition_sql-1729"><span class="linenos">1729</span></a> <span class="k">def</span> <span class="nf">droppartition_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">DropPartition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.droppartition_sql-1730"><a href="#Generator.droppartition_sql-1730"><span class="linenos">1730</span></a> <span class="n">expressions</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><span id="Generator.droppartition_sql-1731"><a href="#Generator.droppartition_sql-1731"><span class="linenos">1731</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> -</span><span id="Generator.droppartition_sql-1732"><a href="#Generator.droppartition_sql-1732"><span class="linenos">1732</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.droppartition_sql-1741"><a href="#Generator.droppartition_sql-1741"><span class="linenos">1741</span></a> <span class="k">def</span> <span class="nf">droppartition_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">DropPartition</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.droppartition_sql-1742"><a href="#Generator.droppartition_sql-1742"><span class="linenos">1742</span></a> <span class="n">expressions</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><span id="Generator.droppartition_sql-1743"><a href="#Generator.droppartition_sql-1743"><span class="linenos">1743</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="s2">" IF EXISTS "</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">" "</span> +</span><span id="Generator.droppartition_sql-1744"><a href="#Generator.droppartition_sql-1744"><span class="linenos">1744</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DROP</span><span class="si">{</span><span class="n">exists</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8869,16 +8942,16 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.addconstraint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.addconstraint_sql-1734"><a href="#Generator.addconstraint_sql-1734"><span class="linenos">1734</span></a> <span class="k">def</span> <span class="nf">addconstraint_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">AddConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.addconstraint_sql-1735"><a href="#Generator.addconstraint_sql-1735"><span class="linenos">1735</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.addconstraint_sql-1736"><a href="#Generator.addconstraint_sql-1736"><span class="linenos">1736</span></a> <span class="n">expression_</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">"expression"</span><span class="p">)</span> -</span><span id="Generator.addconstraint_sql-1737"><a href="#Generator.addconstraint_sql-1737"><span class="linenos">1737</span></a> <span class="n">add_constraint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ADD CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"ADD"</span> -</span><span id="Generator.addconstraint_sql-1738"><a href="#Generator.addconstraint_sql-1738"><span class="linenos">1738</span></a> -</span><span id="Generator.addconstraint_sql-1739"><a href="#Generator.addconstraint_sql-1739"><span class="linenos">1739</span></a> <span class="n">enforced</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">"enforced"</span><span class="p">)</span> -</span><span id="Generator.addconstraint_sql-1740"><a href="#Generator.addconstraint_sql-1740"><span class="linenos">1740</span></a> <span class="k">if</span> <span class="n">enforced</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Generator.addconstraint_sql-1741"><a href="#Generator.addconstraint_sql-1741"><span class="linenos">1741</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> CHECK (</span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="s1">' ENFORCED'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">enforced</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">"</span> -</span><span id="Generator.addconstraint_sql-1742"><a href="#Generator.addconstraint_sql-1742"><span class="linenos">1742</span></a> -</span><span id="Generator.addconstraint_sql-1743"><a href="#Generator.addconstraint_sql-1743"><span class="linenos">1743</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.addconstraint_sql-1746"><a href="#Generator.addconstraint_sql-1746"><span class="linenos">1746</span></a> <span class="k">def</span> <span class="nf">addconstraint_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">AddConstraint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.addconstraint_sql-1747"><a href="#Generator.addconstraint_sql-1747"><span class="linenos">1747</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.addconstraint_sql-1748"><a href="#Generator.addconstraint_sql-1748"><span class="linenos">1748</span></a> <span class="n">expression_</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">"expression"</span><span class="p">)</span> +</span><span id="Generator.addconstraint_sql-1749"><a href="#Generator.addconstraint_sql-1749"><span class="linenos">1749</span></a> <span class="n">add_constraint</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ADD CONSTRAINT </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">"ADD"</span> +</span><span id="Generator.addconstraint_sql-1750"><a href="#Generator.addconstraint_sql-1750"><span class="linenos">1750</span></a> +</span><span id="Generator.addconstraint_sql-1751"><a href="#Generator.addconstraint_sql-1751"><span class="linenos">1751</span></a> <span class="n">enforced</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">"enforced"</span><span class="p">)</span> +</span><span id="Generator.addconstraint_sql-1752"><a href="#Generator.addconstraint_sql-1752"><span class="linenos">1752</span></a> <span class="k">if</span> <span class="n">enforced</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Generator.addconstraint_sql-1753"><a href="#Generator.addconstraint_sql-1753"><span class="linenos">1753</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> CHECK (</span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">)</span><span class="si">{</span><span class="s1">' ENFORCED'</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">enforced</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">"</span> +</span><span id="Generator.addconstraint_sql-1754"><a href="#Generator.addconstraint_sql-1754"><span class="linenos">1754</span></a> +</span><span id="Generator.addconstraint_sql-1755"><a href="#Generator.addconstraint_sql-1755"><span class="linenos">1755</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">add_constraint</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expression_</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8896,13 +8969,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.distinct_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.distinct_sql-1745"><a href="#Generator.distinct_sql-1745"><span class="linenos">1745</span></a> <span class="k">def</span> <span class="nf">distinct_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">Distinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.distinct_sql-1746"><a href="#Generator.distinct_sql-1746"><span class="linenos">1746</span></a> <span class="n">this</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="Generator.distinct_sql-1747"><a href="#Generator.distinct_sql-1747"><span class="linenos">1747</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.distinct_sql-1748"><a href="#Generator.distinct_sql-1748"><span class="linenos">1748</span></a> -</span><span id="Generator.distinct_sql-1749"><a href="#Generator.distinct_sql-1749"><span class="linenos">1749</span></a> <span class="n">on</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">"on"</span><span class="p">)</span> -</span><span id="Generator.distinct_sql-1750"><a href="#Generator.distinct_sql-1750"><span class="linenos">1750</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">on</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.distinct_sql-1751"><a href="#Generator.distinct_sql-1751"><span class="linenos">1751</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DISTINCT</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.distinct_sql-1757"><a href="#Generator.distinct_sql-1757"><span class="linenos">1757</span></a> <span class="k">def</span> <span class="nf">distinct_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">Distinct</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.distinct_sql-1758"><a href="#Generator.distinct_sql-1758"><span class="linenos">1758</span></a> <span class="n">this</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="Generator.distinct_sql-1759"><a href="#Generator.distinct_sql-1759"><span class="linenos">1759</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.distinct_sql-1760"><a href="#Generator.distinct_sql-1760"><span class="linenos">1760</span></a> +</span><span id="Generator.distinct_sql-1761"><a href="#Generator.distinct_sql-1761"><span class="linenos">1761</span></a> <span class="n">on</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">"on"</span><span class="p">)</span> +</span><span id="Generator.distinct_sql-1762"><a href="#Generator.distinct_sql-1762"><span class="linenos">1762</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">on</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.distinct_sql-1763"><a href="#Generator.distinct_sql-1763"><span class="linenos">1763</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"DISTINCT</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">on</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -8920,8 +8993,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.ignorenulls_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.ignorenulls_sql-1753"><a href="#Generator.ignorenulls_sql-1753"><span class="linenos">1753</span></a> <span class="k">def</span> <span class="nf">ignorenulls_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">IgnoreNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.ignorenulls_sql-1754"><a href="#Generator.ignorenulls_sql-1754"><span class="linenos">1754</span></a> <span class="k">return</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">expression</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"> IGNORE NULLS"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.ignorenulls_sql-1765"><a href="#Generator.ignorenulls_sql-1765"><span class="linenos">1765</span></a> <span class="k">def</span> <span class="nf">ignorenulls_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">IgnoreNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.ignorenulls_sql-1766"><a href="#Generator.ignorenulls_sql-1766"><span class="linenos">1766</span></a> <span class="k">return</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">expression</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"> IGNORE NULLS"</span> </span></pre></div> @@ -8939,8 +9012,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.respectnulls_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.respectnulls_sql-1756"><a href="#Generator.respectnulls_sql-1756"><span class="linenos">1756</span></a> <span class="k">def</span> <span class="nf">respectnulls_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">RespectNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.respectnulls_sql-1757"><a href="#Generator.respectnulls_sql-1757"><span class="linenos">1757</span></a> <span class="k">return</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">expression</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"> RESPECT NULLS"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.respectnulls_sql-1768"><a href="#Generator.respectnulls_sql-1768"><span class="linenos">1768</span></a> <span class="k">def</span> <span class="nf">respectnulls_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">RespectNulls</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.respectnulls_sql-1769"><a href="#Generator.respectnulls_sql-1769"><span class="linenos">1769</span></a> <span class="k">return</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">expression</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"> RESPECT NULLS"</span> </span></pre></div> @@ -8958,9 +9031,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.intdiv_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.intdiv_sql-1759"><a href="#Generator.intdiv_sql-1759"><span class="linenos">1759</span></a> <span class="k">def</span> <span class="nf">intdiv_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">IntDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.intdiv_sql-1760"><a href="#Generator.intdiv_sql-1760"><span class="linenos">1760</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="Generator.intdiv_sql-1761"><a href="#Generator.intdiv_sql-1761"><span class="linenos">1761</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">div</span><span class="p">,</span> <span class="n">to</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">"INT"</span><span class="p">)))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.intdiv_sql-1771"><a href="#Generator.intdiv_sql-1771"><span class="linenos">1771</span></a> <span class="k">def</span> <span class="nf">intdiv_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">IntDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.intdiv_sql-1772"><a href="#Generator.intdiv_sql-1772"><span class="linenos">1772</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span><span class="p">(</span> +</span><span id="Generator.intdiv_sql-1773"><a href="#Generator.intdiv_sql-1773"><span class="linenos">1773</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> +</span><span id="Generator.intdiv_sql-1774"><a href="#Generator.intdiv_sql-1774"><span class="linenos">1774</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">),</span> +</span><span id="Generator.intdiv_sql-1775"><a href="#Generator.intdiv_sql-1775"><span class="linenos">1775</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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><span id="Generator.intdiv_sql-1776"><a href="#Generator.intdiv_sql-1776"><span class="linenos">1776</span></a> <span class="p">)</span> +</span><span id="Generator.intdiv_sql-1777"><a href="#Generator.intdiv_sql-1777"><span class="linenos">1777</span></a> <span class="p">)</span> </span></pre></div> @@ -8978,8 +9055,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.dpipe_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.dpipe_sql-1763"><a href="#Generator.dpipe_sql-1763"><span class="linenos">1763</span></a> <span class="k">def</span> <span class="nf">dpipe_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">DPipe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.dpipe_sql-1764"><a href="#Generator.dpipe_sql-1764"><span class="linenos">1764</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"||"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.dpipe_sql-1779"><a href="#Generator.dpipe_sql-1779"><span class="linenos">1779</span></a> <span class="k">def</span> <span class="nf">dpipe_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">DPipe</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.dpipe_sql-1780"><a href="#Generator.dpipe_sql-1780"><span class="linenos">1780</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"||"</span><span class="p">)</span> </span></pre></div> @@ -8997,36 +9074,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.div_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.div_sql-1766"><a href="#Generator.div_sql-1766"><span class="linenos">1766</span></a> <span class="k">def</span> <span class="nf">div_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">Div</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.div_sql-1767"><a href="#Generator.div_sql-1767"><span class="linenos">1767</span></a> <span class="n">div</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> -</span><span id="Generator.div_sql-1768"><a href="#Generator.div_sql-1768"><span class="linenos">1768</span></a> -</span><span id="Generator.div_sql-1769"><a href="#Generator.div_sql-1769"><span class="linenos">1769</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="Generator.div_sql-1770"><a href="#Generator.div_sql-1770"><span class="linenos">1770</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">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">div</span><span class="p">,</span> <span class="n">to</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">"INT"</span><span class="p">)))</span> -</span><span id="Generator.div_sql-1771"><a href="#Generator.div_sql-1771"><span class="linenos">1771</span></a> -</span><span id="Generator.div_sql-1772"><a href="#Generator.div_sql-1772"><span class="linenos">1772</span></a> <span class="k">return</span> <span class="n">div</span> -</span></pre></div> - - - - - </div> - <div id="Generator.floatdiv_sql" class="classattr"> - <input id="Generator.floatdiv_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">floatdiv_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#FloatDiv">sqlglot.expressions.FloatDiv</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> - - <label class="view-source-button" for="Generator.floatdiv_sql-view-source"><span>View Source</span></label> - - </div> - <a class="headerlink" href="#Generator.floatdiv_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.floatdiv_sql-1774"><a href="#Generator.floatdiv_sql-1774"><span class="linenos">1774</span></a> <span class="k">def</span> <span class="nf">floatdiv_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">FloatDiv</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.floatdiv_sql-1775"><a href="#Generator.floatdiv_sql-1775"><span class="linenos">1775</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="Generator.floatdiv_sql-1776"><a href="#Generator.floatdiv_sql-1776"><span class="linenos">1776</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">to</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">"DOUBLE"</span><span class="p">))</span> -</span><span id="Generator.floatdiv_sql-1777"><a href="#Generator.floatdiv_sql-1777"><span class="linenos">1777</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">div_sql</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">expression</span><span class="p">))</span> -</span><span id="Generator.floatdiv_sql-1778"><a href="#Generator.floatdiv_sql-1778"><span class="linenos">1778</span></a> -</span><span id="Generator.floatdiv_sql-1779"><a href="#Generator.floatdiv_sql-1779"><span class="linenos">1779</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.div_sql-1782"><a href="#Generator.div_sql-1782"><span class="linenos">1782</span></a> <span class="k">def</span> <span class="nf">div_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">Div</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.div_sql-1783"><a href="#Generator.div_sql-1783"><span class="linenos">1783</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"/"</span><span class="p">)</span> </span></pre></div> @@ -9044,8 +9093,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.overlaps_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.overlaps_sql-1781"><a href="#Generator.overlaps_sql-1781"><span class="linenos">1781</span></a> <span class="k">def</span> <span class="nf">overlaps_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">Overlaps</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.overlaps_sql-1782"><a href="#Generator.overlaps_sql-1782"><span class="linenos">1782</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OVERLAPS"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.overlaps_sql-1785"><a href="#Generator.overlaps_sql-1785"><span class="linenos">1785</span></a> <span class="k">def</span> <span class="nf">overlaps_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">Overlaps</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.overlaps_sql-1786"><a href="#Generator.overlaps_sql-1786"><span class="linenos">1786</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OVERLAPS"</span><span class="p">)</span> </span></pre></div> @@ -9063,8 +9112,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.distance_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.distance_sql-1784"><a href="#Generator.distance_sql-1784"><span class="linenos">1784</span></a> <span class="k">def</span> <span class="nf">distance_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">Distance</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.distance_sql-1785"><a href="#Generator.distance_sql-1785"><span class="linenos">1785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<->"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.distance_sql-1788"><a href="#Generator.distance_sql-1788"><span class="linenos">1788</span></a> <span class="k">def</span> <span class="nf">distance_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">Distance</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.distance_sql-1789"><a href="#Generator.distance_sql-1789"><span class="linenos">1789</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<->"</span><span class="p">)</span> </span></pre></div> @@ -9082,8 +9131,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.dot_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.dot_sql-1787"><a href="#Generator.dot_sql-1787"><span class="linenos">1787</span></a> <span class="k">def</span> <span class="nf">dot_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">Dot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.dot_sql-1788"><a href="#Generator.dot_sql-1788"><span class="linenos">1788</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.dot_sql-1791"><a href="#Generator.dot_sql-1791"><span class="linenos">1791</span></a> <span class="k">def</span> <span class="nf">dot_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">Dot</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.dot_sql-1792"><a href="#Generator.dot_sql-1792"><span class="linenos">1792</span></a> <span class="k">return</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">expression</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="si">{</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="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9101,8 +9150,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.eq_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.eq_sql-1790"><a href="#Generator.eq_sql-1790"><span class="linenos">1790</span></a> <span class="k">def</span> <span class="nf">eq_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">EQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.eq_sql-1791"><a href="#Generator.eq_sql-1791"><span class="linenos">1791</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"="</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.eq_sql-1794"><a href="#Generator.eq_sql-1794"><span class="linenos">1794</span></a> <span class="k">def</span> <span class="nf">eq_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">EQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.eq_sql-1795"><a href="#Generator.eq_sql-1795"><span class="linenos">1795</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"="</span><span class="p">)</span> </span></pre></div> @@ -9120,8 +9169,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.escape_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.escape_sql-1793"><a href="#Generator.escape_sql-1793"><span class="linenos">1793</span></a> <span class="k">def</span> <span class="nf">escape_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">Escape</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.escape_sql-1794"><a href="#Generator.escape_sql-1794"><span class="linenos">1794</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ESCAPE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.escape_sql-1797"><a href="#Generator.escape_sql-1797"><span class="linenos">1797</span></a> <span class="k">def</span> <span class="nf">escape_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">Escape</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.escape_sql-1798"><a href="#Generator.escape_sql-1798"><span class="linenos">1798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ESCAPE"</span><span class="p">)</span> </span></pre></div> @@ -9139,8 +9188,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.glob_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.glob_sql-1796"><a href="#Generator.glob_sql-1796"><span class="linenos">1796</span></a> <span class="k">def</span> <span class="nf">glob_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">Glob</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.glob_sql-1797"><a href="#Generator.glob_sql-1797"><span class="linenos">1797</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"GLOB"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.glob_sql-1800"><a href="#Generator.glob_sql-1800"><span class="linenos">1800</span></a> <span class="k">def</span> <span class="nf">glob_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">Glob</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.glob_sql-1801"><a href="#Generator.glob_sql-1801"><span class="linenos">1801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"GLOB"</span><span class="p">)</span> </span></pre></div> @@ -9158,8 +9207,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.gt_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.gt_sql-1799"><a href="#Generator.gt_sql-1799"><span class="linenos">1799</span></a> <span class="k">def</span> <span class="nf">gt_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">GT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.gt_sql-1800"><a href="#Generator.gt_sql-1800"><span class="linenos">1800</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.gt_sql-1803"><a href="#Generator.gt_sql-1803"><span class="linenos">1803</span></a> <span class="k">def</span> <span class="nf">gt_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">GT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.gt_sql-1804"><a href="#Generator.gt_sql-1804"><span class="linenos">1804</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">"</span><span class="p">)</span> </span></pre></div> @@ -9177,8 +9226,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.gte_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.gte_sql-1802"><a href="#Generator.gte_sql-1802"><span class="linenos">1802</span></a> <span class="k">def</span> <span class="nf">gte_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">GTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.gte_sql-1803"><a href="#Generator.gte_sql-1803"><span class="linenos">1803</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">="</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.gte_sql-1806"><a href="#Generator.gte_sql-1806"><span class="linenos">1806</span></a> <span class="k">def</span> <span class="nf">gte_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">GTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.gte_sql-1807"><a href="#Generator.gte_sql-1807"><span class="linenos">1807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">">="</span><span class="p">)</span> </span></pre></div> @@ -9196,8 +9245,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.ilike_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.ilike_sql-1805"><a href="#Generator.ilike_sql-1805"><span class="linenos">1805</span></a> <span class="k">def</span> <span class="nf">ilike_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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.ilike_sql-1806"><a href="#Generator.ilike_sql-1806"><span class="linenos">1806</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.ilike_sql-1809"><a href="#Generator.ilike_sql-1809"><span class="linenos">1809</span></a> <span class="k">def</span> <span class="nf">ilike_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">ILike</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.ilike_sql-1810"><a href="#Generator.ilike_sql-1810"><span class="linenos">1810</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"ILIKE"</span><span class="p">)</span> </span></pre></div> @@ -9215,8 +9264,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.is_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.is_sql-1808"><a href="#Generator.is_sql-1808"><span class="linenos">1808</span></a> <span class="k">def</span> <span class="nf">is_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">Is</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.is_sql-1809"><a href="#Generator.is_sql-1809"><span class="linenos">1809</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.is_sql-1812"><a href="#Generator.is_sql-1812"><span class="linenos">1812</span></a> <span class="k">def</span> <span class="nf">is_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">Is</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.is_sql-1813"><a href="#Generator.is_sql-1813"><span class="linenos">1813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS"</span><span class="p">)</span> </span></pre></div> @@ -9234,8 +9283,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.like_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.like_sql-1811"><a href="#Generator.like_sql-1811"><span class="linenos">1811</span></a> <span class="k">def</span> <span class="nf">like_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">Like</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.like_sql-1812"><a href="#Generator.like_sql-1812"><span class="linenos">1812</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.like_sql-1815"><a href="#Generator.like_sql-1815"><span class="linenos">1815</span></a> <span class="k">def</span> <span class="nf">like_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">Like</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.like_sql-1816"><a href="#Generator.like_sql-1816"><span class="linenos">1816</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">)</span> </span></pre></div> @@ -9253,8 +9302,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.similarto_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.similarto_sql-1814"><a href="#Generator.similarto_sql-1814"><span class="linenos">1814</span></a> <span class="k">def</span> <span class="nf">similarto_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">SimilarTo</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.similarto_sql-1815"><a href="#Generator.similarto_sql-1815"><span class="linenos">1815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"SIMILAR TO"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.similarto_sql-1818"><a href="#Generator.similarto_sql-1818"><span class="linenos">1818</span></a> <span class="k">def</span> <span class="nf">similarto_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">SimilarTo</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.similarto_sql-1819"><a href="#Generator.similarto_sql-1819"><span class="linenos">1819</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"SIMILAR TO"</span><span class="p">)</span> </span></pre></div> @@ -9272,8 +9321,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.lt_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lt_sql-1817"><a href="#Generator.lt_sql-1817"><span class="linenos">1817</span></a> <span class="k">def</span> <span class="nf">lt_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">LT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.lt_sql-1818"><a href="#Generator.lt_sql-1818"><span class="linenos">1818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lt_sql-1821"><a href="#Generator.lt_sql-1821"><span class="linenos">1821</span></a> <span class="k">def</span> <span class="nf">lt_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">LT</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.lt_sql-1822"><a href="#Generator.lt_sql-1822"><span class="linenos">1822</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<"</span><span class="p">)</span> </span></pre></div> @@ -9291,8 +9340,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.lte_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lte_sql-1820"><a href="#Generator.lte_sql-1820"><span class="linenos">1820</span></a> <span class="k">def</span> <span class="nf">lte_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">LTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.lte_sql-1821"><a href="#Generator.lte_sql-1821"><span class="linenos">1821</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<="</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.lte_sql-1824"><a href="#Generator.lte_sql-1824"><span class="linenos">1824</span></a> <span class="k">def</span> <span class="nf">lte_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">LTE</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.lte_sql-1825"><a href="#Generator.lte_sql-1825"><span class="linenos">1825</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<="</span><span class="p">)</span> </span></pre></div> @@ -9310,8 +9359,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.mod_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.mod_sql-1823"><a href="#Generator.mod_sql-1823"><span class="linenos">1823</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.mod_sql-1824"><a href="#Generator.mod_sql-1824"><span class="linenos">1824</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"%"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.mod_sql-1827"><a href="#Generator.mod_sql-1827"><span class="linenos">1827</span></a> <span class="k">def</span> <span class="nf">mod_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">Mod</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.mod_sql-1828"><a href="#Generator.mod_sql-1828"><span class="linenos">1828</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"%"</span><span class="p">)</span> </span></pre></div> @@ -9329,8 +9378,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.mul_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.mul_sql-1826"><a href="#Generator.mul_sql-1826"><span class="linenos">1826</span></a> <span class="k">def</span> <span class="nf">mul_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">Mul</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.mul_sql-1827"><a href="#Generator.mul_sql-1827"><span class="linenos">1827</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"*"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.mul_sql-1830"><a href="#Generator.mul_sql-1830"><span class="linenos">1830</span></a> <span class="k">def</span> <span class="nf">mul_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">Mul</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.mul_sql-1831"><a href="#Generator.mul_sql-1831"><span class="linenos">1831</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"*"</span><span class="p">)</span> </span></pre></div> @@ -9348,8 +9397,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.neq_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.neq_sql-1829"><a href="#Generator.neq_sql-1829"><span class="linenos">1829</span></a> <span class="k">def</span> <span class="nf">neq_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">NEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.neq_sql-1830"><a href="#Generator.neq_sql-1830"><span class="linenos">1830</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<>"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.neq_sql-1833"><a href="#Generator.neq_sql-1833"><span class="linenos">1833</span></a> <span class="k">def</span> <span class="nf">neq_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">NEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.neq_sql-1834"><a href="#Generator.neq_sql-1834"><span class="linenos">1834</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"<>"</span><span class="p">)</span> </span></pre></div> @@ -9367,8 +9416,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.nullsafeeq_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.nullsafeeq_sql-1832"><a href="#Generator.nullsafeeq_sql-1832"><span class="linenos">1832</span></a> <span class="k">def</span> <span class="nf">nullsafeeq_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">NullSafeEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.nullsafeeq_sql-1833"><a href="#Generator.nullsafeeq_sql-1833"><span class="linenos">1833</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS NOT DISTINCT FROM"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.nullsafeeq_sql-1836"><a href="#Generator.nullsafeeq_sql-1836"><span class="linenos">1836</span></a> <span class="k">def</span> <span class="nf">nullsafeeq_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">NullSafeEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.nullsafeeq_sql-1837"><a href="#Generator.nullsafeeq_sql-1837"><span class="linenos">1837</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS NOT DISTINCT FROM"</span><span class="p">)</span> </span></pre></div> @@ -9386,8 +9435,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.nullsafeneq_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.nullsafeneq_sql-1835"><a href="#Generator.nullsafeneq_sql-1835"><span class="linenos">1835</span></a> <span class="k">def</span> <span class="nf">nullsafeneq_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">NullSafeNEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.nullsafeneq_sql-1836"><a href="#Generator.nullsafeneq_sql-1836"><span class="linenos">1836</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS DISTINCT FROM"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.nullsafeneq_sql-1839"><a href="#Generator.nullsafeneq_sql-1839"><span class="linenos">1839</span></a> <span class="k">def</span> <span class="nf">nullsafeneq_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">NullSafeNEQ</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.nullsafeneq_sql-1840"><a href="#Generator.nullsafeneq_sql-1840"><span class="linenos">1840</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"IS DISTINCT FROM"</span><span class="p">)</span> </span></pre></div> @@ -9405,8 +9454,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.or_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.or_sql-1838"><a href="#Generator.or_sql-1838"><span class="linenos">1838</span></a> <span class="k">def</span> <span class="nf">or_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">Or</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.or_sql-1839"><a href="#Generator.or_sql-1839"><span class="linenos">1839</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OR"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.or_sql-1842"><a href="#Generator.or_sql-1842"><span class="linenos">1842</span></a> <span class="k">def</span> <span class="nf">or_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">Or</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.or_sql-1843"><a href="#Generator.or_sql-1843"><span class="linenos">1843</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">connector_sql</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"OR"</span><span class="p">)</span> </span></pre></div> @@ -9424,8 +9473,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.slice_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.slice_sql-1841"><a href="#Generator.slice_sql-1841"><span class="linenos">1841</span></a> <span class="k">def</span> <span class="nf">slice_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">Slice</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.slice_sql-1842"><a href="#Generator.slice_sql-1842"><span class="linenos">1842</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">":"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.slice_sql-1845"><a href="#Generator.slice_sql-1845"><span class="linenos">1845</span></a> <span class="k">def</span> <span class="nf">slice_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">Slice</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.slice_sql-1846"><a href="#Generator.slice_sql-1846"><span class="linenos">1846</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">":"</span><span class="p">)</span> </span></pre></div> @@ -9443,8 +9492,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.sub_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sub_sql-1844"><a href="#Generator.sub_sql-1844"><span class="linenos">1844</span></a> <span class="k">def</span> <span class="nf">sub_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">Sub</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.sub_sql-1845"><a href="#Generator.sub_sql-1845"><span class="linenos">1845</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"-"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.sub_sql-1848"><a href="#Generator.sub_sql-1848"><span class="linenos">1848</span></a> <span class="k">def</span> <span class="nf">sub_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">Sub</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.sub_sql-1849"><a href="#Generator.sub_sql-1849"><span class="linenos">1849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"-"</span><span class="p">)</span> </span></pre></div> @@ -9462,8 +9511,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.trycast_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.trycast_sql-1847"><a href="#Generator.trycast_sql-1847"><span class="linenos">1847</span></a> <span class="k">def</span> <span class="nf">trycast_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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.trycast_sql-1848"><a href="#Generator.trycast_sql-1848"><span class="linenos">1848</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRY_CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.trycast_sql-1851"><a href="#Generator.trycast_sql-1851"><span class="linenos">1851</span></a> <span class="k">def</span> <span class="nf">trycast_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">TryCast</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.trycast_sql-1852"><a href="#Generator.trycast_sql-1852"><span class="linenos">1852</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"TRY_CAST(</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">expression</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"> AS </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'to'</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -9481,12 +9530,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.use_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.use_sql-1850"><a href="#Generator.use_sql-1850"><span class="linenos">1850</span></a> <span class="k">def</span> <span class="nf">use_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">Use</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.use_sql-1851"><a href="#Generator.use_sql-1851"><span class="linenos">1851</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> -</span><span id="Generator.use_sql-1852"><a href="#Generator.use_sql-1852"><span class="linenos">1852</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.use_sql-1853"><a href="#Generator.use_sql-1853"><span class="linenos">1853</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.use_sql-1854"><a href="#Generator.use_sql-1854"><span class="linenos">1854</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.use_sql-1855"><a href="#Generator.use_sql-1855"><span class="linenos">1855</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"USE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.use_sql-1854"><a href="#Generator.use_sql-1854"><span class="linenos">1854</span></a> <span class="k">def</span> <span class="nf">use_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">Use</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.use_sql-1855"><a href="#Generator.use_sql-1855"><span class="linenos">1855</span></a> <span class="n">kind</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">"kind"</span><span class="p">)</span> +</span><span id="Generator.use_sql-1856"><a href="#Generator.use_sql-1856"><span class="linenos">1856</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">kind</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">kind</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.use_sql-1857"><a href="#Generator.use_sql-1857"><span class="linenos">1857</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.use_sql-1858"><a href="#Generator.use_sql-1858"><span class="linenos">1858</span></a> <span class="n">this</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">this</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.use_sql-1859"><a href="#Generator.use_sql-1859"><span class="linenos">1859</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"USE</span><span class="si">{</span><span class="n">kind</span><span class="si">}{</span><span class="n">this</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9504,8 +9553,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.binary"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.binary-1857"><a href="#Generator.binary-1857"><span class="linenos">1857</span></a> <span class="k">def</span> <span class="nf">binary</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">Binary</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.binary-1858"><a href="#Generator.binary-1858"><span class="linenos">1858</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">op</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.binary-1861"><a href="#Generator.binary-1861"><span class="linenos">1861</span></a> <span class="k">def</span> <span class="nf">binary</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">Binary</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.binary-1862"><a href="#Generator.binary-1862"><span class="linenos">1862</span></a> <span class="k">return</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">expression</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="si">{</span><span class="n">op</span><span class="si">}</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9523,16 +9572,16 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.function_fallback_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.function_fallback_sql-1860"><a href="#Generator.function_fallback_sql-1860"><span class="linenos">1860</span></a> <span class="k">def</span> <span class="nf">function_fallback_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">Func</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.function_fallback_sql-1861"><a href="#Generator.function_fallback_sql-1861"><span class="linenos">1861</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.function_fallback_sql-1862"><a href="#Generator.function_fallback_sql-1862"><span class="linenos">1862</span></a> <span class="k">for</span> <span class="n">arg_value</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> -</span><span id="Generator.function_fallback_sql-1863"><a href="#Generator.function_fallback_sql-1863"><span class="linenos">1863</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg_value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> -</span><span id="Generator.function_fallback_sql-1864"><a href="#Generator.function_fallback_sql-1864"><span class="linenos">1864</span></a> <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">arg_value</span><span class="p">:</span> -</span><span id="Generator.function_fallback_sql-1865"><a href="#Generator.function_fallback_sql-1865"><span class="linenos">1865</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="Generator.function_fallback_sql-1866"><a href="#Generator.function_fallback_sql-1866"><span class="linenos">1866</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.function_fallback_sql-1867"><a href="#Generator.function_fallback_sql-1867"><span class="linenos">1867</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arg_value</span><span class="p">)</span> -</span><span id="Generator.function_fallback_sql-1868"><a href="#Generator.function_fallback_sql-1868"><span class="linenos">1868</span></a> -</span><span id="Generator.function_fallback_sql-1869"><a href="#Generator.function_fallback_sql-1869"><span class="linenos">1869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">sql_name</span><span class="p">(),</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.function_fallback_sql-1864"><a href="#Generator.function_fallback_sql-1864"><span class="linenos">1864</span></a> <span class="k">def</span> <span class="nf">function_fallback_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">Func</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.function_fallback_sql-1865"><a href="#Generator.function_fallback_sql-1865"><span class="linenos">1865</span></a> <span class="n">args</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.function_fallback_sql-1866"><a href="#Generator.function_fallback_sql-1866"><span class="linenos">1866</span></a> <span class="k">for</span> <span class="n">arg_value</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="Generator.function_fallback_sql-1867"><a href="#Generator.function_fallback_sql-1867"><span class="linenos">1867</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">arg_value</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span> +</span><span id="Generator.function_fallback_sql-1868"><a href="#Generator.function_fallback_sql-1868"><span class="linenos">1868</span></a> <span class="k">for</span> <span class="n">value</span> <span class="ow">in</span> <span class="n">arg_value</span><span class="p">:</span> +</span><span id="Generator.function_fallback_sql-1869"><a href="#Generator.function_fallback_sql-1869"><span class="linenos">1869</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="Generator.function_fallback_sql-1870"><a href="#Generator.function_fallback_sql-1870"><span class="linenos">1870</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.function_fallback_sql-1871"><a href="#Generator.function_fallback_sql-1871"><span class="linenos">1871</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">arg_value</span><span class="p">)</span> +</span><span id="Generator.function_fallback_sql-1872"><a href="#Generator.function_fallback_sql-1872"><span class="linenos">1872</span></a> +</span><span id="Generator.function_fallback_sql-1873"><a href="#Generator.function_fallback_sql-1873"><span class="linenos">1873</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">func</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">sql_name</span><span class="p">(),</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> </span></pre></div> @@ -9550,8 +9599,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.func"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.func-1871"><a href="#Generator.func-1871"><span class="linenos">1871</span></a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">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="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.func-1872"><a href="#Generator.func-1872"><span class="linenos">1872</span></a> <span class="k">return</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">normalize_func</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="si">}</span><span class="s2">(</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">args</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.func-1875"><a href="#Generator.func-1875"><span class="linenos">1875</span></a> <span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">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="o">|</span> <span class="nb">str</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.func-1876"><a href="#Generator.func-1876"><span class="linenos">1876</span></a> <span class="k">return</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">normalize_func</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="si">}</span><span class="s2">(</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">args</span><span class="p">)</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -9569,11 +9618,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.format_args"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.format_args-1874"><a href="#Generator.format_args-1874"><span class="linenos">1874</span></a> <span class="k">def</span> <span class="nf">format_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.format_args-1875"><a href="#Generator.format_args-1875"><span class="linenos">1875</span></a> <span class="n">arg_sqls</span> <span class="o">=</span> <span class="nb">tuple</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">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Generator.format_args-1876"><a href="#Generator.format_args-1876"><span class="linenos">1876</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> -</span><span id="Generator.format_args-1877"><a href="#Generator.format_args-1877"><span class="linenos">1877</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">",</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Generator.format_args-1878"><a href="#Generator.format_args-1878"><span class="linenos">1878</span></a> <span class="k">return</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.format_args-1878"><a href="#Generator.format_args-1878"><span class="linenos">1878</span></a> <span class="k">def</span> <span class="nf">format_args</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.format_args-1879"><a href="#Generator.format_args-1879"><span class="linenos">1879</span></a> <span class="n">arg_sqls</span> <span class="o">=</span> <span class="nb">tuple</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">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span> <span class="k">if</span> <span class="n">arg</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Generator.format_args-1880"><a href="#Generator.format_args-1880"><span class="linenos">1880</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">text_width</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">></span> <span class="bp">self</span><span class="o">.</span><span class="n">_max_text_width</span><span class="p">:</span> +</span><span id="Generator.format_args-1881"><a href="#Generator.format_args-1881"><span class="linenos">1881</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span> <span class="o">+</span> <span class="sa">f</span><span class="s2">",</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> <span class="o">+</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">skip_last</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Generator.format_args-1882"><a href="#Generator.format_args-1882"><span class="linenos">1882</span></a> <span class="k">return</span> <span class="s2">", "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">arg_sqls</span><span class="p">)</span> </span></pre></div> @@ -9591,8 +9640,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.text_width"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.text_width-1880"><a href="#Generator.text_width-1880"><span class="linenos">1880</span></a> <span class="k">def</span> <span class="nf">text_width</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> -</span><span id="Generator.text_width-1881"><a href="#Generator.text_width-1881"><span class="linenos">1881</span></a> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.text_width-1884"><a href="#Generator.text_width-1884"><span class="linenos">1884</span></a> <span class="k">def</span> <span class="nf">text_width</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Iterable</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> +</span><span id="Generator.text_width-1885"><a href="#Generator.text_width-1885"><span class="linenos">1885</span></a> <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">arg</span><span class="p">)</span> <span class="k">for</span> <span class="n">arg</span> <span class="ow">in</span> <span class="n">args</span><span class="p">)</span> </span></pre></div> @@ -9610,8 +9659,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.format_time"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.format_time-1883"><a href="#Generator.format_time-1883"><span class="linenos">1883</span></a> <span class="k">def</span> <span class="nf">format_time</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">Expression</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="nb">str</span><span class="p">]:</span> -</span><span id="Generator.format_time-1884"><a href="#Generator.format_time-1884"><span class="linenos">1884</span></a> <span class="k">return</span> <span class="n">format_time</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">expression</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.format_time-1887"><a href="#Generator.format_time-1887"><span class="linenos">1887</span></a> <span class="k">def</span> <span class="nf">format_time</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">Expression</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="nb">str</span><span class="p">]:</span> +</span><span id="Generator.format_time-1888"><a href="#Generator.format_time-1888"><span class="linenos">1888</span></a> <span class="k">return</span> <span class="n">format_time</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">expression</span><span class="p">,</span> <span class="s2">"format"</span><span class="p">),</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_mapping</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">time_trie</span><span class="p">)</span> </span></pre></div> @@ -9629,46 +9678,46 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.expressions"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.expressions-1886"><a href="#Generator.expressions-1886"><span class="linenos">1886</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span> -</span><span id="Generator.expressions-1887"><a href="#Generator.expressions-1887"><span class="linenos">1887</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Generator.expressions-1888"><a href="#Generator.expressions-1888"><span class="linenos">1888</span></a> <span class="n">expression</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="Generator.expressions-1889"><a href="#Generator.expressions-1889"><span class="linenos">1889</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Generator.expressions-1890"><a href="#Generator.expressions-1890"><span class="linenos">1890</span></a> <span class="n">flat</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="Generator.expressions-1891"><a href="#Generator.expressions-1891"><span class="linenos">1891</span></a> <span class="n">indent</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Generator.expressions-1892"><a href="#Generator.expressions-1892"><span class="linenos">1892</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> -</span><span id="Generator.expressions-1893"><a href="#Generator.expressions-1893"><span class="linenos">1893</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> -</span><span id="Generator.expressions-1894"><a href="#Generator.expressions-1894"><span class="linenos">1894</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.expressions-1895"><a href="#Generator.expressions-1895"><span class="linenos">1895</span></a> <span class="n">expressions</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="n">key</span> <span class="ow">or</span> <span class="s2">"expressions"</span><span class="p">)</span> -</span><span id="Generator.expressions-1896"><a href="#Generator.expressions-1896"><span class="linenos">1896</span></a> -</span><span id="Generator.expressions-1897"><a href="#Generator.expressions-1897"><span class="linenos">1897</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Generator.expressions-1898"><a href="#Generator.expressions-1898"><span class="linenos">1898</span></a> <span class="k">return</span> <span class="s2">""</span> -</span><span id="Generator.expressions-1899"><a href="#Generator.expressions-1899"><span class="linenos">1899</span></a> -</span><span id="Generator.expressions-1900"><a href="#Generator.expressions-1900"><span class="linenos">1900</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> -</span><span id="Generator.expressions-1901"><a href="#Generator.expressions-1901"><span class="linenos">1901</span></a> <span class="k">return</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator.expressions-1902"><a href="#Generator.expressions-1902"><span class="linenos">1902</span></a> -</span><span id="Generator.expressions-1903"><a href="#Generator.expressions-1903"><span class="linenos">1903</span></a> <span class="n">num_sqls</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Generator.expressions-1904"><a href="#Generator.expressions-1904"><span class="linenos">1904</span></a> -</span><span id="Generator.expressions-1905"><a href="#Generator.expressions-1905"><span class="linenos">1905</span></a> <span class="c1"># These are calculated once in case we have the leading_comma / pretty option set, correspondingly</span> -</span><span id="Generator.expressions-1906"><a href="#Generator.expressions-1906"><span class="linenos">1906</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> -</span><span id="Generator.expressions-1907"><a href="#Generator.expressions-1907"><span class="linenos">1907</span></a> <span class="n">stripped_sep</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.expressions-1890"><a href="#Generator.expressions-1890"><span class="linenos">1890</span></a> <span class="k">def</span> <span class="nf">expressions</span><span class="p">(</span> +</span><span id="Generator.expressions-1891"><a href="#Generator.expressions-1891"><span class="linenos">1891</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Generator.expressions-1892"><a href="#Generator.expressions-1892"><span class="linenos">1892</span></a> <span class="n">expression</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="Generator.expressions-1893"><a href="#Generator.expressions-1893"><span class="linenos">1893</span></a> <span class="n">key</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Generator.expressions-1894"><a href="#Generator.expressions-1894"><span class="linenos">1894</span></a> <span class="n">flat</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="Generator.expressions-1895"><a href="#Generator.expressions-1895"><span class="linenos">1895</span></a> <span class="n">indent</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Generator.expressions-1896"><a href="#Generator.expressions-1896"><span class="linenos">1896</span></a> <span class="n">sep</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">", "</span><span class="p">,</span> +</span><span id="Generator.expressions-1897"><a href="#Generator.expressions-1897"><span class="linenos">1897</span></a> <span class="n">prefix</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">""</span><span class="p">,</span> +</span><span id="Generator.expressions-1898"><a href="#Generator.expressions-1898"><span class="linenos">1898</span></a> <span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.expressions-1899"><a href="#Generator.expressions-1899"><span class="linenos">1899</span></a> <span class="n">expressions</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="n">key</span> <span class="ow">or</span> <span class="s2">"expressions"</span><span class="p">)</span> +</span><span id="Generator.expressions-1900"><a href="#Generator.expressions-1900"><span class="linenos">1900</span></a> +</span><span id="Generator.expressions-1901"><a href="#Generator.expressions-1901"><span class="linenos">1901</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Generator.expressions-1902"><a href="#Generator.expressions-1902"><span class="linenos">1902</span></a> <span class="k">return</span> <span class="s2">""</span> +</span><span id="Generator.expressions-1903"><a href="#Generator.expressions-1903"><span class="linenos">1903</span></a> +</span><span id="Generator.expressions-1904"><a href="#Generator.expressions-1904"><span class="linenos">1904</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> +</span><span id="Generator.expressions-1905"><a href="#Generator.expressions-1905"><span class="linenos">1905</span></a> <span class="k">return</span> <span class="n">sep</span><span class="o">.</span><span class="n">join</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="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="Generator.expressions-1906"><a href="#Generator.expressions-1906"><span class="linenos">1906</span></a> +</span><span id="Generator.expressions-1907"><a href="#Generator.expressions-1907"><span class="linenos">1907</span></a> <span class="n">num_sqls</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> </span><span id="Generator.expressions-1908"><a href="#Generator.expressions-1908"><span class="linenos">1908</span></a> -</span><span id="Generator.expressions-1909"><a href="#Generator.expressions-1909"><span class="linenos">1909</span></a> <span class="n">result_sqls</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Generator.expressions-1910"><a href="#Generator.expressions-1910"><span class="linenos">1910</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="Generator.expressions-1911"><a href="#Generator.expressions-1911"><span class="linenos">1911</span></a> <span class="n">sql</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">e</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Generator.expressions-1912"><a href="#Generator.expressions-1912"><span class="linenos">1912</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.expressions-1913"><a href="#Generator.expressions-1913"><span class="linenos">1913</span></a> -</span><span id="Generator.expressions-1914"><a href="#Generator.expressions-1914"><span class="linenos">1914</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> -</span><span id="Generator.expressions-1915"><a href="#Generator.expressions-1915"><span class="linenos">1915</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span><span class="p">:</span> -</span><span id="Generator.expressions-1916"><a href="#Generator.expressions-1916"><span class="linenos">1916</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="n">pad</span><span class="si">}{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.expressions-1917"><a href="#Generator.expressions-1917"><span class="linenos">1917</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.expressions-1918"><a href="#Generator.expressions-1918"><span class="linenos">1918</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Generator.expressions-1919"><a href="#Generator.expressions-1919"><span class="linenos">1919</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">stripped_sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.expressions-1920"><a href="#Generator.expressions-1920"><span class="linenos">1920</span></a> <span class="p">)</span> -</span><span id="Generator.expressions-1921"><a href="#Generator.expressions-1921"><span class="linenos">1921</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.expressions-1922"><a href="#Generator.expressions-1922"><span class="linenos">1922</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</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">"</span><span class="p">)</span> -</span><span id="Generator.expressions-1923"><a href="#Generator.expressions-1923"><span class="linenos">1923</span></a> -</span><span id="Generator.expressions-1924"><a href="#Generator.expressions-1924"><span class="linenos">1924</span></a> <span class="n">result_sql</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> -</span><span id="Generator.expressions-1925"><a href="#Generator.expressions-1925"><span class="linenos">1925</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">result_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="n">indent</span> <span class="k">else</span> <span class="n">result_sql</span> +</span><span id="Generator.expressions-1909"><a href="#Generator.expressions-1909"><span class="linenos">1909</span></a> <span class="c1"># These are calculated once in case we have the leading_comma / pretty option set, correspondingly</span> +</span><span id="Generator.expressions-1910"><a href="#Generator.expressions-1910"><span class="linenos">1910</span></a> <span class="n">pad</span> <span class="o">=</span> <span class="s2">" "</span> <span class="o">*</span> <span class="bp">self</span><span class="o">.</span><span class="n">pad</span> +</span><span id="Generator.expressions-1911"><a href="#Generator.expressions-1911"><span class="linenos">1911</span></a> <span class="n">stripped_sep</span> <span class="o">=</span> <span class="n">sep</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="Generator.expressions-1912"><a href="#Generator.expressions-1912"><span class="linenos">1912</span></a> +</span><span id="Generator.expressions-1913"><a href="#Generator.expressions-1913"><span class="linenos">1913</span></a> <span class="n">result_sqls</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Generator.expressions-1914"><a href="#Generator.expressions-1914"><span class="linenos">1914</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="Generator.expressions-1915"><a href="#Generator.expressions-1915"><span class="linenos">1915</span></a> <span class="n">sql</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">e</span><span class="p">,</span> <span class="n">comment</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Generator.expressions-1916"><a href="#Generator.expressions-1916"><span class="linenos">1916</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">maybe_comment</span><span class="p">(</span><span class="s2">""</span><span class="p">,</span> <span class="n">e</span><span class="p">)</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.expressions-1917"><a href="#Generator.expressions-1917"><span class="linenos">1917</span></a> +</span><span id="Generator.expressions-1918"><a href="#Generator.expressions-1918"><span class="linenos">1918</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span><span class="p">:</span> +</span><span id="Generator.expressions-1919"><a href="#Generator.expressions-1919"><span class="linenos">1919</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_leading_comma</span><span class="p">:</span> +</span><span id="Generator.expressions-1920"><a href="#Generator.expressions-1920"><span class="linenos">1920</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="n">pad</span><span class="si">}{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.expressions-1921"><a href="#Generator.expressions-1921"><span class="linenos">1921</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.expressions-1922"><a href="#Generator.expressions-1922"><span class="linenos">1922</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Generator.expressions-1923"><a href="#Generator.expressions-1923"><span class="linenos">1923</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">stripped_sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">comments</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.expressions-1924"><a href="#Generator.expressions-1924"><span class="linenos">1924</span></a> <span class="p">)</span> +</span><span id="Generator.expressions-1925"><a href="#Generator.expressions-1925"><span class="linenos">1925</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.expressions-1926"><a href="#Generator.expressions-1926"><span class="linenos">1926</span></a> <span class="n">result_sqls</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">prefix</span><span class="si">}{</span><span class="n">sql</span><span class="si">}{</span><span class="n">comments</span><span class="si">}{</span><span class="n">sep</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">num_sqls</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">"</span><span class="p">)</span> +</span><span id="Generator.expressions-1927"><a href="#Generator.expressions-1927"><span class="linenos">1927</span></a> +</span><span id="Generator.expressions-1928"><a href="#Generator.expressions-1928"><span class="linenos">1928</span></a> <span class="n">result_sql</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pretty</span> <span class="k">else</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">result_sqls</span><span class="p">)</span> +</span><span id="Generator.expressions-1929"><a href="#Generator.expressions-1929"><span class="linenos">1929</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">indent</span><span class="p">(</span><span class="n">result_sql</span><span class="p">,</span> <span class="n">skip_first</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="k">if</span> <span class="n">indent</span> <span class="k">else</span> <span class="n">result_sql</span> </span></pre></div> @@ -9686,12 +9735,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.op_expressions"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.op_expressions-1927"><a href="#Generator.op_expressions-1927"><span class="linenos">1927</span></a> <span class="k">def</span> <span class="nf">op_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.op_expressions-1928"><a href="#Generator.op_expressions-1928"><span class="linenos">1928</span></a> <span class="n">flat</span> <span class="o">=</span> <span class="n">flat</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> -</span><span id="Generator.op_expressions-1929"><a href="#Generator.op_expressions-1929"><span class="linenos">1929</span></a> <span class="n">expressions_sql</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="n">flat</span><span class="p">)</span> -</span><span id="Generator.op_expressions-1930"><a href="#Generator.op_expressions-1930"><span class="linenos">1930</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> -</span><span id="Generator.op_expressions-1931"><a href="#Generator.op_expressions-1931"><span class="linenos">1931</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.op_expressions-1932"><a href="#Generator.op_expressions-1932"><span class="linenos">1932</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expressions_sql</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.op_expressions-1931"><a href="#Generator.op_expressions-1931"><span class="linenos">1931</span></a> <span class="k">def</span> <span class="nf">op_expressions</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</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">Expression</span><span class="p">,</span> <span class="n">flat</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.op_expressions-1932"><a href="#Generator.op_expressions-1932"><span class="linenos">1932</span></a> <span class="n">flat</span> <span class="o">=</span> <span class="n">flat</span> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="p">)</span> +</span><span id="Generator.op_expressions-1933"><a href="#Generator.op_expressions-1933"><span class="linenos">1933</span></a> <span class="n">expressions_sql</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="n">flat</span><span class="p">)</span> +</span><span id="Generator.op_expressions-1934"><a href="#Generator.op_expressions-1934"><span class="linenos">1934</span></a> <span class="k">if</span> <span class="n">flat</span><span class="p">:</span> +</span><span id="Generator.op_expressions-1935"><a href="#Generator.op_expressions-1935"><span class="linenos">1935</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">op</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.op_expressions-1936"><a href="#Generator.op_expressions-1936"><span class="linenos">1936</span></a> <span class="k">return</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">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">expressions_sql</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="s1">''</span><span class="si">}{</span><span class="n">expressions_sql</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9709,11 +9758,11 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.naked_property"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.naked_property-1934"><a href="#Generator.naked_property-1934"><span class="linenos">1934</span></a> <span class="k">def</span> <span class="nf">naked_property</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.naked_property-1935"><a href="#Generator.naked_property-1935"><span class="linenos">1935</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> -</span><span id="Generator.naked_property-1936"><a href="#Generator.naked_property-1936"><span class="linenos">1936</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> -</span><span id="Generator.naked_property-1937"><a href="#Generator.naked_property-1937"><span class="linenos">1937</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Generator.naked_property-1938"><a href="#Generator.naked_property-1938"><span class="linenos">1938</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.naked_property-1938"><a href="#Generator.naked_property-1938"><span class="linenos">1938</span></a> <span class="k">def</span> <span class="nf">naked_property</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">Property</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.naked_property-1939"><a href="#Generator.naked_property-1939"><span class="linenos">1939</span></a> <span class="n">property_name</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</span><span class="o">.</span><span class="n">PROPERTY_TO_NAME</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="p">)</span> +</span><span id="Generator.naked_property-1940"><a href="#Generator.naked_property-1940"><span class="linenos">1940</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">property_name</span><span class="p">:</span> +</span><span id="Generator.naked_property-1941"><a href="#Generator.naked_property-1941"><span class="linenos">1941</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 property </span><span class="si">{</span><span class="n">expression</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Generator.naked_property-1942"><a href="#Generator.naked_property-1942"><span class="linenos">1942</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">property_name</span><span class="si">}</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">expression</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></pre></div> @@ -9731,12 +9780,12 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.set_operation"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.set_operation-1940"><a href="#Generator.set_operation-1940"><span class="linenos">1940</span></a> <span class="k">def</span> <span class="nf">set_operation</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">Expression</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.set_operation-1941"><a href="#Generator.set_operation-1941"><span class="linenos">1941</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.set_operation-1942"><a href="#Generator.set_operation-1942"><span class="linenos">1942</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span> -</span><span id="Generator.set_operation-1943"><a href="#Generator.set_operation-1943"><span class="linenos">1943</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> -</span><span id="Generator.set_operation-1944"><a href="#Generator.set_operation-1944"><span class="linenos">1944</span></a> <span class="n">expression</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">op</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.set_operation-1945"><a href="#Generator.set_operation-1945"><span class="linenos">1945</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.set_operation-1944"><a href="#Generator.set_operation-1944"><span class="linenos">1944</span></a> <span class="k">def</span> <span class="nf">set_operation</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">Expression</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.set_operation-1945"><a href="#Generator.set_operation-1945"><span class="linenos">1945</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.set_operation-1946"><a href="#Generator.set_operation-1946"><span class="linenos">1946</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">seg</span><span class="p">(</span><span class="n">op</span><span class="p">)</span> +</span><span id="Generator.set_operation-1947"><a href="#Generator.set_operation-1947"><span class="linenos">1947</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">query_modifiers</span><span class="p">(</span> +</span><span id="Generator.set_operation-1948"><a href="#Generator.set_operation-1948"><span class="linenos">1948</span></a> <span class="n">expression</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">op</span><span class="si">}{</span><span class="bp">self</span><span class="o">.</span><span class="n">sep</span><span class="p">()</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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.set_operation-1949"><a href="#Generator.set_operation-1949"><span class="linenos">1949</span></a> <span class="p">)</span> </span></pre></div> @@ -9754,8 +9803,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.tag_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tag_sql-1947"><a href="#Generator.tag_sql-1947"><span class="linenos">1947</span></a> <span class="k">def</span> <span class="nf">tag_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">Tag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.tag_sql-1948"><a href="#Generator.tag_sql-1948"><span class="linenos">1948</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</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="s1">'prefix'</span><span class="p">)</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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}{</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="s1">'postfix'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tag_sql-1951"><a href="#Generator.tag_sql-1951"><span class="linenos">1951</span></a> <span class="k">def</span> <span class="nf">tag_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">Tag</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.tag_sql-1952"><a href="#Generator.tag_sql-1952"><span class="linenos">1952</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</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="s1">'prefix'</span><span class="p">)</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">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span><span class="si">}{</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="s1">'postfix'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9773,8 +9822,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.token_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.token_sql-1950"><a href="#Generator.token_sql-1950"><span class="linenos">1950</span></a> <span class="k">def</span> <span class="nf">token_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.token_sql-1951"><a href="#Generator.token_sql-1951"><span class="linenos">1951</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">TOKEN_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">token_type</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.token_sql-1954"><a href="#Generator.token_sql-1954"><span class="linenos">1954</span></a> <span class="k">def</span> <span class="nf">token_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.token_sql-1955"><a href="#Generator.token_sql-1955"><span class="linenos">1955</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">TOKEN_MAPPING</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">token_type</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> </span></pre></div> @@ -9792,13 +9841,13 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.userdefinedfunction_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.userdefinedfunction_sql-1953"><a href="#Generator.userdefinedfunction_sql-1953"><span class="linenos">1953</span></a> <span class="k">def</span> <span class="nf">userdefinedfunction_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">UserDefinedFunction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.userdefinedfunction_sql-1954"><a href="#Generator.userdefinedfunction_sql-1954"><span class="linenos">1954</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.userdefinedfunction_sql-1955"><a href="#Generator.userdefinedfunction_sql-1955"><span class="linenos">1955</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</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><span id="Generator.userdefinedfunction_sql-1956"><a href="#Generator.userdefinedfunction_sql-1956"><span class="linenos">1956</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Generator.userdefinedfunction_sql-1957"><a href="#Generator.userdefinedfunction_sql-1957"><span class="linenos">1957</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.userdefinedfunction_sql-1958"><a href="#Generator.userdefinedfunction_sql-1958"><span class="linenos">1958</span></a> <span class="p">)</span> -</span><span id="Generator.userdefinedfunction_sql-1959"><a href="#Generator.userdefinedfunction_sql-1959"><span class="linenos">1959</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.userdefinedfunction_sql-1957"><a href="#Generator.userdefinedfunction_sql-1957"><span class="linenos">1957</span></a> <span class="k">def</span> <span class="nf">userdefinedfunction_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">UserDefinedFunction</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.userdefinedfunction_sql-1958"><a href="#Generator.userdefinedfunction_sql-1958"><span class="linenos">1958</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.userdefinedfunction_sql-1959"><a href="#Generator.userdefinedfunction_sql-1959"><span class="linenos">1959</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">no_identify</span><span class="p">(</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><span id="Generator.userdefinedfunction_sql-1960"><a href="#Generator.userdefinedfunction_sql-1960"><span class="linenos">1960</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Generator.userdefinedfunction_sql-1961"><a href="#Generator.userdefinedfunction_sql-1961"><span class="linenos">1961</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">wrap</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"wrapped"</span><span class="p">)</span> <span class="k">else</span> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.userdefinedfunction_sql-1962"><a href="#Generator.userdefinedfunction_sql-1962"><span class="linenos">1962</span></a> <span class="p">)</span> +</span><span id="Generator.userdefinedfunction_sql-1963"><a href="#Generator.userdefinedfunction_sql-1963"><span class="linenos">1963</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9816,10 +9865,10 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.joinhint_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.joinhint_sql-1961"><a href="#Generator.joinhint_sql-1961"><span class="linenos">1961</span></a> <span class="k">def</span> <span class="nf">joinhint_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">JoinHint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.joinhint_sql-1962"><a href="#Generator.joinhint_sql-1962"><span class="linenos">1962</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.joinhint_sql-1963"><a href="#Generator.joinhint_sql-1963"><span class="linenos">1963</span></a> <span class="n">expressions</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="Generator.joinhint_sql-1964"><a href="#Generator.joinhint_sql-1964"><span class="linenos">1964</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.joinhint_sql-1965"><a href="#Generator.joinhint_sql-1965"><span class="linenos">1965</span></a> <span class="k">def</span> <span class="nf">joinhint_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">JoinHint</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.joinhint_sql-1966"><a href="#Generator.joinhint_sql-1966"><span class="linenos">1966</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.joinhint_sql-1967"><a href="#Generator.joinhint_sql-1967"><span class="linenos">1967</span></a> <span class="n">expressions</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="Generator.joinhint_sql-1968"><a href="#Generator.joinhint_sql-1968"><span class="linenos">1968</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2">(</span><span class="si">{</span><span class="n">expressions</span><span class="si">}</span><span class="s2">)"</span> </span></pre></div> @@ -9837,8 +9886,8 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.kwarg_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.kwarg_sql-1966"><a href="#Generator.kwarg_sql-1966"><span class="linenos">1966</span></a> <span class="k">def</span> <span class="nf">kwarg_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">Kwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.kwarg_sql-1967"><a href="#Generator.kwarg_sql-1967"><span class="linenos">1967</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"=>"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.kwarg_sql-1970"><a href="#Generator.kwarg_sql-1970"><span class="linenos">1970</span></a> <span class="k">def</span> <span class="nf">kwarg_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">Kwarg</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.kwarg_sql-1971"><a href="#Generator.kwarg_sql-1971"><span class="linenos">1971</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">binary</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"=>"</span><span class="p">)</span> </span></pre></div> @@ -9856,25 +9905,25 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.when_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.when_sql-1969"><a href="#Generator.when_sql-1969"><span class="linenos">1969</span></a> <span class="k">def</span> <span class="nf">when_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">When</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.when_sql-1970"><a href="#Generator.when_sql-1970"><span class="linenos">1970</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="s2">"MATCHED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"matched"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"NOT MATCHED"</span> -</span><span id="Generator.when_sql-1971"><a href="#Generator.when_sql-1971"><span class="linenos">1971</span></a> <span class="n">source</span> <span class="o">=</span> <span class="s2">" BY SOURCE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">MATCHED_BY_SOURCE</span> <span class="ow">and</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">"source"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.when_sql-1972"><a href="#Generator.when_sql-1972"><span class="linenos">1972</span></a> <span class="n">condition</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">"condition"</span><span class="p">)</span> -</span><span id="Generator.when_sql-1973"><a href="#Generator.when_sql-1973"><span class="linenos">1973</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="n">condition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">condition</span> <span class="k">else</span> <span class="s2">""</span> -</span><span id="Generator.when_sql-1974"><a href="#Generator.when_sql-1974"><span class="linenos">1974</span></a> -</span><span id="Generator.when_sql-1975"><a href="#Generator.when_sql-1975"><span class="linenos">1975</span></a> <span class="n">then_expression</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">"then"</span><span class="p">)</span> -</span><span id="Generator.when_sql-1976"><a href="#Generator.when_sql-1976"><span class="linenos">1976</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">):</span> -</span><span id="Generator.when_sql-1977"><a href="#Generator.when_sql-1977"><span class="linenos">1977</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT </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">then_expression</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><span id="Generator.when_sql-1978"><a href="#Generator.when_sql-1978"><span class="linenos">1978</span></a> <span class="k">if</span> <span class="s2">"expression"</span> <span class="ow">in</span> <span class="n">then_expression</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> -</span><span id="Generator.when_sql-1979"><a href="#Generator.when_sql-1979"><span class="linenos">1979</span></a> <span class="n">then</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" VALUES </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.when_sql-1980"><a href="#Generator.when_sql-1980"><span class="linenos">1980</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">):</span> -</span><span id="Generator.when_sql-1981"><a href="#Generator.when_sql-1981"><span class="linenos">1981</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_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 class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> -</span><span id="Generator.when_sql-1982"><a href="#Generator.when_sql-1982"><span class="linenos">1982</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.when_sql-1983"><a href="#Generator.when_sql-1983"><span class="linenos">1983</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.when_sql-1984"><a href="#Generator.when_sql-1984"><span class="linenos">1984</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE SET </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.when_sql-1985"><a href="#Generator.when_sql-1985"><span class="linenos">1985</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Generator.when_sql-1986"><a href="#Generator.when_sql-1986"><span class="linenos">1986</span></a> <span class="n">then</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">then_expression</span><span class="p">)</span> -</span><span id="Generator.when_sql-1987"><a href="#Generator.when_sql-1987"><span class="linenos">1987</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WHEN </span><span class="si">{</span><span class="n">matched</span><span class="si">}{</span><span class="n">source</span><span class="si">}{</span><span class="n">condition</span><span class="si">}</span><span class="s2"> THEN </span><span class="si">{</span><span class="n">then</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.when_sql-1973"><a href="#Generator.when_sql-1973"><span class="linenos">1973</span></a> <span class="k">def</span> <span class="nf">when_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">When</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.when_sql-1974"><a href="#Generator.when_sql-1974"><span class="linenos">1974</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="s2">"MATCHED"</span> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"matched"</span><span class="p">]</span> <span class="k">else</span> <span class="s2">"NOT MATCHED"</span> +</span><span id="Generator.when_sql-1975"><a href="#Generator.when_sql-1975"><span class="linenos">1975</span></a> <span class="n">source</span> <span class="o">=</span> <span class="s2">" BY SOURCE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">MATCHED_BY_SOURCE</span> <span class="ow">and</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">"source"</span><span class="p">)</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.when_sql-1976"><a href="#Generator.when_sql-1976"><span class="linenos">1976</span></a> <span class="n">condition</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">"condition"</span><span class="p">)</span> +</span><span id="Generator.when_sql-1977"><a href="#Generator.when_sql-1977"><span class="linenos">1977</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">" AND </span><span class="si">{</span><span class="n">condition</span><span class="si">}</span><span class="s2">"</span> <span class="k">if</span> <span class="n">condition</span> <span class="k">else</span> <span class="s2">""</span> +</span><span id="Generator.when_sql-1978"><a href="#Generator.when_sql-1978"><span class="linenos">1978</span></a> +</span><span id="Generator.when_sql-1979"><a href="#Generator.when_sql-1979"><span class="linenos">1979</span></a> <span class="n">then_expression</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">"then"</span><span class="p">)</span> +</span><span id="Generator.when_sql-1980"><a href="#Generator.when_sql-1980"><span class="linenos">1980</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">):</span> +</span><span id="Generator.when_sql-1981"><a href="#Generator.when_sql-1981"><span class="linenos">1981</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"INSERT </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">then_expression</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><span id="Generator.when_sql-1982"><a href="#Generator.when_sql-1982"><span class="linenos">1982</span></a> <span class="k">if</span> <span class="s2">"expression"</span> <span class="ow">in</span> <span class="n">then_expression</span><span class="o">.</span><span class="n">args</span><span class="p">:</span> +</span><span id="Generator.when_sql-1983"><a href="#Generator.when_sql-1983"><span class="linenos">1983</span></a> <span class="n">then</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" VALUES </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expression'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.when_sql-1984"><a href="#Generator.when_sql-1984"><span class="linenos">1984</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">):</span> +</span><span id="Generator.when_sql-1985"><a href="#Generator.when_sql-1985"><span class="linenos">1985</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">then_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 class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> +</span><span id="Generator.when_sql-1986"><a href="#Generator.when_sql-1986"><span class="linenos">1986</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE </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">then_expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'expressions'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.when_sql-1987"><a href="#Generator.when_sql-1987"><span class="linenos">1987</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.when_sql-1988"><a href="#Generator.when_sql-1988"><span class="linenos">1988</span></a> <span class="n">then</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"UPDATE SET </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expressions</span><span class="p">(</span><span class="n">then_expression</span><span class="p">,</span><span class="w"> </span><span class="n">flat</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.when_sql-1989"><a href="#Generator.when_sql-1989"><span class="linenos">1989</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Generator.when_sql-1990"><a href="#Generator.when_sql-1990"><span class="linenos">1990</span></a> <span class="n">then</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">then_expression</span><span class="p">)</span> +</span><span id="Generator.when_sql-1991"><a href="#Generator.when_sql-1991"><span class="linenos">1991</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"WHEN </span><span class="si">{</span><span class="n">matched</span><span class="si">}{</span><span class="n">source</span><span class="si">}{</span><span class="n">condition</span><span class="si">}</span><span class="s2"> THEN </span><span class="si">{</span><span class="n">then</span><span class="si">}</span><span class="s2">"</span> </span></pre></div> @@ -9892,11 +9941,33 @@ Default: True</li> </div> <a class="headerlink" href="#Generator.merge_sql"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.merge_sql-1989"><a href="#Generator.merge_sql-1989"><span class="linenos">1989</span></a> <span class="k">def</span> <span class="nf">merge_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">Merge</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Generator.merge_sql-1990"><a href="#Generator.merge_sql-1990"><span class="linenos">1990</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> -</span><span id="Generator.merge_sql-1991"><a href="#Generator.merge_sql-1991"><span class="linenos">1991</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"USING </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'using'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.merge_sql-1992"><a href="#Generator.merge_sql-1992"><span class="linenos">1992</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ON </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'on'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Generator.merge_sql-1993"><a href="#Generator.merge_sql-1993"><span class="linenos">1993</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGE INTO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">' '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.merge_sql-1993"><a href="#Generator.merge_sql-1993"><span class="linenos">1993</span></a> <span class="k">def</span> <span class="nf">merge_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">Merge</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.merge_sql-1994"><a href="#Generator.merge_sql-1994"><span class="linenos">1994</span></a> <span class="n">this</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">"this"</span><span class="p">)</span> +</span><span id="Generator.merge_sql-1995"><a href="#Generator.merge_sql-1995"><span class="linenos">1995</span></a> <span class="n">using</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"USING </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'using'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.merge_sql-1996"><a href="#Generator.merge_sql-1996"><span class="linenos">1996</span></a> <span class="n">on</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"ON </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">expression</span><span class="p">,</span><span class="w"> </span><span class="s1">'on'</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Generator.merge_sql-1997"><a href="#Generator.merge_sql-1997"><span class="linenos">1997</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"MERGE INTO </span><span class="si">{</span><span class="n">this</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">using</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</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="w"> </span><span class="n">sep</span><span class="o">=</span><span class="s1">' '</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span> +</span></pre></div> + + + + + </div> + <div id="Generator.tochar_sql" class="classattr"> + <input id="Generator.tochar_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">tochar_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#ToChar">sqlglot.expressions.ToChar</a></span></span><span class="return-annotation">) -> <span class="nb">str</span>:</span></span> + + <label class="view-source-button" for="Generator.tochar_sql-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#Generator.tochar_sql"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="Generator.tochar_sql-1999"><a href="#Generator.tochar_sql-1999"><span class="linenos">1999</span></a> <span class="k">def</span> <span class="nf">tochar_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">ToChar</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Generator.tochar_sql-2000"><a href="#Generator.tochar_sql-2000"><span class="linenos">2000</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">"format"</span><span class="p">):</span> +</span><span id="Generator.tochar_sql-2001"><a href="#Generator.tochar_sql-2001"><span class="linenos">2001</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unsupported</span><span class="p">(</span><span class="s2">"Format argument unsupported for TO_CHAR/TO_VARCHAR function"</span><span class="p">)</span> +</span><span id="Generator.tochar_sql-2002"><a href="#Generator.tochar_sql-2002"><span class="linenos">2002</span></a> +</span><span id="Generator.tochar_sql-2003"><a href="#Generator.tochar_sql-2003"><span class="linenos">2003</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">exp</span><span class="o">.</span><span class="n">cast</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="s2">"text"</span><span class="p">))</span> </span></pre></div> diff --git a/docs/sqlglot/helper.html b/docs/sqlglot/helper.html index d4e122f..e2b6565 100644 --- a/docs/sqlglot/helper.html +++ b/docs/sqlglot/helper.html @@ -93,6 +93,9 @@ <li> <a class="function" href="#first">first</a> </li> + <li> + <a class="function" href="#should_identify">should_identify</a> + </li> </ul> @@ -521,6 +524,23 @@ </span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a><span class="sd"> Useful for sets.</span> </span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a><span class="sd"> """</span> </span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">it</span><span class="p">)</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><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a><span class="k">def</span> <span class="nf">should_identify</span><span class="p">(</span><span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">bool</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a><span class="w"> </span><span class="sd">"""Checks if text should be identified given an identify option.</span> +</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> +</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a><span class="sd"> Args:</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a><span class="sd"> text: the text to check.</span> +</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a><span class="sd"> identify: "always" | True - always returns true, "safe" - true if no upper case</span> +</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> +</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a><span class="sd"> Returns:</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a><span class="sd"> Whether or not a string should be identified.</span> +</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a><span class="sd"> """</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">is</span> <span class="kc">True</span> <span class="ow">or</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">"always"</span><span class="p">:</span> +</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">"safe"</span><span class="p">:</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">text</span><span class="p">)</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="k">return</span> <span class="kc">False</span> </span></pre></div> @@ -1465,6 +1485,53 @@ and "cls", in case of instance and class methods, respectively.</p> </section> + <section id="should_identify"> + <input id="should_identify-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">should_identify</span><span class="signature pdoc-code condensed">(<span class="param"><span class="n">text</span><span class="p">:</span> <span class="nb">str</span>, </span><span class="param"><span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">bool</span></span><span class="return-annotation">) -> <span class="nb">bool</span>:</span></span> + + <label class="view-source-button" for="should_identify-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#should_identify"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="should_identify-409"><a href="#should_identify-409"><span class="linenos">409</span></a><span class="k">def</span> <span class="nf">should_identify</span><span class="p">(</span><span class="n">text</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="nb">bool</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="should_identify-410"><a href="#should_identify-410"><span class="linenos">410</span></a><span class="w"> </span><span class="sd">"""Checks if text should be identified given an identify option.</span> +</span><span id="should_identify-411"><a href="#should_identify-411"><span class="linenos">411</span></a> +</span><span id="should_identify-412"><a href="#should_identify-412"><span class="linenos">412</span></a><span class="sd"> Args:</span> +</span><span id="should_identify-413"><a href="#should_identify-413"><span class="linenos">413</span></a><span class="sd"> text: the text to check.</span> +</span><span id="should_identify-414"><a href="#should_identify-414"><span class="linenos">414</span></a><span class="sd"> identify: "always" | True - always returns true, "safe" - true if no upper case</span> +</span><span id="should_identify-415"><a href="#should_identify-415"><span class="linenos">415</span></a> +</span><span id="should_identify-416"><a href="#should_identify-416"><span class="linenos">416</span></a><span class="sd"> Returns:</span> +</span><span id="should_identify-417"><a href="#should_identify-417"><span class="linenos">417</span></a><span class="sd"> Whether or not a string should be identified.</span> +</span><span id="should_identify-418"><a href="#should_identify-418"><span class="linenos">418</span></a><span class="sd"> """</span> +</span><span id="should_identify-419"><a href="#should_identify-419"><span class="linenos">419</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="ow">is</span> <span class="kc">True</span> <span class="ow">or</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">"always"</span><span class="p">:</span> +</span><span id="should_identify-420"><a href="#should_identify-420"><span class="linenos">420</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="should_identify-421"><a href="#should_identify-421"><span class="linenos">421</span></a> <span class="k">if</span> <span class="n">identify</span> <span class="o">==</span> <span class="s2">"safe"</span><span class="p">:</span> +</span><span id="should_identify-422"><a href="#should_identify-422"><span class="linenos">422</span></a> <span class="k">return</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">char</span><span class="o">.</span><span class="n">isupper</span><span class="p">()</span> <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">text</span><span class="p">)</span> +</span><span id="should_identify-423"><a href="#should_identify-423"><span class="linenos">423</span></a> <span class="k">return</span> <span class="kc">False</span> +</span></pre></div> + + + <div class="docstring"><p>Checks if text should be identified given an identify option.</p> + +<h6 id="arguments">Arguments:</h6> + +<ul> +<li><strong>text:</strong> the text to check.</li> +<li><strong>identify:</strong> "always" | True - always returns true, "safe" - true if no upper case</li> +</ul> + +<h6 id="returns">Returns:</h6> + +<blockquote> + <p>Whether or not a string should be identified.</p> +</blockquote> +</div> + + + </section> </main> <script> function escapeHTML(html) { diff --git a/docs/sqlglot/lineage.html b/docs/sqlglot/lineage.html index afdc8a0..c2e1156 100644 --- a/docs/sqlglot/lineage.html +++ b/docs/sqlglot/lineage.html @@ -413,7 +413,7 @@ <div class="attr function"> <span class="def">def</span> - <span class="name">lineage</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">column</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="expressions.html#Column">sqlglot.expressions.Column</a></span>,</span><span class="param"> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="expressions.html#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">,</span> <span class="n"><a href="schema.html#Schema">sqlglot.schema.Schema</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sources</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="expressions.html#Subqueryable">sqlglot.expressions.Subqueryable</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">rules</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o"><</span><span class="n">function</span> <span class="n">qualify_tables</span> <span class="n">at</span> <span class="mh">0x7f5daa3a0ee0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">qualify_columns</span> <span class="n">at</span> <span class="mh">0x7f5daa39fd90</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">expand_laterals</span> <span class="n">at</span> <span class="mh">0x7f5daa39e560</span><span class="o">></span><span class="p">)</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#Node">sqlglot.lineage.Node</a></span>:</span></span> + <span class="name">lineage</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">column</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="expressions.html#Column">sqlglot.expressions.Column</a></span>,</span><span class="param"> <span class="n">sql</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="expressions.html#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="n">Dict</span><span class="p">,</span> <span class="n"><a href="schema.html#Schema">sqlglot.schema.Schema</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">sources</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="expressions.html#Subqueryable">sqlglot.expressions.Subqueryable</a></span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">rules</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o"><</span><span class="n">function</span> <span class="n">qualify_tables</span> <span class="n">at</span> <span class="mh">0x7fb8b87be8c0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">qualify_columns</span> <span class="n">at</span> <span class="mh">0x7fb8b87bd7e0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">expand_laterals</span> <span class="n">at</span> <span class="mh">0x7fb8b87afeb0</span><span class="o">></span><span class="p">)</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span></span><span class="return-annotation">) -> <span class="n"><a href="#Node">sqlglot.lineage.Node</a></span>:</span></span> <label class="view-source-button" for="lineage-view-source"><span>View Source</span></label> diff --git a/docs/sqlglot/optimizer/canonicalize.html b/docs/sqlglot/optimizer/canonicalize.html index 2baa3ef..386dfbd 100644 --- a/docs/sqlglot/optimizer/canonicalize.html +++ b/docs/sqlglot/optimizer/canonicalize.html @@ -42,6 +42,9 @@ <li> <a class="function" href="#remove_redundant_casts">remove_redundant_casts</a> </li> + <li> + <a class="function" href="#ensure_bool_predicates">ensure_bool_predicates</a> + </li> </ul> @@ -65,76 +68,98 @@ <label class="view-source-button" for="mod-canonicalize-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">import</span> <span class="nn">itertools</span> + <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">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">exp</span> +</span><span id="L-3"><a href="#L-3"><span class="linenos"> 3</span></a><span class="kn">import</span> <span class="nn">itertools</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><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="k">def</span> <span class="nf">canonicalize</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="w"> </span><span class="sd">"""Converts a sql expression into a standard form.</span> +</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><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">should_identify</span> +</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> </span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="sd"> This method relies on annotate_types because many of the</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="sd"> conversions rely on type inference.</span> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="k">def</span> <span class="nf">canonicalize</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">Expression</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"safe"</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos">10</span></a><span class="w"> </span><span class="sd">"""Converts a sql expression into a standard form.</span> </span><span id="L-11"><a href="#L-11"><span class="linenos">11</span></a> -</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="sd"> Args:</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="sd"> expression: The expression to canonicalize.</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a><span class="sd"> """</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">canonicalize</span><span class="p">)</span> -</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a> -</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">add_text_to_concat</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">coerce_type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">remove_redundant_casts</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos">12</span></a><span class="sd"> This method relies on annotate_types because many of the</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos">13</span></a><span class="sd"> conversions rely on type inference.</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos">14</span></a> +</span><span id="L-15"><a href="#L-15"><span class="linenos">15</span></a><span class="sd"> Args:</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos">16</span></a><span class="sd"> expression: The expression to canonicalize.</span> +</span><span id="L-17"><a href="#L-17"><span class="linenos">17</span></a><span class="sd"> identify: Whether or not to force identify identifier.</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos">18</span></a><span class="sd"> """</span> +</span><span id="L-19"><a href="#L-19"><span class="linenos">19</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">canonicalize</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="n">identify</span><span class="p">)</span> </span><span id="L-20"><a href="#L-20"><span class="linenos">20</span></a> -</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> -</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> -</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos">21</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">add_text_to_concat</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos">22</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">coerce_type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-23"><a href="#L-23"><span class="linenos">23</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">remove_redundant_casts</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos">24</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">ensure_bool_predicates</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> </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><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a><span class="k">def</span> <span class="nf">add_text_to_concat</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEXT_TYPES</span><span class="p">:</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos">26</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos">27</span></a> <span class="k">if</span> <span class="n">should_identify</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">identify</span><span class="p">):</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos">28</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos">29</span></a> +</span><span id="L-30"><a href="#L-30"><span class="linenos">30</span></a> <span class="k">return</span> <span class="n">expression</span> </span><span id="L-31"><a href="#L-31"><span class="linenos">31</span></a> </span><span id="L-32"><a href="#L-32"><span class="linenos">32</span></a> -</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a><span class="k">def</span> <span class="nf">coerce_type</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">right</span><span class="p">)</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Between</span><span class="p">):</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"low"</span><span class="p">])</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">):</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="n">_replace_cast</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"datetime"</span><span class="p">)</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> -</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> -</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a><span class="k">def</span> <span class="nf">remove_redundant_casts</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="nb">isinstance</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><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a> <span class="p">):</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> -</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> -</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a><span class="k">def</span> <span class="nf">_coerce_date</span><span class="p">(</span><span class="n">a</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="k">for</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">permutations</span><span class="p">([</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">]):</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="n">a</span><span class="o">.</span><span class="n">type</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> <span class="ow">and</span> <span class="n">a</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> <span class="ow">and</span> <span class="n">b</span><span class="o">.</span><span class="n">type</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="ow">and</span> <span class="n">b</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="p">):</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="n">_replace_cast</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="s2">"date"</span><span class="p">)</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a> +</span><span id="L-33"><a href="#L-33"><span class="linenos">33</span></a><span class="k">def</span> <span class="nf">add_text_to_concat</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEXT_TYPES</span><span class="p">:</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> <span class="k">return</span> <span class="n">node</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><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a><span class="k">def</span> <span class="nf">coerce_type</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">right</span><span class="p">)</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Between</span><span class="p">):</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"low"</span><span class="p">])</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">):</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="n">_replace_cast</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"datetime"</span><span class="p">)</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> +</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> +</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a><span class="k">def</span> <span class="nf">remove_redundant_casts</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="nb">isinstance</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><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="p">):</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> +</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> +</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a><span class="k">def</span> <span class="nf">ensure_bool_predicates</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Connector</span><span class="p">):</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="n">_replace_int_predicate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">left</span><span class="p">)</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a> <span class="n">_replace_int_predicate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">right</span><span class="p">)</span> </span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a> -</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a><span class="k">def</span> <span class="nf">_replace_cast</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> <span class="n">data_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="n">to</span><span class="p">)</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> <span class="n">cast</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="n">cast</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a> <span class="n">node</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">cast</span><span class="p">)</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">)):</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> <span class="n">_replace_int_predicate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> +</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a> +</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a> +</span><span id="L-72"><a href="#L-72"><span class="linenos">72</span></a><span class="k">def</span> <span class="nf">_coerce_date</span><span class="p">(</span><span class="n">a</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos">73</span></a> <span class="k">for</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">permutations</span><span class="p">([</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">]):</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos">74</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos">75</span></a> <span class="n">a</span><span class="o">.</span><span class="n">type</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos">76</span></a> <span class="ow">and</span> <span class="n">a</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos">77</span></a> <span class="ow">and</span> <span class="n">b</span><span class="o">.</span><span class="n">type</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos">78</span></a> <span class="ow">and</span> <span class="n">b</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">DATE</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos">79</span></a> <span class="p">):</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos">80</span></a> <span class="n">_replace_cast</span><span class="p">(</span><span class="n">b</span><span class="p">,</span> <span class="s2">"date"</span><span class="p">)</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos">81</span></a> +</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="k">def</span> <span class="nf">_replace_cast</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos">84</span></a> <span class="n">data_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="n">to</span><span class="p">)</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos">85</span></a> <span class="n">cast</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">to</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos">86</span></a> <span class="n">cast</span><span class="o">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">data_type</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos">87</span></a> <span class="n">node</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">cast</span><span class="p">)</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos">88</span></a> +</span><span id="L-89"><a href="#L-89"><span class="linenos">89</span></a> +</span><span id="L-90"><a href="#L-90"><span class="linenos">90</span></a><span class="k">def</span> <span class="nf">_replace_int_predicate</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos">91</span></a> <span class="k">if</span> <span class="n">expression</span><span class="o">.</span><span class="n">type</span> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">INTEGER_TYPES</span><span class="p">:</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos">92</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">NEQ</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">0</span><span class="p">)))</span> </span></pre></div> @@ -144,31 +169,34 @@ <div class="attr function"> <span class="def">def</span> - <span class="name">canonicalize</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span></span><span class="return-annotation">) -> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span>:</span></span> + <span class="name">canonicalize</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s1">'safe'</span></span><span class="return-annotation">) -> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span>:</span></span> <label class="view-source-button" for="canonicalize-view-source"><span>View Source</span></label> </div> <a class="headerlink" href="#canonicalize"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="canonicalize-7"><a href="#canonicalize-7"><span class="linenos"> 7</span></a><span class="k">def</span> <span class="nf">canonicalize</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="canonicalize-8"><a href="#canonicalize-8"><span class="linenos"> 8</span></a><span class="w"> </span><span class="sd">"""Converts a sql expression into a standard form.</span> -</span><span id="canonicalize-9"><a href="#canonicalize-9"><span class="linenos"> 9</span></a> -</span><span id="canonicalize-10"><a href="#canonicalize-10"><span class="linenos">10</span></a><span class="sd"> This method relies on annotate_types because many of the</span> -</span><span id="canonicalize-11"><a href="#canonicalize-11"><span class="linenos">11</span></a><span class="sd"> conversions rely on type inference.</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="canonicalize-10"><a href="#canonicalize-10"><span class="linenos">10</span></a><span class="k">def</span> <span class="nf">canonicalize</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">Expression</span><span class="p">,</span> <span class="n">identify</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"safe"</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="canonicalize-11"><a href="#canonicalize-11"><span class="linenos">11</span></a><span class="w"> </span><span class="sd">"""Converts a sql expression into a standard form.</span> </span><span id="canonicalize-12"><a href="#canonicalize-12"><span class="linenos">12</span></a> -</span><span id="canonicalize-13"><a href="#canonicalize-13"><span class="linenos">13</span></a><span class="sd"> Args:</span> -</span><span id="canonicalize-14"><a href="#canonicalize-14"><span class="linenos">14</span></a><span class="sd"> expression: The expression to canonicalize.</span> -</span><span id="canonicalize-15"><a href="#canonicalize-15"><span class="linenos">15</span></a><span class="sd"> """</span> -</span><span id="canonicalize-16"><a href="#canonicalize-16"><span class="linenos">16</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">canonicalize</span><span class="p">)</span> -</span><span id="canonicalize-17"><a href="#canonicalize-17"><span class="linenos">17</span></a> -</span><span id="canonicalize-18"><a href="#canonicalize-18"><span class="linenos">18</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">add_text_to_concat</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="canonicalize-19"><a href="#canonicalize-19"><span class="linenos">19</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">coerce_type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="canonicalize-20"><a href="#canonicalize-20"><span class="linenos">20</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">remove_redundant_casts</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="canonicalize-13"><a href="#canonicalize-13"><span class="linenos">13</span></a><span class="sd"> This method relies on annotate_types because many of the</span> +</span><span id="canonicalize-14"><a href="#canonicalize-14"><span class="linenos">14</span></a><span class="sd"> conversions rely on type inference.</span> +</span><span id="canonicalize-15"><a href="#canonicalize-15"><span class="linenos">15</span></a> +</span><span id="canonicalize-16"><a href="#canonicalize-16"><span class="linenos">16</span></a><span class="sd"> Args:</span> +</span><span id="canonicalize-17"><a href="#canonicalize-17"><span class="linenos">17</span></a><span class="sd"> expression: The expression to canonicalize.</span> +</span><span id="canonicalize-18"><a href="#canonicalize-18"><span class="linenos">18</span></a><span class="sd"> identify: Whether or not to force identify identifier.</span> +</span><span id="canonicalize-19"><a href="#canonicalize-19"><span class="linenos">19</span></a><span class="sd"> """</span> +</span><span id="canonicalize-20"><a href="#canonicalize-20"><span class="linenos">20</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">canonicalize</span><span class="p">,</span> <span class="n">identify</span><span class="o">=</span><span class="n">identify</span><span class="p">)</span> </span><span id="canonicalize-21"><a href="#canonicalize-21"><span class="linenos">21</span></a> -</span><span id="canonicalize-22"><a href="#canonicalize-22"><span class="linenos">22</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> -</span><span id="canonicalize-23"><a href="#canonicalize-23"><span class="linenos">23</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="canonicalize-24"><a href="#canonicalize-24"><span class="linenos">24</span></a> -</span><span id="canonicalize-25"><a href="#canonicalize-25"><span class="linenos">25</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="canonicalize-22"><a href="#canonicalize-22"><span class="linenos">22</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">add_text_to_concat</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="canonicalize-23"><a href="#canonicalize-23"><span class="linenos">23</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">coerce_type</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="canonicalize-24"><a href="#canonicalize-24"><span class="linenos">24</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">remove_redundant_casts</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="canonicalize-25"><a href="#canonicalize-25"><span class="linenos">25</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">ensure_bool_predicates</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="canonicalize-26"><a href="#canonicalize-26"><span class="linenos">26</span></a> +</span><span id="canonicalize-27"><a href="#canonicalize-27"><span class="linenos">27</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> +</span><span id="canonicalize-28"><a href="#canonicalize-28"><span class="linenos">28</span></a> <span class="k">if</span> <span class="n">should_identify</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">identify</span><span class="p">):</span> +</span><span id="canonicalize-29"><a href="#canonicalize-29"><span class="linenos">29</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"quoted"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="canonicalize-30"><a href="#canonicalize-30"><span class="linenos">30</span></a> +</span><span id="canonicalize-31"><a href="#canonicalize-31"><span class="linenos">31</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -181,6 +209,7 @@ conversions rely on type inference.</p> <ul> <li><strong>expression:</strong> The expression to canonicalize.</li> +<li><strong>identify:</strong> Whether or not to force identify identifier.</li> </ul> </div> @@ -197,10 +226,10 @@ conversions rely on type inference.</p> </div> <a class="headerlink" href="#add_text_to_concat"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="add_text_to_concat-28"><a href="#add_text_to_concat-28"><span class="linenos">28</span></a><span class="k">def</span> <span class="nf">add_text_to_concat</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="add_text_to_concat-29"><a href="#add_text_to_concat-29"><span class="linenos">29</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEXT_TYPES</span><span class="p">:</span> -</span><span id="add_text_to_concat-30"><a href="#add_text_to_concat-30"><span class="linenos">30</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> -</span><span id="add_text_to_concat-31"><a href="#add_text_to_concat-31"><span class="linenos">31</span></a> <span class="k">return</span> <span class="n">node</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="add_text_to_concat-34"><a href="#add_text_to_concat-34"><span class="linenos">34</span></a><span class="k">def</span> <span class="nf">add_text_to_concat</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="add_text_to_concat-35"><a href="#add_text_to_concat-35"><span class="linenos">35</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">)</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEXT_TYPES</span><span class="p">:</span> +</span><span id="add_text_to_concat-36"><a href="#add_text_to_concat-36"><span class="linenos">36</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Concat</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> +</span><span id="add_text_to_concat-37"><a href="#add_text_to_concat-37"><span class="linenos">37</span></a> <span class="k">return</span> <span class="n">node</span> </span></pre></div> @@ -218,15 +247,15 @@ conversions rely on type inference.</p> </div> <a class="headerlink" href="#coerce_type"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="coerce_type-34"><a href="#coerce_type-34"><span class="linenos">34</span></a><span class="k">def</span> <span class="nf">coerce_type</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="coerce_type-35"><a href="#coerce_type-35"><span class="linenos">35</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">):</span> -</span><span id="coerce_type-36"><a href="#coerce_type-36"><span class="linenos">36</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">right</span><span class="p">)</span> -</span><span id="coerce_type-37"><a href="#coerce_type-37"><span class="linenos">37</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Between</span><span class="p">):</span> -</span><span id="coerce_type-38"><a href="#coerce_type-38"><span class="linenos">38</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"low"</span><span class="p">])</span> -</span><span id="coerce_type-39"><a href="#coerce_type-39"><span class="linenos">39</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">):</span> -</span><span id="coerce_type-40"><a href="#coerce_type-40"><span class="linenos">40</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> -</span><span id="coerce_type-41"><a href="#coerce_type-41"><span class="linenos">41</span></a> <span class="n">_replace_cast</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"datetime"</span><span class="p">)</span> -</span><span id="coerce_type-42"><a href="#coerce_type-42"><span class="linenos">42</span></a> <span class="k">return</span> <span class="n">node</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="coerce_type-40"><a href="#coerce_type-40"><span class="linenos">40</span></a><span class="k">def</span> <span class="nf">coerce_type</span><span class="p">(</span><span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="coerce_type-41"><a href="#coerce_type-41"><span class="linenos">41</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Binary</span><span class="p">):</span> +</span><span id="coerce_type-42"><a href="#coerce_type-42"><span class="linenos">42</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">right</span><span class="p">)</span> +</span><span id="coerce_type-43"><a href="#coerce_type-43"><span class="linenos">43</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Between</span><span class="p">):</span> +</span><span id="coerce_type-44"><a href="#coerce_type-44"><span class="linenos">44</span></a> <span class="n">_coerce_date</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"low"</span><span class="p">])</span> +</span><span id="coerce_type-45"><a href="#coerce_type-45"><span class="linenos">45</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Extract</span><span class="p">):</span> +</span><span id="coerce_type-46"><a href="#coerce_type-46"><span class="linenos">46</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="o">.</span><span class="n">TEMPORAL_TYPES</span><span class="p">:</span> +</span><span id="coerce_type-47"><a href="#coerce_type-47"><span class="linenos">47</span></a> <span class="n">_replace_cast</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="s2">"datetime"</span><span class="p">)</span> +</span><span id="coerce_type-48"><a href="#coerce_type-48"><span class="linenos">48</span></a> <span class="k">return</span> <span class="n">node</span> </span></pre></div> @@ -244,15 +273,41 @@ conversions rely on type inference.</p> </div> <a class="headerlink" href="#remove_redundant_casts"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="remove_redundant_casts-45"><a href="#remove_redundant_casts-45"><span class="linenos">45</span></a><span class="k">def</span> <span class="nf">remove_redundant_casts</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="remove_redundant_casts-46"><a href="#remove_redundant_casts-46"><span class="linenos">46</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="remove_redundant_casts-47"><a href="#remove_redundant_casts-47"><span class="linenos">47</span></a> <span class="nb">isinstance</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><span id="remove_redundant_casts-48"><a href="#remove_redundant_casts-48"><span class="linenos">48</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span> -</span><span id="remove_redundant_casts-49"><a href="#remove_redundant_casts-49"><span class="linenos">49</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span> -</span><span id="remove_redundant_casts-50"><a href="#remove_redundant_casts-50"><span class="linenos">50</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> -</span><span id="remove_redundant_casts-51"><a href="#remove_redundant_casts-51"><span class="linenos">51</span></a> <span class="p">):</span> -</span><span id="remove_redundant_casts-52"><a href="#remove_redundant_casts-52"><span class="linenos">52</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> -</span><span id="remove_redundant_casts-53"><a href="#remove_redundant_casts-53"><span class="linenos">53</span></a> <span class="k">return</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="remove_redundant_casts-51"><a href="#remove_redundant_casts-51"><span class="linenos">51</span></a><span class="k">def</span> <span class="nf">remove_redundant_casts</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="remove_redundant_casts-52"><a href="#remove_redundant_casts-52"><span class="linenos">52</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="remove_redundant_casts-53"><a href="#remove_redundant_casts-53"><span class="linenos">53</span></a> <span class="nb">isinstance</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><span id="remove_redundant_casts-54"><a href="#remove_redundant_casts-54"><span class="linenos">54</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span> +</span><span id="remove_redundant_casts-55"><a href="#remove_redundant_casts-55"><span class="linenos">55</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span> +</span><span id="remove_redundant_casts-56"><a href="#remove_redundant_casts-56"><span class="linenos">56</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">to</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> <span class="o">==</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">type</span><span class="o">.</span><span class="n">this</span> +</span><span id="remove_redundant_casts-57"><a href="#remove_redundant_casts-57"><span class="linenos">57</span></a> <span class="p">):</span> +</span><span id="remove_redundant_casts-58"><a href="#remove_redundant_casts-58"><span class="linenos">58</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">this</span> +</span><span id="remove_redundant_casts-59"><a href="#remove_redundant_casts-59"><span class="linenos">59</span></a> <span class="k">return</span> <span class="n">expression</span> +</span></pre></div> + + + + + </section> + <section id="ensure_bool_predicates"> + <input id="ensure_bool_predicates-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">ensure_bool_predicates</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span></span><span class="return-annotation">) -> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span>:</span></span> + + <label class="view-source-button" for="ensure_bool_predicates-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#ensure_bool_predicates"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="ensure_bool_predicates-62"><a href="#ensure_bool_predicates-62"><span class="linenos">62</span></a><span class="k">def</span> <span class="nf">ensure_bool_predicates</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="ensure_bool_predicates-63"><a href="#ensure_bool_predicates-63"><span class="linenos">63</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Connector</span><span class="p">):</span> +</span><span id="ensure_bool_predicates-64"><a href="#ensure_bool_predicates-64"><span class="linenos">64</span></a> <span class="n">_replace_int_predicate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">left</span><span class="p">)</span> +</span><span id="ensure_bool_predicates-65"><a href="#ensure_bool_predicates-65"><span class="linenos">65</span></a> <span class="n">_replace_int_predicate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">right</span><span class="p">)</span> +</span><span id="ensure_bool_predicates-66"><a href="#ensure_bool_predicates-66"><span class="linenos">66</span></a> +</span><span id="ensure_bool_predicates-67"><a href="#ensure_bool_predicates-67"><span class="linenos">67</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">)):</span> +</span><span id="ensure_bool_predicates-68"><a href="#ensure_bool_predicates-68"><span class="linenos">68</span></a> <span class="n">_replace_int_predicate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="ensure_bool_predicates-69"><a href="#ensure_bool_predicates-69"><span class="linenos">69</span></a> +</span><span id="ensure_bool_predicates-70"><a href="#ensure_bool_predicates-70"><span class="linenos">70</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> diff --git a/docs/sqlglot/optimizer/optimizer.html b/docs/sqlglot/optimizer/optimizer.html index efbece9..e6bbae7 100644 --- a/docs/sqlglot/optimizer/optimizer.html +++ b/docs/sqlglot/optimizer/optimizer.html @@ -156,7 +156,7 @@ <div class="attr function"> <span class="def">def</span> - <span class="name">optimize</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">dict</span><span class="p">,</span> <span class="n"><a href="../schema.html#Schema">sqlglot.schema.Schema</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="../dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="../dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">rules</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o"><</span><span class="n">function</span> <span class="n">lower_identities</span> <span class="n">at</span> <span class="mh">0x7f5daa39e830</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">qualify_tables</span> <span class="n">at</span> <span class="mh">0x7f5daa3a0ee0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">isolate_table_selects</span> <span class="n">at</span> <span class="mh">0x7f5daa39e7a0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">qualify_columns</span> <span class="n">at</span> <span class="mh">0x7f5daa39fd90</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">expand_laterals</span> <span class="n">at</span> <span class="mh">0x7f5daa39e560</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">pushdown_projections</span> <span class="n">at</span> <span class="mh">0x7f5daa3a08b0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">validate_qualify_columns</span> <span class="n">at</span> <span class="mh">0x7f5daa39fe20</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">normalize</span> <span class="n">at</span> <span class="mh">0x7f5daa39c550</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">unnest_subqueries</span> <span class="n">at</span> <span class="mh">0x7f5daa3a1000</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">expand_multi_table_selects</span> <span class="n">at</span> <span class="mh">0x7f5daa39e710</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">pushdown_predicates</span> <span class="n">at</span> <span class="mh">0x7f5daa39f910</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">optimize_joins</span> <span class="n">at</span> <span class="mh">0x7f5daa39f640</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">eliminate_subqueries</span> <span class="n">at</span> <span class="mh">0x7f5daa39e170</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">merge_subqueries</span> <span class="n">at</span> <span class="mh">0x7f5daa39eb00</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">eliminate_joins</span> <span class="n">at</span> <span class="mh">0x7f5daa39c3a0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">eliminate_ctes</span> <span class="n">at</span> <span class="mh">0x7f5daa39c280</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">annotate_types</span> <span class="n">at</span> <span class="mh">0x7f5daa324e50</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">canonicalize</span> <span class="n">at</span> <span class="mh">0x7f5daa3b7e20</span><span class="o">></span><span class="p">)</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span> + <span class="name">optimize</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n"><a href="../expressions.html#Expression">sqlglot.expressions.Expression</a></span>,</span><span class="param"> <span class="n">schema</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">dict</span><span class="p">,</span> <span class="n"><a href="../schema.html#Schema">sqlglot.schema.Schema</a></span><span class="p">,</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">db</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">catalog</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">dialect</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n"><a href="../dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n"><a href="../dialects/dialect.html#Dialect">sqlglot.dialects.dialect.Dialect</a></span><span class="p">],</span> <span class="n">NoneType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span>,</span><span class="param"> <span class="n">rules</span><span class="p">:</span> <span class="n">Sequence</span><span class="p">[</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="o"><</span><span class="n">function</span> <span class="n">lower_identities</span> <span class="n">at</span> <span class="mh">0x7fb8b87bc1f0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">qualify_tables</span> <span class="n">at</span> <span class="mh">0x7fb8b87be8c0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">isolate_table_selects</span> <span class="n">at</span> <span class="mh">0x7fb8b87bc160</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">qualify_columns</span> <span class="n">at</span> <span class="mh">0x7fb8b87bd7e0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">expand_laterals</span> <span class="n">at</span> <span class="mh">0x7fb8b87afeb0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">pushdown_projections</span> <span class="n">at</span> <span class="mh">0x7fb8b87be290</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">validate_qualify_columns</span> <span class="n">at</span> <span class="mh">0x7fb8b87bd870</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">normalize</span> <span class="n">at</span> <span class="mh">0x7fb8b87adea0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">unnest_subqueries</span> <span class="n">at</span> <span class="mh">0x7fb8b87be9e0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">expand_multi_table_selects</span> <span class="n">at</span> <span class="mh">0x7fb8b87bc0d0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">pushdown_predicates</span> <span class="n">at</span> <span class="mh">0x7fb8b87bd2d0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">optimize_joins</span> <span class="n">at</span> <span class="mh">0x7fb8b87bd000</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">eliminate_subqueries</span> <span class="n">at</span> <span class="mh">0x7fb8b87afac0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">merge_subqueries</span> <span class="n">at</span> <span class="mh">0x7fb8b87bc4c0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">eliminate_joins</span> <span class="n">at</span> <span class="mh">0x7fb8b87adcf0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">eliminate_ctes</span> <span class="n">at</span> <span class="mh">0x7fb8b87adbd0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">annotate_types</span> <span class="n">at</span> <span class="mh">0x7fb8b87465f0</span><span class="o">></span><span class="p">,</span> <span class="o"><</span><span class="n">function</span> <span class="n">canonicalize</span> <span class="n">at</span> <span class="mh">0x7fb8b87ad6c0</span><span class="o">></span><span class="p">)</span>,</span><span class="param"> <span class="o">**</span><span class="n">kwargs</span></span><span class="return-annotation">):</span></span> <label class="view-source-button" for="optimize-view-source"><span>View Source</span></label> diff --git a/docs/sqlglot/optimizer/pushdown_projections.html b/docs/sqlglot/optimizer/pushdown_projections.html index 54d7932..f0de386 100644 --- a/docs/sqlglot/optimizer/pushdown_projections.html +++ b/docs/sqlglot/optimizer/pushdown_projections.html @@ -62,99 +62,99 @@ <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">collections</span> <span class="kn">import</span> <span class="n">defaultdict</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">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">alias</span><span class="p">,</span> <span class="n">exp</span> -</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">flatten</span> -</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">sqlglot.optimizer.qualify_columns</span> <span class="kn">import</span> <span class="n">Resolver</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.optimizer.scope</span> <span class="kn">import</span> <span class="n">Scope</span><span class="p">,</span> <span class="n">traverse_scope</span> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">sqlglot.schema</span> <span class="kn">import</span> <span class="n">ensure_schema</span> -</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="c1"># Sentinel value that means an outer query selecting ALL columns</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="n">SELECT_ALL</span> <span class="o">=</span> <span class="nb">object</span><span class="p">()</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="c1"># Selection to use if selection list is empty</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="n">DEFAULT_SELECTION</span> <span class="o">=</span> <span class="k">lambda</span><span class="p">:</span> <span class="n">alias</span><span class="p">(</span><span class="s2">"1"</span><span class="p">,</span> <span class="s2">"_"</span><span class="p">)</span> +</span><span id="L-4"><a href="#L-4"><span class="linenos"> 4</span></a><span class="kn">from</span> <span class="nn">sqlglot.optimizer.qualify_columns</span> <span class="kn">import</span> <span class="n">Resolver</span> +</span><span id="L-5"><a href="#L-5"><span class="linenos"> 5</span></a><span class="kn">from</span> <span class="nn">sqlglot.optimizer.scope</span> <span class="kn">import</span> <span class="n">Scope</span><span class="p">,</span> <span class="n">traverse_scope</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.schema</span> <span class="kn">import</span> <span class="n">ensure_schema</span> +</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a><span class="c1"># Sentinel value that means an outer query selecting ALL columns</span> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="n">SELECT_ALL</span> <span class="o">=</span> <span class="nb">object</span><span class="p">()</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a><span class="c1"># Selection to use if selection list is empty</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="n">DEFAULT_SELECTION</span> <span class="o">=</span> <span class="k">lambda</span><span class="p">:</span> <span class="n">alias</span><span class="p">(</span><span class="s2">"1"</span><span class="p">,</span> <span class="s2">"_"</span><span class="p">)</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> </span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> -</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="k">def</span> <span class="nf">pushdown_projections</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">schema</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">remove_unused_selections</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="sd"> Rewrite sqlglot AST to remove unused columns projections.</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a> -</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="sd"> Example:</span> -</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="sd"> >>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> >>> expression = sqlglot.parse_one(sql)</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd"> >>> pushdown_projections(expression).sql()</span> -</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="sd"> 'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> Args:</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> expression (sqlglot.Expression): expression to optimize</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> remove_unused_selections (bool): remove selects that are unused</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> Returns:</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> sqlglot.Expression: optimized expression</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="sd"> """</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="c1"># Map of Scope to all columns being selected by outer queries.</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">ensure_schema</span><span class="p">(</span><span class="n">schema</span><span class="p">)</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="n">referenced_columns</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="c1"># We build the scope tree (which is traversed in DFS postorder), then iterate</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="c1"># over the result in reverse order. This should ensure that the set of selected</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="c1"># columns for a particular scope are completely build by the time we get to it.</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)):</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="n">referenced_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">})</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">if</span> <span class="n">scope</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">"distinct"</span><span class="p">):</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="c1"># We can't remove columns SELECT DISTINCT nor UNION DISTINCT</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">}</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Union</span><span class="p">):</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">left</span><span class="p">,</span> <span class="n">right</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">union_scopes</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">left</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">alias_or_name</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">select</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">)</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">if</span> <span class="n">SELECT_ALL</span> <span class="ow">in</span> <span class="n">parent_selections</span> <span class="ow">or</span> <span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="ow">in</span> <span class="n">parent_selections</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="p">]</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="k">if</span> <span class="n">remove_unused_selections</span><span class="p">:</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="n">_remove_unused_selections</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">parent_selections</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="c1"># Group columns by source name</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">table</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">col_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">selects</span><span class="p">[</span><span class="n">table_name</span><span class="p">]</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">col_name</span><span class="p">)</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="c1"># Push the selected columns down to the next scope</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">source</span><span class="p">)</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">):</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">set</span><span class="p">()</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">source</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><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="k">return</span> <span class="n">expression</span> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="k">def</span> <span class="nf">pushdown_projections</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">schema</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">remove_unused_selections</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="sd"> Rewrite sqlglot AST to remove unused columns projections.</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> +</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="sd"> Example:</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="sd"> >>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="sd"> >>> expression = sqlglot.parse_one(sql)</span> +</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> >>> pushdown_projections(expression).sql()</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd"> 'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'</span> +</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="sd"> Args:</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> expression (sqlglot.Expression): expression to optimize</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> remove_unused_selections (bool): remove selects that are unused</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> Returns:</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> sqlglot.Expression: optimized expression</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> """</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="c1"># Map of Scope to all columns being selected by outer queries.</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">ensure_schema</span><span class="p">(</span><span class="n">schema</span><span class="p">)</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="n">referenced_columns</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</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="c1"># We build the scope tree (which is traversed in DFS postorder), then iterate</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="c1"># over the result in reverse order. This should ensure that the set of selected</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="c1"># columns for a particular scope are completely build by the time we get to it.</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)):</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="n">referenced_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">})</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">if</span> <span class="n">scope</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">"distinct"</span><span class="p">):</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="c1"># We can't remove columns SELECT DISTINCT nor UNION DISTINCT</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">}</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Union</span><span class="p">):</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="n">left</span><span class="p">,</span> <span class="n">right</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">union_scopes</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">left</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">select</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">)</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="k">if</span> <span class="n">SELECT_ALL</span> <span class="ow">in</span> <span class="n">parent_selections</span> <span class="ow">or</span> <span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="ow">in</span> <span class="n">parent_selections</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="p">]</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="k">if</span> <span class="n">remove_unused_selections</span><span class="p">:</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="n">_remove_unused_selections</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">parent_selections</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="c1"># Group columns by source name</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">table</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">col_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">selects</span><span class="p">[</span><span class="n">table_name</span><span class="p">]</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">col_name</span><span class="p">)</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="c1"># Push the selected columns down to the next scope</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">source</span><span class="p">)</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">):</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">set</span><span class="p">()</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">source</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> </span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="k">def</span> <span class="nf">_remove_unused_selections</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">parent_selections</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">order</span> <span class="o">=</span> <span class="n">scope</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">"order"</span><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="k">if</span> <span class="n">order</span><span class="p">:</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="c1"># Assume columns without a qualified table are references to output columns</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">order_refs</span> <span class="o">=</span> <span class="p">{</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">order</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span><span class="p">}</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">order_refs</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">new_selections</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">list</span><span class="p">)</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">removed</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">star</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="k">def</span> <span class="nf">_remove_unused_selections</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">parent_selections</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">order</span> <span class="o">=</span> <span class="n">scope</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">"order"</span><span class="p">)</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">if</span> <span class="n">order</span><span class="p">:</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="c1"># Assume columns without a qualified table are references to output columns</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">order_refs</span> <span class="o">=</span> <span class="p">{</span><span class="n">c</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">order</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span><span class="p">}</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">order_refs</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">new_selections</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">removed</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">star</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> </span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">for</span> <span class="n">selection</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">:</span> </span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">selection</span><span class="o">.</span><span class="n">alias_or_name</span> </span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> </span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="n">SELECT_ALL</span> <span class="ow">in</span> <span class="n">parent_selections</span> <span class="ow">or</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">parent_selections</span> <span class="ow">or</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">order_refs</span><span class="p">:</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">new_selections</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span> </span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">else</span><span class="p">:</span> </span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="n">selection</span><span class="o">.</span><span class="n">is_star</span><span class="p">:</span> </span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">star</span> <span class="o">=</span> <span class="kc">True</span> @@ -162,21 +162,20 @@ </span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> </span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="n">star</span><span class="p">:</span> </span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="n">resolver</span> <span class="o">=</span> <span class="n">Resolver</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">parent_selections</span><span class="p">):</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">new_selections</span><span class="p">:</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">new_selections</span><span class="p">[</span><span class="n">name</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">alias</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">name</span><span class="p">)),</span> <span class="n">name</span><span class="p">)</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="p">)</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="c1"># If there are no remaining selections, just select a single constant</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">new_selections</span><span class="p">:</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="n">new_selections</span><span class="p">[</span><span class="s2">""</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">DEFAULT_SELECTION</span><span class="p">())</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">flatten</span><span class="p">(</span><span class="n">new_selections</span><span class="o">.</span><span class="n">values</span><span class="p">()),</span> <span class="n">append</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">if</span> <span class="n">removed</span><span class="p">:</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">{</span><span class="n">s</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">new_selections</span><span class="p">}</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">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="nb">sorted</span><span class="p">(</span><span class="n">parent_selections</span><span class="p">):</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">names</span><span class="p">:</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alias</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">name</span><span class="p">)),</span> <span class="n">name</span><span class="p">))</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="c1"># If there are no remaining selections, just select a single constant</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">new_selections</span><span class="p">:</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">DEFAULT_SELECTION</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="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">new_selections</span><span class="p">,</span> <span class="n">append</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">if</span> <span class="n">removed</span><span class="p">:</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span></pre></div> @@ -192,7 +191,7 @@ </div> <a class="headerlink" href="#DEFAULT_SELECTION"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="DEFAULT_SELECTION-14"><a href="#DEFAULT_SELECTION-14"><span class="linenos">14</span></a><span class="n">DEFAULT_SELECTION</span> <span class="o">=</span> <span class="k">lambda</span><span class="p">:</span> <span class="n">alias</span><span class="p">(</span><span class="s2">"1"</span><span class="p">,</span> <span class="s2">"_"</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="DEFAULT_SELECTION-13"><a href="#DEFAULT_SELECTION-13"><span class="linenos">13</span></a><span class="n">DEFAULT_SELECTION</span> <span class="o">=</span> <span class="k">lambda</span><span class="p">:</span> <span class="n">alias</span><span class="p">(</span><span class="s2">"1"</span><span class="p">,</span> <span class="s2">"_"</span><span class="p">)</span> </span></pre></div> @@ -210,68 +209,68 @@ </div> <a class="headerlink" href="#pushdown_projections"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="pushdown_projections-17"><a href="#pushdown_projections-17"><span class="linenos">17</span></a><span class="k">def</span> <span class="nf">pushdown_projections</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">schema</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">remove_unused_selections</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="pushdown_projections-18"><a href="#pushdown_projections-18"><span class="linenos">18</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="pushdown_projections-19"><a href="#pushdown_projections-19"><span class="linenos">19</span></a><span class="sd"> Rewrite sqlglot AST to remove unused columns projections.</span> -</span><span id="pushdown_projections-20"><a href="#pushdown_projections-20"><span class="linenos">20</span></a> -</span><span id="pushdown_projections-21"><a href="#pushdown_projections-21"><span class="linenos">21</span></a><span class="sd"> Example:</span> -</span><span id="pushdown_projections-22"><a href="#pushdown_projections-22"><span class="linenos">22</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="pushdown_projections-23"><a href="#pushdown_projections-23"><span class="linenos">23</span></a><span class="sd"> >>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"</span> -</span><span id="pushdown_projections-24"><a href="#pushdown_projections-24"><span class="linenos">24</span></a><span class="sd"> >>> expression = sqlglot.parse_one(sql)</span> -</span><span id="pushdown_projections-25"><a href="#pushdown_projections-25"><span class="linenos">25</span></a><span class="sd"> >>> pushdown_projections(expression).sql()</span> -</span><span id="pushdown_projections-26"><a href="#pushdown_projections-26"><span class="linenos">26</span></a><span class="sd"> 'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'</span> -</span><span id="pushdown_projections-27"><a href="#pushdown_projections-27"><span class="linenos">27</span></a> -</span><span id="pushdown_projections-28"><a href="#pushdown_projections-28"><span class="linenos">28</span></a><span class="sd"> Args:</span> -</span><span id="pushdown_projections-29"><a href="#pushdown_projections-29"><span class="linenos">29</span></a><span class="sd"> expression (sqlglot.Expression): expression to optimize</span> -</span><span id="pushdown_projections-30"><a href="#pushdown_projections-30"><span class="linenos">30</span></a><span class="sd"> remove_unused_selections (bool): remove selects that are unused</span> -</span><span id="pushdown_projections-31"><a href="#pushdown_projections-31"><span class="linenos">31</span></a><span class="sd"> Returns:</span> -</span><span id="pushdown_projections-32"><a href="#pushdown_projections-32"><span class="linenos">32</span></a><span class="sd"> sqlglot.Expression: optimized expression</span> -</span><span id="pushdown_projections-33"><a href="#pushdown_projections-33"><span class="linenos">33</span></a><span class="sd"> """</span> -</span><span id="pushdown_projections-34"><a href="#pushdown_projections-34"><span class="linenos">34</span></a> <span class="c1"># Map of Scope to all columns being selected by outer queries.</span> -</span><span id="pushdown_projections-35"><a href="#pushdown_projections-35"><span class="linenos">35</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">ensure_schema</span><span class="p">(</span><span class="n">schema</span><span class="p">)</span> -</span><span id="pushdown_projections-36"><a href="#pushdown_projections-36"><span class="linenos">36</span></a> <span class="n">referenced_columns</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> -</span><span id="pushdown_projections-37"><a href="#pushdown_projections-37"><span class="linenos">37</span></a> -</span><span id="pushdown_projections-38"><a href="#pushdown_projections-38"><span class="linenos">38</span></a> <span class="c1"># We build the scope tree (which is traversed in DFS postorder), then iterate</span> -</span><span id="pushdown_projections-39"><a href="#pushdown_projections-39"><span class="linenos">39</span></a> <span class="c1"># over the result in reverse order. This should ensure that the set of selected</span> -</span><span id="pushdown_projections-40"><a href="#pushdown_projections-40"><span class="linenos">40</span></a> <span class="c1"># columns for a particular scope are completely build by the time we get to it.</span> -</span><span id="pushdown_projections-41"><a href="#pushdown_projections-41"><span class="linenos">41</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)):</span> -</span><span id="pushdown_projections-42"><a href="#pushdown_projections-42"><span class="linenos">42</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="n">referenced_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">})</span> -</span><span id="pushdown_projections-43"><a href="#pushdown_projections-43"><span class="linenos">43</span></a> -</span><span id="pushdown_projections-44"><a href="#pushdown_projections-44"><span class="linenos">44</span></a> <span class="k">if</span> <span class="n">scope</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">"distinct"</span><span class="p">):</span> -</span><span id="pushdown_projections-45"><a href="#pushdown_projections-45"><span class="linenos">45</span></a> <span class="c1"># We can't remove columns SELECT DISTINCT nor UNION DISTINCT</span> -</span><span id="pushdown_projections-46"><a href="#pushdown_projections-46"><span class="linenos">46</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">}</span> -</span><span id="pushdown_projections-47"><a href="#pushdown_projections-47"><span class="linenos">47</span></a> -</span><span id="pushdown_projections-48"><a href="#pushdown_projections-48"><span class="linenos">48</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Union</span><span class="p">):</span> -</span><span id="pushdown_projections-49"><a href="#pushdown_projections-49"><span class="linenos">49</span></a> <span class="n">left</span><span class="p">,</span> <span class="n">right</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">union_scopes</span> -</span><span id="pushdown_projections-50"><a href="#pushdown_projections-50"><span class="linenos">50</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">left</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> -</span><span id="pushdown_projections-51"><a href="#pushdown_projections-51"><span class="linenos">51</span></a> -</span><span id="pushdown_projections-52"><a href="#pushdown_projections-52"><span class="linenos">52</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> -</span><span id="pushdown_projections-53"><a href="#pushdown_projections-53"><span class="linenos">53</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> -</span><span id="pushdown_projections-54"><a href="#pushdown_projections-54"><span class="linenos">54</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> -</span><span id="pushdown_projections-55"><a href="#pushdown_projections-55"><span class="linenos">55</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="pushdown_projections-56"><a href="#pushdown_projections-56"><span class="linenos">56</span></a> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">alias_or_name</span> -</span><span id="pushdown_projections-57"><a href="#pushdown_projections-57"><span class="linenos">57</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">select</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">)</span> -</span><span id="pushdown_projections-58"><a href="#pushdown_projections-58"><span class="linenos">58</span></a> <span class="k">if</span> <span class="n">SELECT_ALL</span> <span class="ow">in</span> <span class="n">parent_selections</span> <span class="ow">or</span> <span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="ow">in</span> <span class="n">parent_selections</span> -</span><span id="pushdown_projections-59"><a href="#pushdown_projections-59"><span class="linenos">59</span></a> <span class="p">]</span> -</span><span id="pushdown_projections-60"><a href="#pushdown_projections-60"><span class="linenos">60</span></a> -</span><span id="pushdown_projections-61"><a href="#pushdown_projections-61"><span class="linenos">61</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> -</span><span id="pushdown_projections-62"><a href="#pushdown_projections-62"><span class="linenos">62</span></a> <span class="k">if</span> <span class="n">remove_unused_selections</span><span class="p">:</span> -</span><span id="pushdown_projections-63"><a href="#pushdown_projections-63"><span class="linenos">63</span></a> <span class="n">_remove_unused_selections</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">parent_selections</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> -</span><span id="pushdown_projections-64"><a href="#pushdown_projections-64"><span class="linenos">64</span></a> -</span><span id="pushdown_projections-65"><a href="#pushdown_projections-65"><span class="linenos">65</span></a> <span class="c1"># Group columns by source name</span> -</span><span id="pushdown_projections-66"><a href="#pushdown_projections-66"><span class="linenos">66</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> -</span><span id="pushdown_projections-67"><a href="#pushdown_projections-67"><span class="linenos">67</span></a> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> -</span><span id="pushdown_projections-68"><a href="#pushdown_projections-68"><span class="linenos">68</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">table</span> -</span><span id="pushdown_projections-69"><a href="#pushdown_projections-69"><span class="linenos">69</span></a> <span class="n">col_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span> -</span><span id="pushdown_projections-70"><a href="#pushdown_projections-70"><span class="linenos">70</span></a> <span class="n">selects</span><span class="p">[</span><span class="n">table_name</span><span class="p">]</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">col_name</span><span class="p">)</span> -</span><span id="pushdown_projections-71"><a href="#pushdown_projections-71"><span class="linenos">71</span></a> -</span><span id="pushdown_projections-72"><a href="#pushdown_projections-72"><span class="linenos">72</span></a> <span class="c1"># Push the selected columns down to the next scope</span> -</span><span id="pushdown_projections-73"><a href="#pushdown_projections-73"><span class="linenos">73</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">source</span><span class="p">)</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="pushdown_projections-74"><a href="#pushdown_projections-74"><span class="linenos">74</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">):</span> -</span><span id="pushdown_projections-75"><a href="#pushdown_projections-75"><span class="linenos">75</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">set</span><span class="p">()</span> -</span><span id="pushdown_projections-76"><a href="#pushdown_projections-76"><span class="linenos">76</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">source</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> -</span><span id="pushdown_projections-77"><a href="#pushdown_projections-77"><span class="linenos">77</span></a> -</span><span id="pushdown_projections-78"><a href="#pushdown_projections-78"><span class="linenos">78</span></a> <span class="k">return</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="pushdown_projections-16"><a href="#pushdown_projections-16"><span class="linenos">16</span></a><span class="k">def</span> <span class="nf">pushdown_projections</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">schema</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">remove_unused_selections</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="pushdown_projections-17"><a href="#pushdown_projections-17"><span class="linenos">17</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="pushdown_projections-18"><a href="#pushdown_projections-18"><span class="linenos">18</span></a><span class="sd"> Rewrite sqlglot AST to remove unused columns projections.</span> +</span><span id="pushdown_projections-19"><a href="#pushdown_projections-19"><span class="linenos">19</span></a> +</span><span id="pushdown_projections-20"><a href="#pushdown_projections-20"><span class="linenos">20</span></a><span class="sd"> Example:</span> +</span><span id="pushdown_projections-21"><a href="#pushdown_projections-21"><span class="linenos">21</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="pushdown_projections-22"><a href="#pushdown_projections-22"><span class="linenos">22</span></a><span class="sd"> >>> sql = "SELECT y.a AS a FROM (SELECT x.a AS a, x.b AS b FROM x) AS y"</span> +</span><span id="pushdown_projections-23"><a href="#pushdown_projections-23"><span class="linenos">23</span></a><span class="sd"> >>> expression = sqlglot.parse_one(sql)</span> +</span><span id="pushdown_projections-24"><a href="#pushdown_projections-24"><span class="linenos">24</span></a><span class="sd"> >>> pushdown_projections(expression).sql()</span> +</span><span id="pushdown_projections-25"><a href="#pushdown_projections-25"><span class="linenos">25</span></a><span class="sd"> 'SELECT y.a AS a FROM (SELECT x.a AS a FROM x) AS y'</span> +</span><span id="pushdown_projections-26"><a href="#pushdown_projections-26"><span class="linenos">26</span></a> +</span><span id="pushdown_projections-27"><a href="#pushdown_projections-27"><span class="linenos">27</span></a><span class="sd"> Args:</span> +</span><span id="pushdown_projections-28"><a href="#pushdown_projections-28"><span class="linenos">28</span></a><span class="sd"> expression (sqlglot.Expression): expression to optimize</span> +</span><span id="pushdown_projections-29"><a href="#pushdown_projections-29"><span class="linenos">29</span></a><span class="sd"> remove_unused_selections (bool): remove selects that are unused</span> +</span><span id="pushdown_projections-30"><a href="#pushdown_projections-30"><span class="linenos">30</span></a><span class="sd"> Returns:</span> +</span><span id="pushdown_projections-31"><a href="#pushdown_projections-31"><span class="linenos">31</span></a><span class="sd"> sqlglot.Expression: optimized expression</span> +</span><span id="pushdown_projections-32"><a href="#pushdown_projections-32"><span class="linenos">32</span></a><span class="sd"> """</span> +</span><span id="pushdown_projections-33"><a href="#pushdown_projections-33"><span class="linenos">33</span></a> <span class="c1"># Map of Scope to all columns being selected by outer queries.</span> +</span><span id="pushdown_projections-34"><a href="#pushdown_projections-34"><span class="linenos">34</span></a> <span class="n">schema</span> <span class="o">=</span> <span class="n">ensure_schema</span><span class="p">(</span><span class="n">schema</span><span class="p">)</span> +</span><span id="pushdown_projections-35"><a href="#pushdown_projections-35"><span class="linenos">35</span></a> <span class="n">referenced_columns</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> +</span><span id="pushdown_projections-36"><a href="#pushdown_projections-36"><span class="linenos">36</span></a> +</span><span id="pushdown_projections-37"><a href="#pushdown_projections-37"><span class="linenos">37</span></a> <span class="c1"># We build the scope tree (which is traversed in DFS postorder), then iterate</span> +</span><span id="pushdown_projections-38"><a href="#pushdown_projections-38"><span class="linenos">38</span></a> <span class="c1"># over the result in reverse order. This should ensure that the set of selected</span> +</span><span id="pushdown_projections-39"><a href="#pushdown_projections-39"><span class="linenos">39</span></a> <span class="c1"># columns for a particular scope are completely build by the time we get to it.</span> +</span><span id="pushdown_projections-40"><a href="#pushdown_projections-40"><span class="linenos">40</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)):</span> +</span><span id="pushdown_projections-41"><a href="#pushdown_projections-41"><span class="linenos">41</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="n">referenced_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">})</span> +</span><span id="pushdown_projections-42"><a href="#pushdown_projections-42"><span class="linenos">42</span></a> +</span><span id="pushdown_projections-43"><a href="#pushdown_projections-43"><span class="linenos">43</span></a> <span class="k">if</span> <span class="n">scope</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">"distinct"</span><span class="p">):</span> +</span><span id="pushdown_projections-44"><a href="#pushdown_projections-44"><span class="linenos">44</span></a> <span class="c1"># We can't remove columns SELECT DISTINCT nor UNION DISTINCT</span> +</span><span id="pushdown_projections-45"><a href="#pushdown_projections-45"><span class="linenos">45</span></a> <span class="n">parent_selections</span> <span class="o">=</span> <span class="p">{</span><span class="n">SELECT_ALL</span><span class="p">}</span> +</span><span id="pushdown_projections-46"><a href="#pushdown_projections-46"><span class="linenos">46</span></a> +</span><span id="pushdown_projections-47"><a href="#pushdown_projections-47"><span class="linenos">47</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Union</span><span class="p">):</span> +</span><span id="pushdown_projections-48"><a href="#pushdown_projections-48"><span class="linenos">48</span></a> <span class="n">left</span><span class="p">,</span> <span class="n">right</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">union_scopes</span> +</span><span id="pushdown_projections-49"><a href="#pushdown_projections-49"><span class="linenos">49</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">left</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> +</span><span id="pushdown_projections-50"><a href="#pushdown_projections-50"><span class="linenos">50</span></a> +</span><span id="pushdown_projections-51"><a href="#pushdown_projections-51"><span class="linenos">51</span></a> <span class="k">if</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> +</span><span id="pushdown_projections-52"><a href="#pushdown_projections-52"><span class="linenos">52</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="n">parent_selections</span> +</span><span id="pushdown_projections-53"><a href="#pushdown_projections-53"><span class="linenos">53</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">is_star</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">):</span> +</span><span id="pushdown_projections-54"><a href="#pushdown_projections-54"><span class="linenos">54</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">right</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="pushdown_projections-55"><a href="#pushdown_projections-55"><span class="linenos">55</span></a> <span class="n">right</span><span class="o">.</span><span class="n">selects</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="pushdown_projections-56"><a href="#pushdown_projections-56"><span class="linenos">56</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">select</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">left</span><span class="o">.</span><span class="n">selects</span><span class="p">)</span> +</span><span id="pushdown_projections-57"><a href="#pushdown_projections-57"><span class="linenos">57</span></a> <span class="k">if</span> <span class="n">SELECT_ALL</span> <span class="ow">in</span> <span class="n">parent_selections</span> <span class="ow">or</span> <span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="ow">in</span> <span class="n">parent_selections</span> +</span><span id="pushdown_projections-58"><a href="#pushdown_projections-58"><span class="linenos">58</span></a> <span class="p">]</span> +</span><span id="pushdown_projections-59"><a href="#pushdown_projections-59"><span class="linenos">59</span></a> +</span><span id="pushdown_projections-60"><a href="#pushdown_projections-60"><span class="linenos">60</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> +</span><span id="pushdown_projections-61"><a href="#pushdown_projections-61"><span class="linenos">61</span></a> <span class="k">if</span> <span class="n">remove_unused_selections</span><span class="p">:</span> +</span><span id="pushdown_projections-62"><a href="#pushdown_projections-62"><span class="linenos">62</span></a> <span class="n">_remove_unused_selections</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">parent_selections</span><span class="p">,</span> <span class="n">schema</span><span class="p">)</span> +</span><span id="pushdown_projections-63"><a href="#pushdown_projections-63"><span class="linenos">63</span></a> +</span><span id="pushdown_projections-64"><a href="#pushdown_projections-64"><span class="linenos">64</span></a> <span class="c1"># Group columns by source name</span> +</span><span id="pushdown_projections-65"><a href="#pushdown_projections-65"><span class="linenos">65</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">set</span><span class="p">)</span> +</span><span id="pushdown_projections-66"><a href="#pushdown_projections-66"><span class="linenos">66</span></a> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> +</span><span id="pushdown_projections-67"><a href="#pushdown_projections-67"><span class="linenos">67</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">table</span> +</span><span id="pushdown_projections-68"><a href="#pushdown_projections-68"><span class="linenos">68</span></a> <span class="n">col_name</span> <span class="o">=</span> <span class="n">col</span><span class="o">.</span><span class="n">name</span> +</span><span id="pushdown_projections-69"><a href="#pushdown_projections-69"><span class="linenos">69</span></a> <span class="n">selects</span><span class="p">[</span><span class="n">table_name</span><span class="p">]</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">col_name</span><span class="p">)</span> +</span><span id="pushdown_projections-70"><a href="#pushdown_projections-70"><span class="linenos">70</span></a> +</span><span id="pushdown_projections-71"><a href="#pushdown_projections-71"><span class="linenos">71</span></a> <span class="c1"># Push the selected columns down to the next scope</span> +</span><span id="pushdown_projections-72"><a href="#pushdown_projections-72"><span class="linenos">72</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="p">(</span><span class="n">_</span><span class="p">,</span> <span class="n">source</span><span class="p">)</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="pushdown_projections-73"><a href="#pushdown_projections-73"><span class="linenos">73</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">):</span> +</span><span id="pushdown_projections-74"><a href="#pushdown_projections-74"><span class="linenos">74</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">)</span> <span class="ow">or</span> <span class="nb">set</span><span class="p">()</span> +</span><span id="pushdown_projections-75"><a href="#pushdown_projections-75"><span class="linenos">75</span></a> <span class="n">referenced_columns</span><span class="p">[</span><span class="n">source</span><span class="p">]</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> +</span><span id="pushdown_projections-76"><a href="#pushdown_projections-76"><span class="linenos">76</span></a> +</span><span id="pushdown_projections-77"><a href="#pushdown_projections-77"><span class="linenos">77</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> diff --git a/docs/sqlglot/optimizer/qualify_columns.html b/docs/sqlglot/optimizer/qualify_columns.html index 7f7fadd..8de0b29 100644 --- a/docs/sqlglot/optimizer/qualify_columns.html +++ b/docs/sqlglot/optimizer/qualify_columns.html @@ -116,425 +116,455 @@ </span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="n">_qualify_outputs</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> </span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="n">_expand_group_by</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">)</span> </span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="n">_expand_order_by</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</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">return</span> <span class="n">expression</span> </span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="k">def</span> <span class="nf">validate_qualify_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="w"> </span><span class="sd">"""Raise an `OptimizeError` if any columns aren't qualified"""</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="n">unqualified_columns</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="n">unqualified_columns</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">unqualified_columns</span><span class="p">)</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="k">if</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_correlated_subquery</span><span class="p">:</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: '</span><span class="si">{</span><span class="n">column</span><span class="o">.</span><span class="n">table</span><span class="si">}</span><span class="s2">' for column '</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="k">if</span> <span class="n">unqualified_columns</span><span class="p">:</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Ambiguous columns: </span><span class="si">{</span><span class="n">unqualified_columns</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="k">def</span> <span class="nf">validate_qualify_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="w"> </span><span class="sd">"""Raise an `OptimizeError` if any columns aren't qualified"""</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">unqualified_columns</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">unqualified_columns</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">unqualified_columns</span><span class="p">)</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">if</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_correlated_subquery</span><span class="p">:</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: '</span><span class="si">{</span><span class="n">column</span><span class="o">.</span><span class="n">table</span><span class="si">}</span><span class="s2">' for column '</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="k">if</span> <span class="n">unqualified_columns</span><span class="p">:</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Ambiguous columns: </span><span class="si">{</span><span class="n">unqualified_columns</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="k">return</span> <span class="n">expression</span> </span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="k">def</span> <span class="nf">_pop_table_column_aliases</span><span class="p">(</span><span class="n">derived_tables</span><span class="p">):</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> Remove table column aliases.</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> (e.g. SELECT ... FROM (SELECT ...) AS foo(col1, col2)</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> """</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="k">for</span> <span class="n">derived_table</span> <span class="ow">in</span> <span class="n">derived_tables</span><span class="p">:</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">derived_table</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><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="k">if</span> <span class="n">table_alias</span><span class="p">:</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="k">def</span> <span class="nf">_pop_table_column_aliases</span><span class="p">(</span><span class="n">derived_tables</span><span class="p">):</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> Remove table column aliases.</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> (e.g. SELECT ... FROM (SELECT ...) AS foo(col1, col2)</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> """</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="k">for</span> <span class="n">derived_table</span> <span class="ow">in</span> <span class="n">derived_tables</span><span class="p">:</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">derived_table</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><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="k">if</span> <span class="n">table_alias</span><span class="p">:</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">table_alias</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> </span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="k">def</span> <span class="nf">_expand_using</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="n">joins</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">))</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">{</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span> <span class="k">for</span> <span class="n">join</span> <span class="ow">in</span> <span class="n">joins</span><span class="p">}</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">ordered</span> <span class="o">=</span> <span class="p">[</span><span class="n">key</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span> <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">names</span><span class="p">]</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="c1"># Mapping of automatically joined column names to source names</span> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">column_tables</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">for</span> <span class="n">join</span> <span class="ow">in</span> <span class="n">joins</span><span class="p">:</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="n">using</span> <span class="o">=</span> <span class="n">join</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">"using"</span><span class="p">)</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">using</span><span class="p">:</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">continue</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="n">join_table</span> <span class="o">=</span> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">ordered</span><span class="p">:</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">k</span><span class="p">):</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">if</span> <span class="n">column</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">columns</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">k</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="n">ordered</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">join_table</span><span class="p">)</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">join_columns</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">join_table</span><span class="p">)</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">for</span> <span class="n">identifier</span> <span class="ow">in</span> <span class="n">using</span><span class="p">:</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">identifier</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">identifier</span><span class="p">)</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span> <span class="ow">or</span> <span class="n">identifier</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">join_columns</span><span class="p">:</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot automatically join: </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="n">conditions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">condition</span><span class="p">(</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">(</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table</span><span class="p">),</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">join_table</span><span class="p">),</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="p">)</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="p">)</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="p">)</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="n">column_tables</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="n">tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">if</span> <span class="n">join_table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="n">tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">join_table</span><span class="p">)</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">join</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"using"</span><span class="p">)</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">conditions</span><span class="p">))</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">if</span> <span class="n">column_tables</span><span class="p">:</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">column_tables</span><span class="p">:</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="n">column_tables</span><span class="p">[</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">coalesce</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table</span><span class="p">)</span> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">]</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">replacement</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">coalesce</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">expressions</span><span class="o">=</span><span class="n">coalesce</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="c1"># Ensure selects keep their output name</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">parent</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-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="n">replacement</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">replacement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">replacement</span><span class="p">)</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="k">def</span> <span class="nf">_expand_using</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">joins</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Join</span><span class="p">))</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">names</span> <span class="o">=</span> <span class="p">{</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias</span> <span class="k">for</span> <span class="n">join</span> <span class="ow">in</span> <span class="n">joins</span><span class="p">}</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">ordered</span> <span class="o">=</span> <span class="p">[</span><span class="n">key</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span> <span class="k">if</span> <span class="n">key</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">names</span><span class="p">]</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="c1"># Mapping of automatically joined column names to source names</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">column_tables</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><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">for</span> <span class="n">join</span> <span class="ow">in</span> <span class="n">joins</span><span class="p">:</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="n">using</span> <span class="o">=</span> <span class="n">join</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">"using"</span><span class="p">)</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">using</span><span class="p">:</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="k">continue</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="n">join_table</span> <span class="o">=</span> <span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="k">if</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">ordered</span><span class="p">:</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">k</span><span class="p">):</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="k">if</span> <span class="n">column</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">columns</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">k</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">ordered</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">join_table</span><span class="p">)</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">join_columns</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">join_table</span><span class="p">)</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">conditions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">for</span> <span class="n">identifier</span> <span class="ow">in</span> <span class="n">using</span><span class="p">:</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="n">identifier</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">identifier</span><span class="p">)</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span> <span class="ow">or</span> <span class="n">identifier</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">join_columns</span><span class="p">:</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Cannot automatically join: </span><span class="si">{</span><span class="n">identifier</span><span class="si">}</span><span class="s2">"</span><span class="p">)</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="n">conditions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">condition</span><span class="p">(</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">(</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table</span><span class="p">),</span> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">join_table</span><span class="p">),</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="p">)</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="p">)</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="p">)</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="n">column_tables</span><span class="o">.</span><span class="n">setdefault</span><span class="p">(</span><span class="n">identifier</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="n">tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">if</span> <span class="n">join_table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="n">tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">join_table</span><span class="p">)</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="n">join</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="s2">"using"</span><span class="p">)</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">join</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"on"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">and_</span><span class="p">(</span><span class="o">*</span><span class="n">conditions</span><span class="p">))</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="k">if</span> <span class="n">column_tables</span><span class="p">:</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">column_tables</span><span class="p">:</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="n">column_tables</span><span class="p">[</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">]</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="n">coalesce</span> <span class="o">=</span> <span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">table</span><span class="p">)</span> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">]</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="n">replacement</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">coalesce</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">expressions</span><span class="o">=</span><span class="n">coalesce</span><span class="p">[</span><span class="mi">1</span><span class="p">:])</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="c1"># Ensure selects keep their output name</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">parent</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-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="n">replacement</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">replacement</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">replacement</span><span class="p">)</span> </span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a><span class="k">def</span> <span class="nf">_expand_group_by</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">group</span> <span class="o">=</span> <span class="n">scope</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">"group"</span><span class="p">)</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">group</span><span class="p">:</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">return</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> <span class="c1"># Replace references to select aliases</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">):</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">node</span><span class="o">.</span><span class="n">table</span><span class="p">:</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="c1"># Source columns get priority over select aliases</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="n">node</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">{</span><span class="n">s</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">:</span> <span class="n">s</span> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">}</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="k">if</span> <span class="n">select</span><span class="p">:</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">select</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">select</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="k">return</span> <span class="n">select</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> <span class="k">return</span> <span class="n">node</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="n">group</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">transform</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">group</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">_expand_positional_references</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">group</span><span class="o">.</span><span class="n">expressions</span><span class="p">))</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"group"</span><span class="p">,</span> <span class="n">group</span><span class="p">)</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="k">def</span> <span class="nf">_expand_group_by</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> <span class="n">group</span> <span class="o">=</span> <span class="n">scope</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">"group"</span><span class="p">)</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">group</span><span class="p">:</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> <span class="k">return</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="c1"># Replace references to select aliases</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a> <span class="k">def</span> <span class="nf">transform</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="o">*</span><span class="n">_</span><span class="p">):</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">node</span><span class="o">.</span><span class="n">table</span><span class="p">:</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="c1"># Source columns get priority over select aliases</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">if</span> <span class="n">table</span><span class="p">:</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a> <span class="n">node</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">selects</span> <span class="o">=</span> <span class="p">{</span><span class="n">s</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">:</span> <span class="n">s</span> <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">}</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="k">if</span> <span class="n">select</span><span class="p">:</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">select</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">select</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> <span class="k">return</span> <span class="n">select</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="n">group</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span><span class="n">transform</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="n">group</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">_expand_positional_references</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">group</span><span class="o">.</span><span class="n">expressions</span><span class="p">))</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"group"</span><span class="p">,</span> <span class="n">group</span><span class="p">)</span> </span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a><span class="k">def</span> <span class="nf">_expand_order_by</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> <span class="n">order</span> <span class="o">=</span> <span class="n">scope</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">"order"</span><span class="p">)</span> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">order</span><span class="p">:</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="k">return</span> -</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> <span class="n">ordereds</span> <span class="o">=</span> <span class="n">order</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="k">for</span> <span class="n">ordered</span><span class="p">,</span> <span class="n">new_expression</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="n">ordereds</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">_expand_positional_references</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">this</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ordereds</span><span class="p">)),</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="p">):</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="n">ordered</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">new_expression</span><span class="p">)</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a><span class="k">def</span> <span class="nf">_expand_order_by</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="n">order</span> <span class="o">=</span> <span class="n">scope</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">"order"</span><span class="p">)</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">order</span><span class="p">:</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> <span class="k">return</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a> <span class="n">ordereds</span> <span class="o">=</span> <span class="n">order</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a> <span class="k">for</span> <span class="n">ordered</span><span class="p">,</span> <span class="n">new_expression</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">ordereds</span><span class="p">,</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">_expand_positional_references</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="p">(</span><span class="n">o</span><span class="o">.</span><span class="n">this</span> <span class="k">for</span> <span class="n">o</span> <span class="ow">in</span> <span class="n">ordereds</span><span class="p">)),</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="p">):</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="n">ordered</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">new_expression</span><span class="p">)</span> </span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> -</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a><span class="k">def</span> <span class="nf">_expand_positional_references</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">expressions</span><span class="p">):</span> -</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a> <span class="n">new_nodes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_int</span><span class="p">:</span> -</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> -</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown output column: </span><span class="si">{</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">select</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">select</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">new_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="n">new_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> <span class="k">return</span> <span class="n">new_nodes</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="k">def</span> <span class="nf">_expand_positional_references</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">expressions</span><span class="p">):</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> <span class="n">new_nodes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">is_int</span><span class="p">:</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">[</span><span class="nb">int</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">except</span> <span class="ne">IndexError</span><span class="p">:</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown output column: </span><span class="si">{</span><span class="n">node</span><span class="o">.</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">select</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">):</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="n">select</span> <span class="o">=</span> <span class="n">select</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="n">new_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> <span class="n">new_nodes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a> <span class="k">return</span> <span class="n">new_nodes</span> </span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a><span class="k">def</span> <span class="nf">_qualify_columns</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="w"> </span><span class="sd">"""Disambiguate columns, ensuring each column specifies a source"""</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="n">column_table</span> <span class="o">=</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">column_name</span> <span class="o">=</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> <span class="k">if</span> <span class="n">column_table</span> <span class="ow">and</span> <span class="n">column_table</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="n">source_columns</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">column_table</span><span class="p">)</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="k">if</span> <span class="n">source_columns</span> <span class="ow">and</span> <span class="n">column_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">source_columns</span> <span class="ow">and</span> <span class="s2">"*"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">source_columns</span><span class="p">:</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown column: </span><span class="si">{</span><span class="n">column_name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">column_table</span><span class="p">:</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="n">column_table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="c1"># column_table can be a '' because bigquery unnest has no table alias</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="k">if</span> <span class="n">column_table</span><span class="p">:</span> -</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">column_table</span><span class="p">)</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="n">columns_missing_from_scope</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="c1"># Determine whether each reference in the order by clause is to a column or an alias.</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="k">for</span> <span class="n">ordered</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Ordered</span><span class="p">):</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">ordered</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="ow">not</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">ordered</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">resolver</span><span class="o">.</span><span class="n">all_columns</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="p">):</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="n">columns_missing_from_scope</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="c1"># Determine whether each reference in the having clause is to a column or an alias.</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="k">for</span> <span class="n">having</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">):</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">having</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="ow">not</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="ow">and</span> <span class="n">column</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">AggFunc</span><span class="p">)</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">resolver</span><span class="o">.</span><span class="n">all_columns</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="p">):</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> <span class="n">columns_missing_from_scope</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns_missing_from_scope</span><span class="p">:</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="n">column_table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a><span class="k">def</span> <span class="nf">_qualify_columns</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a><span class="w"> </span><span class="sd">"""Disambiguate columns, ensuring each column specifies a source"""</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">columns</span><span class="p">:</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="n">column_table</span> <span class="o">=</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a> <span class="n">column_name</span> <span class="o">=</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> <span class="k">if</span> <span class="n">column_table</span> <span class="ow">and</span> <span class="n">column_table</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a> <span class="n">source_columns</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">column_table</span><span class="p">)</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> <span class="k">if</span> <span class="n">source_columns</span> <span class="ow">and</span> <span class="n">column_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">source_columns</span> <span class="ow">and</span> <span class="s2">"*"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">source_columns</span><span class="p">:</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown column: </span><span class="si">{</span><span class="n">column_name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">column_table</span><span class="p">:</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="n">column_table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="c1"># column_table can be a '' because bigquery unnest has no table alias</span> +</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="k">if</span> <span class="n">column_table</span><span class="p">:</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">column_table</span><span class="p">)</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="k">elif</span> <span class="n">column_table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a> <span class="c1"># structs are used like tables (e.g. "struct"."field"), so they need to be qualified</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> <span class="c1"># separately and represented as dot(dot(...(<table>.<column>, field1), field2, ...))</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a> <span class="n">struct_root</span><span class="p">,</span> <span class="o">*</span><span class="n">struct_fields</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a> <span class="n">val</span> <span class="k">for</span> <span class="n">val</span> <span class="ow">in</span> <span class="nb">reversed</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">values</span><span class="p">()))</span> <span class="k">if</span> <span class="n">val</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <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="k">if</span> <span class="n">struct_root</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="c1"># struct is already qualified, but we still need to change the AST representation</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="n">struct_table</span> <span class="o">=</span> <span class="n">struct_root</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="n">struct_root</span><span class="p">,</span> <span class="o">*</span><span class="n">struct_fields</span> <span class="o">=</span> <span class="n">struct_fields</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> <span class="n">struct_table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">struct_root</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a> <span class="k">if</span> <span class="n">struct_table</span><span class="p">:</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> <span class="k">while</span> <span class="n">column</span><span class="o">.</span><span class="n">parent</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">):</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">column</span><span class="o">.</span><span class="n">parent</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a> <span class="n">struct_fields</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="n">new_column</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">struct_root</span><span class="p">,</span> <span class="n">table</span><span class="o">=</span><span class="n">struct_table</span><span class="p">)</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="k">for</span> <span class="n">field</span> <span class="ow">in</span> <span class="n">struct_fields</span><span class="p">:</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="n">new_column</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">new_column</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">field</span><span class="p">)</span> </span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="k">if</span> <span class="n">column_table</span><span class="p">:</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">column_table</span><span class="p">)</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a><span class="k">def</span> <span class="nf">_expand_stars</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a><span class="w"> </span><span class="sd">"""Expand stars to lists of column selections"""</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="n">new_selections</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="n">except_columns</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="n">replace_columns</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">:</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">)</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="n">_add_except_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">except_columns</span><span class="p">)</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="n">_add_replace_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">replace_columns</span><span class="p">)</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_star</span><span class="p">:</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">table</span><span class="p">]</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="n">_add_except_columns</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">except_columns</span><span class="p">)</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">_add_replace_columns</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">replace_columns</span><span class="p">)</span> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="k">continue</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="n">column</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new_column</span><span class="p">)</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a> <span class="n">columns_missing_from_scope</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> <span class="c1"># Determine whether each reference in the order by clause is to a column or an alias.</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> <span class="k">for</span> <span class="n">ordered</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Ordered</span><span class="p">):</span> +</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">ordered</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a> <span class="ow">not</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">parent</span> <span class="ow">is</span> <span class="ow">not</span> <span class="n">ordered</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">resolver</span><span class="o">.</span><span class="n">all_columns</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="p">):</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="n">columns_missing_from_scope</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="c1"># Determine whether each reference in the having clause is to a column or an alias.</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="k">for</span> <span class="n">having</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">):</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">having</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="ow">not</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="ow">and</span> <span class="n">column</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">AggFunc</span><span class="p">)</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="ow">and</span> <span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">resolver</span><span class="o">.</span><span class="n">all_columns</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="p">):</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="n">columns_missing_from_scope</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns_missing_from_scope</span><span class="p">:</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="n">column_table</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_table</span><span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="k">if</span> <span class="n">column_table</span><span class="p">:</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="n">column</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"table"</span><span class="p">,</span> <span class="n">column_table</span><span class="p">)</span> </span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="s2">"*"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="n">table_id</span> <span class="o">=</span> <span class="nb">id</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">except_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_id</span><span class="p">,</span> <span class="nb">set</span><span class="p">()):</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">alias_</span> <span class="o">=</span> <span class="n">replace_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_id</span><span class="p">,</span> <span class="p">{})</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alias</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">alias_</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias_</span> <span class="o">!=</span> <span class="n">name</span> <span class="k">else</span> <span class="n">column</span><span class="p">)</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="k">return</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">new_selections</span><span class="p">)</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a><span class="k">def</span> <span class="nf">_add_except_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">except_columns</span><span class="p">):</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="n">except_</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">"except"</span><span class="p">)</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">except_</span><span class="p">:</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="k">return</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">except_</span><span class="p">}</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">except_columns</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">table</span><span class="p">)]</span> <span class="o">=</span> <span class="n">columns</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a><span class="k">def</span> <span class="nf">_add_replace_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">replace_columns</span><span class="p">):</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="n">replace</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">"replace"</span><span class="p">)</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">replace</span><span class="p">:</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="k">return</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> <span class="n">e</span><span class="o">.</span><span class="n">alias</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">replace</span><span class="p">}</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="n">replace_columns</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">table</span><span class="p">)]</span> <span class="o">=</span> <span class="n">columns</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a><span class="k">def</span> <span class="nf">_qualify_outputs</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a><span class="w"> </span><span class="sd">"""Ensure all output columns are aliased"""</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a> <span class="n">new_selections</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="n">aliased_column</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">itertools</span><span class="o">.</span><span class="n">zip_longest</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">,</span> <span class="n">scope</span><span class="o">.</span><span class="n">outer_column_list</span><span class="p">)</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="p">):</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">selection</span><span class="o">.</span><span class="n">output_name</span><span class="p">:</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="n">selection</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="sa">f</span><span class="s2">"_col_</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">"</span><span class="p">)))</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">selection</span><span class="o">.</span><span class="n">is_star</span><span class="p">:</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">alias_</span> <span class="o">=</span> <span class="n">alias</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">""</span><span class="p">),</span> <span class="n">alias</span><span class="o">=</span><span class="n">selection</span><span class="o">.</span><span class="n">output_name</span> <span class="ow">or</span> <span class="sa">f</span><span class="s2">"_col_</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> <span class="n">alias_</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">selection</span><span class="p">)</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="n">selection</span> <span class="o">=</span> <span class="n">alias_</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="k">if</span> <span class="n">aliased_column</span><span class="p">:</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> <span class="n">selection</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">aliased_column</span><span class="p">))</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a><span class="k">def</span> <span class="nf">_expand_stars</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">):</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a><span class="w"> </span><span class="sd">"""Expand stars to lists of column selections"""</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="n">new_selections</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="n">except_columns</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="n">replace_columns</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">:</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">):</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">)</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a> <span class="n">_add_except_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">except_columns</span><span class="p">)</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> <span class="n">_add_replace_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">replace_columns</span><span class="p">)</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> <span class="k">elif</span> <span class="n">expression</span><span class="o">.</span><span class="n">is_star</span><span class="p">:</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a> <span class="n">tables</span> <span class="o">=</span> <span class="p">[</span><span class="n">expression</span><span class="o">.</span><span class="n">table</span><span class="p">]</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a> <span class="n">_add_except_columns</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">except_columns</span><span class="p">)</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="n">_add_replace_columns</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">replace_columns</span><span class="p">)</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">continue</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="k">if</span> <span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">table</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="n">resolver</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">table</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="n">columns</span> <span class="ow">and</span> <span class="s2">"*"</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">table_id</span> <span class="o">=</span> <span class="nb">id</span><span class="p">(</span><span class="n">table</span><span class="p">)</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">except_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_id</span><span class="p">,</span> <span class="nb">set</span><span class="p">()):</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">alias_</span> <span class="o">=</span> <span class="n">replace_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_id</span><span class="p">,</span> <span class="p">{})</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">table</span><span class="p">)</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">alias</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="n">alias_</span><span class="p">)</span> <span class="k">if</span> <span class="n">alias_</span> <span class="o">!=</span> <span class="n">name</span> <span class="k">else</span> <span class="n">column</span><span class="p">)</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> <span class="k">return</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">new_selections</span><span class="p">)</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a><span class="k">def</span> <span class="nf">_add_except_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">except_columns</span><span class="p">):</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> <span class="n">except_</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">"except"</span><span class="p">)</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">except_</span><span class="p">:</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="k">return</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">e</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">except_</span><span class="p">}</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="n">except_columns</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">table</span><span class="p">)]</span> <span class="o">=</span> <span class="n">columns</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a><span class="k">def</span> <span class="nf">_add_replace_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">tables</span><span class="p">,</span> <span class="n">replace_columns</span><span class="p">):</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a> <span class="n">replace</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">"replace"</span><span class="p">)</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a> +</span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">replace</span><span class="p">:</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a> <span class="k">return</span> </span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">new_selections</span><span class="p">)</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">e</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> <span class="n">e</span><span class="o">.</span><span class="n">alias</span> <span class="k">for</span> <span class="n">e</span> <span class="ow">in</span> <span class="n">replace</span><span class="p">}</span> </span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a> -</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a><span class="k">class</span> <span class="nc">Resolver</span><span class="p">:</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a><span class="sd"> Helper for resolving columns.</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a><span class="sd"> This is a class so we can lazily load some things and easily share them across functions.</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a><span class="sd"> """</span> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="n">tables</span><span class="p">:</span> +</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="n">replace_columns</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">table</span><span class="p">)]</span> <span class="o">=</span> <span class="n">columns</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a><span class="k">def</span> <span class="nf">_qualify_outputs</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a><span class="w"> </span><span class="sd">"""Ensure all output columns are aliased"""</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="n">new_selections</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span> <span class="o">=</span> <span class="n">scope</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="k">def</span> <span class="nf">get_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">column_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">]:</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a><span class="sd"> Get the table for a column name.</span> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="n">aliased_column</span><span class="p">)</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="n">itertools</span><span class="o">.</span><span class="n">zip_longest</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">selects</span><span class="p">,</span> <span class="n">scope</span><span class="o">.</span><span class="n">outer_column_list</span><span class="p">)</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a> <span class="p">):</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">):</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">selection</span><span class="o">.</span><span class="n">output_name</span><span class="p">:</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a> <span class="n">selection</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="sa">f</span><span class="s2">"_col_</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">"</span><span class="p">)))</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">selection</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">selection</span><span class="o">.</span><span class="n">is_star</span><span class="p">:</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="n">alias_</span> <span class="o">=</span> <span class="n">alias</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="s2">""</span><span class="p">),</span> <span class="n">alias</span><span class="o">=</span><span class="n">selection</span><span class="o">.</span><span class="n">output_name</span> <span class="ow">or</span> <span class="sa">f</span><span class="s2">"_col_</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">alias_</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">selection</span><span class="p">)</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="n">selection</span> <span class="o">=</span> <span class="n">alias_</span> </span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> -</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a><span class="sd"> Args:</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a><span class="sd"> column_name: The column name to find the table for.</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a><span class="sd"> Returns:</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a><span class="sd"> The table name if it can be found/inferred.</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a><span class="sd"> """</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unambiguous_columns</span><span class="p">(</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> <span class="p">)</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> -</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> +</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="k">if</span> <span class="n">aliased_column</span><span class="p">:</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="n">selection</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">aliased_column</span><span class="p">))</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> +</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> <span class="n">new_selections</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">selection</span><span class="p">)</span> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"expressions"</span><span class="p">,</span> <span class="n">new_selections</span><span class="p">)</span> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a> +</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a><span class="k">class</span> <span class="nc">Resolver</span><span class="p">:</span> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a><span class="sd"> Helper for resolving columns.</span> </span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> -</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_name</span><span class="p">:</span> -</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> <span class="n">sources_without_schema</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="n">source</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="k">for</span> <span class="n">source</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">columns</span> <span class="ow">or</span> <span class="s2">"*"</span> <span class="ow">in</span> <span class="n">columns</span> -</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="p">)</span> -</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sources_without_schema</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">sources_without_schema</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> -</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> -</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="n">node</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a><span class="sd"> This is a class so we can lazily load some things and easily share them across functions.</span> +</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a><span class="sd"> """</span> +</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> +</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span> <span class="o">=</span> <span class="n">scope</span> +</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> +</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">def</span> <span class="nf">get_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">column_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">]:</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a><span class="sd"> Get the table for a column name.</span> </span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> -</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a> <span class="k">while</span> <span class="n">node</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="o">!=</span> <span class="n">table_name</span><span class="p">:</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> <span class="n">node_alias</span> <span class="o">=</span> <span class="n">node</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><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a> <span class="k">if</span> <span class="n">node_alias</span><span class="p">:</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">return</span> <span class="n">node_alias</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> -</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> -</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="nd">@property</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="k">def</span> <span class="nf">all_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a><span class="w"> </span><span class="sd">"""All available columns of all sources in this scope"""</span> -</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="n">column</span> <span class="k">for</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="p">}</span> -</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</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">get_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a><span class="w"> </span><span class="sd">"""Resolve the source columns for a given source `name`"""</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> -</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> +</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a><span class="sd"> Args:</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a><span class="sd"> column_name: The column name to find the table for.</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a><span class="sd"> Returns:</span> +</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a><span class="sd"> The table name if it can be found/inferred.</span> +</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a><span class="sd"> """</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unambiguous_columns</span><span class="p">(</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="p">)</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> +</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> +</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> +</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_name</span><span class="p">:</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="n">sources_without_schema</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span> +</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="n">source</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> <span class="k">for</span> <span class="n">source</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">columns</span> <span class="ow">or</span> <span class="s2">"*"</span> <span class="ow">in</span> <span class="n">columns</span> +</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="p">)</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sources_without_schema</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">sources_without_schema</span><span class="p">[</span><span class="mi">0</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">table_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> </span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> -</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="c1"># If referencing a table, return the columns from the schema</span> -</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">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="o">.</span><span class="n">column_names</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">only_visible</span><span class="p">)</span> -</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> -</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Values</span><span class="p">):</span> -</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</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="c1"># Otherwise, if referencing another scope, return that scope's named selects</span> -</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="n">node</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> +</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="k">while</span> <span class="n">node</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="o">!=</span> <span class="n">table_name</span><span class="p">:</span> +</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span> +</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> +</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a> <span class="n">node_alias</span> <span class="o">=</span> <span class="n">node</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><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a> <span class="k">if</span> <span class="n">node_alias</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="n">node_alias</span><span class="o">.</span><span class="n">this</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">_get_all_source_columns</span><span class="p">(</span><span class="bp">self</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="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="n">k</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> -</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="p">}</span> -</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> -</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> -</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="k">def</span> <span class="nf">_get_unambiguous_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_columns</span><span class="p">):</span> -</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a><span class="sd"> Find all the unambiguous columns in sources.</span> -</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> -</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a><span class="sd"> Args:</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a><span class="sd"> source_columns (dict): Mapping of names to source columns</span> -</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a><span class="sd"> Returns:</span> -</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a><span class="sd"> dict: Mapping of column name to source name</span> -</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a><span class="sd"> """</span> -</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source_columns</span><span class="p">:</span> -</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> <span class="k">return</span> <span class="p">{}</span> +</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">quoted</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="p">)</span> +</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> +</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="nd">@property</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">def</span> <span class="nf">all_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a><span class="w"> </span><span class="sd">"""All available columns of all sources in this scope"""</span> +</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="n">column</span> <span class="k">for</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> +</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="p">}</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> +</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> +</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> <span class="k">def</span> <span class="nf">get_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">"""Resolve the source columns for a given source `name`"""</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</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="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> </span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> -</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="n">source_columns</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">source_columns</span><span class="o">.</span><span class="n">items</span><span class="p">())</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> -</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="n">first_table</span><span class="p">,</span> <span class="n">first_columns</span> <span class="o">=</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> <span class="n">unambiguous_columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">col</span><span class="p">:</span> <span class="n">first_table</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">first_columns</span><span class="p">)}</span> -</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="n">all_columns</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">unambiguous_columns</span><span class="p">)</span> -</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> -</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> <span class="k">for</span> <span class="n">table</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> -</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="n">ambiguous</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">all_columns</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">unique</span><span class="p">)</span> -</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> <span class="n">all_columns</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> -</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">ambiguous</span><span class="p">:</span> -</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="n">unambiguous_columns</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">unique</span><span class="o">.</span><span class="n">difference</span><span class="p">(</span><span class="n">ambiguous</span><span class="p">):</span> -</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="n">unambiguous_columns</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">table</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> -</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="k">return</span> <span class="n">unambiguous_columns</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="nd">@staticmethod</span> -</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="k">def</span> <span class="nf">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">):</span> +</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="c1"># If referencing a table, return the columns from the schema</span> +</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> +</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="o">.</span><span class="n">column_names</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">only_visible</span><span class="p">)</span> +</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> +</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Values</span><span class="p">):</span> +</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span> +</span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> +</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="c1"># Otherwise, if referencing another scope, return that scope's named selects</span> +</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> +</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="k">def</span> <span class="nf">_get_all_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> <span class="n">k</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> +</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> +</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="p">}</span> +</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> +</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="k">def</span> <span class="nf">_get_unambiguous_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_columns</span><span class="p">):</span> </span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a><span class="sd"> Find the unique columns in a list of columns.</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a><span class="sd"> Find all the unambiguous columns in sources.</span> </span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> -</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a><span class="sd"> Example:</span> -</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a><span class="sd"> >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"]))</span> -</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a><span class="sd"> ['a', 'c']</span> -</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a> -</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a><span class="sd"> This is necessary because duplicate column names are ambiguous.</span> -</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a><span class="sd"> """</span> -</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> <span class="n">counts</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="n">counts</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">counts</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> -</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span><span class="p">,</span> <span class="n">count</span> <span class="ow">in</span> <span class="n">counts</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">count</span> <span class="o">==</span> <span class="mi">1</span><span class="p">}</span> +</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a><span class="sd"> Args:</span> +</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a><span class="sd"> source_columns (dict): Mapping of names to source columns</span> +</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a><span class="sd"> Returns:</span> +</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a><span class="sd"> dict: Mapping of column name to source name</span> +</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a><span class="sd"> """</span> +</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source_columns</span><span class="p">:</span> +</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> <span class="k">return</span> <span class="p">{}</span> +</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> +</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="n">source_columns</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">source_columns</span><span class="o">.</span><span class="n">items</span><span class="p">())</span> +</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> +</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> <span class="n">first_table</span><span class="p">,</span> <span class="n">first_columns</span> <span class="o">=</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> <span class="n">unambiguous_columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">col</span><span class="p">:</span> <span class="n">first_table</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">first_columns</span><span class="p">)}</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="n">all_columns</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">unambiguous_columns</span><span class="p">)</span> +</span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> +</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> <span class="k">for</span> <span class="n">table</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> +</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> <span class="n">ambiguous</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">all_columns</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">unique</span><span class="p">)</span> +</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> <span class="n">all_columns</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> +</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">ambiguous</span><span class="p">:</span> +</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> <span class="n">unambiguous_columns</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">unique</span><span class="o">.</span><span class="n">difference</span><span class="p">(</span><span class="n">ambiguous</span><span class="p">):</span> +</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a> <span class="n">unambiguous_columns</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">table</span> +</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a> +</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a> <span class="k">return</span> <span class="n">unambiguous_columns</span> +</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a> +</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a> <span class="nd">@staticmethod</span> +</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a> <span class="k">def</span> <span class="nf">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">):</span> +</span><span id="L-476"><a href="#L-476"><span class="linenos">476</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-477"><a href="#L-477"><span class="linenos">477</span></a><span class="sd"> Find the unique columns in a list of columns.</span> +</span><span id="L-478"><a href="#L-478"><span class="linenos">478</span></a> +</span><span id="L-479"><a href="#L-479"><span class="linenos">479</span></a><span class="sd"> Example:</span> +</span><span id="L-480"><a href="#L-480"><span class="linenos">480</span></a><span class="sd"> >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"]))</span> +</span><span id="L-481"><a href="#L-481"><span class="linenos">481</span></a><span class="sd"> ['a', 'c']</span> +</span><span id="L-482"><a href="#L-482"><span class="linenos">482</span></a> +</span><span id="L-483"><a href="#L-483"><span class="linenos">483</span></a><span class="sd"> This is necessary because duplicate column names are ambiguous.</span> +</span><span id="L-484"><a href="#L-484"><span class="linenos">484</span></a><span class="sd"> """</span> +</span><span id="L-485"><a href="#L-485"><span class="linenos">485</span></a> <span class="n">counts</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a> <span class="n">counts</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">counts</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> +</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span><span class="p">,</span> <span class="n">count</span> <span class="ow">in</span> <span class="n">counts</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">count</span> <span class="o">==</span> <span class="mi">1</span><span class="p">}</span> </span></pre></div> @@ -580,7 +610,8 @@ </span><span id="qualify_columns-38"><a href="#qualify_columns-38"><span class="linenos">38</span></a> <span class="n">_qualify_outputs</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> </span><span id="qualify_columns-39"><a href="#qualify_columns-39"><span class="linenos">39</span></a> <span class="n">_expand_group_by</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">resolver</span><span class="p">)</span> </span><span id="qualify_columns-40"><a href="#qualify_columns-40"><span class="linenos">40</span></a> <span class="n">_expand_order_by</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="qualify_columns-41"><a href="#qualify_columns-41"><span class="linenos">41</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="qualify_columns-41"><a href="#qualify_columns-41"><span class="linenos">41</span></a> +</span><span id="qualify_columns-42"><a href="#qualify_columns-42"><span class="linenos">42</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -626,19 +657,19 @@ </div> <a class="headerlink" href="#validate_qualify_columns"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="validate_qualify_columns-44"><a href="#validate_qualify_columns-44"><span class="linenos">44</span></a><span class="k">def</span> <span class="nf">validate_qualify_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="validate_qualify_columns-45"><a href="#validate_qualify_columns-45"><span class="linenos">45</span></a><span class="w"> </span><span class="sd">"""Raise an `OptimizeError` if any columns aren't qualified"""</span> -</span><span id="validate_qualify_columns-46"><a href="#validate_qualify_columns-46"><span class="linenos">46</span></a> <span class="n">unqualified_columns</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="validate_qualify_columns-47"><a href="#validate_qualify_columns-47"><span class="linenos">47</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="validate_qualify_columns-48"><a href="#validate_qualify_columns-48"><span class="linenos">48</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> -</span><span id="validate_qualify_columns-49"><a href="#validate_qualify_columns-49"><span class="linenos">49</span></a> <span class="n">unqualified_columns</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">unqualified_columns</span><span class="p">)</span> -</span><span id="validate_qualify_columns-50"><a href="#validate_qualify_columns-50"><span class="linenos">50</span></a> <span class="k">if</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_correlated_subquery</span><span class="p">:</span> -</span><span id="validate_qualify_columns-51"><a href="#validate_qualify_columns-51"><span class="linenos">51</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="validate_qualify_columns-52"><a href="#validate_qualify_columns-52"><span class="linenos">52</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: '</span><span class="si">{</span><span class="n">column</span><span class="o">.</span><span class="n">table</span><span class="si">}</span><span class="s2">' for column '</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span> -</span><span id="validate_qualify_columns-53"><a href="#validate_qualify_columns-53"><span class="linenos">53</span></a> -</span><span id="validate_qualify_columns-54"><a href="#validate_qualify_columns-54"><span class="linenos">54</span></a> <span class="k">if</span> <span class="n">unqualified_columns</span><span class="p">:</span> -</span><span id="validate_qualify_columns-55"><a href="#validate_qualify_columns-55"><span class="linenos">55</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Ambiguous columns: </span><span class="si">{</span><span class="n">unqualified_columns</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="validate_qualify_columns-56"><a href="#validate_qualify_columns-56"><span class="linenos">56</span></a> <span class="k">return</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="validate_qualify_columns-45"><a href="#validate_qualify_columns-45"><span class="linenos">45</span></a><span class="k">def</span> <span class="nf">validate_qualify_columns</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="validate_qualify_columns-46"><a href="#validate_qualify_columns-46"><span class="linenos">46</span></a><span class="w"> </span><span class="sd">"""Raise an `OptimizeError` if any columns aren't qualified"""</span> +</span><span id="validate_qualify_columns-47"><a href="#validate_qualify_columns-47"><span class="linenos">47</span></a> <span class="n">unqualified_columns</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="validate_qualify_columns-48"><a href="#validate_qualify_columns-48"><span class="linenos">48</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="validate_qualify_columns-49"><a href="#validate_qualify_columns-49"><span class="linenos">49</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> +</span><span id="validate_qualify_columns-50"><a href="#validate_qualify_columns-50"><span class="linenos">50</span></a> <span class="n">unqualified_columns</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">unqualified_columns</span><span class="p">)</span> +</span><span id="validate_qualify_columns-51"><a href="#validate_qualify_columns-51"><span class="linenos">51</span></a> <span class="k">if</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_correlated_subquery</span><span class="p">:</span> +</span><span id="validate_qualify_columns-52"><a href="#validate_qualify_columns-52"><span class="linenos">52</span></a> <span class="n">column</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="validate_qualify_columns-53"><a href="#validate_qualify_columns-53"><span class="linenos">53</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: '</span><span class="si">{</span><span class="n">column</span><span class="o">.</span><span class="n">table</span><span class="si">}</span><span class="s2">' for column '</span><span class="si">{</span><span class="n">column</span><span class="si">}</span><span class="s2">'"</span><span class="p">)</span> +</span><span id="validate_qualify_columns-54"><a href="#validate_qualify_columns-54"><span class="linenos">54</span></a> +</span><span id="validate_qualify_columns-55"><a href="#validate_qualify_columns-55"><span class="linenos">55</span></a> <span class="k">if</span> <span class="n">unqualified_columns</span><span class="p">:</span> +</span><span id="validate_qualify_columns-56"><a href="#validate_qualify_columns-56"><span class="linenos">56</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Ambiguous columns: </span><span class="si">{</span><span class="n">unqualified_columns</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="validate_qualify_columns-57"><a href="#validate_qualify_columns-57"><span class="linenos">57</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -658,136 +689,140 @@ </div> <a class="headerlink" href="#Resolver"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver-330"><a href="#Resolver-330"><span class="linenos">330</span></a><span class="k">class</span> <span class="nc">Resolver</span><span class="p">:</span> -</span><span id="Resolver-331"><a href="#Resolver-331"><span class="linenos">331</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Resolver-332"><a href="#Resolver-332"><span class="linenos">332</span></a><span class="sd"> Helper for resolving columns.</span> -</span><span id="Resolver-333"><a href="#Resolver-333"><span class="linenos">333</span></a> -</span><span id="Resolver-334"><a href="#Resolver-334"><span class="linenos">334</span></a><span class="sd"> This is a class so we can lazily load some things and easily share them across functions.</span> -</span><span id="Resolver-335"><a href="#Resolver-335"><span class="linenos">335</span></a><span class="sd"> """</span> -</span><span id="Resolver-336"><a href="#Resolver-336"><span class="linenos">336</span></a> -</span><span id="Resolver-337"><a href="#Resolver-337"><span class="linenos">337</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> -</span><span id="Resolver-338"><a href="#Resolver-338"><span class="linenos">338</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span> <span class="o">=</span> <span class="n">scope</span> -</span><span id="Resolver-339"><a href="#Resolver-339"><span class="linenos">339</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> -</span><span id="Resolver-340"><a href="#Resolver-340"><span class="linenos">340</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Resolver-341"><a href="#Resolver-341"><span class="linenos">341</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Resolver-342"><a href="#Resolver-342"><span class="linenos">342</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Resolver-343"><a href="#Resolver-343"><span class="linenos">343</span></a> -</span><span id="Resolver-344"><a href="#Resolver-344"><span class="linenos">344</span></a> <span class="k">def</span> <span class="nf">get_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">column_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">]:</span> -</span><span id="Resolver-345"><a href="#Resolver-345"><span class="linenos">345</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Resolver-346"><a href="#Resolver-346"><span class="linenos">346</span></a><span class="sd"> Get the table for a column name.</span> -</span><span id="Resolver-347"><a href="#Resolver-347"><span class="linenos">347</span></a> -</span><span id="Resolver-348"><a href="#Resolver-348"><span class="linenos">348</span></a><span class="sd"> Args:</span> -</span><span id="Resolver-349"><a href="#Resolver-349"><span class="linenos">349</span></a><span class="sd"> column_name: The column name to find the table for.</span> -</span><span id="Resolver-350"><a href="#Resolver-350"><span class="linenos">350</span></a><span class="sd"> Returns:</span> -</span><span id="Resolver-351"><a href="#Resolver-351"><span class="linenos">351</span></a><span class="sd"> The table name if it can be found/inferred.</span> -</span><span id="Resolver-352"><a href="#Resolver-352"><span class="linenos">352</span></a><span class="sd"> """</span> -</span><span id="Resolver-353"><a href="#Resolver-353"><span class="linenos">353</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Resolver-354"><a href="#Resolver-354"><span class="linenos">354</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unambiguous_columns</span><span class="p">(</span> -</span><span id="Resolver-355"><a href="#Resolver-355"><span class="linenos">355</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span> -</span><span id="Resolver-356"><a href="#Resolver-356"><span class="linenos">356</span></a> <span class="p">)</span> -</span><span id="Resolver-357"><a href="#Resolver-357"><span class="linenos">357</span></a> -</span><span id="Resolver-358"><a href="#Resolver-358"><span class="linenos">358</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver-356"><a href="#Resolver-356"><span class="linenos">356</span></a><span class="k">class</span> <span class="nc">Resolver</span><span class="p">:</span> +</span><span id="Resolver-357"><a href="#Resolver-357"><span class="linenos">357</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Resolver-358"><a href="#Resolver-358"><span class="linenos">358</span></a><span class="sd"> Helper for resolving columns.</span> </span><span id="Resolver-359"><a href="#Resolver-359"><span class="linenos">359</span></a> -</span><span id="Resolver-360"><a href="#Resolver-360"><span class="linenos">360</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_name</span><span class="p">:</span> -</span><span id="Resolver-361"><a href="#Resolver-361"><span class="linenos">361</span></a> <span class="n">sources_without_schema</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span> -</span><span id="Resolver-362"><a href="#Resolver-362"><span class="linenos">362</span></a> <span class="n">source</span> -</span><span id="Resolver-363"><a href="#Resolver-363"><span class="linenos">363</span></a> <span class="k">for</span> <span class="n">source</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="Resolver-364"><a href="#Resolver-364"><span class="linenos">364</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">columns</span> <span class="ow">or</span> <span class="s2">"*"</span> <span class="ow">in</span> <span class="n">columns</span> -</span><span id="Resolver-365"><a href="#Resolver-365"><span class="linenos">365</span></a> <span class="p">)</span> -</span><span id="Resolver-366"><a href="#Resolver-366"><span class="linenos">366</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sources_without_schema</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Resolver-367"><a href="#Resolver-367"><span class="linenos">367</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">sources_without_schema</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Resolver-368"><a href="#Resolver-368"><span class="linenos">368</span></a> -</span><span id="Resolver-369"><a href="#Resolver-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> -</span><span id="Resolver-370"><a href="#Resolver-370"><span class="linenos">370</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> -</span><span id="Resolver-371"><a href="#Resolver-371"><span class="linenos">371</span></a> -</span><span id="Resolver-372"><a href="#Resolver-372"><span class="linenos">372</span></a> <span class="n">node</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="Resolver-360"><a href="#Resolver-360"><span class="linenos">360</span></a><span class="sd"> This is a class so we can lazily load some things and easily share them across functions.</span> +</span><span id="Resolver-361"><a href="#Resolver-361"><span class="linenos">361</span></a><span class="sd"> """</span> +</span><span id="Resolver-362"><a href="#Resolver-362"><span class="linenos">362</span></a> +</span><span id="Resolver-363"><a href="#Resolver-363"><span class="linenos">363</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> +</span><span id="Resolver-364"><a href="#Resolver-364"><span class="linenos">364</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span> <span class="o">=</span> <span class="n">scope</span> +</span><span id="Resolver-365"><a href="#Resolver-365"><span class="linenos">365</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> +</span><span id="Resolver-366"><a href="#Resolver-366"><span class="linenos">366</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Resolver-367"><a href="#Resolver-367"><span class="linenos">367</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Resolver-368"><a href="#Resolver-368"><span class="linenos">368</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Resolver-369"><a href="#Resolver-369"><span class="linenos">369</span></a> +</span><span id="Resolver-370"><a href="#Resolver-370"><span class="linenos">370</span></a> <span class="k">def</span> <span class="nf">get_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">column_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">]:</span> +</span><span id="Resolver-371"><a href="#Resolver-371"><span class="linenos">371</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Resolver-372"><a href="#Resolver-372"><span class="linenos">372</span></a><span class="sd"> Get the table for a column name.</span> </span><span id="Resolver-373"><a href="#Resolver-373"><span class="linenos">373</span></a> -</span><span id="Resolver-374"><a href="#Resolver-374"><span class="linenos">374</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Resolver-375"><a href="#Resolver-375"><span class="linenos">375</span></a> <span class="k">while</span> <span class="n">node</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="o">!=</span> <span class="n">table_name</span><span class="p">:</span> -</span><span id="Resolver-376"><a href="#Resolver-376"><span class="linenos">376</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span> -</span><span id="Resolver-377"><a href="#Resolver-377"><span class="linenos">377</span></a> <span class="n">node_alias</span> <span class="o">=</span> <span class="n">node</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><span id="Resolver-378"><a href="#Resolver-378"><span class="linenos">378</span></a> <span class="k">if</span> <span class="n">node_alias</span><span class="p">:</span> -</span><span id="Resolver-379"><a href="#Resolver-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="n">node_alias</span><span class="o">.</span><span class="n">this</span> -</span><span id="Resolver-380"><a href="#Resolver-380"><span class="linenos">380</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> -</span><span id="Resolver-381"><a href="#Resolver-381"><span class="linenos">381</span></a> -</span><span id="Resolver-382"><a href="#Resolver-382"><span class="linenos">382</span></a> <span class="nd">@property</span> -</span><span id="Resolver-383"><a href="#Resolver-383"><span class="linenos">383</span></a> <span class="k">def</span> <span class="nf">all_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Resolver-384"><a href="#Resolver-384"><span class="linenos">384</span></a><span class="w"> </span><span class="sd">"""All available columns of all sources in this scope"""</span> -</span><span id="Resolver-385"><a href="#Resolver-385"><span class="linenos">385</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Resolver-386"><a href="#Resolver-386"><span class="linenos">386</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Resolver-387"><a href="#Resolver-387"><span class="linenos">387</span></a> <span class="n">column</span> <span class="k">for</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> -</span><span id="Resolver-388"><a href="#Resolver-388"><span class="linenos">388</span></a> <span class="p">}</span> -</span><span id="Resolver-389"><a href="#Resolver-389"><span class="linenos">389</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> -</span><span id="Resolver-390"><a href="#Resolver-390"><span class="linenos">390</span></a> -</span><span id="Resolver-391"><a href="#Resolver-391"><span class="linenos">391</span></a> <span class="k">def</span> <span class="nf">get_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Resolver-392"><a href="#Resolver-392"><span class="linenos">392</span></a><span class="w"> </span><span class="sd">"""Resolve the source columns for a given source `name`"""</span> -</span><span id="Resolver-393"><a href="#Resolver-393"><span class="linenos">393</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="Resolver-394"><a href="#Resolver-394"><span class="linenos">394</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Resolver-395"><a href="#Resolver-395"><span class="linenos">395</span></a> -</span><span id="Resolver-396"><a href="#Resolver-396"><span class="linenos">396</span></a> <span class="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> +</span><span id="Resolver-374"><a href="#Resolver-374"><span class="linenos">374</span></a><span class="sd"> Args:</span> +</span><span id="Resolver-375"><a href="#Resolver-375"><span class="linenos">375</span></a><span class="sd"> column_name: The column name to find the table for.</span> +</span><span id="Resolver-376"><a href="#Resolver-376"><span class="linenos">376</span></a><span class="sd"> Returns:</span> +</span><span id="Resolver-377"><a href="#Resolver-377"><span class="linenos">377</span></a><span class="sd"> The table name if it can be found/inferred.</span> +</span><span id="Resolver-378"><a href="#Resolver-378"><span class="linenos">378</span></a><span class="sd"> """</span> +</span><span id="Resolver-379"><a href="#Resolver-379"><span class="linenos">379</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Resolver-380"><a href="#Resolver-380"><span class="linenos">380</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unambiguous_columns</span><span class="p">(</span> +</span><span id="Resolver-381"><a href="#Resolver-381"><span class="linenos">381</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span> +</span><span id="Resolver-382"><a href="#Resolver-382"><span class="linenos">382</span></a> <span class="p">)</span> +</span><span id="Resolver-383"><a href="#Resolver-383"><span class="linenos">383</span></a> +</span><span id="Resolver-384"><a href="#Resolver-384"><span class="linenos">384</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> +</span><span id="Resolver-385"><a href="#Resolver-385"><span class="linenos">385</span></a> +</span><span id="Resolver-386"><a href="#Resolver-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_name</span><span class="p">:</span> +</span><span id="Resolver-387"><a href="#Resolver-387"><span class="linenos">387</span></a> <span class="n">sources_without_schema</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span> +</span><span id="Resolver-388"><a href="#Resolver-388"><span class="linenos">388</span></a> <span class="n">source</span> +</span><span id="Resolver-389"><a href="#Resolver-389"><span class="linenos">389</span></a> <span class="k">for</span> <span class="n">source</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="Resolver-390"><a href="#Resolver-390"><span class="linenos">390</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">columns</span> <span class="ow">or</span> <span class="s2">"*"</span> <span class="ow">in</span> <span class="n">columns</span> +</span><span id="Resolver-391"><a href="#Resolver-391"><span class="linenos">391</span></a> <span class="p">)</span> +</span><span id="Resolver-392"><a href="#Resolver-392"><span class="linenos">392</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sources_without_schema</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Resolver-393"><a href="#Resolver-393"><span class="linenos">393</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">sources_without_schema</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Resolver-394"><a href="#Resolver-394"><span class="linenos">394</span></a> +</span><span id="Resolver-395"><a href="#Resolver-395"><span class="linenos">395</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> +</span><span id="Resolver-396"><a href="#Resolver-396"><span class="linenos">396</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> </span><span id="Resolver-397"><a href="#Resolver-397"><span class="linenos">397</span></a> -</span><span id="Resolver-398"><a href="#Resolver-398"><span class="linenos">398</span></a> <span class="c1"># If referencing a table, return the columns from the schema</span> -</span><span id="Resolver-399"><a href="#Resolver-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> -</span><span id="Resolver-400"><a href="#Resolver-400"><span class="linenos">400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="o">.</span><span class="n">column_names</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">only_visible</span><span class="p">)</span> -</span><span id="Resolver-401"><a href="#Resolver-401"><span class="linenos">401</span></a> -</span><span id="Resolver-402"><a href="#Resolver-402"><span class="linenos">402</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Values</span><span class="p">):</span> -</span><span id="Resolver-403"><a href="#Resolver-403"><span class="linenos">403</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span> -</span><span id="Resolver-404"><a href="#Resolver-404"><span class="linenos">404</span></a> -</span><span id="Resolver-405"><a href="#Resolver-405"><span class="linenos">405</span></a> <span class="c1"># Otherwise, if referencing another scope, return that scope's named selects</span> -</span><span id="Resolver-406"><a href="#Resolver-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span> +</span><span id="Resolver-398"><a href="#Resolver-398"><span class="linenos">398</span></a> <span class="n">node</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="Resolver-399"><a href="#Resolver-399"><span class="linenos">399</span></a> +</span><span id="Resolver-400"><a href="#Resolver-400"><span class="linenos">400</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Resolver-401"><a href="#Resolver-401"><span class="linenos">401</span></a> <span class="k">while</span> <span class="n">node</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="o">!=</span> <span class="n">table_name</span><span class="p">:</span> +</span><span id="Resolver-402"><a href="#Resolver-402"><span class="linenos">402</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span> +</span><span id="Resolver-403"><a href="#Resolver-403"><span class="linenos">403</span></a> +</span><span id="Resolver-404"><a href="#Resolver-404"><span class="linenos">404</span></a> <span class="n">node_alias</span> <span class="o">=</span> <span class="n">node</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><span id="Resolver-405"><a href="#Resolver-405"><span class="linenos">405</span></a> <span class="k">if</span> <span class="n">node_alias</span><span class="p">:</span> +</span><span id="Resolver-406"><a href="#Resolver-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="n">node_alias</span><span class="o">.</span><span class="n">this</span> </span><span id="Resolver-407"><a href="#Resolver-407"><span class="linenos">407</span></a> -</span><span id="Resolver-408"><a href="#Resolver-408"><span class="linenos">408</span></a> <span class="k">def</span> <span class="nf">_get_all_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Resolver-409"><a href="#Resolver-409"><span class="linenos">409</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Resolver-410"><a href="#Resolver-410"><span class="linenos">410</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Resolver-411"><a href="#Resolver-411"><span class="linenos">411</span></a> <span class="n">k</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> -</span><span id="Resolver-412"><a href="#Resolver-412"><span class="linenos">412</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> -</span><span id="Resolver-413"><a href="#Resolver-413"><span class="linenos">413</span></a> <span class="p">}</span> -</span><span id="Resolver-414"><a href="#Resolver-414"><span class="linenos">414</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> -</span><span id="Resolver-415"><a href="#Resolver-415"><span class="linenos">415</span></a> -</span><span id="Resolver-416"><a href="#Resolver-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">_get_unambiguous_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_columns</span><span class="p">):</span> -</span><span id="Resolver-417"><a href="#Resolver-417"><span class="linenos">417</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Resolver-418"><a href="#Resolver-418"><span class="linenos">418</span></a><span class="sd"> Find all the unambiguous columns in sources.</span> -</span><span id="Resolver-419"><a href="#Resolver-419"><span class="linenos">419</span></a> -</span><span id="Resolver-420"><a href="#Resolver-420"><span class="linenos">420</span></a><span class="sd"> Args:</span> -</span><span id="Resolver-421"><a href="#Resolver-421"><span class="linenos">421</span></a><span class="sd"> source_columns (dict): Mapping of names to source columns</span> -</span><span id="Resolver-422"><a href="#Resolver-422"><span class="linenos">422</span></a><span class="sd"> Returns:</span> -</span><span id="Resolver-423"><a href="#Resolver-423"><span class="linenos">423</span></a><span class="sd"> dict: Mapping of column name to source name</span> -</span><span id="Resolver-424"><a href="#Resolver-424"><span class="linenos">424</span></a><span class="sd"> """</span> -</span><span id="Resolver-425"><a href="#Resolver-425"><span class="linenos">425</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source_columns</span><span class="p">:</span> -</span><span id="Resolver-426"><a href="#Resolver-426"><span class="linenos">426</span></a> <span class="k">return</span> <span class="p">{}</span> +</span><span id="Resolver-408"><a href="#Resolver-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span> +</span><span id="Resolver-409"><a href="#Resolver-409"><span class="linenos">409</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">quoted</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Resolver-410"><a href="#Resolver-410"><span class="linenos">410</span></a> <span class="p">)</span> +</span><span id="Resolver-411"><a href="#Resolver-411"><span class="linenos">411</span></a> +</span><span id="Resolver-412"><a href="#Resolver-412"><span class="linenos">412</span></a> <span class="nd">@property</span> +</span><span id="Resolver-413"><a href="#Resolver-413"><span class="linenos">413</span></a> <span class="k">def</span> <span class="nf">all_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Resolver-414"><a href="#Resolver-414"><span class="linenos">414</span></a><span class="w"> </span><span class="sd">"""All available columns of all sources in this scope"""</span> +</span><span id="Resolver-415"><a href="#Resolver-415"><span class="linenos">415</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Resolver-416"><a href="#Resolver-416"><span class="linenos">416</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Resolver-417"><a href="#Resolver-417"><span class="linenos">417</span></a> <span class="n">column</span> <span class="k">for</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">values</span><span class="p">()</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> +</span><span id="Resolver-418"><a href="#Resolver-418"><span class="linenos">418</span></a> <span class="p">}</span> +</span><span id="Resolver-419"><a href="#Resolver-419"><span class="linenos">419</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> +</span><span id="Resolver-420"><a href="#Resolver-420"><span class="linenos">420</span></a> +</span><span id="Resolver-421"><a href="#Resolver-421"><span class="linenos">421</span></a> <span class="k">def</span> <span class="nf">get_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Resolver-422"><a href="#Resolver-422"><span class="linenos">422</span></a><span class="w"> </span><span class="sd">"""Resolve the source columns for a given source `name`"""</span> +</span><span id="Resolver-423"><a href="#Resolver-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="Resolver-424"><a href="#Resolver-424"><span class="linenos">424</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Resolver-425"><a href="#Resolver-425"><span class="linenos">425</span></a> +</span><span id="Resolver-426"><a href="#Resolver-426"><span class="linenos">426</span></a> <span class="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> </span><span id="Resolver-427"><a href="#Resolver-427"><span class="linenos">427</span></a> -</span><span id="Resolver-428"><a href="#Resolver-428"><span class="linenos">428</span></a> <span class="n">source_columns</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">source_columns</span><span class="o">.</span><span class="n">items</span><span class="p">())</span> -</span><span id="Resolver-429"><a href="#Resolver-429"><span class="linenos">429</span></a> -</span><span id="Resolver-430"><a href="#Resolver-430"><span class="linenos">430</span></a> <span class="n">first_table</span><span class="p">,</span> <span class="n">first_columns</span> <span class="o">=</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Resolver-431"><a href="#Resolver-431"><span class="linenos">431</span></a> <span class="n">unambiguous_columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">col</span><span class="p">:</span> <span class="n">first_table</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">first_columns</span><span class="p">)}</span> -</span><span id="Resolver-432"><a href="#Resolver-432"><span class="linenos">432</span></a> <span class="n">all_columns</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">unambiguous_columns</span><span class="p">)</span> -</span><span id="Resolver-433"><a href="#Resolver-433"><span class="linenos">433</span></a> -</span><span id="Resolver-434"><a href="#Resolver-434"><span class="linenos">434</span></a> <span class="k">for</span> <span class="n">table</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="Resolver-435"><a href="#Resolver-435"><span class="linenos">435</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> -</span><span id="Resolver-436"><a href="#Resolver-436"><span class="linenos">436</span></a> <span class="n">ambiguous</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">all_columns</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">unique</span><span class="p">)</span> -</span><span id="Resolver-437"><a href="#Resolver-437"><span class="linenos">437</span></a> <span class="n">all_columns</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> -</span><span id="Resolver-438"><a href="#Resolver-438"><span class="linenos">438</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">ambiguous</span><span class="p">:</span> -</span><span id="Resolver-439"><a href="#Resolver-439"><span class="linenos">439</span></a> <span class="n">unambiguous_columns</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Resolver-440"><a href="#Resolver-440"><span class="linenos">440</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">unique</span><span class="o">.</span><span class="n">difference</span><span class="p">(</span><span class="n">ambiguous</span><span class="p">):</span> -</span><span id="Resolver-441"><a href="#Resolver-441"><span class="linenos">441</span></a> <span class="n">unambiguous_columns</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">table</span> -</span><span id="Resolver-442"><a href="#Resolver-442"><span class="linenos">442</span></a> -</span><span id="Resolver-443"><a href="#Resolver-443"><span class="linenos">443</span></a> <span class="k">return</span> <span class="n">unambiguous_columns</span> -</span><span id="Resolver-444"><a href="#Resolver-444"><span class="linenos">444</span></a> -</span><span id="Resolver-445"><a href="#Resolver-445"><span class="linenos">445</span></a> <span class="nd">@staticmethod</span> -</span><span id="Resolver-446"><a href="#Resolver-446"><span class="linenos">446</span></a> <span class="k">def</span> <span class="nf">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">):</span> +</span><span id="Resolver-428"><a href="#Resolver-428"><span class="linenos">428</span></a> <span class="c1"># If referencing a table, return the columns from the schema</span> +</span><span id="Resolver-429"><a href="#Resolver-429"><span class="linenos">429</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> +</span><span id="Resolver-430"><a href="#Resolver-430"><span class="linenos">430</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="o">.</span><span class="n">column_names</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">only_visible</span><span class="p">)</span> +</span><span id="Resolver-431"><a href="#Resolver-431"><span class="linenos">431</span></a> +</span><span id="Resolver-432"><a href="#Resolver-432"><span class="linenos">432</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Values</span><span class="p">):</span> +</span><span id="Resolver-433"><a href="#Resolver-433"><span class="linenos">433</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span> +</span><span id="Resolver-434"><a href="#Resolver-434"><span class="linenos">434</span></a> +</span><span id="Resolver-435"><a href="#Resolver-435"><span class="linenos">435</span></a> <span class="c1"># Otherwise, if referencing another scope, return that scope's named selects</span> +</span><span id="Resolver-436"><a href="#Resolver-436"><span class="linenos">436</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span> +</span><span id="Resolver-437"><a href="#Resolver-437"><span class="linenos">437</span></a> +</span><span id="Resolver-438"><a href="#Resolver-438"><span class="linenos">438</span></a> <span class="k">def</span> <span class="nf">_get_all_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Resolver-439"><a href="#Resolver-439"><span class="linenos">439</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Resolver-440"><a href="#Resolver-440"><span class="linenos">440</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Resolver-441"><a href="#Resolver-441"><span class="linenos">441</span></a> <span class="n">k</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">get_source_columns</span><span class="p">(</span><span class="n">k</span><span class="p">)</span> +</span><span id="Resolver-442"><a href="#Resolver-442"><span class="linenos">442</span></a> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> +</span><span id="Resolver-443"><a href="#Resolver-443"><span class="linenos">443</span></a> <span class="p">}</span> +</span><span id="Resolver-444"><a href="#Resolver-444"><span class="linenos">444</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> +</span><span id="Resolver-445"><a href="#Resolver-445"><span class="linenos">445</span></a> +</span><span id="Resolver-446"><a href="#Resolver-446"><span class="linenos">446</span></a> <span class="k">def</span> <span class="nf">_get_unambiguous_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_columns</span><span class="p">):</span> </span><span id="Resolver-447"><a href="#Resolver-447"><span class="linenos">447</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Resolver-448"><a href="#Resolver-448"><span class="linenos">448</span></a><span class="sd"> Find the unique columns in a list of columns.</span> +</span><span id="Resolver-448"><a href="#Resolver-448"><span class="linenos">448</span></a><span class="sd"> Find all the unambiguous columns in sources.</span> </span><span id="Resolver-449"><a href="#Resolver-449"><span class="linenos">449</span></a> -</span><span id="Resolver-450"><a href="#Resolver-450"><span class="linenos">450</span></a><span class="sd"> Example:</span> -</span><span id="Resolver-451"><a href="#Resolver-451"><span class="linenos">451</span></a><span class="sd"> >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"]))</span> -</span><span id="Resolver-452"><a href="#Resolver-452"><span class="linenos">452</span></a><span class="sd"> ['a', 'c']</span> -</span><span id="Resolver-453"><a href="#Resolver-453"><span class="linenos">453</span></a> -</span><span id="Resolver-454"><a href="#Resolver-454"><span class="linenos">454</span></a><span class="sd"> This is necessary because duplicate column names are ambiguous.</span> -</span><span id="Resolver-455"><a href="#Resolver-455"><span class="linenos">455</span></a><span class="sd"> """</span> -</span><span id="Resolver-456"><a href="#Resolver-456"><span class="linenos">456</span></a> <span class="n">counts</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="Resolver-457"><a href="#Resolver-457"><span class="linenos">457</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="Resolver-458"><a href="#Resolver-458"><span class="linenos">458</span></a> <span class="n">counts</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">counts</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> -</span><span id="Resolver-459"><a href="#Resolver-459"><span class="linenos">459</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span><span class="p">,</span> <span class="n">count</span> <span class="ow">in</span> <span class="n">counts</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">count</span> <span class="o">==</span> <span class="mi">1</span><span class="p">}</span> +</span><span id="Resolver-450"><a href="#Resolver-450"><span class="linenos">450</span></a><span class="sd"> Args:</span> +</span><span id="Resolver-451"><a href="#Resolver-451"><span class="linenos">451</span></a><span class="sd"> source_columns (dict): Mapping of names to source columns</span> +</span><span id="Resolver-452"><a href="#Resolver-452"><span class="linenos">452</span></a><span class="sd"> Returns:</span> +</span><span id="Resolver-453"><a href="#Resolver-453"><span class="linenos">453</span></a><span class="sd"> dict: Mapping of column name to source name</span> +</span><span id="Resolver-454"><a href="#Resolver-454"><span class="linenos">454</span></a><span class="sd"> """</span> +</span><span id="Resolver-455"><a href="#Resolver-455"><span class="linenos">455</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source_columns</span><span class="p">:</span> +</span><span id="Resolver-456"><a href="#Resolver-456"><span class="linenos">456</span></a> <span class="k">return</span> <span class="p">{}</span> +</span><span id="Resolver-457"><a href="#Resolver-457"><span class="linenos">457</span></a> +</span><span id="Resolver-458"><a href="#Resolver-458"><span class="linenos">458</span></a> <span class="n">source_columns</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="n">source_columns</span><span class="o">.</span><span class="n">items</span><span class="p">())</span> +</span><span id="Resolver-459"><a href="#Resolver-459"><span class="linenos">459</span></a> +</span><span id="Resolver-460"><a href="#Resolver-460"><span class="linenos">460</span></a> <span class="n">first_table</span><span class="p">,</span> <span class="n">first_columns</span> <span class="o">=</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Resolver-461"><a href="#Resolver-461"><span class="linenos">461</span></a> <span class="n">unambiguous_columns</span> <span class="o">=</span> <span class="p">{</span><span class="n">col</span><span class="p">:</span> <span class="n">first_table</span> <span class="k">for</span> <span class="n">col</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">first_columns</span><span class="p">)}</span> +</span><span id="Resolver-462"><a href="#Resolver-462"><span class="linenos">462</span></a> <span class="n">all_columns</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">unambiguous_columns</span><span class="p">)</span> +</span><span id="Resolver-463"><a href="#Resolver-463"><span class="linenos">463</span></a> +</span><span id="Resolver-464"><a href="#Resolver-464"><span class="linenos">464</span></a> <span class="k">for</span> <span class="n">table</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="n">source_columns</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="Resolver-465"><a href="#Resolver-465"><span class="linenos">465</span></a> <span class="n">unique</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> +</span><span id="Resolver-466"><a href="#Resolver-466"><span class="linenos">466</span></a> <span class="n">ambiguous</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">all_columns</span><span class="p">)</span><span class="o">.</span><span class="n">intersection</span><span class="p">(</span><span class="n">unique</span><span class="p">)</span> +</span><span id="Resolver-467"><a href="#Resolver-467"><span class="linenos">467</span></a> <span class="n">all_columns</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">columns</span><span class="p">)</span> +</span><span id="Resolver-468"><a href="#Resolver-468"><span class="linenos">468</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">ambiguous</span><span class="p">:</span> +</span><span id="Resolver-469"><a href="#Resolver-469"><span class="linenos">469</span></a> <span class="n">unambiguous_columns</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Resolver-470"><a href="#Resolver-470"><span class="linenos">470</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">unique</span><span class="o">.</span><span class="n">difference</span><span class="p">(</span><span class="n">ambiguous</span><span class="p">):</span> +</span><span id="Resolver-471"><a href="#Resolver-471"><span class="linenos">471</span></a> <span class="n">unambiguous_columns</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">table</span> +</span><span id="Resolver-472"><a href="#Resolver-472"><span class="linenos">472</span></a> +</span><span id="Resolver-473"><a href="#Resolver-473"><span class="linenos">473</span></a> <span class="k">return</span> <span class="n">unambiguous_columns</span> +</span><span id="Resolver-474"><a href="#Resolver-474"><span class="linenos">474</span></a> +</span><span id="Resolver-475"><a href="#Resolver-475"><span class="linenos">475</span></a> <span class="nd">@staticmethod</span> +</span><span id="Resolver-476"><a href="#Resolver-476"><span class="linenos">476</span></a> <span class="k">def</span> <span class="nf">_find_unique_columns</span><span class="p">(</span><span class="n">columns</span><span class="p">):</span> +</span><span id="Resolver-477"><a href="#Resolver-477"><span class="linenos">477</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Resolver-478"><a href="#Resolver-478"><span class="linenos">478</span></a><span class="sd"> Find the unique columns in a list of columns.</span> +</span><span id="Resolver-479"><a href="#Resolver-479"><span class="linenos">479</span></a> +</span><span id="Resolver-480"><a href="#Resolver-480"><span class="linenos">480</span></a><span class="sd"> Example:</span> +</span><span id="Resolver-481"><a href="#Resolver-481"><span class="linenos">481</span></a><span class="sd"> >>> sorted(Resolver._find_unique_columns(["a", "b", "b", "c"]))</span> +</span><span id="Resolver-482"><a href="#Resolver-482"><span class="linenos">482</span></a><span class="sd"> ['a', 'c']</span> +</span><span id="Resolver-483"><a href="#Resolver-483"><span class="linenos">483</span></a> +</span><span id="Resolver-484"><a href="#Resolver-484"><span class="linenos">484</span></a><span class="sd"> This is necessary because duplicate column names are ambiguous.</span> +</span><span id="Resolver-485"><a href="#Resolver-485"><span class="linenos">485</span></a><span class="sd"> """</span> +</span><span id="Resolver-486"><a href="#Resolver-486"><span class="linenos">486</span></a> <span class="n">counts</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Resolver-487"><a href="#Resolver-487"><span class="linenos">487</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="Resolver-488"><a href="#Resolver-488"><span class="linenos">488</span></a> <span class="n">counts</span><span class="p">[</span><span class="n">column</span><span class="p">]</span> <span class="o">=</span> <span class="n">counts</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="o">+</span> <span class="mi">1</span> +</span><span id="Resolver-489"><a href="#Resolver-489"><span class="linenos">489</span></a> <span class="k">return</span> <span class="p">{</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span><span class="p">,</span> <span class="n">count</span> <span class="ow">in</span> <span class="n">counts</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> <span class="k">if</span> <span class="n">count</span> <span class="o">==</span> <span class="mi">1</span><span class="p">}</span> </span></pre></div> @@ -807,12 +842,12 @@ </div> <a class="headerlink" href="#Resolver.__init__"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver.__init__-337"><a href="#Resolver.__init__-337"><span class="linenos">337</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> -</span><span id="Resolver.__init__-338"><a href="#Resolver.__init__-338"><span class="linenos">338</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span> <span class="o">=</span> <span class="n">scope</span> -</span><span id="Resolver.__init__-339"><a href="#Resolver.__init__-339"><span class="linenos">339</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> -</span><span id="Resolver.__init__-340"><a href="#Resolver.__init__-340"><span class="linenos">340</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Resolver.__init__-341"><a href="#Resolver.__init__-341"><span class="linenos">341</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Resolver.__init__-342"><a href="#Resolver.__init__-342"><span class="linenos">342</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="kc">None</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver.__init__-363"><a href="#Resolver.__init__-363"><span class="linenos">363</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scope</span><span class="p">,</span> <span class="n">schema</span><span class="p">):</span> +</span><span id="Resolver.__init__-364"><a href="#Resolver.__init__-364"><span class="linenos">364</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span> <span class="o">=</span> <span class="n">scope</span> +</span><span id="Resolver.__init__-365"><a href="#Resolver.__init__-365"><span class="linenos">365</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span> <span class="o">=</span> <span class="n">schema</span> +</span><span id="Resolver.__init__-366"><a href="#Resolver.__init__-366"><span class="linenos">366</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_source_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Resolver.__init__-367"><a href="#Resolver.__init__-367"><span class="linenos">367</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Resolver.__init__-368"><a href="#Resolver.__init__-368"><span class="linenos">368</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_all_columns</span> <span class="o">=</span> <span class="kc">None</span> </span></pre></div> @@ -830,43 +865,47 @@ </div> <a class="headerlink" href="#Resolver.get_table"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver.get_table-344"><a href="#Resolver.get_table-344"><span class="linenos">344</span></a> <span class="k">def</span> <span class="nf">get_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">column_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">]:</span> -</span><span id="Resolver.get_table-345"><a href="#Resolver.get_table-345"><span class="linenos">345</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Resolver.get_table-346"><a href="#Resolver.get_table-346"><span class="linenos">346</span></a><span class="sd"> Get the table for a column name.</span> -</span><span id="Resolver.get_table-347"><a href="#Resolver.get_table-347"><span class="linenos">347</span></a> -</span><span id="Resolver.get_table-348"><a href="#Resolver.get_table-348"><span class="linenos">348</span></a><span class="sd"> Args:</span> -</span><span id="Resolver.get_table-349"><a href="#Resolver.get_table-349"><span class="linenos">349</span></a><span class="sd"> column_name: The column name to find the table for.</span> -</span><span id="Resolver.get_table-350"><a href="#Resolver.get_table-350"><span class="linenos">350</span></a><span class="sd"> Returns:</span> -</span><span id="Resolver.get_table-351"><a href="#Resolver.get_table-351"><span class="linenos">351</span></a><span class="sd"> The table name if it can be found/inferred.</span> -</span><span id="Resolver.get_table-352"><a href="#Resolver.get_table-352"><span class="linenos">352</span></a><span class="sd"> """</span> -</span><span id="Resolver.get_table-353"><a href="#Resolver.get_table-353"><span class="linenos">353</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Resolver.get_table-354"><a href="#Resolver.get_table-354"><span class="linenos">354</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unambiguous_columns</span><span class="p">(</span> -</span><span id="Resolver.get_table-355"><a href="#Resolver.get_table-355"><span class="linenos">355</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span> -</span><span id="Resolver.get_table-356"><a href="#Resolver.get_table-356"><span class="linenos">356</span></a> <span class="p">)</span> -</span><span id="Resolver.get_table-357"><a href="#Resolver.get_table-357"><span class="linenos">357</span></a> -</span><span id="Resolver.get_table-358"><a href="#Resolver.get_table-358"><span class="linenos">358</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> -</span><span id="Resolver.get_table-359"><a href="#Resolver.get_table-359"><span class="linenos">359</span></a> -</span><span id="Resolver.get_table-360"><a href="#Resolver.get_table-360"><span class="linenos">360</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_name</span><span class="p">:</span> -</span><span id="Resolver.get_table-361"><a href="#Resolver.get_table-361"><span class="linenos">361</span></a> <span class="n">sources_without_schema</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span> -</span><span id="Resolver.get_table-362"><a href="#Resolver.get_table-362"><span class="linenos">362</span></a> <span class="n">source</span> -</span><span id="Resolver.get_table-363"><a href="#Resolver.get_table-363"><span class="linenos">363</span></a> <span class="k">for</span> <span class="n">source</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="Resolver.get_table-364"><a href="#Resolver.get_table-364"><span class="linenos">364</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">columns</span> <span class="ow">or</span> <span class="s2">"*"</span> <span class="ow">in</span> <span class="n">columns</span> -</span><span id="Resolver.get_table-365"><a href="#Resolver.get_table-365"><span class="linenos">365</span></a> <span class="p">)</span> -</span><span id="Resolver.get_table-366"><a href="#Resolver.get_table-366"><span class="linenos">366</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sources_without_schema</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Resolver.get_table-367"><a href="#Resolver.get_table-367"><span class="linenos">367</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">sources_without_schema</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> -</span><span id="Resolver.get_table-368"><a href="#Resolver.get_table-368"><span class="linenos">368</span></a> -</span><span id="Resolver.get_table-369"><a href="#Resolver.get_table-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> -</span><span id="Resolver.get_table-370"><a href="#Resolver.get_table-370"><span class="linenos">370</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> -</span><span id="Resolver.get_table-371"><a href="#Resolver.get_table-371"><span class="linenos">371</span></a> -</span><span id="Resolver.get_table-372"><a href="#Resolver.get_table-372"><span class="linenos">372</span></a> <span class="n">node</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver.get_table-370"><a href="#Resolver.get_table-370"><span class="linenos">370</span></a> <span class="k">def</span> <span class="nf">get_table</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">column_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">]:</span> +</span><span id="Resolver.get_table-371"><a href="#Resolver.get_table-371"><span class="linenos">371</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Resolver.get_table-372"><a href="#Resolver.get_table-372"><span class="linenos">372</span></a><span class="sd"> Get the table for a column name.</span> </span><span id="Resolver.get_table-373"><a href="#Resolver.get_table-373"><span class="linenos">373</span></a> -</span><span id="Resolver.get_table-374"><a href="#Resolver.get_table-374"><span class="linenos">374</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Resolver.get_table-375"><a href="#Resolver.get_table-375"><span class="linenos">375</span></a> <span class="k">while</span> <span class="n">node</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="o">!=</span> <span class="n">table_name</span><span class="p">:</span> -</span><span id="Resolver.get_table-376"><a href="#Resolver.get_table-376"><span class="linenos">376</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span> -</span><span id="Resolver.get_table-377"><a href="#Resolver.get_table-377"><span class="linenos">377</span></a> <span class="n">node_alias</span> <span class="o">=</span> <span class="n">node</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><span id="Resolver.get_table-378"><a href="#Resolver.get_table-378"><span class="linenos">378</span></a> <span class="k">if</span> <span class="n">node_alias</span><span class="p">:</span> -</span><span id="Resolver.get_table-379"><a href="#Resolver.get_table-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="n">node_alias</span><span class="o">.</span><span class="n">this</span> -</span><span id="Resolver.get_table-380"><a href="#Resolver.get_table-380"><span class="linenos">380</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="Resolver.get_table-374"><a href="#Resolver.get_table-374"><span class="linenos">374</span></a><span class="sd"> Args:</span> +</span><span id="Resolver.get_table-375"><a href="#Resolver.get_table-375"><span class="linenos">375</span></a><span class="sd"> column_name: The column name to find the table for.</span> +</span><span id="Resolver.get_table-376"><a href="#Resolver.get_table-376"><span class="linenos">376</span></a><span class="sd"> Returns:</span> +</span><span id="Resolver.get_table-377"><a href="#Resolver.get_table-377"><span class="linenos">377</span></a><span class="sd"> The table name if it can be found/inferred.</span> +</span><span id="Resolver.get_table-378"><a href="#Resolver.get_table-378"><span class="linenos">378</span></a><span class="sd"> """</span> +</span><span id="Resolver.get_table-379"><a href="#Resolver.get_table-379"><span class="linenos">379</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Resolver.get_table-380"><a href="#Resolver.get_table-380"><span class="linenos">380</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_unambiguous_columns</span><span class="p">(</span> +</span><span id="Resolver.get_table-381"><a href="#Resolver.get_table-381"><span class="linenos">381</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span> +</span><span id="Resolver.get_table-382"><a href="#Resolver.get_table-382"><span class="linenos">382</span></a> <span class="p">)</span> +</span><span id="Resolver.get_table-383"><a href="#Resolver.get_table-383"><span class="linenos">383</span></a> +</span><span id="Resolver.get_table-384"><a href="#Resolver.get_table-384"><span class="linenos">384</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_unambiguous_columns</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">column_name</span><span class="p">)</span> +</span><span id="Resolver.get_table-385"><a href="#Resolver.get_table-385"><span class="linenos">385</span></a> +</span><span id="Resolver.get_table-386"><a href="#Resolver.get_table-386"><span class="linenos">386</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_name</span><span class="p">:</span> +</span><span id="Resolver.get_table-387"><a href="#Resolver.get_table-387"><span class="linenos">387</span></a> <span class="n">sources_without_schema</span> <span class="o">=</span> <span class="nb">tuple</span><span class="p">(</span> +</span><span id="Resolver.get_table-388"><a href="#Resolver.get_table-388"><span class="linenos">388</span></a> <span class="n">source</span> +</span><span id="Resolver.get_table-389"><a href="#Resolver.get_table-389"><span class="linenos">389</span></a> <span class="k">for</span> <span class="n">source</span><span class="p">,</span> <span class="n">columns</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_get_all_source_columns</span><span class="p">()</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="Resolver.get_table-390"><a href="#Resolver.get_table-390"><span class="linenos">390</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">columns</span> <span class="ow">or</span> <span class="s2">"*"</span> <span class="ow">in</span> <span class="n">columns</span> +</span><span id="Resolver.get_table-391"><a href="#Resolver.get_table-391"><span class="linenos">391</span></a> <span class="p">)</span> +</span><span id="Resolver.get_table-392"><a href="#Resolver.get_table-392"><span class="linenos">392</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">sources_without_schema</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Resolver.get_table-393"><a href="#Resolver.get_table-393"><span class="linenos">393</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">sources_without_schema</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> +</span><span id="Resolver.get_table-394"><a href="#Resolver.get_table-394"><span class="linenos">394</span></a> +</span><span id="Resolver.get_table-395"><a href="#Resolver.get_table-395"><span class="linenos">395</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="p">:</span> +</span><span id="Resolver.get_table-396"><a href="#Resolver.get_table-396"><span class="linenos">396</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="Resolver.get_table-397"><a href="#Resolver.get_table-397"><span class="linenos">397</span></a> +</span><span id="Resolver.get_table-398"><a href="#Resolver.get_table-398"><span class="linenos">398</span></a> <span class="n">node</span><span class="p">,</span> <span class="n">_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">table_name</span><span class="p">)</span> +</span><span id="Resolver.get_table-399"><a href="#Resolver.get_table-399"><span class="linenos">399</span></a> +</span><span id="Resolver.get_table-400"><a href="#Resolver.get_table-400"><span class="linenos">400</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Resolver.get_table-401"><a href="#Resolver.get_table-401"><span class="linenos">401</span></a> <span class="k">while</span> <span class="n">node</span> <span class="ow">and</span> <span class="n">node</span><span class="o">.</span><span class="n">alias</span> <span class="o">!=</span> <span class="n">table_name</span><span class="p">:</span> +</span><span id="Resolver.get_table-402"><a href="#Resolver.get_table-402"><span class="linenos">402</span></a> <span class="n">node</span> <span class="o">=</span> <span class="n">node</span><span class="o">.</span><span class="n">parent</span> +</span><span id="Resolver.get_table-403"><a href="#Resolver.get_table-403"><span class="linenos">403</span></a> +</span><span id="Resolver.get_table-404"><a href="#Resolver.get_table-404"><span class="linenos">404</span></a> <span class="n">node_alias</span> <span class="o">=</span> <span class="n">node</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><span id="Resolver.get_table-405"><a href="#Resolver.get_table-405"><span class="linenos">405</span></a> <span class="k">if</span> <span class="n">node_alias</span><span class="p">:</span> +</span><span id="Resolver.get_table-406"><a href="#Resolver.get_table-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="n">node_alias</span><span class="o">.</span><span class="n">this</span> +</span><span id="Resolver.get_table-407"><a href="#Resolver.get_table-407"><span class="linenos">407</span></a> +</span><span id="Resolver.get_table-408"><a href="#Resolver.get_table-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span> +</span><span id="Resolver.get_table-409"><a href="#Resolver.get_table-409"><span class="linenos">409</span></a> <span class="n">table_name</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">node</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">quoted</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Resolver.get_table-410"><a href="#Resolver.get_table-410"><span class="linenos">410</span></a> <span class="p">)</span> </span></pre></div> @@ -911,22 +950,22 @@ </div> <a class="headerlink" href="#Resolver.get_source_columns"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver.get_source_columns-391"><a href="#Resolver.get_source_columns-391"><span class="linenos">391</span></a> <span class="k">def</span> <span class="nf">get_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Resolver.get_source_columns-392"><a href="#Resolver.get_source_columns-392"><span class="linenos">392</span></a><span class="w"> </span><span class="sd">"""Resolve the source columns for a given source `name`"""</span> -</span><span id="Resolver.get_source_columns-393"><a href="#Resolver.get_source_columns-393"><span class="linenos">393</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="Resolver.get_source_columns-394"><a href="#Resolver.get_source_columns-394"><span class="linenos">394</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Resolver.get_source_columns-395"><a href="#Resolver.get_source_columns-395"><span class="linenos">395</span></a> -</span><span id="Resolver.get_source_columns-396"><a href="#Resolver.get_source_columns-396"><span class="linenos">396</span></a> <span class="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> -</span><span id="Resolver.get_source_columns-397"><a href="#Resolver.get_source_columns-397"><span class="linenos">397</span></a> -</span><span id="Resolver.get_source_columns-398"><a href="#Resolver.get_source_columns-398"><span class="linenos">398</span></a> <span class="c1"># If referencing a table, return the columns from the schema</span> -</span><span id="Resolver.get_source_columns-399"><a href="#Resolver.get_source_columns-399"><span class="linenos">399</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> -</span><span id="Resolver.get_source_columns-400"><a href="#Resolver.get_source_columns-400"><span class="linenos">400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="o">.</span><span class="n">column_names</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">only_visible</span><span class="p">)</span> -</span><span id="Resolver.get_source_columns-401"><a href="#Resolver.get_source_columns-401"><span class="linenos">401</span></a> -</span><span id="Resolver.get_source_columns-402"><a href="#Resolver.get_source_columns-402"><span class="linenos">402</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Values</span><span class="p">):</span> -</span><span id="Resolver.get_source_columns-403"><a href="#Resolver.get_source_columns-403"><span class="linenos">403</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span> -</span><span id="Resolver.get_source_columns-404"><a href="#Resolver.get_source_columns-404"><span class="linenos">404</span></a> -</span><span id="Resolver.get_source_columns-405"><a href="#Resolver.get_source_columns-405"><span class="linenos">405</span></a> <span class="c1"># Otherwise, if referencing another scope, return that scope's named selects</span> -</span><span id="Resolver.get_source_columns-406"><a href="#Resolver.get_source_columns-406"><span class="linenos">406</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Resolver.get_source_columns-421"><a href="#Resolver.get_source_columns-421"><span class="linenos">421</span></a> <span class="k">def</span> <span class="nf">get_source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">only_visible</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Resolver.get_source_columns-422"><a href="#Resolver.get_source_columns-422"><span class="linenos">422</span></a><span class="w"> </span><span class="sd">"""Resolve the source columns for a given source `name`"""</span> +</span><span id="Resolver.get_source_columns-423"><a href="#Resolver.get_source_columns-423"><span class="linenos">423</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="Resolver.get_source_columns-424"><a href="#Resolver.get_source_columns-424"><span class="linenos">424</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unknown table: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Resolver.get_source_columns-425"><a href="#Resolver.get_source_columns-425"><span class="linenos">425</span></a> +</span><span id="Resolver.get_source_columns-426"><a href="#Resolver.get_source_columns-426"><span class="linenos">426</span></a> <span class="n">source</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> +</span><span id="Resolver.get_source_columns-427"><a href="#Resolver.get_source_columns-427"><span class="linenos">427</span></a> +</span><span id="Resolver.get_source_columns-428"><a href="#Resolver.get_source_columns-428"><span class="linenos">428</span></a> <span class="c1"># If referencing a table, return the columns from the schema</span> +</span><span id="Resolver.get_source_columns-429"><a href="#Resolver.get_source_columns-429"><span class="linenos">429</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> +</span><span id="Resolver.get_source_columns-430"><a href="#Resolver.get_source_columns-430"><span class="linenos">430</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">schema</span><span class="o">.</span><span class="n">column_names</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">only_visible</span><span class="p">)</span> +</span><span id="Resolver.get_source_columns-431"><a href="#Resolver.get_source_columns-431"><span class="linenos">431</span></a> +</span><span id="Resolver.get_source_columns-432"><a href="#Resolver.get_source_columns-432"><span class="linenos">432</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Values</span><span class="p">):</span> +</span><span id="Resolver.get_source_columns-433"><a href="#Resolver.get_source_columns-433"><span class="linenos">433</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span> +</span><span id="Resolver.get_source_columns-434"><a href="#Resolver.get_source_columns-434"><span class="linenos">434</span></a> +</span><span id="Resolver.get_source_columns-435"><a href="#Resolver.get_source_columns-435"><span class="linenos">435</span></a> <span class="c1"># Otherwise, if referencing another scope, return that scope's named selects</span> +</span><span id="Resolver.get_source_columns-436"><a href="#Resolver.get_source_columns-436"><span class="linenos">436</span></a> <span class="k">return</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span> </span></pre></div> diff --git a/docs/sqlglot/optimizer/qualify_tables.html b/docs/sqlglot/optimizer/qualify_tables.html index 87d9739..f0bbf01 100644 --- a/docs/sqlglot/optimizer/qualify_tables.html +++ b/docs/sqlglot/optimizer/qualify_tables.html @@ -92,41 +92,39 @@ </span><span id="L-34"><a href="#L-34"><span class="linenos">34</span></a> <span class="n">derived_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias_</span><span class="p">)))</span> </span><span id="L-35"><a href="#L-35"><span class="linenos">35</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">rename_source</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias_</span><span class="p">)</span> </span><span id="L-36"><a href="#L-36"><span class="linenos">36</span></a> -</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">for</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos">37</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> </span><span id="L-38"><a href="#L-38"><span class="linenos">38</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Identifier</span><span class="p">)</span> -</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">if</span> <span class="n">identifier</span><span class="p">:</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"db"</span><span class="p">):</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"db"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">))</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos">44</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"catalog"</span><span class="p">):</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos">45</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">))</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> -</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> <span class="n">alias</span><span class="p">(</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a> <span class="n">source</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="n">source</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">identifier</span> <span class="k">else</span> <span class="n">next_name</span><span class="p">(),</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> <span class="p">)</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="p">)</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> -</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="k">if</span> <span class="n">schema</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">ReadCSV</span><span class="p">):</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="k">with</span> <span class="n">csv_reader</span><span class="p">(</span><span class="n">source</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="k">as</span> <span class="n">reader</span><span class="p">:</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="n">header</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">add_table</span><span class="p">(</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="n">source</span><span class="p">,</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">columns</span><span class="p">)}</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="p">)</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">source</span><span class="o">.</span><span class="n">is_udtf</span><span class="p">:</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a> <span class="n">udtf</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">udtf</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">next_name</span><span class="p">())</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a> <span class="n">udtf</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> -</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="n">table_alias</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">next_name</span><span class="p">())</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos">70</span></a> -</span><span id="L-71"><a href="#L-71"><span class="linenos">71</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Identifier</span><span class="p">):</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos">40</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"db"</span><span class="p">):</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos">41</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"db"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">))</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos">42</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"catalog"</span><span class="p">):</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos">43</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">))</span> +</span><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="k">if</span> <span class="ow">not</span> <span class="n">source</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos">46</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos">47</span></a> <span class="n">alias</span><span class="p">(</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos">48</span></a> <span class="n">source</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos">49</span></a> <span class="n">name</span> <span class="k">if</span> <span class="n">name</span> <span class="k">else</span> <span class="n">next_name</span><span class="p">(),</span> +</span><span id="L-50"><a href="#L-50"><span class="linenos">50</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos">51</span></a> <span class="p">)</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos">52</span></a> <span class="p">)</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos">53</span></a> +</span><span id="L-54"><a href="#L-54"><span class="linenos">54</span></a> <span class="k">if</span> <span class="n">schema</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">ReadCSV</span><span class="p">):</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos">55</span></a> <span class="k">with</span> <span class="n">csv_reader</span><span class="p">(</span><span class="n">source</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="k">as</span> <span class="n">reader</span><span class="p">:</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos">56</span></a> <span class="n">header</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos">57</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos">58</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">add_table</span><span class="p">(</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos">59</span></a> <span class="n">source</span><span class="p">,</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">columns</span><span class="p">)}</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos">60</span></a> <span class="p">)</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos">61</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">source</span><span class="o">.</span><span class="n">is_udtf</span><span class="p">:</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos">62</span></a> <span class="n">udtf</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos">63</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">udtf</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">next_name</span><span class="p">())</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos">64</span></a> <span class="n">udtf</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos">65</span></a> +</span><span id="L-66"><a href="#L-66"><span class="linenos">66</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos">67</span></a> <span class="n">table_alias</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">next_name</span><span class="p">())</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos">68</span></a> +</span><span id="L-69"><a href="#L-69"><span class="linenos">69</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -171,41 +169,39 @@ </span><span id="qualify_tables-35"><a href="#qualify_tables-35"><span class="linenos">35</span></a> <span class="n">derived_table</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">alias_</span><span class="p">)))</span> </span><span id="qualify_tables-36"><a href="#qualify_tables-36"><span class="linenos">36</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">rename_source</span><span class="p">(</span><span class="kc">None</span><span class="p">,</span> <span class="n">alias_</span><span class="p">)</span> </span><span id="qualify_tables-37"><a href="#qualify_tables-37"><span class="linenos">37</span></a> -</span><span id="qualify_tables-38"><a href="#qualify_tables-38"><span class="linenos">38</span></a> <span class="k">for</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="qualify_tables-38"><a href="#qualify_tables-38"><span class="linenos">38</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> </span><span id="qualify_tables-39"><a href="#qualify_tables-39"><span class="linenos">39</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> -</span><span id="qualify_tables-40"><a href="#qualify_tables-40"><span class="linenos">40</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Identifier</span><span class="p">)</span> -</span><span id="qualify_tables-41"><a href="#qualify_tables-41"><span class="linenos">41</span></a> -</span><span id="qualify_tables-42"><a href="#qualify_tables-42"><span class="linenos">42</span></a> <span class="k">if</span> <span class="n">identifier</span><span class="p">:</span> -</span><span id="qualify_tables-43"><a href="#qualify_tables-43"><span class="linenos">43</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"db"</span><span class="p">):</span> -</span><span id="qualify_tables-44"><a href="#qualify_tables-44"><span class="linenos">44</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"db"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">))</span> -</span><span id="qualify_tables-45"><a href="#qualify_tables-45"><span class="linenos">45</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"catalog"</span><span class="p">):</span> -</span><span id="qualify_tables-46"><a href="#qualify_tables-46"><span class="linenos">46</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">))</span> -</span><span id="qualify_tables-47"><a href="#qualify_tables-47"><span class="linenos">47</span></a> -</span><span id="qualify_tables-48"><a href="#qualify_tables-48"><span class="linenos">48</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> -</span><span id="qualify_tables-49"><a href="#qualify_tables-49"><span class="linenos">49</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span> -</span><span id="qualify_tables-50"><a href="#qualify_tables-50"><span class="linenos">50</span></a> <span class="n">alias</span><span class="p">(</span> -</span><span id="qualify_tables-51"><a href="#qualify_tables-51"><span class="linenos">51</span></a> <span class="n">source</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> -</span><span id="qualify_tables-52"><a href="#qualify_tables-52"><span class="linenos">52</span></a> <span class="n">source</span><span class="o">.</span><span class="n">this</span> <span class="k">if</span> <span class="n">identifier</span> <span class="k">else</span> <span class="n">next_name</span><span class="p">(),</span> -</span><span id="qualify_tables-53"><a href="#qualify_tables-53"><span class="linenos">53</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="qualify_tables-54"><a href="#qualify_tables-54"><span class="linenos">54</span></a> <span class="p">)</span> -</span><span id="qualify_tables-55"><a href="#qualify_tables-55"><span class="linenos">55</span></a> <span class="p">)</span> -</span><span id="qualify_tables-56"><a href="#qualify_tables-56"><span class="linenos">56</span></a> -</span><span id="qualify_tables-57"><a href="#qualify_tables-57"><span class="linenos">57</span></a> <span class="k">if</span> <span class="n">schema</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">ReadCSV</span><span class="p">):</span> -</span><span id="qualify_tables-58"><a href="#qualify_tables-58"><span class="linenos">58</span></a> <span class="k">with</span> <span class="n">csv_reader</span><span class="p">(</span><span class="n">source</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="k">as</span> <span class="n">reader</span><span class="p">:</span> -</span><span id="qualify_tables-59"><a href="#qualify_tables-59"><span class="linenos">59</span></a> <span class="n">header</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> -</span><span id="qualify_tables-60"><a href="#qualify_tables-60"><span class="linenos">60</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> -</span><span id="qualify_tables-61"><a href="#qualify_tables-61"><span class="linenos">61</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">add_table</span><span class="p">(</span> -</span><span id="qualify_tables-62"><a href="#qualify_tables-62"><span class="linenos">62</span></a> <span class="n">source</span><span class="p">,</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">columns</span><span class="p">)}</span> -</span><span id="qualify_tables-63"><a href="#qualify_tables-63"><span class="linenos">63</span></a> <span class="p">)</span> -</span><span id="qualify_tables-64"><a href="#qualify_tables-64"><span class="linenos">64</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">source</span><span class="o">.</span><span class="n">is_udtf</span><span class="p">:</span> -</span><span id="qualify_tables-65"><a href="#qualify_tables-65"><span class="linenos">65</span></a> <span class="n">udtf</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span> -</span><span id="qualify_tables-66"><a href="#qualify_tables-66"><span class="linenos">66</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">udtf</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">next_name</span><span class="p">())</span> -</span><span id="qualify_tables-67"><a href="#qualify_tables-67"><span class="linenos">67</span></a> <span class="n">udtf</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> -</span><span id="qualify_tables-68"><a href="#qualify_tables-68"><span class="linenos">68</span></a> -</span><span id="qualify_tables-69"><a href="#qualify_tables-69"><span class="linenos">69</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> -</span><span id="qualify_tables-70"><a href="#qualify_tables-70"><span class="linenos">70</span></a> <span class="n">table_alias</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">next_name</span><span class="p">())</span> -</span><span id="qualify_tables-71"><a href="#qualify_tables-71"><span class="linenos">71</span></a> -</span><span id="qualify_tables-72"><a href="#qualify_tables-72"><span class="linenos">72</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="qualify_tables-40"><a href="#qualify_tables-40"><span class="linenos">40</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">Identifier</span><span class="p">):</span> +</span><span id="qualify_tables-41"><a href="#qualify_tables-41"><span class="linenos">41</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"db"</span><span class="p">):</span> +</span><span id="qualify_tables-42"><a href="#qualify_tables-42"><span class="linenos">42</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"db"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">db</span><span class="p">))</span> +</span><span id="qualify_tables-43"><a href="#qualify_tables-43"><span class="linenos">43</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</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">"catalog"</span><span class="p">):</span> +</span><span id="qualify_tables-44"><a href="#qualify_tables-44"><span class="linenos">44</span></a> <span class="n">source</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"catalog"</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</span><span class="n">catalog</span><span class="p">))</span> +</span><span id="qualify_tables-45"><a href="#qualify_tables-45"><span class="linenos">45</span></a> +</span><span id="qualify_tables-46"><a href="#qualify_tables-46"><span class="linenos">46</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">source</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> +</span><span id="qualify_tables-47"><a href="#qualify_tables-47"><span class="linenos">47</span></a> <span class="n">source</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span> +</span><span id="qualify_tables-48"><a href="#qualify_tables-48"><span class="linenos">48</span></a> <span class="n">alias</span><span class="p">(</span> +</span><span id="qualify_tables-49"><a href="#qualify_tables-49"><span class="linenos">49</span></a> <span class="n">source</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> +</span><span id="qualify_tables-50"><a href="#qualify_tables-50"><span class="linenos">50</span></a> <span class="n">name</span> <span class="k">if</span> <span class="n">name</span> <span class="k">else</span> <span class="n">next_name</span><span class="p">(),</span> +</span><span id="qualify_tables-51"><a href="#qualify_tables-51"><span class="linenos">51</span></a> <span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="qualify_tables-52"><a href="#qualify_tables-52"><span class="linenos">52</span></a> <span class="p">)</span> +</span><span id="qualify_tables-53"><a href="#qualify_tables-53"><span class="linenos">53</span></a> <span class="p">)</span> +</span><span id="qualify_tables-54"><a href="#qualify_tables-54"><span class="linenos">54</span></a> +</span><span id="qualify_tables-55"><a href="#qualify_tables-55"><span class="linenos">55</span></a> <span class="k">if</span> <span class="n">schema</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</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">ReadCSV</span><span class="p">):</span> +</span><span id="qualify_tables-56"><a href="#qualify_tables-56"><span class="linenos">56</span></a> <span class="k">with</span> <span class="n">csv_reader</span><span class="p">(</span><span class="n">source</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> <span class="k">as</span> <span class="n">reader</span><span class="p">:</span> +</span><span id="qualify_tables-57"><a href="#qualify_tables-57"><span class="linenos">57</span></a> <span class="n">header</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> +</span><span id="qualify_tables-58"><a href="#qualify_tables-58"><span class="linenos">58</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="nb">next</span><span class="p">(</span><span class="n">reader</span><span class="p">)</span> +</span><span id="qualify_tables-59"><a href="#qualify_tables-59"><span class="linenos">59</span></a> <span class="n">schema</span><span class="o">.</span><span class="n">add_table</span><span class="p">(</span> +</span><span id="qualify_tables-60"><a href="#qualify_tables-60"><span class="linenos">60</span></a> <span class="n">source</span><span class="p">,</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="nb">type</span><span class="p">(</span><span class="n">v</span><span class="p">)</span><span class="o">.</span><span class="vm">__name__</span> <span class="k">for</span> <span class="n">k</span><span class="p">,</span> <span class="n">v</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">header</span><span class="p">,</span> <span class="n">columns</span><span class="p">)}</span> +</span><span id="qualify_tables-61"><a href="#qualify_tables-61"><span class="linenos">61</span></a> <span class="p">)</span> +</span><span id="qualify_tables-62"><a href="#qualify_tables-62"><span class="linenos">62</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">source</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">source</span><span class="o">.</span><span class="n">is_udtf</span><span class="p">:</span> +</span><span id="qualify_tables-63"><a href="#qualify_tables-63"><span class="linenos">63</span></a> <span class="n">udtf</span> <span class="o">=</span> <span class="n">source</span><span class="o">.</span><span class="n">expression</span> +</span><span id="qualify_tables-64"><a href="#qualify_tables-64"><span class="linenos">64</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="n">udtf</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="ow">or</span> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">next_name</span><span class="p">())</span> +</span><span id="qualify_tables-65"><a href="#qualify_tables-65"><span class="linenos">65</span></a> <span class="n">udtf</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">table_alias</span><span class="p">)</span> +</span><span id="qualify_tables-66"><a href="#qualify_tables-66"><span class="linenos">66</span></a> +</span><span id="qualify_tables-67"><a href="#qualify_tables-67"><span class="linenos">67</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table_alias</span><span class="o">.</span><span class="n">name</span><span class="p">:</span> +</span><span id="qualify_tables-68"><a href="#qualify_tables-68"><span class="linenos">68</span></a> <span class="n">table_alias</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">next_name</span><span class="p">())</span> +</span><span id="qualify_tables-69"><a href="#qualify_tables-69"><span class="linenos">69</span></a> +</span><span id="qualify_tables-70"><a href="#qualify_tables-70"><span class="linenos">70</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> diff --git a/docs/sqlglot/optimizer/scope.html b/docs/sqlglot/optimizer/scope.html index 537c0a9..a1bc729 100644 --- a/docs/sqlglot/optimizer/scope.html +++ b/docs/sqlglot/optimizer/scope.html @@ -194,673 +194,678 @@ </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><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a><span class="kn">from</span> <span class="nn">sqlglot.errors</span> <span class="kn">import</span> <span class="n">OptimizeError</span> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> +</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a><span class="kn">from</span> <span class="nn">sqlglot.helper</span> <span class="kn">import</span> <span class="n">find_new_name</span> </span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</span></a> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a><span class="k">class</span> <span class="nc">ScopeType</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> <span class="n">ROOT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">SUBQUERY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">DERIVED_TABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">CTE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">UNION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">UDTF</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> +</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="k">class</span> <span class="nc">ScopeType</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span> +</span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> <span class="n">ROOT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> <span class="n">SUBQUERY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a> <span class="n">DERIVED_TABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a> <span class="n">CTE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> <span class="n">UNION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> <span class="n">UDTF</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> </span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a> -</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="k">class</span> <span class="nc">Scope</span><span class="p">:</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="sd"> Selection scope.</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="sd"> Attributes:</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> expression (exp.Select|exp.Union): Root expression of this scope</span> -</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd"> sources (dict[str, exp.Table|Scope]): Mapping of source name to either</span> -</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="sd"> a Table expression or another Scope instance. For example:</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="sd"> SELECT * FROM x {"x": Table(this="x")}</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> SELECT * FROM x AS y {"y": Table(this="x")}</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y {"y": Scope(...)}</span> -</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> lateral_sources (dict[str, exp.Table|Scope]): Sources from laterals</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> For example:</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> SELECT c FROM x LATERAL VIEW EXPLODE (a) AS c;</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="sd"> The LATERAL VIEW EXPLODE gets x as a source.</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> outer_column_list (list[str]): If this is a derived table or CTE, and the outer query</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> defines a column list of it's alias of this scope, this is that list of columns.</span> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="sd"> For example:</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y(col1, col2)</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="sd"> The inner query would have `["col1", "col2"]` for its `outer_column_list`</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="sd"> parent (Scope): Parent scope</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd"> scope_type (ScopeType): Type of this scope, relative to it's parent</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> subquery_scopes (list[Scope]): List of all child scopes for subqueries</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> cte_scopes (list[Scope]): List of all child scopes for CTEs</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> derived_table_scopes (list[Scope]): List of all child scopes for derived_tables</span> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> udtf_scopes (list[Scope]): List of all child scopes for user defined tabular functions</span> -</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> table_scopes (list[Scope]): derived_table_scopes + udtf_scopes, in the order that they're defined</span> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> union_scopes (list[Scope, Scope]): If this Scope is for a Union expression, this will be</span> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> a list of the left and right child scopes.</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> """</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span><span class="p">,</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="p">):</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span> <span class="o">=</span> <span class="n">sources</span> <span class="ow">or</span> <span class="p">{}</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">lateral_sources</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">lateral_sources</span> <span class="k">else</span> <span class="p">{}</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">outer_column_list</span> <span class="o">=</span> <span class="n">outer_column_list</span> <span class="ow">or</span> <span class="p">[]</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">=</span> <span class="n">scope_type</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">derived_table_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">def</span> <span class="nf">clear_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="k">def</span> <span class="nf">branch</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">scope_type</span><span class="p">,</span> <span class="n">chain_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="w"> </span><span class="sd">"""Branch from the current scope to a new, inner scope"""</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">return</span> <span class="n">Scope</span><span class="p">(</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">(),</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">sources</span><span class="o">=</span><span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">cte_sources</span><span class="p">,</span> <span class="o">**</span><span class="p">(</span><span class="n">chain_sources</span> <span class="ow">or</span> <span class="p">{})},</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="p">)</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="k">def</span> <span class="nf">_collect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">continue</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</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">Star</span><span class="p">):</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">):</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</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="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">def</span> <span class="nf">_ensure_collected</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span><span class="p">:</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collect</span><span class="p">()</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">return</span> <span class="n">walk_in_scope</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">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">)</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="sd"> Returns the first node in this scope which matches at least one of the specified types.</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a><span class="sd"> This does NOT traverse into subscopes.</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a><span class="sd"> Args:</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a><span class="sd"> Returns:</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="sd"> exp.Expression: the node which matches the criteria or None if no node matching</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="sd"> the criteria was found.</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a><span class="sd"> """</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> -</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="sd"> Returns a generator object which visits all nodes in this scope and only yields those that</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a><span class="sd"> match at least one of the specified expression types.</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> -</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a><span class="sd"> This does NOT traverse into subscopes.</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> -</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a><span class="sd"> Args:</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> -</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a><span class="sd"> Yields:</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a><span class="sd"> exp.Expression: nodes</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a><span class="sd"> """</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span> -</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="k">yield</span> <span class="n">expression</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> -</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old</span><span class="p">,</span> <span class="n">new</span><span class="p">):</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a><span class="sd"> Replace `old` with `new`.</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> -</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a><span class="sd"> This can be used instead of `exp.Expression.replace` to ensure the `Scope` is kept up-to-date.</span> -</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> -</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a><span class="sd"> Args:</span> -</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a><span class="sd"> old (exp.Expression): old node</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a><span class="sd"> new (exp.Expression): new node</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a><span class="sd"> """</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a> <span class="n">old</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> -</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> <span class="nd">@property</span> -</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="k">def</span> <span class="nf">tables</span><span class="p">(</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="w"> </span><span class="sd">"""</span> -</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="sd"> List of tables in this scope.</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a> -</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a><span class="sd"> Returns:</span> -</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a><span class="sd"> list[exp.Table]: tables</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a><span class="sd"> """</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> -</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> <span class="nd">@property</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a><span class="sd"> List of CTEs in this scope.</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a> -</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a><span class="sd"> Returns:</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a><span class="sd"> list[exp.CTE]: ctes</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="sd"> """</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> -</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> <span class="nd">@property</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="k">def</span> <span class="nf">derived_tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a><span class="sd"> List of derived tables in this scope.</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a> -</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a><span class="sd"> For example:</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a><span class="sd"> SELECT * FROM (SELECT ...) <- that's a derived table</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a> -</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a><span class="sd"> Returns:</span> -</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a><span class="sd"> list[exp.Subquery]: derived tables</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a><span class="sd"> """</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> -</span><span id="L-215"><a href="#L-215"><span class="linenos">215</span></a> <span class="nd">@property</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos">216</span></a> <span class="k">def</span> <span class="nf">udtfs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a><span class="sd"> List of "User Defined Tabular Functions" in this scope.</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a> -</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a><span class="sd"> Returns:</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a><span class="sd"> list[exp.UDTF]: UDTFs</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a><span class="sd"> """</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> -</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> <span class="nd">@property</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="k">def</span> <span class="nf">subqueries</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a><span class="sd"> List of subqueries in this scope.</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a> -</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a><span class="sd"> For example:</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a><span class="sd"> SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a> -</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a><span class="sd"> Returns:</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="sd"> list[exp.Subqueryable]: subqueries</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="sd"> """</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> -</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> <span class="nd">@property</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a><span class="sd"> List of columns in this scope.</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a> -</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a><span class="sd"> Returns:</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a><span class="sd"> list[exp.Column]: Column instances in this scope, plus any</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a><span class="sd"> Columns that reference this scope from correlated subqueries.</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a><span class="sd"> """</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> -</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> <span class="n">external_columns</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">column</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span><span class="p">)</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="p">]</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> -</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> <span class="n">named_selects</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">)</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> -</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> <span class="o">+</span> <span class="n">external_columns</span><span class="p">:</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">column</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">Qualify</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">)</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="ow">not</span> <span class="n">ancestor</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="c1"># Window functions can have an ORDER BY clause</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="o">.</span><span class="n">parent</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-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="ow">or</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">named_selects</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">))</span> -</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="p">):</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> -</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> -</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> -</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> -</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> <span class="nd">@property</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="k">def</span> <span class="nf">selected_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a><span class="sd"> Mapping of nodes and sources that are actually selected from in this scope.</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a> -</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a><span class="sd"> That is, all tables in a schema are selectable at any point. But a</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a><span class="sd"> table only becomes a selected source if it's included in a FROM or JOIN clause.</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a> -</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a><span class="sd"> Returns:</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a><span class="sd"> dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a><span class="sd"> """</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="n">referenced_names</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> -</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tables</span><span class="p">:</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">table</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">,</span> <span class="n">table</span><span class="p">))</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">derived_tables</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtfs</span><span class="p">):</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()))</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> -</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">referenced_names</span><span class="p">:</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="n">result</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">])</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> -</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="n">result</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a> +</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="k">class</span> <span class="nc">Scope</span><span class="p">:</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="sd"> Selection scope.</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a> +</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> Attributes:</span> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd"> expression (exp.Select|exp.Union): Root expression of this scope</span> +</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="sd"> sources (dict[str, exp.Table|Scope]): Mapping of source name to either</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="sd"> a Table expression or another Scope instance. For example:</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> SELECT * FROM x {"x": Table(this="x")}</span> +</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a><span class="sd"> SELECT * FROM x AS y {"y": Table(this="x")}</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y {"y": Scope(...)}</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a><span class="sd"> lateral_sources (dict[str, exp.Table|Scope]): Sources from laterals</span> +</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a><span class="sd"> For example:</span> +</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a><span class="sd"> SELECT c FROM x LATERAL VIEW EXPLODE (a) AS c;</span> +</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a><span class="sd"> The LATERAL VIEW EXPLODE gets x as a source.</span> +</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a><span class="sd"> outer_column_list (list[str]): If this is a derived table or CTE, and the outer query</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a><span class="sd"> defines a column list of it's alias of this scope, this is that list of columns.</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a><span class="sd"> For example:</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y(col1, col2)</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a><span class="sd"> The inner query would have `["col1", "col2"]` for its `outer_column_list`</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a><span class="sd"> parent (Scope): Parent scope</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a><span class="sd"> scope_type (ScopeType): Type of this scope, relative to it's parent</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a><span class="sd"> subquery_scopes (list[Scope]): List of all child scopes for subqueries</span> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a><span class="sd"> cte_scopes (list[Scope]): List of all child scopes for CTEs</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a><span class="sd"> derived_table_scopes (list[Scope]): List of all child scopes for derived_tables</span> +</span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a><span class="sd"> udtf_scopes (list[Scope]): List of all child scopes for user defined tabular functions</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="sd"> table_scopes (list[Scope]): derived_table_scopes + udtf_scopes, in the order that they're defined</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="sd"> union_scopes (list[Scope, Scope]): If this Scope is for a Union expression, this will be</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> a list of the left and right child scopes.</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="sd"> """</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> +</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> <span class="n">sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span><span class="p">,</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="p">):</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span> <span class="o">=</span> <span class="n">sources</span> <span class="ow">or</span> <span class="p">{}</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">lateral_sources</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">lateral_sources</span> <span class="k">else</span> <span class="p">{}</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">outer_column_list</span> <span class="o">=</span> <span class="n">outer_column_list</span> <span class="ow">or</span> <span class="p">[]</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">=</span> <span class="n">scope_type</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">derived_table_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="k">def</span> <span class="nf">clear_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="k">def</span> <span class="nf">branch</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">scope_type</span><span class="p">,</span> <span class="n">chain_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="w"> </span><span class="sd">"""Branch from the current scope to a new, inner scope"""</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="k">return</span> <span class="n">Scope</span><span class="p">(</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">(),</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="n">sources</span><span class="o">=</span><span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">cte_sources</span><span class="p">,</span> <span class="o">**</span><span class="p">(</span><span class="n">chain_sources</span> <span class="ow">or</span> <span class="p">{})},</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="p">)</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="k">def</span> <span class="nf">_collect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="p">[]</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">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="k">continue</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</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">Star</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">_raw_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos">114</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">):</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><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">_derived_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">def</span> <span class="nf">_ensure_collected</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span><span class="p">:</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collect</span><span class="p">()</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">return</span> <span class="n">walk_in_scope</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">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">)</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a><span class="sd"> Returns the first node in this scope which matches at least one of the specified types.</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a><span class="sd"> This does NOT traverse into subscopes.</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><span class="sd"> Args:</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a><span class="sd"> Returns:</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="sd"> exp.Expression: the node which matches the criteria or None if no node matching</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a><span class="sd"> the criteria was found.</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a><span class="sd"> """</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a><span class="sd"> Returns a generator object which visits all nodes in this scope and only yields those that</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a><span class="sd"> match at least one of the specified expression types.</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a><span class="sd"> This does NOT traverse into subscopes.</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a><span class="sd"> Args:</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a><span class="sd"> Yields:</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a><span class="sd"> exp.Expression: nodes</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a><span class="sd"> """</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a> <span class="k">yield</span> <span class="n">expression</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old</span><span class="p">,</span> <span class="n">new</span><span class="p">):</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a><span class="sd"> Replace `old` with `new`.</span> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a><span class="sd"> This can be used instead of `exp.Expression.replace` to ensure the `Scope` is kept up-to-date.</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a><span class="sd"> Args:</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a><span class="sd"> old (exp.Expression): old node</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a><span class="sd"> new (exp.Expression): new node</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a><span class="sd"> """</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos">177</span></a> <span class="n">old</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos">179</span></a> +</span><span id="L-180"><a href="#L-180"><span class="linenos">180</span></a> <span class="nd">@property</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos">181</span></a> <span class="k">def</span> <span class="nf">tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos">182</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos">183</span></a><span class="sd"> List of tables in this scope.</span> +</span><span id="L-184"><a href="#L-184"><span class="linenos">184</span></a> +</span><span id="L-185"><a href="#L-185"><span class="linenos">185</span></a><span class="sd"> Returns:</span> +</span><span id="L-186"><a href="#L-186"><span class="linenos">186</span></a><span class="sd"> list[exp.Table]: tables</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos">187</span></a><span class="sd"> """</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos">188</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos">189</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos">190</span></a> +</span><span id="L-191"><a href="#L-191"><span class="linenos">191</span></a> <span class="nd">@property</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos">192</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos">193</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos">194</span></a><span class="sd"> List of CTEs in this scope.</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos">195</span></a> +</span><span id="L-196"><a href="#L-196"><span class="linenos">196</span></a><span class="sd"> Returns:</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos">197</span></a><span class="sd"> list[exp.CTE]: ctes</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos">198</span></a><span class="sd"> """</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos">199</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos">200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos">201</span></a> +</span><span id="L-202"><a href="#L-202"><span class="linenos">202</span></a> <span class="nd">@property</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos">203</span></a> <span class="k">def</span> <span class="nf">derived_tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos">204</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos">205</span></a><span class="sd"> List of derived tables in this scope.</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos">206</span></a> +</span><span id="L-207"><a href="#L-207"><span class="linenos">207</span></a><span class="sd"> For example:</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos">208</span></a><span class="sd"> SELECT * FROM (SELECT ...) <- that's a derived table</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos">209</span></a> +</span><span id="L-210"><a href="#L-210"><span class="linenos">210</span></a><span class="sd"> Returns:</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos">211</span></a><span class="sd"> list[exp.Subquery]: derived tables</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos">212</span></a><span class="sd"> """</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos">213</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos">214</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</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="nd">@property</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos">217</span></a> <span class="k">def</span> <span class="nf">udtfs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos">218</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos">219</span></a><span class="sd"> List of "User Defined Tabular Functions" in this scope.</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos">220</span></a> +</span><span id="L-221"><a href="#L-221"><span class="linenos">221</span></a><span class="sd"> Returns:</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos">222</span></a><span class="sd"> list[exp.UDTF]: UDTFs</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos">223</span></a><span class="sd"> """</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos">224</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos">225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos">226</span></a> +</span><span id="L-227"><a href="#L-227"><span class="linenos">227</span></a> <span class="nd">@property</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos">228</span></a> <span class="k">def</span> <span class="nf">subqueries</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos">229</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos">230</span></a><span class="sd"> List of subqueries in this scope.</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos">231</span></a> +</span><span id="L-232"><a href="#L-232"><span class="linenos">232</span></a><span class="sd"> For example:</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos">233</span></a><span class="sd"> SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos">234</span></a> +</span><span id="L-235"><a href="#L-235"><span class="linenos">235</span></a><span class="sd"> Returns:</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos">236</span></a><span class="sd"> list[exp.Subqueryable]: subqueries</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos">237</span></a><span class="sd"> """</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos">238</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos">239</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos">240</span></a> +</span><span id="L-241"><a href="#L-241"><span class="linenos">241</span></a> <span class="nd">@property</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos">242</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos">243</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos">244</span></a><span class="sd"> List of columns in this scope.</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos">245</span></a> +</span><span id="L-246"><a href="#L-246"><span class="linenos">246</span></a><span class="sd"> Returns:</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos">247</span></a><span class="sd"> list[exp.Column]: Column instances in this scope, plus any</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos">248</span></a><span class="sd"> Columns that reference this scope from correlated subqueries.</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos">249</span></a><span class="sd"> """</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos">250</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos">251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos">252</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos">253</span></a> +</span><span id="L-254"><a href="#L-254"><span class="linenos">254</span></a> <span class="n">external_columns</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos">255</span></a> <span class="n">column</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos">256</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span><span class="p">)</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos">257</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> +</span><span id="L-258"><a href="#L-258"><span class="linenos">258</span></a> <span class="p">]</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos">259</span></a> +</span><span id="L-260"><a href="#L-260"><span class="linenos">260</span></a> <span class="n">named_selects</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">)</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos">261</span></a> +</span><span id="L-262"><a href="#L-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos">263</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> <span class="o">+</span> <span class="n">external_columns</span><span class="p">:</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos">264</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">column</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">Qualify</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">)</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos">265</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos">266</span></a> <span class="ow">not</span> <span class="n">ancestor</span> +</span><span id="L-267"><a href="#L-267"><span class="linenos">267</span></a> <span class="c1"># Window functions can have an ORDER BY clause</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos">268</span></a> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="o">.</span><span class="n">parent</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-269"><a href="#L-269"><span class="linenos">269</span></a> <span class="ow">or</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos">270</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">named_selects</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">))</span> +</span><span id="L-271"><a href="#L-271"><span class="linenos">271</span></a> <span class="p">):</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos">272</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos">273</span></a> +</span><span id="L-274"><a href="#L-274"><span class="linenos">274</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos">275</span></a> +</span><span id="L-276"><a href="#L-276"><span class="linenos">276</span></a> <span class="nd">@property</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos">277</span></a> <span class="k">def</span> <span class="nf">selected_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos">278</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos">279</span></a><span class="sd"> Mapping of nodes and sources that are actually selected from in this scope.</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos">280</span></a> +</span><span id="L-281"><a href="#L-281"><span class="linenos">281</span></a><span class="sd"> That is, all tables in a schema are selectable at any point. But a</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos">282</span></a><span class="sd"> table only becomes a selected source if it's included in a FROM or JOIN clause.</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos">283</span></a> +</span><span id="L-284"><a href="#L-284"><span class="linenos">284</span></a><span class="sd"> Returns:</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos">285</span></a><span class="sd"> dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos">286</span></a><span class="sd"> """</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos">287</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos">288</span></a> <span class="n">referenced_names</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos">289</span></a> +</span><span id="L-290"><a href="#L-290"><span class="linenos">290</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tables</span><span class="p">:</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos">291</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">table</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">,</span> <span class="n">table</span><span class="p">))</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos">292</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">derived_tables</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtfs</span><span class="p">):</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos">293</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()))</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos">294</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos">295</span></a> +</span><span id="L-296"><a href="#L-296"><span class="linenos">296</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">referenced_names</span><span class="p">:</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos">297</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">result</span><span class="p">:</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos">298</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Alias already used: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos">299</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos">300</span></a> <span class="n">result</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">])</span> </span><span id="L-301"><a href="#L-301"><span class="linenos">301</span></a> -</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="nd">@property</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="k">def</span> <span class="nf">cte_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a><span class="sd"> Sources that are CTEs.</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> -</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a><span class="sd"> Returns:</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a><span class="sd"> dict[str, Scope]: Mapping of source alias to Scope</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a><span class="sd"> """</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a> <span class="k">return</span> <span class="p">{</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">scope</span> -</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a> <span class="k">for</span> <span class="n">alias</span><span class="p">,</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_cte</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="p">}</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> -</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="nd">@property</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a><span class="sd"> Select expressions of this scope.</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> -</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a><span class="sd"> For example, for the following expression:</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a><span class="sd"> SELECT 1 as a, 2 as b FROM x</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos">302</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="n">result</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos">303</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> +</span><span id="L-304"><a href="#L-304"><span class="linenos">304</span></a> +</span><span id="L-305"><a href="#L-305"><span class="linenos">305</span></a> <span class="nd">@property</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos">306</span></a> <span class="k">def</span> <span class="nf">cte_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos">307</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos">308</span></a><span class="sd"> Sources that are CTEs.</span> +</span><span id="L-309"><a href="#L-309"><span class="linenos">309</span></a> +</span><span id="L-310"><a href="#L-310"><span class="linenos">310</span></a><span class="sd"> Returns:</span> +</span><span id="L-311"><a href="#L-311"><span class="linenos">311</span></a><span class="sd"> dict[str, Scope]: Mapping of source alias to Scope</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos">312</span></a><span class="sd"> """</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos">313</span></a> <span class="k">return</span> <span class="p">{</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos">314</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">scope</span> +</span><span id="L-315"><a href="#L-315"><span class="linenos">315</span></a> <span class="k">for</span> <span class="n">alias</span><span class="p">,</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos">316</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_cte</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos">317</span></a> <span class="p">}</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos">318</span></a> +</span><span id="L-319"><a href="#L-319"><span class="linenos">319</span></a> <span class="nd">@property</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos">320</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos">321</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-322"><a href="#L-322"><span class="linenos">322</span></a><span class="sd"> Select expressions of this scope.</span> </span><span id="L-323"><a href="#L-323"><span class="linenos">323</span></a> -</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a><span class="sd"> The outputs are the "1 as a" and "2 as b" expressions.</span> -</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a> -</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a><span class="sd"> Returns:</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a><span class="sd"> list[exp.Expression]: expressions</span> -</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a><span class="sd"> """</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span><span class="p">):</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">selects</span> -</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> -</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="nd">@property</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="k">def</span> <span class="nf">external_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a><span class="sd"> Columns that appear to reference sources in outer scopes.</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> -</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a><span class="sd"> Returns:</span> -</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a><span class="sd"> list[exp.Column]: Column instances that don't reference</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a><span class="sd"> sources in the current scope.</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a><span class="sd"> """</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a> <span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selected_sources</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="p">]</span> -</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> -</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> -</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="nd">@property</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">def</span> <span class="nf">unqualified_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a><span class="sd"> Unqualified columns in the current scope.</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> -</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a><span class="sd"> Returns:</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a><span class="sd"> list[exp.Column]: Unqualified columns</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a><span class="sd"> """</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span><span class="p">]</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a> -</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a> <span class="nd">@property</span> -</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">def</span> <span class="nf">join_hints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a><span class="sd"> Hints that exist in the scope that reference tables</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> -</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a><span class="sd"> Returns:</span> -</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a><span class="sd"> list[exp.JoinHint]: Join hints that are referenced within the scope</span> -</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a><span class="sd"> """</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> -</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="k">def</span> <span class="nf">source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_name</span><span class="p">):</span> -</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a><span class="sd"> Get all columns in the current scope for a particular source.</span> -</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> -</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a><span class="sd"> Args:</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a><span class="sd"> source_name (str): Name of the source</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a><span class="sd"> Returns:</span> -</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a><span class="sd"> list[exp.Column]: Column instances that reference `source_name`</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a><span class="sd"> """</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="o">==</span> <span class="n">source_name</span><span class="p">]</span> -</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a> -</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a> <span class="nd">@property</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="k">def</span> <span class="nf">is_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a subquery"""</span> -</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">SUBQUERY</span> -</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> -</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a> <span class="nd">@property</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="k">def</span> <span class="nf">is_derived_table</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a derived table"""</span> -</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">DERIVED_TABLE</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> -</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a> <span class="nd">@property</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="k">def</span> <span class="nf">is_union</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-393"><a href="#L-393"><span class="linenos">393</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a union"""</span> -</span><span id="L-394"><a href="#L-394"><span class="linenos">394</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span> -</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> -</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a> <span class="nd">@property</span> -</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">def</span> <span class="nf">is_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a common table expression"""</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span> -</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> -</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a> <span class="nd">@property</span> -</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="k">def</span> <span class="nf">is_root</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-403"><a href="#L-403"><span class="linenos">403</span></a><span class="w"> </span><span class="sd">"""Determine if this is the root scope"""</span> -</span><span id="L-404"><a href="#L-404"><span class="linenos">404</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span> -</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> -</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a> <span class="nd">@property</span> -</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">def</span> <span class="nf">is_udtf</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a UDTF (User Defined Table Function)"""</span> -</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UDTF</span> -</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> -</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a> <span class="nd">@property</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">def</span> <span class="nf">is_correlated_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-413"><a href="#L-413"><span class="linenos">413</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a correlated subquery"""</span> -</span><span id="L-414"><a href="#L-414"><span class="linenos">414</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">is_subquery</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">external_columns</span><span class="p">)</span> -</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> -</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">rename_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_name</span><span class="p">,</span> <span class="n">new_name</span><span class="p">):</span> -</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a><span class="w"> </span><span class="sd">"""Rename a source in this scope"""</span> -</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">old_name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">new_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">columns</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a> -</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="k">def</span> <span class="nf">add_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="p">):</span> -</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a><span class="w"> </span><span class="sd">"""Add a source to this scope"""</span> -</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">source</span> -</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a> -</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="k">def</span> <span class="nf">remove_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> -</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a><span class="w"> </span><span class="sd">"""Remove a source from this scope"""</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a> -</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"Scope<</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span><span class="si">}</span><span class="s2">>"</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos">324</span></a><span class="sd"> For example, for the following expression:</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos">325</span></a><span class="sd"> SELECT 1 as a, 2 as b FROM x</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos">326</span></a> +</span><span id="L-327"><a href="#L-327"><span class="linenos">327</span></a><span class="sd"> The outputs are the "1 as a" and "2 as b" expressions.</span> +</span><span id="L-328"><a href="#L-328"><span class="linenos">328</span></a> +</span><span id="L-329"><a href="#L-329"><span class="linenos">329</span></a><span class="sd"> Returns:</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos">330</span></a><span class="sd"> list[exp.Expression]: expressions</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos">331</span></a><span class="sd"> """</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos">332</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span><span class="p">):</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos">333</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos">334</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">selects</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos">335</span></a> +</span><span id="L-336"><a href="#L-336"><span class="linenos">336</span></a> <span class="nd">@property</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos">337</span></a> <span class="k">def</span> <span class="nf">external_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos">338</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos">339</span></a><span class="sd"> Columns that appear to reference sources in outer scopes.</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos">340</span></a> +</span><span id="L-341"><a href="#L-341"><span class="linenos">341</span></a><span class="sd"> Returns:</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos">342</span></a><span class="sd"> list[exp.Column]: Column instances that don't reference</span> +</span><span id="L-343"><a href="#L-343"><span class="linenos">343</span></a><span class="sd"> sources in the current scope.</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos">344</span></a><span class="sd"> """</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos">345</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos">346</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="L-347"><a href="#L-347"><span class="linenos">347</span></a> <span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selected_sources</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos">348</span></a> <span class="p">]</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos">349</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> +</span><span id="L-350"><a href="#L-350"><span class="linenos">350</span></a> +</span><span id="L-351"><a href="#L-351"><span class="linenos">351</span></a> <span class="nd">@property</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos">352</span></a> <span class="k">def</span> <span class="nf">unqualified_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-353"><a href="#L-353"><span class="linenos">353</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-354"><a href="#L-354"><span class="linenos">354</span></a><span class="sd"> Unqualified columns in the current scope.</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos">355</span></a> +</span><span id="L-356"><a href="#L-356"><span class="linenos">356</span></a><span class="sd"> Returns:</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos">357</span></a><span class="sd"> list[exp.Column]: Unqualified columns</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos">358</span></a><span class="sd"> """</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos">359</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span><span class="p">]</span> +</span><span id="L-360"><a href="#L-360"><span class="linenos">360</span></a> +</span><span id="L-361"><a href="#L-361"><span class="linenos">361</span></a> <span class="nd">@property</span> +</span><span id="L-362"><a href="#L-362"><span class="linenos">362</span></a> <span class="k">def</span> <span class="nf">join_hints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos">363</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-364"><a href="#L-364"><span class="linenos">364</span></a><span class="sd"> Hints that exist in the scope that reference tables</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos">365</span></a> +</span><span id="L-366"><a href="#L-366"><span class="linenos">366</span></a><span class="sd"> Returns:</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos">367</span></a><span class="sd"> list[exp.JoinHint]: Join hints that are referenced within the scope</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos">368</span></a><span class="sd"> """</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos">369</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-370"><a href="#L-370"><span class="linenos">370</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos">371</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> +</span><span id="L-372"><a href="#L-372"><span class="linenos">372</span></a> +</span><span id="L-373"><a href="#L-373"><span class="linenos">373</span></a> <span class="k">def</span> <span class="nf">source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_name</span><span class="p">):</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos">374</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos">375</span></a><span class="sd"> Get all columns in the current scope for a particular source.</span> +</span><span id="L-376"><a href="#L-376"><span class="linenos">376</span></a> +</span><span id="L-377"><a href="#L-377"><span class="linenos">377</span></a><span class="sd"> Args:</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos">378</span></a><span class="sd"> source_name (str): Name of the source</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos">379</span></a><span class="sd"> Returns:</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos">380</span></a><span class="sd"> list[exp.Column]: Column instances that reference `source_name`</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos">381</span></a><span class="sd"> """</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos">382</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="o">==</span> <span class="n">source_name</span><span class="p">]</span> +</span><span id="L-383"><a href="#L-383"><span class="linenos">383</span></a> +</span><span id="L-384"><a href="#L-384"><span class="linenos">384</span></a> <span class="nd">@property</span> +</span><span id="L-385"><a href="#L-385"><span class="linenos">385</span></a> <span class="k">def</span> <span class="nf">is_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos">386</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a subquery"""</span> +</span><span id="L-387"><a href="#L-387"><span class="linenos">387</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">SUBQUERY</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos">388</span></a> +</span><span id="L-389"><a href="#L-389"><span class="linenos">389</span></a> <span class="nd">@property</span> +</span><span id="L-390"><a href="#L-390"><span class="linenos">390</span></a> <span class="k">def</span> <span class="nf">is_derived_table</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos">391</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a derived table"""</span> +</span><span id="L-392"><a href="#L-392"><span class="linenos">392</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">DERIVED_TABLE</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="nd">@property</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos">395</span></a> <span class="k">def</span> <span class="nf">is_union</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-396"><a href="#L-396"><span class="linenos">396</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a union"""</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos">397</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos">398</span></a> +</span><span id="L-399"><a href="#L-399"><span class="linenos">399</span></a> <span class="nd">@property</span> +</span><span id="L-400"><a href="#L-400"><span class="linenos">400</span></a> <span class="k">def</span> <span class="nf">is_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-401"><a href="#L-401"><span class="linenos">401</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a common table expression"""</span> +</span><span id="L-402"><a href="#L-402"><span class="linenos">402</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</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="nd">@property</span> +</span><span id="L-405"><a href="#L-405"><span class="linenos">405</span></a> <span class="k">def</span> <span class="nf">is_root</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-406"><a href="#L-406"><span class="linenos">406</span></a><span class="w"> </span><span class="sd">"""Determine if this is the root scope"""</span> +</span><span id="L-407"><a href="#L-407"><span class="linenos">407</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos">408</span></a> +</span><span id="L-409"><a href="#L-409"><span class="linenos">409</span></a> <span class="nd">@property</span> +</span><span id="L-410"><a href="#L-410"><span class="linenos">410</span></a> <span class="k">def</span> <span class="nf">is_udtf</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-411"><a href="#L-411"><span class="linenos">411</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a UDTF (User Defined Table Function)"""</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos">412</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UDTF</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="nd">@property</span> +</span><span id="L-415"><a href="#L-415"><span class="linenos">415</span></a> <span class="k">def</span> <span class="nf">is_correlated_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos">416</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a correlated subquery"""</span> +</span><span id="L-417"><a href="#L-417"><span class="linenos">417</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">is_subquery</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">external_columns</span><span class="p">)</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos">418</span></a> +</span><span id="L-419"><a href="#L-419"><span class="linenos">419</span></a> <span class="k">def</span> <span class="nf">rename_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_name</span><span class="p">,</span> <span class="n">new_name</span><span class="p">):</span> +</span><span id="L-420"><a href="#L-420"><span class="linenos">420</span></a><span class="w"> </span><span class="sd">"""Rename a source in this scope"""</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos">421</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">old_name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos">422</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">new_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">columns</span> +</span><span id="L-423"><a href="#L-423"><span class="linenos">423</span></a> +</span><span id="L-424"><a href="#L-424"><span class="linenos">424</span></a> <span class="k">def</span> <span class="nf">add_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="p">):</span> +</span><span id="L-425"><a href="#L-425"><span class="linenos">425</span></a><span class="w"> </span><span class="sd">"""Add a source to this scope"""</span> +</span><span id="L-426"><a href="#L-426"><span class="linenos">426</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">source</span> +</span><span id="L-427"><a href="#L-427"><span class="linenos">427</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="L-428"><a href="#L-428"><span class="linenos">428</span></a> +</span><span id="L-429"><a href="#L-429"><span class="linenos">429</span></a> <span class="k">def</span> <span class="nf">remove_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> +</span><span id="L-430"><a href="#L-430"><span class="linenos">430</span></a><span class="w"> </span><span class="sd">"""Remove a source from this scope"""</span> +</span><span id="L-431"><a href="#L-431"><span class="linenos">431</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="L-432"><a href="#L-432"><span class="linenos">432</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span><span id="L-433"><a href="#L-433"><span class="linenos">433</span></a> -</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="k">def</span> <span class="nf">traverse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a><span class="sd"> Traverse the scope tree from this node.</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="sd"> Yields:</span> -</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a><span class="sd"> Scope: scope instances in depth-first-search post-order</span> -</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a><span class="sd"> """</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span> -</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> -</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a> <span class="p">):</span> -</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="k">yield from</span> <span class="n">child_scope</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> -</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="k">yield</span> <span class="bp">self</span> -</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> -</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="k">def</span> <span class="nf">ref_count</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a><span class="sd"> Count the number of times each scope in this tree is referenced.</span> -</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a> -</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a><span class="sd"> Returns:</span> -</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a><span class="sd"> dict[int, int]: Mapping of Scope instance ID to reference count</span> -</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a><span class="sd"> """</span> -</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a> <span class="n">scope_ref_count</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> -</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a> -</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span> -</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> -</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> <span class="n">scope_ref_count</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">source</span><span class="p">)]</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> -</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> <span class="k">return</span> <span class="n">scope_ref_count</span> -</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> +</span><span id="L-434"><a href="#L-434"><span class="linenos">434</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-435"><a href="#L-435"><span class="linenos">435</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"Scope<</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span><span class="si">}</span><span class="s2">>"</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos">436</span></a> +</span><span id="L-437"><a href="#L-437"><span class="linenos">437</span></a> <span class="k">def</span> <span class="nf">traverse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-438"><a href="#L-438"><span class="linenos">438</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-439"><a href="#L-439"><span class="linenos">439</span></a><span class="sd"> Traverse the scope tree from this node.</span> +</span><span id="L-440"><a href="#L-440"><span class="linenos">440</span></a> +</span><span id="L-441"><a href="#L-441"><span class="linenos">441</span></a><span class="sd"> Yields:</span> +</span><span id="L-442"><a href="#L-442"><span class="linenos">442</span></a><span class="sd"> Scope: scope instances in depth-first-search post-order</span> +</span><span id="L-443"><a href="#L-443"><span class="linenos">443</span></a><span class="sd"> """</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos">444</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span> +</span><span id="L-445"><a href="#L-445"><span class="linenos">445</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> +</span><span id="L-446"><a href="#L-446"><span class="linenos">446</span></a> <span class="p">):</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos">447</span></a> <span class="k">yield from</span> <span class="n">child_scope</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> +</span><span id="L-448"><a href="#L-448"><span class="linenos">448</span></a> <span class="k">yield</span> <span class="bp">self</span> +</span><span id="L-449"><a href="#L-449"><span class="linenos">449</span></a> +</span><span id="L-450"><a href="#L-450"><span class="linenos">450</span></a> <span class="k">def</span> <span class="nf">ref_count</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-451"><a href="#L-451"><span class="linenos">451</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-452"><a href="#L-452"><span class="linenos">452</span></a><span class="sd"> Count the number of times each scope in this tree is referenced.</span> +</span><span id="L-453"><a href="#L-453"><span class="linenos">453</span></a> +</span><span id="L-454"><a href="#L-454"><span class="linenos">454</span></a><span class="sd"> Returns:</span> +</span><span id="L-455"><a href="#L-455"><span class="linenos">455</span></a><span class="sd"> dict[int, int]: Mapping of Scope instance ID to reference count</span> +</span><span id="L-456"><a href="#L-456"><span class="linenos">456</span></a><span class="sd"> """</span> +</span><span id="L-457"><a href="#L-457"><span class="linenos">457</span></a> <span class="n">scope_ref_count</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> +</span><span id="L-458"><a href="#L-458"><span class="linenos">458</span></a> +</span><span id="L-459"><a href="#L-459"><span class="linenos">459</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span> +</span><span id="L-460"><a href="#L-460"><span class="linenos">460</span></a> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos">461</span></a> <span class="n">scope_ref_count</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">source</span><span class="p">)]</span> <span class="o">+=</span> <span class="mi">1</span> </span><span id="L-462"><a href="#L-462"><span class="linenos">462</span></a> -</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a><span class="k">def</span> <span class="nf">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a><span class="sd"> Traverse an expression by it's "scopes".</span> -</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a> -</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a><span class="sd"> "Scope" represents the current context of a Select statement.</span> -</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a> -</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a><span class="sd"> This is helpful for optimizing queries, where we need more information than</span> -</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a><span class="sd"> the expression tree itself. For example, we might care about the source</span> -</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a><span class="sd"> names within a subquery. Returns a list because a generator could result in</span> -</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a><span class="sd"> incomplete properties which is confusing.</span> -</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a> -</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a><span class="sd"> Examples:</span> -</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-476"><a href="#L-476"><span class="linenos">476</span></a><span class="sd"> >>> expression = sqlglot.parse_one("SELECT a FROM (SELECT a FROM x) AS y")</span> -</span><span id="L-477"><a href="#L-477"><span class="linenos">477</span></a><span class="sd"> >>> scopes = traverse_scope(expression)</span> -</span><span id="L-478"><a href="#L-478"><span class="linenos">478</span></a><span class="sd"> >>> scopes[0].expression.sql(), list(scopes[0].sources)</span> -</span><span id="L-479"><a href="#L-479"><span class="linenos">479</span></a><span class="sd"> ('SELECT a FROM x', ['x'])</span> -</span><span id="L-480"><a href="#L-480"><span class="linenos">480</span></a><span class="sd"> >>> scopes[1].expression.sql(), list(scopes[1].sources)</span> -</span><span id="L-481"><a href="#L-481"><span class="linenos">481</span></a><span class="sd"> ('SELECT a FROM (SELECT a FROM x) AS y', ['y'])</span> -</span><span id="L-482"><a href="#L-482"><span class="linenos">482</span></a> -</span><span id="L-483"><a href="#L-483"><span class="linenos">483</span></a><span class="sd"> Args:</span> -</span><span id="L-484"><a href="#L-484"><span class="linenos">484</span></a><span class="sd"> expression (exp.Expression): expression to traverse</span> -</span><span id="L-485"><a href="#L-485"><span class="linenos">485</span></a><span class="sd"> Returns:</span> -</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a><span class="sd"> list[Scope]: scope instances</span> -</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a><span class="sd"> """</span> -</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">_traverse_scope</span><span class="p">(</span><span class="n">Scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)))</span> -</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a> -</span><span id="L-490"><a href="#L-490"><span class="linenos">490</span></a> -</span><span id="L-491"><a href="#L-491"><span class="linenos">491</span></a><span class="k">def</span> <span class="nf">build_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="L-492"><a href="#L-492"><span class="linenos">492</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-493"><a href="#L-493"><span class="linenos">493</span></a><span class="sd"> Build a scope tree.</span> -</span><span id="L-494"><a href="#L-494"><span class="linenos">494</span></a> -</span><span id="L-495"><a href="#L-495"><span class="linenos">495</span></a><span class="sd"> Args:</span> -</span><span id="L-496"><a href="#L-496"><span class="linenos">496</span></a><span class="sd"> expression (exp.Expression): expression to build the scope tree for</span> -</span><span id="L-497"><a href="#L-497"><span class="linenos">497</span></a><span class="sd"> Returns:</span> -</span><span id="L-498"><a href="#L-498"><span class="linenos">498</span></a><span class="sd"> Scope: root scope</span> -</span><span id="L-499"><a href="#L-499"><span class="linenos">499</span></a><span class="sd"> """</span> -</span><span id="L-500"><a href="#L-500"><span class="linenos">500</span></a> <span class="k">return</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> -</span><span id="L-501"><a href="#L-501"><span class="linenos">501</span></a> -</span><span id="L-502"><a href="#L-502"><span class="linenos">502</span></a> -</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a><span class="k">def</span> <span class="nf">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-504"><a href="#L-504"><span class="linenos">504</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> -</span><span id="L-505"><a href="#L-505"><span class="linenos">505</span></a> <span class="k">yield from</span> <span class="n">_traverse_select</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Union</span><span class="p">):</span> -</span><span id="L-507"><a href="#L-507"><span class="linenos">507</span></a> <span class="k">yield from</span> <span class="n">_traverse_union</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-508"><a href="#L-508"><span class="linenos">508</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Subquery</span><span class="p">):</span> -</span><span id="L-509"><a href="#L-509"><span class="linenos">509</span></a> <span class="k">yield from</span> <span class="n">_traverse_subqueries</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-510"><a href="#L-510"><span class="linenos">510</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">UDTF</span><span class="p">):</span> -</span><span id="L-511"><a href="#L-511"><span class="linenos">511</span></a> <span class="k">pass</span> -</span><span id="L-512"><a href="#L-512"><span class="linenos">512</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-513"><a href="#L-513"><span class="linenos">513</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected expression type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">scope</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-514"><a href="#L-514"><span class="linenos">514</span></a> <span class="k">yield</span> <span class="n">scope</span> -</span><span id="L-515"><a href="#L-515"><span class="linenos">515</span></a> -</span><span id="L-516"><a href="#L-516"><span class="linenos">516</span></a> -</span><span id="L-517"><a href="#L-517"><span class="linenos">517</span></a><span class="k">def</span> <span class="nf">_traverse_select</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-518"><a href="#L-518"><span class="linenos">518</span></a> <span class="k">yield from</span> <span class="n">_traverse_ctes</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-519"><a href="#L-519"><span class="linenos">519</span></a> <span class="k">yield from</span> <span class="n">_traverse_tables</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-520"><a href="#L-520"><span class="linenos">520</span></a> <span class="k">yield from</span> <span class="n">_traverse_subqueries</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> -</span><span id="L-521"><a href="#L-521"><span class="linenos">521</span></a> -</span><span id="L-522"><a href="#L-522"><span class="linenos">522</span></a> -</span><span id="L-523"><a href="#L-523"><span class="linenos">523</span></a><span class="k">def</span> <span class="nf">_traverse_union</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-524"><a href="#L-524"><span class="linenos">524</span></a> <span class="k">yield from</span> <span class="n">_traverse_ctes</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-463"><a href="#L-463"><span class="linenos">463</span></a> <span class="k">return</span> <span class="n">scope_ref_count</span> +</span><span id="L-464"><a href="#L-464"><span class="linenos">464</span></a> +</span><span id="L-465"><a href="#L-465"><span class="linenos">465</span></a> +</span><span id="L-466"><a href="#L-466"><span class="linenos">466</span></a><span class="k">def</span> <span class="nf">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-467"><a href="#L-467"><span class="linenos">467</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-468"><a href="#L-468"><span class="linenos">468</span></a><span class="sd"> Traverse an expression by it's "scopes".</span> +</span><span id="L-469"><a href="#L-469"><span class="linenos">469</span></a> +</span><span id="L-470"><a href="#L-470"><span class="linenos">470</span></a><span class="sd"> "Scope" represents the current context of a Select statement.</span> +</span><span id="L-471"><a href="#L-471"><span class="linenos">471</span></a> +</span><span id="L-472"><a href="#L-472"><span class="linenos">472</span></a><span class="sd"> This is helpful for optimizing queries, where we need more information than</span> +</span><span id="L-473"><a href="#L-473"><span class="linenos">473</span></a><span class="sd"> the expression tree itself. For example, we might care about the source</span> +</span><span id="L-474"><a href="#L-474"><span class="linenos">474</span></a><span class="sd"> names within a subquery. Returns a list because a generator could result in</span> +</span><span id="L-475"><a href="#L-475"><span class="linenos">475</span></a><span class="sd"> incomplete properties which is confusing.</span> +</span><span id="L-476"><a href="#L-476"><span class="linenos">476</span></a> +</span><span id="L-477"><a href="#L-477"><span class="linenos">477</span></a><span class="sd"> Examples:</span> +</span><span id="L-478"><a href="#L-478"><span class="linenos">478</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-479"><a href="#L-479"><span class="linenos">479</span></a><span class="sd"> >>> expression = sqlglot.parse_one("SELECT a FROM (SELECT a FROM x) AS y")</span> +</span><span id="L-480"><a href="#L-480"><span class="linenos">480</span></a><span class="sd"> >>> scopes = traverse_scope(expression)</span> +</span><span id="L-481"><a href="#L-481"><span class="linenos">481</span></a><span class="sd"> >>> scopes[0].expression.sql(), list(scopes[0].sources)</span> +</span><span id="L-482"><a href="#L-482"><span class="linenos">482</span></a><span class="sd"> ('SELECT a FROM x', ['x'])</span> +</span><span id="L-483"><a href="#L-483"><span class="linenos">483</span></a><span class="sd"> >>> scopes[1].expression.sql(), list(scopes[1].sources)</span> +</span><span id="L-484"><a href="#L-484"><span class="linenos">484</span></a><span class="sd"> ('SELECT a FROM (SELECT a FROM x) AS y', ['y'])</span> +</span><span id="L-485"><a href="#L-485"><span class="linenos">485</span></a> +</span><span id="L-486"><a href="#L-486"><span class="linenos">486</span></a><span class="sd"> Args:</span> +</span><span id="L-487"><a href="#L-487"><span class="linenos">487</span></a><span class="sd"> expression (exp.Expression): expression to traverse</span> +</span><span id="L-488"><a href="#L-488"><span class="linenos">488</span></a><span class="sd"> Returns:</span> +</span><span id="L-489"><a href="#L-489"><span class="linenos">489</span></a><span class="sd"> list[Scope]: scope instances</span> +</span><span id="L-490"><a href="#L-490"><span class="linenos">490</span></a><span class="sd"> """</span> +</span><span id="L-491"><a href="#L-491"><span class="linenos">491</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">_traverse_scope</span><span class="p">(</span><span class="n">Scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)))</span> +</span><span id="L-492"><a href="#L-492"><span class="linenos">492</span></a> +</span><span id="L-493"><a href="#L-493"><span class="linenos">493</span></a> +</span><span id="L-494"><a href="#L-494"><span class="linenos">494</span></a><span class="k">def</span> <span class="nf">build_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="L-495"><a href="#L-495"><span class="linenos">495</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-496"><a href="#L-496"><span class="linenos">496</span></a><span class="sd"> Build a scope tree.</span> +</span><span id="L-497"><a href="#L-497"><span class="linenos">497</span></a> +</span><span id="L-498"><a href="#L-498"><span class="linenos">498</span></a><span class="sd"> Args:</span> +</span><span id="L-499"><a href="#L-499"><span class="linenos">499</span></a><span class="sd"> expression (exp.Expression): expression to build the scope tree for</span> +</span><span id="L-500"><a href="#L-500"><span class="linenos">500</span></a><span class="sd"> Returns:</span> +</span><span id="L-501"><a href="#L-501"><span class="linenos">501</span></a><span class="sd"> Scope: root scope</span> +</span><span id="L-502"><a href="#L-502"><span class="linenos">502</span></a><span class="sd"> """</span> +</span><span id="L-503"><a href="#L-503"><span class="linenos">503</span></a> <span class="k">return</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> +</span><span id="L-504"><a href="#L-504"><span class="linenos">504</span></a> +</span><span id="L-505"><a href="#L-505"><span class="linenos">505</span></a> +</span><span id="L-506"><a href="#L-506"><span class="linenos">506</span></a><span class="k">def</span> <span class="nf">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-507"><a href="#L-507"><span class="linenos">507</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Select</span><span class="p">):</span> +</span><span id="L-508"><a href="#L-508"><span class="linenos">508</span></a> <span class="k">yield from</span> <span class="n">_traverse_select</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-509"><a href="#L-509"><span class="linenos">509</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Union</span><span class="p">):</span> +</span><span id="L-510"><a href="#L-510"><span class="linenos">510</span></a> <span class="k">yield from</span> <span class="n">_traverse_union</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-511"><a href="#L-511"><span class="linenos">511</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">Subquery</span><span class="p">):</span> +</span><span id="L-512"><a href="#L-512"><span class="linenos">512</span></a> <span class="k">yield from</span> <span class="n">_traverse_subqueries</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-513"><a href="#L-513"><span class="linenos">513</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</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">UDTF</span><span class="p">):</span> +</span><span id="L-514"><a href="#L-514"><span class="linenos">514</span></a> <span class="k">pass</span> +</span><span id="L-515"><a href="#L-515"><span class="linenos">515</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-516"><a href="#L-516"><span class="linenos">516</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Unexpected expression type: </span><span class="si">{</span><span class="nb">type</span><span class="p">(</span><span class="n">scope</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-517"><a href="#L-517"><span class="linenos">517</span></a> <span class="k">yield</span> <span class="n">scope</span> +</span><span id="L-518"><a href="#L-518"><span class="linenos">518</span></a> +</span><span id="L-519"><a href="#L-519"><span class="linenos">519</span></a> +</span><span id="L-520"><a href="#L-520"><span class="linenos">520</span></a><span class="k">def</span> <span class="nf">_traverse_select</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-521"><a href="#L-521"><span class="linenos">521</span></a> <span class="k">yield from</span> <span class="n">_traverse_ctes</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-522"><a href="#L-522"><span class="linenos">522</span></a> <span class="k">yield from</span> <span class="n">_traverse_tables</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-523"><a href="#L-523"><span class="linenos">523</span></a> <span class="k">yield from</span> <span class="n">_traverse_subqueries</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-524"><a href="#L-524"><span class="linenos">524</span></a> </span><span id="L-525"><a href="#L-525"><span class="linenos">525</span></a> -</span><span id="L-526"><a href="#L-526"><span class="linenos">526</span></a> <span class="c1"># The last scope to be yield should be the top most scope</span> -</span><span id="L-527"><a href="#L-527"><span class="linenos">527</span></a> <span class="n">left</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-528"><a href="#L-528"><span class="linenos">528</span></a> <span class="k">for</span> <span class="n">left</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span><span class="p">)):</span> -</span><span id="L-529"><a href="#L-529"><span class="linenos">529</span></a> <span class="k">yield</span> <span class="n">left</span> -</span><span id="L-530"><a href="#L-530"><span class="linenos">530</span></a> -</span><span id="L-531"><a href="#L-531"><span class="linenos">531</span></a> <span class="n">right</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-532"><a href="#L-532"><span class="linenos">532</span></a> <span class="k">for</span> <span class="n">right</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">right</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span><span class="p">)):</span> -</span><span id="L-533"><a href="#L-533"><span class="linenos">533</span></a> <span class="k">yield</span> <span class="n">right</span> -</span><span id="L-534"><a href="#L-534"><span class="linenos">534</span></a> -</span><span id="L-535"><a href="#L-535"><span class="linenos">535</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">]</span> -</span><span id="L-536"><a href="#L-536"><span class="linenos">536</span></a> +</span><span id="L-526"><a href="#L-526"><span class="linenos">526</span></a><span class="k">def</span> <span class="nf">_traverse_union</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-527"><a href="#L-527"><span class="linenos">527</span></a> <span class="k">yield from</span> <span class="n">_traverse_ctes</span><span class="p">(</span><span class="n">scope</span><span class="p">)</span> +</span><span id="L-528"><a href="#L-528"><span class="linenos">528</span></a> +</span><span id="L-529"><a href="#L-529"><span class="linenos">529</span></a> <span class="c1"># The last scope to be yield should be the top most scope</span> +</span><span id="L-530"><a href="#L-530"><span class="linenos">530</span></a> <span class="n">left</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-531"><a href="#L-531"><span class="linenos">531</span></a> <span class="k">for</span> <span class="n">left</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">left</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span><span class="p">)):</span> +</span><span id="L-532"><a href="#L-532"><span class="linenos">532</span></a> <span class="k">yield</span> <span class="n">left</span> +</span><span id="L-533"><a href="#L-533"><span class="linenos">533</span></a> +</span><span id="L-534"><a href="#L-534"><span class="linenos">534</span></a> <span class="n">right</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-535"><a href="#L-535"><span class="linenos">535</span></a> <span class="k">for</span> <span class="n">right</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">right</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span><span class="p">)):</span> +</span><span id="L-536"><a href="#L-536"><span class="linenos">536</span></a> <span class="k">yield</span> <span class="n">right</span> </span><span id="L-537"><a href="#L-537"><span class="linenos">537</span></a> -</span><span id="L-538"><a href="#L-538"><span class="linenos">538</span></a><span class="k">def</span> <span class="nf">_traverse_ctes</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-539"><a href="#L-539"><span class="linenos">539</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-538"><a href="#L-538"><span class="linenos">538</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[</span><span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">]</span> +</span><span id="L-539"><a href="#L-539"><span class="linenos">539</span></a> </span><span id="L-540"><a href="#L-540"><span class="linenos">540</span></a> -</span><span id="L-541"><a href="#L-541"><span class="linenos">541</span></a> <span class="k">for</span> <span class="n">cte</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">ctes</span><span class="p">:</span> -</span><span id="L-542"><a href="#L-542"><span class="linenos">542</span></a> <span class="n">recursive_scope</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-541"><a href="#L-541"><span class="linenos">541</span></a><span class="k">def</span> <span class="nf">_traverse_ctes</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-542"><a href="#L-542"><span class="linenos">542</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-543"><a href="#L-543"><span class="linenos">543</span></a> -</span><span id="L-544"><a href="#L-544"><span class="linenos">544</span></a> <span class="c1"># if the scope is a recursive cte, it must be in the form of</span> -</span><span id="L-545"><a href="#L-545"><span class="linenos">545</span></a> <span class="c1"># base_case UNION recursive. thus the recursive scope is the first</span> -</span><span id="L-546"><a href="#L-546"><span class="linenos">546</span></a> <span class="c1"># section of the union.</span> -</span><span id="L-547"><a href="#L-547"><span class="linenos">547</span></a> <span class="k">if</span> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"with"</span><span class="p">]</span><span class="o">.</span><span class="n">recursive</span><span class="p">:</span> -</span><span id="L-548"><a href="#L-548"><span class="linenos">548</span></a> <span class="n">union</span> <span class="o">=</span> <span class="n">cte</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-549"><a href="#L-549"><span class="linenos">549</span></a> -</span><span id="L-550"><a href="#L-550"><span class="linenos">550</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">union</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span><span class="p">):</span> -</span><span id="L-551"><a href="#L-551"><span class="linenos">551</span></a> <span class="n">recursive_scope</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">union</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span><span class="p">)</span> +</span><span id="L-544"><a href="#L-544"><span class="linenos">544</span></a> <span class="k">for</span> <span class="n">cte</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">ctes</span><span class="p">:</span> +</span><span id="L-545"><a href="#L-545"><span class="linenos">545</span></a> <span class="n">recursive_scope</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-546"><a href="#L-546"><span class="linenos">546</span></a> +</span><span id="L-547"><a href="#L-547"><span class="linenos">547</span></a> <span class="c1"># if the scope is a recursive cte, it must be in the form of</span> +</span><span id="L-548"><a href="#L-548"><span class="linenos">548</span></a> <span class="c1"># base_case UNION recursive. thus the recursive scope is the first</span> +</span><span id="L-549"><a href="#L-549"><span class="linenos">549</span></a> <span class="c1"># section of the union.</span> +</span><span id="L-550"><a href="#L-550"><span class="linenos">550</span></a> <span class="k">if</span> <span class="n">scope</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"with"</span><span class="p">]</span><span class="o">.</span><span class="n">recursive</span><span class="p">:</span> +</span><span id="L-551"><a href="#L-551"><span class="linenos">551</span></a> <span class="n">union</span> <span class="o">=</span> <span class="n">cte</span><span class="o">.</span><span class="n">this</span> </span><span id="L-552"><a href="#L-552"><span class="linenos">552</span></a> -</span><span id="L-553"><a href="#L-553"><span class="linenos">553</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span> -</span><span id="L-554"><a href="#L-554"><span class="linenos">554</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span> -</span><span id="L-555"><a href="#L-555"><span class="linenos">555</span></a> <span class="n">cte</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-556"><a href="#L-556"><span class="linenos">556</span></a> <span class="n">chain_sources</span><span class="o">=</span><span class="n">sources</span><span class="p">,</span> -</span><span id="L-557"><a href="#L-557"><span class="linenos">557</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="n">cte</span><span class="o">.</span><span class="n">alias_column_names</span><span class="p">,</span> -</span><span id="L-558"><a href="#L-558"><span class="linenos">558</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span><span class="p">,</span> -</span><span id="L-559"><a href="#L-559"><span class="linenos">559</span></a> <span class="p">)</span> -</span><span id="L-560"><a href="#L-560"><span class="linenos">560</span></a> <span class="p">):</span> -</span><span id="L-561"><a href="#L-561"><span class="linenos">561</span></a> <span class="k">yield</span> <span class="n">child_scope</span> -</span><span id="L-562"><a href="#L-562"><span class="linenos">562</span></a> -</span><span id="L-563"><a href="#L-563"><span class="linenos">563</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">cte</span><span class="o">.</span><span class="n">alias</span> -</span><span id="L-564"><a href="#L-564"><span class="linenos">564</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">alias</span><span class="p">]</span> <span class="o">=</span> <span class="n">child_scope</span> +</span><span id="L-553"><a href="#L-553"><span class="linenos">553</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">union</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span><span class="p">):</span> +</span><span id="L-554"><a href="#L-554"><span class="linenos">554</span></a> <span class="n">recursive_scope</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">union</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span><span class="p">)</span> +</span><span id="L-555"><a href="#L-555"><span class="linenos">555</span></a> +</span><span id="L-556"><a href="#L-556"><span class="linenos">556</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span> +</span><span id="L-557"><a href="#L-557"><span class="linenos">557</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span> +</span><span id="L-558"><a href="#L-558"><span class="linenos">558</span></a> <span class="n">cte</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-559"><a href="#L-559"><span class="linenos">559</span></a> <span class="n">chain_sources</span><span class="o">=</span><span class="n">sources</span><span class="p">,</span> +</span><span id="L-560"><a href="#L-560"><span class="linenos">560</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="n">cte</span><span class="o">.</span><span class="n">alias_column_names</span><span class="p">,</span> +</span><span id="L-561"><a href="#L-561"><span class="linenos">561</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span><span class="p">,</span> +</span><span id="L-562"><a href="#L-562"><span class="linenos">562</span></a> <span class="p">)</span> +</span><span id="L-563"><a href="#L-563"><span class="linenos">563</span></a> <span class="p">):</span> +</span><span id="L-564"><a href="#L-564"><span class="linenos">564</span></a> <span class="k">yield</span> <span class="n">child_scope</span> </span><span id="L-565"><a href="#L-565"><span class="linenos">565</span></a> -</span><span id="L-566"><a href="#L-566"><span class="linenos">566</span></a> <span class="k">if</span> <span class="n">recursive_scope</span><span class="p">:</span> -</span><span id="L-567"><a href="#L-567"><span class="linenos">567</span></a> <span class="n">child_scope</span><span class="o">.</span><span class="n">add_source</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">recursive_scope</span><span class="p">)</span> +</span><span id="L-566"><a href="#L-566"><span class="linenos">566</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">cte</span><span class="o">.</span><span class="n">alias</span> +</span><span id="L-567"><a href="#L-567"><span class="linenos">567</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">alias</span><span class="p">]</span> <span class="o">=</span> <span class="n">child_scope</span> </span><span id="L-568"><a href="#L-568"><span class="linenos">568</span></a> -</span><span id="L-569"><a href="#L-569"><span class="linenos">569</span></a> <span class="c1"># append the final child_scope yielded</span> -</span><span id="L-570"><a href="#L-570"><span class="linenos">570</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">cte_scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_scope</span><span class="p">)</span> +</span><span id="L-569"><a href="#L-569"><span class="linenos">569</span></a> <span class="k">if</span> <span class="n">recursive_scope</span><span class="p">:</span> +</span><span id="L-570"><a href="#L-570"><span class="linenos">570</span></a> <span class="n">child_scope</span><span class="o">.</span><span class="n">add_source</span><span class="p">(</span><span class="n">alias</span><span class="p">,</span> <span class="n">recursive_scope</span><span class="p">)</span> </span><span id="L-571"><a href="#L-571"><span class="linenos">571</span></a> -</span><span id="L-572"><a href="#L-572"><span class="linenos">572</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">sources</span><span class="p">)</span> -</span><span id="L-573"><a href="#L-573"><span class="linenos">573</span></a> +</span><span id="L-572"><a href="#L-572"><span class="linenos">572</span></a> <span class="c1"># append the final child_scope yielded</span> +</span><span id="L-573"><a href="#L-573"><span class="linenos">573</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">cte_scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_scope</span><span class="p">)</span> </span><span id="L-574"><a href="#L-574"><span class="linenos">574</span></a> -</span><span id="L-575"><a href="#L-575"><span class="linenos">575</span></a><span class="k">def</span> <span class="nf">_traverse_tables</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-576"><a href="#L-576"><span class="linenos">576</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-575"><a href="#L-575"><span class="linenos">575</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">sources</span><span class="p">)</span> +</span><span id="L-576"><a href="#L-576"><span class="linenos">576</span></a> </span><span id="L-577"><a href="#L-577"><span class="linenos">577</span></a> -</span><span id="L-578"><a href="#L-578"><span class="linenos">578</span></a> <span class="c1"># Traverse FROMs, JOINs, and LATERALs in the order they are defined</span> -</span><span id="L-579"><a href="#L-579"><span class="linenos">579</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-580"><a href="#L-580"><span class="linenos">580</span></a> <span class="n">from_</span> <span class="o">=</span> <span class="n">scope</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">"from"</span><span class="p">)</span> -</span><span id="L-581"><a href="#L-581"><span class="linenos">581</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> -</span><span id="L-582"><a href="#L-582"><span class="linenos">582</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">from_</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-583"><a href="#L-583"><span class="linenos">583</span></a> -</span><span id="L-584"><a href="#L-584"><span class="linenos">584</span></a> <span class="k">for</span> <span class="n">join</span> <span class="ow">in</span> <span class="n">scope</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">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]:</span> -</span><span id="L-585"><a href="#L-585"><span class="linenos">585</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-578"><a href="#L-578"><span class="linenos">578</span></a><span class="k">def</span> <span class="nf">_traverse_tables</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-579"><a href="#L-579"><span class="linenos">579</span></a> <span class="n">sources</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-580"><a href="#L-580"><span class="linenos">580</span></a> +</span><span id="L-581"><a href="#L-581"><span class="linenos">581</span></a> <span class="c1"># Traverse FROMs, JOINs, and LATERALs in the order they are defined</span> +</span><span id="L-582"><a href="#L-582"><span class="linenos">582</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-583"><a href="#L-583"><span class="linenos">583</span></a> <span class="n">from_</span> <span class="o">=</span> <span class="n">scope</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">"from"</span><span class="p">)</span> +</span><span id="L-584"><a href="#L-584"><span class="linenos">584</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> +</span><span id="L-585"><a href="#L-585"><span class="linenos">585</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">from_</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> </span><span id="L-586"><a href="#L-586"><span class="linenos">586</span></a> -</span><span id="L-587"><a href="#L-587"><span class="linenos">587</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">scope</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">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[])</span> -</span><span id="L-588"><a href="#L-588"><span class="linenos">588</span></a> -</span><span id="L-589"><a href="#L-589"><span class="linenos">589</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-590"><a href="#L-590"><span class="linenos">590</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> -</span><span id="L-591"><a href="#L-591"><span class="linenos">591</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-592"><a href="#L-592"><span class="linenos">592</span></a> <span class="n">source_name</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias_or_name</span> -</span><span id="L-593"><a href="#L-593"><span class="linenos">593</span></a> -</span><span id="L-594"><a href="#L-594"><span class="linenos">594</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="L-595"><a href="#L-595"><span class="linenos">595</span></a> <span class="c1"># This is a reference to a parent source (e.g. a CTE), not an actual table.</span> -</span><span id="L-596"><a href="#L-596"><span class="linenos">596</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">source_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">table_name</span><span class="p">]</span> -</span><span id="L-597"><a href="#L-597"><span class="linenos">597</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-598"><a href="#L-598"><span class="linenos">598</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">source_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="L-599"><a href="#L-599"><span class="linenos">599</span></a> <span class="k">continue</span> -</span><span id="L-600"><a href="#L-600"><span class="linenos">600</span></a> -</span><span id="L-601"><a href="#L-601"><span class="linenos">601</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="L-602"><a href="#L-602"><span class="linenos">602</span></a> <span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">sources</span> -</span><span id="L-603"><a href="#L-603"><span class="linenos">603</span></a> <span class="n">scope_type</span> <span class="o">=</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UDTF</span> -</span><span id="L-604"><a href="#L-604"><span class="linenos">604</span></a> <span class="n">scopes</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">udtf_scopes</span> -</span><span id="L-605"><a href="#L-605"><span class="linenos">605</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-606"><a href="#L-606"><span class="linenos">606</span></a> <span class="n">lateral_sources</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-607"><a href="#L-607"><span class="linenos">607</span></a> <span class="n">scope_type</span> <span class="o">=</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">DERIVED_TABLE</span> -</span><span id="L-608"><a href="#L-608"><span class="linenos">608</span></a> <span class="n">scopes</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">derived_table_scopes</span> -</span><span id="L-609"><a href="#L-609"><span class="linenos">609</span></a> -</span><span id="L-610"><a href="#L-610"><span class="linenos">610</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span> -</span><span id="L-611"><a href="#L-611"><span class="linenos">611</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span> -</span><span id="L-612"><a href="#L-612"><span class="linenos">612</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-613"><a href="#L-613"><span class="linenos">613</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="n">lateral_sources</span><span class="p">,</span> -</span><span id="L-614"><a href="#L-614"><span class="linenos">614</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span><span class="p">,</span> -</span><span id="L-615"><a href="#L-615"><span class="linenos">615</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> -</span><span id="L-616"><a href="#L-616"><span class="linenos">616</span></a> <span class="p">)</span> -</span><span id="L-617"><a href="#L-617"><span class="linenos">617</span></a> <span class="p">):</span> -</span><span id="L-618"><a href="#L-618"><span class="linenos">618</span></a> <span class="k">yield</span> <span class="n">child_scope</span> -</span><span id="L-619"><a href="#L-619"><span class="linenos">619</span></a> -</span><span id="L-620"><a href="#L-620"><span class="linenos">620</span></a> <span class="c1"># Tables without aliases will be set as ""</span> -</span><span id="L-621"><a href="#L-621"><span class="linenos">621</span></a> <span class="c1"># This shouldn't be a problem once qualify_columns runs, as it adds aliases on everything.</span> -</span><span id="L-622"><a href="#L-622"><span class="linenos">622</span></a> <span class="c1"># Until then, this means that only a single, unaliased derived table is allowed (rather,</span> -</span><span id="L-623"><a href="#L-623"><span class="linenos">623</span></a> <span class="c1"># the latest one wins.</span> -</span><span id="L-624"><a href="#L-624"><span class="linenos">624</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span> -</span><span id="L-625"><a href="#L-625"><span class="linenos">625</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">alias</span><span class="p">]</span> <span class="o">=</span> <span class="n">child_scope</span> -</span><span id="L-626"><a href="#L-626"><span class="linenos">626</span></a> -</span><span id="L-627"><a href="#L-627"><span class="linenos">627</span></a> <span class="c1"># append the final child_scope yielded</span> -</span><span id="L-628"><a href="#L-628"><span class="linenos">628</span></a> <span class="n">scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_scope</span><span class="p">)</span> -</span><span id="L-629"><a href="#L-629"><span class="linenos">629</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">table_scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_scope</span><span class="p">)</span> -</span><span id="L-630"><a href="#L-630"><span class="linenos">630</span></a> -</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">sources</span><span class="p">)</span> -</span><span id="L-632"><a href="#L-632"><span class="linenos">632</span></a> -</span><span id="L-633"><a href="#L-633"><span class="linenos">633</span></a> -</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a><span class="k">def</span> <span class="nf">_traverse_subqueries</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> -</span><span id="L-635"><a href="#L-635"><span class="linenos">635</span></a> <span class="k">for</span> <span class="n">subquery</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">subqueries</span><span class="p">:</span> -</span><span id="L-636"><a href="#L-636"><span class="linenos">636</span></a> <span class="n">top</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-637"><a href="#L-637"><span class="linenos">637</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">subquery</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">SUBQUERY</span><span class="p">)):</span> -</span><span id="L-638"><a href="#L-638"><span class="linenos">638</span></a> <span class="k">yield</span> <span class="n">child_scope</span> -</span><span id="L-639"><a href="#L-639"><span class="linenos">639</span></a> <span class="n">top</span> <span class="o">=</span> <span class="n">child_scope</span> -</span><span id="L-640"><a href="#L-640"><span class="linenos">640</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">subquery_scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">top</span><span class="p">)</span> -</span><span id="L-641"><a href="#L-641"><span class="linenos">641</span></a> -</span><span id="L-642"><a href="#L-642"><span class="linenos">642</span></a> -</span><span id="L-643"><a href="#L-643"><span class="linenos">643</span></a><span class="k">def</span> <span class="nf">walk_in_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-644"><a href="#L-644"><span class="linenos">644</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-645"><a href="#L-645"><span class="linenos">645</span></a><span class="sd"> Returns a generator object which visits all nodes in the syntrax tree, stopping at</span> -</span><span id="L-646"><a href="#L-646"><span class="linenos">646</span></a><span class="sd"> nodes that start child scopes.</span> +</span><span id="L-587"><a href="#L-587"><span class="linenos">587</span></a> <span class="k">for</span> <span class="n">join</span> <span class="ow">in</span> <span class="n">scope</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">"joins"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[]:</span> +</span><span id="L-588"><a href="#L-588"><span class="linenos">588</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">join</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-589"><a href="#L-589"><span class="linenos">589</span></a> +</span><span id="L-590"><a href="#L-590"><span class="linenos">590</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">scope</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">"laterals"</span><span class="p">)</span> <span class="ow">or</span> <span class="p">[])</span> +</span><span id="L-591"><a href="#L-591"><span class="linenos">591</span></a> +</span><span id="L-592"><a href="#L-592"><span class="linenos">592</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-593"><a href="#L-593"><span class="linenos">593</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">):</span> +</span><span id="L-594"><a href="#L-594"><span class="linenos">594</span></a> <span class="n">table_name</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-595"><a href="#L-595"><span class="linenos">595</span></a> <span class="n">source_name</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias_or_name</span> +</span><span id="L-596"><a href="#L-596"><span class="linenos">596</span></a> +</span><span id="L-597"><a href="#L-597"><span class="linenos">597</span></a> <span class="k">if</span> <span class="n">table_name</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="L-598"><a href="#L-598"><span class="linenos">598</span></a> <span class="c1"># This is a reference to a parent source (e.g. a CTE), not an actual table.</span> +</span><span id="L-599"><a href="#L-599"><span class="linenos">599</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">source_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">table_name</span><span class="p">]</span> +</span><span id="L-600"><a href="#L-600"><span class="linenos">600</span></a> <span class="k">elif</span> <span class="n">source_name</span> <span class="ow">in</span> <span class="n">sources</span><span class="p">:</span> +</span><span id="L-601"><a href="#L-601"><span class="linenos">601</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">find_new_name</span><span class="p">(</span><span class="n">sources</span><span class="p">,</span> <span class="n">table_name</span><span class="p">)]</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="L-602"><a href="#L-602"><span class="linenos">602</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-603"><a href="#L-603"><span class="linenos">603</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">source_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="L-604"><a href="#L-604"><span class="linenos">604</span></a> <span class="k">continue</span> +</span><span id="L-605"><a href="#L-605"><span class="linenos">605</span></a> +</span><span id="L-606"><a href="#L-606"><span class="linenos">606</span></a> <span class="k">if</span> <span class="nb">isinstance</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">UDTF</span><span class="p">):</span> +</span><span id="L-607"><a href="#L-607"><span class="linenos">607</span></a> <span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">sources</span> +</span><span id="L-608"><a href="#L-608"><span class="linenos">608</span></a> <span class="n">scope_type</span> <span class="o">=</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UDTF</span> +</span><span id="L-609"><a href="#L-609"><span class="linenos">609</span></a> <span class="n">scopes</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">udtf_scopes</span> +</span><span id="L-610"><a href="#L-610"><span class="linenos">610</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-611"><a href="#L-611"><span class="linenos">611</span></a> <span class="n">lateral_sources</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-612"><a href="#L-612"><span class="linenos">612</span></a> <span class="n">scope_type</span> <span class="o">=</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">DERIVED_TABLE</span> +</span><span id="L-613"><a href="#L-613"><span class="linenos">613</span></a> <span class="n">scopes</span> <span class="o">=</span> <span class="n">scope</span><span class="o">.</span><span class="n">derived_table_scopes</span> +</span><span id="L-614"><a href="#L-614"><span class="linenos">614</span></a> +</span><span id="L-615"><a href="#L-615"><span class="linenos">615</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span> +</span><span id="L-616"><a href="#L-616"><span class="linenos">616</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span> +</span><span id="L-617"><a href="#L-617"><span class="linenos">617</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-618"><a href="#L-618"><span class="linenos">618</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="n">lateral_sources</span><span class="p">,</span> +</span><span id="L-619"><a href="#L-619"><span class="linenos">619</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">alias_column_names</span><span class="p">,</span> +</span><span id="L-620"><a href="#L-620"><span class="linenos">620</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> +</span><span id="L-621"><a href="#L-621"><span class="linenos">621</span></a> <span class="p">)</span> +</span><span id="L-622"><a href="#L-622"><span class="linenos">622</span></a> <span class="p">):</span> +</span><span id="L-623"><a href="#L-623"><span class="linenos">623</span></a> <span class="k">yield</span> <span class="n">child_scope</span> +</span><span id="L-624"><a href="#L-624"><span class="linenos">624</span></a> +</span><span id="L-625"><a href="#L-625"><span class="linenos">625</span></a> <span class="c1"># Tables without aliases will be set as ""</span> +</span><span id="L-626"><a href="#L-626"><span class="linenos">626</span></a> <span class="c1"># This shouldn't be a problem once qualify_columns runs, as it adds aliases on everything.</span> +</span><span id="L-627"><a href="#L-627"><span class="linenos">627</span></a> <span class="c1"># Until then, this means that only a single, unaliased derived table is allowed (rather,</span> +</span><span id="L-628"><a href="#L-628"><span class="linenos">628</span></a> <span class="c1"># the latest one wins.</span> +</span><span id="L-629"><a href="#L-629"><span class="linenos">629</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">alias</span> +</span><span id="L-630"><a href="#L-630"><span class="linenos">630</span></a> <span class="n">sources</span><span class="p">[</span><span class="n">alias</span><span class="p">]</span> <span class="o">=</span> <span class="n">child_scope</span> +</span><span id="L-631"><a href="#L-631"><span class="linenos">631</span></a> +</span><span id="L-632"><a href="#L-632"><span class="linenos">632</span></a> <span class="c1"># append the final child_scope yielded</span> +</span><span id="L-633"><a href="#L-633"><span class="linenos">633</span></a> <span class="n">scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_scope</span><span class="p">)</span> +</span><span id="L-634"><a href="#L-634"><span class="linenos">634</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">table_scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">child_scope</span><span class="p">)</span> +</span><span id="L-635"><a href="#L-635"><span class="linenos">635</span></a> +</span><span id="L-636"><a href="#L-636"><span class="linenos">636</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="n">sources</span><span class="p">)</span> +</span><span id="L-637"><a href="#L-637"><span class="linenos">637</span></a> +</span><span id="L-638"><a href="#L-638"><span class="linenos">638</span></a> +</span><span id="L-639"><a href="#L-639"><span class="linenos">639</span></a><span class="k">def</span> <span class="nf">_traverse_subqueries</span><span class="p">(</span><span class="n">scope</span><span class="p">):</span> +</span><span id="L-640"><a href="#L-640"><span class="linenos">640</span></a> <span class="k">for</span> <span class="n">subquery</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">subqueries</span><span class="p">:</span> +</span><span id="L-641"><a href="#L-641"><span class="linenos">641</span></a> <span class="n">top</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-642"><a href="#L-642"><span class="linenos">642</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">_traverse_scope</span><span class="p">(</span><span class="n">scope</span><span class="o">.</span><span class="n">branch</span><span class="p">(</span><span class="n">subquery</span><span class="p">,</span> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">SUBQUERY</span><span class="p">)):</span> +</span><span id="L-643"><a href="#L-643"><span class="linenos">643</span></a> <span class="k">yield</span> <span class="n">child_scope</span> +</span><span id="L-644"><a href="#L-644"><span class="linenos">644</span></a> <span class="n">top</span> <span class="o">=</span> <span class="n">child_scope</span> +</span><span id="L-645"><a href="#L-645"><span class="linenos">645</span></a> <span class="n">scope</span><span class="o">.</span><span class="n">subquery_scopes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">top</span><span class="p">)</span> +</span><span id="L-646"><a href="#L-646"><span class="linenos">646</span></a> </span><span id="L-647"><a href="#L-647"><span class="linenos">647</span></a> -</span><span id="L-648"><a href="#L-648"><span class="linenos">648</span></a><span class="sd"> Args:</span> -</span><span id="L-649"><a href="#L-649"><span class="linenos">649</span></a><span class="sd"> expression (exp.Expression):</span> -</span><span id="L-650"><a href="#L-650"><span class="linenos">650</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span> -</span><span id="L-651"><a href="#L-651"><span class="linenos">651</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span> +</span><span id="L-648"><a href="#L-648"><span class="linenos">648</span></a><span class="k">def</span> <span class="nf">walk_in_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-649"><a href="#L-649"><span class="linenos">649</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-650"><a href="#L-650"><span class="linenos">650</span></a><span class="sd"> Returns a generator object which visits all nodes in the syntrax tree, stopping at</span> +</span><span id="L-651"><a href="#L-651"><span class="linenos">651</span></a><span class="sd"> nodes that start child scopes.</span> </span><span id="L-652"><a href="#L-652"><span class="linenos">652</span></a> -</span><span id="L-653"><a href="#L-653"><span class="linenos">653</span></a><span class="sd"> Yields:</span> -</span><span id="L-654"><a href="#L-654"><span class="linenos">654</span></a><span class="sd"> tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key</span> -</span><span id="L-655"><a href="#L-655"><span class="linenos">655</span></a><span class="sd"> """</span> -</span><span id="L-656"><a href="#L-656"><span class="linenos">656</span></a> <span class="c1"># We'll use this variable to pass state into the dfs generator.</span> -</span><span id="L-657"><a href="#L-657"><span class="linenos">657</span></a> <span class="c1"># Whenever we set it to True, we exclude a subtree from traversal.</span> -</span><span id="L-658"><a href="#L-658"><span class="linenos">658</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-659"><a href="#L-659"><span class="linenos">659</span></a> -</span><span id="L-660"><a href="#L-660"><span class="linenos">660</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">prune</span><span class="p">):</span> -</span><span id="L-661"><a href="#L-661"><span class="linenos">661</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-662"><a href="#L-662"><span class="linenos">662</span></a> -</span><span id="L-663"><a href="#L-663"><span class="linenos">663</span></a> <span class="k">yield</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> +</span><span id="L-653"><a href="#L-653"><span class="linenos">653</span></a><span class="sd"> Args:</span> +</span><span id="L-654"><a href="#L-654"><span class="linenos">654</span></a><span class="sd"> expression (exp.Expression):</span> +</span><span id="L-655"><a href="#L-655"><span class="linenos">655</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span> +</span><span id="L-656"><a href="#L-656"><span class="linenos">656</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span> +</span><span id="L-657"><a href="#L-657"><span class="linenos">657</span></a> +</span><span id="L-658"><a href="#L-658"><span class="linenos">658</span></a><span class="sd"> Yields:</span> +</span><span id="L-659"><a href="#L-659"><span class="linenos">659</span></a><span class="sd"> tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key</span> +</span><span id="L-660"><a href="#L-660"><span class="linenos">660</span></a><span class="sd"> """</span> +</span><span id="L-661"><a href="#L-661"><span class="linenos">661</span></a> <span class="c1"># We'll use this variable to pass state into the dfs generator.</span> +</span><span id="L-662"><a href="#L-662"><span class="linenos">662</span></a> <span class="c1"># Whenever we set it to True, we exclude a subtree from traversal.</span> +</span><span id="L-663"><a href="#L-663"><span class="linenos">663</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> </span><span id="L-664"><a href="#L-664"><span class="linenos">664</span></a> -</span><span id="L-665"><a href="#L-665"><span class="linenos">665</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a> <span class="k">continue</span> -</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">)</span> -</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">)</span> -</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">)</span> -</span><span id="L-672"><a href="#L-672"><span class="linenos">672</span></a> <span class="p">):</span> -</span><span id="L-673"><a href="#L-673"><span class="linenos">673</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-665"><a href="#L-665"><span class="linenos">665</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">prune</span><span class="p">):</span> +</span><span id="L-666"><a href="#L-666"><span class="linenos">666</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-667"><a href="#L-667"><span class="linenos">667</span></a> +</span><span id="L-668"><a href="#L-668"><span class="linenos">668</span></a> <span class="k">yield</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> +</span><span id="L-669"><a href="#L-669"><span class="linenos">669</span></a> +</span><span id="L-670"><a href="#L-670"><span class="linenos">670</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="L-671"><a href="#L-671"><span class="linenos">671</span></a> <span class="k">continue</span> +</span><span id="L-672"><a href="#L-672"><span class="linenos">672</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-673"><a href="#L-673"><span class="linenos">673</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">)</span> +</span><span id="L-674"><a href="#L-674"><span class="linenos">674</span></a> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="L-675"><a href="#L-675"><span class="linenos">675</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">)</span> +</span><span id="L-676"><a href="#L-676"><span class="linenos">676</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">)</span> +</span><span id="L-677"><a href="#L-677"><span class="linenos">677</span></a> <span class="p">):</span> +</span><span id="L-678"><a href="#L-678"><span class="linenos">678</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> @@ -876,13 +881,13 @@ </div> <a class="headerlink" href="#ScopeType"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="ScopeType-10"><a href="#ScopeType-10"><span class="linenos">10</span></a><span class="k">class</span> <span class="nc">ScopeType</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span> -</span><span id="ScopeType-11"><a href="#ScopeType-11"><span class="linenos">11</span></a> <span class="n">ROOT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="ScopeType-12"><a href="#ScopeType-12"><span class="linenos">12</span></a> <span class="n">SUBQUERY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="ScopeType-13"><a href="#ScopeType-13"><span class="linenos">13</span></a> <span class="n">DERIVED_TABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="ScopeType-14"><a href="#ScopeType-14"><span class="linenos">14</span></a> <span class="n">CTE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="ScopeType-15"><a href="#ScopeType-15"><span class="linenos">15</span></a> <span class="n">UNION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> -</span><span id="ScopeType-16"><a href="#ScopeType-16"><span class="linenos">16</span></a> <span class="n">UDTF</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="ScopeType-11"><a href="#ScopeType-11"><span class="linenos">11</span></a><span class="k">class</span> <span class="nc">ScopeType</span><span class="p">(</span><span class="n">Enum</span><span class="p">):</span> +</span><span id="ScopeType-12"><a href="#ScopeType-12"><span class="linenos">12</span></a> <span class="n">ROOT</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="ScopeType-13"><a href="#ScopeType-13"><span class="linenos">13</span></a> <span class="n">SUBQUERY</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="ScopeType-14"><a href="#ScopeType-14"><span class="linenos">14</span></a> <span class="n">DERIVED_TABLE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="ScopeType-15"><a href="#ScopeType-15"><span class="linenos">15</span></a> <span class="n">CTE</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="ScopeType-16"><a href="#ScopeType-16"><span class="linenos">16</span></a> <span class="n">UNION</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> +</span><span id="ScopeType-17"><a href="#ScopeType-17"><span class="linenos">17</span></a> <span class="n">UDTF</span> <span class="o">=</span> <span class="n">auto</span><span class="p">()</span> </span></pre></div> @@ -984,449 +989,451 @@ </div> <a class="headerlink" href="#Scope"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope-19"><a href="#Scope-19"><span class="linenos"> 19</span></a><span class="k">class</span> <span class="nc">Scope</span><span class="p">:</span> -</span><span id="Scope-20"><a href="#Scope-20"><span class="linenos"> 20</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-21"><a href="#Scope-21"><span class="linenos"> 21</span></a><span class="sd"> Selection scope.</span> -</span><span id="Scope-22"><a href="#Scope-22"><span class="linenos"> 22</span></a> -</span><span id="Scope-23"><a href="#Scope-23"><span class="linenos"> 23</span></a><span class="sd"> Attributes:</span> -</span><span id="Scope-24"><a href="#Scope-24"><span class="linenos"> 24</span></a><span class="sd"> expression (exp.Select|exp.Union): Root expression of this scope</span> -</span><span id="Scope-25"><a href="#Scope-25"><span class="linenos"> 25</span></a><span class="sd"> sources (dict[str, exp.Table|Scope]): Mapping of source name to either</span> -</span><span id="Scope-26"><a href="#Scope-26"><span class="linenos"> 26</span></a><span class="sd"> a Table expression or another Scope instance. For example:</span> -</span><span id="Scope-27"><a href="#Scope-27"><span class="linenos"> 27</span></a><span class="sd"> SELECT * FROM x {"x": Table(this="x")}</span> -</span><span id="Scope-28"><a href="#Scope-28"><span class="linenos"> 28</span></a><span class="sd"> SELECT * FROM x AS y {"y": Table(this="x")}</span> -</span><span id="Scope-29"><a href="#Scope-29"><span class="linenos"> 29</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y {"y": Scope(...)}</span> -</span><span id="Scope-30"><a href="#Scope-30"><span class="linenos"> 30</span></a><span class="sd"> lateral_sources (dict[str, exp.Table|Scope]): Sources from laterals</span> -</span><span id="Scope-31"><a href="#Scope-31"><span class="linenos"> 31</span></a><span class="sd"> For example:</span> -</span><span id="Scope-32"><a href="#Scope-32"><span class="linenos"> 32</span></a><span class="sd"> SELECT c FROM x LATERAL VIEW EXPLODE (a) AS c;</span> -</span><span id="Scope-33"><a href="#Scope-33"><span class="linenos"> 33</span></a><span class="sd"> The LATERAL VIEW EXPLODE gets x as a source.</span> -</span><span id="Scope-34"><a href="#Scope-34"><span class="linenos"> 34</span></a><span class="sd"> outer_column_list (list[str]): If this is a derived table or CTE, and the outer query</span> -</span><span id="Scope-35"><a href="#Scope-35"><span class="linenos"> 35</span></a><span class="sd"> defines a column list of it's alias of this scope, this is that list of columns.</span> -</span><span id="Scope-36"><a href="#Scope-36"><span class="linenos"> 36</span></a><span class="sd"> For example:</span> -</span><span id="Scope-37"><a href="#Scope-37"><span class="linenos"> 37</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y(col1, col2)</span> -</span><span id="Scope-38"><a href="#Scope-38"><span class="linenos"> 38</span></a><span class="sd"> The inner query would have `["col1", "col2"]` for its `outer_column_list`</span> -</span><span id="Scope-39"><a href="#Scope-39"><span class="linenos"> 39</span></a><span class="sd"> parent (Scope): Parent scope</span> -</span><span id="Scope-40"><a href="#Scope-40"><span class="linenos"> 40</span></a><span class="sd"> scope_type (ScopeType): Type of this scope, relative to it's parent</span> -</span><span id="Scope-41"><a href="#Scope-41"><span class="linenos"> 41</span></a><span class="sd"> subquery_scopes (list[Scope]): List of all child scopes for subqueries</span> -</span><span id="Scope-42"><a href="#Scope-42"><span class="linenos"> 42</span></a><span class="sd"> cte_scopes (list[Scope]): List of all child scopes for CTEs</span> -</span><span id="Scope-43"><a href="#Scope-43"><span class="linenos"> 43</span></a><span class="sd"> derived_table_scopes (list[Scope]): List of all child scopes for derived_tables</span> -</span><span id="Scope-44"><a href="#Scope-44"><span class="linenos"> 44</span></a><span class="sd"> udtf_scopes (list[Scope]): List of all child scopes for user defined tabular functions</span> -</span><span id="Scope-45"><a href="#Scope-45"><span class="linenos"> 45</span></a><span class="sd"> table_scopes (list[Scope]): derived_table_scopes + udtf_scopes, in the order that they're defined</span> -</span><span id="Scope-46"><a href="#Scope-46"><span class="linenos"> 46</span></a><span class="sd"> union_scopes (list[Scope, Scope]): If this Scope is for a Union expression, this will be</span> -</span><span id="Scope-47"><a href="#Scope-47"><span class="linenos"> 47</span></a><span class="sd"> a list of the left and right child scopes.</span> -</span><span id="Scope-48"><a href="#Scope-48"><span class="linenos"> 48</span></a><span class="sd"> """</span> -</span><span id="Scope-49"><a href="#Scope-49"><span class="linenos"> 49</span></a> -</span><span id="Scope-50"><a href="#Scope-50"><span class="linenos"> 50</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="Scope-51"><a href="#Scope-51"><span class="linenos"> 51</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Scope-52"><a href="#Scope-52"><span class="linenos"> 52</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Scope-53"><a href="#Scope-53"><span class="linenos"> 53</span></a> <span class="n">sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope-54"><a href="#Scope-54"><span class="linenos"> 54</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope-55"><a href="#Scope-55"><span class="linenos"> 55</span></a> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope-56"><a href="#Scope-56"><span class="linenos"> 56</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span><span class="p">,</span> -</span><span id="Scope-57"><a href="#Scope-57"><span class="linenos"> 57</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope-58"><a href="#Scope-58"><span class="linenos"> 58</span></a> <span class="p">):</span> -</span><span id="Scope-59"><a href="#Scope-59"><span class="linenos"> 59</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="Scope-60"><a href="#Scope-60"><span class="linenos"> 60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span> <span class="o">=</span> <span class="n">sources</span> <span class="ow">or</span> <span class="p">{}</span> -</span><span id="Scope-61"><a href="#Scope-61"><span class="linenos"> 61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">lateral_sources</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">lateral_sources</span> <span class="k">else</span> <span class="p">{}</span> -</span><span id="Scope-62"><a href="#Scope-62"><span class="linenos"> 62</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> -</span><span id="Scope-63"><a href="#Scope-63"><span class="linenos"> 63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">outer_column_list</span> <span class="o">=</span> <span class="n">outer_column_list</span> <span class="ow">or</span> <span class="p">[]</span> -</span><span id="Scope-64"><a href="#Scope-64"><span class="linenos"> 64</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> -</span><span id="Scope-65"><a href="#Scope-65"><span class="linenos"> 65</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">=</span> <span class="n">scope_type</span> -</span><span id="Scope-66"><a href="#Scope-66"><span class="linenos"> 66</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-67"><a href="#Scope-67"><span class="linenos"> 67</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">derived_table_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-68"><a href="#Scope-68"><span class="linenos"> 68</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-69"><a href="#Scope-69"><span class="linenos"> 69</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-70"><a href="#Scope-70"><span class="linenos"> 70</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-71"><a href="#Scope-71"><span class="linenos"> 71</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-72"><a href="#Scope-72"><span class="linenos"> 72</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="Scope-73"><a href="#Scope-73"><span class="linenos"> 73</span></a> -</span><span id="Scope-74"><a href="#Scope-74"><span class="linenos"> 74</span></a> <span class="k">def</span> <span class="nf">clear_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-75"><a href="#Scope-75"><span class="linenos"> 75</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Scope-76"><a href="#Scope-76"><span class="linenos"> 76</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-77"><a href="#Scope-77"><span class="linenos"> 77</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-78"><a href="#Scope-78"><span class="linenos"> 78</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-79"><a href="#Scope-79"><span class="linenos"> 79</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-80"><a href="#Scope-80"><span class="linenos"> 80</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-81"><a href="#Scope-81"><span class="linenos"> 81</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-82"><a href="#Scope-82"><span class="linenos"> 82</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-83"><a href="#Scope-83"><span class="linenos"> 83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-84"><a href="#Scope-84"><span class="linenos"> 84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-85"><a href="#Scope-85"><span class="linenos"> 85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope-86"><a href="#Scope-86"><span class="linenos"> 86</span></a> -</span><span id="Scope-87"><a href="#Scope-87"><span class="linenos"> 87</span></a> <span class="k">def</span> <span class="nf">branch</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">scope_type</span><span class="p">,</span> <span class="n">chain_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="Scope-88"><a href="#Scope-88"><span class="linenos"> 88</span></a><span class="w"> </span><span class="sd">"""Branch from the current scope to a new, inner scope"""</span> -</span><span id="Scope-89"><a href="#Scope-89"><span class="linenos"> 89</span></a> <span class="k">return</span> <span class="n">Scope</span><span class="p">(</span> -</span><span id="Scope-90"><a href="#Scope-90"><span class="linenos"> 90</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">(),</span> -</span><span id="Scope-91"><a href="#Scope-91"><span class="linenos"> 91</span></a> <span class="n">sources</span><span class="o">=</span><span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">cte_sources</span><span class="p">,</span> <span class="o">**</span><span class="p">(</span><span class="n">chain_sources</span> <span class="ow">or</span> <span class="p">{})},</span> -</span><span id="Scope-92"><a href="#Scope-92"><span class="linenos"> 92</span></a> <span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Scope-93"><a href="#Scope-93"><span class="linenos"> 93</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> -</span><span id="Scope-94"><a href="#Scope-94"><span class="linenos"> 94</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> -</span><span id="Scope-95"><a href="#Scope-95"><span class="linenos"> 95</span></a> <span class="p">)</span> -</span><span id="Scope-96"><a href="#Scope-96"><span class="linenos"> 96</span></a> -</span><span id="Scope-97"><a href="#Scope-97"><span class="linenos"> 97</span></a> <span class="k">def</span> <span class="nf">_collect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-98"><a href="#Scope-98"><span class="linenos"> 98</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-99"><a href="#Scope-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-100"><a href="#Scope-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-101"><a href="#Scope-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-102"><a href="#Scope-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-103"><a href="#Scope-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-104"><a href="#Scope-104"><span class="linenos">104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-105"><a href="#Scope-105"><span class="linenos">105</span></a> -</span><span id="Scope-106"><a href="#Scope-106"><span class="linenos">106</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Scope-107"><a href="#Scope-107"><span class="linenos">107</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> -</span><span id="Scope-108"><a href="#Scope-108"><span class="linenos">108</span></a> <span class="k">continue</span> -</span><span id="Scope-109"><a href="#Scope-109"><span class="linenos">109</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</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">Star</span><span class="p">):</span> -</span><span id="Scope-110"><a href="#Scope-110"><span class="linenos">110</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-111"><a href="#Scope-111"><span class="linenos">111</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> -</span><span id="Scope-112"><a href="#Scope-112"><span class="linenos">112</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-113"><a href="#Scope-113"><span class="linenos">113</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> -</span><span id="Scope-114"><a href="#Scope-114"><span class="linenos">114</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-115"><a href="#Scope-115"><span class="linenos">115</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">):</span> -</span><span id="Scope-116"><a href="#Scope-116"><span class="linenos">116</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-117"><a href="#Scope-117"><span class="linenos">117</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">):</span> -</span><span id="Scope-118"><a href="#Scope-118"><span class="linenos">118</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-119"><a href="#Scope-119"><span class="linenos">119</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="Scope-120"><a href="#Scope-120"><span class="linenos">120</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-121"><a href="#Scope-121"><span class="linenos">121</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Scope-122"><a href="#Scope-122"><span class="linenos">122</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> -</span><span id="Scope-123"><a href="#Scope-123"><span class="linenos">123</span></a> -</span><span id="Scope-124"><a href="#Scope-124"><span class="linenos">124</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Scope-125"><a href="#Scope-125"><span class="linenos">125</span></a> -</span><span id="Scope-126"><a href="#Scope-126"><span class="linenos">126</span></a> <span class="k">def</span> <span class="nf">_ensure_collected</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-127"><a href="#Scope-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span><span class="p">:</span> -</span><span id="Scope-128"><a href="#Scope-128"><span class="linenos">128</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collect</span><span class="p">()</span> -</span><span id="Scope-129"><a href="#Scope-129"><span class="linenos">129</span></a> -</span><span id="Scope-130"><a href="#Scope-130"><span class="linenos">130</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Scope-131"><a href="#Scope-131"><span class="linenos">131</span></a> <span class="k">return</span> <span class="n">walk_in_scope</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">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">)</span> -</span><span id="Scope-132"><a href="#Scope-132"><span class="linenos">132</span></a> -</span><span id="Scope-133"><a href="#Scope-133"><span class="linenos">133</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Scope-134"><a href="#Scope-134"><span class="linenos">134</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-135"><a href="#Scope-135"><span class="linenos">135</span></a><span class="sd"> Returns the first node in this scope which matches at least one of the specified types.</span> -</span><span id="Scope-136"><a href="#Scope-136"><span class="linenos">136</span></a> -</span><span id="Scope-137"><a href="#Scope-137"><span class="linenos">137</span></a><span class="sd"> This does NOT traverse into subscopes.</span> -</span><span id="Scope-138"><a href="#Scope-138"><span class="linenos">138</span></a> -</span><span id="Scope-139"><a href="#Scope-139"><span class="linenos">139</span></a><span class="sd"> Args:</span> -</span><span id="Scope-140"><a href="#Scope-140"><span class="linenos">140</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> -</span><span id="Scope-141"><a href="#Scope-141"><span class="linenos">141</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> -</span><span id="Scope-142"><a href="#Scope-142"><span class="linenos">142</span></a> -</span><span id="Scope-143"><a href="#Scope-143"><span class="linenos">143</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-144"><a href="#Scope-144"><span class="linenos">144</span></a><span class="sd"> exp.Expression: the node which matches the criteria or None if no node matching</span> -</span><span id="Scope-145"><a href="#Scope-145"><span class="linenos">145</span></a><span class="sd"> the criteria was found.</span> -</span><span id="Scope-146"><a href="#Scope-146"><span class="linenos">146</span></a><span class="sd"> """</span> -</span><span id="Scope-147"><a href="#Scope-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Scope-148"><a href="#Scope-148"><span class="linenos">148</span></a> -</span><span id="Scope-149"><a href="#Scope-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Scope-150"><a href="#Scope-150"><span class="linenos">150</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-151"><a href="#Scope-151"><span class="linenos">151</span></a><span class="sd"> Returns a generator object which visits all nodes in this scope and only yields those that</span> -</span><span id="Scope-152"><a href="#Scope-152"><span class="linenos">152</span></a><span class="sd"> match at least one of the specified expression types.</span> -</span><span id="Scope-153"><a href="#Scope-153"><span class="linenos">153</span></a> -</span><span id="Scope-154"><a href="#Scope-154"><span class="linenos">154</span></a><span class="sd"> This does NOT traverse into subscopes.</span> -</span><span id="Scope-155"><a href="#Scope-155"><span class="linenos">155</span></a> -</span><span id="Scope-156"><a href="#Scope-156"><span class="linenos">156</span></a><span class="sd"> Args:</span> -</span><span id="Scope-157"><a href="#Scope-157"><span class="linenos">157</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> -</span><span id="Scope-158"><a href="#Scope-158"><span class="linenos">158</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> -</span><span id="Scope-159"><a href="#Scope-159"><span class="linenos">159</span></a> -</span><span id="Scope-160"><a href="#Scope-160"><span class="linenos">160</span></a><span class="sd"> Yields:</span> -</span><span id="Scope-161"><a href="#Scope-161"><span class="linenos">161</span></a><span class="sd"> exp.Expression: nodes</span> -</span><span id="Scope-162"><a href="#Scope-162"><span class="linenos">162</span></a><span class="sd"> """</span> -</span><span id="Scope-163"><a href="#Scope-163"><span class="linenos">163</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span> -</span><span id="Scope-164"><a href="#Scope-164"><span class="linenos">164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span> -</span><span id="Scope-165"><a href="#Scope-165"><span class="linenos">165</span></a> <span class="k">yield</span> <span class="n">expression</span> -</span><span id="Scope-166"><a href="#Scope-166"><span class="linenos">166</span></a> -</span><span id="Scope-167"><a href="#Scope-167"><span class="linenos">167</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old</span><span class="p">,</span> <span class="n">new</span><span class="p">):</span> -</span><span id="Scope-168"><a href="#Scope-168"><span class="linenos">168</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-169"><a href="#Scope-169"><span class="linenos">169</span></a><span class="sd"> Replace `old` with `new`.</span> -</span><span id="Scope-170"><a href="#Scope-170"><span class="linenos">170</span></a> -</span><span id="Scope-171"><a href="#Scope-171"><span class="linenos">171</span></a><span class="sd"> This can be used instead of `exp.Expression.replace` to ensure the `Scope` is kept up-to-date.</span> -</span><span id="Scope-172"><a href="#Scope-172"><span class="linenos">172</span></a> -</span><span id="Scope-173"><a href="#Scope-173"><span class="linenos">173</span></a><span class="sd"> Args:</span> -</span><span id="Scope-174"><a href="#Scope-174"><span class="linenos">174</span></a><span class="sd"> old (exp.Expression): old node</span> -</span><span id="Scope-175"><a href="#Scope-175"><span class="linenos">175</span></a><span class="sd"> new (exp.Expression): new node</span> -</span><span id="Scope-176"><a href="#Scope-176"><span class="linenos">176</span></a><span class="sd"> """</span> -</span><span id="Scope-177"><a href="#Scope-177"><span class="linenos">177</span></a> <span class="n">old</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> -</span><span id="Scope-178"><a href="#Scope-178"><span class="linenos">178</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="Scope-179"><a href="#Scope-179"><span class="linenos">179</span></a> -</span><span id="Scope-180"><a href="#Scope-180"><span class="linenos">180</span></a> <span class="nd">@property</span> -</span><span id="Scope-181"><a href="#Scope-181"><span class="linenos">181</span></a> <span class="k">def</span> <span class="nf">tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-182"><a href="#Scope-182"><span class="linenos">182</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-183"><a href="#Scope-183"><span class="linenos">183</span></a><span class="sd"> List of tables in this scope.</span> -</span><span id="Scope-184"><a href="#Scope-184"><span class="linenos">184</span></a> -</span><span id="Scope-185"><a href="#Scope-185"><span class="linenos">185</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-186"><a href="#Scope-186"><span class="linenos">186</span></a><span class="sd"> list[exp.Table]: tables</span> -</span><span id="Scope-187"><a href="#Scope-187"><span class="linenos">187</span></a><span class="sd"> """</span> -</span><span id="Scope-188"><a href="#Scope-188"><span class="linenos">188</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="Scope-189"><a href="#Scope-189"><span class="linenos">189</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> -</span><span id="Scope-190"><a href="#Scope-190"><span class="linenos">190</span></a> -</span><span id="Scope-191"><a href="#Scope-191"><span class="linenos">191</span></a> <span class="nd">@property</span> -</span><span id="Scope-192"><a href="#Scope-192"><span class="linenos">192</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-193"><a href="#Scope-193"><span class="linenos">193</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-194"><a href="#Scope-194"><span class="linenos">194</span></a><span class="sd"> List of CTEs in this scope.</span> -</span><span id="Scope-195"><a href="#Scope-195"><span class="linenos">195</span></a> -</span><span id="Scope-196"><a href="#Scope-196"><span class="linenos">196</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-197"><a href="#Scope-197"><span class="linenos">197</span></a><span class="sd"> list[exp.CTE]: ctes</span> -</span><span id="Scope-198"><a href="#Scope-198"><span class="linenos">198</span></a><span class="sd"> """</span> -</span><span id="Scope-199"><a href="#Scope-199"><span class="linenos">199</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="Scope-200"><a href="#Scope-200"><span class="linenos">200</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> -</span><span id="Scope-201"><a href="#Scope-201"><span class="linenos">201</span></a> -</span><span id="Scope-202"><a href="#Scope-202"><span class="linenos">202</span></a> <span class="nd">@property</span> -</span><span id="Scope-203"><a href="#Scope-203"><span class="linenos">203</span></a> <span class="k">def</span> <span class="nf">derived_tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-204"><a href="#Scope-204"><span class="linenos">204</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-205"><a href="#Scope-205"><span class="linenos">205</span></a><span class="sd"> List of derived tables in this scope.</span> -</span><span id="Scope-206"><a href="#Scope-206"><span class="linenos">206</span></a> -</span><span id="Scope-207"><a href="#Scope-207"><span class="linenos">207</span></a><span class="sd"> For example:</span> -</span><span id="Scope-208"><a href="#Scope-208"><span class="linenos">208</span></a><span class="sd"> SELECT * FROM (SELECT ...) <- that's a derived table</span> -</span><span id="Scope-209"><a href="#Scope-209"><span class="linenos">209</span></a> -</span><span id="Scope-210"><a href="#Scope-210"><span class="linenos">210</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-211"><a href="#Scope-211"><span class="linenos">211</span></a><span class="sd"> list[exp.Subquery]: derived tables</span> -</span><span id="Scope-212"><a href="#Scope-212"><span class="linenos">212</span></a><span class="sd"> """</span> -</span><span id="Scope-213"><a href="#Scope-213"><span class="linenos">213</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="Scope-214"><a href="#Scope-214"><span class="linenos">214</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> -</span><span id="Scope-215"><a href="#Scope-215"><span class="linenos">215</span></a> -</span><span id="Scope-216"><a href="#Scope-216"><span class="linenos">216</span></a> <span class="nd">@property</span> -</span><span id="Scope-217"><a href="#Scope-217"><span class="linenos">217</span></a> <span class="k">def</span> <span class="nf">udtfs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-218"><a href="#Scope-218"><span class="linenos">218</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-219"><a href="#Scope-219"><span class="linenos">219</span></a><span class="sd"> List of "User Defined Tabular Functions" in this scope.</span> -</span><span id="Scope-220"><a href="#Scope-220"><span class="linenos">220</span></a> -</span><span id="Scope-221"><a href="#Scope-221"><span class="linenos">221</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-222"><a href="#Scope-222"><span class="linenos">222</span></a><span class="sd"> list[exp.UDTF]: UDTFs</span> -</span><span id="Scope-223"><a href="#Scope-223"><span class="linenos">223</span></a><span class="sd"> """</span> -</span><span id="Scope-224"><a href="#Scope-224"><span class="linenos">224</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="Scope-225"><a href="#Scope-225"><span class="linenos">225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> -</span><span id="Scope-226"><a href="#Scope-226"><span class="linenos">226</span></a> -</span><span id="Scope-227"><a href="#Scope-227"><span class="linenos">227</span></a> <span class="nd">@property</span> -</span><span id="Scope-228"><a href="#Scope-228"><span class="linenos">228</span></a> <span class="k">def</span> <span class="nf">subqueries</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-229"><a href="#Scope-229"><span class="linenos">229</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-230"><a href="#Scope-230"><span class="linenos">230</span></a><span class="sd"> List of subqueries in this scope.</span> -</span><span id="Scope-231"><a href="#Scope-231"><span class="linenos">231</span></a> -</span><span id="Scope-232"><a href="#Scope-232"><span class="linenos">232</span></a><span class="sd"> For example:</span> -</span><span id="Scope-233"><a href="#Scope-233"><span class="linenos">233</span></a><span class="sd"> SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery</span> -</span><span id="Scope-234"><a href="#Scope-234"><span class="linenos">234</span></a> -</span><span id="Scope-235"><a href="#Scope-235"><span class="linenos">235</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-236"><a href="#Scope-236"><span class="linenos">236</span></a><span class="sd"> list[exp.Subqueryable]: subqueries</span> -</span><span id="Scope-237"><a href="#Scope-237"><span class="linenos">237</span></a><span class="sd"> """</span> -</span><span id="Scope-238"><a href="#Scope-238"><span class="linenos">238</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="Scope-239"><a href="#Scope-239"><span class="linenos">239</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> -</span><span id="Scope-240"><a href="#Scope-240"><span class="linenos">240</span></a> -</span><span id="Scope-241"><a href="#Scope-241"><span class="linenos">241</span></a> <span class="nd">@property</span> -</span><span id="Scope-242"><a href="#Scope-242"><span class="linenos">242</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-243"><a href="#Scope-243"><span class="linenos">243</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-244"><a href="#Scope-244"><span class="linenos">244</span></a><span class="sd"> List of columns in this scope.</span> -</span><span id="Scope-245"><a href="#Scope-245"><span class="linenos">245</span></a> -</span><span id="Scope-246"><a href="#Scope-246"><span class="linenos">246</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-247"><a href="#Scope-247"><span class="linenos">247</span></a><span class="sd"> list[exp.Column]: Column instances in this scope, plus any</span> -</span><span id="Scope-248"><a href="#Scope-248"><span class="linenos">248</span></a><span class="sd"> Columns that reference this scope from correlated subqueries.</span> -</span><span id="Scope-249"><a href="#Scope-249"><span class="linenos">249</span></a><span class="sd"> """</span> -</span><span id="Scope-250"><a href="#Scope-250"><span class="linenos">250</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Scope-251"><a href="#Scope-251"><span class="linenos">251</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> -</span><span id="Scope-252"><a href="#Scope-252"><span class="linenos">252</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> -</span><span id="Scope-253"><a href="#Scope-253"><span class="linenos">253</span></a> -</span><span id="Scope-254"><a href="#Scope-254"><span class="linenos">254</span></a> <span class="n">external_columns</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="Scope-255"><a href="#Scope-255"><span class="linenos">255</span></a> <span class="n">column</span> -</span><span id="Scope-256"><a href="#Scope-256"><span class="linenos">256</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span><span class="p">)</span> -</span><span id="Scope-257"><a href="#Scope-257"><span class="linenos">257</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> -</span><span id="Scope-258"><a href="#Scope-258"><span class="linenos">258</span></a> <span class="p">]</span> -</span><span id="Scope-259"><a href="#Scope-259"><span class="linenos">259</span></a> -</span><span id="Scope-260"><a href="#Scope-260"><span class="linenos">260</span></a> <span class="n">named_selects</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">)</span> -</span><span id="Scope-261"><a href="#Scope-261"><span class="linenos">261</span></a> -</span><span id="Scope-262"><a href="#Scope-262"><span class="linenos">262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-263"><a href="#Scope-263"><span class="linenos">263</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> <span class="o">+</span> <span class="n">external_columns</span><span class="p">:</span> -</span><span id="Scope-264"><a href="#Scope-264"><span class="linenos">264</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">column</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">Qualify</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">)</span> -</span><span id="Scope-265"><a href="#Scope-265"><span class="linenos">265</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Scope-266"><a href="#Scope-266"><span class="linenos">266</span></a> <span class="ow">not</span> <span class="n">ancestor</span> -</span><span id="Scope-267"><a href="#Scope-267"><span class="linenos">267</span></a> <span class="c1"># Window functions can have an ORDER BY clause</span> -</span><span id="Scope-268"><a href="#Scope-268"><span class="linenos">268</span></a> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="o">.</span><span class="n">parent</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="Scope-269"><a href="#Scope-269"><span class="linenos">269</span></a> <span class="ow">or</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> -</span><span id="Scope-270"><a href="#Scope-270"><span class="linenos">270</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">named_selects</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">))</span> -</span><span id="Scope-271"><a href="#Scope-271"><span class="linenos">271</span></a> <span class="p">):</span> -</span><span id="Scope-272"><a href="#Scope-272"><span class="linenos">272</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> -</span><span id="Scope-273"><a href="#Scope-273"><span class="linenos">273</span></a> -</span><span id="Scope-274"><a href="#Scope-274"><span class="linenos">274</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> -</span><span id="Scope-275"><a href="#Scope-275"><span class="linenos">275</span></a> -</span><span id="Scope-276"><a href="#Scope-276"><span class="linenos">276</span></a> <span class="nd">@property</span> -</span><span id="Scope-277"><a href="#Scope-277"><span class="linenos">277</span></a> <span class="k">def</span> <span class="nf">selected_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-278"><a href="#Scope-278"><span class="linenos">278</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-279"><a href="#Scope-279"><span class="linenos">279</span></a><span class="sd"> Mapping of nodes and sources that are actually selected from in this scope.</span> -</span><span id="Scope-280"><a href="#Scope-280"><span class="linenos">280</span></a> -</span><span id="Scope-281"><a href="#Scope-281"><span class="linenos">281</span></a><span class="sd"> That is, all tables in a schema are selectable at any point. But a</span> -</span><span id="Scope-282"><a href="#Scope-282"><span class="linenos">282</span></a><span class="sd"> table only becomes a selected source if it's included in a FROM or JOIN clause.</span> -</span><span id="Scope-283"><a href="#Scope-283"><span class="linenos">283</span></a> -</span><span id="Scope-284"><a href="#Scope-284"><span class="linenos">284</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-285"><a href="#Scope-285"><span class="linenos">285</span></a><span class="sd"> dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes</span> -</span><span id="Scope-286"><a href="#Scope-286"><span class="linenos">286</span></a><span class="sd"> """</span> -</span><span id="Scope-287"><a href="#Scope-287"><span class="linenos">287</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Scope-288"><a href="#Scope-288"><span class="linenos">288</span></a> <span class="n">referenced_names</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope-289"><a href="#Scope-289"><span class="linenos">289</span></a> -</span><span id="Scope-290"><a href="#Scope-290"><span class="linenos">290</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tables</span><span class="p">:</span> -</span><span id="Scope-291"><a href="#Scope-291"><span class="linenos">291</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">table</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">,</span> <span class="n">table</span><span class="p">))</span> -</span><span id="Scope-292"><a href="#Scope-292"><span class="linenos">292</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">derived_tables</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtfs</span><span class="p">):</span> -</span><span id="Scope-293"><a href="#Scope-293"><span class="linenos">293</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()))</span> -</span><span id="Scope-294"><a href="#Scope-294"><span class="linenos">294</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="Scope-295"><a href="#Scope-295"><span class="linenos">295</span></a> -</span><span id="Scope-296"><a href="#Scope-296"><span class="linenos">296</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">referenced_names</span><span class="p">:</span> -</span><span id="Scope-297"><a href="#Scope-297"><span class="linenos">297</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> -</span><span id="Scope-298"><a href="#Scope-298"><span class="linenos">298</span></a> <span class="n">result</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">])</span> -</span><span id="Scope-299"><a href="#Scope-299"><span class="linenos">299</span></a> -</span><span id="Scope-300"><a href="#Scope-300"><span class="linenos">300</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="n">result</span> -</span><span id="Scope-301"><a href="#Scope-301"><span class="linenos">301</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope-20"><a href="#Scope-20"><span class="linenos"> 20</span></a><span class="k">class</span> <span class="nc">Scope</span><span class="p">:</span> +</span><span id="Scope-21"><a href="#Scope-21"><span class="linenos"> 21</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-22"><a href="#Scope-22"><span class="linenos"> 22</span></a><span class="sd"> Selection scope.</span> +</span><span id="Scope-23"><a href="#Scope-23"><span class="linenos"> 23</span></a> +</span><span id="Scope-24"><a href="#Scope-24"><span class="linenos"> 24</span></a><span class="sd"> Attributes:</span> +</span><span id="Scope-25"><a href="#Scope-25"><span class="linenos"> 25</span></a><span class="sd"> expression (exp.Select|exp.Union): Root expression of this scope</span> +</span><span id="Scope-26"><a href="#Scope-26"><span class="linenos"> 26</span></a><span class="sd"> sources (dict[str, exp.Table|Scope]): Mapping of source name to either</span> +</span><span id="Scope-27"><a href="#Scope-27"><span class="linenos"> 27</span></a><span class="sd"> a Table expression or another Scope instance. For example:</span> +</span><span id="Scope-28"><a href="#Scope-28"><span class="linenos"> 28</span></a><span class="sd"> SELECT * FROM x {"x": Table(this="x")}</span> +</span><span id="Scope-29"><a href="#Scope-29"><span class="linenos"> 29</span></a><span class="sd"> SELECT * FROM x AS y {"y": Table(this="x")}</span> +</span><span id="Scope-30"><a href="#Scope-30"><span class="linenos"> 30</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y {"y": Scope(...)}</span> +</span><span id="Scope-31"><a href="#Scope-31"><span class="linenos"> 31</span></a><span class="sd"> lateral_sources (dict[str, exp.Table|Scope]): Sources from laterals</span> +</span><span id="Scope-32"><a href="#Scope-32"><span class="linenos"> 32</span></a><span class="sd"> For example:</span> +</span><span id="Scope-33"><a href="#Scope-33"><span class="linenos"> 33</span></a><span class="sd"> SELECT c FROM x LATERAL VIEW EXPLODE (a) AS c;</span> +</span><span id="Scope-34"><a href="#Scope-34"><span class="linenos"> 34</span></a><span class="sd"> The LATERAL VIEW EXPLODE gets x as a source.</span> +</span><span id="Scope-35"><a href="#Scope-35"><span class="linenos"> 35</span></a><span class="sd"> outer_column_list (list[str]): If this is a derived table or CTE, and the outer query</span> +</span><span id="Scope-36"><a href="#Scope-36"><span class="linenos"> 36</span></a><span class="sd"> defines a column list of it's alias of this scope, this is that list of columns.</span> +</span><span id="Scope-37"><a href="#Scope-37"><span class="linenos"> 37</span></a><span class="sd"> For example:</span> +</span><span id="Scope-38"><a href="#Scope-38"><span class="linenos"> 38</span></a><span class="sd"> SELECT * FROM (SELECT ...) AS y(col1, col2)</span> +</span><span id="Scope-39"><a href="#Scope-39"><span class="linenos"> 39</span></a><span class="sd"> The inner query would have `["col1", "col2"]` for its `outer_column_list`</span> +</span><span id="Scope-40"><a href="#Scope-40"><span class="linenos"> 40</span></a><span class="sd"> parent (Scope): Parent scope</span> +</span><span id="Scope-41"><a href="#Scope-41"><span class="linenos"> 41</span></a><span class="sd"> scope_type (ScopeType): Type of this scope, relative to it's parent</span> +</span><span id="Scope-42"><a href="#Scope-42"><span class="linenos"> 42</span></a><span class="sd"> subquery_scopes (list[Scope]): List of all child scopes for subqueries</span> +</span><span id="Scope-43"><a href="#Scope-43"><span class="linenos"> 43</span></a><span class="sd"> cte_scopes (list[Scope]): List of all child scopes for CTEs</span> +</span><span id="Scope-44"><a href="#Scope-44"><span class="linenos"> 44</span></a><span class="sd"> derived_table_scopes (list[Scope]): List of all child scopes for derived_tables</span> +</span><span id="Scope-45"><a href="#Scope-45"><span class="linenos"> 45</span></a><span class="sd"> udtf_scopes (list[Scope]): List of all child scopes for user defined tabular functions</span> +</span><span id="Scope-46"><a href="#Scope-46"><span class="linenos"> 46</span></a><span class="sd"> table_scopes (list[Scope]): derived_table_scopes + udtf_scopes, in the order that they're defined</span> +</span><span id="Scope-47"><a href="#Scope-47"><span class="linenos"> 47</span></a><span class="sd"> union_scopes (list[Scope, Scope]): If this Scope is for a Union expression, this will be</span> +</span><span id="Scope-48"><a href="#Scope-48"><span class="linenos"> 48</span></a><span class="sd"> a list of the left and right child scopes.</span> +</span><span id="Scope-49"><a href="#Scope-49"><span class="linenos"> 49</span></a><span class="sd"> """</span> +</span><span id="Scope-50"><a href="#Scope-50"><span class="linenos"> 50</span></a> +</span><span id="Scope-51"><a href="#Scope-51"><span class="linenos"> 51</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="Scope-52"><a href="#Scope-52"><span class="linenos"> 52</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Scope-53"><a href="#Scope-53"><span class="linenos"> 53</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Scope-54"><a href="#Scope-54"><span class="linenos"> 54</span></a> <span class="n">sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope-55"><a href="#Scope-55"><span class="linenos"> 55</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope-56"><a href="#Scope-56"><span class="linenos"> 56</span></a> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope-57"><a href="#Scope-57"><span class="linenos"> 57</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span><span class="p">,</span> +</span><span id="Scope-58"><a href="#Scope-58"><span class="linenos"> 58</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope-59"><a href="#Scope-59"><span class="linenos"> 59</span></a> <span class="p">):</span> +</span><span id="Scope-60"><a href="#Scope-60"><span class="linenos"> 60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="Scope-61"><a href="#Scope-61"><span class="linenos"> 61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span> <span class="o">=</span> <span class="n">sources</span> <span class="ow">or</span> <span class="p">{}</span> +</span><span id="Scope-62"><a href="#Scope-62"><span class="linenos"> 62</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">lateral_sources</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">lateral_sources</span> <span class="k">else</span> <span class="p">{}</span> +</span><span id="Scope-63"><a href="#Scope-63"><span class="linenos"> 63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> +</span><span id="Scope-64"><a href="#Scope-64"><span class="linenos"> 64</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">outer_column_list</span> <span class="o">=</span> <span class="n">outer_column_list</span> <span class="ow">or</span> <span class="p">[]</span> +</span><span id="Scope-65"><a href="#Scope-65"><span class="linenos"> 65</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> +</span><span id="Scope-66"><a href="#Scope-66"><span class="linenos"> 66</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">=</span> <span class="n">scope_type</span> +</span><span id="Scope-67"><a href="#Scope-67"><span class="linenos"> 67</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-68"><a href="#Scope-68"><span class="linenos"> 68</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">derived_table_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-69"><a href="#Scope-69"><span class="linenos"> 69</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-70"><a href="#Scope-70"><span class="linenos"> 70</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-71"><a href="#Scope-71"><span class="linenos"> 71</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-72"><a href="#Scope-72"><span class="linenos"> 72</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-73"><a href="#Scope-73"><span class="linenos"> 73</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="Scope-74"><a href="#Scope-74"><span class="linenos"> 74</span></a> +</span><span id="Scope-75"><a href="#Scope-75"><span class="linenos"> 75</span></a> <span class="k">def</span> <span class="nf">clear_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-76"><a href="#Scope-76"><span class="linenos"> 76</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Scope-77"><a href="#Scope-77"><span class="linenos"> 77</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-78"><a href="#Scope-78"><span class="linenos"> 78</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-79"><a href="#Scope-79"><span class="linenos"> 79</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-80"><a href="#Scope-80"><span class="linenos"> 80</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-81"><a href="#Scope-81"><span class="linenos"> 81</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-82"><a href="#Scope-82"><span class="linenos"> 82</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-83"><a href="#Scope-83"><span class="linenos"> 83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-84"><a href="#Scope-84"><span class="linenos"> 84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-85"><a href="#Scope-85"><span class="linenos"> 85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-86"><a href="#Scope-86"><span class="linenos"> 86</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope-87"><a href="#Scope-87"><span class="linenos"> 87</span></a> +</span><span id="Scope-88"><a href="#Scope-88"><span class="linenos"> 88</span></a> <span class="k">def</span> <span class="nf">branch</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">scope_type</span><span class="p">,</span> <span class="n">chain_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="Scope-89"><a href="#Scope-89"><span class="linenos"> 89</span></a><span class="w"> </span><span class="sd">"""Branch from the current scope to a new, inner scope"""</span> +</span><span id="Scope-90"><a href="#Scope-90"><span class="linenos"> 90</span></a> <span class="k">return</span> <span class="n">Scope</span><span class="p">(</span> +</span><span id="Scope-91"><a href="#Scope-91"><span class="linenos"> 91</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">(),</span> +</span><span id="Scope-92"><a href="#Scope-92"><span class="linenos"> 92</span></a> <span class="n">sources</span><span class="o">=</span><span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">cte_sources</span><span class="p">,</span> <span class="o">**</span><span class="p">(</span><span class="n">chain_sources</span> <span class="ow">or</span> <span class="p">{})},</span> +</span><span id="Scope-93"><a href="#Scope-93"><span class="linenos"> 93</span></a> <span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Scope-94"><a href="#Scope-94"><span class="linenos"> 94</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> +</span><span id="Scope-95"><a href="#Scope-95"><span class="linenos"> 95</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> +</span><span id="Scope-96"><a href="#Scope-96"><span class="linenos"> 96</span></a> <span class="p">)</span> +</span><span id="Scope-97"><a href="#Scope-97"><span class="linenos"> 97</span></a> +</span><span id="Scope-98"><a href="#Scope-98"><span class="linenos"> 98</span></a> <span class="k">def</span> <span class="nf">_collect</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-99"><a href="#Scope-99"><span class="linenos"> 99</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-100"><a href="#Scope-100"><span class="linenos">100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-101"><a href="#Scope-101"><span class="linenos">101</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-102"><a href="#Scope-102"><span class="linenos">102</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-103"><a href="#Scope-103"><span class="linenos">103</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-104"><a href="#Scope-104"><span class="linenos">104</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-105"><a href="#Scope-105"><span class="linenos">105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-106"><a href="#Scope-106"><span class="linenos">106</span></a> +</span><span id="Scope-107"><a href="#Scope-107"><span class="linenos">107</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Scope-108"><a href="#Scope-108"><span class="linenos">108</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">:</span> +</span><span id="Scope-109"><a href="#Scope-109"><span class="linenos">109</span></a> <span class="k">continue</span> +</span><span id="Scope-110"><a href="#Scope-110"><span class="linenos">110</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</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">Star</span><span class="p">):</span> +</span><span id="Scope-111"><a href="#Scope-111"><span class="linenos">111</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-112"><a href="#Scope-112"><span class="linenos">112</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="o">.</span><span class="n">parent</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> +</span><span id="Scope-113"><a href="#Scope-113"><span class="linenos">113</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-114"><a href="#Scope-114"><span class="linenos">114</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">):</span> +</span><span id="Scope-115"><a href="#Scope-115"><span class="linenos">115</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-116"><a href="#Scope-116"><span class="linenos">116</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">):</span> +</span><span id="Scope-117"><a href="#Scope-117"><span class="linenos">117</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-118"><a href="#Scope-118"><span class="linenos">118</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">):</span> +</span><span id="Scope-119"><a href="#Scope-119"><span class="linenos">119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-120"><a href="#Scope-120"><span class="linenos">120</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="Scope-121"><a href="#Scope-121"><span class="linenos">121</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-122"><a href="#Scope-122"><span class="linenos">122</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Scope-123"><a href="#Scope-123"><span class="linenos">123</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">node</span><span class="p">)</span> +</span><span id="Scope-124"><a href="#Scope-124"><span class="linenos">124</span></a> +</span><span id="Scope-125"><a href="#Scope-125"><span class="linenos">125</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Scope-126"><a href="#Scope-126"><span class="linenos">126</span></a> +</span><span id="Scope-127"><a href="#Scope-127"><span class="linenos">127</span></a> <span class="k">def</span> <span class="nf">_ensure_collected</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-128"><a href="#Scope-128"><span class="linenos">128</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span><span class="p">:</span> +</span><span id="Scope-129"><a href="#Scope-129"><span class="linenos">129</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collect</span><span class="p">()</span> +</span><span id="Scope-130"><a href="#Scope-130"><span class="linenos">130</span></a> +</span><span id="Scope-131"><a href="#Scope-131"><span class="linenos">131</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Scope-132"><a href="#Scope-132"><span class="linenos">132</span></a> <span class="k">return</span> <span class="n">walk_in_scope</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">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">)</span> +</span><span id="Scope-133"><a href="#Scope-133"><span class="linenos">133</span></a> +</span><span id="Scope-134"><a href="#Scope-134"><span class="linenos">134</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Scope-135"><a href="#Scope-135"><span class="linenos">135</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-136"><a href="#Scope-136"><span class="linenos">136</span></a><span class="sd"> Returns the first node in this scope which matches at least one of the specified types.</span> +</span><span id="Scope-137"><a href="#Scope-137"><span class="linenos">137</span></a> +</span><span id="Scope-138"><a href="#Scope-138"><span class="linenos">138</span></a><span class="sd"> This does NOT traverse into subscopes.</span> +</span><span id="Scope-139"><a href="#Scope-139"><span class="linenos">139</span></a> +</span><span id="Scope-140"><a href="#Scope-140"><span class="linenos">140</span></a><span class="sd"> Args:</span> +</span><span id="Scope-141"><a href="#Scope-141"><span class="linenos">141</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> +</span><span id="Scope-142"><a href="#Scope-142"><span class="linenos">142</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> +</span><span id="Scope-143"><a href="#Scope-143"><span class="linenos">143</span></a> +</span><span id="Scope-144"><a href="#Scope-144"><span class="linenos">144</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-145"><a href="#Scope-145"><span class="linenos">145</span></a><span class="sd"> exp.Expression: the node which matches the criteria or None if no node matching</span> +</span><span id="Scope-146"><a href="#Scope-146"><span class="linenos">146</span></a><span class="sd"> the criteria was found.</span> +</span><span id="Scope-147"><a href="#Scope-147"><span class="linenos">147</span></a><span class="sd"> """</span> +</span><span id="Scope-148"><a href="#Scope-148"><span class="linenos">148</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Scope-149"><a href="#Scope-149"><span class="linenos">149</span></a> +</span><span id="Scope-150"><a href="#Scope-150"><span class="linenos">150</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Scope-151"><a href="#Scope-151"><span class="linenos">151</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-152"><a href="#Scope-152"><span class="linenos">152</span></a><span class="sd"> Returns a generator object which visits all nodes in this scope and only yields those that</span> +</span><span id="Scope-153"><a href="#Scope-153"><span class="linenos">153</span></a><span class="sd"> match at least one of the specified expression types.</span> +</span><span id="Scope-154"><a href="#Scope-154"><span class="linenos">154</span></a> +</span><span id="Scope-155"><a href="#Scope-155"><span class="linenos">155</span></a><span class="sd"> This does NOT traverse into subscopes.</span> +</span><span id="Scope-156"><a href="#Scope-156"><span class="linenos">156</span></a> +</span><span id="Scope-157"><a href="#Scope-157"><span class="linenos">157</span></a><span class="sd"> Args:</span> +</span><span id="Scope-158"><a href="#Scope-158"><span class="linenos">158</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> +</span><span id="Scope-159"><a href="#Scope-159"><span class="linenos">159</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> +</span><span id="Scope-160"><a href="#Scope-160"><span class="linenos">160</span></a> +</span><span id="Scope-161"><a href="#Scope-161"><span class="linenos">161</span></a><span class="sd"> Yields:</span> +</span><span id="Scope-162"><a href="#Scope-162"><span class="linenos">162</span></a><span class="sd"> exp.Expression: nodes</span> +</span><span id="Scope-163"><a href="#Scope-163"><span class="linenos">163</span></a><span class="sd"> """</span> +</span><span id="Scope-164"><a href="#Scope-164"><span class="linenos">164</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span> +</span><span id="Scope-165"><a href="#Scope-165"><span class="linenos">165</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span> +</span><span id="Scope-166"><a href="#Scope-166"><span class="linenos">166</span></a> <span class="k">yield</span> <span class="n">expression</span> +</span><span id="Scope-167"><a href="#Scope-167"><span class="linenos">167</span></a> +</span><span id="Scope-168"><a href="#Scope-168"><span class="linenos">168</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old</span><span class="p">,</span> <span class="n">new</span><span class="p">):</span> +</span><span id="Scope-169"><a href="#Scope-169"><span class="linenos">169</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-170"><a href="#Scope-170"><span class="linenos">170</span></a><span class="sd"> Replace `old` with `new`.</span> +</span><span id="Scope-171"><a href="#Scope-171"><span class="linenos">171</span></a> +</span><span id="Scope-172"><a href="#Scope-172"><span class="linenos">172</span></a><span class="sd"> This can be used instead of `exp.Expression.replace` to ensure the `Scope` is kept up-to-date.</span> +</span><span id="Scope-173"><a href="#Scope-173"><span class="linenos">173</span></a> +</span><span id="Scope-174"><a href="#Scope-174"><span class="linenos">174</span></a><span class="sd"> Args:</span> +</span><span id="Scope-175"><a href="#Scope-175"><span class="linenos">175</span></a><span class="sd"> old (exp.Expression): old node</span> +</span><span id="Scope-176"><a href="#Scope-176"><span class="linenos">176</span></a><span class="sd"> new (exp.Expression): new node</span> +</span><span id="Scope-177"><a href="#Scope-177"><span class="linenos">177</span></a><span class="sd"> """</span> +</span><span id="Scope-178"><a href="#Scope-178"><span class="linenos">178</span></a> <span class="n">old</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> +</span><span id="Scope-179"><a href="#Scope-179"><span class="linenos">179</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="Scope-180"><a href="#Scope-180"><span class="linenos">180</span></a> +</span><span id="Scope-181"><a href="#Scope-181"><span class="linenos">181</span></a> <span class="nd">@property</span> +</span><span id="Scope-182"><a href="#Scope-182"><span class="linenos">182</span></a> <span class="k">def</span> <span class="nf">tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-183"><a href="#Scope-183"><span class="linenos">183</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-184"><a href="#Scope-184"><span class="linenos">184</span></a><span class="sd"> List of tables in this scope.</span> +</span><span id="Scope-185"><a href="#Scope-185"><span class="linenos">185</span></a> +</span><span id="Scope-186"><a href="#Scope-186"><span class="linenos">186</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-187"><a href="#Scope-187"><span class="linenos">187</span></a><span class="sd"> list[exp.Table]: tables</span> +</span><span id="Scope-188"><a href="#Scope-188"><span class="linenos">188</span></a><span class="sd"> """</span> +</span><span id="Scope-189"><a href="#Scope-189"><span class="linenos">189</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="Scope-190"><a href="#Scope-190"><span class="linenos">190</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> +</span><span id="Scope-191"><a href="#Scope-191"><span class="linenos">191</span></a> +</span><span id="Scope-192"><a href="#Scope-192"><span class="linenos">192</span></a> <span class="nd">@property</span> +</span><span id="Scope-193"><a href="#Scope-193"><span class="linenos">193</span></a> <span class="k">def</span> <span class="nf">ctes</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-194"><a href="#Scope-194"><span class="linenos">194</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-195"><a href="#Scope-195"><span class="linenos">195</span></a><span class="sd"> List of CTEs in this scope.</span> +</span><span id="Scope-196"><a href="#Scope-196"><span class="linenos">196</span></a> +</span><span id="Scope-197"><a href="#Scope-197"><span class="linenos">197</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-198"><a href="#Scope-198"><span class="linenos">198</span></a><span class="sd"> list[exp.CTE]: ctes</span> +</span><span id="Scope-199"><a href="#Scope-199"><span class="linenos">199</span></a><span class="sd"> """</span> +</span><span id="Scope-200"><a href="#Scope-200"><span class="linenos">200</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="Scope-201"><a href="#Scope-201"><span class="linenos">201</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> +</span><span id="Scope-202"><a href="#Scope-202"><span class="linenos">202</span></a> +</span><span id="Scope-203"><a href="#Scope-203"><span class="linenos">203</span></a> <span class="nd">@property</span> +</span><span id="Scope-204"><a href="#Scope-204"><span class="linenos">204</span></a> <span class="k">def</span> <span class="nf">derived_tables</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-205"><a href="#Scope-205"><span class="linenos">205</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-206"><a href="#Scope-206"><span class="linenos">206</span></a><span class="sd"> List of derived tables in this scope.</span> +</span><span id="Scope-207"><a href="#Scope-207"><span class="linenos">207</span></a> +</span><span id="Scope-208"><a href="#Scope-208"><span class="linenos">208</span></a><span class="sd"> For example:</span> +</span><span id="Scope-209"><a href="#Scope-209"><span class="linenos">209</span></a><span class="sd"> SELECT * FROM (SELECT ...) <- that's a derived table</span> +</span><span id="Scope-210"><a href="#Scope-210"><span class="linenos">210</span></a> +</span><span id="Scope-211"><a href="#Scope-211"><span class="linenos">211</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-212"><a href="#Scope-212"><span class="linenos">212</span></a><span class="sd"> list[exp.Subquery]: derived tables</span> +</span><span id="Scope-213"><a href="#Scope-213"><span class="linenos">213</span></a><span class="sd"> """</span> +</span><span id="Scope-214"><a href="#Scope-214"><span class="linenos">214</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="Scope-215"><a href="#Scope-215"><span class="linenos">215</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> +</span><span id="Scope-216"><a href="#Scope-216"><span class="linenos">216</span></a> +</span><span id="Scope-217"><a href="#Scope-217"><span class="linenos">217</span></a> <span class="nd">@property</span> +</span><span id="Scope-218"><a href="#Scope-218"><span class="linenos">218</span></a> <span class="k">def</span> <span class="nf">udtfs</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-219"><a href="#Scope-219"><span class="linenos">219</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-220"><a href="#Scope-220"><span class="linenos">220</span></a><span class="sd"> List of "User Defined Tabular Functions" in this scope.</span> +</span><span id="Scope-221"><a href="#Scope-221"><span class="linenos">221</span></a> +</span><span id="Scope-222"><a href="#Scope-222"><span class="linenos">222</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-223"><a href="#Scope-223"><span class="linenos">223</span></a><span class="sd"> list[exp.UDTF]: UDTFs</span> +</span><span id="Scope-224"><a href="#Scope-224"><span class="linenos">224</span></a><span class="sd"> """</span> +</span><span id="Scope-225"><a href="#Scope-225"><span class="linenos">225</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="Scope-226"><a href="#Scope-226"><span class="linenos">226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> +</span><span id="Scope-227"><a href="#Scope-227"><span class="linenos">227</span></a> +</span><span id="Scope-228"><a href="#Scope-228"><span class="linenos">228</span></a> <span class="nd">@property</span> +</span><span id="Scope-229"><a href="#Scope-229"><span class="linenos">229</span></a> <span class="k">def</span> <span class="nf">subqueries</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-230"><a href="#Scope-230"><span class="linenos">230</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-231"><a href="#Scope-231"><span class="linenos">231</span></a><span class="sd"> List of subqueries in this scope.</span> +</span><span id="Scope-232"><a href="#Scope-232"><span class="linenos">232</span></a> +</span><span id="Scope-233"><a href="#Scope-233"><span class="linenos">233</span></a><span class="sd"> For example:</span> +</span><span id="Scope-234"><a href="#Scope-234"><span class="linenos">234</span></a><span class="sd"> SELECT * FROM x WHERE a IN (SELECT ...) <- that's a subquery</span> +</span><span id="Scope-235"><a href="#Scope-235"><span class="linenos">235</span></a> +</span><span id="Scope-236"><a href="#Scope-236"><span class="linenos">236</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-237"><a href="#Scope-237"><span class="linenos">237</span></a><span class="sd"> list[exp.Subqueryable]: subqueries</span> +</span><span id="Scope-238"><a href="#Scope-238"><span class="linenos">238</span></a><span class="sd"> """</span> +</span><span id="Scope-239"><a href="#Scope-239"><span class="linenos">239</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="Scope-240"><a href="#Scope-240"><span class="linenos">240</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> +</span><span id="Scope-241"><a href="#Scope-241"><span class="linenos">241</span></a> +</span><span id="Scope-242"><a href="#Scope-242"><span class="linenos">242</span></a> <span class="nd">@property</span> +</span><span id="Scope-243"><a href="#Scope-243"><span class="linenos">243</span></a> <span class="k">def</span> <span class="nf">columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-244"><a href="#Scope-244"><span class="linenos">244</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-245"><a href="#Scope-245"><span class="linenos">245</span></a><span class="sd"> List of columns in this scope.</span> +</span><span id="Scope-246"><a href="#Scope-246"><span class="linenos">246</span></a> +</span><span id="Scope-247"><a href="#Scope-247"><span class="linenos">247</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-248"><a href="#Scope-248"><span class="linenos">248</span></a><span class="sd"> list[exp.Column]: Column instances in this scope, plus any</span> +</span><span id="Scope-249"><a href="#Scope-249"><span class="linenos">249</span></a><span class="sd"> Columns that reference this scope from correlated subqueries.</span> +</span><span id="Scope-250"><a href="#Scope-250"><span class="linenos">250</span></a><span class="sd"> """</span> +</span><span id="Scope-251"><a href="#Scope-251"><span class="linenos">251</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Scope-252"><a href="#Scope-252"><span class="linenos">252</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ensure_collected</span><span class="p">()</span> +</span><span id="Scope-253"><a href="#Scope-253"><span class="linenos">253</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> +</span><span id="Scope-254"><a href="#Scope-254"><span class="linenos">254</span></a> +</span><span id="Scope-255"><a href="#Scope-255"><span class="linenos">255</span></a> <span class="n">external_columns</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="Scope-256"><a href="#Scope-256"><span class="linenos">256</span></a> <span class="n">column</span> +</span><span id="Scope-257"><a href="#Scope-257"><span class="linenos">257</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span><span class="p">)</span> +</span><span id="Scope-258"><a href="#Scope-258"><span class="linenos">258</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">external_columns</span> +</span><span id="Scope-259"><a href="#Scope-259"><span class="linenos">259</span></a> <span class="p">]</span> +</span><span id="Scope-260"><a href="#Scope-260"><span class="linenos">260</span></a> +</span><span id="Scope-261"><a href="#Scope-261"><span class="linenos">261</span></a> <span class="n">named_selects</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">)</span> +</span><span id="Scope-262"><a href="#Scope-262"><span class="linenos">262</span></a> +</span><span id="Scope-263"><a href="#Scope-263"><span class="linenos">263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-264"><a href="#Scope-264"><span class="linenos">264</span></a> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="n">columns</span> <span class="o">+</span> <span class="n">external_columns</span><span class="p">:</span> +</span><span id="Scope-265"><a href="#Scope-265"><span class="linenos">265</span></a> <span class="n">ancestor</span> <span class="o">=</span> <span class="n">column</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">Qualify</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Order</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Having</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">)</span> +</span><span id="Scope-266"><a href="#Scope-266"><span class="linenos">266</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Scope-267"><a href="#Scope-267"><span class="linenos">267</span></a> <span class="ow">not</span> <span class="n">ancestor</span> +</span><span id="Scope-268"><a href="#Scope-268"><span class="linenos">268</span></a> <span class="c1"># Window functions can have an ORDER BY clause</span> +</span><span id="Scope-269"><a href="#Scope-269"><span class="linenos">269</span></a> <span class="ow">or</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="o">.</span><span class="n">parent</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="Scope-270"><a href="#Scope-270"><span class="linenos">270</span></a> <span class="ow">or</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> +</span><span id="Scope-271"><a href="#Scope-271"><span class="linenos">271</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">column</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">named_selects</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ancestor</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Hint</span><span class="p">))</span> +</span><span id="Scope-272"><a href="#Scope-272"><span class="linenos">272</span></a> <span class="p">):</span> +</span><span id="Scope-273"><a href="#Scope-273"><span class="linenos">273</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">column</span><span class="p">)</span> +</span><span id="Scope-274"><a href="#Scope-274"><span class="linenos">274</span></a> +</span><span id="Scope-275"><a href="#Scope-275"><span class="linenos">275</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> +</span><span id="Scope-276"><a href="#Scope-276"><span class="linenos">276</span></a> +</span><span id="Scope-277"><a href="#Scope-277"><span class="linenos">277</span></a> <span class="nd">@property</span> +</span><span id="Scope-278"><a href="#Scope-278"><span class="linenos">278</span></a> <span class="k">def</span> <span class="nf">selected_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-279"><a href="#Scope-279"><span class="linenos">279</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-280"><a href="#Scope-280"><span class="linenos">280</span></a><span class="sd"> Mapping of nodes and sources that are actually selected from in this scope.</span> +</span><span id="Scope-281"><a href="#Scope-281"><span class="linenos">281</span></a> +</span><span id="Scope-282"><a href="#Scope-282"><span class="linenos">282</span></a><span class="sd"> That is, all tables in a schema are selectable at any point. But a</span> +</span><span id="Scope-283"><a href="#Scope-283"><span class="linenos">283</span></a><span class="sd"> table only becomes a selected source if it's included in a FROM or JOIN clause.</span> +</span><span id="Scope-284"><a href="#Scope-284"><span class="linenos">284</span></a> +</span><span id="Scope-285"><a href="#Scope-285"><span class="linenos">285</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-286"><a href="#Scope-286"><span class="linenos">286</span></a><span class="sd"> dict[str, (exp.Table|exp.Select, exp.Table|Scope)]: selected sources and nodes</span> +</span><span id="Scope-287"><a href="#Scope-287"><span class="linenos">287</span></a><span class="sd"> """</span> +</span><span id="Scope-288"><a href="#Scope-288"><span class="linenos">288</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Scope-289"><a href="#Scope-289"><span class="linenos">289</span></a> <span class="n">referenced_names</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope-290"><a href="#Scope-290"><span class="linenos">290</span></a> +</span><span id="Scope-291"><a href="#Scope-291"><span class="linenos">291</span></a> <span class="k">for</span> <span class="n">table</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tables</span><span class="p">:</span> +</span><span id="Scope-292"><a href="#Scope-292"><span class="linenos">292</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">table</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">,</span> <span class="n">table</span><span class="p">))</span> +</span><span id="Scope-293"><a href="#Scope-293"><span class="linenos">293</span></a> <span class="k">for</span> <span class="n">expression</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">derived_tables</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">udtfs</span><span class="p">):</span> +</span><span id="Scope-294"><a href="#Scope-294"><span class="linenos">294</span></a> <span class="n">referenced_names</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="n">expression</span><span class="o">.</span><span class="n">alias</span><span class="p">,</span> <span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()))</span> +</span><span id="Scope-295"><a href="#Scope-295"><span class="linenos">295</span></a> <span class="n">result</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Scope-296"><a href="#Scope-296"><span class="linenos">296</span></a> +</span><span id="Scope-297"><a href="#Scope-297"><span class="linenos">297</span></a> <span class="k">for</span> <span class="n">name</span><span class="p">,</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">referenced_names</span><span class="p">:</span> +</span><span id="Scope-298"><a href="#Scope-298"><span class="linenos">298</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">result</span><span class="p">:</span> +</span><span id="Scope-299"><a href="#Scope-299"><span class="linenos">299</span></a> <span class="k">raise</span> <span class="n">OptimizeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Alias already used: </span><span class="si">{</span><span class="n">name</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Scope-300"><a href="#Scope-300"><span class="linenos">300</span></a> <span class="k">if</span> <span class="n">name</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">:</span> +</span><span id="Scope-301"><a href="#Scope-301"><span class="linenos">301</span></a> <span class="n">result</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">])</span> </span><span id="Scope-302"><a href="#Scope-302"><span class="linenos">302</span></a> -</span><span id="Scope-303"><a href="#Scope-303"><span class="linenos">303</span></a> <span class="nd">@property</span> -</span><span id="Scope-304"><a href="#Scope-304"><span class="linenos">304</span></a> <span class="k">def</span> <span class="nf">cte_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-305"><a href="#Scope-305"><span class="linenos">305</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-306"><a href="#Scope-306"><span class="linenos">306</span></a><span class="sd"> Sources that are CTEs.</span> -</span><span id="Scope-307"><a href="#Scope-307"><span class="linenos">307</span></a> -</span><span id="Scope-308"><a href="#Scope-308"><span class="linenos">308</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-309"><a href="#Scope-309"><span class="linenos">309</span></a><span class="sd"> dict[str, Scope]: Mapping of source alias to Scope</span> -</span><span id="Scope-310"><a href="#Scope-310"><span class="linenos">310</span></a><span class="sd"> """</span> -</span><span id="Scope-311"><a href="#Scope-311"><span class="linenos">311</span></a> <span class="k">return</span> <span class="p">{</span> -</span><span id="Scope-312"><a href="#Scope-312"><span class="linenos">312</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">scope</span> -</span><span id="Scope-313"><a href="#Scope-313"><span class="linenos">313</span></a> <span class="k">for</span> <span class="n">alias</span><span class="p">,</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> -</span><span id="Scope-314"><a href="#Scope-314"><span class="linenos">314</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_cte</span> -</span><span id="Scope-315"><a href="#Scope-315"><span class="linenos">315</span></a> <span class="p">}</span> -</span><span id="Scope-316"><a href="#Scope-316"><span class="linenos">316</span></a> -</span><span id="Scope-317"><a href="#Scope-317"><span class="linenos">317</span></a> <span class="nd">@property</span> -</span><span id="Scope-318"><a href="#Scope-318"><span class="linenos">318</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-319"><a href="#Scope-319"><span class="linenos">319</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-320"><a href="#Scope-320"><span class="linenos">320</span></a><span class="sd"> Select expressions of this scope.</span> -</span><span id="Scope-321"><a href="#Scope-321"><span class="linenos">321</span></a> -</span><span id="Scope-322"><a href="#Scope-322"><span class="linenos">322</span></a><span class="sd"> For example, for the following expression:</span> -</span><span id="Scope-323"><a href="#Scope-323"><span class="linenos">323</span></a><span class="sd"> SELECT 1 as a, 2 as b FROM x</span> +</span><span id="Scope-303"><a href="#Scope-303"><span class="linenos">303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="n">result</span> +</span><span id="Scope-304"><a href="#Scope-304"><span class="linenos">304</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> +</span><span id="Scope-305"><a href="#Scope-305"><span class="linenos">305</span></a> +</span><span id="Scope-306"><a href="#Scope-306"><span class="linenos">306</span></a> <span class="nd">@property</span> +</span><span id="Scope-307"><a href="#Scope-307"><span class="linenos">307</span></a> <span class="k">def</span> <span class="nf">cte_sources</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-308"><a href="#Scope-308"><span class="linenos">308</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-309"><a href="#Scope-309"><span class="linenos">309</span></a><span class="sd"> Sources that are CTEs.</span> +</span><span id="Scope-310"><a href="#Scope-310"><span class="linenos">310</span></a> +</span><span id="Scope-311"><a href="#Scope-311"><span class="linenos">311</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-312"><a href="#Scope-312"><span class="linenos">312</span></a><span class="sd"> dict[str, Scope]: Mapping of source alias to Scope</span> +</span><span id="Scope-313"><a href="#Scope-313"><span class="linenos">313</span></a><span class="sd"> """</span> +</span><span id="Scope-314"><a href="#Scope-314"><span class="linenos">314</span></a> <span class="k">return</span> <span class="p">{</span> +</span><span id="Scope-315"><a href="#Scope-315"><span class="linenos">315</span></a> <span class="n">alias</span><span class="p">:</span> <span class="n">scope</span> +</span><span id="Scope-316"><a href="#Scope-316"><span class="linenos">316</span></a> <span class="k">for</span> <span class="n">alias</span><span class="p">,</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">items</span><span class="p">()</span> +</span><span id="Scope-317"><a href="#Scope-317"><span class="linenos">317</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">scope</span><span class="p">,</span> <span class="n">Scope</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scope</span><span class="o">.</span><span class="n">is_cte</span> +</span><span id="Scope-318"><a href="#Scope-318"><span class="linenos">318</span></a> <span class="p">}</span> +</span><span id="Scope-319"><a href="#Scope-319"><span class="linenos">319</span></a> +</span><span id="Scope-320"><a href="#Scope-320"><span class="linenos">320</span></a> <span class="nd">@property</span> +</span><span id="Scope-321"><a href="#Scope-321"><span class="linenos">321</span></a> <span class="k">def</span> <span class="nf">selects</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-322"><a href="#Scope-322"><span class="linenos">322</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-323"><a href="#Scope-323"><span class="linenos">323</span></a><span class="sd"> Select expressions of this scope.</span> </span><span id="Scope-324"><a href="#Scope-324"><span class="linenos">324</span></a> -</span><span id="Scope-325"><a href="#Scope-325"><span class="linenos">325</span></a><span class="sd"> The outputs are the "1 as a" and "2 as b" expressions.</span> -</span><span id="Scope-326"><a href="#Scope-326"><span class="linenos">326</span></a> -</span><span id="Scope-327"><a href="#Scope-327"><span class="linenos">327</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-328"><a href="#Scope-328"><span class="linenos">328</span></a><span class="sd"> list[exp.Expression]: expressions</span> -</span><span id="Scope-329"><a href="#Scope-329"><span class="linenos">329</span></a><span class="sd"> """</span> -</span><span id="Scope-330"><a href="#Scope-330"><span class="linenos">330</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span><span class="p">):</span> -</span><span id="Scope-331"><a href="#Scope-331"><span class="linenos">331</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> -</span><span id="Scope-332"><a href="#Scope-332"><span class="linenos">332</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">selects</span> -</span><span id="Scope-333"><a href="#Scope-333"><span class="linenos">333</span></a> -</span><span id="Scope-334"><a href="#Scope-334"><span class="linenos">334</span></a> <span class="nd">@property</span> -</span><span id="Scope-335"><a href="#Scope-335"><span class="linenos">335</span></a> <span class="k">def</span> <span class="nf">external_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-336"><a href="#Scope-336"><span class="linenos">336</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-337"><a href="#Scope-337"><span class="linenos">337</span></a><span class="sd"> Columns that appear to reference sources in outer scopes.</span> -</span><span id="Scope-338"><a href="#Scope-338"><span class="linenos">338</span></a> -</span><span id="Scope-339"><a href="#Scope-339"><span class="linenos">339</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-340"><a href="#Scope-340"><span class="linenos">340</span></a><span class="sd"> list[exp.Column]: Column instances that don't reference</span> -</span><span id="Scope-341"><a href="#Scope-341"><span class="linenos">341</span></a><span class="sd"> sources in the current scope.</span> -</span><span id="Scope-342"><a href="#Scope-342"><span class="linenos">342</span></a><span class="sd"> """</span> -</span><span id="Scope-343"><a href="#Scope-343"><span class="linenos">343</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Scope-344"><a href="#Scope-344"><span class="linenos">344</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="p">[</span> -</span><span id="Scope-345"><a href="#Scope-345"><span class="linenos">345</span></a> <span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selected_sources</span> -</span><span id="Scope-346"><a href="#Scope-346"><span class="linenos">346</span></a> <span class="p">]</span> -</span><span id="Scope-347"><a href="#Scope-347"><span class="linenos">347</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> -</span><span id="Scope-348"><a href="#Scope-348"><span class="linenos">348</span></a> -</span><span id="Scope-349"><a href="#Scope-349"><span class="linenos">349</span></a> <span class="nd">@property</span> -</span><span id="Scope-350"><a href="#Scope-350"><span class="linenos">350</span></a> <span class="k">def</span> <span class="nf">unqualified_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-351"><a href="#Scope-351"><span class="linenos">351</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-352"><a href="#Scope-352"><span class="linenos">352</span></a><span class="sd"> Unqualified columns in the current scope.</span> -</span><span id="Scope-353"><a href="#Scope-353"><span class="linenos">353</span></a> -</span><span id="Scope-354"><a href="#Scope-354"><span class="linenos">354</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-355"><a href="#Scope-355"><span class="linenos">355</span></a><span class="sd"> list[exp.Column]: Unqualified columns</span> -</span><span id="Scope-356"><a href="#Scope-356"><span class="linenos">356</span></a><span class="sd"> """</span> -</span><span id="Scope-357"><a href="#Scope-357"><span class="linenos">357</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span><span class="p">]</span> -</span><span id="Scope-358"><a href="#Scope-358"><span class="linenos">358</span></a> -</span><span id="Scope-359"><a href="#Scope-359"><span class="linenos">359</span></a> <span class="nd">@property</span> -</span><span id="Scope-360"><a href="#Scope-360"><span class="linenos">360</span></a> <span class="k">def</span> <span class="nf">join_hints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-361"><a href="#Scope-361"><span class="linenos">361</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-362"><a href="#Scope-362"><span class="linenos">362</span></a><span class="sd"> Hints that exist in the scope that reference tables</span> -</span><span id="Scope-363"><a href="#Scope-363"><span class="linenos">363</span></a> -</span><span id="Scope-364"><a href="#Scope-364"><span class="linenos">364</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-365"><a href="#Scope-365"><span class="linenos">365</span></a><span class="sd"> list[exp.JoinHint]: Join hints that are referenced within the scope</span> -</span><span id="Scope-366"><a href="#Scope-366"><span class="linenos">366</span></a><span class="sd"> """</span> -</span><span id="Scope-367"><a href="#Scope-367"><span class="linenos">367</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Scope-368"><a href="#Scope-368"><span class="linenos">368</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="Scope-369"><a href="#Scope-369"><span class="linenos">369</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> -</span><span id="Scope-370"><a href="#Scope-370"><span class="linenos">370</span></a> -</span><span id="Scope-371"><a href="#Scope-371"><span class="linenos">371</span></a> <span class="k">def</span> <span class="nf">source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_name</span><span class="p">):</span> -</span><span id="Scope-372"><a href="#Scope-372"><span class="linenos">372</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-373"><a href="#Scope-373"><span class="linenos">373</span></a><span class="sd"> Get all columns in the current scope for a particular source.</span> -</span><span id="Scope-374"><a href="#Scope-374"><span class="linenos">374</span></a> -</span><span id="Scope-375"><a href="#Scope-375"><span class="linenos">375</span></a><span class="sd"> Args:</span> -</span><span id="Scope-376"><a href="#Scope-376"><span class="linenos">376</span></a><span class="sd"> source_name (str): Name of the source</span> -</span><span id="Scope-377"><a href="#Scope-377"><span class="linenos">377</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-378"><a href="#Scope-378"><span class="linenos">378</span></a><span class="sd"> list[exp.Column]: Column instances that reference `source_name`</span> -</span><span id="Scope-379"><a href="#Scope-379"><span class="linenos">379</span></a><span class="sd"> """</span> -</span><span id="Scope-380"><a href="#Scope-380"><span class="linenos">380</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="o">==</span> <span class="n">source_name</span><span class="p">]</span> -</span><span id="Scope-381"><a href="#Scope-381"><span class="linenos">381</span></a> -</span><span id="Scope-382"><a href="#Scope-382"><span class="linenos">382</span></a> <span class="nd">@property</span> -</span><span id="Scope-383"><a href="#Scope-383"><span class="linenos">383</span></a> <span class="k">def</span> <span class="nf">is_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-384"><a href="#Scope-384"><span class="linenos">384</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a subquery"""</span> -</span><span id="Scope-385"><a href="#Scope-385"><span class="linenos">385</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">SUBQUERY</span> -</span><span id="Scope-386"><a href="#Scope-386"><span class="linenos">386</span></a> -</span><span id="Scope-387"><a href="#Scope-387"><span class="linenos">387</span></a> <span class="nd">@property</span> -</span><span id="Scope-388"><a href="#Scope-388"><span class="linenos">388</span></a> <span class="k">def</span> <span class="nf">is_derived_table</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-389"><a href="#Scope-389"><span class="linenos">389</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a derived table"""</span> -</span><span id="Scope-390"><a href="#Scope-390"><span class="linenos">390</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">DERIVED_TABLE</span> -</span><span id="Scope-391"><a href="#Scope-391"><span class="linenos">391</span></a> -</span><span id="Scope-392"><a href="#Scope-392"><span class="linenos">392</span></a> <span class="nd">@property</span> -</span><span id="Scope-393"><a href="#Scope-393"><span class="linenos">393</span></a> <span class="k">def</span> <span class="nf">is_union</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-394"><a href="#Scope-394"><span class="linenos">394</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a union"""</span> -</span><span id="Scope-395"><a href="#Scope-395"><span class="linenos">395</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span> -</span><span id="Scope-396"><a href="#Scope-396"><span class="linenos">396</span></a> -</span><span id="Scope-397"><a href="#Scope-397"><span class="linenos">397</span></a> <span class="nd">@property</span> -</span><span id="Scope-398"><a href="#Scope-398"><span class="linenos">398</span></a> <span class="k">def</span> <span class="nf">is_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-399"><a href="#Scope-399"><span class="linenos">399</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a common table expression"""</span> -</span><span id="Scope-400"><a href="#Scope-400"><span class="linenos">400</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span> -</span><span id="Scope-401"><a href="#Scope-401"><span class="linenos">401</span></a> -</span><span id="Scope-402"><a href="#Scope-402"><span class="linenos">402</span></a> <span class="nd">@property</span> -</span><span id="Scope-403"><a href="#Scope-403"><span class="linenos">403</span></a> <span class="k">def</span> <span class="nf">is_root</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-404"><a href="#Scope-404"><span class="linenos">404</span></a><span class="w"> </span><span class="sd">"""Determine if this is the root scope"""</span> -</span><span id="Scope-405"><a href="#Scope-405"><span class="linenos">405</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span> -</span><span id="Scope-406"><a href="#Scope-406"><span class="linenos">406</span></a> -</span><span id="Scope-407"><a href="#Scope-407"><span class="linenos">407</span></a> <span class="nd">@property</span> -</span><span id="Scope-408"><a href="#Scope-408"><span class="linenos">408</span></a> <span class="k">def</span> <span class="nf">is_udtf</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-409"><a href="#Scope-409"><span class="linenos">409</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a UDTF (User Defined Table Function)"""</span> -</span><span id="Scope-410"><a href="#Scope-410"><span class="linenos">410</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UDTF</span> -</span><span id="Scope-411"><a href="#Scope-411"><span class="linenos">411</span></a> -</span><span id="Scope-412"><a href="#Scope-412"><span class="linenos">412</span></a> <span class="nd">@property</span> -</span><span id="Scope-413"><a href="#Scope-413"><span class="linenos">413</span></a> <span class="k">def</span> <span class="nf">is_correlated_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-414"><a href="#Scope-414"><span class="linenos">414</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a correlated subquery"""</span> -</span><span id="Scope-415"><a href="#Scope-415"><span class="linenos">415</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">is_subquery</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">external_columns</span><span class="p">)</span> -</span><span id="Scope-416"><a href="#Scope-416"><span class="linenos">416</span></a> -</span><span id="Scope-417"><a href="#Scope-417"><span class="linenos">417</span></a> <span class="k">def</span> <span class="nf">rename_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_name</span><span class="p">,</span> <span class="n">new_name</span><span class="p">):</span> -</span><span id="Scope-418"><a href="#Scope-418"><span class="linenos">418</span></a><span class="w"> </span><span class="sd">"""Rename a source in this scope"""</span> -</span><span id="Scope-419"><a href="#Scope-419"><span class="linenos">419</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">old_name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Scope-420"><a href="#Scope-420"><span class="linenos">420</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">new_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">columns</span> -</span><span id="Scope-421"><a href="#Scope-421"><span class="linenos">421</span></a> -</span><span id="Scope-422"><a href="#Scope-422"><span class="linenos">422</span></a> <span class="k">def</span> <span class="nf">add_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="p">):</span> -</span><span id="Scope-423"><a href="#Scope-423"><span class="linenos">423</span></a><span class="w"> </span><span class="sd">"""Add a source to this scope"""</span> -</span><span id="Scope-424"><a href="#Scope-424"><span class="linenos">424</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">source</span> -</span><span id="Scope-425"><a href="#Scope-425"><span class="linenos">425</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="Scope-426"><a href="#Scope-426"><span class="linenos">426</span></a> -</span><span id="Scope-427"><a href="#Scope-427"><span class="linenos">427</span></a> <span class="k">def</span> <span class="nf">remove_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> -</span><span id="Scope-428"><a href="#Scope-428"><span class="linenos">428</span></a><span class="w"> </span><span class="sd">"""Remove a source from this scope"""</span> -</span><span id="Scope-429"><a href="#Scope-429"><span class="linenos">429</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Scope-430"><a href="#Scope-430"><span class="linenos">430</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> -</span><span id="Scope-431"><a href="#Scope-431"><span class="linenos">431</span></a> -</span><span id="Scope-432"><a href="#Scope-432"><span class="linenos">432</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-433"><a href="#Scope-433"><span class="linenos">433</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"Scope<</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span><span class="si">}</span><span class="s2">>"</span> +</span><span id="Scope-325"><a href="#Scope-325"><span class="linenos">325</span></a><span class="sd"> For example, for the following expression:</span> +</span><span id="Scope-326"><a href="#Scope-326"><span class="linenos">326</span></a><span class="sd"> SELECT 1 as a, 2 as b FROM x</span> +</span><span id="Scope-327"><a href="#Scope-327"><span class="linenos">327</span></a> +</span><span id="Scope-328"><a href="#Scope-328"><span class="linenos">328</span></a><span class="sd"> The outputs are the "1 as a" and "2 as b" expressions.</span> +</span><span id="Scope-329"><a href="#Scope-329"><span class="linenos">329</span></a> +</span><span id="Scope-330"><a href="#Scope-330"><span class="linenos">330</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-331"><a href="#Scope-331"><span class="linenos">331</span></a><span class="sd"> list[exp.Expression]: expressions</span> +</span><span id="Scope-332"><a href="#Scope-332"><span class="linenos">332</span></a><span class="sd"> """</span> +</span><span id="Scope-333"><a href="#Scope-333"><span class="linenos">333</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span><span class="p">):</span> +</span><span id="Scope-334"><a href="#Scope-334"><span class="linenos">334</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">()</span><span class="o">.</span><span class="n">selects</span> +</span><span id="Scope-335"><a href="#Scope-335"><span class="linenos">335</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">selects</span> +</span><span id="Scope-336"><a href="#Scope-336"><span class="linenos">336</span></a> +</span><span id="Scope-337"><a href="#Scope-337"><span class="linenos">337</span></a> <span class="nd">@property</span> +</span><span id="Scope-338"><a href="#Scope-338"><span class="linenos">338</span></a> <span class="k">def</span> <span class="nf">external_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-339"><a href="#Scope-339"><span class="linenos">339</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-340"><a href="#Scope-340"><span class="linenos">340</span></a><span class="sd"> Columns that appear to reference sources in outer scopes.</span> +</span><span id="Scope-341"><a href="#Scope-341"><span class="linenos">341</span></a> +</span><span id="Scope-342"><a href="#Scope-342"><span class="linenos">342</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-343"><a href="#Scope-343"><span class="linenos">343</span></a><span class="sd"> list[exp.Column]: Column instances that don't reference</span> +</span><span id="Scope-344"><a href="#Scope-344"><span class="linenos">344</span></a><span class="sd"> sources in the current scope.</span> +</span><span id="Scope-345"><a href="#Scope-345"><span class="linenos">345</span></a><span class="sd"> """</span> +</span><span id="Scope-346"><a href="#Scope-346"><span class="linenos">346</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Scope-347"><a href="#Scope-347"><span class="linenos">347</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="p">[</span> +</span><span id="Scope-348"><a href="#Scope-348"><span class="linenos">348</span></a> <span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">selected_sources</span> +</span><span id="Scope-349"><a href="#Scope-349"><span class="linenos">349</span></a> <span class="p">]</span> +</span><span id="Scope-350"><a href="#Scope-350"><span class="linenos">350</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> +</span><span id="Scope-351"><a href="#Scope-351"><span class="linenos">351</span></a> +</span><span id="Scope-352"><a href="#Scope-352"><span class="linenos">352</span></a> <span class="nd">@property</span> +</span><span id="Scope-353"><a href="#Scope-353"><span class="linenos">353</span></a> <span class="k">def</span> <span class="nf">unqualified_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-354"><a href="#Scope-354"><span class="linenos">354</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-355"><a href="#Scope-355"><span class="linenos">355</span></a><span class="sd"> Unqualified columns in the current scope.</span> +</span><span id="Scope-356"><a href="#Scope-356"><span class="linenos">356</span></a> +</span><span id="Scope-357"><a href="#Scope-357"><span class="linenos">357</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-358"><a href="#Scope-358"><span class="linenos">358</span></a><span class="sd"> list[exp.Column]: Unqualified columns</span> +</span><span id="Scope-359"><a href="#Scope-359"><span class="linenos">359</span></a><span class="sd"> """</span> +</span><span id="Scope-360"><a href="#Scope-360"><span class="linenos">360</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">c</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">c</span><span class="o">.</span><span class="n">table</span><span class="p">]</span> +</span><span id="Scope-361"><a href="#Scope-361"><span class="linenos">361</span></a> +</span><span id="Scope-362"><a href="#Scope-362"><span class="linenos">362</span></a> <span class="nd">@property</span> +</span><span id="Scope-363"><a href="#Scope-363"><span class="linenos">363</span></a> <span class="k">def</span> <span class="nf">join_hints</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-364"><a href="#Scope-364"><span class="linenos">364</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-365"><a href="#Scope-365"><span class="linenos">365</span></a><span class="sd"> Hints that exist in the scope that reference tables</span> +</span><span id="Scope-366"><a href="#Scope-366"><span class="linenos">366</span></a> +</span><span id="Scope-367"><a href="#Scope-367"><span class="linenos">367</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-368"><a href="#Scope-368"><span class="linenos">368</span></a><span class="sd"> list[exp.JoinHint]: Join hints that are referenced within the scope</span> +</span><span id="Scope-369"><a href="#Scope-369"><span class="linenos">369</span></a><span class="sd"> """</span> +</span><span id="Scope-370"><a href="#Scope-370"><span class="linenos">370</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Scope-371"><a href="#Scope-371"><span class="linenos">371</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="Scope-372"><a href="#Scope-372"><span class="linenos">372</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> +</span><span id="Scope-373"><a href="#Scope-373"><span class="linenos">373</span></a> +</span><span id="Scope-374"><a href="#Scope-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_name</span><span class="p">):</span> +</span><span id="Scope-375"><a href="#Scope-375"><span class="linenos">375</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-376"><a href="#Scope-376"><span class="linenos">376</span></a><span class="sd"> Get all columns in the current scope for a particular source.</span> +</span><span id="Scope-377"><a href="#Scope-377"><span class="linenos">377</span></a> +</span><span id="Scope-378"><a href="#Scope-378"><span class="linenos">378</span></a><span class="sd"> Args:</span> +</span><span id="Scope-379"><a href="#Scope-379"><span class="linenos">379</span></a><span class="sd"> source_name (str): Name of the source</span> +</span><span id="Scope-380"><a href="#Scope-380"><span class="linenos">380</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-381"><a href="#Scope-381"><span class="linenos">381</span></a><span class="sd"> list[exp.Column]: Column instances that reference `source_name`</span> +</span><span id="Scope-382"><a href="#Scope-382"><span class="linenos">382</span></a><span class="sd"> """</span> +</span><span id="Scope-383"><a href="#Scope-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="o">==</span> <span class="n">source_name</span><span class="p">]</span> +</span><span id="Scope-384"><a href="#Scope-384"><span class="linenos">384</span></a> +</span><span id="Scope-385"><a href="#Scope-385"><span class="linenos">385</span></a> <span class="nd">@property</span> +</span><span id="Scope-386"><a href="#Scope-386"><span class="linenos">386</span></a> <span class="k">def</span> <span class="nf">is_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-387"><a href="#Scope-387"><span class="linenos">387</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a subquery"""</span> +</span><span id="Scope-388"><a href="#Scope-388"><span class="linenos">388</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">SUBQUERY</span> +</span><span id="Scope-389"><a href="#Scope-389"><span class="linenos">389</span></a> +</span><span id="Scope-390"><a href="#Scope-390"><span class="linenos">390</span></a> <span class="nd">@property</span> +</span><span id="Scope-391"><a href="#Scope-391"><span class="linenos">391</span></a> <span class="k">def</span> <span class="nf">is_derived_table</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-392"><a href="#Scope-392"><span class="linenos">392</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a derived table"""</span> +</span><span id="Scope-393"><a href="#Scope-393"><span class="linenos">393</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">DERIVED_TABLE</span> +</span><span id="Scope-394"><a href="#Scope-394"><span class="linenos">394</span></a> +</span><span id="Scope-395"><a href="#Scope-395"><span class="linenos">395</span></a> <span class="nd">@property</span> +</span><span id="Scope-396"><a href="#Scope-396"><span class="linenos">396</span></a> <span class="k">def</span> <span class="nf">is_union</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-397"><a href="#Scope-397"><span class="linenos">397</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a union"""</span> +</span><span id="Scope-398"><a href="#Scope-398"><span class="linenos">398</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UNION</span> +</span><span id="Scope-399"><a href="#Scope-399"><span class="linenos">399</span></a> +</span><span id="Scope-400"><a href="#Scope-400"><span class="linenos">400</span></a> <span class="nd">@property</span> +</span><span id="Scope-401"><a href="#Scope-401"><span class="linenos">401</span></a> <span class="k">def</span> <span class="nf">is_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-402"><a href="#Scope-402"><span class="linenos">402</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a common table expression"""</span> +</span><span id="Scope-403"><a href="#Scope-403"><span class="linenos">403</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">CTE</span> +</span><span id="Scope-404"><a href="#Scope-404"><span class="linenos">404</span></a> +</span><span id="Scope-405"><a href="#Scope-405"><span class="linenos">405</span></a> <span class="nd">@property</span> +</span><span id="Scope-406"><a href="#Scope-406"><span class="linenos">406</span></a> <span class="k">def</span> <span class="nf">is_root</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-407"><a href="#Scope-407"><span class="linenos">407</span></a><span class="w"> </span><span class="sd">"""Determine if this is the root scope"""</span> +</span><span id="Scope-408"><a href="#Scope-408"><span class="linenos">408</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span> +</span><span id="Scope-409"><a href="#Scope-409"><span class="linenos">409</span></a> +</span><span id="Scope-410"><a href="#Scope-410"><span class="linenos">410</span></a> <span class="nd">@property</span> +</span><span id="Scope-411"><a href="#Scope-411"><span class="linenos">411</span></a> <span class="k">def</span> <span class="nf">is_udtf</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-412"><a href="#Scope-412"><span class="linenos">412</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a UDTF (User Defined Table Function)"""</span> +</span><span id="Scope-413"><a href="#Scope-413"><span class="linenos">413</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">==</span> <span class="n">ScopeType</span><span class="o">.</span><span class="n">UDTF</span> +</span><span id="Scope-414"><a href="#Scope-414"><span class="linenos">414</span></a> +</span><span id="Scope-415"><a href="#Scope-415"><span class="linenos">415</span></a> <span class="nd">@property</span> +</span><span id="Scope-416"><a href="#Scope-416"><span class="linenos">416</span></a> <span class="k">def</span> <span class="nf">is_correlated_subquery</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-417"><a href="#Scope-417"><span class="linenos">417</span></a><span class="w"> </span><span class="sd">"""Determine if this scope is a correlated subquery"""</span> +</span><span id="Scope-418"><a href="#Scope-418"><span class="linenos">418</span></a> <span class="k">return</span> <span class="nb">bool</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">is_subquery</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">external_columns</span><span class="p">)</span> +</span><span id="Scope-419"><a href="#Scope-419"><span class="linenos">419</span></a> +</span><span id="Scope-420"><a href="#Scope-420"><span class="linenos">420</span></a> <span class="k">def</span> <span class="nf">rename_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_name</span><span class="p">,</span> <span class="n">new_name</span><span class="p">):</span> +</span><span id="Scope-421"><a href="#Scope-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">"""Rename a source in this scope"""</span> +</span><span id="Scope-422"><a href="#Scope-422"><span class="linenos">422</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">old_name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Scope-423"><a href="#Scope-423"><span class="linenos">423</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">new_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">columns</span> +</span><span id="Scope-424"><a href="#Scope-424"><span class="linenos">424</span></a> +</span><span id="Scope-425"><a href="#Scope-425"><span class="linenos">425</span></a> <span class="k">def</span> <span class="nf">add_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="p">):</span> +</span><span id="Scope-426"><a href="#Scope-426"><span class="linenos">426</span></a><span class="w"> </span><span class="sd">"""Add a source to this scope"""</span> +</span><span id="Scope-427"><a href="#Scope-427"><span class="linenos">427</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">source</span> +</span><span id="Scope-428"><a href="#Scope-428"><span class="linenos">428</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> +</span><span id="Scope-429"><a href="#Scope-429"><span class="linenos">429</span></a> +</span><span id="Scope-430"><a href="#Scope-430"><span class="linenos">430</span></a> <span class="k">def</span> <span class="nf">remove_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> +</span><span id="Scope-431"><a href="#Scope-431"><span class="linenos">431</span></a><span class="w"> </span><span class="sd">"""Remove a source from this scope"""</span> +</span><span id="Scope-432"><a href="#Scope-432"><span class="linenos">432</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Scope-433"><a href="#Scope-433"><span class="linenos">433</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span><span id="Scope-434"><a href="#Scope-434"><span class="linenos">434</span></a> -</span><span id="Scope-435"><a href="#Scope-435"><span class="linenos">435</span></a> <span class="k">def</span> <span class="nf">traverse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-436"><a href="#Scope-436"><span class="linenos">436</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-437"><a href="#Scope-437"><span class="linenos">437</span></a><span class="sd"> Traverse the scope tree from this node.</span> -</span><span id="Scope-438"><a href="#Scope-438"><span class="linenos">438</span></a> -</span><span id="Scope-439"><a href="#Scope-439"><span class="linenos">439</span></a><span class="sd"> Yields:</span> -</span><span id="Scope-440"><a href="#Scope-440"><span class="linenos">440</span></a><span class="sd"> Scope: scope instances in depth-first-search post-order</span> -</span><span id="Scope-441"><a href="#Scope-441"><span class="linenos">441</span></a><span class="sd"> """</span> -</span><span id="Scope-442"><a href="#Scope-442"><span class="linenos">442</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span> -</span><span id="Scope-443"><a href="#Scope-443"><span class="linenos">443</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> -</span><span id="Scope-444"><a href="#Scope-444"><span class="linenos">444</span></a> <span class="p">):</span> -</span><span id="Scope-445"><a href="#Scope-445"><span class="linenos">445</span></a> <span class="k">yield from</span> <span class="n">child_scope</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> -</span><span id="Scope-446"><a href="#Scope-446"><span class="linenos">446</span></a> <span class="k">yield</span> <span class="bp">self</span> -</span><span id="Scope-447"><a href="#Scope-447"><span class="linenos">447</span></a> -</span><span id="Scope-448"><a href="#Scope-448"><span class="linenos">448</span></a> <span class="k">def</span> <span class="nf">ref_count</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope-449"><a href="#Scope-449"><span class="linenos">449</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope-450"><a href="#Scope-450"><span class="linenos">450</span></a><span class="sd"> Count the number of times each scope in this tree is referenced.</span> -</span><span id="Scope-451"><a href="#Scope-451"><span class="linenos">451</span></a> -</span><span id="Scope-452"><a href="#Scope-452"><span class="linenos">452</span></a><span class="sd"> Returns:</span> -</span><span id="Scope-453"><a href="#Scope-453"><span class="linenos">453</span></a><span class="sd"> dict[int, int]: Mapping of Scope instance ID to reference count</span> -</span><span id="Scope-454"><a href="#Scope-454"><span class="linenos">454</span></a><span class="sd"> """</span> -</span><span id="Scope-455"><a href="#Scope-455"><span class="linenos">455</span></a> <span class="n">scope_ref_count</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> -</span><span id="Scope-456"><a href="#Scope-456"><span class="linenos">456</span></a> -</span><span id="Scope-457"><a href="#Scope-457"><span class="linenos">457</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span> -</span><span id="Scope-458"><a href="#Scope-458"><span class="linenos">458</span></a> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> -</span><span id="Scope-459"><a href="#Scope-459"><span class="linenos">459</span></a> <span class="n">scope_ref_count</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">source</span><span class="p">)]</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Scope-460"><a href="#Scope-460"><span class="linenos">460</span></a> -</span><span id="Scope-461"><a href="#Scope-461"><span class="linenos">461</span></a> <span class="k">return</span> <span class="n">scope_ref_count</span> +</span><span id="Scope-435"><a href="#Scope-435"><span class="linenos">435</span></a> <span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-436"><a href="#Scope-436"><span class="linenos">436</span></a> <span class="k">return</span> <span class="sa">f</span><span class="s2">"Scope<</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="o">.</span><span class="n">sql</span><span class="p">()</span><span class="si">}</span><span class="s2">>"</span> +</span><span id="Scope-437"><a href="#Scope-437"><span class="linenos">437</span></a> +</span><span id="Scope-438"><a href="#Scope-438"><span class="linenos">438</span></a> <span class="k">def</span> <span class="nf">traverse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-439"><a href="#Scope-439"><span class="linenos">439</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-440"><a href="#Scope-440"><span class="linenos">440</span></a><span class="sd"> Traverse the scope tree from this node.</span> +</span><span id="Scope-441"><a href="#Scope-441"><span class="linenos">441</span></a> +</span><span id="Scope-442"><a href="#Scope-442"><span class="linenos">442</span></a><span class="sd"> Yields:</span> +</span><span id="Scope-443"><a href="#Scope-443"><span class="linenos">443</span></a><span class="sd"> Scope: scope instances in depth-first-search post-order</span> +</span><span id="Scope-444"><a href="#Scope-444"><span class="linenos">444</span></a><span class="sd"> """</span> +</span><span id="Scope-445"><a href="#Scope-445"><span class="linenos">445</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span> +</span><span id="Scope-446"><a href="#Scope-446"><span class="linenos">446</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> +</span><span id="Scope-447"><a href="#Scope-447"><span class="linenos">447</span></a> <span class="p">):</span> +</span><span id="Scope-448"><a href="#Scope-448"><span class="linenos">448</span></a> <span class="k">yield from</span> <span class="n">child_scope</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> +</span><span id="Scope-449"><a href="#Scope-449"><span class="linenos">449</span></a> <span class="k">yield</span> <span class="bp">self</span> +</span><span id="Scope-450"><a href="#Scope-450"><span class="linenos">450</span></a> +</span><span id="Scope-451"><a href="#Scope-451"><span class="linenos">451</span></a> <span class="k">def</span> <span class="nf">ref_count</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope-452"><a href="#Scope-452"><span class="linenos">452</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope-453"><a href="#Scope-453"><span class="linenos">453</span></a><span class="sd"> Count the number of times each scope in this tree is referenced.</span> +</span><span id="Scope-454"><a href="#Scope-454"><span class="linenos">454</span></a> +</span><span id="Scope-455"><a href="#Scope-455"><span class="linenos">455</span></a><span class="sd"> Returns:</span> +</span><span id="Scope-456"><a href="#Scope-456"><span class="linenos">456</span></a><span class="sd"> dict[int, int]: Mapping of Scope instance ID to reference count</span> +</span><span id="Scope-457"><a href="#Scope-457"><span class="linenos">457</span></a><span class="sd"> """</span> +</span><span id="Scope-458"><a href="#Scope-458"><span class="linenos">458</span></a> <span class="n">scope_ref_count</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> +</span><span id="Scope-459"><a href="#Scope-459"><span class="linenos">459</span></a> +</span><span id="Scope-460"><a href="#Scope-460"><span class="linenos">460</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span> +</span><span id="Scope-461"><a href="#Scope-461"><span class="linenos">461</span></a> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="Scope-462"><a href="#Scope-462"><span class="linenos">462</span></a> <span class="n">scope_ref_count</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">source</span><span class="p">)]</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Scope-463"><a href="#Scope-463"><span class="linenos">463</span></a> +</span><span id="Scope-464"><a href="#Scope-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="n">scope_ref_count</span> </span></pre></div> @@ -1473,29 +1480,29 @@ a list of the left and right child scopes.</li> </div> <a class="headerlink" href="#Scope.__init__"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.__init__-50"><a href="#Scope.__init__-50"><span class="linenos">50</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="Scope.__init__-51"><a href="#Scope.__init__-51"><span class="linenos">51</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Scope.__init__-52"><a href="#Scope.__init__-52"><span class="linenos">52</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Scope.__init__-53"><a href="#Scope.__init__-53"><span class="linenos">53</span></a> <span class="n">sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope.__init__-54"><a href="#Scope.__init__-54"><span class="linenos">54</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope.__init__-55"><a href="#Scope.__init__-55"><span class="linenos">55</span></a> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope.__init__-56"><a href="#Scope.__init__-56"><span class="linenos">56</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span><span class="p">,</span> -</span><span id="Scope.__init__-57"><a href="#Scope.__init__-57"><span class="linenos">57</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> -</span><span id="Scope.__init__-58"><a href="#Scope.__init__-58"><span class="linenos">58</span></a> <span class="p">):</span> -</span><span id="Scope.__init__-59"><a href="#Scope.__init__-59"><span class="linenos">59</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="Scope.__init__-60"><a href="#Scope.__init__-60"><span class="linenos">60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span> <span class="o">=</span> <span class="n">sources</span> <span class="ow">or</span> <span class="p">{}</span> -</span><span id="Scope.__init__-61"><a href="#Scope.__init__-61"><span class="linenos">61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">lateral_sources</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">lateral_sources</span> <span class="k">else</span> <span class="p">{}</span> -</span><span id="Scope.__init__-62"><a href="#Scope.__init__-62"><span class="linenos">62</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> -</span><span id="Scope.__init__-63"><a href="#Scope.__init__-63"><span class="linenos">63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">outer_column_list</span> <span class="o">=</span> <span class="n">outer_column_list</span> <span class="ow">or</span> <span class="p">[]</span> -</span><span id="Scope.__init__-64"><a href="#Scope.__init__-64"><span class="linenos">64</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> -</span><span id="Scope.__init__-65"><a href="#Scope.__init__-65"><span class="linenos">65</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">=</span> <span class="n">scope_type</span> -</span><span id="Scope.__init__-66"><a href="#Scope.__init__-66"><span class="linenos">66</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope.__init__-67"><a href="#Scope.__init__-67"><span class="linenos">67</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">derived_table_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope.__init__-68"><a href="#Scope.__init__-68"><span class="linenos">68</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope.__init__-69"><a href="#Scope.__init__-69"><span class="linenos">69</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope.__init__-70"><a href="#Scope.__init__-70"><span class="linenos">70</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope.__init__-71"><a href="#Scope.__init__-71"><span class="linenos">71</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Scope.__init__-72"><a href="#Scope.__init__-72"><span class="linenos">72</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.__init__-51"><a href="#Scope.__init__-51"><span class="linenos">51</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="Scope.__init__-52"><a href="#Scope.__init__-52"><span class="linenos">52</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Scope.__init__-53"><a href="#Scope.__init__-53"><span class="linenos">53</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Scope.__init__-54"><a href="#Scope.__init__-54"><span class="linenos">54</span></a> <span class="n">sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope.__init__-55"><a href="#Scope.__init__-55"><span class="linenos">55</span></a> <span class="n">outer_column_list</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope.__init__-56"><a href="#Scope.__init__-56"><span class="linenos">56</span></a> <span class="n">parent</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope.__init__-57"><a href="#Scope.__init__-57"><span class="linenos">57</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">ScopeType</span><span class="o">.</span><span class="n">ROOT</span><span class="p">,</span> +</span><span id="Scope.__init__-58"><a href="#Scope.__init__-58"><span class="linenos">58</span></a> <span class="n">lateral_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> +</span><span id="Scope.__init__-59"><a href="#Scope.__init__-59"><span class="linenos">59</span></a> <span class="p">):</span> +</span><span id="Scope.__init__-60"><a href="#Scope.__init__-60"><span class="linenos">60</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="Scope.__init__-61"><a href="#Scope.__init__-61"><span class="linenos">61</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span> <span class="o">=</span> <span class="n">sources</span> <span class="ow">or</span> <span class="p">{}</span> +</span><span id="Scope.__init__-62"><a href="#Scope.__init__-62"><span class="linenos">62</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span> <span class="o">=</span> <span class="n">lateral_sources</span><span class="o">.</span><span class="n">copy</span><span class="p">()</span> <span class="k">if</span> <span class="n">lateral_sources</span> <span class="k">else</span> <span class="p">{}</span> +</span><span id="Scope.__init__-63"><a href="#Scope.__init__-63"><span class="linenos">63</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">lateral_sources</span><span class="p">)</span> +</span><span id="Scope.__init__-64"><a href="#Scope.__init__-64"><span class="linenos">64</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">outer_column_list</span> <span class="o">=</span> <span class="n">outer_column_list</span> <span class="ow">or</span> <span class="p">[]</span> +</span><span id="Scope.__init__-65"><a href="#Scope.__init__-65"><span class="linenos">65</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">parent</span> <span class="o">=</span> <span class="n">parent</span> +</span><span id="Scope.__init__-66"><a href="#Scope.__init__-66"><span class="linenos">66</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">scope_type</span> <span class="o">=</span> <span class="n">scope_type</span> +</span><span id="Scope.__init__-67"><a href="#Scope.__init__-67"><span class="linenos">67</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope.__init__-68"><a href="#Scope.__init__-68"><span class="linenos">68</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">derived_table_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope.__init__-69"><a href="#Scope.__init__-69"><span class="linenos">69</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope.__init__-70"><a href="#Scope.__init__-70"><span class="linenos">70</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope.__init__-71"><a href="#Scope.__init__-71"><span class="linenos">71</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope.__init__-72"><a href="#Scope.__init__-72"><span class="linenos">72</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">udtf_scopes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Scope.__init__-73"><a href="#Scope.__init__-73"><span class="linenos">73</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span></pre></div> @@ -1513,18 +1520,18 @@ a list of the left and right child scopes.</li> </div> <a class="headerlink" href="#Scope.clear_cache"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.clear_cache-74"><a href="#Scope.clear_cache-74"><span class="linenos">74</span></a> <span class="k">def</span> <span class="nf">clear_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope.clear_cache-75"><a href="#Scope.clear_cache-75"><span class="linenos">75</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Scope.clear_cache-76"><a href="#Scope.clear_cache-76"><span class="linenos">76</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-77"><a href="#Scope.clear_cache-77"><span class="linenos">77</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-78"><a href="#Scope.clear_cache-78"><span class="linenos">78</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-79"><a href="#Scope.clear_cache-79"><span class="linenos">79</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-80"><a href="#Scope.clear_cache-80"><span class="linenos">80</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-81"><a href="#Scope.clear_cache-81"><span class="linenos">81</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-82"><a href="#Scope.clear_cache-82"><span class="linenos">82</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-83"><a href="#Scope.clear_cache-83"><span class="linenos">83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-84"><a href="#Scope.clear_cache-84"><span class="linenos">84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Scope.clear_cache-85"><a href="#Scope.clear_cache-85"><span class="linenos">85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="kc">None</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.clear_cache-75"><a href="#Scope.clear_cache-75"><span class="linenos">75</span></a> <span class="k">def</span> <span class="nf">clear_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope.clear_cache-76"><a href="#Scope.clear_cache-76"><span class="linenos">76</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_collected</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Scope.clear_cache-77"><a href="#Scope.clear_cache-77"><span class="linenos">77</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_raw_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-78"><a href="#Scope.clear_cache-78"><span class="linenos">78</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_derived_tables</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-79"><a href="#Scope.clear_cache-79"><span class="linenos">79</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_udtfs</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-80"><a href="#Scope.clear_cache-80"><span class="linenos">80</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tables</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-81"><a href="#Scope.clear_cache-81"><span class="linenos">81</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_ctes</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-82"><a href="#Scope.clear_cache-82"><span class="linenos">82</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_subqueries</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-83"><a href="#Scope.clear_cache-83"><span class="linenos">83</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_selected_sources</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-84"><a href="#Scope.clear_cache-84"><span class="linenos">84</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-85"><a href="#Scope.clear_cache-85"><span class="linenos">85</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_external_columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Scope.clear_cache-86"><a href="#Scope.clear_cache-86"><span class="linenos">86</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_join_hints</span> <span class="o">=</span> <span class="kc">None</span> </span></pre></div> @@ -1542,15 +1549,15 @@ a list of the left and right child scopes.</li> </div> <a class="headerlink" href="#Scope.branch"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.branch-87"><a href="#Scope.branch-87"><span class="linenos">87</span></a> <span class="k">def</span> <span class="nf">branch</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">scope_type</span><span class="p">,</span> <span class="n">chain_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="Scope.branch-88"><a href="#Scope.branch-88"><span class="linenos">88</span></a><span class="w"> </span><span class="sd">"""Branch from the current scope to a new, inner scope"""</span> -</span><span id="Scope.branch-89"><a href="#Scope.branch-89"><span class="linenos">89</span></a> <span class="k">return</span> <span class="n">Scope</span><span class="p">(</span> -</span><span id="Scope.branch-90"><a href="#Scope.branch-90"><span class="linenos">90</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">(),</span> -</span><span id="Scope.branch-91"><a href="#Scope.branch-91"><span class="linenos">91</span></a> <span class="n">sources</span><span class="o">=</span><span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">cte_sources</span><span class="p">,</span> <span class="o">**</span><span class="p">(</span><span class="n">chain_sources</span> <span class="ow">or</span> <span class="p">{})},</span> -</span><span id="Scope.branch-92"><a href="#Scope.branch-92"><span class="linenos">92</span></a> <span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> -</span><span id="Scope.branch-93"><a href="#Scope.branch-93"><span class="linenos">93</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> -</span><span id="Scope.branch-94"><a href="#Scope.branch-94"><span class="linenos">94</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> -</span><span id="Scope.branch-95"><a href="#Scope.branch-95"><span class="linenos">95</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.branch-88"><a href="#Scope.branch-88"><span class="linenos">88</span></a> <span class="k">def</span> <span class="nf">branch</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">scope_type</span><span class="p">,</span> <span class="n">chain_sources</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="Scope.branch-89"><a href="#Scope.branch-89"><span class="linenos">89</span></a><span class="w"> </span><span class="sd">"""Branch from the current scope to a new, inner scope"""</span> +</span><span id="Scope.branch-90"><a href="#Scope.branch-90"><span class="linenos">90</span></a> <span class="k">return</span> <span class="n">Scope</span><span class="p">(</span> +</span><span id="Scope.branch-91"><a href="#Scope.branch-91"><span class="linenos">91</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="o">.</span><span class="n">unnest</span><span class="p">(),</span> +</span><span id="Scope.branch-92"><a href="#Scope.branch-92"><span class="linenos">92</span></a> <span class="n">sources</span><span class="o">=</span><span class="p">{</span><span class="o">**</span><span class="bp">self</span><span class="o">.</span><span class="n">cte_sources</span><span class="p">,</span> <span class="o">**</span><span class="p">(</span><span class="n">chain_sources</span> <span class="ow">or</span> <span class="p">{})},</span> +</span><span id="Scope.branch-93"><a href="#Scope.branch-93"><span class="linenos">93</span></a> <span class="n">parent</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> +</span><span id="Scope.branch-94"><a href="#Scope.branch-94"><span class="linenos">94</span></a> <span class="n">scope_type</span><span class="o">=</span><span class="n">scope_type</span><span class="p">,</span> +</span><span id="Scope.branch-95"><a href="#Scope.branch-95"><span class="linenos">95</span></a> <span class="o">**</span><span class="n">kwargs</span><span class="p">,</span> +</span><span id="Scope.branch-96"><a href="#Scope.branch-96"><span class="linenos">96</span></a> <span class="p">)</span> </span></pre></div> @@ -1570,8 +1577,8 @@ a list of the left and right child scopes.</li> </div> <a class="headerlink" href="#Scope.walk"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.walk-130"><a href="#Scope.walk-130"><span class="linenos">130</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Scope.walk-131"><a href="#Scope.walk-131"><span class="linenos">131</span></a> <span class="k">return</span> <span class="n">walk_in_scope</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">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.walk-131"><a href="#Scope.walk-131"><span class="linenos">131</span></a> <span class="k">def</span> <span class="nf">walk</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Scope.walk-132"><a href="#Scope.walk-132"><span class="linenos">132</span></a> <span class="k">return</span> <span class="n">walk_in_scope</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">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">)</span> </span></pre></div> @@ -1589,21 +1596,21 @@ a list of the left and right child scopes.</li> </div> <a class="headerlink" href="#Scope.find"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.find-133"><a href="#Scope.find-133"><span class="linenos">133</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Scope.find-134"><a href="#Scope.find-134"><span class="linenos">134</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope.find-135"><a href="#Scope.find-135"><span class="linenos">135</span></a><span class="sd"> Returns the first node in this scope which matches at least one of the specified types.</span> -</span><span id="Scope.find-136"><a href="#Scope.find-136"><span class="linenos">136</span></a> -</span><span id="Scope.find-137"><a href="#Scope.find-137"><span class="linenos">137</span></a><span class="sd"> This does NOT traverse into subscopes.</span> -</span><span id="Scope.find-138"><a href="#Scope.find-138"><span class="linenos">138</span></a> -</span><span id="Scope.find-139"><a href="#Scope.find-139"><span class="linenos">139</span></a><span class="sd"> Args:</span> -</span><span id="Scope.find-140"><a href="#Scope.find-140"><span class="linenos">140</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> -</span><span id="Scope.find-141"><a href="#Scope.find-141"><span class="linenos">141</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> -</span><span id="Scope.find-142"><a href="#Scope.find-142"><span class="linenos">142</span></a> -</span><span id="Scope.find-143"><a href="#Scope.find-143"><span class="linenos">143</span></a><span class="sd"> Returns:</span> -</span><span id="Scope.find-144"><a href="#Scope.find-144"><span class="linenos">144</span></a><span class="sd"> exp.Expression: the node which matches the criteria or None if no node matching</span> -</span><span id="Scope.find-145"><a href="#Scope.find-145"><span class="linenos">145</span></a><span class="sd"> the criteria was found.</span> -</span><span id="Scope.find-146"><a href="#Scope.find-146"><span class="linenos">146</span></a><span class="sd"> """</span> -</span><span id="Scope.find-147"><a href="#Scope.find-147"><span class="linenos">147</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.find-134"><a href="#Scope.find-134"><span class="linenos">134</span></a> <span class="k">def</span> <span class="nf">find</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Scope.find-135"><a href="#Scope.find-135"><span class="linenos">135</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope.find-136"><a href="#Scope.find-136"><span class="linenos">136</span></a><span class="sd"> Returns the first node in this scope which matches at least one of the specified types.</span> +</span><span id="Scope.find-137"><a href="#Scope.find-137"><span class="linenos">137</span></a> +</span><span id="Scope.find-138"><a href="#Scope.find-138"><span class="linenos">138</span></a><span class="sd"> This does NOT traverse into subscopes.</span> +</span><span id="Scope.find-139"><a href="#Scope.find-139"><span class="linenos">139</span></a> +</span><span id="Scope.find-140"><a href="#Scope.find-140"><span class="linenos">140</span></a><span class="sd"> Args:</span> +</span><span id="Scope.find-141"><a href="#Scope.find-141"><span class="linenos">141</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> +</span><span id="Scope.find-142"><a href="#Scope.find-142"><span class="linenos">142</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> +</span><span id="Scope.find-143"><a href="#Scope.find-143"><span class="linenos">143</span></a> +</span><span id="Scope.find-144"><a href="#Scope.find-144"><span class="linenos">144</span></a><span class="sd"> Returns:</span> +</span><span id="Scope.find-145"><a href="#Scope.find-145"><span class="linenos">145</span></a><span class="sd"> exp.Expression: the node which matches the criteria or None if no node matching</span> +</span><span id="Scope.find-146"><a href="#Scope.find-146"><span class="linenos">146</span></a><span class="sd"> the criteria was found.</span> +</span><span id="Scope.find-147"><a href="#Scope.find-147"><span class="linenos">147</span></a><span class="sd"> """</span> +</span><span id="Scope.find-148"><a href="#Scope.find-148"><span class="linenos">148</span></a> <span class="k">return</span> <span class="nb">next</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">find_all</span><span class="p">(</span><span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">),</span> <span class="kc">None</span><span class="p">)</span> </span></pre></div> @@ -1639,23 +1646,23 @@ a list of the left and right child scopes.</li> </div> <a class="headerlink" href="#Scope.find_all"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.find_all-149"><a href="#Scope.find_all-149"><span class="linenos">149</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Scope.find_all-150"><a href="#Scope.find_all-150"><span class="linenos">150</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope.find_all-151"><a href="#Scope.find_all-151"><span class="linenos">151</span></a><span class="sd"> Returns a generator object which visits all nodes in this scope and only yields those that</span> -</span><span id="Scope.find_all-152"><a href="#Scope.find_all-152"><span class="linenos">152</span></a><span class="sd"> match at least one of the specified expression types.</span> -</span><span id="Scope.find_all-153"><a href="#Scope.find_all-153"><span class="linenos">153</span></a> -</span><span id="Scope.find_all-154"><a href="#Scope.find_all-154"><span class="linenos">154</span></a><span class="sd"> This does NOT traverse into subscopes.</span> -</span><span id="Scope.find_all-155"><a href="#Scope.find_all-155"><span class="linenos">155</span></a> -</span><span id="Scope.find_all-156"><a href="#Scope.find_all-156"><span class="linenos">156</span></a><span class="sd"> Args:</span> -</span><span id="Scope.find_all-157"><a href="#Scope.find_all-157"><span class="linenos">157</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> -</span><span id="Scope.find_all-158"><a href="#Scope.find_all-158"><span class="linenos">158</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> -</span><span id="Scope.find_all-159"><a href="#Scope.find_all-159"><span class="linenos">159</span></a> -</span><span id="Scope.find_all-160"><a href="#Scope.find_all-160"><span class="linenos">160</span></a><span class="sd"> Yields:</span> -</span><span id="Scope.find_all-161"><a href="#Scope.find_all-161"><span class="linenos">161</span></a><span class="sd"> exp.Expression: nodes</span> -</span><span id="Scope.find_all-162"><a href="#Scope.find_all-162"><span class="linenos">162</span></a><span class="sd"> """</span> -</span><span id="Scope.find_all-163"><a href="#Scope.find_all-163"><span class="linenos">163</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span> -</span><span id="Scope.find_all-164"><a href="#Scope.find_all-164"><span class="linenos">164</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span> -</span><span id="Scope.find_all-165"><a href="#Scope.find_all-165"><span class="linenos">165</span></a> <span class="k">yield</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.find_all-150"><a href="#Scope.find_all-150"><span class="linenos">150</span></a> <span class="k">def</span> <span class="nf">find_all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">expression_types</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Scope.find_all-151"><a href="#Scope.find_all-151"><span class="linenos">151</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope.find_all-152"><a href="#Scope.find_all-152"><span class="linenos">152</span></a><span class="sd"> Returns a generator object which visits all nodes in this scope and only yields those that</span> +</span><span id="Scope.find_all-153"><a href="#Scope.find_all-153"><span class="linenos">153</span></a><span class="sd"> match at least one of the specified expression types.</span> +</span><span id="Scope.find_all-154"><a href="#Scope.find_all-154"><span class="linenos">154</span></a> +</span><span id="Scope.find_all-155"><a href="#Scope.find_all-155"><span class="linenos">155</span></a><span class="sd"> This does NOT traverse into subscopes.</span> +</span><span id="Scope.find_all-156"><a href="#Scope.find_all-156"><span class="linenos">156</span></a> +</span><span id="Scope.find_all-157"><a href="#Scope.find_all-157"><span class="linenos">157</span></a><span class="sd"> Args:</span> +</span><span id="Scope.find_all-158"><a href="#Scope.find_all-158"><span class="linenos">158</span></a><span class="sd"> expression_types (type): the expression type(s) to match.</span> +</span><span id="Scope.find_all-159"><a href="#Scope.find_all-159"><span class="linenos">159</span></a><span class="sd"> bfs (bool): True to use breadth-first search, False to use depth-first.</span> +</span><span id="Scope.find_all-160"><a href="#Scope.find_all-160"><span class="linenos">160</span></a> +</span><span id="Scope.find_all-161"><a href="#Scope.find_all-161"><span class="linenos">161</span></a><span class="sd"> Yields:</span> +</span><span id="Scope.find_all-162"><a href="#Scope.find_all-162"><span class="linenos">162</span></a><span class="sd"> exp.Expression: nodes</span> +</span><span id="Scope.find_all-163"><a href="#Scope.find_all-163"><span class="linenos">163</span></a><span class="sd"> """</span> +</span><span id="Scope.find_all-164"><a href="#Scope.find_all-164"><span class="linenos">164</span></a> <span class="k">for</span> <span class="n">expression</span><span class="p">,</span> <span class="n">_</span><span class="p">,</span> <span class="n">_</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">):</span> +</span><span id="Scope.find_all-165"><a href="#Scope.find_all-165"><span class="linenos">165</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">expression_types</span><span class="p">):</span> +</span><span id="Scope.find_all-166"><a href="#Scope.find_all-166"><span class="linenos">166</span></a> <span class="k">yield</span> <span class="n">expression</span> </span></pre></div> @@ -1691,18 +1698,18 @@ match at least one of the specified expression types.</p> </div> <a class="headerlink" href="#Scope.replace"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.replace-167"><a href="#Scope.replace-167"><span class="linenos">167</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old</span><span class="p">,</span> <span class="n">new</span><span class="p">):</span> -</span><span id="Scope.replace-168"><a href="#Scope.replace-168"><span class="linenos">168</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope.replace-169"><a href="#Scope.replace-169"><span class="linenos">169</span></a><span class="sd"> Replace `old` with `new`.</span> -</span><span id="Scope.replace-170"><a href="#Scope.replace-170"><span class="linenos">170</span></a> -</span><span id="Scope.replace-171"><a href="#Scope.replace-171"><span class="linenos">171</span></a><span class="sd"> This can be used instead of `exp.Expression.replace` to ensure the `Scope` is kept up-to-date.</span> -</span><span id="Scope.replace-172"><a href="#Scope.replace-172"><span class="linenos">172</span></a> -</span><span id="Scope.replace-173"><a href="#Scope.replace-173"><span class="linenos">173</span></a><span class="sd"> Args:</span> -</span><span id="Scope.replace-174"><a href="#Scope.replace-174"><span class="linenos">174</span></a><span class="sd"> old (exp.Expression): old node</span> -</span><span id="Scope.replace-175"><a href="#Scope.replace-175"><span class="linenos">175</span></a><span class="sd"> new (exp.Expression): new node</span> -</span><span id="Scope.replace-176"><a href="#Scope.replace-176"><span class="linenos">176</span></a><span class="sd"> """</span> -</span><span id="Scope.replace-177"><a href="#Scope.replace-177"><span class="linenos">177</span></a> <span class="n">old</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> -</span><span id="Scope.replace-178"><a href="#Scope.replace-178"><span class="linenos">178</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.replace-168"><a href="#Scope.replace-168"><span class="linenos">168</span></a> <span class="k">def</span> <span class="nf">replace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old</span><span class="p">,</span> <span class="n">new</span><span class="p">):</span> +</span><span id="Scope.replace-169"><a href="#Scope.replace-169"><span class="linenos">169</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope.replace-170"><a href="#Scope.replace-170"><span class="linenos">170</span></a><span class="sd"> Replace `old` with `new`.</span> +</span><span id="Scope.replace-171"><a href="#Scope.replace-171"><span class="linenos">171</span></a> +</span><span id="Scope.replace-172"><a href="#Scope.replace-172"><span class="linenos">172</span></a><span class="sd"> This can be used instead of `exp.Expression.replace` to ensure the `Scope` is kept up-to-date.</span> +</span><span id="Scope.replace-173"><a href="#Scope.replace-173"><span class="linenos">173</span></a> +</span><span id="Scope.replace-174"><a href="#Scope.replace-174"><span class="linenos">174</span></a><span class="sd"> Args:</span> +</span><span id="Scope.replace-175"><a href="#Scope.replace-175"><span class="linenos">175</span></a><span class="sd"> old (exp.Expression): old node</span> +</span><span id="Scope.replace-176"><a href="#Scope.replace-176"><span class="linenos">176</span></a><span class="sd"> new (exp.Expression): new node</span> +</span><span id="Scope.replace-177"><a href="#Scope.replace-177"><span class="linenos">177</span></a><span class="sd"> """</span> +</span><span id="Scope.replace-178"><a href="#Scope.replace-178"><span class="linenos">178</span></a> <span class="n">old</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">new</span><span class="p">)</span> +</span><span id="Scope.replace-179"><a href="#Scope.replace-179"><span class="linenos">179</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span></pre></div> @@ -1981,16 +1988,16 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#Scope.source_columns"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.source_columns-371"><a href="#Scope.source_columns-371"><span class="linenos">371</span></a> <span class="k">def</span> <span class="nf">source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_name</span><span class="p">):</span> -</span><span id="Scope.source_columns-372"><a href="#Scope.source_columns-372"><span class="linenos">372</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope.source_columns-373"><a href="#Scope.source_columns-373"><span class="linenos">373</span></a><span class="sd"> Get all columns in the current scope for a particular source.</span> -</span><span id="Scope.source_columns-374"><a href="#Scope.source_columns-374"><span class="linenos">374</span></a> -</span><span id="Scope.source_columns-375"><a href="#Scope.source_columns-375"><span class="linenos">375</span></a><span class="sd"> Args:</span> -</span><span id="Scope.source_columns-376"><a href="#Scope.source_columns-376"><span class="linenos">376</span></a><span class="sd"> source_name (str): Name of the source</span> -</span><span id="Scope.source_columns-377"><a href="#Scope.source_columns-377"><span class="linenos">377</span></a><span class="sd"> Returns:</span> -</span><span id="Scope.source_columns-378"><a href="#Scope.source_columns-378"><span class="linenos">378</span></a><span class="sd"> list[exp.Column]: Column instances that reference `source_name`</span> -</span><span id="Scope.source_columns-379"><a href="#Scope.source_columns-379"><span class="linenos">379</span></a><span class="sd"> """</span> -</span><span id="Scope.source_columns-380"><a href="#Scope.source_columns-380"><span class="linenos">380</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="o">==</span> <span class="n">source_name</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.source_columns-374"><a href="#Scope.source_columns-374"><span class="linenos">374</span></a> <span class="k">def</span> <span class="nf">source_columns</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">source_name</span><span class="p">):</span> +</span><span id="Scope.source_columns-375"><a href="#Scope.source_columns-375"><span class="linenos">375</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope.source_columns-376"><a href="#Scope.source_columns-376"><span class="linenos">376</span></a><span class="sd"> Get all columns in the current scope for a particular source.</span> +</span><span id="Scope.source_columns-377"><a href="#Scope.source_columns-377"><span class="linenos">377</span></a> +</span><span id="Scope.source_columns-378"><a href="#Scope.source_columns-378"><span class="linenos">378</span></a><span class="sd"> Args:</span> +</span><span id="Scope.source_columns-379"><a href="#Scope.source_columns-379"><span class="linenos">379</span></a><span class="sd"> source_name (str): Name of the source</span> +</span><span id="Scope.source_columns-380"><a href="#Scope.source_columns-380"><span class="linenos">380</span></a><span class="sd"> Returns:</span> +</span><span id="Scope.source_columns-381"><a href="#Scope.source_columns-381"><span class="linenos">381</span></a><span class="sd"> list[exp.Column]: Column instances that reference `source_name`</span> +</span><span id="Scope.source_columns-382"><a href="#Scope.source_columns-382"><span class="linenos">382</span></a><span class="sd"> """</span> +</span><span id="Scope.source_columns-383"><a href="#Scope.source_columns-383"><span class="linenos">383</span></a> <span class="k">return</span> <span class="p">[</span><span class="n">column</span> <span class="k">for</span> <span class="n">column</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">columns</span> <span class="k">if</span> <span class="n">column</span><span class="o">.</span><span class="n">table</span> <span class="o">==</span> <span class="n">source_name</span><span class="p">]</span> </span></pre></div> @@ -2113,10 +2120,10 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#Scope.rename_source"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.rename_source-417"><a href="#Scope.rename_source-417"><span class="linenos">417</span></a> <span class="k">def</span> <span class="nf">rename_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_name</span><span class="p">,</span> <span class="n">new_name</span><span class="p">):</span> -</span><span id="Scope.rename_source-418"><a href="#Scope.rename_source-418"><span class="linenos">418</span></a><span class="w"> </span><span class="sd">"""Rename a source in this scope"""</span> -</span><span id="Scope.rename_source-419"><a href="#Scope.rename_source-419"><span class="linenos">419</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">old_name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">,</span> <span class="p">[])</span> -</span><span id="Scope.rename_source-420"><a href="#Scope.rename_source-420"><span class="linenos">420</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">new_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">columns</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.rename_source-420"><a href="#Scope.rename_source-420"><span class="linenos">420</span></a> <span class="k">def</span> <span class="nf">rename_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">old_name</span><span class="p">,</span> <span class="n">new_name</span><span class="p">):</span> +</span><span id="Scope.rename_source-421"><a href="#Scope.rename_source-421"><span class="linenos">421</span></a><span class="w"> </span><span class="sd">"""Rename a source in this scope"""</span> +</span><span id="Scope.rename_source-422"><a href="#Scope.rename_source-422"><span class="linenos">422</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">old_name</span> <span class="ow">or</span> <span class="s2">""</span><span class="p">,</span> <span class="p">[])</span> +</span><span id="Scope.rename_source-423"><a href="#Scope.rename_source-423"><span class="linenos">423</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">new_name</span><span class="p">]</span> <span class="o">=</span> <span class="n">columns</span> </span></pre></div> @@ -2136,10 +2143,10 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#Scope.add_source"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.add_source-422"><a href="#Scope.add_source-422"><span class="linenos">422</span></a> <span class="k">def</span> <span class="nf">add_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="p">):</span> -</span><span id="Scope.add_source-423"><a href="#Scope.add_source-423"><span class="linenos">423</span></a><span class="w"> </span><span class="sd">"""Add a source to this scope"""</span> -</span><span id="Scope.add_source-424"><a href="#Scope.add_source-424"><span class="linenos">424</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">source</span> -</span><span id="Scope.add_source-425"><a href="#Scope.add_source-425"><span class="linenos">425</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.add_source-425"><a href="#Scope.add_source-425"><span class="linenos">425</span></a> <span class="k">def</span> <span class="nf">add_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">source</span><span class="p">):</span> +</span><span id="Scope.add_source-426"><a href="#Scope.add_source-426"><span class="linenos">426</span></a><span class="w"> </span><span class="sd">"""Add a source to this scope"""</span> +</span><span id="Scope.add_source-427"><a href="#Scope.add_source-427"><span class="linenos">427</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="p">[</span><span class="n">name</span><span class="p">]</span> <span class="o">=</span> <span class="n">source</span> +</span><span id="Scope.add_source-428"><a href="#Scope.add_source-428"><span class="linenos">428</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span></pre></div> @@ -2159,10 +2166,10 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#Scope.remove_source"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.remove_source-427"><a href="#Scope.remove_source-427"><span class="linenos">427</span></a> <span class="k">def</span> <span class="nf">remove_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> -</span><span id="Scope.remove_source-428"><a href="#Scope.remove_source-428"><span class="linenos">428</span></a><span class="w"> </span><span class="sd">"""Remove a source from this scope"""</span> -</span><span id="Scope.remove_source-429"><a href="#Scope.remove_source-429"><span class="linenos">429</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> -</span><span id="Scope.remove_source-430"><a href="#Scope.remove_source-430"><span class="linenos">430</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.remove_source-430"><a href="#Scope.remove_source-430"><span class="linenos">430</span></a> <span class="k">def</span> <span class="nf">remove_source</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span> +</span><span id="Scope.remove_source-431"><a href="#Scope.remove_source-431"><span class="linenos">431</span></a><span class="w"> </span><span class="sd">"""Remove a source from this scope"""</span> +</span><span id="Scope.remove_source-432"><a href="#Scope.remove_source-432"><span class="linenos">432</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sources</span><span class="o">.</span><span class="n">pop</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="kc">None</span><span class="p">)</span> +</span><span id="Scope.remove_source-433"><a href="#Scope.remove_source-433"><span class="linenos">433</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">clear_cache</span><span class="p">()</span> </span></pre></div> @@ -2182,18 +2189,18 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#Scope.traverse"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.traverse-435"><a href="#Scope.traverse-435"><span class="linenos">435</span></a> <span class="k">def</span> <span class="nf">traverse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope.traverse-436"><a href="#Scope.traverse-436"><span class="linenos">436</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope.traverse-437"><a href="#Scope.traverse-437"><span class="linenos">437</span></a><span class="sd"> Traverse the scope tree from this node.</span> -</span><span id="Scope.traverse-438"><a href="#Scope.traverse-438"><span class="linenos">438</span></a> -</span><span id="Scope.traverse-439"><a href="#Scope.traverse-439"><span class="linenos">439</span></a><span class="sd"> Yields:</span> -</span><span id="Scope.traverse-440"><a href="#Scope.traverse-440"><span class="linenos">440</span></a><span class="sd"> Scope: scope instances in depth-first-search post-order</span> -</span><span id="Scope.traverse-441"><a href="#Scope.traverse-441"><span class="linenos">441</span></a><span class="sd"> """</span> -</span><span id="Scope.traverse-442"><a href="#Scope.traverse-442"><span class="linenos">442</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span> -</span><span id="Scope.traverse-443"><a href="#Scope.traverse-443"><span class="linenos">443</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> -</span><span id="Scope.traverse-444"><a href="#Scope.traverse-444"><span class="linenos">444</span></a> <span class="p">):</span> -</span><span id="Scope.traverse-445"><a href="#Scope.traverse-445"><span class="linenos">445</span></a> <span class="k">yield from</span> <span class="n">child_scope</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> -</span><span id="Scope.traverse-446"><a href="#Scope.traverse-446"><span class="linenos">446</span></a> <span class="k">yield</span> <span class="bp">self</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.traverse-438"><a href="#Scope.traverse-438"><span class="linenos">438</span></a> <span class="k">def</span> <span class="nf">traverse</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope.traverse-439"><a href="#Scope.traverse-439"><span class="linenos">439</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope.traverse-440"><a href="#Scope.traverse-440"><span class="linenos">440</span></a><span class="sd"> Traverse the scope tree from this node.</span> +</span><span id="Scope.traverse-441"><a href="#Scope.traverse-441"><span class="linenos">441</span></a> +</span><span id="Scope.traverse-442"><a href="#Scope.traverse-442"><span class="linenos">442</span></a><span class="sd"> Yields:</span> +</span><span id="Scope.traverse-443"><a href="#Scope.traverse-443"><span class="linenos">443</span></a><span class="sd"> Scope: scope instances in depth-first-search post-order</span> +</span><span id="Scope.traverse-444"><a href="#Scope.traverse-444"><span class="linenos">444</span></a><span class="sd"> """</span> +</span><span id="Scope.traverse-445"><a href="#Scope.traverse-445"><span class="linenos">445</span></a> <span class="k">for</span> <span class="n">child_scope</span> <span class="ow">in</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">(</span> +</span><span id="Scope.traverse-446"><a href="#Scope.traverse-446"><span class="linenos">446</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">cte_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">union_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">table_scopes</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">subquery_scopes</span> +</span><span id="Scope.traverse-447"><a href="#Scope.traverse-447"><span class="linenos">447</span></a> <span class="p">):</span> +</span><span id="Scope.traverse-448"><a href="#Scope.traverse-448"><span class="linenos">448</span></a> <span class="k">yield from</span> <span class="n">child_scope</span><span class="o">.</span><span class="n">traverse</span><span class="p">()</span> +</span><span id="Scope.traverse-449"><a href="#Scope.traverse-449"><span class="linenos">449</span></a> <span class="k">yield</span> <span class="bp">self</span> </span></pre></div> @@ -2219,20 +2226,20 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#Scope.ref_count"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.ref_count-448"><a href="#Scope.ref_count-448"><span class="linenos">448</span></a> <span class="k">def</span> <span class="nf">ref_count</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Scope.ref_count-449"><a href="#Scope.ref_count-449"><span class="linenos">449</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Scope.ref_count-450"><a href="#Scope.ref_count-450"><span class="linenos">450</span></a><span class="sd"> Count the number of times each scope in this tree is referenced.</span> -</span><span id="Scope.ref_count-451"><a href="#Scope.ref_count-451"><span class="linenos">451</span></a> -</span><span id="Scope.ref_count-452"><a href="#Scope.ref_count-452"><span class="linenos">452</span></a><span class="sd"> Returns:</span> -</span><span id="Scope.ref_count-453"><a href="#Scope.ref_count-453"><span class="linenos">453</span></a><span class="sd"> dict[int, int]: Mapping of Scope instance ID to reference count</span> -</span><span id="Scope.ref_count-454"><a href="#Scope.ref_count-454"><span class="linenos">454</span></a><span class="sd"> """</span> -</span><span id="Scope.ref_count-455"><a href="#Scope.ref_count-455"><span class="linenos">455</span></a> <span class="n">scope_ref_count</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> -</span><span id="Scope.ref_count-456"><a href="#Scope.ref_count-456"><span class="linenos">456</span></a> -</span><span id="Scope.ref_count-457"><a href="#Scope.ref_count-457"><span class="linenos">457</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span> -</span><span id="Scope.ref_count-458"><a href="#Scope.ref_count-458"><span class="linenos">458</span></a> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> -</span><span id="Scope.ref_count-459"><a href="#Scope.ref_count-459"><span class="linenos">459</span></a> <span class="n">scope_ref_count</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">source</span><span class="p">)]</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Scope.ref_count-460"><a href="#Scope.ref_count-460"><span class="linenos">460</span></a> -</span><span id="Scope.ref_count-461"><a href="#Scope.ref_count-461"><span class="linenos">461</span></a> <span class="k">return</span> <span class="n">scope_ref_count</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Scope.ref_count-451"><a href="#Scope.ref_count-451"><span class="linenos">451</span></a> <span class="k">def</span> <span class="nf">ref_count</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Scope.ref_count-452"><a href="#Scope.ref_count-452"><span class="linenos">452</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Scope.ref_count-453"><a href="#Scope.ref_count-453"><span class="linenos">453</span></a><span class="sd"> Count the number of times each scope in this tree is referenced.</span> +</span><span id="Scope.ref_count-454"><a href="#Scope.ref_count-454"><span class="linenos">454</span></a> +</span><span id="Scope.ref_count-455"><a href="#Scope.ref_count-455"><span class="linenos">455</span></a><span class="sd"> Returns:</span> +</span><span id="Scope.ref_count-456"><a href="#Scope.ref_count-456"><span class="linenos">456</span></a><span class="sd"> dict[int, int]: Mapping of Scope instance ID to reference count</span> +</span><span id="Scope.ref_count-457"><a href="#Scope.ref_count-457"><span class="linenos">457</span></a><span class="sd"> """</span> +</span><span id="Scope.ref_count-458"><a href="#Scope.ref_count-458"><span class="linenos">458</span></a> <span class="n">scope_ref_count</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="mi">0</span><span class="p">)</span> +</span><span id="Scope.ref_count-459"><a href="#Scope.ref_count-459"><span class="linenos">459</span></a> +</span><span id="Scope.ref_count-460"><a href="#Scope.ref_count-460"><span class="linenos">460</span></a> <span class="k">for</span> <span class="n">scope</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">traverse</span><span class="p">():</span> +</span><span id="Scope.ref_count-461"><a href="#Scope.ref_count-461"><span class="linenos">461</span></a> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">source</span> <span class="ow">in</span> <span class="n">scope</span><span class="o">.</span><span class="n">selected_sources</span><span class="o">.</span><span class="n">values</span><span class="p">():</span> +</span><span id="Scope.ref_count-462"><a href="#Scope.ref_count-462"><span class="linenos">462</span></a> <span class="n">scope_ref_count</span><span class="p">[</span><span class="nb">id</span><span class="p">(</span><span class="n">source</span><span class="p">)]</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Scope.ref_count-463"><a href="#Scope.ref_count-463"><span class="linenos">463</span></a> +</span><span id="Scope.ref_count-464"><a href="#Scope.ref_count-464"><span class="linenos">464</span></a> <span class="k">return</span> <span class="n">scope_ref_count</span> </span></pre></div> @@ -2259,32 +2266,32 @@ table only becomes a selected source if it's included in a FROM or JOIN clause.< </div> <a class="headerlink" href="#traverse_scope"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="traverse_scope-464"><a href="#traverse_scope-464"><span class="linenos">464</span></a><span class="k">def</span> <span class="nf">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="traverse_scope-465"><a href="#traverse_scope-465"><span class="linenos">465</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="traverse_scope-466"><a href="#traverse_scope-466"><span class="linenos">466</span></a><span class="sd"> Traverse an expression by it's "scopes".</span> -</span><span id="traverse_scope-467"><a href="#traverse_scope-467"><span class="linenos">467</span></a> -</span><span id="traverse_scope-468"><a href="#traverse_scope-468"><span class="linenos">468</span></a><span class="sd"> "Scope" represents the current context of a Select statement.</span> -</span><span id="traverse_scope-469"><a href="#traverse_scope-469"><span class="linenos">469</span></a> -</span><span id="traverse_scope-470"><a href="#traverse_scope-470"><span class="linenos">470</span></a><span class="sd"> This is helpful for optimizing queries, where we need more information than</span> -</span><span id="traverse_scope-471"><a href="#traverse_scope-471"><span class="linenos">471</span></a><span class="sd"> the expression tree itself. For example, we might care about the source</span> -</span><span id="traverse_scope-472"><a href="#traverse_scope-472"><span class="linenos">472</span></a><span class="sd"> names within a subquery. Returns a list because a generator could result in</span> -</span><span id="traverse_scope-473"><a href="#traverse_scope-473"><span class="linenos">473</span></a><span class="sd"> incomplete properties which is confusing.</span> -</span><span id="traverse_scope-474"><a href="#traverse_scope-474"><span class="linenos">474</span></a> -</span><span id="traverse_scope-475"><a href="#traverse_scope-475"><span class="linenos">475</span></a><span class="sd"> Examples:</span> -</span><span id="traverse_scope-476"><a href="#traverse_scope-476"><span class="linenos">476</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="traverse_scope-477"><a href="#traverse_scope-477"><span class="linenos">477</span></a><span class="sd"> >>> expression = sqlglot.parse_one("SELECT a FROM (SELECT a FROM x) AS y")</span> -</span><span id="traverse_scope-478"><a href="#traverse_scope-478"><span class="linenos">478</span></a><span class="sd"> >>> scopes = traverse_scope(expression)</span> -</span><span id="traverse_scope-479"><a href="#traverse_scope-479"><span class="linenos">479</span></a><span class="sd"> >>> scopes[0].expression.sql(), list(scopes[0].sources)</span> -</span><span id="traverse_scope-480"><a href="#traverse_scope-480"><span class="linenos">480</span></a><span class="sd"> ('SELECT a FROM x', ['x'])</span> -</span><span id="traverse_scope-481"><a href="#traverse_scope-481"><span class="linenos">481</span></a><span class="sd"> >>> scopes[1].expression.sql(), list(scopes[1].sources)</span> -</span><span id="traverse_scope-482"><a href="#traverse_scope-482"><span class="linenos">482</span></a><span class="sd"> ('SELECT a FROM (SELECT a FROM x) AS y', ['y'])</span> -</span><span id="traverse_scope-483"><a href="#traverse_scope-483"><span class="linenos">483</span></a> -</span><span id="traverse_scope-484"><a href="#traverse_scope-484"><span class="linenos">484</span></a><span class="sd"> Args:</span> -</span><span id="traverse_scope-485"><a href="#traverse_scope-485"><span class="linenos">485</span></a><span class="sd"> expression (exp.Expression): expression to traverse</span> -</span><span id="traverse_scope-486"><a href="#traverse_scope-486"><span class="linenos">486</span></a><span class="sd"> Returns:</span> -</span><span id="traverse_scope-487"><a href="#traverse_scope-487"><span class="linenos">487</span></a><span class="sd"> list[Scope]: scope instances</span> -</span><span id="traverse_scope-488"><a href="#traverse_scope-488"><span class="linenos">488</span></a><span class="sd"> """</span> -</span><span id="traverse_scope-489"><a href="#traverse_scope-489"><span class="linenos">489</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">_traverse_scope</span><span class="p">(</span><span class="n">Scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)))</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="traverse_scope-467"><a href="#traverse_scope-467"><span class="linenos">467</span></a><span class="k">def</span> <span class="nf">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="traverse_scope-468"><a href="#traverse_scope-468"><span class="linenos">468</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="traverse_scope-469"><a href="#traverse_scope-469"><span class="linenos">469</span></a><span class="sd"> Traverse an expression by it's "scopes".</span> +</span><span id="traverse_scope-470"><a href="#traverse_scope-470"><span class="linenos">470</span></a> +</span><span id="traverse_scope-471"><a href="#traverse_scope-471"><span class="linenos">471</span></a><span class="sd"> "Scope" represents the current context of a Select statement.</span> +</span><span id="traverse_scope-472"><a href="#traverse_scope-472"><span class="linenos">472</span></a> +</span><span id="traverse_scope-473"><a href="#traverse_scope-473"><span class="linenos">473</span></a><span class="sd"> This is helpful for optimizing queries, where we need more information than</span> +</span><span id="traverse_scope-474"><a href="#traverse_scope-474"><span class="linenos">474</span></a><span class="sd"> the expression tree itself. For example, we might care about the source</span> +</span><span id="traverse_scope-475"><a href="#traverse_scope-475"><span class="linenos">475</span></a><span class="sd"> names within a subquery. Returns a list because a generator could result in</span> +</span><span id="traverse_scope-476"><a href="#traverse_scope-476"><span class="linenos">476</span></a><span class="sd"> incomplete properties which is confusing.</span> +</span><span id="traverse_scope-477"><a href="#traverse_scope-477"><span class="linenos">477</span></a> +</span><span id="traverse_scope-478"><a href="#traverse_scope-478"><span class="linenos">478</span></a><span class="sd"> Examples:</span> +</span><span id="traverse_scope-479"><a href="#traverse_scope-479"><span class="linenos">479</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="traverse_scope-480"><a href="#traverse_scope-480"><span class="linenos">480</span></a><span class="sd"> >>> expression = sqlglot.parse_one("SELECT a FROM (SELECT a FROM x) AS y")</span> +</span><span id="traverse_scope-481"><a href="#traverse_scope-481"><span class="linenos">481</span></a><span class="sd"> >>> scopes = traverse_scope(expression)</span> +</span><span id="traverse_scope-482"><a href="#traverse_scope-482"><span class="linenos">482</span></a><span class="sd"> >>> scopes[0].expression.sql(), list(scopes[0].sources)</span> +</span><span id="traverse_scope-483"><a href="#traverse_scope-483"><span class="linenos">483</span></a><span class="sd"> ('SELECT a FROM x', ['x'])</span> +</span><span id="traverse_scope-484"><a href="#traverse_scope-484"><span class="linenos">484</span></a><span class="sd"> >>> scopes[1].expression.sql(), list(scopes[1].sources)</span> +</span><span id="traverse_scope-485"><a href="#traverse_scope-485"><span class="linenos">485</span></a><span class="sd"> ('SELECT a FROM (SELECT a FROM x) AS y', ['y'])</span> +</span><span id="traverse_scope-486"><a href="#traverse_scope-486"><span class="linenos">486</span></a> +</span><span id="traverse_scope-487"><a href="#traverse_scope-487"><span class="linenos">487</span></a><span class="sd"> Args:</span> +</span><span id="traverse_scope-488"><a href="#traverse_scope-488"><span class="linenos">488</span></a><span class="sd"> expression (exp.Expression): expression to traverse</span> +</span><span id="traverse_scope-489"><a href="#traverse_scope-489"><span class="linenos">489</span></a><span class="sd"> Returns:</span> +</span><span id="traverse_scope-490"><a href="#traverse_scope-490"><span class="linenos">490</span></a><span class="sd"> list[Scope]: scope instances</span> +</span><span id="traverse_scope-491"><a href="#traverse_scope-491"><span class="linenos">491</span></a><span class="sd"> """</span> +</span><span id="traverse_scope-492"><a href="#traverse_scope-492"><span class="linenos">492</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="n">_traverse_scope</span><span class="p">(</span><span class="n">Scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)))</span> </span></pre></div> @@ -2338,16 +2345,16 @@ incomplete properties which is confusing.</p> </div> <a class="headerlink" href="#build_scope"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="build_scope-492"><a href="#build_scope-492"><span class="linenos">492</span></a><span class="k">def</span> <span class="nf">build_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> -</span><span id="build_scope-493"><a href="#build_scope-493"><span class="linenos">493</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="build_scope-494"><a href="#build_scope-494"><span class="linenos">494</span></a><span class="sd"> Build a scope tree.</span> -</span><span id="build_scope-495"><a href="#build_scope-495"><span class="linenos">495</span></a> -</span><span id="build_scope-496"><a href="#build_scope-496"><span class="linenos">496</span></a><span class="sd"> Args:</span> -</span><span id="build_scope-497"><a href="#build_scope-497"><span class="linenos">497</span></a><span class="sd"> expression (exp.Expression): expression to build the scope tree for</span> -</span><span id="build_scope-498"><a href="#build_scope-498"><span class="linenos">498</span></a><span class="sd"> Returns:</span> -</span><span id="build_scope-499"><a href="#build_scope-499"><span class="linenos">499</span></a><span class="sd"> Scope: root scope</span> -</span><span id="build_scope-500"><a href="#build_scope-500"><span class="linenos">500</span></a><span class="sd"> """</span> -</span><span id="build_scope-501"><a href="#build_scope-501"><span class="linenos">501</span></a> <span class="k">return</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="build_scope-495"><a href="#build_scope-495"><span class="linenos">495</span></a><span class="k">def</span> <span class="nf">build_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">):</span> +</span><span id="build_scope-496"><a href="#build_scope-496"><span class="linenos">496</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="build_scope-497"><a href="#build_scope-497"><span class="linenos">497</span></a><span class="sd"> Build a scope tree.</span> +</span><span id="build_scope-498"><a href="#build_scope-498"><span class="linenos">498</span></a> +</span><span id="build_scope-499"><a href="#build_scope-499"><span class="linenos">499</span></a><span class="sd"> Args:</span> +</span><span id="build_scope-500"><a href="#build_scope-500"><span class="linenos">500</span></a><span class="sd"> expression (exp.Expression): expression to build the scope tree for</span> +</span><span id="build_scope-501"><a href="#build_scope-501"><span class="linenos">501</span></a><span class="sd"> Returns:</span> +</span><span id="build_scope-502"><a href="#build_scope-502"><span class="linenos">502</span></a><span class="sd"> Scope: root scope</span> +</span><span id="build_scope-503"><a href="#build_scope-503"><span class="linenos">503</span></a><span class="sd"> """</span> +</span><span id="build_scope-504"><a href="#build_scope-504"><span class="linenos">504</span></a> <span class="k">return</span> <span class="n">traverse_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> </span></pre></div> @@ -2379,37 +2386,37 @@ incomplete properties which is confusing.</p> </div> <a class="headerlink" href="#walk_in_scope"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="walk_in_scope-644"><a href="#walk_in_scope-644"><span class="linenos">644</span></a><span class="k">def</span> <span class="nf">walk_in_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="walk_in_scope-645"><a href="#walk_in_scope-645"><span class="linenos">645</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="walk_in_scope-646"><a href="#walk_in_scope-646"><span class="linenos">646</span></a><span class="sd"> Returns a generator object which visits all nodes in the syntrax tree, stopping at</span> -</span><span id="walk_in_scope-647"><a href="#walk_in_scope-647"><span class="linenos">647</span></a><span class="sd"> nodes that start child scopes.</span> -</span><span id="walk_in_scope-648"><a href="#walk_in_scope-648"><span class="linenos">648</span></a> -</span><span id="walk_in_scope-649"><a href="#walk_in_scope-649"><span class="linenos">649</span></a><span class="sd"> Args:</span> -</span><span id="walk_in_scope-650"><a href="#walk_in_scope-650"><span class="linenos">650</span></a><span class="sd"> expression (exp.Expression):</span> -</span><span id="walk_in_scope-651"><a href="#walk_in_scope-651"><span class="linenos">651</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span> -</span><span id="walk_in_scope-652"><a href="#walk_in_scope-652"><span class="linenos">652</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="walk_in_scope-649"><a href="#walk_in_scope-649"><span class="linenos">649</span></a><span class="k">def</span> <span class="nf">walk_in_scope</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">bfs</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="walk_in_scope-650"><a href="#walk_in_scope-650"><span class="linenos">650</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="walk_in_scope-651"><a href="#walk_in_scope-651"><span class="linenos">651</span></a><span class="sd"> Returns a generator object which visits all nodes in the syntrax tree, stopping at</span> +</span><span id="walk_in_scope-652"><a href="#walk_in_scope-652"><span class="linenos">652</span></a><span class="sd"> nodes that start child scopes.</span> </span><span id="walk_in_scope-653"><a href="#walk_in_scope-653"><span class="linenos">653</span></a> -</span><span id="walk_in_scope-654"><a href="#walk_in_scope-654"><span class="linenos">654</span></a><span class="sd"> Yields:</span> -</span><span id="walk_in_scope-655"><a href="#walk_in_scope-655"><span class="linenos">655</span></a><span class="sd"> tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key</span> -</span><span id="walk_in_scope-656"><a href="#walk_in_scope-656"><span class="linenos">656</span></a><span class="sd"> """</span> -</span><span id="walk_in_scope-657"><a href="#walk_in_scope-657"><span class="linenos">657</span></a> <span class="c1"># We'll use this variable to pass state into the dfs generator.</span> -</span><span id="walk_in_scope-658"><a href="#walk_in_scope-658"><span class="linenos">658</span></a> <span class="c1"># Whenever we set it to True, we exclude a subtree from traversal.</span> -</span><span id="walk_in_scope-659"><a href="#walk_in_scope-659"><span class="linenos">659</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="walk_in_scope-660"><a href="#walk_in_scope-660"><span class="linenos">660</span></a> -</span><span id="walk_in_scope-661"><a href="#walk_in_scope-661"><span class="linenos">661</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">prune</span><span class="p">):</span> -</span><span id="walk_in_scope-662"><a href="#walk_in_scope-662"><span class="linenos">662</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="walk_in_scope-663"><a href="#walk_in_scope-663"><span class="linenos">663</span></a> -</span><span id="walk_in_scope-664"><a href="#walk_in_scope-664"><span class="linenos">664</span></a> <span class="k">yield</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> +</span><span id="walk_in_scope-654"><a href="#walk_in_scope-654"><span class="linenos">654</span></a><span class="sd"> Args:</span> +</span><span id="walk_in_scope-655"><a href="#walk_in_scope-655"><span class="linenos">655</span></a><span class="sd"> expression (exp.Expression):</span> +</span><span id="walk_in_scope-656"><a href="#walk_in_scope-656"><span class="linenos">656</span></a><span class="sd"> bfs (bool): if set to True the BFS traversal order will be applied,</span> +</span><span id="walk_in_scope-657"><a href="#walk_in_scope-657"><span class="linenos">657</span></a><span class="sd"> otherwise the DFS traversal will be used instead.</span> +</span><span id="walk_in_scope-658"><a href="#walk_in_scope-658"><span class="linenos">658</span></a> +</span><span id="walk_in_scope-659"><a href="#walk_in_scope-659"><span class="linenos">659</span></a><span class="sd"> Yields:</span> +</span><span id="walk_in_scope-660"><a href="#walk_in_scope-660"><span class="linenos">660</span></a><span class="sd"> tuple[exp.Expression, Optional[exp.Expression], str]: node, parent, arg key</span> +</span><span id="walk_in_scope-661"><a href="#walk_in_scope-661"><span class="linenos">661</span></a><span class="sd"> """</span> +</span><span id="walk_in_scope-662"><a href="#walk_in_scope-662"><span class="linenos">662</span></a> <span class="c1"># We'll use this variable to pass state into the dfs generator.</span> +</span><span id="walk_in_scope-663"><a href="#walk_in_scope-663"><span class="linenos">663</span></a> <span class="c1"># Whenever we set it to True, we exclude a subtree from traversal.</span> +</span><span id="walk_in_scope-664"><a href="#walk_in_scope-664"><span class="linenos">664</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> </span><span id="walk_in_scope-665"><a href="#walk_in_scope-665"><span class="linenos">665</span></a> -</span><span id="walk_in_scope-666"><a href="#walk_in_scope-666"><span class="linenos">666</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="walk_in_scope-667"><a href="#walk_in_scope-667"><span class="linenos">667</span></a> <span class="k">continue</span> -</span><span id="walk_in_scope-668"><a href="#walk_in_scope-668"><span class="linenos">668</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="walk_in_scope-669"><a href="#walk_in_scope-669"><span class="linenos">669</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">)</span> -</span><span id="walk_in_scope-670"><a href="#walk_in_scope-670"><span class="linenos">670</span></a> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="walk_in_scope-671"><a href="#walk_in_scope-671"><span class="linenos">671</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">)</span> -</span><span id="walk_in_scope-672"><a href="#walk_in_scope-672"><span class="linenos">672</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">)</span> -</span><span id="walk_in_scope-673"><a href="#walk_in_scope-673"><span class="linenos">673</span></a> <span class="p">):</span> -</span><span id="walk_in_scope-674"><a href="#walk_in_scope-674"><span class="linenos">674</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="walk_in_scope-666"><a href="#walk_in_scope-666"><span class="linenos">666</span></a> <span class="k">for</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">walk</span><span class="p">(</span><span class="n">bfs</span><span class="o">=</span><span class="n">bfs</span><span class="p">,</span> <span class="n">prune</span><span class="o">=</span><span class="k">lambda</span> <span class="o">*</span><span class="n">_</span><span class="p">:</span> <span class="n">prune</span><span class="p">):</span> +</span><span id="walk_in_scope-667"><a href="#walk_in_scope-667"><span class="linenos">667</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="walk_in_scope-668"><a href="#walk_in_scope-668"><span class="linenos">668</span></a> +</span><span id="walk_in_scope-669"><a href="#walk_in_scope-669"><span class="linenos">669</span></a> <span class="k">yield</span> <span class="n">node</span><span class="p">,</span> <span class="n">parent</span><span class="p">,</span> <span class="n">key</span> +</span><span id="walk_in_scope-670"><a href="#walk_in_scope-670"><span class="linenos">670</span></a> +</span><span id="walk_in_scope-671"><a href="#walk_in_scope-671"><span class="linenos">671</span></a> <span class="k">if</span> <span class="n">node</span> <span class="ow">is</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="walk_in_scope-672"><a href="#walk_in_scope-672"><span class="linenos">672</span></a> <span class="k">continue</span> +</span><span id="walk_in_scope-673"><a href="#walk_in_scope-673"><span class="linenos">673</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="walk_in_scope-674"><a href="#walk_in_scope-674"><span class="linenos">674</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">)</span> +</span><span id="walk_in_scope-675"><a href="#walk_in_scope-675"><span class="linenos">675</span></a> <span class="ow">or</span> <span class="p">(</span><span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">parent</span><span class="p">,</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><span id="walk_in_scope-676"><a href="#walk_in_scope-676"><span class="linenos">676</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">UDTF</span><span class="p">)</span> +</span><span id="walk_in_scope-677"><a href="#walk_in_scope-677"><span class="linenos">677</span></a> <span class="ow">or</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">)</span> +</span><span id="walk_in_scope-678"><a href="#walk_in_scope-678"><span class="linenos">678</span></a> <span class="p">):</span> +</span><span id="walk_in_scope-679"><a href="#walk_in_scope-679"><span class="linenos">679</span></a> <span class="n">prune</span> <span class="o">=</span> <span class="kc">True</span> </span></pre></div> diff --git a/docs/sqlglot/parser.html b/docs/sqlglot/parser.html index 7d20b96..ae232ad 100644 --- a/docs/sqlglot/parser.html +++ b/docs/sqlglot/parser.html @@ -136,3943 +136,4015 @@ </span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> <span class="n">klass</span><span class="o">.</span><span class="n">_show_trie</span> <span class="o">=</span> <span class="n">new_trie</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">klass</span><span class="o">.</span><span class="n">SHOW_PARSERS</span><span class="p">)</span> </span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a> <span class="n">klass</span><span class="o">.</span><span class="n">_set_trie</span> <span class="o">=</span> <span class="n">new_trie</span><span class="p">(</span><span class="n">key</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> <span class="k">for</span> <span class="n">key</span> <span class="ow">in</span> <span class="n">klass</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">)</span> </span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">klass</span><span class="o">.</span><span class="n">INTEGER_DIVISION</span><span class="p">:</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> <span class="n">klass</span><span class="o">.</span><span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span><span class="o">**</span><span class="n">klass</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">FloatDiv</span><span class="p">}</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> <span class="k">return</span> <span class="n">klass</span> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> </span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> <span class="k">return</span> <span class="n">klass</span> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> -</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Parser</span><span class="p">):</span> -</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> Parser consumes a list of tokens produced by the `sqlglot.tokens.Tokenizer` and produces</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> a parsed syntax tree.</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="sd"> Args:</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> error_level: the desired error level.</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> Default: ErrorLevel.RAISE</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> error_message_context: determines the amount of context to capture from a</span> -</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> query string when displaying the error message (in number of characters).</span> -</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> Default: 50.</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> Default: 0</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="sd"> alias_post_tablesample: If the table alias comes after tablesample.</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="sd"> Default: False</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> max_errors: Maximum number of error messages to include in a raised ParseError.</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> This is only relevant if error_level is ErrorLevel.RAISE.</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> Default: 3</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> null_ordering: Indicates the default null ordering method to use if not explicitly set.</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a><span class="sd"> Default: "nulls_are_small"</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a><span class="sd"> """</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">FUNCTIONS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</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="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">f</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">f</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()},</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="s2">"DATE_TO_DATE_STR"</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">Cast</span><span class="p">(</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</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-81"><a href="#L-81"><span class="linenos"> 81</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="p">),</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="s2">"TIME_TO_TIME_STR"</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">Cast</span><span class="p">(</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</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-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a> <span class="p">),</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="s2">"TS_OR_DS_TO_DATE_STR"</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">Substring</span><span class="p">(</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</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-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="p">),</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">start</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="n">length</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="p">),</span> -</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="s2">"VAR_MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="s2">"IFNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="p">}</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> -</span><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> -</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> -</span><span id="L-103"><a href="#L-103"><span class="linenos"> 103</span></a> <span class="p">}</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</span></a> -</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <span class="p">}</span> -</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> -</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">,</span> -</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">,</span> -</span><span id="L-128"><a href="#L-128"><span class="linenos"> 128</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">,</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">,</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSONB</span><span class="p">,</span> -</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UUID</span><span class="p">,</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> -</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span> -</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HSTORE</span><span class="p">,</span> -</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">,</span> -</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span> -</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERIAL</span><span class="p">,</span> -</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLSERIAL</span><span class="p">,</span> -</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGSERIAL</span><span class="p">,</span> -</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> -</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> -</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> -</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> -</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> -</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> -</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> -</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> -</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a> <span class="o">*</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> -</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="p">}</span> -</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</span></a> -</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a> <span class="n">SUBQUERY_PREDICATES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> -</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALL</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">All</span><span class="p">,</span> -</span><span id="L-167"><a href="#L-167"><span class="linenos"> 167</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Exists</span><span class="p">,</span> -</span><span id="L-168"><a href="#L-168"><span class="linenos"> 168</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> -</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</span></a> <span class="p">}</span> +</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a><span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Parser</span><span class="p">):</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> Parser consumes a list of tokens produced by the `sqlglot.tokens.Tokenizer` and produces</span> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> a parsed syntax tree.</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> Args:</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> error_level: the desired error level.</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a><span class="sd"> Default: ErrorLevel.RAISE</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a><span class="sd"> error_message_context: determines the amount of context to capture from a</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a><span class="sd"> query string when displaying the error message (in number of characters).</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a><span class="sd"> Default: 50.</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a><span class="sd"> index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a><span class="sd"> Default: 0</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a><span class="sd"> alias_post_tablesample: If the table alias comes after tablesample.</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a><span class="sd"> Default: False</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a><span class="sd"> max_errors: Maximum number of error messages to include in a raised ParseError.</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a><span class="sd"> This is only relevant if error_level is ErrorLevel.RAISE.</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a><span class="sd"> Default: 3</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a><span class="sd"> null_ordering: Indicates the default null ordering method to use if not explicitly set.</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a><span class="sd"> Default: "nulls_are_small"</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a><span class="sd"> """</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">FUNCTIONS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="o">**</span><span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">f</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">f</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()},</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="s2">"DATE_TO_DATE_STR"</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">Cast</span><span class="p">(</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</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-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="p">),</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> <span class="s2">"TIME_TO_TIME_STR"</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">Cast</span><span class="p">(</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</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-82"><a href="#L-82"><span class="linenos"> 82</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> +</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a> <span class="p">),</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a> <span class="s2">"TS_OR_DS_TO_DATE_STR"</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">Substring</span><span class="p">(</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</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-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="p">),</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="n">start</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="n">length</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="p">),</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="s2">"VAR_MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="s2">"IFNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="p">}</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">,</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos"> 100</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> +</span><span id="L-101"><a href="#L-101"><span class="linenos"> 101</span></a> <span class="p">}</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos"> 102</span></a> +</span><span id="L-103"><a href="#L-103"><span class="linenos"> 103</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos"> 104</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos"> 105</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos"> 106</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos"> 107</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos"> 108</span></a> <span class="p">}</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos"> 109</span></a> +</span><span id="L-110"><a href="#L-110"><span class="linenos"> 110</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos"> 111</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="L-112"><a href="#L-112"><span class="linenos"> 112</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="L-113"><a href="#L-113"><span class="linenos"> 113</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="L-114"><a href="#L-114"><span class="linenos"> 114</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos"> 115</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos"> 116</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos"> 117</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos"> 118</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos"> 119</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos"> 120</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos"> 121</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos"> 122</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos"> 123</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos"> 124</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">,</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos"> 125</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">,</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos"> 126</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">,</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos"> 127</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">,</span> +</span><span id="L-128"><a href="#L-128"><span class="linenos"> 128</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos"> 129</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos"> 130</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos"> 131</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSONB</span><span class="p">,</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos"> 132</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos"> 133</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos"> 134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-135"><a href="#L-135"><span class="linenos"> 135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-136"><a href="#L-136"><span class="linenos"> 136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos"> 137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos"> 138</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos"> 139</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos"> 140</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UUID</span><span class="p">,</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos"> 141</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos"> 142</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos"> 143</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span> +</span><span id="L-144"><a href="#L-144"><span class="linenos"> 144</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HSTORE</span><span class="p">,</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos"> 145</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">,</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos"> 146</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos"> 147</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERIAL</span><span class="p">,</span> +</span><span id="L-148"><a href="#L-148"><span class="linenos"> 148</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLSERIAL</span><span class="p">,</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos"> 149</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGSERIAL</span><span class="p">,</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos"> 150</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos"> 151</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> +</span><span id="L-152"><a href="#L-152"><span class="linenos"> 152</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> +</span><span id="L-153"><a href="#L-153"><span class="linenos"> 153</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos"> 154</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos"> 155</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos"> 156</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="L-157"><a href="#L-157"><span class="linenos"> 157</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> +</span><span id="L-158"><a href="#L-158"><span class="linenos"> 158</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos"> 159</span></a> <span class="o">*</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> +</span><span id="L-160"><a href="#L-160"><span class="linenos"> 160</span></a> <span class="p">}</span> +</span><span id="L-161"><a href="#L-161"><span class="linenos"> 161</span></a> +</span><span id="L-162"><a href="#L-162"><span class="linenos"> 162</span></a> <span class="n">SUBQUERY_PREDICATES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos"> 163</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos"> 164</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALL</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">All</span><span class="p">,</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos"> 165</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Exists</span><span class="p">,</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos"> 166</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> +</span><span id="L-167"><a href="#L-167"><span class="linenos"> 167</span></a> <span class="p">}</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos"> 168</span></a> +</span><span id="L-169"><a href="#L-169"><span class="linenos"> 169</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</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">values</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">}</span> </span><span id="L-170"><a href="#L-170"><span class="linenos"> 170</span></a> -</span><span id="L-171"><a href="#L-171"><span class="linenos"> 171</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</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">values</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">}</span> -</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</span></a> -</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a> <span class="n">DB_CREATABLES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> -</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> -</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="L-177"><a href="#L-177"><span class="linenos"> 177</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> -</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</span></a> <span class="p">}</span> -</span><span id="L-179"><a href="#L-179"><span class="linenos"> 179</span></a> -</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="n">CREATABLES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> -</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> -</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> -</span><span id="L-184"><a href="#L-184"><span class="linenos"> 184</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="L-185"><a href="#L-185"><span class="linenos"> 185</span></a> <span class="o">*</span><span class="n">DB_CREATABLES</span><span class="p">,</span> -</span><span id="L-186"><a href="#L-186"><span class="linenos"> 186</span></a> <span class="p">}</span> -</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a> -</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> -</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> -</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> -</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">,</span> -</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">,</span> -</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BUCKET</span><span class="p">,</span> -</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</span><span class="p">,</span> -</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> -</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">,</span> -</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> -</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> -</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</span><span class="p">,</span> -</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> -</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> -</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> -</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> -</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> -</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> -</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> -</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> -</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> -</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> -</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> -</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> -</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> -</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> -</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> -</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> -</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> -</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> -</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> -</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> -</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> -</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> -</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> -</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> -</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> -</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> -</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> -</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> -</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> -</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> -</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> -</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> -</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> -</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> -</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> -</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> -</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> -</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> -</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> -</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> -</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> -</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> -</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> -</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> -</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> -</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> -</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">,</span> -</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="o">*</span><span class="n">CREATABLES</span><span class="p">,</span> -</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> -</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a> <span class="o">*</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> -</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="p">}</span> -</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> -</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> -</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> -</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> -</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> <span class="p">}</span> -</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a> -</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a> <span class="n">UPDATE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">}</span> -</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a> -</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a> <span class="n">TRIM_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">}</span> -</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a> -</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> -</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">,</span> -</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> -</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> -</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> -</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> -</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> -</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> -</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> -</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> -</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> -</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> -</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> -</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> -</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> -</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> -</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> -</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> -</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a> <span class="p">}</span> -</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> -</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a> <span class="n">CONJUNCTION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AND</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">And</span><span class="p">,</span> -</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Or</span><span class="p">,</span> -</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> <span class="p">}</span> -</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a> -</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a> <span class="n">EQUALITY</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NEQ</span><span class="p">,</span> -</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLSAFE_EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span><span class="p">,</span> -</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="p">}</span> -</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> -</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a> <span class="n">COMPARISON</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> -</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GTE</span><span class="p">,</span> -</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> -</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LTE</span><span class="p">,</span> -</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <span class="p">}</span> -</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> -</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</span><span class="p">,</span> -</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> -</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</span><span class="p">,</span> -</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DPIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DPipe</span><span class="p">,</span> -</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a> <span class="p">}</span> -</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a> -</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a> <span class="n">TERM</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sub</span><span class="p">,</span> -</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">,</span> -</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mod</span><span class="p">,</span> -</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Collate</span><span class="p">,</span> -</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a> <span class="p">}</span> -</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a> -</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">,</span> -</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LR_ARROW</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distance</span><span class="p">,</span> -</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> -</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">,</span> -</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a> <span class="p">}</span> -</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a> -</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a> <span class="n">TIMESTAMPS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> -</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a> <span class="p">}</span> -</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a> -</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a> <span class="n">SET_OPERATIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> -</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> -</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span> -</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a> <span class="p">}</span> -</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a> -</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a> <span class="n">JOIN_SIDES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> -</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a> <span class="p">}</span> -</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a> -</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a> <span class="n">JOIN_KINDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> -</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> -</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> -</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> -</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> -</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="p">}</span> -</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a> -</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a> <span class="n">LAMBDAS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</span><span class="p">,</span> -</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_lambda</span><span class="p">,</span> <span class="p">{</span><span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">}</span> -</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a> <span class="p">),</span> -</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="p">),</span> -</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Kwarg</span><span class="p">,</span> -</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="n">this</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="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 class="o">.</span><span class="n">name</span><span class="p">),</span> -</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> -</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="p">),</span> -</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a> <span class="p">}</span> -</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a> -</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> -</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> -</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a> <span class="p">),</span> -</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">,</span> -</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="p">),</span> -</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">,</span> -</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="p">),</span> -</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">,</span> -</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a> <span class="p">),</span> -</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DHASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">,</span> -</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a> <span class="p">),</span> -</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">key</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</span><span class="p">,</span> -</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> -</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a> <span class="p">),</span> -</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a> <span class="p">}</span> -</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a> -</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="n">EXPRESSION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</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_column</span><span class="p">(),</span> -</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</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_types</span><span class="p">(),</span> -</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</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_from</span><span class="p">(),</span> -</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Group</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_group</span><span class="p">(),</span> -</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</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_id_var</span><span class="p">(),</span> -</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</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_lateral</span><span class="p">(),</span> -</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</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_join</span><span class="p">(),</span> -</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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_order</span><span class="p">(),</span> -</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> -</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> -</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</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_lambda</span><span class="p">(),</span> -</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</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_limit</span><span class="p">(),</span> -</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Offset</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_offset</span><span class="p">(),</span> -</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</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_table_alias</span><span class="p">(),</span> -</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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_table</span><span class="p">(),</span> -</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Condition</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_conjunction</span><span class="p">(),</span> -</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</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_statement</span><span class="p">(),</span> -</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</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_properties</span><span class="p">(),</span> -</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</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_where</span><span class="p">(),</span> -</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Ordered</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_ordered</span><span class="p">(),</span> -</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Having</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_having</span><span class="p">(),</span> -</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</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_with</span><span class="p">(),</span> -</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</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_named_window</span><span class="p">(),</span> -</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Qualify</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_qualify</span><span class="p">(),</span> -</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a> <span class="s2">"JOIN_TYPE"</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_join_side_and_kind</span><span class="p">(),</span> -</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="p">}</span> -</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a> -</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</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_alter</span><span class="p">(),</span> -</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</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_transaction</span><span class="p">(),</span> -</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</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_cache</span><span class="p">(),</span> -</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</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_commit_or_rollback</span><span class="p">(),</span> -</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</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_comment</span><span class="p">(),</span> -</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CREATE</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_create</span><span class="p">(),</span> -</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</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_delete</span><span class="p">(),</span> -</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</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_describe</span><span class="p">(),</span> -</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</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_describe</span><span class="p">(),</span> -</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</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_drop</span><span class="p">(),</span> -</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_commit_or_rollback</span><span class="p">(),</span> -</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</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_insert</span><span class="p">(),</span> -</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</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_load_data</span><span class="p">(),</span> -</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</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_merge</span><span class="p">(),</span> -</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</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_commit_or_rollback</span><span class="p">(),</span> -</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNCACHE</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_uncache</span><span class="p">(),</span> -</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</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_update</span><span class="p">(),</span> -</span><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</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><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Use</span><span class="p">,</span> -</span><span id="L-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"ROLE"</span><span class="p">,</span> <span class="s2">"WAREHOUSE"</span><span class="p">,</span> <span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">))</span> -</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a> <span class="ow">and</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a> <span class="p">),</span> -</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a> <span class="p">}</span> -</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a> -</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a> <span class="n">UNARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</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_unary</span><span class="p">(),</span> <span class="c1"># Unary + is handled as a no-op</span> -</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">()),</span> -</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TILDA</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">BitwiseNot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> -</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</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">Neg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> -</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a> <span class="p">}</span> -</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a> -</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a> <span class="n">PRIMARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span> -</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a> <span class="p">),</span> -</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span> -</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a> <span class="p">),</span> -</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">,</span> -</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_except</span><span class="p">(),</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_replace</span><span class="p">()},</span> -</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="p">),</span> -</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Null</span><span class="p">),</span> -</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">BitString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">HexString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">ByteString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTRODUCER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_introducer</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> -</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_national</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> -</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_session_parameter</span><span class="p">(),</span> -</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="p">}</span> -</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> -</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="n">PLACEHOLDER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</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">Placeholder</span><span class="p">),</span> -</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</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_parameter</span><span class="p">(),</span> -</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</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">Placeholder</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">))</span> -</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> <span class="p">}</span> -</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> -</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_between</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> -</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Glob</span><span class="p">),</span> -</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Overlaps</span><span class="p">),</span> -</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> -</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> -</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">),</span> -</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">),</span> -</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IRLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</span><span class="p">),</span> -</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">),</span> -</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SimilarTo</span><span class="p">),</span> -</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="p">}</span> -</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> -</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="s2">"AFTER"</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_afterjournal</span><span class="p">(</span> -</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> -</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="p">),</span> -</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="s2">"ALGORITHM"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">),</span> -</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="s2">"AUTO_INCREMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">),</span> -</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="s2">"BEFORE"</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_journal</span><span class="p">(</span> -</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> -</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="p">),</span> -</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="s2">"BLOCKCOMPRESSION"</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_blockcompression</span><span class="p">(),</span> -</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="s2">"CHARACTER SET"</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_character_set</span><span class="p">(),</span> -</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="s2">"CHECKSUM"</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_checksum</span><span class="p">(),</span> -</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="s2">"CLUSTER BY"</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><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> -</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="p">),</span> -</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="s2">"COLLATE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">),</span> -</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="s2">"COMMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">),</span> -</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="s2">"DATABLOCKSIZE"</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_datablocksize</span><span class="p">(</span> -</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> -</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="p">),</span> -</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="s2">"DEFINER"</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_definer</span><span class="p">(),</span> -</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="s2">"DETERMINISTIC"</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><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> -</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="p">),</span> -</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="s2">"DISTKEY"</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_distkey</span><span class="p">(),</span> -</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="s2">"DISTSTYLE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">),</span> -</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="s2">"EXECUTE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">),</span> -</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="s2">"EXTERNAL"</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">ExternalProperty</span><span class="p">),</span> -</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="s2">"FALLBACK"</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_fallback</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> -</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="s2">"FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> -</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="s2">"FREESPACE"</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_freespace</span><span class="p">(),</span> -</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="s2">"GLOBAL"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="s2">"IMMUTABLE"</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><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> -</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="p">),</span> -</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="s2">"JOURNAL"</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_journal</span><span class="p">(</span> -</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> -</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="p">),</span> -</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> <span class="s2">"LANGUAGE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">),</span> -</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> -</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="s2">"LOCAL"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a> <span class="s2">"LOCATION"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">),</span> -</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="s2">"LOCK"</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_locking</span><span class="p">(),</span> -</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="s2">"LOCKING"</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_locking</span><span class="p">(),</span> -</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="s2">"LOG"</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_log</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> -</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="s2">"MATERIALIZED"</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">MaterializedProperty</span><span class="p">),</span> -</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="s2">"MAX"</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_datablocksize</span><span class="p">(),</span> -</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="s2">"MAXIMUM"</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_datablocksize</span><span class="p">(),</span> -</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="s2">"MERGEBLOCKRATIO"</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_mergeblockratio</span><span class="p">(</span> -</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> -</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="p">),</span> -</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="s2">"MIN"</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_datablocksize</span><span class="p">(),</span> -</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="s2">"MINIMUM"</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_datablocksize</span><span class="p">(),</span> -</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="s2">"MULTISET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> <span class="s2">"NO"</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_noprimaryindex</span><span class="p">(),</span> -</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="s2">"NOT"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="s2">"ON"</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_oncommit</span><span class="p">(),</span> -</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="s2">"PARTITION BY"</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_partitioned_by</span><span class="p">(),</span> -</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITIONED BY"</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_partitioned_by</span><span class="p">(),</span> -</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITIONED_BY"</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_partitioned_by</span><span class="p">(),</span> -</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="s2">"RETURNS"</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_returns</span><span class="p">(),</span> -</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="s2">"ROW"</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_row</span><span class="p">(),</span> -</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="s2">"SET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="s2">"SORTKEY"</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_sortkey</span><span class="p">(),</span> -</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="s2">"STABLE"</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><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"STABLE"</span><span class="p">)</span> -</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="p">),</span> -</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="s2">"STORED"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> -</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="s2">"TABLE_FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> -</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="s2">"TBLPROPERTIES"</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_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">),</span> -</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="s2">"TEMPORARY"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="s2">"TRANSIENT"</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">TransientProperty</span><span class="p">),</span> -</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="s2">"USING"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> -</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="s2">"VOLATILE"</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><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> -</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="p">),</span> -</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="s2">"WITH"</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_with_property</span><span class="p">(),</span> -</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="p">}</span> -</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> -</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="n">CONSTRAINT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="s2">"AUTOINCREMENT"</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_auto_increment</span><span class="p">(),</span> -</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> <span class="s2">"AUTO_INCREMENT"</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_auto_increment</span><span class="p">(),</span> -</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="s2">"CASESPECIFIC"</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> <span class="s2">"CHARACTER SET"</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><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="p">),</span> -</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="s2">"CHECK"</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><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="p">),</span> -</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="s2">"COLLATE"</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><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> -</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="p">),</span> -</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="s2">"COMMENT"</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><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="p">),</span> -</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="s2">"COMPRESS"</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_compress</span><span class="p">(),</span> -</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="s2">"DEFAULT"</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><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</span><span class="p">,</span> <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-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="p">),</span> -</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="s2">"ENCODE"</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">EncodeColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()),</span> -</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="s2">"FOREIGN KEY"</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_foreign_key</span><span class="p">(),</span> -</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="s2">"FORMAT"</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><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="p">),</span> -</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="s2">"GENERATED"</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_generated_as_identity</span><span class="p">(),</span> -</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="s2">"IDENTITY"</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_auto_increment</span><span class="p">(),</span> -</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="s2">"INLINE"</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_inline</span><span class="p">(),</span> -</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> -</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="s2">"NOT"</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_not_constraint</span><span class="p">(),</span> -</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="s2">"NULL"</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">NotNullColumnConstraint</span><span class="p">,</span> <span class="n">allow_null</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="s2">"PATH"</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">PathColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()),</span> -</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="s2">"PRIMARY KEY"</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_primary_key</span><span class="p">(),</span> -</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="s2">"TITLE"</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><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="p">),</span> -</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="s2">"UNIQUE"</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_unique</span><span class="p">(),</span> -</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="s2">"UPPERCASE"</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">UppercaseColumnConstraint</span><span class="p">),</span> -</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="p">}</span> -</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> -</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="s2">"ADD"</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_alter_table_add</span><span class="p">(),</span> -</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="s2">"ALTER"</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_alter_table_alter</span><span class="p">(),</span> -</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="s2">"DELETE"</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">Delete</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()),</span> -</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="s2">"DROP"</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_alter_table_drop</span><span class="p">(),</span> -</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="s2">"RENAME"</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_alter_table_rename</span><span class="p">(),</span> -</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="p">}</span> -</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> -</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"CHECK"</span><span class="p">,</span> <span class="s2">"FOREIGN KEY"</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">,</span> <span class="s2">"PRIMARY KEY"</span><span class="p">,</span> <span class="s2">"UNIQUE"</span><span class="p">}</span> -</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> -</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASE</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_case</span><span class="p">(),</span> -</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</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_if</span><span class="p">(),</span> -</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</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">Any</span><span class="p">,</span> <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-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="p">}</span> -</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> -</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos"> 171</span></a> <span class="n">DB_CREATABLES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-172"><a href="#L-172"><span class="linenos"> 172</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> +</span><span id="L-173"><a href="#L-173"><span class="linenos"> 173</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos"> 174</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos"> 175</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos"> 176</span></a> <span class="p">}</span> +</span><span id="L-177"><a href="#L-177"><span class="linenos"> 177</span></a> +</span><span id="L-178"><a href="#L-178"><span class="linenos"> 178</span></a> <span class="n">CREATABLES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-179"><a href="#L-179"><span class="linenos"> 179</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> +</span><span id="L-180"><a href="#L-180"><span class="linenos"> 180</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> +</span><span id="L-181"><a href="#L-181"><span class="linenos"> 181</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> +</span><span id="L-182"><a href="#L-182"><span class="linenos"> 182</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="L-183"><a href="#L-183"><span class="linenos"> 183</span></a> <span class="o">*</span><span class="n">DB_CREATABLES</span><span class="p">,</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><span id="L-186"><a href="#L-186"><span class="linenos"> 186</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-187"><a href="#L-187"><span class="linenos"> 187</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> +</span><span id="L-188"><a href="#L-188"><span class="linenos"> 188</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> +</span><span id="L-189"><a href="#L-189"><span class="linenos"> 189</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> +</span><span id="L-190"><a href="#L-190"><span class="linenos"> 190</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">,</span> +</span><span id="L-191"><a href="#L-191"><span class="linenos"> 191</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="L-192"><a href="#L-192"><span class="linenos"> 192</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">,</span> +</span><span id="L-193"><a href="#L-193"><span class="linenos"> 193</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BUCKET</span><span class="p">,</span> +</span><span id="L-194"><a href="#L-194"><span class="linenos"> 194</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</span><span class="p">,</span> +</span><span id="L-195"><a href="#L-195"><span class="linenos"> 195</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> +</span><span id="L-196"><a href="#L-196"><span class="linenos"> 196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">,</span> +</span><span id="L-197"><a href="#L-197"><span class="linenos"> 197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> +</span><span id="L-198"><a href="#L-198"><span class="linenos"> 198</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> +</span><span id="L-199"><a href="#L-199"><span class="linenos"> 199</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</span><span class="p">,</span> +</span><span id="L-200"><a href="#L-200"><span class="linenos"> 200</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> +</span><span id="L-201"><a href="#L-201"><span class="linenos"> 201</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> +</span><span id="L-202"><a href="#L-202"><span class="linenos"> 202</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> +</span><span id="L-203"><a href="#L-203"><span class="linenos"> 203</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> +</span><span id="L-204"><a href="#L-204"><span class="linenos"> 204</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> +</span><span id="L-205"><a href="#L-205"><span class="linenos"> 205</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> +</span><span id="L-206"><a href="#L-206"><span class="linenos"> 206</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> +</span><span id="L-207"><a href="#L-207"><span class="linenos"> 207</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> +</span><span id="L-208"><a href="#L-208"><span class="linenos"> 208</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> +</span><span id="L-209"><a href="#L-209"><span class="linenos"> 209</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> +</span><span id="L-210"><a href="#L-210"><span class="linenos"> 210</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> +</span><span id="L-211"><a href="#L-211"><span class="linenos"> 211</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> +</span><span id="L-212"><a href="#L-212"><span class="linenos"> 212</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> +</span><span id="L-213"><a href="#L-213"><span class="linenos"> 213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> +</span><span id="L-214"><a href="#L-214"><span class="linenos"> 214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> +</span><span id="L-215"><a href="#L-215"><span class="linenos"> 215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> +</span><span id="L-216"><a href="#L-216"><span class="linenos"> 216</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> +</span><span id="L-217"><a href="#L-217"><span class="linenos"> 217</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> +</span><span id="L-218"><a href="#L-218"><span class="linenos"> 218</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> +</span><span id="L-219"><a href="#L-219"><span class="linenos"> 219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="L-220"><a href="#L-220"><span class="linenos"> 220</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> +</span><span id="L-221"><a href="#L-221"><span class="linenos"> 221</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> +</span><span id="L-222"><a href="#L-222"><span class="linenos"> 222</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> +</span><span id="L-223"><a href="#L-223"><span class="linenos"> 223</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> +</span><span id="L-224"><a href="#L-224"><span class="linenos"> 224</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> +</span><span id="L-225"><a href="#L-225"><span class="linenos"> 225</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="L-226"><a href="#L-226"><span class="linenos"> 226</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> +</span><span id="L-227"><a href="#L-227"><span class="linenos"> 227</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> +</span><span id="L-228"><a href="#L-228"><span class="linenos"> 228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> +</span><span id="L-229"><a href="#L-229"><span class="linenos"> 229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> +</span><span id="L-230"><a href="#L-230"><span class="linenos"> 230</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> +</span><span id="L-231"><a href="#L-231"><span class="linenos"> 231</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> +</span><span id="L-232"><a href="#L-232"><span class="linenos"> 232</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> +</span><span id="L-233"><a href="#L-233"><span class="linenos"> 233</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> +</span><span id="L-234"><a href="#L-234"><span class="linenos"> 234</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="L-235"><a href="#L-235"><span class="linenos"> 235</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> +</span><span id="L-236"><a href="#L-236"><span class="linenos"> 236</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> +</span><span id="L-237"><a href="#L-237"><span class="linenos"> 237</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> +</span><span id="L-238"><a href="#L-238"><span class="linenos"> 238</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> +</span><span id="L-239"><a href="#L-239"><span class="linenos"> 239</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> +</span><span id="L-240"><a href="#L-240"><span class="linenos"> 240</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> +</span><span id="L-241"><a href="#L-241"><span class="linenos"> 241</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> +</span><span id="L-242"><a href="#L-242"><span class="linenos"> 242</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> +</span><span id="L-243"><a href="#L-243"><span class="linenos"> 243</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> +</span><span id="L-244"><a href="#L-244"><span class="linenos"> 244</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> +</span><span id="L-245"><a href="#L-245"><span class="linenos"> 245</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> +</span><span id="L-246"><a href="#L-246"><span class="linenos"> 246</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> +</span><span id="L-247"><a href="#L-247"><span class="linenos"> 247</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> +</span><span id="L-248"><a href="#L-248"><span class="linenos"> 248</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> +</span><span id="L-249"><a href="#L-249"><span class="linenos"> 249</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">,</span> +</span><span id="L-250"><a href="#L-250"><span class="linenos"> 250</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="L-251"><a href="#L-251"><span class="linenos"> 251</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="L-252"><a href="#L-252"><span class="linenos"> 252</span></a> <span class="o">*</span><span class="n">CREATABLES</span><span class="p">,</span> +</span><span id="L-253"><a href="#L-253"><span class="linenos"> 253</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> +</span><span id="L-254"><a href="#L-254"><span class="linenos"> 254</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="L-255"><a href="#L-255"><span class="linenos"> 255</span></a> <span class="o">*</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> +</span><span id="L-256"><a href="#L-256"><span class="linenos"> 256</span></a> <span class="p">}</span> +</span><span id="L-257"><a href="#L-257"><span class="linenos"> 257</span></a> +</span><span id="L-258"><a href="#L-258"><span class="linenos"> 258</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> +</span><span id="L-259"><a href="#L-259"><span class="linenos"> 259</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> +</span><span id="L-260"><a href="#L-260"><span class="linenos"> 260</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="L-261"><a href="#L-261"><span class="linenos"> 261</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> +</span><span id="L-262"><a href="#L-262"><span class="linenos"> 262</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="L-263"><a href="#L-263"><span class="linenos"> 263</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="L-264"><a href="#L-264"><span class="linenos"> 264</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="L-265"><a href="#L-265"><span class="linenos"> 265</span></a> <span class="p">}</span> +</span><span id="L-266"><a href="#L-266"><span class="linenos"> 266</span></a> +</span><span id="L-267"><a href="#L-267"><span class="linenos"> 267</span></a> <span class="n">UPDATE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">}</span> +</span><span id="L-268"><a href="#L-268"><span class="linenos"> 268</span></a> +</span><span id="L-269"><a href="#L-269"><span class="linenos"> 269</span></a> <span class="n">TRIM_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">}</span> +</span><span id="L-270"><a href="#L-270"><span class="linenos"> 270</span></a> +</span><span id="L-271"><a href="#L-271"><span class="linenos"> 271</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-272"><a href="#L-272"><span class="linenos"> 272</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> +</span><span id="L-273"><a href="#L-273"><span class="linenos"> 273</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">,</span> +</span><span id="L-274"><a href="#L-274"><span class="linenos"> 274</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> +</span><span id="L-275"><a href="#L-275"><span class="linenos"> 275</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> +</span><span id="L-276"><a href="#L-276"><span class="linenos"> 276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> +</span><span id="L-277"><a href="#L-277"><span class="linenos"> 277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> +</span><span id="L-278"><a href="#L-278"><span class="linenos"> 278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> +</span><span id="L-279"><a href="#L-279"><span class="linenos"> 279</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> +</span><span id="L-280"><a href="#L-280"><span class="linenos"> 280</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> +</span><span id="L-281"><a href="#L-281"><span class="linenos"> 281</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> +</span><span id="L-282"><a href="#L-282"><span class="linenos"> 282</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> +</span><span id="L-283"><a href="#L-283"><span class="linenos"> 283</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> +</span><span id="L-284"><a href="#L-284"><span class="linenos"> 284</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> +</span><span id="L-285"><a href="#L-285"><span class="linenos"> 285</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> +</span><span id="L-286"><a href="#L-286"><span class="linenos"> 286</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="L-287"><a href="#L-287"><span class="linenos"> 287</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> +</span><span id="L-288"><a href="#L-288"><span class="linenos"> 288</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="L-289"><a href="#L-289"><span class="linenos"> 289</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> +</span><span id="L-290"><a href="#L-290"><span class="linenos"> 290</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> +</span><span id="L-291"><a href="#L-291"><span class="linenos"> 291</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> +</span><span id="L-292"><a href="#L-292"><span class="linenos"> 292</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="L-293"><a href="#L-293"><span class="linenos"> 293</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="L-294"><a href="#L-294"><span class="linenos"> 294</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="L-295"><a href="#L-295"><span class="linenos"> 295</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="L-296"><a href="#L-296"><span class="linenos"> 296</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="L-297"><a href="#L-297"><span class="linenos"> 297</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-298"><a href="#L-298"><span class="linenos"> 298</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-299"><a href="#L-299"><span class="linenos"> 299</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="L-300"><a href="#L-300"><span class="linenos"> 300</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="L-301"><a href="#L-301"><span class="linenos"> 301</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> +</span><span id="L-302"><a href="#L-302"><span class="linenos"> 302</span></a> <span class="p">}</span> +</span><span id="L-303"><a href="#L-303"><span class="linenos"> 303</span></a> +</span><span id="L-304"><a href="#L-304"><span class="linenos"> 304</span></a> <span class="n">CONJUNCTION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-305"><a href="#L-305"><span class="linenos"> 305</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AND</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">And</span><span class="p">,</span> +</span><span id="L-306"><a href="#L-306"><span class="linenos"> 306</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Or</span><span class="p">,</span> +</span><span id="L-307"><a href="#L-307"><span class="linenos"> 307</span></a> <span class="p">}</span> +</span><span id="L-308"><a href="#L-308"><span class="linenos"> 308</span></a> +</span><span id="L-309"><a href="#L-309"><span class="linenos"> 309</span></a> <span class="n">EQUALITY</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-310"><a href="#L-310"><span class="linenos"> 310</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="L-311"><a href="#L-311"><span class="linenos"> 311</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NEQ</span><span class="p">,</span> +</span><span id="L-312"><a href="#L-312"><span class="linenos"> 312</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLSAFE_EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span><span class="p">,</span> +</span><span id="L-313"><a href="#L-313"><span class="linenos"> 313</span></a> <span class="p">}</span> +</span><span id="L-314"><a href="#L-314"><span class="linenos"> 314</span></a> +</span><span id="L-315"><a href="#L-315"><span class="linenos"> 315</span></a> <span class="n">COMPARISON</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-316"><a href="#L-316"><span class="linenos"> 316</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> +</span><span id="L-317"><a href="#L-317"><span class="linenos"> 317</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GTE</span><span class="p">,</span> +</span><span id="L-318"><a href="#L-318"><span class="linenos"> 318</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> +</span><span id="L-319"><a href="#L-319"><span class="linenos"> 319</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LTE</span><span class="p">,</span> +</span><span id="L-320"><a href="#L-320"><span class="linenos"> 320</span></a> <span class="p">}</span> +</span><span id="L-321"><a href="#L-321"><span class="linenos"> 321</span></a> +</span><span id="L-322"><a href="#L-322"><span class="linenos"> 322</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-323"><a href="#L-323"><span class="linenos"> 323</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</span><span class="p">,</span> +</span><span id="L-324"><a href="#L-324"><span class="linenos"> 324</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> +</span><span id="L-325"><a href="#L-325"><span class="linenos"> 325</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</span><span class="p">,</span> +</span><span id="L-326"><a href="#L-326"><span class="linenos"> 326</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DPIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DPipe</span><span class="p">,</span> +</span><span id="L-327"><a href="#L-327"><span class="linenos"> 327</span></a> <span class="p">}</span> +</span><span id="L-328"><a href="#L-328"><span class="linenos"> 328</span></a> +</span><span id="L-329"><a href="#L-329"><span class="linenos"> 329</span></a> <span class="n">TERM</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-330"><a href="#L-330"><span class="linenos"> 330</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sub</span><span class="p">,</span> +</span><span id="L-331"><a href="#L-331"><span class="linenos"> 331</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">,</span> +</span><span id="L-332"><a href="#L-332"><span class="linenos"> 332</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mod</span><span class="p">,</span> +</span><span id="L-333"><a href="#L-333"><span class="linenos"> 333</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Collate</span><span class="p">,</span> +</span><span id="L-334"><a href="#L-334"><span class="linenos"> 334</span></a> <span class="p">}</span> +</span><span id="L-335"><a href="#L-335"><span class="linenos"> 335</span></a> +</span><span id="L-336"><a href="#L-336"><span class="linenos"> 336</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-337"><a href="#L-337"><span class="linenos"> 337</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">,</span> +</span><span id="L-338"><a href="#L-338"><span class="linenos"> 338</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LR_ARROW</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distance</span><span class="p">,</span> +</span><span id="L-339"><a href="#L-339"><span class="linenos"> 339</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> +</span><span id="L-340"><a href="#L-340"><span class="linenos"> 340</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">,</span> +</span><span id="L-341"><a href="#L-341"><span class="linenos"> 341</span></a> <span class="p">}</span> +</span><span id="L-342"><a href="#L-342"><span class="linenos"> 342</span></a> +</span><span id="L-343"><a href="#L-343"><span class="linenos"> 343</span></a> <span class="n">TIMESTAMPS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-344"><a href="#L-344"><span class="linenos"> 344</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> +</span><span id="L-345"><a href="#L-345"><span class="linenos"> 345</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-346"><a href="#L-346"><span class="linenos"> 346</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-347"><a href="#L-347"><span class="linenos"> 347</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="L-348"><a href="#L-348"><span class="linenos"> 348</span></a> <span class="p">}</span> +</span><span id="L-349"><a href="#L-349"><span class="linenos"> 349</span></a> +</span><span id="L-350"><a href="#L-350"><span class="linenos"> 350</span></a> <span class="n">SET_OPERATIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-351"><a href="#L-351"><span class="linenos"> 351</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> +</span><span id="L-352"><a href="#L-352"><span class="linenos"> 352</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> +</span><span id="L-353"><a href="#L-353"><span class="linenos"> 353</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span> +</span><span id="L-354"><a href="#L-354"><span class="linenos"> 354</span></a> <span class="p">}</span> +</span><span id="L-355"><a href="#L-355"><span class="linenos"> 355</span></a> +</span><span id="L-356"><a href="#L-356"><span class="linenos"> 356</span></a> <span class="n">JOIN_SIDES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-357"><a href="#L-357"><span class="linenos"> 357</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="L-358"><a href="#L-358"><span class="linenos"> 358</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="L-359"><a href="#L-359"><span class="linenos"> 359</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> +</span><span id="L-360"><a href="#L-360"><span class="linenos"> 360</span></a> <span class="p">}</span> +</span><span id="L-361"><a href="#L-361"><span class="linenos"> 361</span></a> +</span><span id="L-362"><a href="#L-362"><span class="linenos"> 362</span></a> <span class="n">JOIN_KINDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-363"><a href="#L-363"><span class="linenos"> 363</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> +</span><span id="L-364"><a href="#L-364"><span class="linenos"> 364</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> +</span><span id="L-365"><a href="#L-365"><span class="linenos"> 365</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> +</span><span id="L-366"><a href="#L-366"><span class="linenos"> 366</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> +</span><span id="L-367"><a href="#L-367"><span class="linenos"> 367</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> +</span><span id="L-368"><a href="#L-368"><span class="linenos"> 368</span></a> <span class="p">}</span> +</span><span id="L-369"><a href="#L-369"><span class="linenos"> 369</span></a> +</span><span id="L-370"><a href="#L-370"><span class="linenos"> 370</span></a> <span class="n">LAMBDAS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-371"><a href="#L-371"><span class="linenos"> 371</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-372"><a href="#L-372"><span class="linenos"> 372</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</span><span class="p">,</span> +</span><span id="L-373"><a href="#L-373"><span class="linenos"> 373</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="L-374"><a href="#L-374"><span class="linenos"> 374</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_lambda</span><span class="p">,</span> <span class="p">{</span><span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">}</span> +</span><span id="L-375"><a href="#L-375"><span class="linenos"> 375</span></a> <span class="p">),</span> +</span><span id="L-376"><a href="#L-376"><span class="linenos"> 376</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-377"><a href="#L-377"><span class="linenos"> 377</span></a> <span class="p">),</span> +</span><span id="L-378"><a href="#L-378"><span class="linenos"> 378</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-379"><a href="#L-379"><span class="linenos"> 379</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Kwarg</span><span class="p">,</span> +</span><span id="L-380"><a href="#L-380"><span class="linenos"> 380</span></a> <span class="n">this</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="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 class="o">.</span><span class="n">name</span><span class="p">),</span> +</span><span id="L-381"><a href="#L-381"><span class="linenos"> 381</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> +</span><span id="L-382"><a href="#L-382"><span class="linenos"> 382</span></a> <span class="p">),</span> +</span><span id="L-383"><a href="#L-383"><span class="linenos"> 383</span></a> <span class="p">}</span> +</span><span id="L-384"><a href="#L-384"><span class="linenos"> 384</span></a> +</span><span id="L-385"><a href="#L-385"><span class="linenos"> 385</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-386"><a href="#L-386"><span class="linenos"> 386</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-387"><a href="#L-387"><span class="linenos"> 387</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-388"><a href="#L-388"><span class="linenos"> 388</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> +</span><span id="L-389"><a href="#L-389"><span class="linenos"> 389</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-390"><a href="#L-390"><span class="linenos"> 390</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> +</span><span id="L-391"><a href="#L-391"><span class="linenos"> 391</span></a> <span class="p">),</span> +</span><span id="L-392"><a href="#L-392"><span class="linenos"> 392</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-393"><a href="#L-393"><span class="linenos"> 393</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">,</span> +</span><span id="L-394"><a href="#L-394"><span class="linenos"> 394</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-395"><a href="#L-395"><span class="linenos"> 395</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="L-396"><a href="#L-396"><span class="linenos"> 396</span></a> <span class="p">),</span> +</span><span id="L-397"><a href="#L-397"><span class="linenos"> 397</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-398"><a href="#L-398"><span class="linenos"> 398</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">,</span> +</span><span id="L-399"><a href="#L-399"><span class="linenos"> 399</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-400"><a href="#L-400"><span class="linenos"> 400</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="L-401"><a href="#L-401"><span class="linenos"> 401</span></a> <span class="p">),</span> +</span><span id="L-402"><a href="#L-402"><span class="linenos"> 402</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-403"><a href="#L-403"><span class="linenos"> 403</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">,</span> +</span><span id="L-404"><a href="#L-404"><span class="linenos"> 404</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-405"><a href="#L-405"><span class="linenos"> 405</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="L-406"><a href="#L-406"><span class="linenos"> 406</span></a> <span class="p">),</span> +</span><span id="L-407"><a href="#L-407"><span class="linenos"> 407</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DHASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-408"><a href="#L-408"><span class="linenos"> 408</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">,</span> +</span><span id="L-409"><a href="#L-409"><span class="linenos"> 409</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-410"><a href="#L-410"><span class="linenos"> 410</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="L-411"><a href="#L-411"><span class="linenos"> 411</span></a> <span class="p">),</span> +</span><span id="L-412"><a href="#L-412"><span class="linenos"> 412</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">key</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-413"><a href="#L-413"><span class="linenos"> 413</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</span><span class="p">,</span> +</span><span id="L-414"><a href="#L-414"><span class="linenos"> 414</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-415"><a href="#L-415"><span class="linenos"> 415</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> +</span><span id="L-416"><a href="#L-416"><span class="linenos"> 416</span></a> <span class="p">),</span> +</span><span id="L-417"><a href="#L-417"><span class="linenos"> 417</span></a> <span class="p">}</span> +</span><span id="L-418"><a href="#L-418"><span class="linenos"> 418</span></a> +</span><span id="L-419"><a href="#L-419"><span class="linenos"> 419</span></a> <span class="n">EXPRESSION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-420"><a href="#L-420"><span class="linenos"> 420</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</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_column</span><span class="p">(),</span> +</span><span id="L-421"><a href="#L-421"><span class="linenos"> 421</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</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_types</span><span class="p">(),</span> +</span><span id="L-422"><a href="#L-422"><span class="linenos"> 422</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</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_from</span><span class="p">(),</span> +</span><span id="L-423"><a href="#L-423"><span class="linenos"> 423</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Group</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_group</span><span class="p">(),</span> +</span><span id="L-424"><a href="#L-424"><span class="linenos"> 424</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</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_id_var</span><span class="p">(),</span> +</span><span id="L-425"><a href="#L-425"><span class="linenos"> 425</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</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_lateral</span><span class="p">(),</span> +</span><span id="L-426"><a href="#L-426"><span class="linenos"> 426</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</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_join</span><span class="p">(),</span> +</span><span id="L-427"><a href="#L-427"><span class="linenos"> 427</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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_order</span><span class="p">(),</span> +</span><span id="L-428"><a href="#L-428"><span class="linenos"> 428</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> +</span><span id="L-429"><a href="#L-429"><span class="linenos"> 429</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> +</span><span id="L-430"><a href="#L-430"><span class="linenos"> 430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</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_lambda</span><span class="p">(),</span> +</span><span id="L-431"><a href="#L-431"><span class="linenos"> 431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</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_limit</span><span class="p">(),</span> +</span><span id="L-432"><a href="#L-432"><span class="linenos"> 432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Offset</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_offset</span><span class="p">(),</span> +</span><span id="L-433"><a href="#L-433"><span class="linenos"> 433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</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_table_alias</span><span class="p">(),</span> +</span><span id="L-434"><a href="#L-434"><span class="linenos"> 434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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_table</span><span class="p">(),</span> +</span><span id="L-435"><a href="#L-435"><span class="linenos"> 435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Condition</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_conjunction</span><span class="p">(),</span> +</span><span id="L-436"><a href="#L-436"><span class="linenos"> 436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</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_statement</span><span class="p">(),</span> +</span><span id="L-437"><a href="#L-437"><span class="linenos"> 437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</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_properties</span><span class="p">(),</span> +</span><span id="L-438"><a href="#L-438"><span class="linenos"> 438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</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_where</span><span class="p">(),</span> +</span><span id="L-439"><a href="#L-439"><span class="linenos"> 439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Ordered</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_ordered</span><span class="p">(),</span> +</span><span id="L-440"><a href="#L-440"><span class="linenos"> 440</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Having</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_having</span><span class="p">(),</span> +</span><span id="L-441"><a href="#L-441"><span class="linenos"> 441</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</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_with</span><span class="p">(),</span> +</span><span id="L-442"><a href="#L-442"><span class="linenos"> 442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</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_named_window</span><span class="p">(),</span> +</span><span id="L-443"><a href="#L-443"><span class="linenos"> 443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Qualify</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_qualify</span><span class="p">(),</span> +</span><span id="L-444"><a href="#L-444"><span class="linenos"> 444</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Returning</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_returning</span><span class="p">(),</span> +</span><span id="L-445"><a href="#L-445"><span class="linenos"> 445</span></a> <span class="s2">"JOIN_TYPE"</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_join_side_and_kind</span><span class="p">(),</span> +</span><span id="L-446"><a href="#L-446"><span class="linenos"> 446</span></a> <span class="p">}</span> +</span><span id="L-447"><a href="#L-447"><span class="linenos"> 447</span></a> +</span><span id="L-448"><a href="#L-448"><span class="linenos"> 448</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-449"><a href="#L-449"><span class="linenos"> 449</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</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_alter</span><span class="p">(),</span> +</span><span id="L-450"><a href="#L-450"><span class="linenos"> 450</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</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_transaction</span><span class="p">(),</span> +</span><span id="L-451"><a href="#L-451"><span class="linenos"> 451</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</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_cache</span><span class="p">(),</span> +</span><span id="L-452"><a href="#L-452"><span class="linenos"> 452</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</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_commit_or_rollback</span><span class="p">(),</span> +</span><span id="L-453"><a href="#L-453"><span class="linenos"> 453</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</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_comment</span><span class="p">(),</span> +</span><span id="L-454"><a href="#L-454"><span class="linenos"> 454</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CREATE</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_create</span><span class="p">(),</span> +</span><span id="L-455"><a href="#L-455"><span class="linenos"> 455</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</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_delete</span><span class="p">(),</span> +</span><span id="L-456"><a href="#L-456"><span class="linenos"> 456</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</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_describe</span><span class="p">(),</span> +</span><span id="L-457"><a href="#L-457"><span class="linenos"> 457</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</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_describe</span><span class="p">(),</span> +</span><span id="L-458"><a href="#L-458"><span class="linenos"> 458</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</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_drop</span><span class="p">(),</span> +</span><span id="L-459"><a href="#L-459"><span class="linenos"> 459</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_commit_or_rollback</span><span class="p">(),</span> +</span><span id="L-460"><a href="#L-460"><span class="linenos"> 460</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</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_insert</span><span class="p">(),</span> +</span><span id="L-461"><a href="#L-461"><span class="linenos"> 461</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</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_load_data</span><span class="p">(),</span> +</span><span id="L-462"><a href="#L-462"><span class="linenos"> 462</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</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_merge</span><span class="p">(),</span> +</span><span id="L-463"><a href="#L-463"><span class="linenos"> 463</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</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_commit_or_rollback</span><span class="p">(),</span> +</span><span id="L-464"><a href="#L-464"><span class="linenos"> 464</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</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_set</span><span class="p">(),</span> +</span><span id="L-465"><a href="#L-465"><span class="linenos"> 465</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNCACHE</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_uncache</span><span class="p">(),</span> +</span><span id="L-466"><a href="#L-466"><span class="linenos"> 466</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</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_update</span><span class="p">(),</span> +</span><span id="L-467"><a href="#L-467"><span class="linenos"> 467</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</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><span id="L-468"><a href="#L-468"><span class="linenos"> 468</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Use</span><span class="p">,</span> +</span><span id="L-469"><a href="#L-469"><span class="linenos"> 469</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"ROLE"</span><span class="p">,</span> <span class="s2">"WAREHOUSE"</span><span class="p">,</span> <span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">))</span> +</span><span id="L-470"><a href="#L-470"><span class="linenos"> 470</span></a> <span class="ow">and</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="L-471"><a href="#L-471"><span class="linenos"> 471</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-472"><a href="#L-472"><span class="linenos"> 472</span></a> <span class="p">),</span> +</span><span id="L-473"><a href="#L-473"><span class="linenos"> 473</span></a> <span class="p">}</span> +</span><span id="L-474"><a href="#L-474"><span class="linenos"> 474</span></a> +</span><span id="L-475"><a href="#L-475"><span class="linenos"> 475</span></a> <span class="n">UNARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-476"><a href="#L-476"><span class="linenos"> 476</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</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_unary</span><span class="p">(),</span> <span class="c1"># Unary + is handled as a no-op</span> +</span><span id="L-477"><a href="#L-477"><span class="linenos"> 477</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">()),</span> +</span><span id="L-478"><a href="#L-478"><span class="linenos"> 478</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TILDA</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">BitwiseNot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> +</span><span id="L-479"><a href="#L-479"><span class="linenos"> 479</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</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">Neg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> +</span><span id="L-480"><a href="#L-480"><span class="linenos"> 480</span></a> <span class="p">}</span> +</span><span id="L-481"><a href="#L-481"><span class="linenos"> 481</span></a> +</span><span id="L-482"><a href="#L-482"><span class="linenos"> 482</span></a> <span class="n">PRIMARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-483"><a href="#L-483"><span class="linenos"> 483</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-484"><a href="#L-484"><span class="linenos"> 484</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span> +</span><span id="L-485"><a href="#L-485"><span class="linenos"> 485</span></a> <span class="p">),</span> +</span><span id="L-486"><a href="#L-486"><span class="linenos"> 486</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-487"><a href="#L-487"><span class="linenos"> 487</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span> +</span><span id="L-488"><a href="#L-488"><span class="linenos"> 488</span></a> <span class="p">),</span> +</span><span id="L-489"><a href="#L-489"><span class="linenos"> 489</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-490"><a href="#L-490"><span class="linenos"> 490</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">,</span> +</span><span id="L-491"><a href="#L-491"><span class="linenos"> 491</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_except</span><span class="p">(),</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_replace</span><span class="p">()},</span> +</span><span id="L-492"><a href="#L-492"><span class="linenos"> 492</span></a> <span class="p">),</span> +</span><span id="L-493"><a href="#L-493"><span class="linenos"> 493</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Null</span><span class="p">),</span> +</span><span id="L-494"><a href="#L-494"><span class="linenos"> 494</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-495"><a href="#L-495"><span class="linenos"> 495</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-496"><a href="#L-496"><span class="linenos"> 496</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">BitString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="L-497"><a href="#L-497"><span class="linenos"> 497</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">HexString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="L-498"><a href="#L-498"><span class="linenos"> 498</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">ByteString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="L-499"><a href="#L-499"><span class="linenos"> 499</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTRODUCER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_introducer</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> +</span><span id="L-500"><a href="#L-500"><span class="linenos"> 500</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_national</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> +</span><span id="L-501"><a href="#L-501"><span class="linenos"> 501</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_session_parameter</span><span class="p">(),</span> +</span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="p">}</span> +</span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> +</span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> <span class="n">PLACEHOLDER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</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">Placeholder</span><span class="p">),</span> +</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</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_parameter</span><span class="p">(),</span> +</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</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">Placeholder</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">))</span> +</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="p">}</span> +</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> +</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_between</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> +</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Glob</span><span class="p">),</span> +</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Overlaps</span><span class="p">),</span> +</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> +</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> +</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">),</span> +</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">),</span> +</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IRLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</span><span class="p">),</span> +</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">),</span> +</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SimilarTo</span><span class="p">),</span> +</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="p">}</span> +</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> +</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="s2">"AFTER"</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_afterjournal</span><span class="p">(</span> +</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> +</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="p">),</span> +</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="s2">"ALGORITHM"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">),</span> +</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="s2">"AUTO_INCREMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">),</span> +</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="s2">"BEFORE"</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_journal</span><span class="p">(</span> +</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> +</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="p">),</span> +</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="s2">"BLOCKCOMPRESSION"</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_blockcompression</span><span class="p">(),</span> +</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="s2">"CHARACTER SET"</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_character_set</span><span class="p">(),</span> +</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="s2">"CHECKSUM"</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_checksum</span><span class="p">(),</span> +</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="s2">"CLUSTER BY"</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><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> +</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="p">),</span> +</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="s2">"COLLATE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">),</span> +</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="s2">"COMMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">),</span> +</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="s2">"DATABLOCKSIZE"</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_datablocksize</span><span class="p">(</span> +</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> +</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="p">),</span> +</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="s2">"DEFINER"</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_definer</span><span class="p">(),</span> +</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="s2">"DETERMINISTIC"</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><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> +</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="p">),</span> +</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="s2">"DISTKEY"</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_distkey</span><span class="p">(),</span> +</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="s2">"DISTSTYLE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">),</span> +</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="s2">"EXECUTE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">),</span> +</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="s2">"EXTERNAL"</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">ExternalProperty</span><span class="p">),</span> +</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="s2">"FALLBACK"</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_fallback</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> +</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="s2">"FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> +</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="s2">"FREESPACE"</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_freespace</span><span class="p">(),</span> +</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="s2">"GLOBAL"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="s2">"IMMUTABLE"</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><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> +</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="p">),</span> +</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="s2">"JOURNAL"</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_journal</span><span class="p">(</span> +</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> +</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="p">),</span> +</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="s2">"LANGUAGE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">),</span> +</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> +</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="s2">"LOCAL"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="s2">"LOCATION"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">),</span> +</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a> <span class="s2">"LOCK"</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_locking</span><span class="p">(),</span> +</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="s2">"LOCKING"</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_locking</span><span class="p">(),</span> +</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="s2">"LOG"</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_log</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> +</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="s2">"MATERIALIZED"</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">MaterializedProperty</span><span class="p">),</span> +</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="s2">"MAX"</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_datablocksize</span><span class="p">(),</span> +</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="s2">"MAXIMUM"</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_datablocksize</span><span class="p">(),</span> +</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="s2">"MERGEBLOCKRATIO"</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_mergeblockratio</span><span class="p">(</span> +</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> +</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="p">),</span> +</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="s2">"MIN"</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_datablocksize</span><span class="p">(),</span> +</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="s2">"MINIMUM"</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_datablocksize</span><span class="p">(),</span> +</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="s2">"MULTISET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="s2">"NO"</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_noprimaryindex</span><span class="p">(),</span> +</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> <span class="s2">"NOT"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="s2">"ON"</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_oncommit</span><span class="p">(),</span> +</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="s2">"PARTITION BY"</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_partitioned_by</span><span class="p">(),</span> +</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="s2">"PARTITIONED BY"</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_partitioned_by</span><span class="p">(),</span> +</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITIONED_BY"</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_partitioned_by</span><span class="p">(),</span> +</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="s2">"RETURNS"</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_returns</span><span class="p">(),</span> +</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="s2">"ROW"</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_row</span><span class="p">(),</span> +</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="s2">"SET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="s2">"SORTKEY"</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_sortkey</span><span class="p">(),</span> +</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="s2">"STABLE"</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><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"STABLE"</span><span class="p">)</span> +</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="p">),</span> +</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="s2">"STORED"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> +</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="s2">"TABLE_FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> +</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="s2">"TBLPROPERTIES"</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_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">),</span> +</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="s2">"TEMPORARY"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="s2">"TRANSIENT"</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">TransientProperty</span><span class="p">),</span> +</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="s2">"USING"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> +</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="s2">"VOLATILE"</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><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> +</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="p">),</span> +</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="s2">"WITH"</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_with_property</span><span class="p">(),</span> +</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="p">}</span> +</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> +</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="n">CONSTRAINT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="s2">"AUTOINCREMENT"</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_auto_increment</span><span class="p">(),</span> +</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="s2">"AUTO_INCREMENT"</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_auto_increment</span><span class="p">(),</span> +</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> <span class="s2">"CASESPECIFIC"</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="s2">"CHARACTER SET"</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><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="p">),</span> +</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="s2">"CHECK"</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><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="p">),</span> +</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="s2">"COLLATE"</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><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> +</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="p">),</span> +</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="s2">"COMMENT"</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><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="p">),</span> +</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="s2">"COMPRESS"</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_compress</span><span class="p">(),</span> +</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="s2">"DEFAULT"</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><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</span><span class="p">,</span> <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-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="p">),</span> +</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="s2">"ENCODE"</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">EncodeColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()),</span> +</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="s2">"FOREIGN KEY"</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_foreign_key</span><span class="p">(),</span> +</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="s2">"FORMAT"</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><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="p">),</span> +</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="s2">"GENERATED"</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_generated_as_identity</span><span class="p">(),</span> +</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="s2">"IDENTITY"</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_auto_increment</span><span class="p">(),</span> +</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="s2">"INLINE"</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_inline</span><span class="p">(),</span> +</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> +</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="s2">"NOT"</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_not_constraint</span><span class="p">(),</span> +</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="s2">"NULL"</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">NotNullColumnConstraint</span><span class="p">,</span> <span class="n">allow_null</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="s2">"PATH"</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">PathColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()),</span> +</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="s2">"PRIMARY KEY"</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_primary_key</span><span class="p">(),</span> +</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="s2">"TITLE"</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><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="p">),</span> +</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="s2">"UNIQUE"</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_unique</span><span class="p">(),</span> +</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="s2">"UPPERCASE"</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">UppercaseColumnConstraint</span><span class="p">),</span> +</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="p">}</span> +</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> +</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="s2">"ADD"</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_alter_table_add</span><span class="p">(),</span> +</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="s2">"ALTER"</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_alter_table_alter</span><span class="p">(),</span> +</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="s2">"DELETE"</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">Delete</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()),</span> +</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="s2">"DROP"</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_alter_table_drop</span><span class="p">(),</span> +</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="s2">"RENAME"</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_alter_table_rename</span><span class="p">(),</span> +</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="p">}</span> +</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> +</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> <span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"CHECK"</span><span class="p">,</span> <span class="s2">"FOREIGN KEY"</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">,</span> <span class="s2">"PRIMARY KEY"</span><span class="p">,</span> <span class="s2">"UNIQUE"</span><span class="p">}</span> +</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> +</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> <span class="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASE</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_case</span><span class="p">(),</span> +</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</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_if</span><span class="p">(),</span> +</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</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">Any</span><span class="p">,</span> <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-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="p">}</span> +</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> +</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="s2">"CAST"</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_cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STRICT_CAST</span><span class="p">),</span> </span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="s2">"CONVERT"</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_convert</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STRICT_CAST</span><span class="p">),</span> -</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="s2">"TRY_CONVERT"</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_convert</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="s2">"EXTRACT"</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_extract</span><span class="p">(),</span> -</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a> <span class="s2">"POSITION"</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_position</span><span class="p">(),</span> +</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="s2">"EXTRACT"</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_extract</span><span class="p">(),</span> +</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="s2">"POSITION"</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_position</span><span class="p">(),</span> +</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a> <span class="s2">"STRING_AGG"</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_string_agg</span><span class="p">(),</span> </span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a> <span class="s2">"SUBSTRING"</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_substring</span><span class="p">(),</span> </span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="s2">"TRIM"</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_trim</span><span class="p">(),</span> -</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="s2">"CAST"</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_cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STRICT_CAST</span><span class="p">),</span> -</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="s2">"TRY_CAST"</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_cast</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="s2">"STRING_AGG"</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_string_agg</span><span class="p">(),</span> -</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="p">}</span> -</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> -</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="n">QUERY_MODIFIER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="s2">"match"</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_match_recognize</span><span class="p">(),</span> -</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="s2">"where"</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_where</span><span class="p">(),</span> -</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="s2">"group"</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_group</span><span class="p">(),</span> -</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="s2">"having"</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_having</span><span class="p">(),</span> -</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="s2">"qualify"</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_qualify</span><span class="p">(),</span> -</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="s2">"windows"</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_window_clause</span><span class="p">(),</span> -</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="s2">"distribute"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distribute</span><span class="p">),</span> -</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="s2">"sort"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> -</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="s2">"cluster"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> -</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> <span class="s2">"order"</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_order</span><span class="p">(),</span> -</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="s2">"limit"</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_limit</span><span class="p">(),</span> -</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a> <span class="s2">"offset"</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_offset</span><span class="p">(),</span> -</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="s2">"lock"</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_lock</span><span class="p">(),</span> -</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="s2">"sample"</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_table_sample</span><span class="p">(</span><span class="n">as_modifier</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> <span class="p">}</span> -</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a> -</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="n">SHOW_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="n">SET_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> -</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="n">MODIFIABLES</span> <span class="o">=</span> <span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> -</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> -</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="n">TRANSACTION_KIND</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"DEFERRED"</span><span class="p">,</span> <span class="s2">"IMMEDIATE"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">}</span> -</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> -</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="n">INSERT_ALTERNATIVES</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"ABORT"</span><span class="p">,</span> <span class="s2">"FAIL"</span><span class="p">,</span> <span class="s2">"IGNORE"</span><span class="p">,</span> <span class="s2">"REPLACE"</span><span class="p">,</span> <span class="s2">"ROLLBACK"</span><span class="p">}</span> -</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> -</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="n">WINDOW_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">}</span> -</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> -</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> <span class="n">ADD_CONSTRAINT_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">}</span> -</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> -</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> -</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> -</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> -</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a> <span class="s2">"error_level"</span><span class="p">,</span> -</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="s2">"error_message_context"</span><span class="p">,</span> -</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="s2">"sql"</span><span class="p">,</span> -</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="s2">"errors"</span><span class="p">,</span> -</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> -</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> -</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> -</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> <span class="s2">"max_errors"</span><span class="p">,</span> -</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> -</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="s2">"_tokens"</span><span class="p">,</span> -</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> <span class="s2">"_index"</span><span class="p">,</span> -</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="s2">"_curr"</span><span class="p">,</span> -</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a> <span class="s2">"_next"</span><span class="p">,</span> -</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> <span class="s2">"_prev"</span><span class="p">,</span> -</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> <span class="s2">"_prev_comments"</span><span class="p">,</span> -</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a> <span class="s2">"_show_trie"</span><span class="p">,</span> -</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="s2">"_set_trie"</span><span class="p">,</span> -</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> <span class="p">)</span> -</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> -</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> <span class="n">error_level</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">ErrorLevel</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a> <span class="n">error_message_context</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> -</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a> <span class="n">index_offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> -</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a> <span class="n">unnest_column_only</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-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="n">alias_post_tablesample</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-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="n">max_errors</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> -</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> <span class="n">null_ordering</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a> <span class="p">):</span> -</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">=</span> <span class="n">error_level</span> <span class="ow">or</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span> -</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span> <span class="o">=</span> <span class="n">error_message_context</span> -</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> -</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> -</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> -</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span> <span class="o">=</span> <span class="n">max_errors</span> -</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> -</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> -</span><span id="L-747"><a href="#L-747"><span class="linenos"> 747</span></a> -</span><span id="L-748"><a href="#L-748"><span class="linenos"> 748</span></a> <span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> -</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span> -</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-761"><a href="#L-761"><span class="linenos"> 761</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a><span class="sd"> Parses a list of tokens and returns a list of syntax trees, one tree</span> -</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a><span class="sd"> per parsed SQL statement.</span> -</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> -</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a><span class="sd"> Args:</span> -</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a><span class="sd"> raw_tokens: the list of tokens.</span> -</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> -</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a> -</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a><span class="sd"> Returns:</span> -</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a><span class="sd"> The list of syntax trees.</span> -</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a><span class="sd"> """</span> -</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span> -</span><span id="L-773"><a href="#L-773"><span class="linenos"> 773</span></a> <span class="n">parse_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="o">=</span><span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="o">=</span><span class="n">sql</span> -</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a> <span class="p">)</span> -</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a> -</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> -</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a> <span class="n">expression_types</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> -</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> -</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-782"><a href="#L-782"><span class="linenos"> 782</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a><span class="sd"> Parses a list of tokens into a given Expression type. If a collection of Expression</span> -</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a><span class="sd"> types is given instead, this method will try to parse the token list into each one</span> -</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a><span class="sd"> of them, stopping at the first for which the parsing succeeds.</span> -</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> -</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a><span class="sd"> Args:</span> -</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a><span class="sd"> expression_types: the expression type(s) to try and parse the token list into.</span> -</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a><span class="sd"> raw_tokens: the list of tokens.</span> -</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> -</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> -</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a><span class="sd"> Returns:</span> -</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a><span class="sd"> The target Expression.</span> -</span><span id="L-794"><a href="#L-794"><span class="linenos"> 794</span></a><span class="sd"> """</span> -</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a> <span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a> <span class="k">for</span> <span class="n">expression_type</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">expression_types</span><span class="p">):</span> -</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPRESSION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression_type</span><span class="p">)</span> -</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser registered for </span><span class="si">{</span><span class="n">expression_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span><span class="n">parser</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a> <span class="k">except</span> <span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> -</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> <span class="n">e</span><span class="o">.</span><span class="n">errors</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"into_expression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression_type</span> -</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> -</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> -</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a> <span class="sa">f</span><span class="s2">"Failed to parse into </span><span class="si">{</span><span class="n">expression_types</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="n">errors</span><span class="p">),</span> -</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="p">)</span> <span class="kn">from</span> <span class="nn">errors</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> -</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> -</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">def</span> <span class="nf">_parse</span><span class="p">(</span> -</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Parser</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]],</span> -</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> -</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> -</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span> <span class="ow">or</span> <span class="s2">""</span> -</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="n">total</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">)</span> -</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="n">chunks</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">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]]</span> <span class="o">=</span> <span class="p">[[]]</span> -</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> -</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">token</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">):</span> -</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">if</span> <span class="n">token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMICOLON</span><span class="p">:</span> -</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o"><</span> <span class="n">total</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="n">chunks</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span> -</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="n">chunks</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> -</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> -</span><span id="L-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> -</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="k">for</span> <span class="n">tokens</span> <span class="ow">in</span> <span class="n">chunks</span><span class="p">:</span> -</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> -</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="n">tokens</span> -</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> -</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_method</span><span class="p">(</span><span class="bp">self</span><span class="p">))</span> -</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> -</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">):</span> -</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid expression / Unexpected token"</span><span class="p">)</span> +</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="s2">"TRY_CAST"</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_cast</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="s2">"TRY_CONVERT"</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_convert</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="p">}</span> +</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> +</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="n">QUERY_MODIFIER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="s2">"match"</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_match_recognize</span><span class="p">(),</span> +</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="s2">"where"</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_where</span><span class="p">(),</span> +</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="s2">"group"</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_group</span><span class="p">(),</span> +</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="s2">"having"</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_having</span><span class="p">(),</span> +</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="s2">"qualify"</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_qualify</span><span class="p">(),</span> +</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="s2">"windows"</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_window_clause</span><span class="p">(),</span> +</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="s2">"distribute"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distribute</span><span class="p">),</span> +</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="s2">"sort"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> +</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="s2">"cluster"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> +</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="s2">"order"</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_order</span><span class="p">(),</span> +</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> <span class="s2">"limit"</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_limit</span><span class="p">(),</span> +</span><span id="L-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="s2">"offset"</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_offset</span><span class="p">(),</span> +</span><span id="L-685"><a href="#L-685"><span class="linenos"> 685</span></a> <span class="s2">"lock"</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_lock</span><span class="p">(),</span> +</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="s2">"sample"</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_table_sample</span><span class="p">(</span><span class="n">as_modifier</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="p">}</span> +</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> +</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="s2">"GLOBAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"GLOBAL"</span><span class="p">),</span> +</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="s2">"LOCAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">),</span> +</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> <span class="s2">"SESSION"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"SESSION"</span><span class="p">),</span> +</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="s2">"TRANSACTION"</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_set_transaction</span><span class="p">(),</span> +</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="p">}</span> +</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> +</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="n">SHOW_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-697"><a href="#L-697"><span class="linenos"> 697</span></a> +</span><span id="L-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="n">MODIFIABLES</span> <span class="o">=</span> <span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> +</span><span id="L-699"><a href="#L-699"><span class="linenos"> 699</span></a> +</span><span id="L-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="n">TRANSACTION_KIND</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"DEFERRED"</span><span class="p">,</span> <span class="s2">"IMMEDIATE"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">}</span> +</span><span id="L-701"><a href="#L-701"><span class="linenos"> 701</span></a> +</span><span id="L-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="n">TRANSACTION_CHARACTERISTICS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="s2">"ISOLATION LEVEL REPEATABLE READ"</span><span class="p">,</span> +</span><span id="L-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="s2">"ISOLATION LEVEL READ COMMITTED"</span><span class="p">,</span> +</span><span id="L-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="s2">"ISOLATION LEVEL READ UNCOMMITTED"</span><span class="p">,</span> +</span><span id="L-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="s2">"ISOLATION LEVEL SERIALIZABLE"</span><span class="p">,</span> +</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="s2">"READ WRITE"</span><span class="p">,</span> +</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="s2">"READ ONLY"</span><span class="p">,</span> +</span><span id="L-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="p">}</span> +</span><span id="L-710"><a href="#L-710"><span class="linenos"> 710</span></a> +</span><span id="L-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="n">INSERT_ALTERNATIVES</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"ABORT"</span><span class="p">,</span> <span class="s2">"FAIL"</span><span class="p">,</span> <span class="s2">"IGNORE"</span><span class="p">,</span> <span class="s2">"REPLACE"</span><span class="p">,</span> <span class="s2">"ROLLBACK"</span><span class="p">}</span> +</span><span id="L-712"><a href="#L-712"><span class="linenos"> 712</span></a> +</span><span id="L-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="n">WINDOW_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">}</span> +</span><span id="L-714"><a href="#L-714"><span class="linenos"> 714</span></a> +</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="n">ADD_CONSTRAINT_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">}</span> +</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> +</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a> +</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> +</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a> <span class="s2">"error_level"</span><span class="p">,</span> +</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> <span class="s2">"error_message_context"</span><span class="p">,</span> +</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> <span class="s2">"sql"</span><span class="p">,</span> +</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a> <span class="s2">"errors"</span><span class="p">,</span> +</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> +</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> +</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> +</span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a> <span class="s2">"max_errors"</span><span class="p">,</span> +</span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> +</span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> <span class="s2">"_tokens"</span><span class="p">,</span> +</span><span id="L-732"><a href="#L-732"><span class="linenos"> 732</span></a> <span class="s2">"_index"</span><span class="p">,</span> +</span><span id="L-733"><a href="#L-733"><span class="linenos"> 733</span></a> <span class="s2">"_curr"</span><span class="p">,</span> +</span><span id="L-734"><a href="#L-734"><span class="linenos"> 734</span></a> <span class="s2">"_next"</span><span class="p">,</span> +</span><span id="L-735"><a href="#L-735"><span class="linenos"> 735</span></a> <span class="s2">"_prev"</span><span class="p">,</span> +</span><span id="L-736"><a href="#L-736"><span class="linenos"> 736</span></a> <span class="s2">"_prev_comments"</span><span class="p">,</span> +</span><span id="L-737"><a href="#L-737"><span class="linenos"> 737</span></a> <span class="s2">"_show_trie"</span><span class="p">,</span> +</span><span id="L-738"><a href="#L-738"><span class="linenos"> 738</span></a> <span class="s2">"_set_trie"</span><span class="p">,</span> +</span><span id="L-739"><a href="#L-739"><span class="linenos"> 739</span></a> <span class="p">)</span> +</span><span id="L-740"><a href="#L-740"><span class="linenos"> 740</span></a> +</span><span id="L-741"><a href="#L-741"><span class="linenos"> 741</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="L-742"><a href="#L-742"><span class="linenos"> 742</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-743"><a href="#L-743"><span class="linenos"> 743</span></a> <span class="n">error_level</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">ErrorLevel</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-744"><a href="#L-744"><span class="linenos"> 744</span></a> <span class="n">error_message_context</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> +</span><span id="L-745"><a href="#L-745"><span class="linenos"> 745</span></a> <span class="n">index_offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> +</span><span id="L-746"><a href="#L-746"><span class="linenos"> 746</span></a> <span class="n">unnest_column_only</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-747"><a href="#L-747"><span class="linenos"> 747</span></a> <span class="n">alias_post_tablesample</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-748"><a href="#L-748"><span class="linenos"> 748</span></a> <span class="n">max_errors</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> +</span><span id="L-749"><a href="#L-749"><span class="linenos"> 749</span></a> <span class="n">null_ordering</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-750"><a href="#L-750"><span class="linenos"> 750</span></a> <span class="p">):</span> +</span><span id="L-751"><a href="#L-751"><span class="linenos"> 751</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">=</span> <span class="n">error_level</span> <span class="ow">or</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span> +</span><span id="L-752"><a href="#L-752"><span class="linenos"> 752</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span> <span class="o">=</span> <span class="n">error_message_context</span> +</span><span id="L-753"><a href="#L-753"><span class="linenos"> 753</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> +</span><span id="L-754"><a href="#L-754"><span class="linenos"> 754</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> +</span><span id="L-755"><a href="#L-755"><span class="linenos"> 755</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> +</span><span id="L-756"><a href="#L-756"><span class="linenos"> 756</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span> <span class="o">=</span> <span class="n">max_errors</span> +</span><span id="L-757"><a href="#L-757"><span class="linenos"> 757</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> +</span><span id="L-758"><a href="#L-758"><span class="linenos"> 758</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> +</span><span id="L-759"><a href="#L-759"><span class="linenos"> 759</span></a> +</span><span id="L-760"><a href="#L-760"><span class="linenos"> 760</span></a> <span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="L-761"><a href="#L-761"><span class="linenos"> 761</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-762"><a href="#L-762"><span class="linenos"> 762</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-763"><a href="#L-763"><span class="linenos"> 763</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-764"><a href="#L-764"><span class="linenos"> 764</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="L-765"><a href="#L-765"><span class="linenos"> 765</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-766"><a href="#L-766"><span class="linenos"> 766</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-767"><a href="#L-767"><span class="linenos"> 767</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-768"><a href="#L-768"><span class="linenos"> 768</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-769"><a href="#L-769"><span class="linenos"> 769</span></a> +</span><span id="L-770"><a href="#L-770"><span class="linenos"> 770</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span> +</span><span id="L-771"><a href="#L-771"><span class="linenos"> 771</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-772"><a href="#L-772"><span class="linenos"> 772</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-773"><a href="#L-773"><span class="linenos"> 773</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-774"><a href="#L-774"><span class="linenos"> 774</span></a><span class="sd"> Parses a list of tokens and returns a list of syntax trees, one tree</span> +</span><span id="L-775"><a href="#L-775"><span class="linenos"> 775</span></a><span class="sd"> per parsed SQL statement.</span> +</span><span id="L-776"><a href="#L-776"><span class="linenos"> 776</span></a> +</span><span id="L-777"><a href="#L-777"><span class="linenos"> 777</span></a><span class="sd"> Args:</span> +</span><span id="L-778"><a href="#L-778"><span class="linenos"> 778</span></a><span class="sd"> raw_tokens: the list of tokens.</span> +</span><span id="L-779"><a href="#L-779"><span class="linenos"> 779</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> +</span><span id="L-780"><a href="#L-780"><span class="linenos"> 780</span></a> +</span><span id="L-781"><a href="#L-781"><span class="linenos"> 781</span></a><span class="sd"> Returns:</span> +</span><span id="L-782"><a href="#L-782"><span class="linenos"> 782</span></a><span class="sd"> The list of syntax trees.</span> +</span><span id="L-783"><a href="#L-783"><span class="linenos"> 783</span></a><span class="sd"> """</span> +</span><span id="L-784"><a href="#L-784"><span class="linenos"> 784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span> +</span><span id="L-785"><a href="#L-785"><span class="linenos"> 785</span></a> <span class="n">parse_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="o">=</span><span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="o">=</span><span class="n">sql</span> +</span><span id="L-786"><a href="#L-786"><span class="linenos"> 786</span></a> <span class="p">)</span> +</span><span id="L-787"><a href="#L-787"><span class="linenos"> 787</span></a> +</span><span id="L-788"><a href="#L-788"><span class="linenos"> 788</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> +</span><span id="L-789"><a href="#L-789"><span class="linenos"> 789</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-790"><a href="#L-790"><span class="linenos"> 790</span></a> <span class="n">expression_types</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> +</span><span id="L-791"><a href="#L-791"><span class="linenos"> 791</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> +</span><span id="L-792"><a href="#L-792"><span class="linenos"> 792</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-793"><a href="#L-793"><span class="linenos"> 793</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-794"><a href="#L-794"><span class="linenos"> 794</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-795"><a href="#L-795"><span class="linenos"> 795</span></a><span class="sd"> Parses a list of tokens into a given Expression type. If a collection of Expression</span> +</span><span id="L-796"><a href="#L-796"><span class="linenos"> 796</span></a><span class="sd"> types is given instead, this method will try to parse the token list into each one</span> +</span><span id="L-797"><a href="#L-797"><span class="linenos"> 797</span></a><span class="sd"> of them, stopping at the first for which the parsing succeeds.</span> +</span><span id="L-798"><a href="#L-798"><span class="linenos"> 798</span></a> +</span><span id="L-799"><a href="#L-799"><span class="linenos"> 799</span></a><span class="sd"> Args:</span> +</span><span id="L-800"><a href="#L-800"><span class="linenos"> 800</span></a><span class="sd"> expression_types: the expression type(s) to try and parse the token list into.</span> +</span><span id="L-801"><a href="#L-801"><span class="linenos"> 801</span></a><span class="sd"> raw_tokens: the list of tokens.</span> +</span><span id="L-802"><a href="#L-802"><span class="linenos"> 802</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> +</span><span id="L-803"><a href="#L-803"><span class="linenos"> 803</span></a> +</span><span id="L-804"><a href="#L-804"><span class="linenos"> 804</span></a><span class="sd"> Returns:</span> +</span><span id="L-805"><a href="#L-805"><span class="linenos"> 805</span></a><span class="sd"> The target Expression.</span> +</span><span id="L-806"><a href="#L-806"><span class="linenos"> 806</span></a><span class="sd"> """</span> +</span><span id="L-807"><a href="#L-807"><span class="linenos"> 807</span></a> <span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-808"><a href="#L-808"><span class="linenos"> 808</span></a> <span class="k">for</span> <span class="n">expression_type</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">expression_types</span><span class="p">):</span> +</span><span id="L-809"><a href="#L-809"><span class="linenos"> 809</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPRESSION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression_type</span><span class="p">)</span> +</span><span id="L-810"><a href="#L-810"><span class="linenos"> 810</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="L-811"><a href="#L-811"><span class="linenos"> 811</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser registered for </span><span class="si">{</span><span class="n">expression_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-812"><a href="#L-812"><span class="linenos"> 812</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-813"><a href="#L-813"><span class="linenos"> 813</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span><span class="n">parser</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="L-814"><a href="#L-814"><span class="linenos"> 814</span></a> <span class="k">except</span> <span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> +</span><span id="L-815"><a href="#L-815"><span class="linenos"> 815</span></a> <span class="n">e</span><span class="o">.</span><span class="n">errors</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"into_expression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression_type</span> +</span><span id="L-816"><a href="#L-816"><span class="linenos"> 816</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> +</span><span id="L-817"><a href="#L-817"><span class="linenos"> 817</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> +</span><span id="L-818"><a href="#L-818"><span class="linenos"> 818</span></a> <span class="sa">f</span><span class="s2">"Failed to parse into </span><span class="si">{</span><span class="n">expression_types</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-819"><a href="#L-819"><span class="linenos"> 819</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="n">errors</span><span class="p">),</span> +</span><span id="L-820"><a href="#L-820"><span class="linenos"> 820</span></a> <span class="p">)</span> <span class="kn">from</span> <span class="nn">errors</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> +</span><span id="L-821"><a href="#L-821"><span class="linenos"> 821</span></a> +</span><span id="L-822"><a href="#L-822"><span class="linenos"> 822</span></a> <span class="k">def</span> <span class="nf">_parse</span><span class="p">(</span> +</span><span id="L-823"><a href="#L-823"><span class="linenos"> 823</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-824"><a href="#L-824"><span class="linenos"> 824</span></a> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Parser</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]],</span> +</span><span id="L-825"><a href="#L-825"><span class="linenos"> 825</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> +</span><span id="L-826"><a href="#L-826"><span class="linenos"> 826</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-827"><a href="#L-827"><span class="linenos"> 827</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-828"><a href="#L-828"><span class="linenos"> 828</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> +</span><span id="L-829"><a href="#L-829"><span class="linenos"> 829</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span> <span class="ow">or</span> <span class="s2">""</span> +</span><span id="L-830"><a href="#L-830"><span class="linenos"> 830</span></a> <span class="n">total</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">)</span> +</span><span id="L-831"><a href="#L-831"><span class="linenos"> 831</span></a> <span class="n">chunks</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">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]]</span> <span class="o">=</span> <span class="p">[[]]</span> +</span><span id="L-832"><a href="#L-832"><span class="linenos"> 832</span></a> +</span><span id="L-833"><a href="#L-833"><span class="linenos"> 833</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">token</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">):</span> +</span><span id="L-834"><a href="#L-834"><span class="linenos"> 834</span></a> <span class="k">if</span> <span class="n">token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMICOLON</span><span class="p">:</span> +</span><span id="L-835"><a href="#L-835"><span class="linenos"> 835</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o"><</span> <span class="n">total</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-836"><a href="#L-836"><span class="linenos"> 836</span></a> <span class="n">chunks</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span> +</span><span id="L-837"><a href="#L-837"><span class="linenos"> 837</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-838"><a href="#L-838"><span class="linenos"> 838</span></a> <span class="n">chunks</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> </span><span id="L-839"><a href="#L-839"><span class="linenos"> 839</span></a> -</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">check_errors</span><span class="p">()</span> +</span><span id="L-840"><a href="#L-840"><span class="linenos"> 840</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="L-841"><a href="#L-841"><span class="linenos"> 841</span></a> -</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">return</span> <span class="n">expressions</span> -</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> -</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="k">def</span> <span class="nf">check_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a><span class="sd"> Logs or raises any found errors, depending on the chosen error level setting.</span> -</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a><span class="sd"> """</span> -</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> -</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> <span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> -</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">))</span> -</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> -</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> -</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> <span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span><span class="p">),</span> -</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">),</span> -</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="p">)</span> -</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> -</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="nf">raise_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a><span class="sd"> Appends an error in the list of recorded errors or raises it, depending on the chosen</span> -</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a><span class="sd"> error level setting.</span> -</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a><span class="sd"> """</span> -</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="n">token</span> <span class="o">=</span> <span class="n">token</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="ow">or</span> <span class="n">Token</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-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> -</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="n">start_context</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="nb">max</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span> <span class="n">start</span><span class="p">]</span> -</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="n">highlight</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">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span> -</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="n">end_context</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">end</span> <span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">]</span> +</span><span id="L-842"><a href="#L-842"><span class="linenos"> 842</span></a> <span class="k">for</span> <span class="n">tokens</span> <span class="ow">in</span> <span class="n">chunks</span><span class="p">:</span> +</span><span id="L-843"><a href="#L-843"><span class="linenos"> 843</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> +</span><span id="L-844"><a href="#L-844"><span class="linenos"> 844</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="n">tokens</span> +</span><span id="L-845"><a href="#L-845"><span class="linenos"> 845</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-846"><a href="#L-846"><span class="linenos"> 846</span></a> +</span><span id="L-847"><a href="#L-847"><span class="linenos"> 847</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_method</span><span class="p">(</span><span class="bp">self</span><span class="p">))</span> +</span><span id="L-848"><a href="#L-848"><span class="linenos"> 848</span></a> +</span><span id="L-849"><a href="#L-849"><span class="linenos"> 849</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">):</span> +</span><span id="L-850"><a href="#L-850"><span class="linenos"> 850</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid expression / Unexpected token"</span><span class="p">)</span> +</span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> +</span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">check_errors</span><span class="p">()</span> +</span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> +</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">return</span> <span class="n">expressions</span> +</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> +</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="k">def</span> <span class="nf">check_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a><span class="sd"> Logs or raises any found errors, depending on the chosen error level setting.</span> +</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a><span class="sd"> """</span> +</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> +</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> +</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">))</span> +</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> +</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> +</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span><span class="p">),</span> +</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">),</span> +</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="p">)</span> </span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> -</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="n">error</span> <span class="o">=</span> <span class="n">ParseError</span><span class="o">.</span><span class="n">new</span><span class="p">(</span> -</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">. Line </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="si">}</span><span class="s2">, Col: </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">"</span> -</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">start_context</span><span class="si">}</span><span class="se">\033</span><span class="s2">[4m</span><span class="si">{</span><span class="n">highlight</span><span class="si">}</span><span class="se">\033</span><span class="s2">[0m</span><span class="si">{</span><span class="n">end_context</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="n">description</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> -</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="n">line</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> -</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="n">col</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">,</span> -</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="n">start_context</span><span class="o">=</span><span class="n">start_context</span><span class="p">,</span> -</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="n">highlight</span><span class="o">=</span><span class="n">highlight</span><span class="p">,</span> -</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="n">end_context</span><span class="o">=</span><span class="n">end_context</span><span class="p">,</span> -</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="p">)</span> -</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> -</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> -</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">raise</span> <span class="n">error</span> -</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> -</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error</span><span class="p">)</span> -</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> -</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span> -</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> -</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a><span class="sd"> Creates a new, validated Expression.</span> -</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> -</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a><span class="sd"> Args:</span> -</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> -</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a><span class="sd"> comments: an optional list of comments to attach to the expression.</span> -</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a><span class="sd"> kwargs: the arguments to set for the expression along with their respective values.</span> -</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> -</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a><span class="sd"> Returns:</span> -</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a><span class="sd"> The target expression.</span> -</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a><span class="sd"> """</span> -</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">exp_class</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> -</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span> -</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="k">def</span> <span class="nf">raise_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a><span class="sd"> Appends an error in the list of recorded errors or raises it, depending on the chosen</span> +</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a><span class="sd"> error level setting.</span> +</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a><span class="sd"> """</span> +</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="n">token</span> <span class="o">=</span> <span class="n">token</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="ow">or</span> <span class="n">Token</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-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> +</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="n">start_context</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="nb">max</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span> <span class="n">start</span><span class="p">]</span> +</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="n">highlight</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">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span> +</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="n">end_context</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">end</span> <span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">]</span> +</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> +</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="n">error</span> <span class="o">=</span> <span class="n">ParseError</span><span class="o">.</span><span class="n">new</span><span class="p">(</span> +</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">. Line </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="si">}</span><span class="s2">, Col: </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">"</span> +</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">start_context</span><span class="si">}</span><span class="se">\033</span><span class="s2">[4m</span><span class="si">{</span><span class="n">highlight</span><span class="si">}</span><span class="se">\033</span><span class="s2">[0m</span><span class="si">{</span><span class="n">end_context</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="n">description</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> +</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="n">line</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> +</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="n">col</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">,</span> +</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="n">start_context</span><span class="o">=</span><span class="n">start_context</span><span class="p">,</span> +</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="n">highlight</span><span class="o">=</span><span class="n">highlight</span><span class="p">,</span> +</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> <span class="n">end_context</span><span class="o">=</span><span class="n">end_context</span><span class="p">,</span> +</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="p">)</span> +</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> +</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> +</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> <span class="k">raise</span> <span class="n">error</span> +</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> +</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error</span><span class="p">)</span> +</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> +</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span> +</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> +</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a><span class="sd"> Creates a new, validated Expression.</span> +</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> +</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a><span class="sd"> Args:</span> +</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> +</span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a><span class="sd"> comments: an optional list of comments to attach to the expression.</span> +</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a><span class="sd"> kwargs: the arguments to set for the expression along with their respective values.</span> </span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> -</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> <span class="k">def</span> <span class="nf">validate_expression</span><span class="p">(</span> -</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> <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">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a><span class="sd"> Validates an already instantiated expression, making sure that all its mandatory arguments</span> -</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a><span class="sd"> are set.</span> -</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> -</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a><span class="sd"> Args:</span> -</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a><span class="sd"> expression: the expression to validate.</span> -</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a><span class="sd"> args: an optional list of items that was used to instantiate the expression, if it's a Func.</span> -</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a><span class="sd"> """</span> -</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> -</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="k">return</span> -</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> -</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> -</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> -</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="k">def</span> <span class="nf">_find_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">,</span> <span class="n">end</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</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="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">end</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">end</span><span class="o">.</span><span class="n">text</span><span class="p">)]</span> -</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> -</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> <span class="k">def</span> <span class="nf">_find_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> -</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="n">line</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> -</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> <span class="k">while</span> <span class="n">line</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">line</span> <span class="ow">or</span> <span class="n">col</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">:</span> -</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="k">if</span> <span class="n">Tokenizer</span><span class="o">.</span><span class="n">WHITE_SPACE</span><span class="o">.</span><span class="n">get</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">index</span><span class="p">])</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">:</span> -</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="n">line</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="n">col</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> <span class="n">index</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a> -</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="k">return</span> <span class="n">index</span> -</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> -</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="k">def</span> <span class="nf">_advance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">times</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">+=</span> <span class="n">times</span> -</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span><span class="p">)</span> -</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</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 class="p">)</span> -</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> -</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">[</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 class="p">]</span> -</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">comments</span> -</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> -</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> <span class="k">def</span> <span class="nf">_retreat</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="k">if</span> <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="p">:</span> -</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><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="p">)</span> -</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> -</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="k">def</span> <span class="nf">_parse_command</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</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">Command</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> -</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> -</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="k">def</span> <span class="nf">_parse_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">allow_exists</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> <span class="k">if</span> <span class="n">allow_exists</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> -</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</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">ON</span><span class="p">)</span> -</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> -</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> -</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> -</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="k">if</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> -</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> -</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> -</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">:</span> -</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a><span class="sd"> Returns:</span> +</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a><span class="sd"> The target expression.</span> +</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a><span class="sd"> """</span> +</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">exp_class</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span> +</span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> +</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="k">def</span> <span class="nf">validate_expression</span><span class="p">(</span> +</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> <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">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a><span class="sd"> Validates an already instantiated expression, making sure that all its mandatory arguments</span> +</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a><span class="sd"> are set.</span> +</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> +</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a><span class="sd"> Args:</span> +</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a><span class="sd"> expression: the expression to validate.</span> +</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a><span class="sd"> args: an optional list of items that was used to instantiate the expression, if it's a Func.</span> +</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a><span class="sd"> """</span> +</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> +</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> <span class="k">return</span> +</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> +</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> +</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> +</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="k">def</span> <span class="nf">_find_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">,</span> <span class="n">end</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</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="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">end</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">end</span><span class="o">.</span><span class="n">text</span><span class="p">)]</span> +</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> +</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a> <span class="k">def</span> <span class="nf">_find_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> +</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="n">line</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> +</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="k">while</span> <span class="n">line</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">line</span> <span class="ow">or</span> <span class="n">col</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">:</span> +</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="k">if</span> <span class="n">Tokenizer</span><span class="o">.</span><span class="n">WHITE_SPACE</span><span class="o">.</span><span class="n">get</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">index</span><span class="p">])</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">:</span> +</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="n">line</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> <span class="n">col</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="n">index</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> +</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> <span class="k">return</span> <span class="n">index</span> +</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> +</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="k">def</span> <span class="nf">_advance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">times</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">+=</span> <span class="n">times</span> +</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span><span class="p">)</span> +</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</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 class="p">)</span> +</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">[</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 class="p">]</span> +</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">comments</span> +</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> +</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="k">def</span> <span class="nf">_retreat</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="k">if</span> <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="p">:</span> +</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><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="p">)</span> +</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> +</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="k">def</span> <span class="nf">_parse_command</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</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">Command</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> +</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="k">def</span> <span class="nf">_parse_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">allow_exists</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> <span class="k">if</span> <span class="n">allow_exists</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> +</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> <span class="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">ON</span><span class="p">)</span> +</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> +</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> </span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a> -</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> <span class="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">IS</span><span class="p">)</span> -</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> -</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</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><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Comment</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> -</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="p">)</span> -</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> -</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="k">def</span> <span class="nf">_parse_statement</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">Expression</span><span class="p">]:</span> -</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> -</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">):</span> -</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> -</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span><span class="p">):</span> -</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_command</span><span class="p">()</span> -</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> -</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> -</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> -</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> -</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> +</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="k">if</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> +</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> +</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> +</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> +</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">:</span> +</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> +</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</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">IS</span><span class="p">)</span> +</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> +</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</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><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Comment</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> +</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="p">)</span> +</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> +</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> <span class="k">def</span> <span class="nf">_parse_statement</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">Expression</span><span class="p">]:</span> +</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> -</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="k">def</span> <span class="nf">_parse_drop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="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="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-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="n">temporary</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">TEMPORARY</span><span class="p">)</span> -</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> <span class="n">materialized</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">MATERIALIZED</span><span class="p">)</span> -</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="k">if</span> <span class="n">default_kind</span><span class="p">:</span> -</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">default_kind</span> -</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> -</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</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><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Drop</span><span class="p">,</span> -</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> -</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="n">temporary</span><span class="o">=</span><span class="n">temporary</span><span class="p">,</span> -</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="n">materialized</span><span class="o">=</span><span class="n">materialized</span><span class="p">,</span> -</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="n">cascade</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">CASCADE</span><span class="p">),</span> -</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="p">)</span> -</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> -</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> <span class="k">def</span> <span class="nf">_parse_exists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">not_</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</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">IF</span><span class="p">)</span> -</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="n">not_</span> <span class="ow">or</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">NOT</span><span class="p">))</span> -</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="ow">and</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">EXISTS</span><span class="p">)</span> -</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="p">)</span> -</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> -</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="k">def</span> <span class="nf">_parse_create</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">Expression</span><span class="p">]:</span> -</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"REPLACE"</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> -</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span> -</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="p">)</span> -</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> -</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="n">volatile</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">VOLATILE</span><span class="p">)</span> -</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> -</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="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">TABLE</span><span class="p">)</span> -</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> -</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> -</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> -</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> <span class="c1"># exp.Properties.Location.POST_CREATE</span> -</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> -</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">properties</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> -</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> -</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> -</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> -</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> -</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> -</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</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">ALIAS</span><span class="p">)</span> -</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="n">begin</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">BEGIN</span><span class="p">)</span> -</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">return_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"RETURN"</span><span class="p">)</span> -</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> -</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="k">if</span> <span class="n">return_</span><span class="p">:</span> -</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="n">expression</span> <span class="o">=</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">Return</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">:</span> -</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_index</span><span class="p">()</span> -</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">DB_CREATABLES</span><span class="p">:</span> -</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="n">table_parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">):</span> +</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> +</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span><span class="p">):</span> +</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_command</span><span class="p">()</span> +</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> +</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> +</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> +</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> +</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a> +</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="k">def</span> <span class="nf">_parse_drop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="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="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-1016"><a href="#L-1016"><span class="linenos">1016</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">temporary</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">TEMPORARY</span><span class="p">)</span> +</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="n">materialized</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">MATERIALIZED</span><span class="p">)</span> +</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="k">if</span> <span class="n">default_kind</span><span class="p">:</span> +</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">default_kind</span> +</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> +</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</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><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Drop</span><span class="p">,</span> +</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> +</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">temporary</span><span class="o">=</span><span class="n">temporary</span><span class="p">,</span> +</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">materialized</span><span class="o">=</span><span class="n">materialized</span><span class="p">,</span> +</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">cascade</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">CASCADE</span><span class="p">),</span> +</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="p">)</span> +</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> +</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="k">def</span> <span class="nf">_parse_exists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">not_</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</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">IF</span><span class="p">)</span> +</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="n">not_</span> <span class="ow">or</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">NOT</span><span class="p">))</span> +</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="ow">and</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">EXISTS</span><span class="p">)</span> +</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="p">)</span> +</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> +</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="k">def</span> <span class="nf">_parse_create</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">Expression</span><span class="p">]:</span> +</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"REPLACE"</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> +</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span> +</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="p">)</span> +</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> +</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="n">volatile</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">VOLATILE</span><span class="p">)</span> +</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> +</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span 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">TABLE</span><span class="p">)</span> +</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> +</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> +</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> +</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> <span class="c1"># exp.Properties.Location.POST_CREATE</span> +</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> +</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">properties</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> +</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> +</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> +</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> +</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> +</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> </span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> -</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="c1"># exp.Properties.Location.POST_NAME</span> -</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> -</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">(</span><span class="n">before</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> -</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_parts</span><span class="p">)</span> -</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> -</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="c1"># exp.Properties.Location.POST_SCHEMA and POST_WITH</span> -</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> -</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</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">ALIAS</span><span class="p">)</span> -</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> -</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="c1"># exp.Properties.Location.POST_ALIAS</span> -</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span> -</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</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">SELECT</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="ow">or</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">WITH</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="ow">or</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="p">):</span> -</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</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">ALIAS</span><span class="p">)</span> +</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="n">begin</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">BEGIN</span><span class="p">)</span> +</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="n">return_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"RETURN"</span><span class="p">)</span> +</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> +</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> +</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="k">if</span> <span class="n">return_</span><span class="p">:</span> +</span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> <span class="n">expression</span> <span class="o">=</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">Return</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">:</span> +</span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_index</span><span class="p">()</span> +</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">DB_CREATABLES</span><span class="p">:</span> +</span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> <span class="n">table_parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> +</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="c1"># exp.Properties.Location.POST_NAME</span> +</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> +</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">(</span><span class="n">before</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> +</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_parts</span><span class="p">)</span> +</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a> +</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="c1"># exp.Properties.Location.POST_SCHEMA and POST_WITH</span> +</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> +</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</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">ALIAS</span><span class="p">)</span> </span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> -</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">()</span> -</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> -</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> -</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="c1"># exp.Properties.Location.POST_EXPRESSION</span> -</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> -</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_create_table_index</span><span class="p">()</span> +</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="c1"># exp.Properties.Location.POST_ALIAS</span> +</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span> +</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</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">SELECT</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="ow">or</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">WITH</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="ow">or</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="p">):</span> +</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> +</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">()</span> </span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> -</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="c1"># exp.Properties.Location.POST_INDEX</span> -</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> +</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="c1"># exp.Properties.Location.POST_EXPRESSION</span> +</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> </span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> -</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">index</span><span class="p">:</span> -</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="k">break</span> -</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a> <span class="n">indexes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> -</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">:</span> -</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">,</span> <span class="s2">"BINDING"</span><span class="p">):</span> -</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a> -</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</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><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> -</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> -</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="n">replace</span><span class="o">=</span><span class="n">replace</span><span class="p">,</span> -</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> -</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> <span class="n">volatile</span><span class="o">=</span><span class="n">volatile</span><span class="p">,</span> -</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> -</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties</span><span class="p">,</span> -</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="n">indexes</span><span class="o">=</span><span class="n">indexes</span><span class="p">,</span> -</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> <span class="n">no_schema_binding</span><span class="o">=</span><span class="n">no_schema_binding</span><span class="p">,</span> -</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="n">begin</span><span class="o">=</span><span class="n">begin</span><span class="p">,</span> -</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="p">)</span> -</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> -</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> <span class="k">def</span> <span class="nf">_parse_property_before</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">Expression</span><span class="p">]:</span> -</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</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-1157"><a href="#L-1157"><span class="linenos">1157</span></a> -</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a> <span class="c1"># parsers look to _prev for no/dual/default, so need to consume first</span> -</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> -</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DUAL"</span><span class="p">)</span> -</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> -</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a> -</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()):</span> -</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> -</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a> -</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</span></a> <span class="k">def</span> <span class="nf">_parse_property</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">Expression</span><span class="p">]:</span> -</span><span id="L-1169"><a href="#L-1169"><span class="linenos">1169</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">):</span> -</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a> -</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHARACTER_SET</span><span class="p">):</span> -</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_character_set</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1134"><a href="#L-1134"><span class="linenos">1134</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_create_table_index</span><span class="p">()</span> +</span><span id="L-1135"><a href="#L-1135"><span class="linenos">1135</span></a> +</span><span id="L-1136"><a href="#L-1136"><span class="linenos">1136</span></a> <span class="c1"># exp.Properties.Location.POST_INDEX</span> +</span><span id="L-1137"><a href="#L-1137"><span class="linenos">1137</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-1138"><a href="#L-1138"><span class="linenos">1138</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="L-1139"><a href="#L-1139"><span class="linenos">1139</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1140"><a href="#L-1140"><span class="linenos">1140</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1141"><a href="#L-1141"><span class="linenos">1141</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="L-1142"><a href="#L-1142"><span class="linenos">1142</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="L-1143"><a href="#L-1143"><span class="linenos">1143</span></a> +</span><span id="L-1144"><a href="#L-1144"><span class="linenos">1144</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">index</span><span class="p">:</span> +</span><span id="L-1145"><a href="#L-1145"><span class="linenos">1145</span></a> <span class="k">break</span> +</span><span id="L-1146"><a href="#L-1146"><span class="linenos">1146</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1147"><a href="#L-1147"><span class="linenos">1147</span></a> <span class="n">indexes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> +</span><span id="L-1148"><a href="#L-1148"><span class="linenos">1148</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">:</span> +</span><span id="L-1149"><a href="#L-1149"><span class="linenos">1149</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">,</span> <span class="s2">"BINDING"</span><span class="p">):</span> +</span><span id="L-1150"><a href="#L-1150"><span class="linenos">1150</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-1151"><a href="#L-1151"><span class="linenos">1151</span></a> +</span><span id="L-1152"><a href="#L-1152"><span class="linenos">1152</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1153"><a href="#L-1153"><span class="linenos">1153</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> +</span><span id="L-1154"><a href="#L-1154"><span class="linenos">1154</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1155"><a href="#L-1155"><span class="linenos">1155</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> +</span><span id="L-1156"><a href="#L-1156"><span class="linenos">1156</span></a> <span class="n">replace</span><span class="o">=</span><span class="n">replace</span><span class="p">,</span> +</span><span id="L-1157"><a href="#L-1157"><span class="linenos">1157</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> +</span><span id="L-1158"><a href="#L-1158"><span class="linenos">1158</span></a> <span class="n">volatile</span><span class="o">=</span><span class="n">volatile</span><span class="p">,</span> +</span><span id="L-1159"><a href="#L-1159"><span class="linenos">1159</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-1160"><a href="#L-1160"><span class="linenos">1160</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> +</span><span id="L-1161"><a href="#L-1161"><span class="linenos">1161</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties</span><span class="p">,</span> +</span><span id="L-1162"><a href="#L-1162"><span class="linenos">1162</span></a> <span class="n">indexes</span><span class="o">=</span><span class="n">indexes</span><span class="p">,</span> +</span><span id="L-1163"><a href="#L-1163"><span class="linenos">1163</span></a> <span class="n">no_schema_binding</span><span class="o">=</span><span class="n">no_schema_binding</span><span class="p">,</span> +</span><span id="L-1164"><a href="#L-1164"><span class="linenos">1164</span></a> <span class="n">begin</span><span class="o">=</span><span class="n">begin</span><span class="p">,</span> +</span><span id="L-1165"><a href="#L-1165"><span class="linenos">1165</span></a> <span class="p">)</span> +</span><span id="L-1166"><a href="#L-1166"><span class="linenos">1166</span></a> +</span><span id="L-1167"><a href="#L-1167"><span class="linenos">1167</span></a> <span class="k">def</span> <span class="nf">_parse_property_before</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">Expression</span><span class="p">]:</span> +</span><span id="L-1168"><a href="#L-1168"><span class="linenos">1168</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-1169"><a href="#L-1169"><span class="linenos">1169</span></a> +</span><span id="L-1170"><a href="#L-1170"><span class="linenos">1170</span></a> <span class="c1"># parsers look to _prev for no/dual/default, so need to consume first</span> +</span><span id="L-1171"><a href="#L-1171"><span class="linenos">1171</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> +</span><span id="L-1172"><a href="#L-1172"><span class="linenos">1172</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DUAL"</span><span class="p">)</span> +</span><span id="L-1173"><a href="#L-1173"><span class="linenos">1173</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> </span><span id="L-1174"><a href="#L-1174"><span class="linenos">1174</span></a> -</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">):</span> -</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_sortkey</span><span class="p">(</span><span class="n">compound</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1175"><a href="#L-1175"><span class="linenos">1175</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()):</span> +</span><span id="L-1176"><a href="#L-1176"><span class="linenos">1176</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> </span><span id="L-1177"><a href="#L-1177"><span class="linenos">1177</span></a> -</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SQL"</span><span class="p">,</span> <span class="s2">"SECURITY"</span><span class="p">):</span> -</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</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">SqlSecurityProperty</span><span class="p">,</span> <span class="n">definer</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINER"</span><span class="p">))</span> -</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> -</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> <span class="n">assignment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> -</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span> -</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> <span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> -</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="k">if</span> <span class="n">assignment</span><span class="p">:</span> -</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> <span class="n">key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</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">EQ</span><span class="p">)</span> -</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</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">Property</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">())</span> +</span><span id="L-1178"><a href="#L-1178"><span class="linenos">1178</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1179"><a href="#L-1179"><span class="linenos">1179</span></a> +</span><span id="L-1180"><a href="#L-1180"><span class="linenos">1180</span></a> <span class="k">def</span> <span class="nf">_parse_property</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">Expression</span><span class="p">]:</span> +</span><span id="L-1181"><a href="#L-1181"><span class="linenos">1181</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">):</span> +</span><span id="L-1182"><a href="#L-1182"><span class="linenos">1182</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-1183"><a href="#L-1183"><span class="linenos">1183</span></a> +</span><span id="L-1184"><a href="#L-1184"><span class="linenos">1184</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHARACTER_SET</span><span class="p">):</span> +</span><span id="L-1185"><a href="#L-1185"><span class="linenos">1185</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_character_set</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1186"><a href="#L-1186"><span class="linenos">1186</span></a> +</span><span id="L-1187"><a href="#L-1187"><span class="linenos">1187</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">):</span> +</span><span id="L-1188"><a href="#L-1188"><span class="linenos">1188</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_sortkey</span><span class="p">(</span><span class="n">compound</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="L-1189"><a href="#L-1189"><span class="linenos">1189</span></a> -</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</span></a> -</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> <span class="k">def</span> <span class="nf">_parse_property_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> <span class="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">EQ</span><span class="p">)</span> -</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</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">ALIAS</span><span class="p">)</span> -</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</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><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> <span class="n">exp_class</span><span class="p">,</span> -</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> -</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="p">)</span> -</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</span></a> -</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</span></a> <span class="k">def</span> <span class="nf">_parse_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="kc">None</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">Expression</span><span class="p">]:</span> -</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> -</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="k">if</span> <span class="n">before</span><span class="p">:</span> -</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property_before</span><span class="p">()</span> -</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">()</span> -</span><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> -</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">identified_property</span><span class="p">:</span> -</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> <span class="k">break</span> -</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">identified_property</span><span class="p">):</span> -</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> -</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> -</span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</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">Properties</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">properties</span><span class="p">)</span> -</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> -</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a> -</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a> <span class="k">def</span> <span class="nf">_parse_fallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FALLBACK"</span><span class="p">)</span> -</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</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><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PROTECTION"</span><span class="p">)</span> -</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a> <span class="p">)</span> -</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a> -</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a> <span class="k">def</span> <span class="nf">_parse_with_property</span><span class="p">(</span> -</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="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 class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</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">WITH</span><span class="p">)</span> -</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> -</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> -</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">):</span> -</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withjournaltable</span><span class="p">()</span> -</span><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> -</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATA"</span><span class="p">):</span> -</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">):</span> -</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> -</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> -</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> -</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withisolatedloading</span><span class="p">()</span> -</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a> -</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-view.html</span> -</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a> <span class="k">def</span> <span class="nf">_parse_definer</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">Expression</span><span class="p">]:</span> -</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</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">EQ</span><span class="p">)</span> -</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a> -</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="n">user</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</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">PARAMETER</span><span class="p">)</span> -</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a> <span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="p">(</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">MOD</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a> -</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">user</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span> -</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a> -</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">@</span><span class="si">{</span><span class="n">host</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a> -</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="k">def</span> <span class="nf">_parse_withjournaltable</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</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">TABLE</span><span class="p">)</span> -</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</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">EQ</span><span class="p">)</span> -</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</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">WithJournalTableProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">())</span> -</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</span></a> -</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> <span class="k">def</span> <span class="nf">_parse_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOG"</span><span class="p">)</span> -</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</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">LogProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">)</span> -</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a> -</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> <span class="k">def</span> <span class="nf">_parse_journal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="n">before</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BEFORE"</span><span class="p">)</span> -</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">)</span> -</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</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">JournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="n">before</span><span class="p">)</span> -</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</span></a> -</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</span></a> <span class="k">def</span> <span class="nf">_parse_afterjournal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">)</span> -</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">)</span> -</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"JOURNAL"</span><span class="p">)</span> -</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</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">AfterJournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">)</span> -</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</span></a> -</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> <span class="k">def</span> <span class="nf">_parse_checksum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">)</span> -</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</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">EQ</span><span class="p">)</span> -</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a> -</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a> <span class="k">if</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">ON</span><span class="p">):</span> -</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFF"</span><span class="p">):</span> -</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a> <span class="n">default</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">DEFAULT</span><span class="p">)</span> -</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</span></a> -</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</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><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">,</span> -</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> -</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> -</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a> <span class="p">)</span> -</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a> -</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a> <span class="k">def</span> <span class="nf">_parse_freespace</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FREESPACE"</span><span class="p">)</span> -</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</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">EQ</span><span class="p">)</span> -</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</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><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> <span class="n">percent</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">PERCENT</span><span class="p">)</span> -</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a> <span class="p">)</span> -</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</span></a> -</span><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a> <span class="k">def</span> <span class="nf">_parse_mergeblockratio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MERGEBLOCKRATIO"</span><span class="p">)</span> -</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a> <span class="k">if</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">EQ</span><span class="p">):</span> -</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</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><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> -</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> -</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="n">percent</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">PERCENT</span><span class="p">),</span> -</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</span></a> <span class="p">)</span> -</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</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><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> -</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> -</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> -</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a> <span class="p">)</span> -</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a> -</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</span></a> <span class="k">def</span> <span class="nf">_parse_datablocksize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MIN"</span><span class="p">,</span> <span class="s2">"MINIMUM"</span><span class="p">)):</span> -</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MAX"</span><span class="p">,</span> <span class="s2">"MAXIMUM"</span><span class="p">)):</span> -</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a> -</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</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">EQ</span><span class="p">)</span> -</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> <span class="n">units</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"BYTES"</span><span class="p">,</span> <span class="s2">"KBYTES"</span><span class="p">,</span> <span class="s2">"KILOBYTES"</span><span class="p">)):</span> -</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="n">units</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">units</span><span class="p">)</span> -</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</span></a> -</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="k">def</span> <span class="nf">_parse_blockcompression</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BLOCKCOMPRESSION"</span><span class="p">)</span> -</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</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">EQ</span><span class="p">)</span> -</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a> <span class="n">always</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> -</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="n">manual</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MANUAL"</span><span class="p">)</span> -</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="n">never</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NEVER"</span><span class="p">)</span> -</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> -</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AUTOTEMP"</span><span class="p">):</span> -</span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> -</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</span></a> -</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</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><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">,</span> -</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a> <span class="n">always</span><span class="o">=</span><span class="n">always</span><span class="p">,</span> -</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</span></a> <span class="n">manual</span><span class="o">=</span><span class="n">manual</span><span class="p">,</span> -</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a> <span class="n">never</span><span class="o">=</span><span class="n">never</span><span class="p">,</span> -</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> -</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a> <span class="n">autotemp</span><span class="o">=</span><span class="n">autotemp</span><span class="p">,</span> -</span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</span></a> <span class="p">)</span> -</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a> -</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a> <span class="k">def</span> <span class="nf">_parse_withisolatedloading</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a> <span class="n">no</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> -</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONCURRENT"</span><span class="p">)</span> -</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ISOLATED"</span><span class="p">,</span> <span class="s2">"LOADING"</span><span class="p">)</span> -</span><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a> <span class="n">for_all</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ALL"</span><span class="p">)</span> -</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a> <span class="n">for_insert</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"INSERT"</span><span class="p">)</span> -</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a> <span class="n">for_none</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"NONE"</span><span class="p">)</span> -</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</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><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">,</span> -</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> -</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a> <span class="n">concurrent</span><span class="o">=</span><span class="n">concurrent</span><span class="p">,</span> -</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a> <span class="n">for_all</span><span class="o">=</span><span class="n">for_all</span><span class="p">,</span> -</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a> <span class="n">for_insert</span><span class="o">=</span><span class="n">for_insert</span><span class="p">,</span> -</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> <span class="n">for_none</span><span class="o">=</span><span class="n">for_none</span><span class="p">,</span> -</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="p">)</span> -</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> -</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="k">def</span> <span class="nf">_parse_locking</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="k">if</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">TABLE</span><span class="p">):</span> -</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLE"</span> -</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</span></a> <span class="k">elif</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">VIEW</span><span class="p">):</span> -</span><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"VIEW"</span> -</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="k">elif</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">ROW</span><span class="p">):</span> -</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"ROW"</span> -</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">):</span> -</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"DATABASE"</span> -</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1190"><a href="#L-1190"><span class="linenos">1190</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SQL"</span><span class="p">,</span> <span class="s2">"SECURITY"</span><span class="p">):</span> +</span><span id="L-1191"><a href="#L-1191"><span class="linenos">1191</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">SqlSecurityProperty</span><span class="p">,</span> <span class="n">definer</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINER"</span><span class="p">))</span> +</span><span id="L-1192"><a href="#L-1192"><span class="linenos">1192</span></a> +</span><span id="L-1193"><a href="#L-1193"><span class="linenos">1193</span></a> <span class="n">assignment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> +</span><span id="L-1194"><a href="#L-1194"><span class="linenos">1194</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span> +</span><span id="L-1195"><a href="#L-1195"><span class="linenos">1195</span></a> <span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1196"><a href="#L-1196"><span class="linenos">1196</span></a> +</span><span id="L-1197"><a href="#L-1197"><span class="linenos">1197</span></a> <span class="k">if</span> <span class="n">assignment</span><span class="p">:</span> +</span><span id="L-1198"><a href="#L-1198"><span class="linenos">1198</span></a> <span class="n">key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="L-1199"><a href="#L-1199"><span class="linenos">1199</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">EQ</span><span class="p">)</span> +</span><span id="L-1200"><a href="#L-1200"><span class="linenos">1200</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">Property</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">())</span> +</span><span id="L-1201"><a href="#L-1201"><span class="linenos">1201</span></a> +</span><span id="L-1202"><a href="#L-1202"><span class="linenos">1202</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1203"><a href="#L-1203"><span class="linenos">1203</span></a> +</span><span id="L-1204"><a href="#L-1204"><span class="linenos">1204</span></a> <span class="k">def</span> <span class="nf">_parse_property_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1205"><a href="#L-1205"><span class="linenos">1205</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">EQ</span><span class="p">)</span> +</span><span id="L-1206"><a href="#L-1206"><span class="linenos">1206</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">ALIAS</span><span class="p">)</span> +</span><span id="L-1207"><a href="#L-1207"><span class="linenos">1207</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><span id="L-1208"><a href="#L-1208"><span class="linenos">1208</span></a> <span class="n">exp_class</span><span class="p">,</span> +</span><span id="L-1209"><a href="#L-1209"><span class="linenos">1209</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> +</span><span id="L-1210"><a href="#L-1210"><span class="linenos">1210</span></a> <span class="p">)</span> +</span><span id="L-1211"><a href="#L-1211"><span class="linenos">1211</span></a> +</span><span id="L-1212"><a href="#L-1212"><span class="linenos">1212</span></a> <span class="k">def</span> <span class="nf">_parse_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="kc">None</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">Expression</span><span class="p">]:</span> +</span><span id="L-1213"><a href="#L-1213"><span class="linenos">1213</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1214"><a href="#L-1214"><span class="linenos">1214</span></a> +</span><span id="L-1215"><a href="#L-1215"><span class="linenos">1215</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1216"><a href="#L-1216"><span class="linenos">1216</span></a> <span class="k">if</span> <span class="n">before</span><span class="p">:</span> +</span><span id="L-1217"><a href="#L-1217"><span class="linenos">1217</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property_before</span><span class="p">()</span> +</span><span id="L-1218"><a href="#L-1218"><span class="linenos">1218</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1219"><a href="#L-1219"><span class="linenos">1219</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">()</span> +</span><span id="L-1220"><a href="#L-1220"><span class="linenos">1220</span></a> +</span><span id="L-1221"><a href="#L-1221"><span class="linenos">1221</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">identified_property</span><span class="p">:</span> +</span><span id="L-1222"><a href="#L-1222"><span class="linenos">1222</span></a> <span class="k">break</span> +</span><span id="L-1223"><a href="#L-1223"><span class="linenos">1223</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">identified_property</span><span class="p">):</span> +</span><span id="L-1224"><a href="#L-1224"><span class="linenos">1224</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="L-1225"><a href="#L-1225"><span class="linenos">1225</span></a> +</span><span id="L-1226"><a href="#L-1226"><span class="linenos">1226</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> +</span><span id="L-1227"><a href="#L-1227"><span class="linenos">1227</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">Properties</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">properties</span><span class="p">)</span> +</span><span id="L-1228"><a href="#L-1228"><span class="linenos">1228</span></a> +</span><span id="L-1229"><a href="#L-1229"><span class="linenos">1229</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1230"><a href="#L-1230"><span class="linenos">1230</span></a> +</span><span id="L-1231"><a href="#L-1231"><span class="linenos">1231</span></a> <span class="k">def</span> <span class="nf">_parse_fallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1232"><a href="#L-1232"><span class="linenos">1232</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FALLBACK"</span><span class="p">)</span> +</span><span id="L-1233"><a href="#L-1233"><span class="linenos">1233</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><span id="L-1234"><a href="#L-1234"><span class="linenos">1234</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PROTECTION"</span><span class="p">)</span> +</span><span id="L-1235"><a href="#L-1235"><span class="linenos">1235</span></a> <span class="p">)</span> +</span><span id="L-1236"><a href="#L-1236"><span class="linenos">1236</span></a> +</span><span id="L-1237"><a href="#L-1237"><span class="linenos">1237</span></a> <span class="k">def</span> <span class="nf">_parse_with_property</span><span class="p">(</span> +</span><span id="L-1238"><a href="#L-1238"><span class="linenos">1238</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-1239"><a href="#L-1239"><span class="linenos">1239</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="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 class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="L-1240"><a href="#L-1240"><span class="linenos">1240</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">WITH</span><span class="p">)</span> +</span><span id="L-1241"><a href="#L-1241"><span class="linenos">1241</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-1242"><a href="#L-1242"><span class="linenos">1242</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> +</span><span id="L-1243"><a href="#L-1243"><span class="linenos">1243</span></a> +</span><span id="L-1244"><a href="#L-1244"><span class="linenos">1244</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">):</span> +</span><span id="L-1245"><a href="#L-1245"><span class="linenos">1245</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withjournaltable</span><span class="p">()</span> +</span><span id="L-1246"><a href="#L-1246"><span class="linenos">1246</span></a> +</span><span id="L-1247"><a href="#L-1247"><span class="linenos">1247</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATA"</span><span class="p">):</span> +</span><span id="L-1248"><a href="#L-1248"><span class="linenos">1248</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1249"><a href="#L-1249"><span class="linenos">1249</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">):</span> +</span><span id="L-1250"><a href="#L-1250"><span class="linenos">1250</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1251"><a href="#L-1251"><span class="linenos">1251</span></a> +</span><span id="L-1252"><a href="#L-1252"><span class="linenos">1252</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> +</span><span id="L-1253"><a href="#L-1253"><span class="linenos">1253</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1254"><a href="#L-1254"><span class="linenos">1254</span></a> +</span><span id="L-1255"><a href="#L-1255"><span class="linenos">1255</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withisolatedloading</span><span class="p">()</span> +</span><span id="L-1256"><a href="#L-1256"><span class="linenos">1256</span></a> +</span><span id="L-1257"><a href="#L-1257"><span class="linenos">1257</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-view.html</span> +</span><span id="L-1258"><a href="#L-1258"><span class="linenos">1258</span></a> <span class="k">def</span> <span class="nf">_parse_definer</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">Expression</span><span class="p">]:</span> +</span><span id="L-1259"><a href="#L-1259"><span class="linenos">1259</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">EQ</span><span class="p">)</span> +</span><span id="L-1260"><a href="#L-1260"><span class="linenos">1260</span></a> +</span><span id="L-1261"><a href="#L-1261"><span class="linenos">1261</span></a> <span class="n">user</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-1262"><a href="#L-1262"><span class="linenos">1262</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">PARAMETER</span><span class="p">)</span> +</span><span id="L-1263"><a href="#L-1263"><span class="linenos">1263</span></a> <span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="p">(</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">MOD</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-1264"><a href="#L-1264"><span class="linenos">1264</span></a> +</span><span id="L-1265"><a href="#L-1265"><span class="linenos">1265</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">user</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span> +</span><span id="L-1266"><a href="#L-1266"><span class="linenos">1266</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1267"><a href="#L-1267"><span class="linenos">1267</span></a> +</span><span id="L-1268"><a href="#L-1268"><span class="linenos">1268</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">@</span><span class="si">{</span><span class="n">host</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1269"><a href="#L-1269"><span class="linenos">1269</span></a> +</span><span id="L-1270"><a href="#L-1270"><span class="linenos">1270</span></a> <span class="k">def</span> <span class="nf">_parse_withjournaltable</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1271"><a href="#L-1271"><span class="linenos">1271</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">TABLE</span><span class="p">)</span> +</span><span id="L-1272"><a href="#L-1272"><span class="linenos">1272</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">EQ</span><span class="p">)</span> +</span><span id="L-1273"><a href="#L-1273"><span class="linenos">1273</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">WithJournalTableProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">())</span> +</span><span id="L-1274"><a href="#L-1274"><span class="linenos">1274</span></a> +</span><span id="L-1275"><a href="#L-1275"><span class="linenos">1275</span></a> <span class="k">def</span> <span class="nf">_parse_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1276"><a href="#L-1276"><span class="linenos">1276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOG"</span><span class="p">)</span> +</span><span id="L-1277"><a href="#L-1277"><span class="linenos">1277</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">LogProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">)</span> +</span><span id="L-1278"><a href="#L-1278"><span class="linenos">1278</span></a> +</span><span id="L-1279"><a href="#L-1279"><span class="linenos">1279</span></a> <span class="k">def</span> <span class="nf">_parse_journal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1280"><a href="#L-1280"><span class="linenos">1280</span></a> <span class="n">before</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BEFORE"</span><span class="p">)</span> +</span><span id="L-1281"><a href="#L-1281"><span class="linenos">1281</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">)</span> +</span><span id="L-1282"><a href="#L-1282"><span class="linenos">1282</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">JournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="n">before</span><span class="p">)</span> +</span><span id="L-1283"><a href="#L-1283"><span class="linenos">1283</span></a> +</span><span id="L-1284"><a href="#L-1284"><span class="linenos">1284</span></a> <span class="k">def</span> <span class="nf">_parse_afterjournal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1285"><a href="#L-1285"><span class="linenos">1285</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">)</span> +</span><span id="L-1286"><a href="#L-1286"><span class="linenos">1286</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">)</span> +</span><span id="L-1287"><a href="#L-1287"><span class="linenos">1287</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"JOURNAL"</span><span class="p">)</span> +</span><span id="L-1288"><a href="#L-1288"><span class="linenos">1288</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">AfterJournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">)</span> +</span><span id="L-1289"><a href="#L-1289"><span class="linenos">1289</span></a> +</span><span id="L-1290"><a href="#L-1290"><span class="linenos">1290</span></a> <span class="k">def</span> <span class="nf">_parse_checksum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1291"><a href="#L-1291"><span class="linenos">1291</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">)</span> +</span><span id="L-1292"><a href="#L-1292"><span class="linenos">1292</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">EQ</span><span class="p">)</span> +</span><span id="L-1293"><a href="#L-1293"><span class="linenos">1293</span></a> +</span><span id="L-1294"><a href="#L-1294"><span class="linenos">1294</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1295"><a href="#L-1295"><span class="linenos">1295</span></a> <span class="k">if</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">ON</span><span class="p">):</span> +</span><span id="L-1296"><a href="#L-1296"><span class="linenos">1296</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-1297"><a href="#L-1297"><span class="linenos">1297</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFF"</span><span class="p">):</span> +</span><span id="L-1298"><a href="#L-1298"><span class="linenos">1298</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-1299"><a href="#L-1299"><span class="linenos">1299</span></a> <span class="n">default</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">DEFAULT</span><span class="p">)</span> +</span><span id="L-1300"><a href="#L-1300"><span class="linenos">1300</span></a> +</span><span id="L-1301"><a href="#L-1301"><span class="linenos">1301</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><span id="L-1302"><a href="#L-1302"><span class="linenos">1302</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">,</span> +</span><span id="L-1303"><a href="#L-1303"><span class="linenos">1303</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> +</span><span id="L-1304"><a href="#L-1304"><span class="linenos">1304</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> +</span><span id="L-1305"><a href="#L-1305"><span class="linenos">1305</span></a> <span class="p">)</span> +</span><span id="L-1306"><a href="#L-1306"><span class="linenos">1306</span></a> +</span><span id="L-1307"><a href="#L-1307"><span class="linenos">1307</span></a> <span class="k">def</span> <span class="nf">_parse_freespace</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1308"><a href="#L-1308"><span class="linenos">1308</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FREESPACE"</span><span class="p">)</span> +</span><span id="L-1309"><a href="#L-1309"><span class="linenos">1309</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">EQ</span><span class="p">)</span> +</span><span id="L-1310"><a href="#L-1310"><span class="linenos">1310</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><span id="L-1311"><a href="#L-1311"><span class="linenos">1311</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> <span class="n">percent</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">PERCENT</span><span class="p">)</span> +</span><span id="L-1312"><a href="#L-1312"><span class="linenos">1312</span></a> <span class="p">)</span> +</span><span id="L-1313"><a href="#L-1313"><span class="linenos">1313</span></a> +</span><span id="L-1314"><a href="#L-1314"><span class="linenos">1314</span></a> <span class="k">def</span> <span class="nf">_parse_mergeblockratio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1315"><a href="#L-1315"><span class="linenos">1315</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MERGEBLOCKRATIO"</span><span class="p">)</span> +</span><span id="L-1316"><a href="#L-1316"><span class="linenos">1316</span></a> <span class="k">if</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">EQ</span><span class="p">):</span> +</span><span id="L-1317"><a href="#L-1317"><span class="linenos">1317</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><span id="L-1318"><a href="#L-1318"><span class="linenos">1318</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> +</span><span id="L-1319"><a href="#L-1319"><span class="linenos">1319</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> +</span><span id="L-1320"><a href="#L-1320"><span class="linenos">1320</span></a> <span class="n">percent</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">PERCENT</span><span class="p">),</span> +</span><span id="L-1321"><a href="#L-1321"><span class="linenos">1321</span></a> <span class="p">)</span> +</span><span id="L-1322"><a href="#L-1322"><span class="linenos">1322</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1323"><a href="#L-1323"><span class="linenos">1323</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><span id="L-1324"><a href="#L-1324"><span class="linenos">1324</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> +</span><span id="L-1325"><a href="#L-1325"><span class="linenos">1325</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> +</span><span id="L-1326"><a href="#L-1326"><span class="linenos">1326</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> +</span><span id="L-1327"><a href="#L-1327"><span class="linenos">1327</span></a> <span class="p">)</span> +</span><span id="L-1328"><a href="#L-1328"><span class="linenos">1328</span></a> +</span><span id="L-1329"><a href="#L-1329"><span class="linenos">1329</span></a> <span class="k">def</span> <span class="nf">_parse_datablocksize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1330"><a href="#L-1330"><span class="linenos">1330</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="L-1331"><a href="#L-1331"><span class="linenos">1331</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="L-1332"><a href="#L-1332"><span class="linenos">1332</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1333"><a href="#L-1333"><span class="linenos">1333</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MIN"</span><span class="p">,</span> <span class="s2">"MINIMUM"</span><span class="p">)):</span> +</span><span id="L-1334"><a href="#L-1334"><span class="linenos">1334</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="L-1335"><a href="#L-1335"><span class="linenos">1335</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1336"><a href="#L-1336"><span class="linenos">1336</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MAX"</span><span class="p">,</span> <span class="s2">"MAXIMUM"</span><span class="p">)):</span> +</span><span id="L-1337"><a href="#L-1337"><span class="linenos">1337</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="L-1338"><a href="#L-1338"><span class="linenos">1338</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1339"><a href="#L-1339"><span class="linenos">1339</span></a> +</span><span id="L-1340"><a href="#L-1340"><span class="linenos">1340</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="L-1341"><a href="#L-1341"><span class="linenos">1341</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">)</span> +</span><span id="L-1342"><a href="#L-1342"><span class="linenos">1342</span></a> <span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-1343"><a href="#L-1343"><span class="linenos">1343</span></a> <span class="n">units</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1344"><a href="#L-1344"><span class="linenos">1344</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"BYTES"</span><span class="p">,</span> <span class="s2">"KBYTES"</span><span class="p">,</span> <span class="s2">"KILOBYTES"</span><span class="p">)):</span> +</span><span id="L-1345"><a href="#L-1345"><span class="linenos">1345</span></a> <span class="n">units</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-1346"><a href="#L-1346"><span class="linenos">1346</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">units</span><span class="p">)</span> +</span><span id="L-1347"><a href="#L-1347"><span class="linenos">1347</span></a> +</span><span id="L-1348"><a href="#L-1348"><span class="linenos">1348</span></a> <span class="k">def</span> <span class="nf">_parse_blockcompression</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1349"><a href="#L-1349"><span class="linenos">1349</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BLOCKCOMPRESSION"</span><span class="p">)</span> +</span><span id="L-1350"><a href="#L-1350"><span class="linenos">1350</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">EQ</span><span class="p">)</span> +</span><span id="L-1351"><a href="#L-1351"><span class="linenos">1351</span></a> <span class="n">always</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> +</span><span id="L-1352"><a href="#L-1352"><span class="linenos">1352</span></a> <span class="n">manual</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MANUAL"</span><span class="p">)</span> +</span><span id="L-1353"><a href="#L-1353"><span class="linenos">1353</span></a> <span class="n">never</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NEVER"</span><span class="p">)</span> +</span><span id="L-1354"><a href="#L-1354"><span class="linenos">1354</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> +</span><span id="L-1355"><a href="#L-1355"><span class="linenos">1355</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1356"><a href="#L-1356"><span class="linenos">1356</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AUTOTEMP"</span><span class="p">):</span> +</span><span id="L-1357"><a href="#L-1357"><span class="linenos">1357</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> +</span><span id="L-1358"><a href="#L-1358"><span class="linenos">1358</span></a> +</span><span id="L-1359"><a href="#L-1359"><span class="linenos">1359</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><span id="L-1360"><a href="#L-1360"><span class="linenos">1360</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">,</span> +</span><span id="L-1361"><a href="#L-1361"><span class="linenos">1361</span></a> <span class="n">always</span><span class="o">=</span><span class="n">always</span><span class="p">,</span> +</span><span id="L-1362"><a href="#L-1362"><span class="linenos">1362</span></a> <span class="n">manual</span><span class="o">=</span><span class="n">manual</span><span class="p">,</span> +</span><span id="L-1363"><a href="#L-1363"><span class="linenos">1363</span></a> <span class="n">never</span><span class="o">=</span><span class="n">never</span><span class="p">,</span> +</span><span id="L-1364"><a href="#L-1364"><span class="linenos">1364</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> +</span><span id="L-1365"><a href="#L-1365"><span class="linenos">1365</span></a> <span class="n">autotemp</span><span class="o">=</span><span class="n">autotemp</span><span class="p">,</span> +</span><span id="L-1366"><a href="#L-1366"><span class="linenos">1366</span></a> <span class="p">)</span> +</span><span id="L-1367"><a href="#L-1367"><span class="linenos">1367</span></a> +</span><span id="L-1368"><a href="#L-1368"><span class="linenos">1368</span></a> <span class="k">def</span> <span class="nf">_parse_withisolatedloading</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1369"><a href="#L-1369"><span class="linenos">1369</span></a> <span class="n">no</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> +</span><span id="L-1370"><a href="#L-1370"><span class="linenos">1370</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONCURRENT"</span><span class="p">)</span> +</span><span id="L-1371"><a href="#L-1371"><span class="linenos">1371</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ISOLATED"</span><span class="p">,</span> <span class="s2">"LOADING"</span><span class="p">)</span> +</span><span id="L-1372"><a href="#L-1372"><span class="linenos">1372</span></a> <span class="n">for_all</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ALL"</span><span class="p">)</span> +</span><span id="L-1373"><a href="#L-1373"><span class="linenos">1373</span></a> <span class="n">for_insert</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"INSERT"</span><span class="p">)</span> +</span><span id="L-1374"><a href="#L-1374"><span class="linenos">1374</span></a> <span class="n">for_none</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"NONE"</span><span class="p">)</span> +</span><span id="L-1375"><a href="#L-1375"><span class="linenos">1375</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><span id="L-1376"><a href="#L-1376"><span class="linenos">1376</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">,</span> +</span><span id="L-1377"><a href="#L-1377"><span class="linenos">1377</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> +</span><span id="L-1378"><a href="#L-1378"><span class="linenos">1378</span></a> <span class="n">concurrent</span><span class="o">=</span><span class="n">concurrent</span><span class="p">,</span> +</span><span id="L-1379"><a href="#L-1379"><span class="linenos">1379</span></a> <span class="n">for_all</span><span class="o">=</span><span class="n">for_all</span><span class="p">,</span> +</span><span id="L-1380"><a href="#L-1380"><span class="linenos">1380</span></a> <span class="n">for_insert</span><span class="o">=</span><span class="n">for_insert</span><span class="p">,</span> +</span><span id="L-1381"><a href="#L-1381"><span class="linenos">1381</span></a> <span class="n">for_none</span><span class="o">=</span><span class="n">for_none</span><span class="p">,</span> +</span><span id="L-1382"><a href="#L-1382"><span class="linenos">1382</span></a> <span class="p">)</span> </span><span id="L-1383"><a href="#L-1383"><span class="linenos">1383</span></a> -</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">):</span> -</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">()</span> -</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a> -</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> -</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"FOR"</span> -</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="k">elif</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">IN</span><span class="p">):</span> -</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"IN"</span> +</span><span id="L-1384"><a href="#L-1384"><span class="linenos">1384</span></a> <span class="k">def</span> <span class="nf">_parse_locking</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1385"><a href="#L-1385"><span class="linenos">1385</span></a> <span class="k">if</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">TABLE</span><span class="p">):</span> +</span><span id="L-1386"><a href="#L-1386"><span class="linenos">1386</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLE"</span> +</span><span id="L-1387"><a href="#L-1387"><span class="linenos">1387</span></a> <span class="k">elif</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">VIEW</span><span class="p">):</span> +</span><span id="L-1388"><a href="#L-1388"><span class="linenos">1388</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"VIEW"</span> +</span><span id="L-1389"><a href="#L-1389"><span class="linenos">1389</span></a> <span class="k">elif</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">ROW</span><span class="p">):</span> +</span><span id="L-1390"><a href="#L-1390"><span class="linenos">1390</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"ROW"</span> +</span><span id="L-1391"><a href="#L-1391"><span class="linenos">1391</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">):</span> +</span><span id="L-1392"><a href="#L-1392"><span class="linenos">1392</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"DATABASE"</span> </span><span id="L-1393"><a href="#L-1393"><span class="linenos">1393</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1394"><a href="#L-1394"><span class="linenos">1394</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-1395"><a href="#L-1395"><span class="linenos">1395</span></a> -</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ACCESS"</span><span class="p">):</span> -</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"ACCESS"</span> -</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"EXCL"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">)):</span> -</span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"EXCLUSIVE"</span> -</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHARE"</span><span class="p">):</span> -</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"SHARE"</span> -</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"READ"</span><span class="p">):</span> -</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"READ"</span> -</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WRITE"</span><span class="p">):</span> -</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"WRITE"</span> -</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">):</span> -</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"CHECKSUM"</span> -</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> -</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> <span class="n">override</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OVERRIDE"</span><span class="p">)</span> -</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> -</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</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><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">,</span> -</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">for_or_in</span><span class="o">=</span><span class="n">for_or_in</span><span class="p">,</span> -</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> <span class="n">lock_type</span><span class="o">=</span><span class="n">lock_type</span><span class="p">,</span> -</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="n">override</span><span class="o">=</span><span class="n">override</span><span class="p">,</span> -</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="p">)</span> -</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> -</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> <span class="k">def</span> <span class="nf">_parse_partition_by</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">):</span> -</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a> -</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a> <span class="k">def</span> <span class="nf">_parse_partitioned_by</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</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">EQ</span><span class="p">)</span> -</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</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><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">,</span> -</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()),</span> +</span><span id="L-1396"><a href="#L-1396"><span class="linenos">1396</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">):</span> +</span><span id="L-1397"><a href="#L-1397"><span class="linenos">1397</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">()</span> +</span><span id="L-1398"><a href="#L-1398"><span class="linenos">1398</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1399"><a href="#L-1399"><span class="linenos">1399</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1400"><a href="#L-1400"><span class="linenos">1400</span></a> +</span><span id="L-1401"><a href="#L-1401"><span class="linenos">1401</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> +</span><span id="L-1402"><a href="#L-1402"><span class="linenos">1402</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"FOR"</span> +</span><span id="L-1403"><a href="#L-1403"><span class="linenos">1403</span></a> <span class="k">elif</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">IN</span><span class="p">):</span> +</span><span id="L-1404"><a href="#L-1404"><span class="linenos">1404</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"IN"</span> +</span><span id="L-1405"><a href="#L-1405"><span class="linenos">1405</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1406"><a href="#L-1406"><span class="linenos">1406</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1407"><a href="#L-1407"><span class="linenos">1407</span></a> +</span><span id="L-1408"><a href="#L-1408"><span class="linenos">1408</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ACCESS"</span><span class="p">):</span> +</span><span id="L-1409"><a href="#L-1409"><span class="linenos">1409</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"ACCESS"</span> +</span><span id="L-1410"><a href="#L-1410"><span class="linenos">1410</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"EXCL"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">)):</span> +</span><span id="L-1411"><a href="#L-1411"><span class="linenos">1411</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"EXCLUSIVE"</span> +</span><span id="L-1412"><a href="#L-1412"><span class="linenos">1412</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHARE"</span><span class="p">):</span> +</span><span id="L-1413"><a href="#L-1413"><span class="linenos">1413</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"SHARE"</span> +</span><span id="L-1414"><a href="#L-1414"><span class="linenos">1414</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"READ"</span><span class="p">):</span> +</span><span id="L-1415"><a href="#L-1415"><span class="linenos">1415</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"READ"</span> +</span><span id="L-1416"><a href="#L-1416"><span class="linenos">1416</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WRITE"</span><span class="p">):</span> +</span><span id="L-1417"><a href="#L-1417"><span class="linenos">1417</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"WRITE"</span> +</span><span id="L-1418"><a href="#L-1418"><span class="linenos">1418</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">):</span> +</span><span id="L-1419"><a href="#L-1419"><span class="linenos">1419</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"CHECKSUM"</span> +</span><span id="L-1420"><a href="#L-1420"><span class="linenos">1420</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1421"><a href="#L-1421"><span class="linenos">1421</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1422"><a href="#L-1422"><span class="linenos">1422</span></a> +</span><span id="L-1423"><a href="#L-1423"><span class="linenos">1423</span></a> <span class="n">override</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OVERRIDE"</span><span class="p">)</span> +</span><span id="L-1424"><a href="#L-1424"><span class="linenos">1424</span></a> +</span><span id="L-1425"><a href="#L-1425"><span class="linenos">1425</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><span id="L-1426"><a href="#L-1426"><span class="linenos">1426</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">,</span> +</span><span id="L-1427"><a href="#L-1427"><span class="linenos">1427</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1428"><a href="#L-1428"><span class="linenos">1428</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-1429"><a href="#L-1429"><span class="linenos">1429</span></a> <span class="n">for_or_in</span><span class="o">=</span><span class="n">for_or_in</span><span class="p">,</span> +</span><span id="L-1430"><a href="#L-1430"><span class="linenos">1430</span></a> <span class="n">lock_type</span><span class="o">=</span><span class="n">lock_type</span><span class="p">,</span> +</span><span id="L-1431"><a href="#L-1431"><span class="linenos">1431</span></a> <span class="n">override</span><span class="o">=</span><span class="n">override</span><span class="p">,</span> </span><span id="L-1432"><a href="#L-1432"><span class="linenos">1432</span></a> <span class="p">)</span> </span><span id="L-1433"><a href="#L-1433"><span class="linenos">1433</span></a> -</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a> <span class="k">def</span> <span class="nf">_parse_withdata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> -</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> -</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</span></a> -</span><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</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">WithDataProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">statistics</span><span class="o">=</span><span class="n">statistics</span><span class="p">)</span> -</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> -</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> <span class="k">def</span> <span class="nf">_parse_noprimaryindex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">)</span> -</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">()</span> -</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> -</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a> <span class="k">def</span> <span class="nf">_parse_oncommit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COMMIT"</span><span class="p">,</span> <span class="s2">"PRESERVE"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">)</span> -</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">()</span> -</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> -</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a> <span class="k">def</span> <span class="nf">_parse_distkey</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</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">DistKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">))</span> -</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a> -</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> <span class="k">def</span> <span class="nf">_parse_create_like</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">Expression</span><span class="p">]:</span> -</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"INCLUDING"</span><span class="p">,</span> <span class="s2">"EXCLUDING"</span><span class="p">)):</span> -</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a> <span class="n">id_var</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> -</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">id_var</span><span class="p">:</span> -</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a> -</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">,</span> -</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="n">value</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="n">this</span><span class="o">=</span><span class="n">id_var</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()),</span> -</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a> <span class="p">)</span> -</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a> <span class="p">)</span> -</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</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">LikeProperty</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">expressions</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> +</span><span id="L-1434"><a href="#L-1434"><span class="linenos">1434</span></a> <span class="k">def</span> <span class="nf">_parse_partition_by</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="L-1435"><a href="#L-1435"><span class="linenos">1435</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">):</span> +</span><span id="L-1436"><a href="#L-1436"><span class="linenos">1436</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-1437"><a href="#L-1437"><span class="linenos">1437</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="L-1438"><a href="#L-1438"><span class="linenos">1438</span></a> +</span><span id="L-1439"><a href="#L-1439"><span class="linenos">1439</span></a> <span class="k">def</span> <span class="nf">_parse_partitioned_by</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1440"><a href="#L-1440"><span class="linenos">1440</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">EQ</span><span class="p">)</span> +</span><span id="L-1441"><a href="#L-1441"><span class="linenos">1441</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><span id="L-1442"><a href="#L-1442"><span class="linenos">1442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">,</span> +</span><span id="L-1443"><a href="#L-1443"><span class="linenos">1443</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()),</span> +</span><span id="L-1444"><a href="#L-1444"><span class="linenos">1444</span></a> <span class="p">)</span> +</span><span id="L-1445"><a href="#L-1445"><span class="linenos">1445</span></a> +</span><span id="L-1446"><a href="#L-1446"><span class="linenos">1446</span></a> <span class="k">def</span> <span class="nf">_parse_withdata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1447"><a href="#L-1447"><span class="linenos">1447</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> +</span><span id="L-1448"><a href="#L-1448"><span class="linenos">1448</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-1449"><a href="#L-1449"><span class="linenos">1449</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> +</span><span id="L-1450"><a href="#L-1450"><span class="linenos">1450</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-1451"><a href="#L-1451"><span class="linenos">1451</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1452"><a href="#L-1452"><span class="linenos">1452</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1453"><a href="#L-1453"><span class="linenos">1453</span></a> +</span><span id="L-1454"><a href="#L-1454"><span class="linenos">1454</span></a> <span class="k">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">WithDataProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">statistics</span><span class="o">=</span><span class="n">statistics</span><span class="p">)</span> +</span><span id="L-1455"><a href="#L-1455"><span class="linenos">1455</span></a> +</span><span id="L-1456"><a href="#L-1456"><span class="linenos">1456</span></a> <span class="k">def</span> <span class="nf">_parse_noprimaryindex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1457"><a href="#L-1457"><span class="linenos">1457</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">)</span> +</span><span id="L-1458"><a href="#L-1458"><span class="linenos">1458</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">()</span> +</span><span id="L-1459"><a href="#L-1459"><span class="linenos">1459</span></a> +</span><span id="L-1460"><a href="#L-1460"><span class="linenos">1460</span></a> <span class="k">def</span> <span class="nf">_parse_oncommit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1461"><a href="#L-1461"><span class="linenos">1461</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COMMIT"</span><span class="p">,</span> <span class="s2">"PRESERVE"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">)</span> +</span><span id="L-1462"><a href="#L-1462"><span class="linenos">1462</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">()</span> +</span><span id="L-1463"><a href="#L-1463"><span class="linenos">1463</span></a> +</span><span id="L-1464"><a href="#L-1464"><span class="linenos">1464</span></a> <span class="k">def</span> <span class="nf">_parse_distkey</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1465"><a href="#L-1465"><span class="linenos">1465</span></a> <span class="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">DistKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">))</span> +</span><span id="L-1466"><a href="#L-1466"><span class="linenos">1466</span></a> +</span><span id="L-1467"><a href="#L-1467"><span class="linenos">1467</span></a> <span class="k">def</span> <span class="nf">_parse_create_like</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">Expression</span><span class="p">]:</span> +</span><span id="L-1468"><a href="#L-1468"><span class="linenos">1468</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1469"><a href="#L-1469"><span class="linenos">1469</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1470"><a href="#L-1470"><span class="linenos">1470</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"INCLUDING"</span><span class="p">,</span> <span class="s2">"EXCLUDING"</span><span class="p">)):</span> +</span><span id="L-1471"><a href="#L-1471"><span class="linenos">1471</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-1472"><a href="#L-1472"><span class="linenos">1472</span></a> <span class="n">id_var</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="L-1473"><a href="#L-1473"><span class="linenos">1473</span></a> -</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a> <span class="k">def</span> <span class="nf">_parse_sortkey</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">compound</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">),</span> <span class="n">compound</span><span class="o">=</span><span class="n">compound</span> -</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="p">)</span> -</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</span></a> -</span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="k">def</span> <span class="nf">_parse_character_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</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">EQ</span><span class="p">)</span> -</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</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><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span> -</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="p">)</span> -</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</span></a> -</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="n">is_table</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">TABLE</span><span class="p">)</span> -</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a> -</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="k">if</span> <span class="n">is_table</span><span class="p">:</span> -</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a> <span class="k">if</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">LT</span><span class="p">):</span> -</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">,</span> -</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</span></a> <span class="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">,</span> -</span><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">),</span> -</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a> <span class="p">)</span> -</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> -</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> -</span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</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="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">))</span> -</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> <span class="n">value</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-1502"><a href="#L-1502"><span class="linenos">1502</span></a> -</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a> <span 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">ReturnsProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">,</span> <span class="n">is_table</span><span class="o">=</span><span class="n">is_table</span><span class="p">)</span> -</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a> -</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="k">def</span> <span class="nf">_parse_temporary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</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">TEMPORARY</span><span class="p">)</span> <span class="c1"># in case calling from "GLOBAL"</span> -</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</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">TemporaryProperty</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="n">global_</span><span class="p">)</span> -</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> -</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="k">def</span> <span class="nf">_parse_describe</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> -</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</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">Describe</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="L-1474"><a href="#L-1474"><span class="linenos">1474</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">id_var</span><span class="p">:</span> +</span><span id="L-1475"><a href="#L-1475"><span class="linenos">1475</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1476"><a href="#L-1476"><span class="linenos">1476</span></a> +</span><span id="L-1477"><a href="#L-1477"><span class="linenos">1477</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="L-1478"><a href="#L-1478"><span class="linenos">1478</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1479"><a href="#L-1479"><span class="linenos">1479</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">,</span> +</span><span id="L-1480"><a href="#L-1480"><span class="linenos">1480</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1481"><a href="#L-1481"><span class="linenos">1481</span></a> <span class="n">value</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="n">this</span><span class="o">=</span><span class="n">id_var</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()),</span> +</span><span id="L-1482"><a href="#L-1482"><span class="linenos">1482</span></a> <span class="p">)</span> +</span><span id="L-1483"><a href="#L-1483"><span class="linenos">1483</span></a> <span class="p">)</span> +</span><span id="L-1484"><a href="#L-1484"><span class="linenos">1484</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">LikeProperty</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">expressions</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> +</span><span id="L-1485"><a href="#L-1485"><span class="linenos">1485</span></a> +</span><span id="L-1486"><a href="#L-1486"><span class="linenos">1486</span></a> <span class="k">def</span> <span class="nf">_parse_sortkey</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">compound</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1487"><a href="#L-1487"><span class="linenos">1487</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1488"><a href="#L-1488"><span class="linenos">1488</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">),</span> <span class="n">compound</span><span class="o">=</span><span class="n">compound</span> +</span><span id="L-1489"><a href="#L-1489"><span class="linenos">1489</span></a> <span class="p">)</span> +</span><span id="L-1490"><a href="#L-1490"><span class="linenos">1490</span></a> +</span><span id="L-1491"><a href="#L-1491"><span class="linenos">1491</span></a> <span class="k">def</span> <span class="nf">_parse_character_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1492"><a href="#L-1492"><span class="linenos">1492</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">EQ</span><span class="p">)</span> +</span><span id="L-1493"><a href="#L-1493"><span class="linenos">1493</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><span id="L-1494"><a href="#L-1494"><span class="linenos">1494</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span> +</span><span id="L-1495"><a href="#L-1495"><span class="linenos">1495</span></a> <span class="p">)</span> +</span><span id="L-1496"><a href="#L-1496"><span class="linenos">1496</span></a> +</span><span id="L-1497"><a href="#L-1497"><span class="linenos">1497</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1498"><a href="#L-1498"><span class="linenos">1498</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="L-1499"><a href="#L-1499"><span class="linenos">1499</span></a> <span class="n">is_table</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">TABLE</span><span class="p">)</span> +</span><span id="L-1500"><a href="#L-1500"><span class="linenos">1500</span></a> +</span><span id="L-1501"><a href="#L-1501"><span class="linenos">1501</span></a> <span class="k">if</span> <span class="n">is_table</span><span class="p">:</span> +</span><span id="L-1502"><a href="#L-1502"><span class="linenos">1502</span></a> <span class="k">if</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">LT</span><span class="p">):</span> +</span><span id="L-1503"><a href="#L-1503"><span class="linenos">1503</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1504"><a href="#L-1504"><span class="linenos">1504</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">,</span> +</span><span id="L-1505"><a href="#L-1505"><span class="linenos">1505</span></a> <span class="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">,</span> +</span><span id="L-1506"><a href="#L-1506"><span class="linenos">1506</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">),</span> +</span><span id="L-1507"><a href="#L-1507"><span class="linenos">1507</span></a> <span class="p">)</span> +</span><span id="L-1508"><a href="#L-1508"><span class="linenos">1508</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> +</span><span id="L-1509"><a href="#L-1509"><span class="linenos">1509</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> +</span><span id="L-1510"><a href="#L-1510"><span class="linenos">1510</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1511"><a href="#L-1511"><span class="linenos">1511</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</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="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">))</span> +</span><span id="L-1512"><a href="#L-1512"><span class="linenos">1512</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1513"><a href="#L-1513"><span class="linenos">1513</span></a> <span class="n">value</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-1514"><a href="#L-1514"><span class="linenos">1514</span></a> -</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</span></a> <span class="k">def</span> <span class="nf">_parse_insert</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> -</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> -</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</span></a> -</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DIRECTORY"</span><span class="p">):</span> -</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">,</span> -</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> -</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> -</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</span></a> <span class="n">row_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">(</span><span class="n">match_row</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> <span class="p">)</span> -</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a> <span class="k">if</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">OR</span><span class="p">):</span> -</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">INSERT_ALTERNATIVES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> -</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</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">INTO</span><span class="p">)</span> -</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</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">TABLE</span><span class="p">)</span> -</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> -</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</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><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> -</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> -</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> -</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">(),</span> -</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> -</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> -</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</span></a> <span class="n">alternative</span><span class="o">=</span><span class="n">alternative</span><span class="p">,</span> -</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</span></a> <span class="p">)</span> -</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a> -</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> <span class="k">def</span> <span class="nf">_parse_returning</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">Expression</span><span class="p">]:</span> -</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</span></a> <span class="k">if</span> <span class="ow">not</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">RETURNING</span><span class="p">):</span> -</span><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a> -</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</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">Returning</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">))</span> -</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> -</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="k">def</span> <span class="nf">_parse_row</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">Expression</span><span class="p">]:</span> -</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="k">if</span> <span class="ow">not</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">FORMAT</span><span class="p">):</span> -</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">()</span> -</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a> -</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a> <span class="k">def</span> <span class="nf">_parse_row_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">match_row</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-1558"><a href="#L-1558"><span class="linenos">1558</span></a> <span class="k">if</span> <span class="n">match_row</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">):</span> -</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a> -</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">):</span> -</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</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">RowFormatSerdeProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="L-1515"><a href="#L-1515"><span class="linenos">1515</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">ReturnsProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">,</span> <span class="n">is_table</span><span class="o">=</span><span class="n">is_table</span><span class="p">)</span> +</span><span id="L-1516"><a href="#L-1516"><span class="linenos">1516</span></a> +</span><span id="L-1517"><a href="#L-1517"><span class="linenos">1517</span></a> <span class="k">def</span> <span class="nf">_parse_temporary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1518"><a href="#L-1518"><span class="linenos">1518</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">TEMPORARY</span><span class="p">)</span> <span class="c1"># in case calling from "GLOBAL"</span> +</span><span id="L-1519"><a href="#L-1519"><span class="linenos">1519</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">TemporaryProperty</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="n">global_</span><span class="p">)</span> +</span><span id="L-1520"><a href="#L-1520"><span class="linenos">1520</span></a> +</span><span id="L-1521"><a href="#L-1521"><span class="linenos">1521</span></a> <span class="k">def</span> <span class="nf">_parse_describe</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1522"><a href="#L-1522"><span class="linenos">1522</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-1523"><a href="#L-1523"><span class="linenos">1523</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> +</span><span id="L-1524"><a href="#L-1524"><span class="linenos">1524</span></a> +</span><span id="L-1525"><a href="#L-1525"><span class="linenos">1525</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">Describe</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="L-1526"><a href="#L-1526"><span class="linenos">1526</span></a> +</span><span id="L-1527"><a href="#L-1527"><span class="linenos">1527</span></a> <span class="k">def</span> <span class="nf">_parse_insert</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1528"><a href="#L-1528"><span class="linenos">1528</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> +</span><span id="L-1529"><a href="#L-1529"><span class="linenos">1529</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> +</span><span id="L-1530"><a href="#L-1530"><span class="linenos">1530</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1531"><a href="#L-1531"><span class="linenos">1531</span></a> +</span><span id="L-1532"><a href="#L-1532"><span class="linenos">1532</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DIRECTORY"</span><span class="p">):</span> +</span><span id="L-1533"><a href="#L-1533"><span class="linenos">1533</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1534"><a href="#L-1534"><span class="linenos">1534</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">,</span> +</span><span id="L-1535"><a href="#L-1535"><span class="linenos">1535</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> +</span><span id="L-1536"><a href="#L-1536"><span class="linenos">1536</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> +</span><span id="L-1537"><a href="#L-1537"><span class="linenos">1537</span></a> <span class="n">row_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">(</span><span class="n">match_row</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-1538"><a href="#L-1538"><span class="linenos">1538</span></a> <span class="p">)</span> +</span><span id="L-1539"><a href="#L-1539"><span class="linenos">1539</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1540"><a href="#L-1540"><span class="linenos">1540</span></a> <span class="k">if</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">OR</span><span class="p">):</span> +</span><span id="L-1541"><a href="#L-1541"><span class="linenos">1541</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">INSERT_ALTERNATIVES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-1542"><a href="#L-1542"><span class="linenos">1542</span></a> +</span><span id="L-1543"><a href="#L-1543"><span class="linenos">1543</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">INTO</span><span class="p">)</span> +</span><span id="L-1544"><a href="#L-1544"><span class="linenos">1544</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">TABLE</span><span class="p">)</span> +</span><span id="L-1545"><a href="#L-1545"><span class="linenos">1545</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1546"><a href="#L-1546"><span class="linenos">1546</span></a> +</span><span id="L-1547"><a href="#L-1547"><span class="linenos">1547</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><span id="L-1548"><a href="#L-1548"><span class="linenos">1548</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> +</span><span id="L-1549"><a href="#L-1549"><span class="linenos">1549</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1550"><a href="#L-1550"><span class="linenos">1550</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> +</span><span id="L-1551"><a href="#L-1551"><span class="linenos">1551</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> +</span><span id="L-1552"><a href="#L-1552"><span class="linenos">1552</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">(),</span> +</span><span id="L-1553"><a href="#L-1553"><span class="linenos">1553</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> +</span><span id="L-1554"><a href="#L-1554"><span class="linenos">1554</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> +</span><span id="L-1555"><a href="#L-1555"><span class="linenos">1555</span></a> <span class="n">alternative</span><span class="o">=</span><span class="n">alternative</span><span class="p">,</span> +</span><span id="L-1556"><a href="#L-1556"><span class="linenos">1556</span></a> <span class="p">)</span> +</span><span id="L-1557"><a href="#L-1557"><span class="linenos">1557</span></a> +</span><span id="L-1558"><a href="#L-1558"><span class="linenos">1558</span></a> <span class="k">def</span> <span class="nf">_parse_returning</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">Expression</span><span class="p">]:</span> +</span><span id="L-1559"><a href="#L-1559"><span class="linenos">1559</span></a> <span class="k">if</span> <span class="ow">not</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">RETURNING</span><span class="p">):</span> +</span><span id="L-1560"><a href="#L-1560"><span class="linenos">1560</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1561"><a href="#L-1561"><span class="linenos">1561</span></a> +</span><span id="L-1562"><a href="#L-1562"><span class="linenos">1562</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">Returning</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">))</span> </span><span id="L-1563"><a href="#L-1563"><span class="linenos">1563</span></a> -</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DELIMITED"</span><span class="p">)</span> -</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a> -</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> -</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FIELDS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"fields"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ESCAPED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"escaped"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLECTION"</span><span class="p">,</span> <span class="s2">"ITEMS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"collection_items"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAP"</span><span class="p">,</span> <span class="s2">"KEYS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"map_keys"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LINES"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"lines"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">,</span> <span class="s2">"DEFINED"</span><span class="p">,</span> <span class="s2">"AS"</span><span class="p">):</span> -</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"null"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a> -</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</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">RowFormatDelimitedProperty</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> -</span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</span></a> <span class="k">def</span> <span class="nf">_parse_load_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> -</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPATH"</span><span class="p">)</span> -</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> -</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">)</span> -</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> -</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LoadData</span><span class="p">,</span> -</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> -</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> -</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a> <span class="n">inpath</span><span class="o">=</span><span class="n">inpath</span><span class="p">,</span> -</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> -</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="n">input_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPUTFORMAT"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> -</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> <span class="n">serde</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> -</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a> <span class="p">)</span> -</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a> -</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a> <span class="k">def</span> <span class="nf">_parse_delete</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</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">FROM</span><span class="p">)</span> -</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> -</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</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><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">,</span> -</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> <span class="n">using</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()),</span> -</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> -</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> -</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> <span class="p">)</span> -</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> -</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a> <span class="k">def</span> <span class="nf">_parse_update</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</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><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> -</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a> <span class="o">**</span><span class="p">{</span> <span class="c1"># type: ignore</span> -</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">UPDATE_ALIAS_TOKENS</span><span class="p">),</span> -</span><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="s2">"expressions"</span><span class="p">:</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">SET</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> -</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">(),</span> -</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> -</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> -</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> <span class="p">},</span> +</span><span id="L-1564"><a href="#L-1564"><span class="linenos">1564</span></a> <span class="k">def</span> <span class="nf">_parse_row</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">Expression</span><span class="p">]:</span> +</span><span id="L-1565"><a href="#L-1565"><span class="linenos">1565</span></a> <span class="k">if</span> <span class="ow">not</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">FORMAT</span><span class="p">):</span> +</span><span id="L-1566"><a href="#L-1566"><span class="linenos">1566</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1567"><a href="#L-1567"><span class="linenos">1567</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">()</span> +</span><span id="L-1568"><a href="#L-1568"><span class="linenos">1568</span></a> +</span><span id="L-1569"><a href="#L-1569"><span class="linenos">1569</span></a> <span class="k">def</span> <span class="nf">_parse_row_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">match_row</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-1570"><a href="#L-1570"><span class="linenos">1570</span></a> <span class="k">if</span> <span class="n">match_row</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">):</span> +</span><span id="L-1571"><a href="#L-1571"><span class="linenos">1571</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1572"><a href="#L-1572"><span class="linenos">1572</span></a> +</span><span id="L-1573"><a href="#L-1573"><span class="linenos">1573</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">):</span> +</span><span id="L-1574"><a href="#L-1574"><span class="linenos">1574</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">RowFormatSerdeProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="L-1575"><a href="#L-1575"><span class="linenos">1575</span></a> +</span><span id="L-1576"><a href="#L-1576"><span class="linenos">1576</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DELIMITED"</span><span class="p">)</span> +</span><span id="L-1577"><a href="#L-1577"><span class="linenos">1577</span></a> +</span><span id="L-1578"><a href="#L-1578"><span class="linenos">1578</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-1579"><a href="#L-1579"><span class="linenos">1579</span></a> +</span><span id="L-1580"><a href="#L-1580"><span class="linenos">1580</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FIELDS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="L-1581"><a href="#L-1581"><span class="linenos">1581</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"fields"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1582"><a href="#L-1582"><span class="linenos">1582</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ESCAPED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="L-1583"><a href="#L-1583"><span class="linenos">1583</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"escaped"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1584"><a href="#L-1584"><span class="linenos">1584</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLECTION"</span><span class="p">,</span> <span class="s2">"ITEMS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="L-1585"><a href="#L-1585"><span class="linenos">1585</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"collection_items"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1586"><a href="#L-1586"><span class="linenos">1586</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAP"</span><span class="p">,</span> <span class="s2">"KEYS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="L-1587"><a href="#L-1587"><span class="linenos">1587</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"map_keys"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1588"><a href="#L-1588"><span class="linenos">1588</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LINES"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="L-1589"><a href="#L-1589"><span class="linenos">1589</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"lines"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1590"><a href="#L-1590"><span class="linenos">1590</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">,</span> <span class="s2">"DEFINED"</span><span class="p">,</span> <span class="s2">"AS"</span><span class="p">):</span> +</span><span id="L-1591"><a href="#L-1591"><span class="linenos">1591</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"null"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1592"><a href="#L-1592"><span class="linenos">1592</span></a> +</span><span id="L-1593"><a href="#L-1593"><span class="linenos">1593</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">RowFormatDelimitedProperty</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-1594"><a href="#L-1594"><span class="linenos">1594</span></a> +</span><span id="L-1595"><a href="#L-1595"><span class="linenos">1595</span></a> <span class="k">def</span> <span class="nf">_parse_load_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1596"><a href="#L-1596"><span class="linenos">1596</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> +</span><span id="L-1597"><a href="#L-1597"><span class="linenos">1597</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPATH"</span><span class="p">)</span> +</span><span id="L-1598"><a href="#L-1598"><span class="linenos">1598</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1599"><a href="#L-1599"><span class="linenos">1599</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> +</span><span id="L-1600"><a href="#L-1600"><span class="linenos">1600</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">)</span> +</span><span id="L-1601"><a href="#L-1601"><span class="linenos">1601</span></a> +</span><span id="L-1602"><a href="#L-1602"><span class="linenos">1602</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1603"><a href="#L-1603"><span class="linenos">1603</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LoadData</span><span class="p">,</span> +</span><span id="L-1604"><a href="#L-1604"><span class="linenos">1604</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-1605"><a href="#L-1605"><span class="linenos">1605</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> +</span><span id="L-1606"><a href="#L-1606"><span class="linenos">1606</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> +</span><span id="L-1607"><a href="#L-1607"><span class="linenos">1607</span></a> <span class="n">inpath</span><span class="o">=</span><span class="n">inpath</span><span class="p">,</span> +</span><span id="L-1608"><a href="#L-1608"><span class="linenos">1608</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> +</span><span id="L-1609"><a href="#L-1609"><span class="linenos">1609</span></a> <span class="n">input_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPUTFORMAT"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> +</span><span id="L-1610"><a href="#L-1610"><span class="linenos">1610</span></a> <span class="n">serde</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> +</span><span id="L-1611"><a href="#L-1611"><span class="linenos">1611</span></a> <span class="p">)</span> +</span><span id="L-1612"><a href="#L-1612"><span class="linenos">1612</span></a> +</span><span id="L-1613"><a href="#L-1613"><span class="linenos">1613</span></a> <span class="k">def</span> <span class="nf">_parse_delete</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1614"><a href="#L-1614"><span class="linenos">1614</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">FROM</span><span class="p">)</span> +</span><span id="L-1615"><a href="#L-1615"><span class="linenos">1615</span></a> +</span><span id="L-1616"><a href="#L-1616"><span class="linenos">1616</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><span id="L-1617"><a href="#L-1617"><span class="linenos">1617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">,</span> +</span><span id="L-1618"><a href="#L-1618"><span class="linenos">1618</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-1619"><a href="#L-1619"><span class="linenos">1619</span></a> <span class="n">using</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()),</span> +</span><span id="L-1620"><a href="#L-1620"><span class="linenos">1620</span></a> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> +</span><span id="L-1621"><a href="#L-1621"><span class="linenos">1621</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> </span><span id="L-1622"><a href="#L-1622"><span class="linenos">1622</span></a> <span class="p">)</span> </span><span id="L-1623"><a href="#L-1623"><span class="linenos">1623</span></a> -</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a> <span class="k">def</span> <span class="nf">_parse_uncache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> -</span><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting TABLE after UNCACHE"</span><span class="p">)</span> -</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a> -</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Uncache</span><span class="p">,</span> -</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> -</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a> <span class="p">)</span> -</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a> -</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="k">def</span> <span class="nf">_parse_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a> <span class="n">lazy</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">LAZY</span><span class="p">)</span> -</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</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">TABLE</span><span class="p">)</span> -</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1624"><a href="#L-1624"><span class="linenos">1624</span></a> <span class="k">def</span> <span class="nf">_parse_update</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1625"><a href="#L-1625"><span class="linenos">1625</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><span id="L-1626"><a href="#L-1626"><span class="linenos">1626</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> +</span><span id="L-1627"><a href="#L-1627"><span class="linenos">1627</span></a> <span class="o">**</span><span class="p">{</span> <span class="c1"># type: ignore</span> +</span><span id="L-1628"><a href="#L-1628"><span class="linenos">1628</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">UPDATE_ALIAS_TOKENS</span><span class="p">),</span> +</span><span id="L-1629"><a href="#L-1629"><span class="linenos">1629</span></a> <span class="s2">"expressions"</span><span class="p">:</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">SET</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> +</span><span id="L-1630"><a href="#L-1630"><span class="linenos">1630</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">(),</span> +</span><span id="L-1631"><a href="#L-1631"><span class="linenos">1631</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> +</span><span id="L-1632"><a href="#L-1632"><span class="linenos">1632</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> +</span><span id="L-1633"><a href="#L-1633"><span class="linenos">1633</span></a> <span class="p">},</span> +</span><span id="L-1634"><a href="#L-1634"><span class="linenos">1634</span></a> <span class="p">)</span> +</span><span id="L-1635"><a href="#L-1635"><span class="linenos">1635</span></a> +</span><span id="L-1636"><a href="#L-1636"><span class="linenos">1636</span></a> <span class="k">def</span> <span class="nf">_parse_uncache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1637"><a href="#L-1637"><span class="linenos">1637</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> +</span><span id="L-1638"><a href="#L-1638"><span class="linenos">1638</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting TABLE after UNCACHE"</span><span class="p">)</span> </span><span id="L-1639"><a href="#L-1639"><span class="linenos">1639</span></a> -</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</span></a> <span class="k">if</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">OPTIONS</span><span class="p">):</span> -</span><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> -</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="n">k</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</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">EQ</span><span class="p">)</span> -</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">]</span> -</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</span></a> -</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</span></a> <span class="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">ALIAS</span><span class="p">)</span> -</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</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><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cache</span><span class="p">,</span> -</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> -</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a> <span class="n">lazy</span><span class="o">=</span><span class="n">lazy</span><span class="p">,</span> -</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">,</span> -</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</span></a> <span class="p">)</span> -</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> -</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="k">def</span> <span class="nf">_parse_partition</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">Expression</span><span class="p">]:</span> -</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="k">if</span> <span class="ow">not</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">PARTITION</span><span class="p">):</span> -</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</span></a> +</span><span id="L-1640"><a href="#L-1640"><span class="linenos">1640</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><span id="L-1641"><a href="#L-1641"><span class="linenos">1641</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Uncache</span><span class="p">,</span> +</span><span id="L-1642"><a href="#L-1642"><span class="linenos">1642</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> +</span><span id="L-1643"><a href="#L-1643"><span class="linenos">1643</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-1644"><a href="#L-1644"><span class="linenos">1644</span></a> <span class="p">)</span> +</span><span id="L-1645"><a href="#L-1645"><span class="linenos">1645</span></a> +</span><span id="L-1646"><a href="#L-1646"><span class="linenos">1646</span></a> <span class="k">def</span> <span class="nf">_parse_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1647"><a href="#L-1647"><span class="linenos">1647</span></a> <span class="n">lazy</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">LAZY</span><span class="p">)</span> +</span><span id="L-1648"><a href="#L-1648"><span class="linenos">1648</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">TABLE</span><span class="p">)</span> +</span><span id="L-1649"><a href="#L-1649"><span class="linenos">1649</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1650"><a href="#L-1650"><span class="linenos">1650</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1651"><a href="#L-1651"><span class="linenos">1651</span></a> +</span><span id="L-1652"><a href="#L-1652"><span class="linenos">1652</span></a> <span class="k">if</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">OPTIONS</span><span class="p">):</span> +</span><span id="L-1653"><a href="#L-1653"><span class="linenos">1653</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="L-1654"><a href="#L-1654"><span class="linenos">1654</span></a> <span class="n">k</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1655"><a href="#L-1655"><span class="linenos">1655</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">EQ</span><span class="p">)</span> +</span><span id="L-1656"><a href="#L-1656"><span class="linenos">1656</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-1657"><a href="#L-1657"><span class="linenos">1657</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">]</span> +</span><span id="L-1658"><a href="#L-1658"><span class="linenos">1658</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-1659"><a href="#L-1659"><span class="linenos">1659</span></a> +</span><span id="L-1660"><a href="#L-1660"><span class="linenos">1660</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">ALIAS</span><span class="p">)</span> </span><span id="L-1661"><a href="#L-1661"><span class="linenos">1661</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><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Partition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="p">)</span> -</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a> -</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="k">def</span> <span class="nf">_parse_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> -</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> <span class="c1"># In presto we can have VALUES 1, 2 which results in 1 column & 2 rows.</span> -</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> <span class="c1"># Source: https://prestodb.io/docs/current/sql/values.html</span> -</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()])</span> -</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> -</span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a> <span class="k">def</span> <span class="nf">_parse_select</span><span class="p">(</span> -</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">nested</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</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-1678"><a href="#L-1678"><span class="linenos">1678</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_with</span><span class="p">()</span> -</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="k">if</span> <span class="n">cte</span><span class="p">:</span> -</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</span></a> -</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Failed to parse any statement following CTE"</span><span class="p">)</span> -</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="k">return</span> <span class="n">cte</span> -</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</span></a> -</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> <span class="k">if</span> <span class="s2">"with"</span> <span class="ow">in</span> <span class="n">this</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> -</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"with"</span><span class="p">,</span> <span class="n">cte</span><span class="p">)</span> -</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2"> does not support CTE"</span><span class="p">)</span> -</span><span id="L-1690"><a href="#L-1690"><span class="linenos">1690</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">cte</span> -</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="k">elif</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">SELECT</span><span class="p">):</span> -</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-1662"><a href="#L-1662"><span class="linenos">1662</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cache</span><span class="p">,</span> +</span><span id="L-1663"><a href="#L-1663"><span class="linenos">1663</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> +</span><span id="L-1664"><a href="#L-1664"><span class="linenos">1664</span></a> <span class="n">lazy</span><span class="o">=</span><span class="n">lazy</span><span class="p">,</span> +</span><span id="L-1665"><a href="#L-1665"><span class="linenos">1665</span></a> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">,</span> +</span><span id="L-1666"><a href="#L-1666"><span class="linenos">1666</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="L-1667"><a href="#L-1667"><span class="linenos">1667</span></a> <span class="p">)</span> +</span><span id="L-1668"><a href="#L-1668"><span class="linenos">1668</span></a> +</span><span id="L-1669"><a href="#L-1669"><span class="linenos">1669</span></a> <span class="k">def</span> <span class="nf">_parse_partition</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">Expression</span><span class="p">]:</span> +</span><span id="L-1670"><a href="#L-1670"><span class="linenos">1670</span></a> <span class="k">if</span> <span class="ow">not</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">PARTITION</span><span class="p">):</span> +</span><span id="L-1671"><a href="#L-1671"><span class="linenos">1671</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1672"><a href="#L-1672"><span class="linenos">1672</span></a> +</span><span id="L-1673"><a href="#L-1673"><span class="linenos">1673</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1674"><a href="#L-1674"><span class="linenos">1674</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Partition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-1675"><a href="#L-1675"><span class="linenos">1675</span></a> <span class="p">)</span> +</span><span id="L-1676"><a href="#L-1676"><span class="linenos">1676</span></a> +</span><span id="L-1677"><a href="#L-1677"><span class="linenos">1677</span></a> <span class="k">def</span> <span class="nf">_parse_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1678"><a href="#L-1678"><span class="linenos">1678</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-1679"><a href="#L-1679"><span class="linenos">1679</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-1680"><a href="#L-1680"><span class="linenos">1680</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-1681"><a href="#L-1681"><span class="linenos">1681</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-1682"><a href="#L-1682"><span class="linenos">1682</span></a> +</span><span id="L-1683"><a href="#L-1683"><span class="linenos">1683</span></a> <span class="c1"># In presto we can have VALUES 1, 2 which results in 1 column & 2 rows.</span> +</span><span id="L-1684"><a href="#L-1684"><span class="linenos">1684</span></a> <span class="c1"># Source: https://prestodb.io/docs/current/sql/values.html</span> +</span><span id="L-1685"><a href="#L-1685"><span class="linenos">1685</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()])</span> +</span><span id="L-1686"><a href="#L-1686"><span class="linenos">1686</span></a> +</span><span id="L-1687"><a href="#L-1687"><span class="linenos">1687</span></a> <span class="k">def</span> <span class="nf">_parse_select</span><span class="p">(</span> +</span><span id="L-1688"><a href="#L-1688"><span class="linenos">1688</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">nested</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-1689"><a href="#L-1689"><span class="linenos">1689</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-1690"><a href="#L-1690"><span class="linenos">1690</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_with</span><span class="p">()</span> +</span><span id="L-1691"><a href="#L-1691"><span class="linenos">1691</span></a> <span class="k">if</span> <span class="n">cte</span><span class="p">:</span> +</span><span id="L-1692"><a href="#L-1692"><span class="linenos">1692</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> </span><span id="L-1693"><a href="#L-1693"><span class="linenos">1693</span></a> -</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="n">hint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_hint</span><span class="p">()</span> -</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a> <span class="n">all_</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">ALL</span><span class="p">)</span> -</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> +</span><span id="L-1694"><a href="#L-1694"><span class="linenos">1694</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="L-1695"><a href="#L-1695"><span class="linenos">1695</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Failed to parse any statement following CTE"</span><span class="p">)</span> +</span><span id="L-1696"><a href="#L-1696"><span class="linenos">1696</span></a> <span class="k">return</span> <span class="n">cte</span> </span><span id="L-1697"><a href="#L-1697"><span class="linenos">1697</span></a> -</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> -</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> -</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a> <span class="n">on</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">()</span> <span class="k">if</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">ON</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a> <span class="p">)</span> -</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a> -</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a> <span class="k">if</span> <span class="n">all_</span> <span class="ow">and</span> <span class="n">distinct</span><span class="p">:</span> -</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Cannot specify both ALL and DISTINCT after SELECT"</span><span class="p">)</span> -</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a> -</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="L-1698"><a href="#L-1698"><span class="linenos">1698</span></a> <span class="k">if</span> <span class="s2">"with"</span> <span class="ow">in</span> <span class="n">this</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> +</span><span id="L-1699"><a href="#L-1699"><span class="linenos">1699</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"with"</span><span class="p">,</span> <span class="n">cte</span><span class="p">)</span> +</span><span id="L-1700"><a href="#L-1700"><span class="linenos">1700</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1701"><a href="#L-1701"><span class="linenos">1701</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2"> does not support CTE"</span><span class="p">)</span> +</span><span id="L-1702"><a href="#L-1702"><span class="linenos">1702</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">cte</span> +</span><span id="L-1703"><a href="#L-1703"><span class="linenos">1703</span></a> <span class="k">elif</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">SELECT</span><span class="p">):</span> +</span><span id="L-1704"><a href="#L-1704"><span class="linenos">1704</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-1705"><a href="#L-1705"><span class="linenos">1705</span></a> +</span><span id="L-1706"><a href="#L-1706"><span class="linenos">1706</span></a> <span class="n">hint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_hint</span><span class="p">()</span> +</span><span id="L-1707"><a href="#L-1707"><span class="linenos">1707</span></a> <span class="n">all_</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">ALL</span><span class="p">)</span> +</span><span id="L-1708"><a href="#L-1708"><span class="linenos">1708</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> </span><span id="L-1709"><a href="#L-1709"><span class="linenos">1709</span></a> -</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">,</span> -</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">hint</span><span class="o">=</span><span class="n">hint</span><span class="p">,</span> -</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> -</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> -</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="p">)</span> -</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="L-1710"><a href="#L-1710"><span class="linenos">1710</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="L-1711"><a href="#L-1711"><span class="linenos">1711</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1712"><a href="#L-1712"><span class="linenos">1712</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> +</span><span id="L-1713"><a href="#L-1713"><span class="linenos">1713</span></a> <span class="n">on</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">()</span> <span class="k">if</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">ON</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1714"><a href="#L-1714"><span class="linenos">1714</span></a> <span class="p">)</span> +</span><span id="L-1715"><a href="#L-1715"><span class="linenos">1715</span></a> +</span><span id="L-1716"><a href="#L-1716"><span class="linenos">1716</span></a> <span class="k">if</span> <span class="n">all_</span> <span class="ow">and</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="L-1717"><a href="#L-1717"><span class="linenos">1717</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Cannot specify both ALL and DISTINCT after SELECT"</span><span class="p">)</span> </span><span id="L-1718"><a href="#L-1718"><span class="linenos">1718</span></a> -</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_into</span><span class="p">()</span> -</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="k">if</span> <span class="n">into</span><span class="p">:</span> -</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"into"</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span> -</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a> -</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="n">from_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">()</span> -</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> -</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"from"</span><span class="p">,</span> <span class="n">from_</span><span class="p">)</span> -</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> -</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="k">elif</span> <span class="p">(</span><span class="n">table</span> <span class="ow">or</span> <span class="n">nested</span><span class="p">)</span> <span class="ow">and</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a> -</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a> <span class="c1"># early return so that subquery unions aren't parsed again</span> -</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="c1"># SELECT * FROM (SELECT 1) UNION ALL SELECT 1</span> -</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a> <span class="c1"># Union ALL should be a property of the top select node, not the subquery</span> -</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">parse_alias</span><span class="o">=</span><span class="n">parse_subquery_alias</span><span class="p">)</span> -</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a> <span class="k">elif</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">VALUES</span><span class="p">):</span> -</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">,</span> -</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">),</span> -</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(),</span> -</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a> <span class="p">)</span> -</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a> -</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a> -</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a> <span class="k">def</span> <span class="nf">_parse_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_with_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-1750"><a href="#L-1750"><span class="linenos">1750</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_with_token</span> <span class="ow">and</span> <span class="ow">not</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">WITH</span><span class="p">):</span> -</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> -</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a> <span class="n">recursive</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">RECURSIVE</span><span class="p">)</span> -</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a> -</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">())</span> +</span><span id="L-1719"><a href="#L-1719"><span class="linenos">1719</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1720"><a href="#L-1720"><span class="linenos">1720</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="L-1721"><a href="#L-1721"><span class="linenos">1721</span></a> +</span><span id="L-1722"><a href="#L-1722"><span class="linenos">1722</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1723"><a href="#L-1723"><span class="linenos">1723</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">,</span> +</span><span id="L-1724"><a href="#L-1724"><span class="linenos">1724</span></a> <span class="n">hint</span><span class="o">=</span><span class="n">hint</span><span class="p">,</span> +</span><span id="L-1725"><a href="#L-1725"><span class="linenos">1725</span></a> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> +</span><span id="L-1726"><a href="#L-1726"><span class="linenos">1726</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-1727"><a href="#L-1727"><span class="linenos">1727</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> +</span><span id="L-1728"><a href="#L-1728"><span class="linenos">1728</span></a> <span class="p">)</span> +</span><span id="L-1729"><a href="#L-1729"><span class="linenos">1729</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="L-1730"><a href="#L-1730"><span class="linenos">1730</span></a> +</span><span id="L-1731"><a href="#L-1731"><span class="linenos">1731</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_into</span><span class="p">()</span> +</span><span id="L-1732"><a href="#L-1732"><span class="linenos">1732</span></a> <span class="k">if</span> <span class="n">into</span><span class="p">:</span> +</span><span id="L-1733"><a href="#L-1733"><span class="linenos">1733</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"into"</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span> +</span><span id="L-1734"><a href="#L-1734"><span class="linenos">1734</span></a> +</span><span id="L-1735"><a href="#L-1735"><span class="linenos">1735</span></a> <span class="n">from_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">()</span> +</span><span id="L-1736"><a href="#L-1736"><span class="linenos">1736</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> +</span><span id="L-1737"><a href="#L-1737"><span class="linenos">1737</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"from"</span><span class="p">,</span> <span class="n">from_</span><span class="p">)</span> +</span><span id="L-1738"><a href="#L-1738"><span class="linenos">1738</span></a> +</span><span id="L-1739"><a href="#L-1739"><span class="linenos">1739</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1740"><a href="#L-1740"><span class="linenos">1740</span></a> <span class="k">elif</span> <span class="p">(</span><span class="n">table</span> <span class="ow">or</span> <span class="n">nested</span><span class="p">)</span> <span class="ow">and</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-1741"><a href="#L-1741"><span class="linenos">1741</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1742"><a href="#L-1742"><span class="linenos">1742</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1743"><a href="#L-1743"><span class="linenos">1743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1744"><a href="#L-1744"><span class="linenos">1744</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-1745"><a href="#L-1745"><span class="linenos">1745</span></a> +</span><span id="L-1746"><a href="#L-1746"><span class="linenos">1746</span></a> <span class="c1"># early return so that subquery unions aren't parsed again</span> +</span><span id="L-1747"><a href="#L-1747"><span class="linenos">1747</span></a> <span class="c1"># SELECT * FROM (SELECT 1) UNION ALL SELECT 1</span> +</span><span id="L-1748"><a href="#L-1748"><span class="linenos">1748</span></a> <span class="c1"># Union ALL should be a property of the top select node, not the subquery</span> +</span><span id="L-1749"><a href="#L-1749"><span class="linenos">1749</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">parse_alias</span><span class="o">=</span><span class="n">parse_subquery_alias</span><span class="p">)</span> +</span><span id="L-1750"><a href="#L-1750"><span class="linenos">1750</span></a> <span class="k">elif</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">VALUES</span><span class="p">):</span> +</span><span id="L-1751"><a href="#L-1751"><span class="linenos">1751</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1752"><a href="#L-1752"><span class="linenos">1752</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">,</span> +</span><span id="L-1753"><a href="#L-1753"><span class="linenos">1753</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">),</span> +</span><span id="L-1754"><a href="#L-1754"><span class="linenos">1754</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(),</span> +</span><span id="L-1755"><a href="#L-1755"><span class="linenos">1755</span></a> <span class="p">)</span> +</span><span id="L-1756"><a href="#L-1756"><span class="linenos">1756</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1757"><a href="#L-1757"><span class="linenos">1757</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-1758"><a href="#L-1758"><span class="linenos">1758</span></a> -</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> -</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> <span class="k">break</span> -</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1762"><a href="#L-1762"><span class="linenos">1762</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">WITH</span><span class="p">)</span> -</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a> -</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</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">With</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">)</span> -</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a> -</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> -</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> -</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="L-1759"><a href="#L-1759"><span class="linenos">1759</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-1760"><a href="#L-1760"><span class="linenos">1760</span></a> +</span><span id="L-1761"><a href="#L-1761"><span class="linenos">1761</span></a> <span class="k">def</span> <span class="nf">_parse_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_with_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-1762"><a href="#L-1762"><span class="linenos">1762</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_with_token</span> <span class="ow">and</span> <span class="ow">not</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">WITH</span><span class="p">):</span> +</span><span id="L-1763"><a href="#L-1763"><span class="linenos">1763</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1764"><a href="#L-1764"><span class="linenos">1764</span></a> +</span><span id="L-1765"><a href="#L-1765"><span class="linenos">1765</span></a> <span class="n">recursive</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">RECURSIVE</span><span class="p">)</span> +</span><span id="L-1766"><a href="#L-1766"><span class="linenos">1766</span></a> +</span><span id="L-1767"><a href="#L-1767"><span class="linenos">1767</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-1768"><a href="#L-1768"><span class="linenos">1768</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1769"><a href="#L-1769"><span class="linenos">1769</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">())</span> </span><span id="L-1770"><a href="#L-1770"><span class="linenos">1770</span></a> -</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</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">ALIAS</span><span class="p">)</span> -</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a> -</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">,</span> -</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">),</span> -</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> -</span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> <span class="p">)</span> -</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> -</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="k">def</span> <span class="nf">_parse_table_alias</span><span class="p">(</span> -</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="bp">self</span><span class="p">,</span> <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><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</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-1782"><a href="#L-1782"><span class="linenos">1782</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> -</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span> -</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> <span class="n">any_token</span><span class="o">=</span><span class="n">any_token</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span> -</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> <span class="p">)</span> -</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</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><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> -</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <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-1791"><a href="#L-1791"><span class="linenos">1791</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</span></a> -</span><span id="L-1794"><a href="#L-1794"><span class="linenos">1794</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a> -</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</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">TableAlias</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> -</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> -</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> <span class="k">def</span> <span class="nf">_parse_subquery</span><span class="p">(</span> -</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">parse_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</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><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> -</span><span id="L-1804"><a href="#L-1804"><span class="linenos">1804</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">(),</span> -</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> <span class="k">if</span> <span class="n">parse_alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="p">)</span> -</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a> -</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a> <span class="k">def</span> <span class="nf">_parse_query_modifiers</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">MODIFIABLES</span><span class="p">):</span> -</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a> <span class="k">return</span> -</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a> -</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> -</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a> -</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> -</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="n">join</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join</span><span class="p">()</span> -</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a> <span class="n">comma</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</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">COMMA</span><span class="p">)</span> -</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> -</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">,</span> <span class="n">lateral</span><span class="p">)</span> -</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> <span class="k">if</span> <span class="n">join</span><span class="p">:</span> -</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">,</span> <span class="n">join</span><span class="p">)</span> -</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="k">if</span> <span class="n">comma</span><span class="p">:</span> -</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"from"</span><span class="p">]</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="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">())</span> -</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">lateral</span> <span class="ow">or</span> <span class="n">join</span> <span class="ow">or</span> <span class="n">comma</span><span class="p">):</span> -</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="k">break</span> +</span><span id="L-1771"><a href="#L-1771"><span class="linenos">1771</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> +</span><span id="L-1772"><a href="#L-1772"><span class="linenos">1772</span></a> <span class="k">break</span> +</span><span id="L-1773"><a href="#L-1773"><span class="linenos">1773</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1774"><a href="#L-1774"><span class="linenos">1774</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">WITH</span><span class="p">)</span> +</span><span id="L-1775"><a href="#L-1775"><span class="linenos">1775</span></a> +</span><span id="L-1776"><a href="#L-1776"><span class="linenos">1776</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">With</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">)</span> +</span><span id="L-1777"><a href="#L-1777"><span class="linenos">1777</span></a> +</span><span id="L-1778"><a href="#L-1778"><span class="linenos">1778</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1779"><a href="#L-1779"><span class="linenos">1779</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> +</span><span id="L-1780"><a href="#L-1780"><span class="linenos">1780</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> +</span><span id="L-1781"><a href="#L-1781"><span class="linenos">1781</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="L-1782"><a href="#L-1782"><span class="linenos">1782</span></a> +</span><span id="L-1783"><a href="#L-1783"><span class="linenos">1783</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">ALIAS</span><span class="p">)</span> +</span><span id="L-1784"><a href="#L-1784"><span class="linenos">1784</span></a> +</span><span id="L-1785"><a href="#L-1785"><span class="linenos">1785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1786"><a href="#L-1786"><span class="linenos">1786</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">,</span> +</span><span id="L-1787"><a href="#L-1787"><span class="linenos">1787</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">),</span> +</span><span id="L-1788"><a href="#L-1788"><span class="linenos">1788</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> +</span><span id="L-1789"><a href="#L-1789"><span class="linenos">1789</span></a> <span class="p">)</span> +</span><span id="L-1790"><a href="#L-1790"><span class="linenos">1790</span></a> +</span><span id="L-1791"><a href="#L-1791"><span class="linenos">1791</span></a> <span class="k">def</span> <span class="nf">_parse_table_alias</span><span class="p">(</span> +</span><span id="L-1792"><a href="#L-1792"><span class="linenos">1792</span></a> <span class="bp">self</span><span class="p">,</span> <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><span id="L-1793"><a href="#L-1793"><span class="linenos">1793</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-1794"><a href="#L-1794"><span class="linenos">1794</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> +</span><span id="L-1795"><a href="#L-1795"><span class="linenos">1795</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1796"><a href="#L-1796"><span class="linenos">1796</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="n">any_token</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">)</span> +</span><span id="L-1797"><a href="#L-1797"><span class="linenos">1797</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string_as_identifier</span><span class="p">()</span> +</span><span id="L-1798"><a href="#L-1798"><span class="linenos">1798</span></a> <span class="p">)</span> +</span><span id="L-1799"><a href="#L-1799"><span class="linenos">1799</span></a> +</span><span id="L-1800"><a href="#L-1800"><span class="linenos">1800</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> +</span><span id="L-1801"><a href="#L-1801"><span class="linenos">1801</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-1802"><a href="#L-1802"><span class="linenos">1802</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="L-1803"><a href="#L-1803"><span class="linenos">1803</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <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-1804"><a href="#L-1804"><span class="linenos">1804</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1805"><a href="#L-1805"><span class="linenos">1805</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1806"><a href="#L-1806"><span class="linenos">1806</span></a> +</span><span id="L-1807"><a href="#L-1807"><span class="linenos">1807</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="L-1808"><a href="#L-1808"><span class="linenos">1808</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1809"><a href="#L-1809"><span class="linenos">1809</span></a> +</span><span id="L-1810"><a href="#L-1810"><span class="linenos">1810</span></a> <span class="k">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">TableAlias</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> +</span><span id="L-1811"><a href="#L-1811"><span class="linenos">1811</span></a> +</span><span id="L-1812"><a href="#L-1812"><span class="linenos">1812</span></a> <span class="k">def</span> <span class="nf">_parse_subquery</span><span class="p">(</span> +</span><span id="L-1813"><a href="#L-1813"><span class="linenos">1813</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">parse_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-1814"><a href="#L-1814"><span class="linenos">1814</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-1815"><a href="#L-1815"><span class="linenos">1815</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1816"><a href="#L-1816"><span class="linenos">1816</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> +</span><span id="L-1817"><a href="#L-1817"><span class="linenos">1817</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1818"><a href="#L-1818"><span class="linenos">1818</span></a> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">(),</span> +</span><span id="L-1819"><a href="#L-1819"><span class="linenos">1819</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> <span class="k">if</span> <span class="n">parse_alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="L-1820"><a href="#L-1820"><span class="linenos">1820</span></a> <span class="p">)</span> +</span><span id="L-1821"><a href="#L-1821"><span class="linenos">1821</span></a> +</span><span id="L-1822"><a href="#L-1822"><span class="linenos">1822</span></a> <span class="k">def</span> <span class="nf">_parse_query_modifiers</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1823"><a href="#L-1823"><span class="linenos">1823</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">MODIFIABLES</span><span class="p">):</span> +</span><span id="L-1824"><a href="#L-1824"><span class="linenos">1824</span></a> <span class="k">return</span> +</span><span id="L-1825"><a href="#L-1825"><span class="linenos">1825</span></a> +</span><span id="L-1826"><a href="#L-1826"><span class="linenos">1826</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> </span><span id="L-1827"><a href="#L-1827"><span class="linenos">1827</span></a> -</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">parser</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">QUERY_MODIFIER_PARSERS</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> -</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> -</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> <span class="k">def</span> <span class="nf">_parse_hint</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">Expression</span><span class="p">]:</span> -</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="k">if</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">HINT</span><span class="p">):</span> -</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">)</span> -</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">):</span> -</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected */ after HINT"</span><span class="p">)</span> -</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</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">Hint</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">hints</span><span class="p">)</span> +</span><span id="L-1828"><a href="#L-1828"><span class="linenos">1828</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1829"><a href="#L-1829"><span class="linenos">1829</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> +</span><span id="L-1830"><a href="#L-1830"><span class="linenos">1830</span></a> <span class="n">join</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join</span><span class="p">()</span> +</span><span id="L-1831"><a href="#L-1831"><span class="linenos">1831</span></a> <span class="n">comma</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</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">COMMA</span><span class="p">)</span> +</span><span id="L-1832"><a href="#L-1832"><span class="linenos">1832</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> +</span><span id="L-1833"><a href="#L-1833"><span class="linenos">1833</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">,</span> <span class="n">lateral</span><span class="p">)</span> +</span><span id="L-1834"><a href="#L-1834"><span class="linenos">1834</span></a> <span class="k">if</span> <span class="n">join</span><span class="p">:</span> +</span><span id="L-1835"><a href="#L-1835"><span class="linenos">1835</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">,</span> <span class="n">join</span><span class="p">)</span> +</span><span id="L-1836"><a href="#L-1836"><span class="linenos">1836</span></a> <span class="k">if</span> <span class="n">comma</span><span class="p">:</span> +</span><span id="L-1837"><a href="#L-1837"><span class="linenos">1837</span></a> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"from"</span><span class="p">]</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="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">())</span> +</span><span id="L-1838"><a href="#L-1838"><span class="linenos">1838</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">lateral</span> <span class="ow">or</span> <span class="n">join</span> <span class="ow">or</span> <span class="n">comma</span><span class="p">):</span> +</span><span id="L-1839"><a href="#L-1839"><span class="linenos">1839</span></a> <span class="k">break</span> </span><span id="L-1840"><a href="#L-1840"><span class="linenos">1840</span></a> -</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a> -</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> <span class="k">def</span> <span class="nf">_parse_into</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">Expression</span><span class="p">]:</span> -</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="k">if</span> <span class="ow">not</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">INTO</span><span class="p">):</span> -</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1841"><a href="#L-1841"><span class="linenos">1841</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">parser</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">QUERY_MODIFIER_PARSERS</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="L-1842"><a href="#L-1842"><span class="linenos">1842</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-1843"><a href="#L-1843"><span class="linenos">1843</span></a> +</span><span id="L-1844"><a href="#L-1844"><span class="linenos">1844</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="L-1845"><a href="#L-1845"><span class="linenos">1845</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> </span><span id="L-1846"><a href="#L-1846"><span class="linenos">1846</span></a> -</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="n">temp</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">TEMPORARY</span><span class="p">)</span> -</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> <span class="n">unlogged</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">UNLOGGED</span><span class="p">)</span> -</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</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">TABLE</span><span class="p">)</span> -</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a> -</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</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><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Into</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> <span class="n">temporary</span><span class="o">=</span><span class="n">temp</span><span class="p">,</span> <span class="n">unlogged</span><span class="o">=</span><span class="n">unlogged</span> -</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> <span class="p">)</span> -</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> -</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> <span class="k">def</span> <span class="nf">_parse_from</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">Expression</span><span class="p">]:</span> -</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="k">if</span> <span class="ow">not</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">FROM</span><span class="p">):</span> -</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> -</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> -</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="p">)</span> -</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</span></a> -</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> <span class="k">def</span> <span class="nf">_parse_match_recognize</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">Expression</span><span class="p">]:</span> -</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="k">if</span> <span class="ow">not</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">MATCH_RECOGNIZE</span><span class="p">):</span> -</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="L-1847"><a href="#L-1847"><span class="linenos">1847</span></a> <span class="k">def</span> <span class="nf">_parse_hint</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">Expression</span><span class="p">]:</span> +</span><span id="L-1848"><a href="#L-1848"><span class="linenos">1848</span></a> <span class="k">if</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">HINT</span><span class="p">):</span> +</span><span id="L-1849"><a href="#L-1849"><span class="linenos">1849</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">)</span> +</span><span id="L-1850"><a href="#L-1850"><span class="linenos">1850</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">):</span> +</span><span id="L-1851"><a href="#L-1851"><span class="linenos">1851</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected */ after HINT"</span><span class="p">)</span> +</span><span id="L-1852"><a href="#L-1852"><span class="linenos">1852</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">Hint</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">hints</span><span class="p">)</span> +</span><span id="L-1853"><a href="#L-1853"><span class="linenos">1853</span></a> +</span><span id="L-1854"><a href="#L-1854"><span class="linenos">1854</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1855"><a href="#L-1855"><span class="linenos">1855</span></a> +</span><span id="L-1856"><a href="#L-1856"><span class="linenos">1856</span></a> <span class="k">def</span> <span class="nf">_parse_into</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">Expression</span><span class="p">]:</span> +</span><span id="L-1857"><a href="#L-1857"><span class="linenos">1857</span></a> <span class="k">if</span> <span class="ow">not</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">INTO</span><span class="p">):</span> +</span><span id="L-1858"><a href="#L-1858"><span class="linenos">1858</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1859"><a href="#L-1859"><span class="linenos">1859</span></a> +</span><span id="L-1860"><a href="#L-1860"><span class="linenos">1860</span></a> <span class="n">temp</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">TEMPORARY</span><span class="p">)</span> +</span><span id="L-1861"><a href="#L-1861"><span class="linenos">1861</span></a> <span class="n">unlogged</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">UNLOGGED</span><span class="p">)</span> +</span><span id="L-1862"><a href="#L-1862"><span class="linenos">1862</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">TABLE</span><span class="p">)</span> +</span><span id="L-1863"><a href="#L-1863"><span class="linenos">1863</span></a> +</span><span id="L-1864"><a href="#L-1864"><span class="linenos">1864</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1865"><a href="#L-1865"><span class="linenos">1865</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Into</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> <span class="n">temporary</span><span class="o">=</span><span class="n">temp</span><span class="p">,</span> <span class="n">unlogged</span><span class="o">=</span><span class="n">unlogged</span> +</span><span id="L-1866"><a href="#L-1866"><span class="linenos">1866</span></a> <span class="p">)</span> </span><span id="L-1867"><a href="#L-1867"><span class="linenos">1867</span></a> -</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> -</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> -</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MEASURES"</span><span class="p">)</span> -</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-1868"><a href="#L-1868"><span class="linenos">1868</span></a> <span class="k">def</span> <span class="nf">_parse_from</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">Expression</span><span class="p">]:</span> +</span><span id="L-1869"><a href="#L-1869"><span class="linenos">1869</span></a> <span class="k">if</span> <span class="ow">not</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">FROM</span><span class="p">):</span> +</span><span id="L-1870"><a href="#L-1870"><span class="linenos">1870</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1871"><a href="#L-1871"><span class="linenos">1871</span></a> +</span><span id="L-1872"><a href="#L-1872"><span class="linenos">1872</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1873"><a href="#L-1873"><span class="linenos">1873</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> </span><span id="L-1874"><a href="#L-1874"><span class="linenos">1874</span></a> <span class="p">)</span> </span><span id="L-1875"><a href="#L-1875"><span class="linenos">1875</span></a> -</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ONE"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> -</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="s2">"ONE ROW PER MATCH"</span><span class="p">)</span> -</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALL"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> -</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"ALL ROWS PER MATCH"</span> -</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHOW"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> -</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" SHOW EMPTY MATCHES"</span> -</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OMIT"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> -</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" OMIT EMPTY MATCHES"</span> -</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"UNMATCHED"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">):</span> -</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" WITH UNMATCHED ROWS"</span> -</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> -</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"SKIP"</span><span class="p">):</span> -</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"AFTER MATCH SKIP"</span> -</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PAST"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> -</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" PAST LAST ROW"</span> -</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"NEXT"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> -</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO NEXT ROW"</span> -</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"FIRST"</span><span class="p">):</span> -</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO FIRST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> -</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">):</span> -</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO LAST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> -</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="n">after</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> <span class="n">after</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> -</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PATTERN"</span><span class="p">):</span> -</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> -</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> -</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">)</span> -</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> -</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="n">paren</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> -</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> -</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> -</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> -</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a> <span class="n">paren</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">:</span> -</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="n">paren</span> <span class="o">-=</span> <span class="mi">1</span> -</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a> <span class="k">if</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="L-1876"><a href="#L-1876"><span class="linenos">1876</span></a> <span class="k">def</span> <span class="nf">_parse_match_recognize</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">Expression</span><span class="p">]:</span> +</span><span id="L-1877"><a href="#L-1877"><span class="linenos">1877</span></a> <span class="k">if</span> <span class="ow">not</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">MATCH_RECOGNIZE</span><span class="p">):</span> +</span><span id="L-1878"><a href="#L-1878"><span class="linenos">1878</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1879"><a href="#L-1879"><span class="linenos">1879</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="L-1880"><a href="#L-1880"><span class="linenos">1880</span></a> +</span><span id="L-1881"><a href="#L-1881"><span class="linenos">1881</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> +</span><span id="L-1882"><a href="#L-1882"><span class="linenos">1882</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> +</span><span id="L-1883"><a href="#L-1883"><span class="linenos">1883</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1884"><a href="#L-1884"><span class="linenos">1884</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="L-1885"><a href="#L-1885"><span class="linenos">1885</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MEASURES"</span><span class="p">)</span> +</span><span id="L-1886"><a href="#L-1886"><span class="linenos">1886</span></a> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-1887"><a href="#L-1887"><span class="linenos">1887</span></a> <span class="p">)</span> +</span><span id="L-1888"><a href="#L-1888"><span class="linenos">1888</span></a> +</span><span id="L-1889"><a href="#L-1889"><span class="linenos">1889</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ONE"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> +</span><span id="L-1890"><a href="#L-1890"><span class="linenos">1890</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="s2">"ONE ROW PER MATCH"</span><span class="p">)</span> +</span><span id="L-1891"><a href="#L-1891"><span class="linenos">1891</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALL"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> +</span><span id="L-1892"><a href="#L-1892"><span class="linenos">1892</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"ALL ROWS PER MATCH"</span> +</span><span id="L-1893"><a href="#L-1893"><span class="linenos">1893</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHOW"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> +</span><span id="L-1894"><a href="#L-1894"><span class="linenos">1894</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" SHOW EMPTY MATCHES"</span> +</span><span id="L-1895"><a href="#L-1895"><span class="linenos">1895</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OMIT"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> +</span><span id="L-1896"><a href="#L-1896"><span class="linenos">1896</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" OMIT EMPTY MATCHES"</span> +</span><span id="L-1897"><a href="#L-1897"><span class="linenos">1897</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"UNMATCHED"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">):</span> +</span><span id="L-1898"><a href="#L-1898"><span class="linenos">1898</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" WITH UNMATCHED ROWS"</span> +</span><span id="L-1899"><a href="#L-1899"><span class="linenos">1899</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-1900"><a href="#L-1900"><span class="linenos">1900</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1901"><a href="#L-1901"><span class="linenos">1901</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1902"><a href="#L-1902"><span class="linenos">1902</span></a> +</span><span id="L-1903"><a href="#L-1903"><span class="linenos">1903</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"SKIP"</span><span class="p">):</span> +</span><span id="L-1904"><a href="#L-1904"><span class="linenos">1904</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"AFTER MATCH SKIP"</span> +</span><span id="L-1905"><a href="#L-1905"><span class="linenos">1905</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PAST"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> +</span><span id="L-1906"><a href="#L-1906"><span class="linenos">1906</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" PAST LAST ROW"</span> +</span><span id="L-1907"><a href="#L-1907"><span class="linenos">1907</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"NEXT"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> +</span><span id="L-1908"><a href="#L-1908"><span class="linenos">1908</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO NEXT ROW"</span> +</span><span id="L-1909"><a href="#L-1909"><span class="linenos">1909</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"FIRST"</span><span class="p">):</span> +</span><span id="L-1910"><a href="#L-1910"><span class="linenos">1910</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO FIRST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> +</span><span id="L-1911"><a href="#L-1911"><span class="linenos">1911</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">):</span> +</span><span id="L-1912"><a href="#L-1912"><span class="linenos">1912</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO LAST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> +</span><span id="L-1913"><a href="#L-1913"><span class="linenos">1913</span></a> <span class="n">after</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-1914"><a href="#L-1914"><span class="linenos">1914</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1915"><a href="#L-1915"><span class="linenos">1915</span></a> <span class="n">after</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1916"><a href="#L-1916"><span class="linenos">1916</span></a> +</span><span id="L-1917"><a href="#L-1917"><span class="linenos">1917</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PATTERN"</span><span class="p">):</span> +</span><span id="L-1918"><a href="#L-1918"><span class="linenos">1918</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="L-1919"><a href="#L-1919"><span class="linenos">1919</span></a> +</span><span id="L-1920"><a href="#L-1920"><span class="linenos">1920</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> </span><span id="L-1921"><a href="#L-1921"><span class="linenos">1921</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">)</span> -</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> <span class="n">pattern</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="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">))</span> -</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1922"><a href="#L-1922"><span class="linenos">1922</span></a> +</span><span id="L-1923"><a href="#L-1923"><span class="linenos">1923</span></a> <span class="n">paren</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="L-1924"><a href="#L-1924"><span class="linenos">1924</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> </span><span id="L-1925"><a href="#L-1925"><span class="linenos">1925</span></a> -</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a> <span class="n">define</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a> <span class="p">)</span> -</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a> -</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</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><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">,</span> -</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> -</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> -</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="n">measures</span><span class="o">=</span><span class="n">measures</span><span class="p">,</span> -</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> -</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a> <span class="n">after</span><span class="o">=</span><span class="n">after</span><span class="p">,</span> -</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a> <span class="n">pattern</span><span class="o">=</span><span class="n">pattern</span><span class="p">,</span> -</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="n">define</span><span class="o">=</span><span class="n">define</span><span class="p">,</span> -</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a> <span class="p">)</span> -</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a> -</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a> <span class="k">def</span> <span class="nf">_parse_lateral</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">Expression</span><span class="p">]:</span> -</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a> <span class="n">outer_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> -</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</span></a> <span class="n">cross_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> -</span><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a> -</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> -</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a> <span class="n">view</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a> <span class="n">outer</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">cross_apply</span> -</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a> <span class="k">elif</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">LATERAL</span><span class="p">):</span> -</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a> <span class="n">view</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">VIEW</span><span class="p">)</span> -</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a> <span class="n">outer</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">OUTER</span><span class="p">)</span> -</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a> -</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> -</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">(</span> -</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a> <span class="n">expression</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="p">)</span> -</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> -</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="n">table_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> -</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="k">if</span> <span class="n">view</span><span class="p">:</span> -</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> <span class="k">if</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">ALIAS</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span> -</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="n">table_alias</span> <span class="o">=</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">TableAlias</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">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> -</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> -</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> -</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">,</span> -</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> <span class="n">view</span><span class="o">=</span><span class="n">view</span><span class="p">,</span> -</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="n">outer</span><span class="o">=</span><span class="n">outer</span><span class="p">,</span> -</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> -</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="p">)</span> -</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> -</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> -</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</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">Join</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="kc">None</span> <span class="k">if</span> <span class="n">cross_apply</span> <span class="k">else</span> <span class="s2">"LEFT"</span><span class="p">)</span> -</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> -</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-1926"><a href="#L-1926"><span class="linenos">1926</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="L-1927"><a href="#L-1927"><span class="linenos">1927</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> +</span><span id="L-1928"><a href="#L-1928"><span class="linenos">1928</span></a> <span class="n">paren</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-1929"><a href="#L-1929"><span class="linenos">1929</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">:</span> +</span><span id="L-1930"><a href="#L-1930"><span class="linenos">1930</span></a> <span class="n">paren</span> <span class="o">-=</span> <span class="mi">1</span> +</span><span id="L-1931"><a href="#L-1931"><span class="linenos">1931</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-1932"><a href="#L-1932"><span class="linenos">1932</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1933"><a href="#L-1933"><span class="linenos">1933</span></a> <span class="k">if</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="L-1934"><a href="#L-1934"><span class="linenos">1934</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">)</span> +</span><span id="L-1935"><a href="#L-1935"><span class="linenos">1935</span></a> <span class="n">pattern</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="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">))</span> +</span><span id="L-1936"><a href="#L-1936"><span class="linenos">1936</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1937"><a href="#L-1937"><span class="linenos">1937</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1938"><a href="#L-1938"><span class="linenos">1938</span></a> +</span><span id="L-1939"><a href="#L-1939"><span class="linenos">1939</span></a> <span class="n">define</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-1940"><a href="#L-1940"><span class="linenos">1940</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-1941"><a href="#L-1941"><span class="linenos">1941</span></a> <span class="p">)</span> +</span><span id="L-1942"><a href="#L-1942"><span class="linenos">1942</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-1943"><a href="#L-1943"><span class="linenos">1943</span></a> +</span><span id="L-1944"><a href="#L-1944"><span class="linenos">1944</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><span id="L-1945"><a href="#L-1945"><span class="linenos">1945</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">,</span> +</span><span id="L-1946"><a href="#L-1946"><span class="linenos">1946</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> +</span><span id="L-1947"><a href="#L-1947"><span class="linenos">1947</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> +</span><span id="L-1948"><a href="#L-1948"><span class="linenos">1948</span></a> <span class="n">measures</span><span class="o">=</span><span class="n">measures</span><span class="p">,</span> +</span><span id="L-1949"><a href="#L-1949"><span class="linenos">1949</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> +</span><span id="L-1950"><a href="#L-1950"><span class="linenos">1950</span></a> <span class="n">after</span><span class="o">=</span><span class="n">after</span><span class="p">,</span> +</span><span id="L-1951"><a href="#L-1951"><span class="linenos">1951</span></a> <span class="n">pattern</span><span class="o">=</span><span class="n">pattern</span><span class="p">,</span> +</span><span id="L-1952"><a href="#L-1952"><span class="linenos">1952</span></a> <span class="n">define</span><span class="o">=</span><span class="n">define</span><span class="p">,</span> +</span><span id="L-1953"><a href="#L-1953"><span class="linenos">1953</span></a> <span class="p">)</span> +</span><span id="L-1954"><a href="#L-1954"><span class="linenos">1954</span></a> +</span><span id="L-1955"><a href="#L-1955"><span class="linenos">1955</span></a> <span class="k">def</span> <span class="nf">_parse_lateral</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">Expression</span><span class="p">]:</span> +</span><span id="L-1956"><a href="#L-1956"><span class="linenos">1956</span></a> <span class="n">outer_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> +</span><span id="L-1957"><a href="#L-1957"><span class="linenos">1957</span></a> <span class="n">cross_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> +</span><span id="L-1958"><a href="#L-1958"><span class="linenos">1958</span></a> +</span><span id="L-1959"><a href="#L-1959"><span class="linenos">1959</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> +</span><span id="L-1960"><a href="#L-1960"><span class="linenos">1960</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1961"><a href="#L-1961"><span class="linenos">1961</span></a> <span class="n">view</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1962"><a href="#L-1962"><span class="linenos">1962</span></a> <span class="n">outer</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">cross_apply</span> +</span><span id="L-1963"><a href="#L-1963"><span class="linenos">1963</span></a> <span class="k">elif</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">LATERAL</span><span class="p">):</span> +</span><span id="L-1964"><a href="#L-1964"><span class="linenos">1964</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-1965"><a href="#L-1965"><span class="linenos">1965</span></a> <span class="n">view</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">VIEW</span><span class="p">)</span> +</span><span id="L-1966"><a href="#L-1966"><span class="linenos">1966</span></a> <span class="n">outer</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">OUTER</span><span class="p">)</span> +</span><span id="L-1967"><a href="#L-1967"><span class="linenos">1967</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1968"><a href="#L-1968"><span class="linenos">1968</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-1969"><a href="#L-1969"><span class="linenos">1969</span></a> +</span><span id="L-1970"><a href="#L-1970"><span class="linenos">1970</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="L-1971"><a href="#L-1971"><span class="linenos">1971</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1972"><a href="#L-1972"><span class="linenos">1972</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> +</span><span id="L-1973"><a href="#L-1973"><span class="linenos">1973</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">(</span> +</span><span id="L-1974"><a href="#L-1974"><span class="linenos">1974</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1975"><a href="#L-1975"><span class="linenos">1975</span></a> <span class="n">expression</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="L-1976"><a href="#L-1976"><span class="linenos">1976</span></a> <span class="p">)</span> +</span><span id="L-1977"><a href="#L-1977"><span class="linenos">1977</span></a> +</span><span id="L-1978"><a href="#L-1978"><span class="linenos">1978</span></a> <span class="n">table_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="L-1979"><a href="#L-1979"><span class="linenos">1979</span></a> +</span><span id="L-1980"><a href="#L-1980"><span class="linenos">1980</span></a> <span class="k">if</span> <span class="n">view</span><span class="p">:</span> +</span><span id="L-1981"><a href="#L-1981"><span class="linenos">1981</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-1982"><a href="#L-1982"><span class="linenos">1982</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> <span class="k">if</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">ALIAS</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span> +</span><span id="L-1983"><a href="#L-1983"><span class="linenos">1983</span></a> <span class="n">table_alias</span> <span class="o">=</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">TableAlias</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">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> +</span><span id="L-1984"><a href="#L-1984"><span class="linenos">1984</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1985"><a href="#L-1985"><span class="linenos">1985</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> </span><span id="L-1986"><a href="#L-1986"><span class="linenos">1986</span></a> -</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a> <span class="k">def</span> <span class="nf">_parse_join_side_and_kind</span><span class="p">(</span> -</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]]:</span> -</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</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">NATURAL</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> -</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_SIDES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> -</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_KINDS</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> -</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a> <span class="p">)</span> -</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> -</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</span></a> <span class="k">def</span> <span class="nf">_parse_join</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_join_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-1997"><a href="#L-1997"><span class="linenos">1997</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join_side_and_kind</span><span class="p">()</span> -</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a> -</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_join_token</span> <span class="ow">and</span> <span class="ow">not</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">JOIN</span><span class="p">):</span> -</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> -</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a> <span class="n">kwargs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span> -</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a> <span class="nb">str</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">|</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-2004"><a href="#L-2004"><span class="linenos">2004</span></a> <span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()}</span> -</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a> -</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> -</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"natural"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> -</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"side"</span><span class="p">]</span> <span class="o">=</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-2010"><a href="#L-2010"><span class="linenos">2010</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> <span class="o">=</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a> -</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a> <span class="k">if</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">ON</span><span class="p">):</span> -</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a> <span class="k">elif</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">USING</span><span class="p">):</span> -</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"using"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="L-2017"><a href="#L-2017"><span class="linenos">2017</span></a> -</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a> <span 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">Join</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a> -</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="k">def</span> <span class="nf">_parse_index</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</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">ON</span><span class="p">)</span> -</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</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">TABLE</span><span class="p">)</span> <span class="c1"># hive</span> -</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a> -</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</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><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> -</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> -</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a> <span class="n">table</span><span class="o">=</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">Table</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()),</span> -</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a> <span class="n">columns</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">(),</span> -</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> <span class="p">)</span> -</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a> -</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a> <span class="k">def</span> <span class="nf">_parse_create_table_index</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">Expression</span><span class="p">]:</span> -</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> -</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">)</span> -</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</span></a> <span class="n">amp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AMP"</span><span class="p">)</span> -</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</span></a> <span class="k">if</span> <span class="ow">not</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">INDEX</span><span class="p">):</span> -</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</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><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> -</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> -</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">,</span> -</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> -</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="n">primary</span><span class="o">=</span><span class="n">primary</span><span class="p">,</span> -</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="n">amp</span><span class="o">=</span><span class="n">amp</span><span class="p">,</span> -</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a> <span class="p">)</span> -</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a> -</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a> <span class="n">table</span> <span class="o">=</span> <span class="p">(</span><span class="ow">not</span> <span class="n">schema</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">())</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</span></a> -</span><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> -</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a> <span class="k">if</span> <span class="n">catalog</span><span class="p">:</span> -</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a> <span class="c1"># This allows nesting the table in arbitrarily many dot expressions if needed</span> -</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a> <span class="n">table</span> <span class="o">=</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">Dot</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">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> -</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="n">db</span> -</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a> <span class="n">db</span> <span class="o">=</span> <span class="n">table</span> -</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> -</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> -</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected table name but got </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1987"><a href="#L-1987"><span class="linenos">1987</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-1988"><a href="#L-1988"><span class="linenos">1988</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">,</span> +</span><span id="L-1989"><a href="#L-1989"><span class="linenos">1989</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-1990"><a href="#L-1990"><span class="linenos">1990</span></a> <span class="n">view</span><span class="o">=</span><span class="n">view</span><span class="p">,</span> +</span><span id="L-1991"><a href="#L-1991"><span class="linenos">1991</span></a> <span class="n">outer</span><span class="o">=</span><span class="n">outer</span><span class="p">,</span> +</span><span id="L-1992"><a href="#L-1992"><span class="linenos">1992</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> +</span><span id="L-1993"><a href="#L-1993"><span class="linenos">1993</span></a> <span class="p">)</span> +</span><span id="L-1994"><a href="#L-1994"><span class="linenos">1994</span></a> +</span><span id="L-1995"><a href="#L-1995"><span class="linenos">1995</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> +</span><span id="L-1996"><a href="#L-1996"><span class="linenos">1996</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">Join</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="kc">None</span> <span class="k">if</span> <span class="n">cross_apply</span> <span class="k">else</span> <span class="s2">"LEFT"</span><span class="p">)</span> +</span><span id="L-1997"><a href="#L-1997"><span class="linenos">1997</span></a> +</span><span id="L-1998"><a href="#L-1998"><span class="linenos">1998</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-1999"><a href="#L-1999"><span class="linenos">1999</span></a> +</span><span id="L-2000"><a href="#L-2000"><span class="linenos">2000</span></a> <span class="k">def</span> <span class="nf">_parse_join_side_and_kind</span><span class="p">(</span> +</span><span id="L-2001"><a href="#L-2001"><span class="linenos">2001</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-2002"><a href="#L-2002"><span class="linenos">2002</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]]:</span> +</span><span id="L-2003"><a href="#L-2003"><span class="linenos">2003</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="L-2004"><a href="#L-2004"><span class="linenos">2004</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">NATURAL</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> +</span><span id="L-2005"><a href="#L-2005"><span class="linenos">2005</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_SIDES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> +</span><span id="L-2006"><a href="#L-2006"><span class="linenos">2006</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_KINDS</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> +</span><span id="L-2007"><a href="#L-2007"><span class="linenos">2007</span></a> <span class="p">)</span> +</span><span id="L-2008"><a href="#L-2008"><span class="linenos">2008</span></a> +</span><span id="L-2009"><a href="#L-2009"><span class="linenos">2009</span></a> <span class="k">def</span> <span class="nf">_parse_join</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_join_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2010"><a href="#L-2010"><span class="linenos">2010</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join_side_and_kind</span><span class="p">()</span> +</span><span id="L-2011"><a href="#L-2011"><span class="linenos">2011</span></a> +</span><span id="L-2012"><a href="#L-2012"><span class="linenos">2012</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_join_token</span> <span class="ow">and</span> <span class="ow">not</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">JOIN</span><span class="p">):</span> +</span><span id="L-2013"><a href="#L-2013"><span class="linenos">2013</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2014"><a href="#L-2014"><span class="linenos">2014</span></a> +</span><span id="L-2015"><a href="#L-2015"><span class="linenos">2015</span></a> <span class="n">kwargs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span> +</span><span id="L-2016"><a href="#L-2016"><span class="linenos">2016</span></a> <span class="nb">str</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">|</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-2017"><a href="#L-2017"><span class="linenos">2017</span></a> <span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()}</span> +</span><span id="L-2018"><a href="#L-2018"><span class="linenos">2018</span></a> +</span><span id="L-2019"><a href="#L-2019"><span class="linenos">2019</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> +</span><span id="L-2020"><a href="#L-2020"><span class="linenos">2020</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"natural"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-2021"><a href="#L-2021"><span class="linenos">2021</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> +</span><span id="L-2022"><a href="#L-2022"><span class="linenos">2022</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"side"</span><span class="p">]</span> <span class="o">=</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-2023"><a href="#L-2023"><span class="linenos">2023</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="L-2024"><a href="#L-2024"><span class="linenos">2024</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> <span class="o">=</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-2025"><a href="#L-2025"><span class="linenos">2025</span></a> +</span><span id="L-2026"><a href="#L-2026"><span class="linenos">2026</span></a> <span class="k">if</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">ON</span><span class="p">):</span> +</span><span id="L-2027"><a href="#L-2027"><span class="linenos">2027</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-2028"><a href="#L-2028"><span class="linenos">2028</span></a> <span class="k">elif</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">USING</span><span class="p">):</span> +</span><span id="L-2029"><a href="#L-2029"><span class="linenos">2029</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"using"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="L-2030"><a href="#L-2030"><span class="linenos">2030</span></a> +</span><span id="L-2031"><a href="#L-2031"><span class="linenos">2031</span></a> <span class="k">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">Join</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-2032"><a href="#L-2032"><span class="linenos">2032</span></a> +</span><span id="L-2033"><a href="#L-2033"><span class="linenos">2033</span></a> <span class="k">def</span> <span class="nf">_parse_index</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2034"><a href="#L-2034"><span class="linenos">2034</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-2035"><a href="#L-2035"><span class="linenos">2035</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">ON</span><span class="p">)</span> +</span><span id="L-2036"><a href="#L-2036"><span class="linenos">2036</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">TABLE</span><span class="p">)</span> <span class="c1"># hive</span> +</span><span id="L-2037"><a href="#L-2037"><span class="linenos">2037</span></a> +</span><span id="L-2038"><a href="#L-2038"><span class="linenos">2038</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2039"><a href="#L-2039"><span class="linenos">2039</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> +</span><span id="L-2040"><a href="#L-2040"><span class="linenos">2040</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> +</span><span id="L-2041"><a href="#L-2041"><span class="linenos">2041</span></a> <span class="n">table</span><span class="o">=</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">Table</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()),</span> +</span><span id="L-2042"><a href="#L-2042"><span class="linenos">2042</span></a> <span class="n">columns</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">(),</span> +</span><span id="L-2043"><a href="#L-2043"><span class="linenos">2043</span></a> <span class="p">)</span> +</span><span id="L-2044"><a href="#L-2044"><span class="linenos">2044</span></a> +</span><span id="L-2045"><a href="#L-2045"><span class="linenos">2045</span></a> <span class="k">def</span> <span class="nf">_parse_create_table_index</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">Expression</span><span class="p">]:</span> +</span><span id="L-2046"><a href="#L-2046"><span class="linenos">2046</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> +</span><span id="L-2047"><a href="#L-2047"><span class="linenos">2047</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">)</span> +</span><span id="L-2048"><a href="#L-2048"><span class="linenos">2048</span></a> <span class="n">amp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AMP"</span><span class="p">)</span> +</span><span id="L-2049"><a href="#L-2049"><span class="linenos">2049</span></a> <span class="k">if</span> <span class="ow">not</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">INDEX</span><span class="p">):</span> +</span><span id="L-2050"><a href="#L-2050"><span class="linenos">2050</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2051"><a href="#L-2051"><span class="linenos">2051</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-2052"><a href="#L-2052"><span class="linenos">2052</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2053"><a href="#L-2053"><span class="linenos">2053</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-2054"><a href="#L-2054"><span class="linenos">2054</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-2055"><a href="#L-2055"><span class="linenos">2055</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><span id="L-2056"><a href="#L-2056"><span class="linenos">2056</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> +</span><span id="L-2057"><a href="#L-2057"><span class="linenos">2057</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> +</span><span id="L-2058"><a href="#L-2058"><span class="linenos">2058</span></a> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">,</span> +</span><span id="L-2059"><a href="#L-2059"><span class="linenos">2059</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> +</span><span id="L-2060"><a href="#L-2060"><span class="linenos">2060</span></a> <span class="n">primary</span><span class="o">=</span><span class="n">primary</span><span class="p">,</span> +</span><span id="L-2061"><a href="#L-2061"><span class="linenos">2061</span></a> <span class="n">amp</span><span class="o">=</span><span class="n">amp</span><span class="p">,</span> +</span><span id="L-2062"><a href="#L-2062"><span class="linenos">2062</span></a> <span class="p">)</span> +</span><span id="L-2063"><a href="#L-2063"><span class="linenos">2063</span></a> +</span><span id="L-2064"><a href="#L-2064"><span class="linenos">2064</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2065"><a href="#L-2065"><span class="linenos">2065</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2066"><a href="#L-2066"><span class="linenos">2066</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-2067"><a href="#L-2067"><span class="linenos">2067</span></a> -</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</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><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">()</span> -</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="p">)</span> -</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> -</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> -</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</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-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> -</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> -</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> -</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="k">return</span> <span class="n">lateral</span> -</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a> -</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> -</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</span></a> -</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="k">return</span> <span class="n">unnest</span> -</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> -</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_derived_table_values</span><span class="p">()</span> -</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</span></a> -</span><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a> <span class="k">if</span> <span class="n">values</span><span class="p">:</span> -</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="k">return</span> <span class="n">values</span> +</span><span id="L-2068"><a href="#L-2068"><span class="linenos">2068</span></a> <span class="n">table</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-2069"><a href="#L-2069"><span class="linenos">2069</span></a> <span class="p">(</span><span class="ow">not</span> <span class="n">schema</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">())</span> +</span><span id="L-2070"><a href="#L-2070"><span class="linenos">2070</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-2071"><a href="#L-2071"><span class="linenos">2071</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string_as_identifier</span><span class="p">()</span> +</span><span id="L-2072"><a href="#L-2072"><span class="linenos">2072</span></a> <span class="p">)</span> +</span><span id="L-2073"><a href="#L-2073"><span class="linenos">2073</span></a> +</span><span id="L-2074"><a href="#L-2074"><span class="linenos">2074</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> +</span><span id="L-2075"><a href="#L-2075"><span class="linenos">2075</span></a> <span class="k">if</span> <span class="n">catalog</span><span class="p">:</span> +</span><span id="L-2076"><a href="#L-2076"><span class="linenos">2076</span></a> <span class="c1"># This allows nesting the table in arbitrarily many dot expressions if needed</span> +</span><span id="L-2077"><a href="#L-2077"><span class="linenos">2077</span></a> <span class="n">table</span> <span class="o">=</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">Dot</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">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> +</span><span id="L-2078"><a href="#L-2078"><span class="linenos">2078</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2079"><a href="#L-2079"><span class="linenos">2079</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="n">db</span> +</span><span id="L-2080"><a href="#L-2080"><span class="linenos">2080</span></a> <span class="n">db</span> <span class="o">=</span> <span class="n">table</span> +</span><span id="L-2081"><a href="#L-2081"><span class="linenos">2081</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-2082"><a href="#L-2082"><span class="linenos">2082</span></a> +</span><span id="L-2083"><a href="#L-2083"><span class="linenos">2083</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> +</span><span id="L-2084"><a href="#L-2084"><span class="linenos">2084</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected table name but got </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-2085"><a href="#L-2085"><span class="linenos">2085</span></a> +</span><span id="L-2086"><a href="#L-2086"><span class="linenos">2086</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><span id="L-2087"><a href="#L-2087"><span class="linenos">2087</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">()</span> +</span><span id="L-2088"><a href="#L-2088"><span class="linenos">2088</span></a> <span class="p">)</span> </span><span id="L-2089"><a href="#L-2089"><span class="linenos">2089</span></a> -</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a> -</span><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</span></a> <span class="k">if</span> <span class="n">subquery</span><span class="p">:</span> -</span><span id="L-2093"><a href="#L-2093"><span class="linenos">2093</span></a> <span class="k">return</span> <span class="n">subquery</span> +</span><span id="L-2090"><a href="#L-2090"><span class="linenos">2090</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> +</span><span id="L-2091"><a href="#L-2091"><span class="linenos">2091</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="L-2092"><a href="#L-2092"><span class="linenos">2092</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-2093"><a href="#L-2093"><span class="linenos">2093</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> </span><span id="L-2094"><a href="#L-2094"><span class="linenos">2094</span></a> -</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> -</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a> -</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a> <span class="k">if</span> <span class="n">schema</span><span class="p">:</span> -</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2095"><a href="#L-2095"><span class="linenos">2095</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> +</span><span id="L-2096"><a href="#L-2096"><span class="linenos">2096</span></a> <span class="k">return</span> <span class="n">lateral</span> +</span><span id="L-2097"><a href="#L-2097"><span class="linenos">2097</span></a> +</span><span id="L-2098"><a href="#L-2098"><span class="linenos">2098</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> </span><span id="L-2099"><a href="#L-2099"><span class="linenos">2099</span></a> -</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> -</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> +</span><span id="L-2100"><a href="#L-2100"><span class="linenos">2100</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="L-2101"><a href="#L-2101"><span class="linenos">2101</span></a> <span class="k">return</span> <span class="n">unnest</span> </span><span id="L-2102"><a href="#L-2102"><span class="linenos">2102</span></a> -</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">)</span> +</span><span id="L-2103"><a href="#L-2103"><span class="linenos">2103</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_derived_table_values</span><span class="p">()</span> </span><span id="L-2104"><a href="#L-2104"><span class="linenos">2104</span></a> -</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> +</span><span id="L-2105"><a href="#L-2105"><span class="linenos">2105</span></a> <span class="k">if</span> <span class="n">values</span><span class="p">:</span> +</span><span id="L-2106"><a href="#L-2106"><span class="linenos">2106</span></a> <span class="k">return</span> <span class="n">values</span> </span><span id="L-2107"><a href="#L-2107"><span class="linenos">2107</span></a> -</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</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">"pivots"</span><span class="p">):</span> -</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"pivots"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">())</span> -</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a> -</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> -</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <span class="s2">"hints"</span><span class="p">,</span> -</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> -</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a> <span class="p">)</span> -</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a> -</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> -</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> -</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a> -</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a> <span class="k">if</span> <span class="n">table_sample</span><span class="p">:</span> -</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a> <span class="n">table_sample</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">this</span><span class="p">)</span> -</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">table_sample</span> +</span><span id="L-2108"><a href="#L-2108"><span class="linenos">2108</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-2109"><a href="#L-2109"><span class="linenos">2109</span></a> +</span><span id="L-2110"><a href="#L-2110"><span class="linenos">2110</span></a> <span class="k">if</span> <span class="n">subquery</span><span class="p">:</span> +</span><span id="L-2111"><a href="#L-2111"><span class="linenos">2111</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">subquery</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">"pivots"</span><span class="p">):</span> +</span><span id="L-2112"><a href="#L-2112"><span class="linenos">2112</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"pivots"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">())</span> +</span><span id="L-2113"><a href="#L-2113"><span class="linenos">2113</span></a> <span class="k">return</span> <span class="n">subquery</span> +</span><span id="L-2114"><a href="#L-2114"><span class="linenos">2114</span></a> +</span><span id="L-2115"><a href="#L-2115"><span class="linenos">2115</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> +</span><span id="L-2116"><a href="#L-2116"><span class="linenos">2116</span></a> +</span><span id="L-2117"><a href="#L-2117"><span class="linenos">2117</span></a> <span class="k">if</span> <span class="n">schema</span><span class="p">:</span> +</span><span id="L-2118"><a href="#L-2118"><span class="linenos">2118</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2119"><a href="#L-2119"><span class="linenos">2119</span></a> +</span><span id="L-2120"><a href="#L-2120"><span class="linenos">2120</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> +</span><span id="L-2121"><a href="#L-2121"><span class="linenos">2121</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> +</span><span id="L-2122"><a href="#L-2122"><span class="linenos">2122</span></a> +</span><span id="L-2123"><a href="#L-2123"><span class="linenos">2123</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">)</span> </span><span id="L-2124"><a href="#L-2124"><span class="linenos">2124</span></a> -</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a> -</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a> <span class="k">def</span> <span class="nf">_parse_unnest</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">Expression</span><span class="p">]:</span> -</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a> <span class="k">if</span> <span class="ow">not</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">UNNEST</span><span class="p">):</span> -</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2125"><a href="#L-2125"><span class="linenos">2125</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="L-2126"><a href="#L-2126"><span class="linenos">2126</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> +</span><span id="L-2127"><a href="#L-2127"><span class="linenos">2127</span></a> +</span><span id="L-2128"><a href="#L-2128"><span class="linenos">2128</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</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">"pivots"</span><span class="p">):</span> +</span><span id="L-2129"><a href="#L-2129"><span class="linenos">2129</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"pivots"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">())</span> </span><span id="L-2130"><a href="#L-2130"><span class="linenos">2130</span></a> -</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="nb">bool</span><span class="p">(</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">WITH</span><span class="p">)</span> <span class="ow">and</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">ORDINALITY</span><span class="p">))</span> -</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> -</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a> -</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> -</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a> <span class="k">if</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> -</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unexpected extra column alias in unnest."</span><span class="p">)</span> -</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a> <span class="n">alias</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[</span><span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">])</span> -</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a> <span class="n">alias</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="kc">None</span><span class="p">)</span> +</span><span id="L-2131"><a href="#L-2131"><span class="linenos">2131</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> +</span><span id="L-2132"><a href="#L-2132"><span class="linenos">2132</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="L-2133"><a href="#L-2133"><span class="linenos">2133</span></a> <span class="s2">"hints"</span><span class="p">,</span> +</span><span id="L-2134"><a href="#L-2134"><span class="linenos">2134</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> +</span><span id="L-2135"><a href="#L-2135"><span class="linenos">2135</span></a> <span class="p">)</span> +</span><span id="L-2136"><a href="#L-2136"><span class="linenos">2136</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2137"><a href="#L-2137"><span class="linenos">2137</span></a> +</span><span id="L-2138"><a href="#L-2138"><span class="linenos">2138</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> +</span><span id="L-2139"><a href="#L-2139"><span class="linenos">2139</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> </span><span id="L-2140"><a href="#L-2140"><span class="linenos">2140</span></a> -</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">):</span> -</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</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">ALIAS</span><span class="p">)</span> -</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a> -</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</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><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">,</span> -</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a> <span class="n">ordinality</span><span class="o">=</span><span class="n">ordinality</span><span class="p">,</span> -</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> -</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> -</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="p">)</span> -</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a> -</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a> <span class="k">def</span> <span class="nf">_parse_derived_table_values</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">Expression</span><span class="p">]:</span> -</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a> <span class="n">is_derived</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">)</span> -</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_derived</span> <span class="ow">and</span> <span class="ow">not</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">VALUES</span><span class="p">):</span> -</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> -</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">)</span> +</span><span id="L-2141"><a href="#L-2141"><span class="linenos">2141</span></a> <span class="k">if</span> <span class="n">table_sample</span><span class="p">:</span> +</span><span id="L-2142"><a href="#L-2142"><span class="linenos">2142</span></a> <span class="n">table_sample</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">this</span><span class="p">)</span> +</span><span id="L-2143"><a href="#L-2143"><span class="linenos">2143</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">table_sample</span> +</span><span id="L-2144"><a href="#L-2144"><span class="linenos">2144</span></a> +</span><span id="L-2145"><a href="#L-2145"><span class="linenos">2145</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2146"><a href="#L-2146"><span class="linenos">2146</span></a> +</span><span id="L-2147"><a href="#L-2147"><span class="linenos">2147</span></a> <span class="k">def</span> <span class="nf">_parse_unnest</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">Expression</span><span class="p">]:</span> +</span><span id="L-2148"><a href="#L-2148"><span class="linenos">2148</span></a> <span class="k">if</span> <span class="ow">not</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">UNNEST</span><span class="p">):</span> +</span><span id="L-2149"><a href="#L-2149"><span class="linenos">2149</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2150"><a href="#L-2150"><span class="linenos">2150</span></a> +</span><span id="L-2151"><a href="#L-2151"><span class="linenos">2151</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-2152"><a href="#L-2152"><span class="linenos">2152</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="nb">bool</span><span class="p">(</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">WITH</span><span class="p">)</span> <span class="ow">and</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">ORDINALITY</span><span class="p">))</span> +</span><span id="L-2153"><a href="#L-2153"><span class="linenos">2153</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> +</span><span id="L-2154"><a href="#L-2154"><span class="linenos">2154</span></a> +</span><span id="L-2155"><a href="#L-2155"><span class="linenos">2155</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> +</span><span id="L-2156"><a href="#L-2156"><span class="linenos">2156</span></a> <span class="k">if</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> +</span><span id="L-2157"><a href="#L-2157"><span class="linenos">2157</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unexpected extra column alias in unnest."</span><span class="p">)</span> +</span><span id="L-2158"><a href="#L-2158"><span class="linenos">2158</span></a> <span class="n">alias</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[</span><span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">])</span> +</span><span id="L-2159"><a href="#L-2159"><span class="linenos">2159</span></a> <span class="n">alias</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="kc">None</span><span class="p">)</span> </span><span id="L-2160"><a href="#L-2160"><span class="linenos">2160</span></a> -</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="k">if</span> <span class="n">is_derived</span><span class="p">:</span> -</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</span></a> -</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</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">Values</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> +</span><span id="L-2161"><a href="#L-2161"><span class="linenos">2161</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2162"><a href="#L-2162"><span class="linenos">2162</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">):</span> +</span><span id="L-2163"><a href="#L-2163"><span class="linenos">2163</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">ALIAS</span><span class="p">)</span> +</span><span id="L-2164"><a href="#L-2164"><span class="linenos">2164</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> </span><span id="L-2165"><a href="#L-2165"><span class="linenos">2165</span></a> -</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</span></a> <span class="k">def</span> <span class="nf">_parse_table_sample</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">as_modifier</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE_SAMPLE</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="p">(</span> -</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="n">as_modifier</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"USING"</span><span class="p">,</span> <span class="s2">"SAMPLE"</span><span class="p">)</span> -</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="p">):</span> -</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a> -</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="n">size</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a> -</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLESAMPLE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span> <span class="k">else</span> <span class="s2">"USING SAMPLE"</span> -</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">tokens</span><span class="o">=</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,))</span> -</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a> -</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</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">L_PAREN</span><span class="p">)</span> -</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</span></a> -</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a> <span class="n">num</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> -</span><span id="L-2187"><a href="#L-2187"><span class="linenos">2187</span></a> <span class="k">if</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">BUCKET</span><span class="p">):</span> -</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</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">OUT_OF</span><span class="p">)</span> -</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</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">ON</span><span class="p">)</span> -</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> -</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">)):</span> -</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="n">num</span> -</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a> <span class="k">elif</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">ROWS</span><span class="p">):</span> -</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="n">num</span> -</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a> <span class="n">size</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="L-2166"><a href="#L-2166"><span class="linenos">2166</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><span id="L-2167"><a href="#L-2167"><span class="linenos">2167</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">,</span> +</span><span id="L-2168"><a href="#L-2168"><span class="linenos">2168</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2169"><a href="#L-2169"><span class="linenos">2169</span></a> <span class="n">ordinality</span><span class="o">=</span><span class="n">ordinality</span><span class="p">,</span> +</span><span id="L-2170"><a href="#L-2170"><span class="linenos">2170</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> +</span><span id="L-2171"><a href="#L-2171"><span class="linenos">2171</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> +</span><span id="L-2172"><a href="#L-2172"><span class="linenos">2172</span></a> <span class="p">)</span> +</span><span id="L-2173"><a href="#L-2173"><span class="linenos">2173</span></a> +</span><span id="L-2174"><a href="#L-2174"><span class="linenos">2174</span></a> <span class="k">def</span> <span class="nf">_parse_derived_table_values</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">Expression</span><span class="p">]:</span> +</span><span id="L-2175"><a href="#L-2175"><span class="linenos">2175</span></a> <span class="n">is_derived</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">)</span> +</span><span id="L-2176"><a href="#L-2176"><span class="linenos">2176</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_derived</span> <span class="ow">and</span> <span class="ow">not</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">VALUES</span><span class="p">):</span> +</span><span id="L-2177"><a href="#L-2177"><span class="linenos">2177</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2178"><a href="#L-2178"><span class="linenos">2178</span></a> +</span><span id="L-2179"><a href="#L-2179"><span class="linenos">2179</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">)</span> +</span><span id="L-2180"><a href="#L-2180"><span class="linenos">2180</span></a> +</span><span id="L-2181"><a href="#L-2181"><span class="linenos">2181</span></a> <span class="k">if</span> <span class="n">is_derived</span><span class="p">:</span> +</span><span id="L-2182"><a href="#L-2182"><span class="linenos">2182</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2183"><a href="#L-2183"><span class="linenos">2183</span></a> +</span><span id="L-2184"><a href="#L-2184"><span class="linenos">2184</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">Values</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> +</span><span id="L-2185"><a href="#L-2185"><span class="linenos">2185</span></a> +</span><span id="L-2186"><a href="#L-2186"><span class="linenos">2186</span></a> <span class="k">def</span> <span class="nf">_parse_table_sample</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">as_modifier</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2187"><a href="#L-2187"><span class="linenos">2187</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE_SAMPLE</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="p">(</span> +</span><span id="L-2188"><a href="#L-2188"><span class="linenos">2188</span></a> <span class="n">as_modifier</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"USING"</span><span class="p">,</span> <span class="s2">"SAMPLE"</span><span class="p">)</span> +</span><span id="L-2189"><a href="#L-2189"><span class="linenos">2189</span></a> <span class="p">):</span> +</span><span id="L-2190"><a href="#L-2190"><span class="linenos">2190</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2191"><a href="#L-2191"><span class="linenos">2191</span></a> +</span><span id="L-2192"><a href="#L-2192"><span class="linenos">2192</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2193"><a href="#L-2193"><span class="linenos">2193</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2194"><a href="#L-2194"><span class="linenos">2194</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2195"><a href="#L-2195"><span class="linenos">2195</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2196"><a href="#L-2196"><span class="linenos">2196</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2197"><a href="#L-2197"><span class="linenos">2197</span></a> <span class="n">size</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2198"><a href="#L-2198"><span class="linenos">2198</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-2199"><a href="#L-2199"><span class="linenos">2199</span></a> -</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</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">R_PAREN</span><span class="p">)</span> -</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a> -</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> -</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a> <span class="n">seed</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"SEED"</span><span class="p">,</span> <span class="s2">"REPEATABLE"</span><span class="p">)):</span> -</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> -</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a> -</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</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><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">,</span> -</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</span></a> <span class="n">method</span><span class="o">=</span><span class="n">method</span><span class="p">,</span> -</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a> <span class="n">bucket_numerator</span><span class="o">=</span><span class="n">bucket_numerator</span><span class="p">,</span> -</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="n">bucket_denominator</span><span class="o">=</span><span class="n">bucket_denominator</span><span class="p">,</span> -</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="n">bucket_field</span><span class="o">=</span><span class="n">bucket_field</span><span class="p">,</span> -</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> <span class="n">percent</span><span class="o">=</span><span class="n">percent</span><span class="p">,</span> -</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> -</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> -</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">,</span> -</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</span></a> <span class="p">)</span> +</span><span id="L-2200"><a href="#L-2200"><span class="linenos">2200</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLESAMPLE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span> <span class="k">else</span> <span class="s2">"USING SAMPLE"</span> +</span><span id="L-2201"><a href="#L-2201"><span class="linenos">2201</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">tokens</span><span class="o">=</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,))</span> +</span><span id="L-2202"><a href="#L-2202"><span class="linenos">2202</span></a> +</span><span id="L-2203"><a href="#L-2203"><span class="linenos">2203</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">L_PAREN</span><span class="p">)</span> +</span><span id="L-2204"><a href="#L-2204"><span class="linenos">2204</span></a> +</span><span id="L-2205"><a href="#L-2205"><span class="linenos">2205</span></a> <span class="n">num</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-2206"><a href="#L-2206"><span class="linenos">2206</span></a> +</span><span id="L-2207"><a href="#L-2207"><span class="linenos">2207</span></a> <span class="k">if</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">BUCKET</span><span class="p">):</span> +</span><span id="L-2208"><a href="#L-2208"><span class="linenos">2208</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-2209"><a href="#L-2209"><span class="linenos">2209</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">OUT_OF</span><span class="p">)</span> +</span><span id="L-2210"><a href="#L-2210"><span class="linenos">2210</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-2211"><a href="#L-2211"><span class="linenos">2211</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">ON</span><span class="p">)</span> +</span><span id="L-2212"><a href="#L-2212"><span class="linenos">2212</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> +</span><span id="L-2213"><a href="#L-2213"><span class="linenos">2213</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">)):</span> +</span><span id="L-2214"><a href="#L-2214"><span class="linenos">2214</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="L-2215"><a href="#L-2215"><span class="linenos">2215</span></a> <span class="k">elif</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">ROWS</span><span class="p">):</span> +</span><span id="L-2216"><a href="#L-2216"><span class="linenos">2216</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="L-2217"><a href="#L-2217"><span class="linenos">2217</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2218"><a href="#L-2218"><span class="linenos">2218</span></a> <span class="n">size</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="L-2219"><a href="#L-2219"><span class="linenos">2219</span></a> +</span><span id="L-2220"><a href="#L-2220"><span class="linenos">2220</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">R_PAREN</span><span class="p">)</span> </span><span id="L-2221"><a href="#L-2221"><span class="linenos">2221</span></a> -</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="k">def</span> <span class="nf">_parse_pivots</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivot</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> -</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> -</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a> <span class="k">def</span> <span class="nf">_parse_pivot</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">Expression</span><span class="p">]:</span> -</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</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><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a> -</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> <span class="k">if</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">PIVOT</span><span class="p">):</span> -</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="k">elif</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-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a> -</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="n">field</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> -</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</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-2240"><a href="#L-2240"><span class="linenos">2240</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2222"><a href="#L-2222"><span class="linenos">2222</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2223"><a href="#L-2223"><span class="linenos">2223</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> +</span><span id="L-2224"><a href="#L-2224"><span class="linenos">2224</span></a> <span class="n">seed</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-2225"><a href="#L-2225"><span class="linenos">2225</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2226"><a href="#L-2226"><span class="linenos">2226</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"SEED"</span><span class="p">,</span> <span class="s2">"REPEATABLE"</span><span class="p">)):</span> +</span><span id="L-2227"><a href="#L-2227"><span class="linenos">2227</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> +</span><span id="L-2228"><a href="#L-2228"><span class="linenos">2228</span></a> +</span><span id="L-2229"><a href="#L-2229"><span class="linenos">2229</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><span id="L-2230"><a href="#L-2230"><span class="linenos">2230</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">,</span> +</span><span id="L-2231"><a href="#L-2231"><span class="linenos">2231</span></a> <span class="n">method</span><span class="o">=</span><span class="n">method</span><span class="p">,</span> +</span><span id="L-2232"><a href="#L-2232"><span class="linenos">2232</span></a> <span class="n">bucket_numerator</span><span class="o">=</span><span class="n">bucket_numerator</span><span class="p">,</span> +</span><span id="L-2233"><a href="#L-2233"><span class="linenos">2233</span></a> <span class="n">bucket_denominator</span><span class="o">=</span><span class="n">bucket_denominator</span><span class="p">,</span> +</span><span id="L-2234"><a href="#L-2234"><span class="linenos">2234</span></a> <span class="n">bucket_field</span><span class="o">=</span><span class="n">bucket_field</span><span class="p">,</span> +</span><span id="L-2235"><a href="#L-2235"><span class="linenos">2235</span></a> <span class="n">percent</span><span class="o">=</span><span class="n">percent</span><span class="p">,</span> +</span><span id="L-2236"><a href="#L-2236"><span class="linenos">2236</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> +</span><span id="L-2237"><a href="#L-2237"><span class="linenos">2237</span></a> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> +</span><span id="L-2238"><a href="#L-2238"><span class="linenos">2238</span></a> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">,</span> +</span><span id="L-2239"><a href="#L-2239"><span class="linenos">2239</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-2240"><a href="#L-2240"><span class="linenos">2240</span></a> <span class="p">)</span> </span><span id="L-2241"><a href="#L-2241"><span class="linenos">2241</span></a> -</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="k">if</span> <span class="n">unpivot</span><span class="p">:</span> -</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()))</span> -</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</span></a> -</span><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a> <span class="k">if</span> <span class="ow">not</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">FOR</span><span class="p">):</span> -</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting FOR"</span><span class="p">)</span> -</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> -</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="L-2251"><a href="#L-2251"><span class="linenos">2251</span></a> -</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a> <span class="k">if</span> <span class="ow">not</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">IN</span><span class="p">):</span> -</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting IN"</span><span class="p">)</span> +</span><span id="L-2242"><a href="#L-2242"><span class="linenos">2242</span></a> <span class="k">def</span> <span class="nf">_parse_pivots</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="L-2243"><a href="#L-2243"><span class="linenos">2243</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivot</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> +</span><span id="L-2244"><a href="#L-2244"><span class="linenos">2244</span></a> +</span><span id="L-2245"><a href="#L-2245"><span class="linenos">2245</span></a> <span class="k">def</span> <span class="nf">_parse_pivot</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">Expression</span><span class="p">]:</span> +</span><span id="L-2246"><a href="#L-2246"><span class="linenos">2246</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><span id="L-2247"><a href="#L-2247"><span class="linenos">2247</span></a> +</span><span id="L-2248"><a href="#L-2248"><span class="linenos">2248</span></a> <span class="k">if</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">PIVOT</span><span class="p">):</span> +</span><span id="L-2249"><a href="#L-2249"><span class="linenos">2249</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-2250"><a href="#L-2250"><span class="linenos">2250</span></a> <span class="k">elif</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-2251"><a href="#L-2251"><span class="linenos">2251</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-2252"><a href="#L-2252"><span class="linenos">2252</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2253"><a href="#L-2253"><span class="linenos">2253</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="L-2254"><a href="#L-2254"><span class="linenos">2254</span></a> -</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a> -</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a> -</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</span></a> <span class="n">pivot</span> <span class="o">=</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="n">unpivot</span><span class="p">)</span> -</span><span id="L-2260"><a href="#L-2260"><span class="linenos">2260</span></a> -</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">),</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="n">pivot</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> -</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a> -</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a> <span class="k">return</span> <span class="n">pivot</span> -</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a> -</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a> <span class="k">def</span> <span class="nf">_parse_where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_where_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2267"><a href="#L-2267"><span class="linenos">2267</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_where_token</span> <span class="ow">and</span> <span class="ow">not</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">WHERE</span><span class="p">):</span> -</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2255"><a href="#L-2255"><span class="linenos">2255</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-2256"><a href="#L-2256"><span class="linenos">2256</span></a> <span class="n">field</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2257"><a href="#L-2257"><span class="linenos">2257</span></a> +</span><span id="L-2258"><a href="#L-2258"><span class="linenos">2258</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2259"><a href="#L-2259"><span class="linenos">2259</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-2260"><a href="#L-2260"><span class="linenos">2260</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2261"><a href="#L-2261"><span class="linenos">2261</span></a> +</span><span id="L-2262"><a href="#L-2262"><span class="linenos">2262</span></a> <span class="k">if</span> <span class="n">unpivot</span><span class="p">:</span> +</span><span id="L-2263"><a href="#L-2263"><span class="linenos">2263</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-2264"><a href="#L-2264"><span class="linenos">2264</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2265"><a href="#L-2265"><span class="linenos">2265</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()))</span> +</span><span id="L-2266"><a href="#L-2266"><span class="linenos">2266</span></a> +</span><span id="L-2267"><a href="#L-2267"><span class="linenos">2267</span></a> <span class="k">if</span> <span class="ow">not</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">FOR</span><span class="p">):</span> +</span><span id="L-2268"><a href="#L-2268"><span class="linenos">2268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting FOR"</span><span class="p">)</span> </span><span id="L-2269"><a href="#L-2269"><span class="linenos">2269</span></a> -</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</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><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a> <span class="p">)</span> -</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a> -</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a> <span class="k">def</span> <span class="nf">_parse_group</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_group_by_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_group_by_token</span> <span class="ow">and</span> <span class="ow">not</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">GROUP_BY</span><span class="p">):</span> -</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a> -</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a> <span class="n">elements</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">list</span><span class="p">)</span> -</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a> -</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"expressions"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a> -</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_sets</span><span class="p">()</span> -</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="k">if</span> <span class="n">grouping_sets</span><span class="p">:</span> -</span><span id="L-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"grouping_sets"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span> -</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a> -</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a> -</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a> <span class="n">with_</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">WITH</span><span class="p">)</span> -</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a> <span class="k">if</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">ROLLUP</span><span class="p">):</span> -</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-2295"><a href="#L-2295"><span class="linenos">2295</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"rollup"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">rollup</span><span class="p">))</span> -</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a> -</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> <span class="k">if</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">CUBE</span><span class="p">):</span> -</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"cube"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">cube</span><span class="p">))</span> -</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a> -</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">expressions</span> <span class="ow">or</span> <span class="n">grouping_sets</span> <span class="ow">or</span> <span class="n">rollup</span> <span class="ow">or</span> <span class="n">cube</span><span class="p">):</span> -</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a> <span class="k">break</span> -</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> -</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</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">Group</span><span class="p">,</span> <span class="o">**</span><span class="n">elements</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a> -</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_sets</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a> <span class="k">if</span> <span class="ow">not</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">GROUPING_SETS</span><span class="p">):</span> -</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a> -</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_set</span><span class="p">)</span> +</span><span id="L-2270"><a href="#L-2270"><span class="linenos">2270</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="L-2271"><a href="#L-2271"><span class="linenos">2271</span></a> +</span><span id="L-2272"><a href="#L-2272"><span class="linenos">2272</span></a> <span class="k">if</span> <span class="ow">not</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">IN</span><span class="p">):</span> +</span><span id="L-2273"><a href="#L-2273"><span class="linenos">2273</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting IN"</span><span class="p">)</span> +</span><span id="L-2274"><a href="#L-2274"><span class="linenos">2274</span></a> +</span><span id="L-2275"><a href="#L-2275"><span class="linenos">2275</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-2276"><a href="#L-2276"><span class="linenos">2276</span></a> +</span><span id="L-2277"><a href="#L-2277"><span class="linenos">2277</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2278"><a href="#L-2278"><span class="linenos">2278</span></a> +</span><span id="L-2279"><a href="#L-2279"><span class="linenos">2279</span></a> <span class="n">pivot</span> <span class="o">=</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="n">unpivot</span><span class="p">)</span> +</span><span id="L-2280"><a href="#L-2280"><span class="linenos">2280</span></a> +</span><span id="L-2281"><a href="#L-2281"><span class="linenos">2281</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">),</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-2282"><a href="#L-2282"><span class="linenos">2282</span></a> <span class="n">pivot</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> +</span><span id="L-2283"><a href="#L-2283"><span class="linenos">2283</span></a> +</span><span id="L-2284"><a href="#L-2284"><span class="linenos">2284</span></a> <span class="k">return</span> <span class="n">pivot</span> +</span><span id="L-2285"><a href="#L-2285"><span class="linenos">2285</span></a> +</span><span id="L-2286"><a href="#L-2286"><span class="linenos">2286</span></a> <span class="k">def</span> <span class="nf">_parse_where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_where_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2287"><a href="#L-2287"><span class="linenos">2287</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_where_token</span> <span class="ow">and</span> <span class="ow">not</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">WHERE</span><span class="p">):</span> +</span><span id="L-2288"><a href="#L-2288"><span class="linenos">2288</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2289"><a href="#L-2289"><span class="linenos">2289</span></a> +</span><span id="L-2290"><a href="#L-2290"><span class="linenos">2290</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><span id="L-2291"><a href="#L-2291"><span class="linenos">2291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-2292"><a href="#L-2292"><span class="linenos">2292</span></a> <span class="p">)</span> +</span><span id="L-2293"><a href="#L-2293"><span class="linenos">2293</span></a> +</span><span id="L-2294"><a href="#L-2294"><span class="linenos">2294</span></a> <span class="k">def</span> <span class="nf">_parse_group</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_group_by_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2295"><a href="#L-2295"><span class="linenos">2295</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_group_by_token</span> <span class="ow">and</span> <span class="ow">not</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">GROUP_BY</span><span class="p">):</span> +</span><span id="L-2296"><a href="#L-2296"><span class="linenos">2296</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2297"><a href="#L-2297"><span class="linenos">2297</span></a> +</span><span id="L-2298"><a href="#L-2298"><span class="linenos">2298</span></a> <span class="n">elements</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">list</span><span class="p">)</span> +</span><span id="L-2299"><a href="#L-2299"><span class="linenos">2299</span></a> +</span><span id="L-2300"><a href="#L-2300"><span class="linenos">2300</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-2301"><a href="#L-2301"><span class="linenos">2301</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-2302"><a href="#L-2302"><span class="linenos">2302</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-2303"><a href="#L-2303"><span class="linenos">2303</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"expressions"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2304"><a href="#L-2304"><span class="linenos">2304</span></a> +</span><span id="L-2305"><a href="#L-2305"><span class="linenos">2305</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_sets</span><span class="p">()</span> +</span><span id="L-2306"><a href="#L-2306"><span class="linenos">2306</span></a> <span class="k">if</span> <span class="n">grouping_sets</span><span class="p">:</span> +</span><span id="L-2307"><a href="#L-2307"><span class="linenos">2307</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"grouping_sets"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span> +</span><span id="L-2308"><a href="#L-2308"><span class="linenos">2308</span></a> +</span><span id="L-2309"><a href="#L-2309"><span class="linenos">2309</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2310"><a href="#L-2310"><span class="linenos">2310</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-2311"><a href="#L-2311"><span class="linenos">2311</span></a> -</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_set</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">Expression</span><span class="p">]:</span> -</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="n">grouping_set</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">grouping_set</span><span class="p">)</span> -</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a> -</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> -</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> <span class="k">def</span> <span class="nf">_parse_having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_having_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_having_token</span> <span class="ow">and</span> <span class="ow">not</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">HAVING</span><span class="p">):</span> -</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</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">Having</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</span></a> -</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a> <span class="k">def</span> <span class="nf">_parse_qualify</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">Expression</span><span class="p">]:</span> -</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a> <span class="k">if</span> <span class="ow">not</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">QUALIFY</span><span class="p">):</span> -</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</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">Qualify</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="L-2312"><a href="#L-2312"><span class="linenos">2312</span></a> <span class="n">with_</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">WITH</span><span class="p">)</span> +</span><span id="L-2313"><a href="#L-2313"><span class="linenos">2313</span></a> <span class="k">if</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">ROLLUP</span><span class="p">):</span> +</span><span id="L-2314"><a href="#L-2314"><span class="linenos">2314</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-2315"><a href="#L-2315"><span class="linenos">2315</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"rollup"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">rollup</span><span class="p">))</span> +</span><span id="L-2316"><a href="#L-2316"><span class="linenos">2316</span></a> +</span><span id="L-2317"><a href="#L-2317"><span class="linenos">2317</span></a> <span class="k">if</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">CUBE</span><span class="p">):</span> +</span><span id="L-2318"><a href="#L-2318"><span class="linenos">2318</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-2319"><a href="#L-2319"><span class="linenos">2319</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"cube"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">cube</span><span class="p">))</span> +</span><span id="L-2320"><a href="#L-2320"><span class="linenos">2320</span></a> +</span><span id="L-2321"><a href="#L-2321"><span class="linenos">2321</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">expressions</span> <span class="ow">or</span> <span class="n">grouping_sets</span> <span class="ow">or</span> <span class="n">rollup</span> <span class="ow">or</span> <span class="n">cube</span><span class="p">):</span> +</span><span id="L-2322"><a href="#L-2322"><span class="linenos">2322</span></a> <span class="k">break</span> +</span><span id="L-2323"><a href="#L-2323"><span class="linenos">2323</span></a> +</span><span id="L-2324"><a href="#L-2324"><span class="linenos">2324</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">Group</span><span class="p">,</span> <span class="o">**</span><span class="n">elements</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-2325"><a href="#L-2325"><span class="linenos">2325</span></a> +</span><span id="L-2326"><a href="#L-2326"><span class="linenos">2326</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_sets</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="L-2327"><a href="#L-2327"><span class="linenos">2327</span></a> <span class="k">if</span> <span class="ow">not</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">GROUPING_SETS</span><span class="p">):</span> +</span><span id="L-2328"><a href="#L-2328"><span class="linenos">2328</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="L-2329"><a href="#L-2329"><span class="linenos">2329</span></a> -</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a> <span class="k">def</span> <span class="nf">_parse_order</span><span class="p">(</span> -</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">skip_order_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</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-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_order_token</span> <span class="ow">and</span> <span class="ow">not</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">ORDER_BY</span><span class="p">):</span> -</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a> -</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> -</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> <span class="p">)</span> +</span><span id="L-2330"><a href="#L-2330"><span class="linenos">2330</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_set</span><span class="p">)</span> +</span><span id="L-2331"><a href="#L-2331"><span class="linenos">2331</span></a> +</span><span id="L-2332"><a href="#L-2332"><span class="linenos">2332</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_set</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">Expression</span><span class="p">]:</span> +</span><span id="L-2333"><a href="#L-2333"><span class="linenos">2333</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2334"><a href="#L-2334"><span class="linenos">2334</span></a> <span class="n">grouping_set</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-2335"><a href="#L-2335"><span class="linenos">2335</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2336"><a href="#L-2336"><span class="linenos">2336</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">grouping_set</span><span class="p">)</span> +</span><span id="L-2337"><a href="#L-2337"><span class="linenos">2337</span></a> +</span><span id="L-2338"><a href="#L-2338"><span class="linenos">2338</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> </span><span id="L-2339"><a href="#L-2339"><span class="linenos">2339</span></a> -</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="k">def</span> <span class="nf">_parse_sort</span><span class="p">(</span> -</span><span id="L-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</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-2343"><a href="#L-2343"><span class="linenos">2343</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">token_type</span><span class="p">):</span> -</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</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_class</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">))</span> -</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> -</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a> <span class="k">def</span> <span class="nf">_parse_ordered</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</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">ASC</span><span class="p">)</span> -</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="n">is_desc</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">DESC</span><span class="p">)</span> -</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a> <span class="n">is_nulls_first</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">NULLS_FIRST</span><span class="p">)</span> -</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</span></a> <span class="n">is_nulls_last</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">NULLS_LAST</span><span class="p">)</span> -</span><span id="L-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="n">is_desc</span> <span class="ow">or</span> <span class="kc">False</span> -</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> -</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="kc">False</span> -</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="n">explicitly_null_ordered</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="n">is_nulls_last</span> -</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="ow">not</span> <span class="n">explicitly_null_ordered</span> -</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a> <span class="ow">and</span> <span class="p">(</span> -</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> -</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> -</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</span></a> <span class="p">)</span> -</span><span id="L-2363"><a href="#L-2363"><span class="linenos">2363</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_last"</span> -</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a> <span class="p">):</span> -</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-2340"><a href="#L-2340"><span class="linenos">2340</span></a> <span class="k">def</span> <span class="nf">_parse_having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_having_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2341"><a href="#L-2341"><span class="linenos">2341</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_having_token</span> <span class="ow">and</span> <span class="ow">not</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">HAVING</span><span class="p">):</span> +</span><span id="L-2342"><a href="#L-2342"><span class="linenos">2342</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2343"><a href="#L-2343"><span class="linenos">2343</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">Having</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="L-2344"><a href="#L-2344"><span class="linenos">2344</span></a> +</span><span id="L-2345"><a href="#L-2345"><span class="linenos">2345</span></a> <span class="k">def</span> <span class="nf">_parse_qualify</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">Expression</span><span class="p">]:</span> +</span><span id="L-2346"><a href="#L-2346"><span class="linenos">2346</span></a> <span class="k">if</span> <span class="ow">not</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">QUALIFY</span><span class="p">):</span> +</span><span id="L-2347"><a href="#L-2347"><span class="linenos">2347</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2348"><a href="#L-2348"><span class="linenos">2348</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">Qualify</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="L-2349"><a href="#L-2349"><span class="linenos">2349</span></a> +</span><span id="L-2350"><a href="#L-2350"><span class="linenos">2350</span></a> <span class="k">def</span> <span class="nf">_parse_order</span><span class="p">(</span> +</span><span id="L-2351"><a href="#L-2351"><span class="linenos">2351</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">skip_order_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-2352"><a href="#L-2352"><span class="linenos">2352</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-2353"><a href="#L-2353"><span class="linenos">2353</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_order_token</span> <span class="ow">and</span> <span class="ow">not</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">ORDER_BY</span><span class="p">):</span> +</span><span id="L-2354"><a href="#L-2354"><span class="linenos">2354</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2355"><a href="#L-2355"><span class="linenos">2355</span></a> +</span><span id="L-2356"><a href="#L-2356"><span class="linenos">2356</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2357"><a href="#L-2357"><span class="linenos">2357</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> +</span><span id="L-2358"><a href="#L-2358"><span class="linenos">2358</span></a> <span class="p">)</span> +</span><span id="L-2359"><a href="#L-2359"><span class="linenos">2359</span></a> +</span><span id="L-2360"><a href="#L-2360"><span class="linenos">2360</span></a> <span class="k">def</span> <span class="nf">_parse_sort</span><span class="p">(</span> +</span><span id="L-2361"><a href="#L-2361"><span class="linenos">2361</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="L-2362"><a href="#L-2362"><span class="linenos">2362</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-2363"><a href="#L-2363"><span class="linenos">2363</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">token_type</span><span class="p">):</span> +</span><span id="L-2364"><a href="#L-2364"><span class="linenos">2364</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2365"><a href="#L-2365"><span class="linenos">2365</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_class</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">))</span> </span><span id="L-2366"><a href="#L-2366"><span class="linenos">2366</span></a> -</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</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">Ordered</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">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span> -</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> -</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</span></a> <span class="k">def</span> <span class="nf">_parse_limit</span><span class="p">(</span> -</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">top</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</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-2372"><a href="#L-2372"><span class="linenos">2372</span></a> <span class="k">if</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">TOP</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">):</span> -</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a> <span class="n">limit_paren</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">L_PAREN</span><span class="p">)</span> -</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a> <span class="n">limit_exp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a> <span class="p">)</span> -</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a> -</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a> <span class="k">if</span> <span class="n">limit_paren</span><span class="p">:</span> -</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a> -</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a> <span class="k">return</span> <span class="n">limit_exp</span> -</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a> -</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a> <span class="k">if</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">FETCH</span><span class="p">):</span> -</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">))</span> -</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">"FIRST"</span> -</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> -</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</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">ONLY</span><span class="p">)</span> -</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</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">Fetch</span><span class="p">,</span> <span class="n">direction</span><span class="o">=</span><span class="n">direction</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> -</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> -</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2392"><a href="#L-2392"><span class="linenos">2392</span></a> -</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="k">def</span> <span class="nf">_parse_offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> -</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</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-2395"><a href="#L-2395"><span class="linenos">2395</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a> -</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> -</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</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">Offset</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> +</span><span id="L-2367"><a href="#L-2367"><span class="linenos">2367</span></a> <span class="k">def</span> <span class="nf">_parse_ordered</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2368"><a href="#L-2368"><span class="linenos">2368</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-2369"><a href="#L-2369"><span class="linenos">2369</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">ASC</span><span class="p">)</span> +</span><span id="L-2370"><a href="#L-2370"><span class="linenos">2370</span></a> <span class="n">is_desc</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">DESC</span><span class="p">)</span> +</span><span id="L-2371"><a href="#L-2371"><span class="linenos">2371</span></a> <span class="n">is_nulls_first</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">NULLS_FIRST</span><span class="p">)</span> +</span><span id="L-2372"><a href="#L-2372"><span class="linenos">2372</span></a> <span class="n">is_nulls_last</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">NULLS_LAST</span><span class="p">)</span> +</span><span id="L-2373"><a href="#L-2373"><span class="linenos">2373</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="n">is_desc</span> <span class="ow">or</span> <span class="kc">False</span> +</span><span id="L-2374"><a href="#L-2374"><span class="linenos">2374</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> +</span><span id="L-2375"><a href="#L-2375"><span class="linenos">2375</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="kc">False</span> +</span><span id="L-2376"><a href="#L-2376"><span class="linenos">2376</span></a> <span class="n">explicitly_null_ordered</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="n">is_nulls_last</span> +</span><span id="L-2377"><a href="#L-2377"><span class="linenos">2377</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-2378"><a href="#L-2378"><span class="linenos">2378</span></a> <span class="ow">not</span> <span class="n">explicitly_null_ordered</span> +</span><span id="L-2379"><a href="#L-2379"><span class="linenos">2379</span></a> <span class="ow">and</span> <span class="p">(</span> +</span><span id="L-2380"><a href="#L-2380"><span class="linenos">2380</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> +</span><span id="L-2381"><a href="#L-2381"><span class="linenos">2381</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> +</span><span id="L-2382"><a href="#L-2382"><span class="linenos">2382</span></a> <span class="p">)</span> +</span><span id="L-2383"><a href="#L-2383"><span class="linenos">2383</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_last"</span> +</span><span id="L-2384"><a href="#L-2384"><span class="linenos">2384</span></a> <span class="p">):</span> +</span><span id="L-2385"><a href="#L-2385"><span class="linenos">2385</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-2386"><a href="#L-2386"><span class="linenos">2386</span></a> +</span><span id="L-2387"><a href="#L-2387"><span class="linenos">2387</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">Ordered</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">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span> +</span><span id="L-2388"><a href="#L-2388"><span class="linenos">2388</span></a> +</span><span id="L-2389"><a href="#L-2389"><span class="linenos">2389</span></a> <span class="k">def</span> <span class="nf">_parse_limit</span><span class="p">(</span> +</span><span id="L-2390"><a href="#L-2390"><span class="linenos">2390</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">top</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-2391"><a href="#L-2391"><span class="linenos">2391</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-2392"><a href="#L-2392"><span class="linenos">2392</span></a> <span class="k">if</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">TOP</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">):</span> +</span><span id="L-2393"><a href="#L-2393"><span class="linenos">2393</span></a> <span class="n">limit_paren</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">L_PAREN</span><span class="p">)</span> +</span><span id="L-2394"><a href="#L-2394"><span class="linenos">2394</span></a> <span class="n">limit_exp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2395"><a href="#L-2395"><span class="linenos">2395</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-2396"><a href="#L-2396"><span class="linenos">2396</span></a> <span class="p">)</span> +</span><span id="L-2397"><a href="#L-2397"><span class="linenos">2397</span></a> +</span><span id="L-2398"><a href="#L-2398"><span class="linenos">2398</span></a> <span class="k">if</span> <span class="n">limit_paren</span><span class="p">:</span> +</span><span id="L-2399"><a href="#L-2399"><span class="linenos">2399</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> </span><span id="L-2400"><a href="#L-2400"><span class="linenos">2400</span></a> -</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="k">def</span> <span class="nf">_parse_lock</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">Expression</span><span class="p">]:</span> -</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"UPDATE"</span><span class="p">):</span> -</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SHARE"</span><span class="p">):</span> -</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a> -</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</span></a> -</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</span></a> <span class="k">def</span> <span class="nf">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_OPERATIONS</span><span class="p">):</span> -</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2401"><a href="#L-2401"><span class="linenos">2401</span></a> <span class="k">return</span> <span class="n">limit_exp</span> +</span><span id="L-2402"><a href="#L-2402"><span class="linenos">2402</span></a> +</span><span id="L-2403"><a href="#L-2403"><span class="linenos">2403</span></a> <span class="k">if</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">FETCH</span><span class="p">):</span> +</span><span id="L-2404"><a href="#L-2404"><span class="linenos">2404</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">))</span> +</span><span id="L-2405"><a href="#L-2405"><span class="linenos">2405</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">"FIRST"</span> +</span><span id="L-2406"><a href="#L-2406"><span class="linenos">2406</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-2407"><a href="#L-2407"><span class="linenos">2407</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> +</span><span id="L-2408"><a href="#L-2408"><span class="linenos">2408</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">ONLY</span><span class="p">)</span> +</span><span id="L-2409"><a href="#L-2409"><span class="linenos">2409</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">Fetch</span><span class="p">,</span> <span class="n">direction</span><span class="o">=</span><span class="n">direction</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> +</span><span id="L-2410"><a href="#L-2410"><span class="linenos">2410</span></a> +</span><span id="L-2411"><a href="#L-2411"><span class="linenos">2411</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-2412"><a href="#L-2412"><span class="linenos">2412</span></a> -</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> -</span><span id="L-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">:</span> -</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span> -</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="k">elif</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">:</span> -</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Except</span> -</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Intersect</span> -</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a> -</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</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><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</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">ALL</span><span class="p">),</span> -</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> -</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a> <span class="p">)</span> +</span><span id="L-2413"><a href="#L-2413"><span class="linenos">2413</span></a> <span class="k">def</span> <span class="nf">_parse_offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> +</span><span id="L-2414"><a href="#L-2414"><span class="linenos">2414</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</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-2415"><a href="#L-2415"><span class="linenos">2415</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2416"><a href="#L-2416"><span class="linenos">2416</span></a> +</span><span id="L-2417"><a href="#L-2417"><span class="linenos">2417</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="L-2418"><a href="#L-2418"><span class="linenos">2418</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> +</span><span id="L-2419"><a href="#L-2419"><span class="linenos">2419</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">Offset</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> +</span><span id="L-2420"><a href="#L-2420"><span class="linenos">2420</span></a> +</span><span id="L-2421"><a href="#L-2421"><span class="linenos">2421</span></a> <span class="k">def</span> <span class="nf">_parse_lock</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">Expression</span><span class="p">]:</span> +</span><span id="L-2422"><a href="#L-2422"><span class="linenos">2422</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"UPDATE"</span><span class="p">):</span> +</span><span id="L-2423"><a href="#L-2423"><span class="linenos">2423</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-2424"><a href="#L-2424"><span class="linenos">2424</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SHARE"</span><span class="p">):</span> +</span><span id="L-2425"><a href="#L-2425"><span class="linenos">2425</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-2426"><a href="#L-2426"><span class="linenos">2426</span></a> +</span><span id="L-2427"><a href="#L-2427"><span class="linenos">2427</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="L-2428"><a href="#L-2428"><span class="linenos">2428</span></a> -</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a> <span class="k">def</span> <span class="nf">_parse_expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a> -</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a> <span class="k">def</span> <span class="nf">_parse_conjunction</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">Expression</span><span class="p">]:</span> -</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONJUNCTION</span><span class="p">)</span> +</span><span id="L-2429"><a href="#L-2429"><span class="linenos">2429</span></a> <span class="k">def</span> <span class="nf">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-2430"><a href="#L-2430"><span class="linenos">2430</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_OPERATIONS</span><span class="p">):</span> +</span><span id="L-2431"><a href="#L-2431"><span class="linenos">2431</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2432"><a href="#L-2432"><span class="linenos">2432</span></a> +</span><span id="L-2433"><a href="#L-2433"><span class="linenos">2433</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> </span><span id="L-2434"><a href="#L-2434"><span class="linenos">2434</span></a> -</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a> <span class="k">def</span> <span class="nf">_parse_equality</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">Expression</span><span class="p">]:</span> -</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_comparison</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">EQUALITY</span><span class="p">)</span> -</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a> -</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="k">def</span> <span class="nf">_parse_comparison</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">Expression</span><span class="p">]:</span> -</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_range</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMPARISON</span><span class="p">)</span> -</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a> -</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a> <span class="k">def</span> <span class="nf">_parse_range</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">Expression</span><span class="p">]:</span> -</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</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-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> -</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> -</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">):</span> -</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">)</span> -</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="k">elif</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">ISNULL</span><span class="p">):</span> -</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> -</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> -</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="c1"># Postgres supports ISNULL and NOTNULL for conditions.</span> -</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a> <span class="c1"># https://blog.andreiavram.ro/postgresql-null-composite-type/</span> -</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a> <span class="k">if</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">NOTNULL</span><span class="p">):</span> -</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> -</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a> -</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a> <span class="k">if</span> <span class="n">negate</span><span class="p">:</span> -</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a> -</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a> <span class="k">if</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">IS</span><span class="p">):</span> -</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a> -</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2463"><a href="#L-2463"><span class="linenos">2463</span></a> -</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a> <span class="k">def</span> <span class="nf">_parse_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> -</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a> <span class="k">if</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">DISTINCT_FROM</span><span class="p">):</span> -</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span> <span class="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</span> -</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</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">klass</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">())</span> +</span><span id="L-2435"><a href="#L-2435"><span class="linenos">2435</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">:</span> +</span><span id="L-2436"><a href="#L-2436"><span class="linenos">2436</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span> +</span><span id="L-2437"><a href="#L-2437"><span class="linenos">2437</span></a> <span class="k">elif</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">:</span> +</span><span id="L-2438"><a href="#L-2438"><span class="linenos">2438</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Except</span> +</span><span id="L-2439"><a href="#L-2439"><span class="linenos">2439</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2440"><a href="#L-2440"><span class="linenos">2440</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Intersect</span> +</span><span id="L-2441"><a href="#L-2441"><span class="linenos">2441</span></a> +</span><span id="L-2442"><a href="#L-2442"><span class="linenos">2442</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><span id="L-2443"><a href="#L-2443"><span class="linenos">2443</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="L-2444"><a href="#L-2444"><span class="linenos">2444</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-2445"><a href="#L-2445"><span class="linenos">2445</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</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">ALL</span><span class="p">),</span> +</span><span id="L-2446"><a href="#L-2446"><span class="linenos">2446</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> +</span><span id="L-2447"><a href="#L-2447"><span class="linenos">2447</span></a> <span class="p">)</span> +</span><span id="L-2448"><a href="#L-2448"><span class="linenos">2448</span></a> +</span><span id="L-2449"><a href="#L-2449"><span class="linenos">2449</span></a> <span class="k">def</span> <span class="nf">_parse_expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-2450"><a href="#L-2450"><span class="linenos">2450</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="L-2451"><a href="#L-2451"><span class="linenos">2451</span></a> +</span><span id="L-2452"><a href="#L-2452"><span class="linenos">2452</span></a> <span class="k">def</span> <span class="nf">_parse_conjunction</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">Expression</span><span class="p">]:</span> +</span><span id="L-2453"><a href="#L-2453"><span class="linenos">2453</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONJUNCTION</span><span class="p">)</span> +</span><span id="L-2454"><a href="#L-2454"><span class="linenos">2454</span></a> +</span><span id="L-2455"><a href="#L-2455"><span class="linenos">2455</span></a> <span class="k">def</span> <span class="nf">_parse_equality</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">Expression</span><span class="p">]:</span> +</span><span id="L-2456"><a href="#L-2456"><span class="linenos">2456</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_comparison</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">EQUALITY</span><span class="p">)</span> +</span><span id="L-2457"><a href="#L-2457"><span class="linenos">2457</span></a> +</span><span id="L-2458"><a href="#L-2458"><span class="linenos">2458</span></a> <span class="k">def</span> <span class="nf">_parse_comparison</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">Expression</span><span class="p">]:</span> +</span><span id="L-2459"><a href="#L-2459"><span class="linenos">2459</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_range</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMPARISON</span><span class="p">)</span> +</span><span id="L-2460"><a href="#L-2460"><span class="linenos">2460</span></a> +</span><span id="L-2461"><a href="#L-2461"><span class="linenos">2461</span></a> <span class="k">def</span> <span class="nf">_parse_range</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">Expression</span><span class="p">]:</span> +</span><span id="L-2462"><a href="#L-2462"><span class="linenos">2462</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-2463"><a href="#L-2463"><span class="linenos">2463</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> +</span><span id="L-2464"><a href="#L-2464"><span class="linenos">2464</span></a> +</span><span id="L-2465"><a href="#L-2465"><span class="linenos">2465</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">):</span> +</span><span id="L-2466"><a href="#L-2466"><span class="linenos">2466</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">)</span> +</span><span id="L-2467"><a href="#L-2467"><span class="linenos">2467</span></a> <span class="k">elif</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">ISNULL</span><span class="p">):</span> +</span><span id="L-2468"><a href="#L-2468"><span class="linenos">2468</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> </span><span id="L-2469"><a href="#L-2469"><span class="linenos">2469</span></a> -</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">,</span> -</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_null</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_boolean</span><span class="p">(),</span> -</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="p">)</span> -</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</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">Not</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="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">this</span> -</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a> -</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> -</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a> <span class="n">this</span> <span class="o">=</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">In</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">unnest</span><span class="o">=</span><span class="n">unnest</span><span class="p">)</span> -</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a> <span class="k">elif</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">)</span> +</span><span id="L-2470"><a href="#L-2470"><span class="linenos">2470</span></a> <span class="c1"># Postgres supports ISNULL and NOTNULL for conditions.</span> +</span><span id="L-2471"><a href="#L-2471"><span class="linenos">2471</span></a> <span class="c1"># https://blog.andreiavram.ro/postgresql-null-composite-type/</span> +</span><span id="L-2472"><a href="#L-2472"><span class="linenos">2472</span></a> <span class="k">if</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">NOTNULL</span><span class="p">):</span> +</span><span id="L-2473"><a href="#L-2473"><span class="linenos">2473</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> +</span><span id="L-2474"><a href="#L-2474"><span class="linenos">2474</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2475"><a href="#L-2475"><span class="linenos">2475</span></a> +</span><span id="L-2476"><a href="#L-2476"><span class="linenos">2476</span></a> <span class="k">if</span> <span class="n">negate</span><span class="p">:</span> +</span><span id="L-2477"><a href="#L-2477"><span class="linenos">2477</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2478"><a href="#L-2478"><span class="linenos">2478</span></a> +</span><span id="L-2479"><a href="#L-2479"><span class="linenos">2479</span></a> <span class="k">if</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">IS</span><span class="p">):</span> +</span><span id="L-2480"><a href="#L-2480"><span class="linenos">2480</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2481"><a href="#L-2481"><span class="linenos">2481</span></a> +</span><span id="L-2482"><a href="#L-2482"><span class="linenos">2482</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-2483"><a href="#L-2483"><span class="linenos">2483</span></a> -</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a> <span class="n">this</span> <span class="o">=</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">In</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">query</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-2486"><a href="#L-2486"><span class="linenos">2486</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a> <span class="n">this</span> <span class="o">=</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">In</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</span></a> -</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a> <span class="n">this</span> <span class="o">=</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">In</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">field</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> -</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a> -</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a> -</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</span></a> <span class="k">def</span> <span class="nf">_parse_between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a> <span class="n">low</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-2497"><a href="#L-2497"><span class="linenos">2497</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">AND</span><span class="p">)</span> -</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <span class="n">high</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-2499"><a href="#L-2499"><span class="linenos">2499</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">Between</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">low</span><span class="o">=</span><span class="n">low</span><span class="p">,</span> <span class="n">high</span><span class="o">=</span><span class="n">high</span><span class="p">)</span> -</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a> -</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="k">def</span> <span class="nf">_parse_escape</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a> <span class="k">if</span> <span class="ow">not</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">ESCAPE</span><span class="p">):</span> -</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</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">Escape</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> -</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a> -</span><span id="L-2506"><a href="#L-2506"><span class="linenos">2506</span></a> <span class="k">def</span> <span class="nf">_parse_bitwise</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">Expression</span><span class="p">]:</span> -</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-2484"><a href="#L-2484"><span class="linenos">2484</span></a> <span class="k">def</span> <span class="nf">_parse_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2485"><a href="#L-2485"><span class="linenos">2485</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> +</span><span id="L-2486"><a href="#L-2486"><span class="linenos">2486</span></a> <span class="k">if</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">DISTINCT_FROM</span><span class="p">):</span> +</span><span id="L-2487"><a href="#L-2487"><span class="linenos">2487</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span> <span class="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</span> +</span><span id="L-2488"><a href="#L-2488"><span class="linenos">2488</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">klass</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">())</span> +</span><span id="L-2489"><a href="#L-2489"><span class="linenos">2489</span></a> +</span><span id="L-2490"><a href="#L-2490"><span class="linenos">2490</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2491"><a href="#L-2491"><span class="linenos">2491</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">,</span> +</span><span id="L-2492"><a href="#L-2492"><span class="linenos">2492</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-2493"><a href="#L-2493"><span class="linenos">2493</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_null</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_boolean</span><span class="p">(),</span> +</span><span id="L-2494"><a href="#L-2494"><span class="linenos">2494</span></a> <span class="p">)</span> +</span><span id="L-2495"><a href="#L-2495"><span class="linenos">2495</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">Not</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="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">this</span> +</span><span id="L-2496"><a href="#L-2496"><span class="linenos">2496</span></a> +</span><span id="L-2497"><a href="#L-2497"><span class="linenos">2497</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2498"><a href="#L-2498"><span class="linenos">2498</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> +</span><span id="L-2499"><a href="#L-2499"><span class="linenos">2499</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="L-2500"><a href="#L-2500"><span class="linenos">2500</span></a> <span class="n">this</span> <span class="o">=</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">In</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">unnest</span><span class="o">=</span><span class="n">unnest</span><span class="p">)</span> +</span><span id="L-2501"><a href="#L-2501"><span class="linenos">2501</span></a> <span class="k">elif</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2502"><a href="#L-2502"><span class="linenos">2502</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">)</span> +</span><span id="L-2503"><a href="#L-2503"><span class="linenos">2503</span></a> +</span><span id="L-2504"><a href="#L-2504"><span class="linenos">2504</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-2505"><a href="#L-2505"><span class="linenos">2505</span></a> <span class="n">this</span> <span class="o">=</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">In</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">query</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-2506"><a href="#L-2506"><span class="linenos">2506</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2507"><a href="#L-2507"><span class="linenos">2507</span></a> <span class="n">this</span> <span class="o">=</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">In</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span><span id="L-2508"><a href="#L-2508"><span class="linenos">2508</span></a> -</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">):</span> -</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> -</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> -</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <span class="p">)</span> -</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">):</span> -</span><span id="L-2517"><a href="#L-2517"><span class="linenos">2517</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="L-2519"><a href="#L-2519"><span class="linenos">2519</span></a> <span class="p">)</span> -</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">):</span> -</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> <span class="p">)</span> -</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> <span class="k">break</span> -</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a> -</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2509"><a href="#L-2509"><span class="linenos">2509</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2510"><a href="#L-2510"><span class="linenos">2510</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2511"><a href="#L-2511"><span class="linenos">2511</span></a> <span class="n">this</span> <span class="o">=</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">In</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">field</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> +</span><span id="L-2512"><a href="#L-2512"><span class="linenos">2512</span></a> +</span><span id="L-2513"><a href="#L-2513"><span class="linenos">2513</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2514"><a href="#L-2514"><span class="linenos">2514</span></a> +</span><span id="L-2515"><a href="#L-2515"><span class="linenos">2515</span></a> <span class="k">def</span> <span class="nf">_parse_between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2516"><a href="#L-2516"><span class="linenos">2516</span></a> <span class="n">low</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-2517"><a href="#L-2517"><span class="linenos">2517</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">AND</span><span class="p">)</span> +</span><span id="L-2518"><a href="#L-2518"><span class="linenos">2518</span></a> <span class="n">high</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-2519"><a href="#L-2519"><span class="linenos">2519</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">Between</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">low</span><span class="o">=</span><span class="n">low</span><span class="p">,</span> <span class="n">high</span><span class="o">=</span><span class="n">high</span><span class="p">)</span> +</span><span id="L-2520"><a href="#L-2520"><span class="linenos">2520</span></a> +</span><span id="L-2521"><a href="#L-2521"><span class="linenos">2521</span></a> <span class="k">def</span> <span class="nf">_parse_escape</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-2522"><a href="#L-2522"><span class="linenos">2522</span></a> <span class="k">if</span> <span class="ow">not</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">ESCAPE</span><span class="p">):</span> +</span><span id="L-2523"><a href="#L-2523"><span class="linenos">2523</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2524"><a href="#L-2524"><span class="linenos">2524</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">Escape</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="L-2525"><a href="#L-2525"><span class="linenos">2525</span></a> +</span><span id="L-2526"><a href="#L-2526"><span class="linenos">2526</span></a> <span class="k">def</span> <span class="nf">_parse_bitwise</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">Expression</span><span class="p">]:</span> +</span><span id="L-2527"><a href="#L-2527"><span class="linenos">2527</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> </span><span id="L-2528"><a href="#L-2528"><span class="linenos">2528</span></a> -</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a> <span class="k">def</span> <span class="nf">_parse_term</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">Expression</span><span class="p">]:</span> -</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_factor</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">TERM</span><span class="p">)</span> -</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a> -</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="k">def</span> <span class="nf">_parse_factor</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">Expression</span><span class="p">]:</span> -</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">)</span> -</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a> -</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="k">def</span> <span class="nf">_parse_unary</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">Expression</span><span class="p">]:</span> -</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">):</span> -</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">())</span> -</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> -</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a> <span class="k">def</span> <span class="nf">_parse_type</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">Expression</span><span class="p">]:</span> -</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="k">if</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">INTERVAL</span><span class="p">):</span> -</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</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">Interval</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> -</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> -</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</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><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="n">type_token</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 class="n">check_func</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a> -</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a> <span class="k">if</span> <span class="n">type_token</span><span class="p">:</span> -</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span> -</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</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">Cast</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">type_token</span><span class="p">)</span> -</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">type_token</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-2552"><a href="#L-2552"><span class="linenos">2552</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-2553"><a href="#L-2553"><span class="linenos">2553</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a> <span class="k">return</span> <span class="n">type_token</span> -</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> -</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a> -</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2559"><a href="#L-2559"><span class="linenos">2559</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><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a> -</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SYSUDTLIB"</span><span class="p">,</span> <span class="s2">"."</span><span class="p">)</span> -</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</span></a> -</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">):</span> -</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a> -</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a> <span class="n">type_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="L-2529"><a href="#L-2529"><span class="linenos">2529</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-2530"><a href="#L-2530"><span class="linenos">2530</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">):</span> +</span><span id="L-2531"><a href="#L-2531"><span class="linenos">2531</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2532"><a href="#L-2532"><span class="linenos">2532</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> +</span><span id="L-2533"><a href="#L-2533"><span class="linenos">2533</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-2534"><a href="#L-2534"><span class="linenos">2534</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> +</span><span id="L-2535"><a href="#L-2535"><span class="linenos">2535</span></a> <span class="p">)</span> +</span><span id="L-2536"><a href="#L-2536"><span class="linenos">2536</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">):</span> +</span><span id="L-2537"><a href="#L-2537"><span class="linenos">2537</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2538"><a href="#L-2538"><span class="linenos">2538</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-2539"><a href="#L-2539"><span class="linenos">2539</span></a> <span class="p">)</span> +</span><span id="L-2540"><a href="#L-2540"><span class="linenos">2540</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">):</span> +</span><span id="L-2541"><a href="#L-2541"><span class="linenos">2541</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2542"><a href="#L-2542"><span class="linenos">2542</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-2543"><a href="#L-2543"><span class="linenos">2543</span></a> <span class="p">)</span> +</span><span id="L-2544"><a href="#L-2544"><span class="linenos">2544</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2545"><a href="#L-2545"><span class="linenos">2545</span></a> <span class="k">break</span> +</span><span id="L-2546"><a href="#L-2546"><span class="linenos">2546</span></a> +</span><span id="L-2547"><a href="#L-2547"><span class="linenos">2547</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2548"><a href="#L-2548"><span class="linenos">2548</span></a> +</span><span id="L-2549"><a href="#L-2549"><span class="linenos">2549</span></a> <span class="k">def</span> <span class="nf">_parse_term</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">Expression</span><span class="p">]:</span> +</span><span id="L-2550"><a href="#L-2550"><span class="linenos">2550</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_factor</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">TERM</span><span class="p">)</span> +</span><span id="L-2551"><a href="#L-2551"><span class="linenos">2551</span></a> +</span><span id="L-2552"><a href="#L-2552"><span class="linenos">2552</span></a> <span class="k">def</span> <span class="nf">_parse_factor</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">Expression</span><span class="p">]:</span> +</span><span id="L-2553"><a href="#L-2553"><span class="linenos">2553</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">)</span> +</span><span id="L-2554"><a href="#L-2554"><span class="linenos">2554</span></a> +</span><span id="L-2555"><a href="#L-2555"><span class="linenos">2555</span></a> <span class="k">def</span> <span class="nf">_parse_unary</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">Expression</span><span class="p">]:</span> +</span><span id="L-2556"><a href="#L-2556"><span class="linenos">2556</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">):</span> +</span><span id="L-2557"><a href="#L-2557"><span class="linenos">2557</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-2558"><a href="#L-2558"><span class="linenos">2558</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">())</span> +</span><span id="L-2559"><a href="#L-2559"><span class="linenos">2559</span></a> +</span><span id="L-2560"><a href="#L-2560"><span class="linenos">2560</span></a> <span class="k">def</span> <span class="nf">_parse_type</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">Expression</span><span class="p">]:</span> +</span><span id="L-2561"><a href="#L-2561"><span class="linenos">2561</span></a> <span class="k">if</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">INTERVAL</span><span class="p">):</span> +</span><span id="L-2562"><a href="#L-2562"><span class="linenos">2562</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">Interval</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> +</span><span id="L-2563"><a href="#L-2563"><span class="linenos">2563</span></a> +</span><span id="L-2564"><a href="#L-2564"><span class="linenos">2564</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><span id="L-2565"><a href="#L-2565"><span class="linenos">2565</span></a> <span class="n">type_token</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 class="n">check_func</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-2566"><a href="#L-2566"><span class="linenos">2566</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> </span><span id="L-2567"><a href="#L-2567"><span class="linenos">2567</span></a> -</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">:</span> -</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</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">PseudoType</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</span></a> -</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span> -</span><span id="L-2572"><a href="#L-2572"><span class="linenos">2572</span></a> <span class="n">is_struct</span> <span class="o">=</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span> -</span><span id="L-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-2568"><a href="#L-2568"><span class="linenos">2568</span></a> <span class="k">if</span> <span class="n">type_token</span><span class="p">:</span> +</span><span id="L-2569"><a href="#L-2569"><span class="linenos">2569</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span> +</span><span id="L-2570"><a href="#L-2570"><span class="linenos">2570</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">Cast</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">type_token</span><span class="p">)</span> +</span><span id="L-2571"><a href="#L-2571"><span class="linenos">2571</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">type_token</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-2572"><a href="#L-2572"><span class="linenos">2572</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-2573"><a href="#L-2573"><span class="linenos">2573</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="L-2574"><a href="#L-2574"><span class="linenos">2574</span></a> <span class="k">return</span> <span class="n">type_token</span> </span><span id="L-2575"><a href="#L-2575"><span class="linenos">2575</span></a> -</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> -</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> -</span><span id="L-2579"><a href="#L-2579"><span class="linenos">2579</span></a> <span class="k">elif</span> <span class="n">nested</span><span class="p">:</span> -</span><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> -</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> -</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</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-2586"><a href="#L-2586"><span class="linenos">2586</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2576"><a href="#L-2576"><span class="linenos">2576</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2577"><a href="#L-2577"><span class="linenos">2577</span></a> +</span><span id="L-2578"><a href="#L-2578"><span class="linenos">2578</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2579"><a href="#L-2579"><span class="linenos">2579</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><span id="L-2580"><a href="#L-2580"><span class="linenos">2580</span></a> +</span><span id="L-2581"><a href="#L-2581"><span class="linenos">2581</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SYSUDTLIB"</span><span class="p">,</span> <span class="s2">"."</span><span class="p">)</span> +</span><span id="L-2582"><a href="#L-2582"><span class="linenos">2582</span></a> +</span><span id="L-2583"><a href="#L-2583"><span class="linenos">2583</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">):</span> +</span><span id="L-2584"><a href="#L-2584"><span class="linenos">2584</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2585"><a href="#L-2585"><span class="linenos">2585</span></a> +</span><span id="L-2586"><a href="#L-2586"><span class="linenos">2586</span></a> <span class="n">type_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> </span><span id="L-2587"><a href="#L-2587"><span class="linenos">2587</span></a> -</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-2588"><a href="#L-2588"><span class="linenos">2588</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">:</span> +</span><span id="L-2589"><a href="#L-2589"><span class="linenos">2589</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">PseudoType</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> </span><span id="L-2590"><a href="#L-2590"><span class="linenos">2590</span></a> -</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">nested</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> -</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a> <span class="n">expressions</span><span class="o">=</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="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)],</span> -</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a> <span class="p">)</span> -</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a> -</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> -</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">this</span><span class="p">],</span> -</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a> <span class="p">)</span> -</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a> -</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2606"><a href="#L-2606"><span class="linenos">2606</span></a> -</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a> <span class="k">if</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">L_BRACKET</span><span class="p">):</span> -</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</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-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2591"><a href="#L-2591"><span class="linenos">2591</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span> +</span><span id="L-2592"><a href="#L-2592"><span class="linenos">2592</span></a> <span class="n">is_struct</span> <span class="o">=</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span> +</span><span id="L-2593"><a href="#L-2593"><span class="linenos">2593</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2594"><a href="#L-2594"><span class="linenos">2594</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-2595"><a href="#L-2595"><span class="linenos">2595</span></a> +</span><span id="L-2596"><a href="#L-2596"><span class="linenos">2596</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2597"><a href="#L-2597"><span class="linenos">2597</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> +</span><span id="L-2598"><a href="#L-2598"><span class="linenos">2598</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> +</span><span id="L-2599"><a href="#L-2599"><span class="linenos">2599</span></a> <span class="k">elif</span> <span class="n">nested</span><span class="p">:</span> +</span><span id="L-2600"><a href="#L-2600"><span class="linenos">2600</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> +</span><span id="L-2601"><a href="#L-2601"><span class="linenos">2601</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2602"><a href="#L-2602"><span class="linenos">2602</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-2603"><a href="#L-2603"><span class="linenos">2603</span></a> +</span><span id="L-2604"><a href="#L-2604"><span class="linenos">2604</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-2605"><a href="#L-2605"><span class="linenos">2605</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-2606"><a href="#L-2606"><span class="linenos">2606</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2607"><a href="#L-2607"><span class="linenos">2607</span></a> +</span><span id="L-2608"><a href="#L-2608"><span class="linenos">2608</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2609"><a href="#L-2609"><span class="linenos">2609</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="L-2610"><a href="#L-2610"><span class="linenos">2610</span></a> -</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="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 class="o">=</span> <span class="kc">None</span> -</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="k">if</span> <span class="n">nested</span> <span class="ow">and</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">LT</span><span class="p">):</span> -</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> -</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> -</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> +</span><span id="L-2611"><a href="#L-2611"><span class="linenos">2611</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">nested</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> +</span><span id="L-2612"><a href="#L-2612"><span class="linenos">2612</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="L-2613"><a href="#L-2613"><span class="linenos">2613</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="L-2614"><a href="#L-2614"><span class="linenos">2614</span></a> <span class="n">expressions</span><span class="o">=</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="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)],</span> +</span><span id="L-2615"><a href="#L-2615"><span class="linenos">2615</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-2616"><a href="#L-2616"><span class="linenos">2616</span></a> <span class="p">)</span> </span><span id="L-2617"><a href="#L-2617"><span class="linenos">2617</span></a> -</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> -</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> -</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a> -</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">)):</span> -</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">))</span> +</span><span id="L-2618"><a href="#L-2618"><span class="linenos">2618</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> +</span><span id="L-2619"><a href="#L-2619"><span class="linenos">2619</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="L-2620"><a href="#L-2620"><span class="linenos">2620</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="L-2621"><a href="#L-2621"><span class="linenos">2621</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">this</span><span class="p">],</span> +</span><span id="L-2622"><a href="#L-2622"><span class="linenos">2622</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="L-2623"><a href="#L-2623"><span class="linenos">2623</span></a> <span class="p">)</span> </span><span id="L-2624"><a href="#L-2624"><span class="linenos">2624</span></a> -</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TIMESTAMPS</span><span class="p">:</span> -</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a> <span class="k">if</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">WITH_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> -</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2629"><a href="#L-2629"><span class="linenos">2629</span></a> <span class="k">elif</span> <span class="p">(</span> -</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</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">WITH_LOCAL_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span> -</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a> <span class="p">):</span> -</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMPLTZ</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a> <span class="k">elif</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">WITHOUT_TIME_ZONE</span><span class="p">):</span> -</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">:</span> -</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIME</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a> -</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> +</span><span id="L-2625"><a href="#L-2625"><span class="linenos">2625</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2626"><a href="#L-2626"><span class="linenos">2626</span></a> +</span><span id="L-2627"><a href="#L-2627"><span class="linenos">2627</span></a> <span class="k">if</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">L_BRACKET</span><span class="p">):</span> +</span><span id="L-2628"><a href="#L-2628"><span class="linenos">2628</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-2629"><a href="#L-2629"><span class="linenos">2629</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2630"><a href="#L-2630"><span class="linenos">2630</span></a> +</span><span id="L-2631"><a href="#L-2631"><span class="linenos">2631</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="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 class="o">=</span> <span class="kc">None</span> +</span><span id="L-2632"><a href="#L-2632"><span class="linenos">2632</span></a> <span class="k">if</span> <span class="n">nested</span> <span class="ow">and</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">LT</span><span class="p">):</span> +</span><span id="L-2633"><a href="#L-2633"><span class="linenos">2633</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> +</span><span id="L-2634"><a href="#L-2634"><span class="linenos">2634</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> +</span><span id="L-2635"><a href="#L-2635"><span class="linenos">2635</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2636"><a href="#L-2636"><span class="linenos">2636</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> +</span><span id="L-2637"><a href="#L-2637"><span class="linenos">2637</span></a> +</span><span id="L-2638"><a href="#L-2638"><span class="linenos">2638</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> +</span><span id="L-2639"><a href="#L-2639"><span class="linenos">2639</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> </span><span id="L-2640"><a href="#L-2640"><span class="linenos">2640</span></a> -</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="k">elif</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">:</span> -</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> -</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> -</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">unit</span><span class="p">:</span> -</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a> <span class="n">value</span> <span class="o">=</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">DataType</span><span class="p">,</span> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">)</span> -</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="n">value</span> <span class="o">=</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">Interval</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> -</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</span></a> -</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a> <span class="k">if</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">check_func</span><span class="p">:</span> -</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="n">index2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> -</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a> -</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">peek</span><span class="p">:</span> -</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</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-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2641"><a href="#L-2641"><span class="linenos">2641</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">)):</span> +</span><span id="L-2642"><a href="#L-2642"><span class="linenos">2642</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-2643"><a href="#L-2643"><span class="linenos">2643</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">))</span> +</span><span id="L-2644"><a href="#L-2644"><span class="linenos">2644</span></a> +</span><span id="L-2645"><a href="#L-2645"><span class="linenos">2645</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2646"><a href="#L-2646"><span class="linenos">2646</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TIMESTAMPS</span><span class="p">:</span> +</span><span id="L-2647"><a href="#L-2647"><span class="linenos">2647</span></a> <span class="k">if</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">WITH_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> +</span><span id="L-2648"><a href="#L-2648"><span class="linenos">2648</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2649"><a href="#L-2649"><span class="linenos">2649</span></a> <span class="k">elif</span> <span class="p">(</span> +</span><span id="L-2650"><a href="#L-2650"><span class="linenos">2650</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">WITH_LOCAL_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span> +</span><span id="L-2651"><a href="#L-2651"><span class="linenos">2651</span></a> <span class="p">):</span> +</span><span id="L-2652"><a href="#L-2652"><span class="linenos">2652</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMPLTZ</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2653"><a href="#L-2653"><span class="linenos">2653</span></a> <span class="k">elif</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">WITHOUT_TIME_ZONE</span><span class="p">):</span> +</span><span id="L-2654"><a href="#L-2654"><span class="linenos">2654</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">:</span> +</span><span id="L-2655"><a href="#L-2655"><span class="linenos">2655</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIME</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2656"><a href="#L-2656"><span class="linenos">2656</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2657"><a href="#L-2657"><span class="linenos">2657</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span><span id="L-2658"><a href="#L-2658"><span class="linenos">2658</span></a> -</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index2</span><span class="p">)</span> +</span><span id="L-2659"><a href="#L-2659"><span class="linenos">2659</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> </span><span id="L-2660"><a href="#L-2660"><span class="linenos">2660</span></a> -</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="k">if</span> <span class="n">value</span><span class="p">:</span> -</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="k">return</span> <span class="n">value</span> -</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> -</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> <span class="n">this</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">Type</span><span class="p">[</span><span class="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="o">.</span><span class="n">upper</span><span class="p">()],</span> -</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="n">nested</span><span class="o">=</span><span class="n">nested</span><span class="p">,</span> -</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="n">values</span><span class="o">=</span><span class="n">values</span><span class="p">,</span> -</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> -</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> <span class="p">)</span> -</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> -</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="k">def</span> <span class="nf">_parse_struct_kwargs</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">Expression</span><span class="p">]:</span> -</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">:</span> -</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span> -</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> -</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-2677"><a href="#L-2677"><span class="linenos">2677</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">COLON</span><span class="p">)</span> -</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> <span class="n">data_type</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-2679"><a href="#L-2679"><span class="linenos">2679</span></a> -</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">data_type</span><span class="p">:</span> -</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</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">StructKwarg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span> +</span><span id="L-2661"><a href="#L-2661"><span class="linenos">2661</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-2662"><a href="#L-2662"><span class="linenos">2662</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2663"><a href="#L-2663"><span class="linenos">2663</span></a> <span class="k">elif</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">:</span> +</span><span id="L-2664"><a href="#L-2664"><span class="linenos">2664</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> +</span><span id="L-2665"><a href="#L-2665"><span class="linenos">2665</span></a> +</span><span id="L-2666"><a href="#L-2666"><span class="linenos">2666</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">unit</span><span class="p">:</span> +</span><span id="L-2667"><a href="#L-2667"><span class="linenos">2667</span></a> <span class="n">value</span> <span class="o">=</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">DataType</span><span class="p">,</span> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">)</span> +</span><span id="L-2668"><a href="#L-2668"><span class="linenos">2668</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2669"><a href="#L-2669"><span class="linenos">2669</span></a> <span class="n">value</span> <span class="o">=</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">Interval</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> +</span><span id="L-2670"><a href="#L-2670"><span class="linenos">2670</span></a> +</span><span id="L-2671"><a href="#L-2671"><span class="linenos">2671</span></a> <span class="k">if</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">check_func</span><span class="p">:</span> +</span><span id="L-2672"><a href="#L-2672"><span class="linenos">2672</span></a> <span class="n">index2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> +</span><span id="L-2673"><a href="#L-2673"><span class="linenos">2673</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="L-2674"><a href="#L-2674"><span class="linenos">2674</span></a> +</span><span id="L-2675"><a href="#L-2675"><span class="linenos">2675</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">peek</span><span class="p">:</span> +</span><span id="L-2676"><a href="#L-2676"><span class="linenos">2676</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-2677"><a href="#L-2677"><span class="linenos">2677</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2678"><a href="#L-2678"><span class="linenos">2678</span></a> +</span><span id="L-2679"><a href="#L-2679"><span class="linenos">2679</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index2</span><span class="p">)</span> +</span><span id="L-2680"><a href="#L-2680"><span class="linenos">2680</span></a> +</span><span id="L-2681"><a href="#L-2681"><span class="linenos">2681</span></a> <span class="k">if</span> <span class="n">value</span><span class="p">:</span> +</span><span id="L-2682"><a href="#L-2682"><span class="linenos">2682</span></a> <span class="k">return</span> <span class="n">value</span> </span><span id="L-2683"><a href="#L-2683"><span class="linenos">2683</span></a> -</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="k">def</span> <span class="nf">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="k">if</span> <span class="ow">not</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">AT_TIME_ZONE</span><span class="p">):</span> -</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</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">AtTimeZone</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">zone</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">())</span> -</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> -</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> -</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> -</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> -</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="n">this</span> <span class="o">=</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">Column</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> -</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">):</span> -</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a> <span class="n">op_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="L-2699"><a href="#L-2699"><span class="linenos">2699</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">op_token</span><span class="p">)</span> -</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a> -</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="k">if</span> <span class="n">op_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> -</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</span></a> <span class="n">field</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-2703"><a href="#L-2703"><span class="linenos">2703</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">field</span><span class="p">:</span> -</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected type"</span><span class="p">)</span> -</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="k">elif</span> <span class="n">op</span><span class="p">:</span> -</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> <span class="n">field</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span> -</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="k">else</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="n">value</span><span class="p">)</span> -</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <span class="p">)</span> -</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> -</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Func</span><span class="p">):</span> -</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="c1"># bigquery allows function calls like x.y.count(...)</span> -</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="c1"># SAFE.SUBSTR(...)</span> -</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules</span> -</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> -</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="k">if</span> <span class="n">op</span><span class="p">:</span> -</span><span id="L-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">field</span><span class="p">)</span> -</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">this</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">"catalog"</span><span class="p">):</span> -</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">,</span> -</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">this</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> -</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="n">table</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a> <span class="n">db</span><span class="o">=</span><span class="n">this</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">"table"</span><span class="p">),</span> -</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">this</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">"db"</span><span class="p">),</span> -</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="p">)</span> -</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">field</span><span class="p">)</span> -</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2684"><a href="#L-2684"><span class="linenos">2684</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="L-2685"><a href="#L-2685"><span class="linenos">2685</span></a> <span class="n">this</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">Type</span><span class="p">[</span><span class="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="o">.</span><span class="n">upper</span><span class="p">()],</span> +</span><span id="L-2686"><a href="#L-2686"><span class="linenos">2686</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="L-2687"><a href="#L-2687"><span class="linenos">2687</span></a> <span class="n">nested</span><span class="o">=</span><span class="n">nested</span><span class="p">,</span> +</span><span id="L-2688"><a href="#L-2688"><span class="linenos">2688</span></a> <span class="n">values</span><span class="o">=</span><span class="n">values</span><span class="p">,</span> +</span><span id="L-2689"><a href="#L-2689"><span class="linenos">2689</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> +</span><span id="L-2690"><a href="#L-2690"><span class="linenos">2690</span></a> <span class="p">)</span> +</span><span id="L-2691"><a href="#L-2691"><span class="linenos">2691</span></a> +</span><span id="L-2692"><a href="#L-2692"><span class="linenos">2692</span></a> <span class="k">def</span> <span class="nf">_parse_struct_kwargs</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">Expression</span><span class="p">]:</span> +</span><span id="L-2693"><a href="#L-2693"><span class="linenos">2693</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">:</span> +</span><span id="L-2694"><a href="#L-2694"><span class="linenos">2694</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span> +</span><span id="L-2695"><a href="#L-2695"><span class="linenos">2695</span></a> +</span><span id="L-2696"><a href="#L-2696"><span class="linenos">2696</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-2697"><a href="#L-2697"><span class="linenos">2697</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">COLON</span><span class="p">)</span> +</span><span id="L-2698"><a href="#L-2698"><span class="linenos">2698</span></a> <span class="n">data_type</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-2699"><a href="#L-2699"><span class="linenos">2699</span></a> +</span><span id="L-2700"><a href="#L-2700"><span class="linenos">2700</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">data_type</span><span class="p">:</span> +</span><span id="L-2701"><a href="#L-2701"><span class="linenos">2701</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2702"><a href="#L-2702"><span class="linenos">2702</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">StructKwarg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span> +</span><span id="L-2703"><a href="#L-2703"><span class="linenos">2703</span></a> +</span><span id="L-2704"><a href="#L-2704"><span class="linenos">2704</span></a> <span class="k">def</span> <span class="nf">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-2705"><a href="#L-2705"><span class="linenos">2705</span></a> <span class="k">if</span> <span class="ow">not</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">AT_TIME_ZONE</span><span class="p">):</span> +</span><span id="L-2706"><a href="#L-2706"><span class="linenos">2706</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2707"><a href="#L-2707"><span class="linenos">2707</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">AtTimeZone</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">zone</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">())</span> +</span><span id="L-2708"><a href="#L-2708"><span class="linenos">2708</span></a> +</span><span id="L-2709"><a href="#L-2709"><span class="linenos">2709</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> +</span><span id="L-2710"><a href="#L-2710"><span class="linenos">2710</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> +</span><span id="L-2711"><a href="#L-2711"><span class="linenos">2711</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> +</span><span id="L-2712"><a href="#L-2712"><span class="linenos">2712</span></a> <span class="n">this</span> <span class="o">=</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">Column</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2713"><a href="#L-2713"><span class="linenos">2713</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="L-2714"><a href="#L-2714"><span class="linenos">2714</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2715"><a href="#L-2715"><span class="linenos">2715</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2716"><a href="#L-2716"><span class="linenos">2716</span></a> +</span><span id="L-2717"><a href="#L-2717"><span class="linenos">2717</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">):</span> +</span><span id="L-2718"><a href="#L-2718"><span class="linenos">2718</span></a> <span class="n">op_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="L-2719"><a href="#L-2719"><span class="linenos">2719</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">op_token</span><span class="p">)</span> +</span><span id="L-2720"><a href="#L-2720"><span class="linenos">2720</span></a> +</span><span id="L-2721"><a href="#L-2721"><span class="linenos">2721</span></a> <span class="k">if</span> <span class="n">op_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> +</span><span id="L-2722"><a href="#L-2722"><span class="linenos">2722</span></a> <span class="n">field</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-2723"><a href="#L-2723"><span class="linenos">2723</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">field</span><span class="p">:</span> +</span><span id="L-2724"><a href="#L-2724"><span class="linenos">2724</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected type"</span><span class="p">)</span> +</span><span id="L-2725"><a href="#L-2725"><span class="linenos">2725</span></a> <span class="k">elif</span> <span class="n">op</span><span class="p">:</span> +</span><span id="L-2726"><a href="#L-2726"><span class="linenos">2726</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-2727"><a href="#L-2727"><span class="linenos">2727</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-2728"><a href="#L-2728"><span class="linenos">2728</span></a> <span class="n">field</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-2729"><a href="#L-2729"><span class="linenos">2729</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="L-2730"><a href="#L-2730"><span class="linenos">2730</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span> +</span><span id="L-2731"><a href="#L-2731"><span class="linenos">2731</span></a> <span class="k">else</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="n">value</span><span class="p">)</span> +</span><span id="L-2732"><a href="#L-2732"><span class="linenos">2732</span></a> <span class="p">)</span> +</span><span id="L-2733"><a href="#L-2733"><span class="linenos">2733</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2734"><a href="#L-2734"><span class="linenos">2734</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="L-2735"><a href="#L-2735"><span class="linenos">2735</span></a> -</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a> -</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="k">def</span> <span class="nf">_parse_primary</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">Expression</span><span class="p">]:</span> -</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">):</span> -</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a> -</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> -</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">primary</span><span class="p">]</span> -</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="k">while</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">STRING</span><span class="p">):</span> -</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> -</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</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">Concat</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="k">return</span> <span class="n">primary</span> -</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> -</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">):</span> -</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="sa">f</span><span class="s2">"0.</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> -</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> +</span><span id="L-2736"><a href="#L-2736"><span class="linenos">2736</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Func</span><span class="p">):</span> +</span><span id="L-2737"><a href="#L-2737"><span class="linenos">2737</span></a> <span class="c1"># bigquery allows function calls like x.y.count(...)</span> +</span><span id="L-2738"><a href="#L-2738"><span class="linenos">2738</span></a> <span class="c1"># SAFE.SUBSTR(...)</span> +</span><span id="L-2739"><a href="#L-2739"><span class="linenos">2739</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules</span> +</span><span id="L-2740"><a href="#L-2740"><span class="linenos">2740</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2741"><a href="#L-2741"><span class="linenos">2741</span></a> +</span><span id="L-2742"><a href="#L-2742"><span class="linenos">2742</span></a> <span class="k">if</span> <span class="n">op</span><span class="p">:</span> +</span><span id="L-2743"><a href="#L-2743"><span class="linenos">2743</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">field</span><span class="p">)</span> +</span><span id="L-2744"><a href="#L-2744"><span class="linenos">2744</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">this</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">"catalog"</span><span class="p">):</span> +</span><span id="L-2745"><a href="#L-2745"><span class="linenos">2745</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2746"><a href="#L-2746"><span class="linenos">2746</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">,</span> +</span><span id="L-2747"><a href="#L-2747"><span class="linenos">2747</span></a> <span class="n">this</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> +</span><span id="L-2748"><a href="#L-2748"><span class="linenos">2748</span></a> <span class="n">table</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-2749"><a href="#L-2749"><span class="linenos">2749</span></a> <span class="n">db</span><span class="o">=</span><span class="n">this</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">"table"</span><span class="p">),</span> +</span><span id="L-2750"><a href="#L-2750"><span class="linenos">2750</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">this</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">"db"</span><span class="p">),</span> +</span><span id="L-2751"><a href="#L-2751"><span class="linenos">2751</span></a> <span class="p">)</span> +</span><span id="L-2752"><a href="#L-2752"><span class="linenos">2752</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2753"><a href="#L-2753"><span class="linenos">2753</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">field</span><span class="p">)</span> +</span><span id="L-2754"><a href="#L-2754"><span class="linenos">2754</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2755"><a href="#L-2755"><span class="linenos">2755</span></a> +</span><span id="L-2756"><a href="#L-2756"><span class="linenos">2756</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-2757"><a href="#L-2757"><span class="linenos">2757</span></a> -</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> -</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">query</span><span class="p">]</span> -</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> <span class="n">explicit</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> <span class="p">)</span> -</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> -</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> -</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</span></a> -</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> -</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</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">parse_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a> <span class="p">)</span> -</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a> <span class="n">this</span> <span class="o">=</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> <span class="n">this</span> <span class="o">=</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">Paren</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2758"><a href="#L-2758"><span class="linenos">2758</span></a> <span class="k">def</span> <span class="nf">_parse_primary</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">Expression</span><span class="p">]:</span> +</span><span id="L-2759"><a href="#L-2759"><span class="linenos">2759</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">):</span> +</span><span id="L-2760"><a href="#L-2760"><span class="linenos">2760</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="L-2761"><a href="#L-2761"><span class="linenos">2761</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-2762"><a href="#L-2762"><span class="linenos">2762</span></a> +</span><span id="L-2763"><a href="#L-2763"><span class="linenos">2763</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> +</span><span id="L-2764"><a href="#L-2764"><span class="linenos">2764</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">primary</span><span class="p">]</span> +</span><span id="L-2765"><a href="#L-2765"><span class="linenos">2765</span></a> <span class="k">while</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">STRING</span><span class="p">):</span> +</span><span id="L-2766"><a href="#L-2766"><span class="linenos">2766</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> +</span><span id="L-2767"><a href="#L-2767"><span class="linenos">2767</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-2768"><a href="#L-2768"><span class="linenos">2768</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">Concat</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2769"><a href="#L-2769"><span class="linenos">2769</span></a> <span class="k">return</span> <span class="n">primary</span> +</span><span id="L-2770"><a href="#L-2770"><span class="linenos">2770</span></a> +</span><span id="L-2771"><a href="#L-2771"><span class="linenos">2771</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">):</span> +</span><span id="L-2772"><a href="#L-2772"><span class="linenos">2772</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="sa">f</span><span class="s2">"0.</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-2773"><a href="#L-2773"><span class="linenos">2773</span></a> +</span><span id="L-2774"><a href="#L-2774"><span class="linenos">2774</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2775"><a href="#L-2775"><span class="linenos">2775</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-2776"><a href="#L-2776"><span class="linenos">2776</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> </span><span id="L-2777"><a href="#L-2777"><span class="linenos">2777</span></a> -</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> -</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> -</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a> -</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2778"><a href="#L-2778"><span class="linenos">2778</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> +</span><span id="L-2779"><a href="#L-2779"><span class="linenos">2779</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">query</span><span class="p">]</span> +</span><span id="L-2780"><a href="#L-2780"><span class="linenos">2780</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2781"><a href="#L-2781"><span class="linenos">2781</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> +</span><span id="L-2782"><a href="#L-2782"><span class="linenos">2782</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> <span class="n">explicit</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-2783"><a href="#L-2783"><span class="linenos">2783</span></a> <span class="p">)</span> </span><span id="L-2784"><a href="#L-2784"><span class="linenos">2784</span></a> -</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a> <span class="k">def</span> <span class="nf">_parse_field</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2786"><a href="#L-2786"><span class="linenos">2786</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> -</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a> -</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a> <span class="k">def</span> <span class="nf">_parse_function</span><span class="p">(</span> -</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">functions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</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-2791"><a href="#L-2791"><span class="linenos">2791</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a> -</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> -</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">):</span> -</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> -</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">!=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> -</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">:</span> -</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</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="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">[</span><span class="n">token_type</span><span class="p">])</span> -</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> -</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> -</span><span id="L-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">:</span> -</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> -</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</span></a> <span class="n">upper</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> -</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> -</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> -</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> -</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> <span class="n">subquery_predicate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">SUBQUERY_PREDICATES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">)</span> -</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> -</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="k">if</span> <span class="n">subquery_predicate</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> -</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">subquery_predicate</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">())</span> -</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> -</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> <span class="k">if</span> <span class="n">functions</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="n">functions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTIONS</span> -</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> -</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">functions</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> -</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> -</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> -</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> <span class="k">if</span> <span class="n">function</span><span class="p">:</span> -</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> <span class="c1"># Clickhouse supports function calls like foo(x, y)(z), so for these we need to also parse the</span> -</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a> <span class="c1"># second parameter list (i.e. "(z)") and the corresponding function will receive both arg lists.</span> -</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> <span class="k">if</span> <span class="n">count_params</span><span class="p">(</span><span class="n">function</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="n">params</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> -</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> -</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> -</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> -</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> -</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="n">this</span> <span class="o">=</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">Anonymous</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">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> -</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> -</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> <span class="k">def</span> <span class="nf">_parse_function_parameter</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">Expression</span><span class="p">]:</span> -</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> -</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> -</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> -</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</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-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> -</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> -</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> -</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> -</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> -</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</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><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">wrapped</span><span class="o">=</span><span class="kc">True</span> -</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="p">)</span> +</span><span id="L-2785"><a href="#L-2785"><span class="linenos">2785</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> +</span><span id="L-2786"><a href="#L-2786"><span class="linenos">2786</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2787"><a href="#L-2787"><span class="linenos">2787</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2788"><a href="#L-2788"><span class="linenos">2788</span></a> +</span><span id="L-2789"><a href="#L-2789"><span class="linenos">2789</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="L-2790"><a href="#L-2790"><span class="linenos">2790</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> +</span><span id="L-2791"><a href="#L-2791"><span class="linenos">2791</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</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">parse_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-2792"><a href="#L-2792"><span class="linenos">2792</span></a> <span class="p">)</span> +</span><span id="L-2793"><a href="#L-2793"><span class="linenos">2793</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-2794"><a href="#L-2794"><span class="linenos">2794</span></a> <span class="n">this</span> <span class="o">=</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2795"><a href="#L-2795"><span class="linenos">2795</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2796"><a href="#L-2796"><span class="linenos">2796</span></a> <span class="n">this</span> <span class="o">=</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">Paren</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2797"><a href="#L-2797"><span class="linenos">2797</span></a> +</span><span id="L-2798"><a href="#L-2798"><span class="linenos">2798</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="L-2799"><a href="#L-2799"><span class="linenos">2799</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="L-2800"><a href="#L-2800"><span class="linenos">2800</span></a> +</span><span id="L-2801"><a href="#L-2801"><span class="linenos">2801</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2802"><a href="#L-2802"><span class="linenos">2802</span></a> +</span><span id="L-2803"><a href="#L-2803"><span class="linenos">2803</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2804"><a href="#L-2804"><span class="linenos">2804</span></a> +</span><span id="L-2805"><a href="#L-2805"><span class="linenos">2805</span></a> <span class="k">def</span> <span class="nf">_parse_field</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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-2806"><a href="#L-2806"><span class="linenos">2806</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> +</span><span id="L-2807"><a href="#L-2807"><span class="linenos">2807</span></a> +</span><span id="L-2808"><a href="#L-2808"><span class="linenos">2808</span></a> <span class="k">def</span> <span class="nf">_parse_function</span><span class="p">(</span> +</span><span id="L-2809"><a href="#L-2809"><span class="linenos">2809</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">functions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2810"><a href="#L-2810"><span class="linenos">2810</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-2811"><a href="#L-2811"><span class="linenos">2811</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-2812"><a href="#L-2812"><span class="linenos">2812</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2813"><a href="#L-2813"><span class="linenos">2813</span></a> +</span><span id="L-2814"><a href="#L-2814"><span class="linenos">2814</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="L-2815"><a href="#L-2815"><span class="linenos">2815</span></a> +</span><span id="L-2816"><a href="#L-2816"><span class="linenos">2816</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">):</span> +</span><span id="L-2817"><a href="#L-2817"><span class="linenos">2817</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-2818"><a href="#L-2818"><span class="linenos">2818</span></a> +</span><span id="L-2819"><a href="#L-2819"><span class="linenos">2819</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">!=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> +</span><span id="L-2820"><a href="#L-2820"><span class="linenos">2820</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">:</span> +</span><span id="L-2821"><a href="#L-2821"><span class="linenos">2821</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-2822"><a href="#L-2822"><span class="linenos">2822</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="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">[</span><span class="n">token_type</span><span class="p">])</span> +</span><span id="L-2823"><a href="#L-2823"><span class="linenos">2823</span></a> +</span><span id="L-2824"><a href="#L-2824"><span class="linenos">2824</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2825"><a href="#L-2825"><span class="linenos">2825</span></a> +</span><span id="L-2826"><a href="#L-2826"><span class="linenos">2826</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">:</span> +</span><span id="L-2827"><a href="#L-2827"><span class="linenos">2827</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-2828"><a href="#L-2828"><span class="linenos">2828</span></a> +</span><span id="L-2829"><a href="#L-2829"><span class="linenos">2829</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-2830"><a href="#L-2830"><span class="linenos">2830</span></a> <span class="n">upper</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-2831"><a href="#L-2831"><span class="linenos">2831</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> +</span><span id="L-2832"><a href="#L-2832"><span class="linenos">2832</span></a> +</span><span id="L-2833"><a href="#L-2833"><span class="linenos">2833</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> +</span><span id="L-2834"><a href="#L-2834"><span class="linenos">2834</span></a> +</span><span id="L-2835"><a href="#L-2835"><span class="linenos">2835</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="L-2836"><a href="#L-2836"><span class="linenos">2836</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-2837"><a href="#L-2837"><span class="linenos">2837</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2838"><a href="#L-2838"><span class="linenos">2838</span></a> <span class="n">subquery_predicate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">SUBQUERY_PREDICATES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">)</span> +</span><span id="L-2839"><a href="#L-2839"><span class="linenos">2839</span></a> +</span><span id="L-2840"><a href="#L-2840"><span class="linenos">2840</span></a> <span class="k">if</span> <span class="n">subquery_predicate</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> +</span><span id="L-2841"><a href="#L-2841"><span class="linenos">2841</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">subquery_predicate</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">())</span> +</span><span id="L-2842"><a href="#L-2842"><span class="linenos">2842</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2843"><a href="#L-2843"><span class="linenos">2843</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2844"><a href="#L-2844"><span class="linenos">2844</span></a> +</span><span id="L-2845"><a href="#L-2845"><span class="linenos">2845</span></a> <span class="k">if</span> <span class="n">functions</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-2846"><a href="#L-2846"><span class="linenos">2846</span></a> <span class="n">functions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTIONS</span> +</span><span id="L-2847"><a href="#L-2847"><span class="linenos">2847</span></a> +</span><span id="L-2848"><a href="#L-2848"><span class="linenos">2848</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">functions</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> +</span><span id="L-2849"><a href="#L-2849"><span class="linenos">2849</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> +</span><span id="L-2850"><a href="#L-2850"><span class="linenos">2850</span></a> +</span><span id="L-2851"><a href="#L-2851"><span class="linenos">2851</span></a> <span class="k">if</span> <span class="n">function</span><span class="p">:</span> +</span><span id="L-2852"><a href="#L-2852"><span class="linenos">2852</span></a> <span class="c1"># Clickhouse supports function calls like foo(x, y)(z), so for these we need to also parse the</span> +</span><span id="L-2853"><a href="#L-2853"><span class="linenos">2853</span></a> <span class="c1"># second parameter list (i.e. "(z)") and the corresponding function will receive both arg lists.</span> +</span><span id="L-2854"><a href="#L-2854"><span class="linenos">2854</span></a> <span class="k">if</span> <span class="n">count_params</span><span class="p">(</span><span class="n">function</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="L-2855"><a href="#L-2855"><span class="linenos">2855</span></a> <span class="n">params</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2856"><a href="#L-2856"><span class="linenos">2856</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> +</span><span id="L-2857"><a href="#L-2857"><span class="linenos">2857</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> +</span><span id="L-2858"><a href="#L-2858"><span class="linenos">2858</span></a> +</span><span id="L-2859"><a href="#L-2859"><span class="linenos">2859</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> +</span><span id="L-2860"><a href="#L-2860"><span class="linenos">2860</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2861"><a href="#L-2861"><span class="linenos">2861</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-2862"><a href="#L-2862"><span class="linenos">2862</span></a> +</span><span id="L-2863"><a href="#L-2863"><span class="linenos">2863</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="L-2864"><a href="#L-2864"><span class="linenos">2864</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2865"><a href="#L-2865"><span class="linenos">2865</span></a> <span class="n">this</span> <span class="o">=</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">Anonymous</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">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-2866"><a href="#L-2866"><span class="linenos">2866</span></a> +</span><span id="L-2867"><a href="#L-2867"><span class="linenos">2867</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2868"><a href="#L-2868"><span class="linenos">2868</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> </span><span id="L-2869"><a href="#L-2869"><span class="linenos">2869</span></a> -</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="k">def</span> <span class="nf">_parse_introducer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</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">Expression</span><span class="p">]:</span> -</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> -</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> <span class="k">if</span> <span class="n">literal</span><span class="p">:</span> -</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</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">Introducer</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">literal</span><span class="p">)</span> -</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> -</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-2876"><a href="#L-2876"><span class="linenos">2876</span></a> -</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a> <span class="k">def</span> <span class="nf">_parse_national</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</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">National</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> -</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> -</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> <span class="k">def</span> <span class="nf">_parse_session_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> +</span><span id="L-2870"><a href="#L-2870"><span class="linenos">2870</span></a> <span class="k">def</span> <span class="nf">_parse_function_parameter</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">Expression</span><span class="p">]:</span> +</span><span id="L-2871"><a href="#L-2871"><span class="linenos">2871</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> +</span><span id="L-2872"><a href="#L-2872"><span class="linenos">2872</span></a> +</span><span id="L-2873"><a href="#L-2873"><span class="linenos">2873</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> +</span><span id="L-2874"><a href="#L-2874"><span class="linenos">2874</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2875"><a href="#L-2875"><span class="linenos">2875</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-2876"><a href="#L-2876"><span class="linenos">2876</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-2877"><a href="#L-2877"><span class="linenos">2877</span></a> +</span><span id="L-2878"><a href="#L-2878"><span class="linenos">2878</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> +</span><span id="L-2879"><a href="#L-2879"><span class="linenos">2879</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> +</span><span id="L-2880"><a href="#L-2880"><span class="linenos">2880</span></a> +</span><span id="L-2881"><a href="#L-2881"><span class="linenos">2881</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2882"><a href="#L-2882"><span class="linenos">2882</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-2883"><a href="#L-2883"><span class="linenos">2883</span></a> -</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</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">DOT</span><span class="p">):</span> -</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span> -</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> -</span><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> -</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</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">SessionParameter</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="L-2884"><a href="#L-2884"><span class="linenos">2884</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="L-2885"><a href="#L-2885"><span class="linenos">2885</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2886"><a href="#L-2886"><span class="linenos">2886</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><span id="L-2887"><a href="#L-2887"><span class="linenos">2887</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">wrapped</span><span class="o">=</span><span class="kc">True</span> +</span><span id="L-2888"><a href="#L-2888"><span class="linenos">2888</span></a> <span class="p">)</span> </span><span id="L-2889"><a href="#L-2889"><span class="linenos">2889</span></a> -</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="k">def</span> <span class="nf">_parse_lambda</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">Expression</span><span class="p">]:</span> -</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</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><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> -</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> -</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> -</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> -</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</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-2898"><a href="#L-2898"><span class="linenos">2898</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()]</span> -</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> -</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">):</span> -</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2890"><a href="#L-2890"><span class="linenos">2890</span></a> <span class="k">def</span> <span class="nf">_parse_introducer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</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">Expression</span><span class="p">]:</span> +</span><span id="L-2891"><a href="#L-2891"><span class="linenos">2891</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> +</span><span id="L-2892"><a href="#L-2892"><span class="linenos">2892</span></a> <span class="k">if</span> <span class="n">literal</span><span class="p">:</span> +</span><span id="L-2893"><a href="#L-2893"><span class="linenos">2893</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">Introducer</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">literal</span><span class="p">)</span> +</span><span id="L-2894"><a href="#L-2894"><span class="linenos">2894</span></a> +</span><span id="L-2895"><a href="#L-2895"><span class="linenos">2895</span></a> <span class="k">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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-2896"><a href="#L-2896"><span class="linenos">2896</span></a> +</span><span id="L-2897"><a href="#L-2897"><span class="linenos">2897</span></a> <span class="k">def</span> <span class="nf">_parse_national</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2898"><a href="#L-2898"><span class="linenos">2898</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">National</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> +</span><span id="L-2899"><a href="#L-2899"><span class="linenos">2899</span></a> +</span><span id="L-2900"><a href="#L-2900"><span class="linenos">2900</span></a> <span class="k">def</span> <span class="nf">_parse_session_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2901"><a href="#L-2901"><span class="linenos">2901</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2902"><a href="#L-2902"><span class="linenos">2902</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> </span><span id="L-2903"><a href="#L-2903"><span class="linenos">2903</span></a> -</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</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-2905"><a href="#L-2905"><span class="linenos">2905</span></a> -</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="L-2904"><a href="#L-2904"><span class="linenos">2904</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</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">DOT</span><span class="p">):</span> +</span><span id="L-2905"><a href="#L-2905"><span class="linenos">2905</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span> +</span><span id="L-2906"><a href="#L-2906"><span class="linenos">2906</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> </span><span id="L-2907"><a href="#L-2907"><span class="linenos">2907</span></a> -</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> -</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</span></a> <span class="p">)</span> -</span><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">()</span> -</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a> -</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> -</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2918"><a href="#L-2918"><span class="linenos">2918</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">RESPECT_NULLS</span><span class="p">)</span> -</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> -</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> -</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a> -</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a> <span class="k">def</span> <span class="nf">_parse_schema</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> -</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</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><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">)</span> <span class="ow">or</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">SELECT</span><span class="p">):</span> -</span><span id="L-2925"><a href="#L-2925"><span class="linenos">2925</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-2926"><a href="#L-2926"><span class="linenos">2926</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2908"><a href="#L-2908"><span class="linenos">2908</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">SessionParameter</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="L-2909"><a href="#L-2909"><span class="linenos">2909</span></a> +</span><span id="L-2910"><a href="#L-2910"><span class="linenos">2910</span></a> <span class="k">def</span> <span class="nf">_parse_lambda</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">Expression</span><span class="p">]:</span> +</span><span id="L-2911"><a href="#L-2911"><span class="linenos">2911</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><span id="L-2912"><a href="#L-2912"><span class="linenos">2912</span></a> +</span><span id="L-2913"><a href="#L-2913"><span class="linenos">2913</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-2914"><a href="#L-2914"><span class="linenos">2914</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> +</span><span id="L-2915"><a href="#L-2915"><span class="linenos">2915</span></a> +</span><span id="L-2916"><a href="#L-2916"><span class="linenos">2916</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> +</span><span id="L-2917"><a href="#L-2917"><span class="linenos">2917</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-2918"><a href="#L-2918"><span class="linenos">2918</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2919"><a href="#L-2919"><span class="linenos">2919</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()]</span> +</span><span id="L-2920"><a href="#L-2920"><span class="linenos">2920</span></a> +</span><span id="L-2921"><a href="#L-2921"><span class="linenos">2921</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">):</span> +</span><span id="L-2922"><a href="#L-2922"><span class="linenos">2922</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="L-2923"><a href="#L-2923"><span class="linenos">2923</span></a> +</span><span id="L-2924"><a href="#L-2924"><span class="linenos">2924</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-2925"><a href="#L-2925"><span class="linenos">2925</span></a> +</span><span id="L-2926"><a href="#L-2926"><span class="linenos">2926</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> </span><span id="L-2927"><a href="#L-2927"><span class="linenos">2927</span></a> -</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_constraint</span><span class="p">()</span> -</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a> <span class="p">)</span> -</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</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">Schema</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-2928"><a href="#L-2928"><span class="linenos">2928</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> +</span><span id="L-2929"><a href="#L-2929"><span class="linenos">2929</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2930"><a href="#L-2930"><span class="linenos">2930</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-2931"><a href="#L-2931"><span class="linenos">2931</span></a> <span class="p">)</span> +</span><span id="L-2932"><a href="#L-2932"><span class="linenos">2932</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2933"><a href="#L-2933"><span class="linenos">2933</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">()</span> </span><span id="L-2934"><a href="#L-2934"><span class="linenos">2934</span></a> -</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="k">def</span> <span class="nf">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="n">kind</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-2937"><a href="#L-2937"><span class="linenos">2937</span></a> -</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ORDINALITY"</span><span class="p">):</span> -</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</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">ColumnDef</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">ordinality</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> -</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_constraint</span><span class="p">()</span> -</span><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> -</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</span></a> <span class="k">break</span> -</span><span id="L-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="n">constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> +</span><span id="L-2935"><a href="#L-2935"><span class="linenos">2935</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> +</span><span id="L-2936"><a href="#L-2936"><span class="linenos">2936</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-2937"><a href="#L-2937"><span class="linenos">2937</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-2938"><a href="#L-2938"><span class="linenos">2938</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">RESPECT_NULLS</span><span class="p">)</span> +</span><span id="L-2939"><a href="#L-2939"><span class="linenos">2939</span></a> +</span><span id="L-2940"><a href="#L-2940"><span class="linenos">2940</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> +</span><span id="L-2941"><a href="#L-2941"><span class="linenos">2941</span></a> +</span><span id="L-2942"><a href="#L-2942"><span class="linenos">2942</span></a> <span class="k">def</span> <span class="nf">_parse_schema</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> +</span><span id="L-2943"><a href="#L-2943"><span class="linenos">2943</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><span id="L-2944"><a href="#L-2944"><span class="linenos">2944</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">)</span> <span class="ow">or</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">SELECT</span><span class="p">):</span> +</span><span id="L-2945"><a href="#L-2945"><span class="linenos">2945</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-2946"><a href="#L-2946"><span class="linenos">2946</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-2947"><a href="#L-2947"><span class="linenos">2947</span></a> -</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">constraints</span><span class="p">:</span> -</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a> -</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</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">ColumnDef</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> <span class="n">constraints</span><span class="o">=</span><span class="n">constraints</span><span class="p">)</span> -</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a> -</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</span></a> <span class="k">def</span> <span class="nf">_parse_auto_increment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> <span class="n">start</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> -</span><span id="L-2957"><a href="#L-2957"><span class="linenos">2957</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</span></a> <span class="n">start</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-2960"><a href="#L-2960"><span class="linenos">2960</span></a> <span class="n">increment</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-2961"><a href="#L-2961"><span class="linenos">2961</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">):</span> -</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="n">start</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-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">)</span> -</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="n">increment</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-2965"><a href="#L-2965"><span class="linenos">2965</span></a> -</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">and</span> <span class="n">increment</span><span class="p">:</span> -</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">,</span> <span class="n">increment</span><span class="o">=</span><span class="n">increment</span><span class="p">)</span> -</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> -</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">()</span> +</span><span id="L-2948"><a href="#L-2948"><span class="linenos">2948</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> +</span><span id="L-2949"><a href="#L-2949"><span class="linenos">2949</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_constraint</span><span class="p">()</span> +</span><span id="L-2950"><a href="#L-2950"><span class="linenos">2950</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="L-2951"><a href="#L-2951"><span class="linenos">2951</span></a> <span class="p">)</span> +</span><span id="L-2952"><a href="#L-2952"><span class="linenos">2952</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-2953"><a href="#L-2953"><span class="linenos">2953</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">Schema</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-2954"><a href="#L-2954"><span class="linenos">2954</span></a> +</span><span id="L-2955"><a href="#L-2955"><span class="linenos">2955</span></a> <span class="k">def</span> <span class="nf">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-2956"><a href="#L-2956"><span class="linenos">2956</span></a> <span class="n">kind</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-2957"><a href="#L-2957"><span class="linenos">2957</span></a> +</span><span id="L-2958"><a href="#L-2958"><span class="linenos">2958</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ORDINALITY"</span><span class="p">):</span> +</span><span id="L-2959"><a href="#L-2959"><span class="linenos">2959</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">ColumnDef</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">ordinality</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-2960"><a href="#L-2960"><span class="linenos">2960</span></a> +</span><span id="L-2961"><a href="#L-2961"><span class="linenos">2961</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-2962"><a href="#L-2962"><span class="linenos">2962</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-2963"><a href="#L-2963"><span class="linenos">2963</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_constraint</span><span class="p">()</span> +</span><span id="L-2964"><a href="#L-2964"><span class="linenos">2964</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> +</span><span id="L-2965"><a href="#L-2965"><span class="linenos">2965</span></a> <span class="k">break</span> +</span><span id="L-2966"><a href="#L-2966"><span class="linenos">2966</span></a> <span class="n">constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> +</span><span id="L-2967"><a href="#L-2967"><span class="linenos">2967</span></a> +</span><span id="L-2968"><a href="#L-2968"><span class="linenos">2968</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">constraints</span><span class="p">:</span> +</span><span id="L-2969"><a href="#L-2969"><span class="linenos">2969</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-2970"><a href="#L-2970"><span class="linenos">2970</span></a> -</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</span></a> <span class="k">def</span> <span class="nf">_parse_compress</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</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><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CompressColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a> <span class="p">)</span> +</span><span id="L-2971"><a href="#L-2971"><span class="linenos">2971</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">ColumnDef</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> <span class="n">constraints</span><span class="o">=</span><span class="n">constraints</span><span class="p">)</span> +</span><span id="L-2972"><a href="#L-2972"><span class="linenos">2972</span></a> +</span><span id="L-2973"><a href="#L-2973"><span class="linenos">2973</span></a> <span class="k">def</span> <span class="nf">_parse_auto_increment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2974"><a href="#L-2974"><span class="linenos">2974</span></a> <span class="n">start</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-2975"><a href="#L-2975"><span class="linenos">2975</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="L-2976"><a href="#L-2976"><span class="linenos">2976</span></a> -</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</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">CompressColumnConstraint</span><span class="p">,</span> <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-2978"><a href="#L-2978"><span class="linenos">2978</span></a> -</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a> <span class="k">def</span> <span class="nf">_parse_generated_as_identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="k">if</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">BY_DEFAULT</span><span class="p">):</span> -</span><span id="L-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-2983"><a href="#L-2983"><span class="linenos">2983</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> -</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-2977"><a href="#L-2977"><span class="linenos">2977</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-2978"><a href="#L-2978"><span class="linenos">2978</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="L-2979"><a href="#L-2979"><span class="linenos">2979</span></a> <span class="n">start</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-2980"><a href="#L-2980"><span class="linenos">2980</span></a> <span class="n">increment</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-2981"><a href="#L-2981"><span class="linenos">2981</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">):</span> +</span><span id="L-2982"><a href="#L-2982"><span class="linenos">2982</span></a> <span class="n">start</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-2983"><a href="#L-2983"><span class="linenos">2983</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">)</span> +</span><span id="L-2984"><a href="#L-2984"><span class="linenos">2984</span></a> <span class="n">increment</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-2985"><a href="#L-2985"><span class="linenos">2985</span></a> -</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"IDENTITY"</span><span class="p">)</span> -</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">,</span> <span class="s2">"WITH"</span><span class="p">):</span> -</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"increment"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MINVALUE"</span><span class="p">):</span> -</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"minvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAXVALUE"</span><span class="p">):</span> -</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"maxvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-2986"><a href="#L-2986"><span class="linenos">2986</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">and</span> <span class="n">increment</span><span class="p">:</span> +</span><span id="L-2987"><a href="#L-2987"><span class="linenos">2987</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">,</span> <span class="n">increment</span><span class="o">=</span><span class="n">increment</span><span class="p">)</span> +</span><span id="L-2988"><a href="#L-2988"><span class="linenos">2988</span></a> +</span><span id="L-2989"><a href="#L-2989"><span class="linenos">2989</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">()</span> +</span><span id="L-2990"><a href="#L-2990"><span class="linenos">2990</span></a> +</span><span id="L-2991"><a href="#L-2991"><span class="linenos">2991</span></a> <span class="k">def</span> <span class="nf">_parse_compress</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-2992"><a href="#L-2992"><span class="linenos">2992</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-2993"><a href="#L-2993"><span class="linenos">2993</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-2994"><a href="#L-2994"><span class="linenos">2994</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CompressColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="L-2995"><a href="#L-2995"><span class="linenos">2995</span></a> <span class="p">)</span> </span><span id="L-2996"><a href="#L-2996"><span class="linenos">2996</span></a> -</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CYCLE"</span><span class="p">):</span> -</span><span id="L-2998"><a href="#L-2998"><span class="linenos">2998</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"CYCLE"</span><span class="p">):</span> -</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> -</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> -</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a> -</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-2997"><a href="#L-2997"><span class="linenos">2997</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">CompressColumnConstraint</span><span class="p">,</span> <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-2998"><a href="#L-2998"><span class="linenos">2998</span></a> +</span><span id="L-2999"><a href="#L-2999"><span class="linenos">2999</span></a> <span class="k">def</span> <span class="nf">_parse_generated_as_identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3000"><a href="#L-3000"><span class="linenos">3000</span></a> <span class="k">if</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">BY_DEFAULT</span><span class="p">):</span> +</span><span id="L-3001"><a href="#L-3001"><span class="linenos">3001</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-3002"><a href="#L-3002"><span class="linenos">3002</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3003"><a href="#L-3003"><span class="linenos">3003</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> +</span><span id="L-3004"><a href="#L-3004"><span class="linenos">3004</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="L-3005"><a href="#L-3005"><span class="linenos">3005</span></a> -</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> <span class="k">def</span> <span class="nf">_parse_inline</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">Expression</span><span class="p">]:</span> -</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LENGTH"</span><span class="p">)</span> -</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</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">InlineLengthColumnConstraint</span><span class="p">,</span> <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-3009"><a href="#L-3009"><span class="linenos">3009</span></a> -</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="k">def</span> <span class="nf">_parse_not_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">):</span> -</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</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">NotNullColumnConstraint</span><span class="p">)</span> -</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CASESPECIFIC"</span><span class="p">):</span> -</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3006"><a href="#L-3006"><span class="linenos">3006</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"IDENTITY"</span><span class="p">)</span> +</span><span id="L-3007"><a href="#L-3007"><span class="linenos">3007</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-3008"><a href="#L-3008"><span class="linenos">3008</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">,</span> <span class="s2">"WITH"</span><span class="p">):</span> +</span><span id="L-3009"><a href="#L-3009"><span class="linenos">3009</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3010"><a href="#L-3010"><span class="linenos">3010</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="L-3011"><a href="#L-3011"><span class="linenos">3011</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"increment"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3012"><a href="#L-3012"><span class="linenos">3012</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MINVALUE"</span><span class="p">):</span> +</span><span id="L-3013"><a href="#L-3013"><span class="linenos">3013</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"minvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3014"><a href="#L-3014"><span class="linenos">3014</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAXVALUE"</span><span class="p">):</span> +</span><span id="L-3015"><a href="#L-3015"><span class="linenos">3015</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"maxvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> </span><span id="L-3016"><a href="#L-3016"><span class="linenos">3016</span></a> -</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="k">def</span> <span class="nf">_parse_column_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> -</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> -</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3017"><a href="#L-3017"><span class="linenos">3017</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CYCLE"</span><span class="p">):</span> +</span><span id="L-3018"><a href="#L-3018"><span class="linenos">3018</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="L-3019"><a href="#L-3019"><span class="linenos">3019</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"CYCLE"</span><span class="p">):</span> +</span><span id="L-3020"><a href="#L-3020"><span class="linenos">3020</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> </span><span id="L-3021"><a href="#L-3021"><span class="linenos">3021</span></a> -</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a> <span class="k">if</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">CONSTRAINT</span><span class="p">):</span> -</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> -</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> -</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</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><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnConstraint</span><span class="p">,</span> -</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-3029"><a href="#L-3029"><span class="linenos">3029</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">),</span> -</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="p">)</span> -</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a> -</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a> -</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</span></a> <span class="k">def</span> <span class="nf">_parse_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="k">if</span> <span class="ow">not</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">CONSTRAINT</span><span class="p">):</span> -</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span><span class="p">)</span> -</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> -</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a> -</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> -</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> -</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> <span class="k">break</span> -</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> -</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</span></a> -</span><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> <span class="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">Constraint</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> -</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="k">def</span> <span class="nf">_parse_unnamed_constraint</span><span class="p">(</span> -</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">constraints</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="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</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-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="n">constraints</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> -</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> -</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">if</span> <span class="n">constraint</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">:</span> -</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser found for schema constraint </span><span class="si">{</span><span class="n">constraint</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span> -</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> -</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="n">constraint</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-3022"><a href="#L-3022"><span class="linenos">3022</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-3023"><a href="#L-3023"><span class="linenos">3023</span></a> +</span><span id="L-3024"><a href="#L-3024"><span class="linenos">3024</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3025"><a href="#L-3025"><span class="linenos">3025</span></a> +</span><span id="L-3026"><a href="#L-3026"><span class="linenos">3026</span></a> <span class="k">def</span> <span class="nf">_parse_inline</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">Expression</span><span class="p">]:</span> +</span><span id="L-3027"><a href="#L-3027"><span class="linenos">3027</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LENGTH"</span><span class="p">)</span> +</span><span id="L-3028"><a href="#L-3028"><span class="linenos">3028</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">InlineLengthColumnConstraint</span><span class="p">,</span> <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-3029"><a href="#L-3029"><span class="linenos">3029</span></a> +</span><span id="L-3030"><a href="#L-3030"><span class="linenos">3030</span></a> <span class="k">def</span> <span class="nf">_parse_not_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="L-3031"><a href="#L-3031"><span class="linenos">3031</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">):</span> +</span><span id="L-3032"><a href="#L-3032"><span class="linenos">3032</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">NotNullColumnConstraint</span><span class="p">)</span> +</span><span id="L-3033"><a href="#L-3033"><span class="linenos">3033</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CASESPECIFIC"</span><span class="p">):</span> +</span><span id="L-3034"><a href="#L-3034"><span class="linenos">3034</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3035"><a href="#L-3035"><span class="linenos">3035</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3036"><a href="#L-3036"><span class="linenos">3036</span></a> +</span><span id="L-3037"><a href="#L-3037"><span class="linenos">3037</span></a> <span class="k">def</span> <span class="nf">_parse_column_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="L-3038"><a href="#L-3038"><span class="linenos">3038</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> +</span><span id="L-3039"><a href="#L-3039"><span class="linenos">3039</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> +</span><span id="L-3040"><a href="#L-3040"><span class="linenos">3040</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3041"><a href="#L-3041"><span class="linenos">3041</span></a> +</span><span id="L-3042"><a href="#L-3042"><span class="linenos">3042</span></a> <span class="k">if</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">CONSTRAINT</span><span class="p">):</span> +</span><span id="L-3043"><a href="#L-3043"><span class="linenos">3043</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3044"><a href="#L-3044"><span class="linenos">3044</span></a> +</span><span id="L-3045"><a href="#L-3045"><span class="linenos">3045</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> +</span><span id="L-3046"><a href="#L-3046"><span class="linenos">3046</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><span id="L-3047"><a href="#L-3047"><span class="linenos">3047</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnConstraint</span><span class="p">,</span> +</span><span id="L-3048"><a href="#L-3048"><span class="linenos">3048</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3049"><a href="#L-3049"><span class="linenos">3049</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">),</span> +</span><span id="L-3050"><a href="#L-3050"><span class="linenos">3050</span></a> <span class="p">)</span> +</span><span id="L-3051"><a href="#L-3051"><span class="linenos">3051</span></a> +</span><span id="L-3052"><a href="#L-3052"><span class="linenos">3052</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3053"><a href="#L-3053"><span class="linenos">3053</span></a> +</span><span id="L-3054"><a href="#L-3054"><span class="linenos">3054</span></a> <span class="k">def</span> <span class="nf">_parse_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="L-3055"><a href="#L-3055"><span class="linenos">3055</span></a> <span class="k">if</span> <span class="ow">not</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">CONSTRAINT</span><span class="p">):</span> +</span><span id="L-3056"><a href="#L-3056"><span class="linenos">3056</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span><span class="p">)</span> +</span><span id="L-3057"><a href="#L-3057"><span class="linenos">3057</span></a> +</span><span id="L-3058"><a href="#L-3058"><span class="linenos">3058</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3059"><a href="#L-3059"><span class="linenos">3059</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="L-3060"><a href="#L-3060"><span class="linenos">3060</span></a> -</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">def</span> <span class="nf">_parse_unique</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</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">UniqueColumnConstraint</span><span class="p">)</span> -</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</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">Unique</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">())</span> -</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a> -</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a> <span class="k">def</span> <span class="nf">_parse_key_constraint_options</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">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a> <span class="k">break</span> -</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</span></a> -</span><span id="L-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="k">if</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">ON</span><span class="p">):</span> -</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a> <span class="n">action</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a> -</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> -</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> -</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a> <span class="k">elif</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">CASCADE</span><span class="p">):</span> -</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"CASCADE"</span> -</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">):</span> -</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET NULL"</span> -</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> -</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET DEFAULT"</span> -</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid key constraint"</span><span class="p">)</span> -</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a> -</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">,</span> <span class="s2">"ENFORCED"</span><span class="p">):</span> -</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NOT ENFORCED"</span><span class="p">)</span> -</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">):</span> -</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">)</span> -</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INITIALLY"</span><span class="p">,</span> <span class="s2">"DEFERRED"</span><span class="p">):</span> -</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"INITIALLY DEFERRED"</span><span class="p">)</span> -</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">):</span> -</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">)</span> -</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"FULL"</span><span class="p">):</span> -</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"MATCH FULL"</span><span class="p">)</span> -</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="k">break</span> -</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> -</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a> <span class="k">return</span> <span class="n">options</span> -</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> -</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a> <span class="k">def</span> <span class="nf">_parse_references</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">Expression</span><span class="p">]:</span> -</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="k">if</span> <span class="ow">not</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">REFERENCES</span><span class="p">):</span> -</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3061"><a href="#L-3061"><span class="linenos">3061</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-3062"><a href="#L-3062"><span class="linenos">3062</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> +</span><span id="L-3063"><a href="#L-3063"><span class="linenos">3063</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> +</span><span id="L-3064"><a href="#L-3064"><span class="linenos">3064</span></a> <span class="k">break</span> +</span><span id="L-3065"><a href="#L-3065"><span class="linenos">3065</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> +</span><span id="L-3066"><a href="#L-3066"><span class="linenos">3066</span></a> +</span><span id="L-3067"><a href="#L-3067"><span class="linenos">3067</span></a> <span class="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">Constraint</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-3068"><a href="#L-3068"><span class="linenos">3068</span></a> +</span><span id="L-3069"><a href="#L-3069"><span class="linenos">3069</span></a> <span class="k">def</span> <span class="nf">_parse_unnamed_constraint</span><span class="p">(</span> +</span><span id="L-3070"><a href="#L-3070"><span class="linenos">3070</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">constraints</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="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3071"><a href="#L-3071"><span class="linenos">3071</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-3072"><a href="#L-3072"><span class="linenos">3072</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="n">constraints</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> +</span><span id="L-3073"><a href="#L-3073"><span class="linenos">3073</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3074"><a href="#L-3074"><span class="linenos">3074</span></a> +</span><span id="L-3075"><a href="#L-3075"><span class="linenos">3075</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3076"><a href="#L-3076"><span class="linenos">3076</span></a> <span class="k">if</span> <span class="n">constraint</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">:</span> +</span><span id="L-3077"><a href="#L-3077"><span class="linenos">3077</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser found for schema constraint </span><span class="si">{</span><span class="n">constraint</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span> +</span><span id="L-3078"><a href="#L-3078"><span class="linenos">3078</span></a> +</span><span id="L-3079"><a href="#L-3079"><span class="linenos">3079</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="n">constraint</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-3080"><a href="#L-3080"><span class="linenos">3080</span></a> +</span><span id="L-3081"><a href="#L-3081"><span class="linenos">3081</span></a> <span class="k">def</span> <span class="nf">_parse_unique</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3082"><a href="#L-3082"><span class="linenos">3082</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-3083"><a href="#L-3083"><span class="linenos">3083</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">UniqueColumnConstraint</span><span class="p">)</span> +</span><span id="L-3084"><a href="#L-3084"><span class="linenos">3084</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">Unique</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">())</span> +</span><span id="L-3085"><a href="#L-3085"><span class="linenos">3085</span></a> +</span><span id="L-3086"><a href="#L-3086"><span class="linenos">3086</span></a> <span class="k">def</span> <span class="nf">_parse_key_constraint_options</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">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="L-3087"><a href="#L-3087"><span class="linenos">3087</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-3088"><a href="#L-3088"><span class="linenos">3088</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-3089"><a href="#L-3089"><span class="linenos">3089</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-3090"><a href="#L-3090"><span class="linenos">3090</span></a> <span class="k">break</span> +</span><span id="L-3091"><a href="#L-3091"><span class="linenos">3091</span></a> +</span><span id="L-3092"><a href="#L-3092"><span class="linenos">3092</span></a> <span class="k">if</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">ON</span><span class="p">):</span> +</span><span id="L-3093"><a href="#L-3093"><span class="linenos">3093</span></a> <span class="n">action</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3094"><a href="#L-3094"><span class="linenos">3094</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-3095"><a href="#L-3095"><span class="linenos">3095</span></a> +</span><span id="L-3096"><a href="#L-3096"><span class="linenos">3096</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> +</span><span id="L-3097"><a href="#L-3097"><span class="linenos">3097</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> +</span><span id="L-3098"><a href="#L-3098"><span class="linenos">3098</span></a> <span class="k">elif</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">CASCADE</span><span class="p">):</span> +</span><span id="L-3099"><a href="#L-3099"><span class="linenos">3099</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"CASCADE"</span> +</span><span id="L-3100"><a href="#L-3100"><span class="linenos">3100</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">):</span> +</span><span id="L-3101"><a href="#L-3101"><span class="linenos">3101</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET NULL"</span> +</span><span id="L-3102"><a href="#L-3102"><span class="linenos">3102</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> +</span><span id="L-3103"><a href="#L-3103"><span class="linenos">3103</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET DEFAULT"</span> +</span><span id="L-3104"><a href="#L-3104"><span class="linenos">3104</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3105"><a href="#L-3105"><span class="linenos">3105</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid key constraint"</span><span class="p">)</span> </span><span id="L-3106"><a href="#L-3106"><span class="linenos">3106</span></a> -</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a> -</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> -</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> -</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</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">Reference</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> -</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a> -</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="k">def</span> <span class="nf">_parse_foreign_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> -</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-3107"><a href="#L-3107"><span class="linenos">3107</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-3108"><a href="#L-3108"><span class="linenos">3108</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">,</span> <span class="s2">"ENFORCED"</span><span class="p">):</span> +</span><span id="L-3109"><a href="#L-3109"><span class="linenos">3109</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NOT ENFORCED"</span><span class="p">)</span> +</span><span id="L-3110"><a href="#L-3110"><span class="linenos">3110</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">):</span> +</span><span id="L-3111"><a href="#L-3111"><span class="linenos">3111</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">)</span> +</span><span id="L-3112"><a href="#L-3112"><span class="linenos">3112</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INITIALLY"</span><span class="p">,</span> <span class="s2">"DEFERRED"</span><span class="p">):</span> +</span><span id="L-3113"><a href="#L-3113"><span class="linenos">3113</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"INITIALLY DEFERRED"</span><span class="p">)</span> +</span><span id="L-3114"><a href="#L-3114"><span class="linenos">3114</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">):</span> +</span><span id="L-3115"><a href="#L-3115"><span class="linenos">3115</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">)</span> +</span><span id="L-3116"><a href="#L-3116"><span class="linenos">3116</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"FULL"</span><span class="p">):</span> +</span><span id="L-3117"><a href="#L-3117"><span class="linenos">3117</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"MATCH FULL"</span><span class="p">)</span> +</span><span id="L-3118"><a href="#L-3118"><span class="linenos">3118</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3119"><a href="#L-3119"><span class="linenos">3119</span></a> <span class="k">break</span> </span><span id="L-3120"><a href="#L-3120"><span class="linenos">3120</span></a> -</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="k">while</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">ON</span><span class="p">):</span> -</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">)):</span> -</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected DELETE or UPDATE"</span><span class="p">)</span> -</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a> -</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="L-3121"><a href="#L-3121"><span class="linenos">3121</span></a> <span class="k">return</span> <span class="n">options</span> +</span><span id="L-3122"><a href="#L-3122"><span class="linenos">3122</span></a> +</span><span id="L-3123"><a href="#L-3123"><span class="linenos">3123</span></a> <span class="k">def</span> <span class="nf">_parse_references</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">Expression</span><span class="p">]:</span> +</span><span id="L-3124"><a href="#L-3124"><span class="linenos">3124</span></a> <span class="k">if</span> <span class="ow">not</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">REFERENCES</span><span class="p">):</span> +</span><span id="L-3125"><a href="#L-3125"><span class="linenos">3125</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="L-3126"><a href="#L-3126"><span class="linenos">3126</span></a> -</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> -</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> -</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a> <span class="k">elif</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">SET</span><span class="p">):</span> -</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">))</span> -</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</span></a> <span class="n">action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3127"><a href="#L-3127"><span class="linenos">3127</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3128"><a href="#L-3128"><span class="linenos">3128</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3129"><a href="#L-3129"><span class="linenos">3129</span></a> +</span><span id="L-3130"><a href="#L-3130"><span class="linenos">3130</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-3131"><a href="#L-3131"><span class="linenos">3131</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="L-3132"><a href="#L-3132"><span class="linenos">3132</span></a> +</span><span id="L-3133"><a href="#L-3133"><span class="linenos">3133</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> +</span><span id="L-3134"><a href="#L-3134"><span class="linenos">3134</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">Reference</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> </span><span id="L-3135"><a href="#L-3135"><span class="linenos">3135</span></a> -</span><span id="L-3136"><a href="#L-3136"><span class="linenos">3136</span></a> <span class="n">options</span><span class="p">[</span><span class="n">kind</span><span class="p">]</span> <span class="o">=</span> <span class="n">action</span> -</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a> -</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</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><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">reference</span><span class="o">=</span><span class="n">reference</span><span class="p">,</span> <span class="o">**</span><span class="n">options</span> <span class="c1"># type: ignore</span> -</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a> <span class="p">)</span> -</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a> -</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a> <span class="k">def</span> <span class="nf">_parse_primary_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ASC</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">))</span> -</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span> -</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a> <span class="p">)</span> -</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a> -</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</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">PrimaryKeyColumnConstraint</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">)</span> -</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> -</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> -</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</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">PrimaryKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> -</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a> -</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a> <span class="k">def</span> <span class="nf">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">)):</span> -</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a> -</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a> <span class="n">bracket_kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="n">expressions</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">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-3136"><a href="#L-3136"><span class="linenos">3136</span></a> <span class="k">def</span> <span class="nf">_parse_foreign_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3137"><a href="#L-3137"><span class="linenos">3137</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="L-3138"><a href="#L-3138"><span class="linenos">3138</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> +</span><span id="L-3139"><a href="#L-3139"><span class="linenos">3139</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="L-3140"><a href="#L-3140"><span class="linenos">3140</span></a> +</span><span id="L-3141"><a href="#L-3141"><span class="linenos">3141</span></a> <span class="k">while</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">ON</span><span class="p">):</span> +</span><span id="L-3142"><a href="#L-3142"><span class="linenos">3142</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">)):</span> +</span><span id="L-3143"><a href="#L-3143"><span class="linenos">3143</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected DELETE or UPDATE"</span><span class="p">)</span> +</span><span id="L-3144"><a href="#L-3144"><span class="linenos">3144</span></a> +</span><span id="L-3145"><a href="#L-3145"><span class="linenos">3145</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="L-3146"><a href="#L-3146"><span class="linenos">3146</span></a> +</span><span id="L-3147"><a href="#L-3147"><span class="linenos">3147</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> +</span><span id="L-3148"><a href="#L-3148"><span class="linenos">3148</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> +</span><span id="L-3149"><a href="#L-3149"><span class="linenos">3149</span></a> <span class="k">elif</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">SET</span><span class="p">):</span> +</span><span id="L-3150"><a href="#L-3150"><span class="linenos">3150</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">))</span> +</span><span id="L-3151"><a href="#L-3151"><span class="linenos">3151</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3152"><a href="#L-3152"><span class="linenos">3152</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3153"><a href="#L-3153"><span class="linenos">3153</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3154"><a href="#L-3154"><span class="linenos">3154</span></a> <span class="n">action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3155"><a href="#L-3155"><span class="linenos">3155</span></a> +</span><span id="L-3156"><a href="#L-3156"><span class="linenos">3156</span></a> <span class="n">options</span><span class="p">[</span><span class="n">kind</span><span class="p">]</span> <span class="o">=</span> <span class="n">action</span> +</span><span id="L-3157"><a href="#L-3157"><span class="linenos">3157</span></a> +</span><span id="L-3158"><a href="#L-3158"><span class="linenos">3158</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3159"><a href="#L-3159"><span class="linenos">3159</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">reference</span><span class="o">=</span><span class="n">reference</span><span class="p">,</span> <span class="o">**</span><span class="n">options</span> <span class="c1"># type: ignore</span> +</span><span id="L-3160"><a href="#L-3160"><span class="linenos">3160</span></a> <span class="p">)</span> </span><span id="L-3161"><a href="#L-3161"><span class="linenos">3161</span></a> -</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> -</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a> <span class="n">expressions</span> <span class="o">=</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">Slice</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())]</span> -</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()))</span> -</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> -</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> <span class="c1"># https://duckdb.org/docs/sql/data_types/struct.html#creating-structs</span> -</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="k">if</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> -</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</span></a> <span class="n">this</span> <span class="o">=</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">Struct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span> <span class="ow">or</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"ARRAY"</span><span class="p">:</span> -</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a> <span class="n">this</span> <span class="o">=</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> -</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a> <span class="n">this</span> <span class="o">=</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">Bracket</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a> -</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="k">if</span> <span class="ow">not</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">R_BRACKET</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">:</span> -</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ]"</span><span class="p">)</span> -</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a> <span class="k">elif</span> <span class="ow">not</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">R_BRACE</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> -</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected }"</span><span class="p">)</span> -</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> -</span><span id="L-3181"><a href="#L-3181"><span class="linenos">3181</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a> -</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a> <span class="k">def</span> <span class="nf">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> -</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</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">Slice</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> -</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a> <span class="k">def</span> <span class="nf">_parse_case</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">Expression</span><span class="p">]:</span> -</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="n">ifs</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="n">default</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a> -</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a> -</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> -</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</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">THEN</span><span class="p">)</span> -</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a> <span class="n">ifs</span><span class="o">.</span><span class="n">append</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">If</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">true</span><span class="o">=</span><span class="n">then</span><span class="p">))</span> +</span><span id="L-3162"><a href="#L-3162"><span class="linenos">3162</span></a> <span class="k">def</span> <span class="nf">_parse_primary_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3163"><a href="#L-3163"><span class="linenos">3163</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-3164"><a href="#L-3164"><span class="linenos">3164</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ASC</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">))</span> +</span><span id="L-3165"><a href="#L-3165"><span class="linenos">3165</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span> +</span><span id="L-3166"><a href="#L-3166"><span class="linenos">3166</span></a> <span class="p">)</span> +</span><span id="L-3167"><a href="#L-3167"><span class="linenos">3167</span></a> +</span><span id="L-3168"><a href="#L-3168"><span class="linenos">3168</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-3169"><a href="#L-3169"><span class="linenos">3169</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">PrimaryKeyColumnConstraint</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">)</span> +</span><span id="L-3170"><a href="#L-3170"><span class="linenos">3170</span></a> +</span><span id="L-3171"><a href="#L-3171"><span class="linenos">3171</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="L-3172"><a href="#L-3172"><span class="linenos">3172</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> +</span><span id="L-3173"><a href="#L-3173"><span class="linenos">3173</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">PrimaryKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> +</span><span id="L-3174"><a href="#L-3174"><span class="linenos">3174</span></a> +</span><span id="L-3175"><a href="#L-3175"><span class="linenos">3175</span></a> <span class="k">def</span> <span class="nf">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-3176"><a href="#L-3176"><span class="linenos">3176</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">)):</span> +</span><span id="L-3177"><a href="#L-3177"><span class="linenos">3177</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3178"><a href="#L-3178"><span class="linenos">3178</span></a> +</span><span id="L-3179"><a href="#L-3179"><span class="linenos">3179</span></a> <span class="n">bracket_kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="L-3180"><a href="#L-3180"><span class="linenos">3180</span></a> <span class="n">expressions</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">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-3181"><a href="#L-3181"><span class="linenos">3181</span></a> +</span><span id="L-3182"><a href="#L-3182"><span class="linenos">3182</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> +</span><span id="L-3183"><a href="#L-3183"><span class="linenos">3183</span></a> <span class="n">expressions</span> <span class="o">=</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">Slice</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())]</span> +</span><span id="L-3184"><a href="#L-3184"><span class="linenos">3184</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3185"><a href="#L-3185"><span class="linenos">3185</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()))</span> +</span><span id="L-3186"><a href="#L-3186"><span class="linenos">3186</span></a> +</span><span id="L-3187"><a href="#L-3187"><span class="linenos">3187</span></a> <span class="c1"># https://duckdb.org/docs/sql/data_types/struct.html#creating-structs</span> +</span><span id="L-3188"><a href="#L-3188"><span class="linenos">3188</span></a> <span class="k">if</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> +</span><span id="L-3189"><a href="#L-3189"><span class="linenos">3189</span></a> <span class="n">this</span> <span class="o">=</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">Struct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-3190"><a href="#L-3190"><span class="linenos">3190</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span> <span class="ow">or</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"ARRAY"</span><span class="p">:</span> +</span><span id="L-3191"><a href="#L-3191"><span class="linenos">3191</span></a> <span class="n">this</span> <span class="o">=</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-3192"><a href="#L-3192"><span class="linenos">3192</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3193"><a href="#L-3193"><span class="linenos">3193</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> +</span><span id="L-3194"><a href="#L-3194"><span class="linenos">3194</span></a> <span class="n">this</span> <span class="o">=</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">Bracket</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-3195"><a href="#L-3195"><span class="linenos">3195</span></a> +</span><span id="L-3196"><a href="#L-3196"><span class="linenos">3196</span></a> <span class="k">if</span> <span class="ow">not</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">R_BRACKET</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">:</span> +</span><span id="L-3197"><a href="#L-3197"><span class="linenos">3197</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ]"</span><span class="p">)</span> +</span><span id="L-3198"><a href="#L-3198"><span class="linenos">3198</span></a> <span class="k">elif</span> <span class="ow">not</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">R_BRACE</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> +</span><span id="L-3199"><a href="#L-3199"><span class="linenos">3199</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected }"</span><span class="p">)</span> </span><span id="L-3200"><a href="#L-3200"><span class="linenos">3200</span></a> -</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a> <span class="k">if</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">ELSE</span><span class="p">):</span> -</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3201"><a href="#L-3201"><span class="linenos">3201</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-3202"><a href="#L-3202"><span class="linenos">3202</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> </span><span id="L-3203"><a href="#L-3203"><span class="linenos">3203</span></a> -</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="k">if</span> <span class="ow">not</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">END</span><span class="p">):</span> -</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected END after CASE"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</span></a> -</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span> -</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> <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">Case</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="n">ifs</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">)</span> -</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="p">)</span> -</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> -</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a> <span class="k">def</span> <span class="nf">_parse_if</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">Expression</span><span class="p">]:</span> -</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</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">THEN</span><span class="p">)</span> -</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> <span class="n">true</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="n">false</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">ELSE</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</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">END</span><span class="p">)</span> -</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a> <span class="n">this</span> <span class="o">=</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">If</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">true</span><span class="p">,</span> <span class="n">false</span><span class="o">=</span><span class="n">false</span><span class="p">)</span> -</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> -</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-3204"><a href="#L-3204"><span class="linenos">3204</span></a> <span class="k">def</span> <span class="nf">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-3205"><a href="#L-3205"><span class="linenos">3205</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> +</span><span id="L-3206"><a href="#L-3206"><span class="linenos">3206</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">Slice</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="L-3207"><a href="#L-3207"><span class="linenos">3207</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3208"><a href="#L-3208"><span class="linenos">3208</span></a> +</span><span id="L-3209"><a href="#L-3209"><span class="linenos">3209</span></a> <span class="k">def</span> <span class="nf">_parse_case</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">Expression</span><span class="p">]:</span> +</span><span id="L-3210"><a href="#L-3210"><span class="linenos">3210</span></a> <span class="n">ifs</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-3211"><a href="#L-3211"><span class="linenos">3211</span></a> <span class="n">default</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3212"><a href="#L-3212"><span class="linenos">3212</span></a> +</span><span id="L-3213"><a href="#L-3213"><span class="linenos">3213</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3214"><a href="#L-3214"><span class="linenos">3214</span></a> +</span><span id="L-3215"><a href="#L-3215"><span class="linenos">3215</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> +</span><span id="L-3216"><a href="#L-3216"><span class="linenos">3216</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3217"><a href="#L-3217"><span class="linenos">3217</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">THEN</span><span class="p">)</span> +</span><span id="L-3218"><a href="#L-3218"><span class="linenos">3218</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3219"><a href="#L-3219"><span class="linenos">3219</span></a> <span class="n">ifs</span><span class="o">.</span><span class="n">append</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">If</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">true</span><span class="o">=</span><span class="n">then</span><span class="p">))</span> +</span><span id="L-3220"><a href="#L-3220"><span class="linenos">3220</span></a> +</span><span id="L-3221"><a href="#L-3221"><span class="linenos">3221</span></a> <span class="k">if</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">ELSE</span><span class="p">):</span> +</span><span id="L-3222"><a href="#L-3222"><span class="linenos">3222</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3223"><a href="#L-3223"><span class="linenos">3223</span></a> +</span><span id="L-3224"><a href="#L-3224"><span class="linenos">3224</span></a> <span class="k">if</span> <span class="ow">not</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">END</span><span class="p">):</span> +</span><span id="L-3225"><a href="#L-3225"><span class="linenos">3225</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected END after CASE"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> </span><span id="L-3226"><a href="#L-3226"><span class="linenos">3226</span></a> -</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a> <span class="k">def</span> <span class="nf">_parse_extract</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">()</span> -</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> -</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> -</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a> -</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> -</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected FROM or comma after EXTRACT"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a> -</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> -</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="k">def</span> <span class="nf">_parse_cast</span><span class="p">(</span><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="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> -</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="k">if</span> <span class="ow">not</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">ALIAS</span><span class="p">):</span> -</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected AS after CAST"</span><span class="p">)</span> -</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> -</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</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-3245"><a href="#L-3245"><span class="linenos">3245</span></a> -</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span><span class="p">:</span> -</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected TYPE after CAST"</span><span class="p">)</span> -</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">:</span> -</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> <span class="k">if</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">CHARACTER_SET</span><span class="p">):</span> -</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">())</span> -</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</span></a> -</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> -</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="k">def</span> <span class="nf">_parse_string_agg</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> <span class="n">expression</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</span></a> -</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> -</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="n">expression</span> <span class="o">=</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">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</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-3260"><a href="#L-3260"><span class="linenos">3260</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</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">0</span><span class="p">)</span> +</span><span id="L-3227"><a href="#L-3227"><span class="linenos">3227</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span> +</span><span id="L-3228"><a href="#L-3228"><span class="linenos">3228</span></a> <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">Case</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="n">ifs</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">)</span> +</span><span id="L-3229"><a href="#L-3229"><span class="linenos">3229</span></a> <span class="p">)</span> +</span><span id="L-3230"><a href="#L-3230"><span class="linenos">3230</span></a> +</span><span id="L-3231"><a href="#L-3231"><span class="linenos">3231</span></a> <span class="k">def</span> <span class="nf">_parse_if</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">Expression</span><span class="p">]:</span> +</span><span id="L-3232"><a href="#L-3232"><span class="linenos">3232</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-3233"><a href="#L-3233"><span class="linenos">3233</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-3234"><a href="#L-3234"><span class="linenos">3234</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-3235"><a href="#L-3235"><span class="linenos">3235</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="L-3236"><a href="#L-3236"><span class="linenos">3236</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-3237"><a href="#L-3237"><span class="linenos">3237</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3238"><a href="#L-3238"><span class="linenos">3238</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3239"><a href="#L-3239"><span class="linenos">3239</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">THEN</span><span class="p">)</span> +</span><span id="L-3240"><a href="#L-3240"><span class="linenos">3240</span></a> <span class="n">true</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3241"><a href="#L-3241"><span class="linenos">3241</span></a> <span class="n">false</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">ELSE</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-3242"><a href="#L-3242"><span class="linenos">3242</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">END</span><span class="p">)</span> +</span><span id="L-3243"><a href="#L-3243"><span class="linenos">3243</span></a> <span class="n">this</span> <span class="o">=</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">If</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">true</span><span class="p">,</span> <span class="n">false</span><span class="o">=</span><span class="n">false</span><span class="p">)</span> +</span><span id="L-3244"><a href="#L-3244"><span class="linenos">3244</span></a> +</span><span id="L-3245"><a href="#L-3245"><span class="linenos">3245</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-3246"><a href="#L-3246"><span class="linenos">3246</span></a> +</span><span id="L-3247"><a href="#L-3247"><span class="linenos">3247</span></a> <span class="k">def</span> <span class="nf">_parse_extract</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3248"><a href="#L-3248"><span class="linenos">3248</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">()</span> +</span><span id="L-3249"><a href="#L-3249"><span class="linenos">3249</span></a> +</span><span id="L-3250"><a href="#L-3250"><span class="linenos">3250</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> +</span><span id="L-3251"><a href="#L-3251"><span class="linenos">3251</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3252"><a href="#L-3252"><span class="linenos">3252</span></a> +</span><span id="L-3253"><a href="#L-3253"><span class="linenos">3253</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> +</span><span id="L-3254"><a href="#L-3254"><span class="linenos">3254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected FROM or comma after EXTRACT"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3255"><a href="#L-3255"><span class="linenos">3255</span></a> +</span><span id="L-3256"><a href="#L-3256"><span class="linenos">3256</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3257"><a href="#L-3257"><span class="linenos">3257</span></a> +</span><span id="L-3258"><a href="#L-3258"><span class="linenos">3258</span></a> <span class="k">def</span> <span class="nf">_parse_cast</span><span class="p">(</span><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="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3259"><a href="#L-3259"><span class="linenos">3259</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3260"><a href="#L-3260"><span class="linenos">3260</span></a> +</span><span id="L-3261"><a href="#L-3261"><span class="linenos">3261</span></a> <span class="k">if</span> <span class="ow">not</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">ALIAS</span><span class="p">):</span> +</span><span id="L-3262"><a href="#L-3262"><span class="linenos">3262</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected AS after CAST"</span><span class="p">)</span> </span><span id="L-3263"><a href="#L-3263"><span class="linenos">3263</span></a> -</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</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><span id="L-3265"><a href="#L-3265"><span class="linenos">3265</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> -</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="c1"># postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]])</span> -</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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-3269"><a href="#L-3269"><span class="linenos">3269</span></a> -</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="c1"># Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]).</span> -</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> <span class="c1"># This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that</span> -</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</span></a> <span class="c1"># the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them.</span> -</span><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> <span class="k">if</span> <span class="ow">not</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">WITHIN_GROUP</span><span class="p">):</span> -</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</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-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="n">this</span> <span class="o">=</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 class="n">args</span><span class="p">)</span> -</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> -</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> <span class="c1"># The corresponding match_r_paren will be called in parse_function (caller)</span> -</span><span id="L-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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-3282"><a href="#L-3282"><span class="linenos">3282</span></a> -</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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-3284"><a href="#L-3284"><span class="linenos">3284</span></a> <span class="n">to</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</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-3286"><a href="#L-3286"><span class="linenos">3286</span></a> -</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="k">if</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">USING</span><span class="p">):</span> -</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">())</span> -</span><span id="L-3289"><a href="#L-3289"><span class="linenos">3289</span></a> <span class="k">elif</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">COMMA</span><span class="p">):</span> -</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="n">to</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-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="n">to</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> -</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</span></a> <span class="c1"># Swap the argument order if needed to produce the correct AST</span> -</span><span id="L-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONVERT_TYPE_FIRST</span><span class="p">:</span> -</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <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">this</span> -</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> -</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> -</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="L-3264"><a href="#L-3264"><span class="linenos">3264</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-3265"><a href="#L-3265"><span class="linenos">3265</span></a> +</span><span id="L-3266"><a href="#L-3266"><span class="linenos">3266</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span><span class="p">:</span> +</span><span id="L-3267"><a href="#L-3267"><span class="linenos">3267</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected TYPE after CAST"</span><span class="p">)</span> +</span><span id="L-3268"><a href="#L-3268"><span class="linenos">3268</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">:</span> +</span><span id="L-3269"><a href="#L-3269"><span class="linenos">3269</span></a> <span class="k">if</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">CHARACTER_SET</span><span class="p">):</span> +</span><span id="L-3270"><a href="#L-3270"><span class="linenos">3270</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">())</span> +</span><span id="L-3271"><a href="#L-3271"><span class="linenos">3271</span></a> +</span><span id="L-3272"><a href="#L-3272"><span class="linenos">3272</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="L-3273"><a href="#L-3273"><span class="linenos">3273</span></a> +</span><span id="L-3274"><a href="#L-3274"><span class="linenos">3274</span></a> <span class="k">def</span> <span class="nf">_parse_string_agg</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3275"><a href="#L-3275"><span class="linenos">3275</span></a> <span class="n">expression</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="L-3276"><a href="#L-3276"><span class="linenos">3276</span></a> +</span><span id="L-3277"><a href="#L-3277"><span class="linenos">3277</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> +</span><span id="L-3278"><a href="#L-3278"><span class="linenos">3278</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-3279"><a href="#L-3279"><span class="linenos">3279</span></a> <span class="n">expression</span> <span class="o">=</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">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</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-3280"><a href="#L-3280"><span class="linenos">3280</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3281"><a href="#L-3281"><span class="linenos">3281</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-3282"><a href="#L-3282"><span class="linenos">3282</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">0</span><span class="p">)</span> +</span><span id="L-3283"><a href="#L-3283"><span class="linenos">3283</span></a> +</span><span id="L-3284"><a href="#L-3284"><span class="linenos">3284</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><span id="L-3285"><a href="#L-3285"><span class="linenos">3285</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> +</span><span id="L-3286"><a href="#L-3286"><span class="linenos">3286</span></a> <span class="c1"># postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]])</span> +</span><span id="L-3287"><a href="#L-3287"><span class="linenos">3287</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-3288"><a href="#L-3288"><span class="linenos">3288</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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-3289"><a href="#L-3289"><span class="linenos">3289</span></a> +</span><span id="L-3290"><a href="#L-3290"><span class="linenos">3290</span></a> <span class="c1"># Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]).</span> +</span><span id="L-3291"><a href="#L-3291"><span class="linenos">3291</span></a> <span class="c1"># This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that</span> +</span><span id="L-3292"><a href="#L-3292"><span class="linenos">3292</span></a> <span class="c1"># the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them.</span> +</span><span id="L-3293"><a href="#L-3293"><span class="linenos">3293</span></a> <span class="k">if</span> <span class="ow">not</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">WITHIN_GROUP</span><span class="p">):</span> +</span><span id="L-3294"><a href="#L-3294"><span class="linenos">3294</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-3295"><a href="#L-3295"><span class="linenos">3295</span></a> <span class="n">this</span> <span class="o">=</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 class="n">args</span><span class="p">)</span> +</span><span id="L-3296"><a href="#L-3296"><span class="linenos">3296</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="L-3297"><a href="#L-3297"><span class="linenos">3297</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3298"><a href="#L-3298"><span class="linenos">3298</span></a> +</span><span id="L-3299"><a href="#L-3299"><span class="linenos">3299</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> <span class="c1"># The corresponding match_r_paren will be called in parse_function (caller)</span> +</span><span id="L-3300"><a href="#L-3300"><span class="linenos">3300</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-3301"><a href="#L-3301"><span class="linenos">3301</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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-3302"><a href="#L-3302"><span class="linenos">3302</span></a> -</span><span id="L-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="k">if</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">IN</span><span class="p">):</span> -</span><span id="L-3304"><a href="#L-3304"><span class="linenos">3304</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><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">,</span> <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 class="n">substr</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-3306"><a href="#L-3306"><span class="linenos">3306</span></a> <span class="p">)</span> -</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> -</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a> <span class="k">if</span> <span class="n">haystack_first</span><span class="p">:</span> -</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a> <span class="n">haystack</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-3310"><a href="#L-3310"><span class="linenos">3310</span></a> <span class="n">needle</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-3303"><a href="#L-3303"><span class="linenos">3303</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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-3304"><a href="#L-3304"><span class="linenos">3304</span></a> <span class="n">to</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="L-3305"><a href="#L-3305"><span class="linenos">3305</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-3306"><a href="#L-3306"><span class="linenos">3306</span></a> +</span><span id="L-3307"><a href="#L-3307"><span class="linenos">3307</span></a> <span class="k">if</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">USING</span><span class="p">):</span> +</span><span id="L-3308"><a href="#L-3308"><span class="linenos">3308</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">())</span> +</span><span id="L-3309"><a href="#L-3309"><span class="linenos">3309</span></a> <span class="k">elif</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">COMMA</span><span class="p">):</span> +</span><span id="L-3310"><a href="#L-3310"><span class="linenos">3310</span></a> <span class="n">to</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-3311"><a href="#L-3311"><span class="linenos">3311</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="n">needle</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-3313"><a href="#L-3313"><span class="linenos">3313</span></a> <span class="n">haystack</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-3314"><a href="#L-3314"><span class="linenos">3314</span></a> -</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">haystack</span><span class="p">,</span> <span class="n">substr</span><span class="o">=</span><span class="n">needle</span><span class="p">,</span> <span class="n">position</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-3316"><a href="#L-3316"><span class="linenos">3316</span></a> -</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</span></a> -</span><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> -</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="k">def</span> <span class="nf">_parse_join_hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> -</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">func_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> -</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</span></a> -</span><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="k">def</span> <span class="nf">_parse_substring</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3326"><a href="#L-3326"><span class="linenos">3326</span></a> <span class="c1"># Postgres supports the form: substring(string [from int] [for int])</span> -</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> <span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span> -</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a> -</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="L-3330"><a href="#L-3330"><span class="linenos">3330</span></a> -</span><span id="L-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> -</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> -</span><span id="L-3334"><a href="#L-3334"><span class="linenos">3334</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a> -</span><span id="L-3336"><a href="#L-3336"><span class="linenos">3336</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-3312"><a href="#L-3312"><span class="linenos">3312</span></a> <span class="n">to</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3313"><a href="#L-3313"><span class="linenos">3313</span></a> +</span><span id="L-3314"><a href="#L-3314"><span class="linenos">3314</span></a> <span class="c1"># Swap the argument order if needed to produce the correct AST</span> +</span><span id="L-3315"><a href="#L-3315"><span class="linenos">3315</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONVERT_TYPE_FIRST</span><span class="p">:</span> +</span><span id="L-3316"><a href="#L-3316"><span class="linenos">3316</span></a> <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">this</span> +</span><span id="L-3317"><a href="#L-3317"><span class="linenos">3317</span></a> +</span><span id="L-3318"><a href="#L-3318"><span class="linenos">3318</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="L-3319"><a href="#L-3319"><span class="linenos">3319</span></a> +</span><span id="L-3320"><a href="#L-3320"><span class="linenos">3320</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3321"><a href="#L-3321"><span class="linenos">3321</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="L-3322"><a href="#L-3322"><span class="linenos">3322</span></a> +</span><span id="L-3323"><a href="#L-3323"><span class="linenos">3323</span></a> <span class="k">if</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">IN</span><span class="p">):</span> +</span><span id="L-3324"><a href="#L-3324"><span class="linenos">3324</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><span id="L-3325"><a href="#L-3325"><span class="linenos">3325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">,</span> <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 class="n">substr</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-3326"><a href="#L-3326"><span class="linenos">3326</span></a> <span class="p">)</span> +</span><span id="L-3327"><a href="#L-3327"><span class="linenos">3327</span></a> +</span><span id="L-3328"><a href="#L-3328"><span class="linenos">3328</span></a> <span class="k">if</span> <span class="n">haystack_first</span><span class="p">:</span> +</span><span id="L-3329"><a href="#L-3329"><span class="linenos">3329</span></a> <span class="n">haystack</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-3330"><a href="#L-3330"><span class="linenos">3330</span></a> <span class="n">needle</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-3331"><a href="#L-3331"><span class="linenos">3331</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3332"><a href="#L-3332"><span class="linenos">3332</span></a> <span class="n">needle</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-3333"><a href="#L-3333"><span class="linenos">3333</span></a> <span class="n">haystack</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-3334"><a href="#L-3334"><span class="linenos">3334</span></a> +</span><span id="L-3335"><a href="#L-3335"><span class="linenos">3335</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">haystack</span><span class="p">,</span> <span class="n">substr</span><span class="o">=</span><span class="n">needle</span><span class="p">,</span> <span class="n">position</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-3336"><a href="#L-3336"><span class="linenos">3336</span></a> </span><span id="L-3337"><a href="#L-3337"><span class="linenos">3337</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> </span><span id="L-3338"><a href="#L-3338"><span class="linenos">3338</span></a> </span><span id="L-3339"><a href="#L-3339"><span class="linenos">3339</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-3340"><a href="#L-3340"><span class="linenos">3340</span></a> -</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a> <span class="k">def</span> <span class="nf">_parse_trim</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a> <span class="c1"># https://www.w3resource.com/sql/character-functions/trim.php</span> -</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a> <span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html</span> +</span><span id="L-3341"><a href="#L-3341"><span class="linenos">3341</span></a> <span class="k">def</span> <span class="nf">_parse_join_hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3342"><a href="#L-3342"><span class="linenos">3342</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> +</span><span id="L-3343"><a href="#L-3343"><span class="linenos">3343</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">func_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> </span><span id="L-3344"><a href="#L-3344"><span class="linenos">3344</span></a> -</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a> -</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRIM_TYPES</span><span class="p">):</span> -</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3345"><a href="#L-3345"><span class="linenos">3345</span></a> <span class="k">def</span> <span class="nf">_parse_substring</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3346"><a href="#L-3346"><span class="linenos">3346</span></a> <span class="c1"># Postgres supports the form: substring(string [from int] [for int])</span> +</span><span id="L-3347"><a href="#L-3347"><span class="linenos">3347</span></a> <span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span> +</span><span id="L-3348"><a href="#L-3348"><span class="linenos">3348</span></a> +</span><span id="L-3349"><a href="#L-3349"><span class="linenos">3349</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> </span><span id="L-3350"><a href="#L-3350"><span class="linenos">3350</span></a> -</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</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-3353"><a href="#L-3353"><span class="linenos">3353</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a> -</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a> <span class="k">if</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">COLLATE</span><span class="p">):</span> -</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-3351"><a href="#L-3351"><span class="linenos">3351</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> +</span><span id="L-3352"><a href="#L-3352"><span class="linenos">3352</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3353"><a href="#L-3353"><span class="linenos">3353</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> +</span><span id="L-3354"><a href="#L-3354"><span class="linenos">3354</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="L-3355"><a href="#L-3355"><span class="linenos">3355</span></a> +</span><span id="L-3356"><a href="#L-3356"><span class="linenos">3356</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="L-3357"><a href="#L-3357"><span class="linenos">3357</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="L-3358"><a href="#L-3358"><span class="linenos">3358</span></a> +</span><span id="L-3359"><a href="#L-3359"><span class="linenos">3359</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="L-3360"><a href="#L-3360"><span class="linenos">3360</span></a> -</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</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><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">,</span> -</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> -</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a> <span class="n">collation</span><span class="o">=</span><span class="n">collation</span><span class="p">,</span> -</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a> <span class="p">)</span> -</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a> -</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="k">def</span> <span class="nf">_parse_window_clause</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> <span class="k">return</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">WINDOW</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_named_window</span><span class="p">)</span> -</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a> -</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a> <span class="k">def</span> <span class="nf">_parse_named_window</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">Expression</span><span class="p">]:</span> -</span><span id="L-3373"><a href="#L-3373"><span class="linenos">3373</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> <span class="n">alias</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> -</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a> <span class="k">def</span> <span class="nf">_parse_window</span><span class="p">(</span> -</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</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-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="k">if</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">FILTER</span><span class="p">):</span> -</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">)</span> -</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> <span class="n">this</span> <span class="o">=</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">Filter</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> -</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a> -</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="c1"># T-SQL allows the OVER (...) syntax after WITHIN GROUP.</span> -</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a> <span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16</span> -</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a> <span class="k">if</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">WITHIN_GROUP</span><span class="p">):</span> -</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">)</span> -</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">this</span> <span class="o">=</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">WithinGroup</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">order</span><span class="p">)</span> -</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a> -</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a> <span class="c1"># SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER</span> -</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a> <span class="c1"># Some dialects choose to implement and some do not.</span> -</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html</span> +</span><span id="L-3361"><a href="#L-3361"><span class="linenos">3361</span></a> <span class="k">def</span> <span class="nf">_parse_trim</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3362"><a href="#L-3362"><span class="linenos">3362</span></a> <span class="c1"># https://www.w3resource.com/sql/character-functions/trim.php</span> +</span><span id="L-3363"><a href="#L-3363"><span class="linenos">3363</span></a> <span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html</span> +</span><span id="L-3364"><a href="#L-3364"><span class="linenos">3364</span></a> +</span><span id="L-3365"><a href="#L-3365"><span class="linenos">3365</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3366"><a href="#L-3366"><span class="linenos">3366</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3367"><a href="#L-3367"><span class="linenos">3367</span></a> +</span><span id="L-3368"><a href="#L-3368"><span class="linenos">3368</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRIM_TYPES</span><span class="p">):</span> +</span><span id="L-3369"><a href="#L-3369"><span class="linenos">3369</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3370"><a href="#L-3370"><span class="linenos">3370</span></a> +</span><span id="L-3371"><a href="#L-3371"><span class="linenos">3371</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-3372"><a href="#L-3372"><span class="linenos">3372</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</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-3373"><a href="#L-3373"><span class="linenos">3373</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-3374"><a href="#L-3374"><span class="linenos">3374</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3375"><a href="#L-3375"><span class="linenos">3375</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="L-3376"><a href="#L-3376"><span class="linenos">3376</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3377"><a href="#L-3377"><span class="linenos">3377</span></a> +</span><span id="L-3378"><a href="#L-3378"><span class="linenos">3378</span></a> <span class="k">if</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">COLLATE</span><span class="p">):</span> +</span><span id="L-3379"><a href="#L-3379"><span class="linenos">3379</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="L-3380"><a href="#L-3380"><span class="linenos">3380</span></a> +</span><span id="L-3381"><a href="#L-3381"><span class="linenos">3381</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3382"><a href="#L-3382"><span class="linenos">3382</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">,</span> +</span><span id="L-3383"><a href="#L-3383"><span class="linenos">3383</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3384"><a href="#L-3384"><span class="linenos">3384</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> +</span><span id="L-3385"><a href="#L-3385"><span class="linenos">3385</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="L-3386"><a href="#L-3386"><span class="linenos">3386</span></a> <span class="n">collation</span><span class="o">=</span><span class="n">collation</span><span class="p">,</span> +</span><span id="L-3387"><a href="#L-3387"><span class="linenos">3387</span></a> <span class="p">)</span> +</span><span id="L-3388"><a href="#L-3388"><span class="linenos">3388</span></a> +</span><span id="L-3389"><a href="#L-3389"><span class="linenos">3389</span></a> <span class="k">def</span> <span class="nf">_parse_window_clause</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="L-3390"><a href="#L-3390"><span class="linenos">3390</span></a> <span class="k">return</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">WINDOW</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_named_window</span><span class="p">)</span> </span><span id="L-3391"><a href="#L-3391"><span class="linenos">3391</span></a> -</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a> <span class="c1"># There is some code above in _parse_lambda that handles</span> -</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ...</span> +</span><span id="L-3392"><a href="#L-3392"><span class="linenos">3392</span></a> <span class="k">def</span> <span class="nf">_parse_named_window</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">Expression</span><span class="p">]:</span> +</span><span id="L-3393"><a href="#L-3393"><span class="linenos">3393</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> <span class="n">alias</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="L-3394"><a href="#L-3394"><span class="linenos">3394</span></a> -</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a> <span class="c1"># The below changes handle</span> -</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ...</span> -</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</span></a> -</span><span id="L-3398"><a href="#L-3398"><span class="linenos">3398</span></a> <span class="c1"># Oracle allows both formats</span> -</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a> <span class="c1"># (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html)</span> -</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> <span class="c1"># and Snowflake chose to do the same for familiarity</span> -</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a> <span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes</span> -</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> -</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a> <span class="k">elif</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">RESPECT_NULLS</span><span class="p">):</span> -</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a> <span class="n">this</span> <span class="o">=</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">RespectNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> -</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a> <span class="c1"># bigquery select from window x AS (partition by ...)</span> -</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</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">ALIAS</span><span class="p">)</span> -</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="k">elif</span> <span class="ow">not</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">OVER</span><span class="p">):</span> -</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a> -</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</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">Window</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">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span> -</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> -</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a> <span class="n">window_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">WINDOW_ALIAS_TOKENS</span><span class="p">)</span> -</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> -</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> -</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a> -</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</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">BETWEEN</span><span class="p">)</span> -</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> -</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</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">AND</span><span class="p">)</span> -</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> +</span><span id="L-3395"><a href="#L-3395"><span class="linenos">3395</span></a> <span class="k">def</span> <span class="nf">_parse_window</span><span class="p">(</span> +</span><span id="L-3396"><a href="#L-3396"><span class="linenos">3396</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-3397"><a href="#L-3397"><span class="linenos">3397</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-3398"><a href="#L-3398"><span class="linenos">3398</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> +</span><span id="L-3399"><a href="#L-3399"><span class="linenos">3399</span></a> <span class="n">this</span> <span class="o">=</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">Filter</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">())</span> +</span><span id="L-3400"><a href="#L-3400"><span class="linenos">3400</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-3401"><a href="#L-3401"><span class="linenos">3401</span></a> +</span><span id="L-3402"><a href="#L-3402"><span class="linenos">3402</span></a> <span class="c1"># T-SQL allows the OVER (...) syntax after WITHIN GROUP.</span> +</span><span id="L-3403"><a href="#L-3403"><span class="linenos">3403</span></a> <span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16</span> +</span><span id="L-3404"><a href="#L-3404"><span class="linenos">3404</span></a> <span class="k">if</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">WITHIN_GROUP</span><span class="p">):</span> +</span><span id="L-3405"><a href="#L-3405"><span class="linenos">3405</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">)</span> +</span><span id="L-3406"><a href="#L-3406"><span class="linenos">3406</span></a> <span class="n">this</span> <span class="o">=</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">WithinGroup</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">order</span><span class="p">)</span> +</span><span id="L-3407"><a href="#L-3407"><span class="linenos">3407</span></a> +</span><span id="L-3408"><a href="#L-3408"><span class="linenos">3408</span></a> <span class="c1"># SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER</span> +</span><span id="L-3409"><a href="#L-3409"><span class="linenos">3409</span></a> <span class="c1"># Some dialects choose to implement and some do not.</span> +</span><span id="L-3410"><a href="#L-3410"><span class="linenos">3410</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html</span> +</span><span id="L-3411"><a href="#L-3411"><span class="linenos">3411</span></a> +</span><span id="L-3412"><a href="#L-3412"><span class="linenos">3412</span></a> <span class="c1"># There is some code above in _parse_lambda that handles</span> +</span><span id="L-3413"><a href="#L-3413"><span class="linenos">3413</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ...</span> +</span><span id="L-3414"><a href="#L-3414"><span class="linenos">3414</span></a> +</span><span id="L-3415"><a href="#L-3415"><span class="linenos">3415</span></a> <span class="c1"># The below changes handle</span> +</span><span id="L-3416"><a href="#L-3416"><span class="linenos">3416</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ...</span> +</span><span id="L-3417"><a href="#L-3417"><span class="linenos">3417</span></a> +</span><span id="L-3418"><a href="#L-3418"><span class="linenos">3418</span></a> <span class="c1"># Oracle allows both formats</span> +</span><span id="L-3419"><a href="#L-3419"><span class="linenos">3419</span></a> <span class="c1"># (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html)</span> +</span><span id="L-3420"><a href="#L-3420"><span class="linenos">3420</span></a> <span class="c1"># and Snowflake chose to do the same for familiarity</span> +</span><span id="L-3421"><a href="#L-3421"><span class="linenos">3421</span></a> <span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes</span> +</span><span id="L-3422"><a href="#L-3422"><span class="linenos">3422</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> +</span><span id="L-3423"><a href="#L-3423"><span class="linenos">3423</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-3424"><a href="#L-3424"><span class="linenos">3424</span></a> <span class="k">elif</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">RESPECT_NULLS</span><span class="p">):</span> +</span><span id="L-3425"><a href="#L-3425"><span class="linenos">3425</span></a> <span class="n">this</span> <span class="o">=</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">RespectNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> </span><span id="L-3426"><a href="#L-3426"><span class="linenos">3426</span></a> -</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WindowSpec</span><span class="p">,</span> -</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a> <span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> -</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a> <span class="n">start_side</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> -</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a> <span class="n">end</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> -</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a> <span class="n">end_side</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> -</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</span></a> <span class="p">)</span> -</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a> -</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> -</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</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><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span> -</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> -</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> -</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> -</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">window_alias</span><span class="p">,</span> -</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a> <span class="p">)</span> -</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> -</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a> <span class="k">def</span> <span class="nf">_parse_window_spec</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">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</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">BETWEEN</span><span class="p">)</span> -</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a> -</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a> <span class="k">return</span> <span class="p">{</span> -</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a> <span class="s2">"value"</span><span class="p">:</span> <span class="p">(</span> -</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_ROW</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a> <span class="p">)</span> -</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">(),</span> -</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> -</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a> <span class="p">}</span> +</span><span id="L-3427"><a href="#L-3427"><span class="linenos">3427</span></a> <span class="c1"># bigquery select from window x AS (partition by ...)</span> +</span><span id="L-3428"><a href="#L-3428"><span class="linenos">3428</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="L-3429"><a href="#L-3429"><span class="linenos">3429</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">ALIAS</span><span class="p">)</span> +</span><span id="L-3430"><a href="#L-3430"><span class="linenos">3430</span></a> <span class="k">elif</span> <span class="ow">not</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">OVER</span><span class="p">):</span> +</span><span id="L-3431"><a href="#L-3431"><span class="linenos">3431</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3432"><a href="#L-3432"><span class="linenos">3432</span></a> +</span><span id="L-3433"><a href="#L-3433"><span class="linenos">3433</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-3434"><a href="#L-3434"><span class="linenos">3434</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">Window</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">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span> +</span><span id="L-3435"><a href="#L-3435"><span class="linenos">3435</span></a> +</span><span id="L-3436"><a href="#L-3436"><span class="linenos">3436</span></a> <span class="n">window_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">WINDOW_ALIAS_TOKENS</span><span class="p">)</span> +</span><span id="L-3437"><a href="#L-3437"><span class="linenos">3437</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> +</span><span id="L-3438"><a href="#L-3438"><span class="linenos">3438</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> +</span><span id="L-3439"><a href="#L-3439"><span class="linenos">3439</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-3440"><a href="#L-3440"><span class="linenos">3440</span></a> +</span><span id="L-3441"><a href="#L-3441"><span class="linenos">3441</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="L-3442"><a href="#L-3442"><span class="linenos">3442</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">BETWEEN</span><span class="p">)</span> +</span><span id="L-3443"><a href="#L-3443"><span class="linenos">3443</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> +</span><span id="L-3444"><a href="#L-3444"><span class="linenos">3444</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">AND</span><span class="p">)</span> +</span><span id="L-3445"><a href="#L-3445"><span class="linenos">3445</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> +</span><span id="L-3446"><a href="#L-3446"><span class="linenos">3446</span></a> +</span><span id="L-3447"><a href="#L-3447"><span class="linenos">3447</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3448"><a href="#L-3448"><span class="linenos">3448</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WindowSpec</span><span class="p">,</span> +</span><span id="L-3449"><a href="#L-3449"><span class="linenos">3449</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-3450"><a href="#L-3450"><span class="linenos">3450</span></a> <span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> +</span><span id="L-3451"><a href="#L-3451"><span class="linenos">3451</span></a> <span class="n">start_side</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> +</span><span id="L-3452"><a href="#L-3452"><span class="linenos">3452</span></a> <span class="n">end</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> +</span><span id="L-3453"><a href="#L-3453"><span class="linenos">3453</span></a> <span class="n">end_side</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> +</span><span id="L-3454"><a href="#L-3454"><span class="linenos">3454</span></a> <span class="p">)</span> +</span><span id="L-3455"><a href="#L-3455"><span class="linenos">3455</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3456"><a href="#L-3456"><span class="linenos">3456</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3457"><a href="#L-3457"><span class="linenos">3457</span></a> +</span><span id="L-3458"><a href="#L-3458"><span class="linenos">3458</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> </span><span id="L-3459"><a href="#L-3459"><span class="linenos">3459</span></a> -</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</span></a> <span class="k">def</span> <span class="nf">_parse_alias</span><span class="p">(</span> -</span><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">explicit</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</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-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> -</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a> -</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="k">if</span> <span class="n">explicit</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">any_token</span><span class="p">:</span> -</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a> -</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="n">aliases</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Aliases</span><span class="p">,</span> -</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)),</span> -</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="p">)</span> -</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">aliases</span><span class="p">)</span> -</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="k">return</span> <span class="n">aliases</span> -</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a> -</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> -</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a> -</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</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">Alias</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">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> -</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a> -</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3483"><a href="#L-3483"><span class="linenos">3483</span></a> -</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a> <span class="k">def</span> <span class="nf">_parse_id_var</span><span class="p">(</span> -</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</span></a> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a> <span class="n">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-3488"><a href="#L-3488"><span class="linenos">3488</span></a> <span class="n">prefix_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-3489"><a href="#L-3489"><span class="linenos">3489</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-3490"><a href="#L-3490"><span class="linenos">3490</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_identifier</span><span class="p">()</span> -</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a> -</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a> <span class="k">if</span> <span class="n">identifier</span><span class="p">:</span> -</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a> <span class="k">return</span> <span class="n">identifier</span> -</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a> -</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-3460"><a href="#L-3460"><span class="linenos">3460</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><span id="L-3461"><a href="#L-3461"><span class="linenos">3461</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span> +</span><span id="L-3462"><a href="#L-3462"><span class="linenos">3462</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3463"><a href="#L-3463"><span class="linenos">3463</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> +</span><span id="L-3464"><a href="#L-3464"><span class="linenos">3464</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> +</span><span id="L-3465"><a href="#L-3465"><span class="linenos">3465</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> +</span><span id="L-3466"><a href="#L-3466"><span class="linenos">3466</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">window_alias</span><span class="p">,</span> +</span><span id="L-3467"><a href="#L-3467"><span class="linenos">3467</span></a> <span class="p">)</span> +</span><span id="L-3468"><a href="#L-3468"><span class="linenos">3468</span></a> +</span><span id="L-3469"><a href="#L-3469"><span class="linenos">3469</span></a> <span class="k">def</span> <span class="nf">_parse_window_spec</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">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="L-3470"><a href="#L-3470"><span class="linenos">3470</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">BETWEEN</span><span class="p">)</span> +</span><span id="L-3471"><a href="#L-3471"><span class="linenos">3471</span></a> +</span><span id="L-3472"><a href="#L-3472"><span class="linenos">3472</span></a> <span class="k">return</span> <span class="p">{</span> +</span><span id="L-3473"><a href="#L-3473"><span class="linenos">3473</span></a> <span class="s2">"value"</span><span class="p">:</span> <span class="p">(</span> +</span><span id="L-3474"><a href="#L-3474"><span class="linenos">3474</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_ROW</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-3475"><a href="#L-3475"><span class="linenos">3475</span></a> <span class="p">)</span> +</span><span id="L-3476"><a href="#L-3476"><span class="linenos">3476</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">(),</span> +</span><span id="L-3477"><a href="#L-3477"><span class="linenos">3477</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> +</span><span id="L-3478"><a href="#L-3478"><span class="linenos">3478</span></a> <span class="p">}</span> +</span><span id="L-3479"><a href="#L-3479"><span class="linenos">3479</span></a> +</span><span id="L-3480"><a href="#L-3480"><span class="linenos">3480</span></a> <span class="k">def</span> <span class="nf">_parse_alias</span><span class="p">(</span> +</span><span id="L-3481"><a href="#L-3481"><span class="linenos">3481</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">explicit</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-3482"><a href="#L-3482"><span class="linenos">3482</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-3483"><a href="#L-3483"><span class="linenos">3483</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> +</span><span id="L-3484"><a href="#L-3484"><span class="linenos">3484</span></a> +</span><span id="L-3485"><a href="#L-3485"><span class="linenos">3485</span></a> <span class="k">if</span> <span class="n">explicit</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">any_token</span><span class="p">:</span> +</span><span id="L-3486"><a href="#L-3486"><span class="linenos">3486</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3487"><a href="#L-3487"><span class="linenos">3487</span></a> +</span><span id="L-3488"><a href="#L-3488"><span class="linenos">3488</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-3489"><a href="#L-3489"><span class="linenos">3489</span></a> <span class="n">aliases</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3490"><a href="#L-3490"><span class="linenos">3490</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Aliases</span><span class="p">,</span> +</span><span id="L-3491"><a href="#L-3491"><span class="linenos">3491</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3492"><a href="#L-3492"><span class="linenos">3492</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)),</span> +</span><span id="L-3493"><a href="#L-3493"><span class="linenos">3493</span></a> <span class="p">)</span> +</span><span id="L-3494"><a href="#L-3494"><span class="linenos">3494</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">aliases</span><span class="p">)</span> +</span><span id="L-3495"><a href="#L-3495"><span class="linenos">3495</span></a> <span class="k">return</span> <span class="n">aliases</span> </span><span id="L-3496"><a href="#L-3496"><span class="linenos">3496</span></a> -</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a> <span class="k">if</span> <span class="n">prefix_tokens</span><span class="p">:</span> -</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">prefix_tokens</span><span class="p">):</span> -</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="n">prefix</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</span></a> -</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">):</span> -</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a> <span class="n">quoted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span> -</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> -</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a> -</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a> -</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="k">def</span> <span class="nf">_parse_string</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">Expression</span><span class="p">]:</span> -</span><span id="L-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="k">if</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">STRING</span><span class="p">):</span> -</span><span id="L-3509"><a href="#L-3509"><span class="linenos">3509</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3510"><a href="#L-3510"><span class="linenos">3510</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="L-3497"><a href="#L-3497"><span class="linenos">3497</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> +</span><span id="L-3498"><a href="#L-3498"><span class="linenos">3498</span></a> +</span><span id="L-3499"><a href="#L-3499"><span class="linenos">3499</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="L-3500"><a href="#L-3500"><span class="linenos">3500</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">Alias</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">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> +</span><span id="L-3501"><a href="#L-3501"><span class="linenos">3501</span></a> +</span><span id="L-3502"><a href="#L-3502"><span class="linenos">3502</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3503"><a href="#L-3503"><span class="linenos">3503</span></a> +</span><span id="L-3504"><a href="#L-3504"><span class="linenos">3504</span></a> <span class="k">def</span> <span class="nf">_parse_id_var</span><span class="p">(</span> +</span><span id="L-3505"><a href="#L-3505"><span class="linenos">3505</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="L-3506"><a href="#L-3506"><span class="linenos">3506</span></a> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="L-3507"><a href="#L-3507"><span class="linenos">3507</span></a> <span class="n">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-3508"><a href="#L-3508"><span class="linenos">3508</span></a> <span class="n">prefix_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-3509"><a href="#L-3509"><span class="linenos">3509</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-3510"><a href="#L-3510"><span class="linenos">3510</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_identifier</span><span class="p">()</span> </span><span id="L-3511"><a href="#L-3511"><span class="linenos">3511</span></a> -</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a> <span class="k">def</span> <span class="nf">_parse_number</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">Expression</span><span class="p">]:</span> -</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a> <span class="k">if</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">NUMBER</span><span class="p">):</span> -</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="L-3512"><a href="#L-3512"><span class="linenos">3512</span></a> <span class="k">if</span> <span class="n">identifier</span><span class="p">:</span> +</span><span id="L-3513"><a href="#L-3513"><span class="linenos">3513</span></a> <span class="k">return</span> <span class="n">identifier</span> +</span><span id="L-3514"><a href="#L-3514"><span class="linenos">3514</span></a> +</span><span id="L-3515"><a href="#L-3515"><span class="linenos">3515</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="L-3516"><a href="#L-3516"><span class="linenos">3516</span></a> -</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="k">def</span> <span class="nf">_parse_identifier</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">Expression</span><span class="p">]:</span> -</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="k">if</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">IDENTIFIER</span><span class="p">):</span> -</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> -</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a> -</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="k">def</span> <span class="nf">_parse_var</span><span class="p">(</span> -</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">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><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</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-3525"><a href="#L-3525"><span class="linenos">3525</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> -</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="ow">or</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">VAR</span><span class="p">)</span> -</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a> <span class="ow">or</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span><span class="p">)</span> <span class="k">if</span> <span class="n">tokens</span> <span class="k">else</span> <span class="kc">False</span><span class="p">)</span> -</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a> <span class="p">):</span> -</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> -</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a> -</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a> <span class="k">def</span> <span class="nf">_advance_any</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">Token</span><span class="p">]:</span> -</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">RESERVED_KEYWORDS</span><span class="p">:</span> -</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a> -</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a> <span class="k">def</span> <span class="nf">_parse_var_or_string</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">Expression</span><span class="p">]:</span> -</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a> -</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</span></a> <span class="k">def</span> <span class="nf">_parse_null</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">Expression</span><span class="p">]:</span> -</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="k">if</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">NULL</span><span class="p">):</span> -</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a> -</span><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</span></a> <span class="k">def</span> <span class="nf">_parse_boolean</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">Expression</span><span class="p">]:</span> -</span><span id="L-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="k">if</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">TRUE</span><span class="p">):</span> -</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> <span class="k">if</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">FALSE</span><span class="p">):</span> -</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</span></a> -</span><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a> <span class="k">def</span> <span class="nf">_parse_star</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">Expression</span><span class="p">]:</span> -</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a> <span class="k">if</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">STAR</span><span class="p">):</span> -</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3558"><a href="#L-3558"><span class="linenos">3558</span></a> -</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a> <span class="k">def</span> <span class="nf">_parse_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a> <span class="n">wrapped</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">L_BRACE</span><span class="p">)</span> -</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> -</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</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">R_BRACE</span><span class="p">)</span> -</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</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">Parameter</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">wrapped</span><span class="o">=</span><span class="n">wrapped</span><span class="p">)</span> +</span><span id="L-3517"><a href="#L-3517"><span class="linenos">3517</span></a> <span class="k">if</span> <span class="n">prefix_tokens</span><span class="p">:</span> +</span><span id="L-3518"><a href="#L-3518"><span class="linenos">3518</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">prefix_tokens</span><span class="p">):</span> +</span><span id="L-3519"><a href="#L-3519"><span class="linenos">3519</span></a> <span class="n">prefix</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-3520"><a href="#L-3520"><span class="linenos">3520</span></a> +</span><span id="L-3521"><a href="#L-3521"><span class="linenos">3521</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">):</span> +</span><span id="L-3522"><a href="#L-3522"><span class="linenos">3522</span></a> <span class="n">quoted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span> +</span><span id="L-3523"><a href="#L-3523"><span class="linenos">3523</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> +</span><span id="L-3524"><a href="#L-3524"><span class="linenos">3524</span></a> +</span><span id="L-3525"><a href="#L-3525"><span class="linenos">3525</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3526"><a href="#L-3526"><span class="linenos">3526</span></a> +</span><span id="L-3527"><a href="#L-3527"><span class="linenos">3527</span></a> <span class="k">def</span> <span class="nf">_parse_string</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">Expression</span><span class="p">]:</span> +</span><span id="L-3528"><a href="#L-3528"><span class="linenos">3528</span></a> <span class="k">if</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">STRING</span><span class="p">):</span> +</span><span id="L-3529"><a href="#L-3529"><span class="linenos">3529</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3530"><a href="#L-3530"><span class="linenos">3530</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="L-3531"><a href="#L-3531"><span class="linenos">3531</span></a> +</span><span id="L-3532"><a href="#L-3532"><span class="linenos">3532</span></a> <span class="k">def</span> <span class="nf">_parse_string_as_identifier</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">Expression</span><span class="p">]:</span> +</span><span id="L-3533"><a href="#L-3533"><span class="linenos">3533</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</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">STRING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3534"><a href="#L-3534"><span class="linenos">3534</span></a> +</span><span id="L-3535"><a href="#L-3535"><span class="linenos">3535</span></a> <span class="k">def</span> <span class="nf">_parse_number</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">Expression</span><span class="p">]:</span> +</span><span id="L-3536"><a href="#L-3536"><span class="linenos">3536</span></a> <span class="k">if</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">NUMBER</span><span class="p">):</span> +</span><span id="L-3537"><a href="#L-3537"><span class="linenos">3537</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3538"><a href="#L-3538"><span class="linenos">3538</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="L-3539"><a href="#L-3539"><span class="linenos">3539</span></a> +</span><span id="L-3540"><a href="#L-3540"><span class="linenos">3540</span></a> <span class="k">def</span> <span class="nf">_parse_identifier</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">Expression</span><span class="p">]:</span> +</span><span id="L-3541"><a href="#L-3541"><span class="linenos">3541</span></a> <span class="k">if</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">IDENTIFIER</span><span class="p">):</span> +</span><span id="L-3542"><a href="#L-3542"><span class="linenos">3542</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3543"><a href="#L-3543"><span class="linenos">3543</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="L-3544"><a href="#L-3544"><span class="linenos">3544</span></a> +</span><span id="L-3545"><a href="#L-3545"><span class="linenos">3545</span></a> <span class="k">def</span> <span class="nf">_parse_var</span><span class="p">(</span> +</span><span id="L-3546"><a href="#L-3546"><span class="linenos">3546</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">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><span id="L-3547"><a href="#L-3547"><span class="linenos">3547</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-3548"><a href="#L-3548"><span class="linenos">3548</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-3549"><a href="#L-3549"><span class="linenos">3549</span></a> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> +</span><span id="L-3550"><a href="#L-3550"><span class="linenos">3550</span></a> <span class="ow">or</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">VAR</span><span class="p">)</span> +</span><span id="L-3551"><a href="#L-3551"><span class="linenos">3551</span></a> <span class="ow">or</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span><span class="p">)</span> <span class="k">if</span> <span class="n">tokens</span> <span class="k">else</span> <span class="kc">False</span><span class="p">)</span> +</span><span id="L-3552"><a href="#L-3552"><span class="linenos">3552</span></a> <span class="p">):</span> +</span><span id="L-3553"><a href="#L-3553"><span class="linenos">3553</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-3554"><a href="#L-3554"><span class="linenos">3554</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="L-3555"><a href="#L-3555"><span class="linenos">3555</span></a> +</span><span id="L-3556"><a href="#L-3556"><span class="linenos">3556</span></a> <span class="k">def</span> <span class="nf">_advance_any</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">Token</span><span class="p">]:</span> +</span><span id="L-3557"><a href="#L-3557"><span class="linenos">3557</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">RESERVED_KEYWORDS</span><span class="p">:</span> +</span><span id="L-3558"><a href="#L-3558"><span class="linenos">3558</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3559"><a href="#L-3559"><span class="linenos">3559</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-3560"><a href="#L-3560"><span class="linenos">3560</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3561"><a href="#L-3561"><span class="linenos">3561</span></a> +</span><span id="L-3562"><a href="#L-3562"><span class="linenos">3562</span></a> <span class="k">def</span> <span class="nf">_parse_var_or_string</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">Expression</span><span class="p">]:</span> +</span><span id="L-3563"><a href="#L-3563"><span class="linenos">3563</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> </span><span id="L-3564"><a href="#L-3564"><span class="linenos">3564</span></a> -</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a> <span class="k">def</span> <span class="nf">_parse_placeholder</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">Expression</span><span class="p">]:</span> -</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">):</span> -</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a> <span class="n">placeholder</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a> <span class="k">if</span> <span class="n">placeholder</span><span class="p">:</span> -</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a> <span class="k">return</span> <span class="n">placeholder</span> -</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -</span><span id="L-3571"><a href="#L-3571"><span class="linenos">3571</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a> -</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="k">def</span> <span class="nf">_parse_except</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="k">if</span> <span class="ow">not</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">EXCEPT</span><span class="p">):</span> -</span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a> -</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a> <span class="k">def</span> <span class="nf">_parse_replace</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a> <span class="k">if</span> <span class="ow">not</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">REPLACE</span><span class="p">):</span> -</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> -</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> -</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</span></a> -</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a> <span class="k">def</span> <span class="nf">_parse_csv</span><span class="p">(</span> -</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> -</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[</span><span class="n">parse_result</span><span class="p">]</span> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="p">[]</span> -</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> -</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">sep</span><span class="p">):</span> -</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a> <span class="n">parse_result</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a> -</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_result</span><span class="p">)</span> -</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a> -</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a> <span class="k">return</span> <span class="n">items</span> +</span><span id="L-3565"><a href="#L-3565"><span class="linenos">3565</span></a> <span class="k">def</span> <span class="nf">_parse_null</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">Expression</span><span class="p">]:</span> +</span><span id="L-3566"><a href="#L-3566"><span class="linenos">3566</span></a> <span class="k">if</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">NULL</span><span class="p">):</span> +</span><span id="L-3567"><a href="#L-3567"><span class="linenos">3567</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3568"><a href="#L-3568"><span class="linenos">3568</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3569"><a href="#L-3569"><span class="linenos">3569</span></a> +</span><span id="L-3570"><a href="#L-3570"><span class="linenos">3570</span></a> <span class="k">def</span> <span class="nf">_parse_boolean</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">Expression</span><span class="p">]:</span> +</span><span id="L-3571"><a href="#L-3571"><span class="linenos">3571</span></a> <span class="k">if</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">TRUE</span><span class="p">):</span> +</span><span id="L-3572"><a href="#L-3572"><span class="linenos">3572</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3573"><a href="#L-3573"><span class="linenos">3573</span></a> <span class="k">if</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">FALSE</span><span class="p">):</span> +</span><span id="L-3574"><a href="#L-3574"><span class="linenos">3574</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3575"><a href="#L-3575"><span class="linenos">3575</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3576"><a href="#L-3576"><span class="linenos">3576</span></a> +</span><span id="L-3577"><a href="#L-3577"><span class="linenos">3577</span></a> <span class="k">def</span> <span class="nf">_parse_star</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">Expression</span><span class="p">]:</span> +</span><span id="L-3578"><a href="#L-3578"><span class="linenos">3578</span></a> <span class="k">if</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">STAR</span><span class="p">):</span> +</span><span id="L-3579"><a href="#L-3579"><span class="linenos">3579</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3580"><a href="#L-3580"><span class="linenos">3580</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3581"><a href="#L-3581"><span class="linenos">3581</span></a> +</span><span id="L-3582"><a href="#L-3582"><span class="linenos">3582</span></a> <span class="k">def</span> <span class="nf">_parse_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3583"><a href="#L-3583"><span class="linenos">3583</span></a> <span class="n">wrapped</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">L_BRACE</span><span class="p">)</span> +</span><span id="L-3584"><a href="#L-3584"><span class="linenos">3584</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> +</span><span id="L-3585"><a href="#L-3585"><span class="linenos">3585</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">R_BRACE</span><span class="p">)</span> +</span><span id="L-3586"><a href="#L-3586"><span class="linenos">3586</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">Parameter</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">wrapped</span><span class="o">=</span><span class="n">wrapped</span><span class="p">)</span> +</span><span id="L-3587"><a href="#L-3587"><span class="linenos">3587</span></a> +</span><span id="L-3588"><a href="#L-3588"><span class="linenos">3588</span></a> <span class="k">def</span> <span class="nf">_parse_placeholder</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">Expression</span><span class="p">]:</span> +</span><span id="L-3589"><a href="#L-3589"><span class="linenos">3589</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">):</span> +</span><span id="L-3590"><a href="#L-3590"><span class="linenos">3590</span></a> <span class="n">placeholder</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-3591"><a href="#L-3591"><span class="linenos">3591</span></a> <span class="k">if</span> <span class="n">placeholder</span><span class="p">:</span> +</span><span id="L-3592"><a href="#L-3592"><span class="linenos">3592</span></a> <span class="k">return</span> <span class="n">placeholder</span> +</span><span id="L-3593"><a href="#L-3593"><span class="linenos">3593</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +</span><span id="L-3594"><a href="#L-3594"><span class="linenos">3594</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3595"><a href="#L-3595"><span class="linenos">3595</span></a> +</span><span id="L-3596"><a href="#L-3596"><span class="linenos">3596</span></a> <span class="k">def</span> <span class="nf">_parse_except</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="L-3597"><a href="#L-3597"><span class="linenos">3597</span></a> <span class="k">if</span> <span class="ow">not</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">EXCEPT</span><span class="p">):</span> +</span><span id="L-3598"><a href="#L-3598"><span class="linenos">3598</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3599"><a href="#L-3599"><span class="linenos">3599</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-3600"><a href="#L-3600"><span class="linenos">3600</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="L-3601"><a href="#L-3601"><span class="linenos">3601</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> </span><span id="L-3602"><a href="#L-3602"><span class="linenos">3602</span></a> -</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a> <span class="k">def</span> <span class="nf">_parse_tokens</span><span class="p">(</span> -</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> -</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</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-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a> -</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a> <span class="n">expressions</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> -</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> -</span><span id="L-3613"><a href="#L-3613"><span class="linenos">3613</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">parse_method</span><span class="p">(),</span> -</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a> <span class="p">)</span> +</span><span id="L-3603"><a href="#L-3603"><span class="linenos">3603</span></a> <span class="k">def</span> <span class="nf">_parse_replace</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="L-3604"><a href="#L-3604"><span class="linenos">3604</span></a> <span class="k">if</span> <span class="ow">not</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">REPLACE</span><span class="p">):</span> +</span><span id="L-3605"><a href="#L-3605"><span class="linenos">3605</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3606"><a href="#L-3606"><span class="linenos">3606</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-3607"><a href="#L-3607"><span class="linenos">3607</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="L-3608"><a href="#L-3608"><span class="linenos">3608</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="L-3609"><a href="#L-3609"><span class="linenos">3609</span></a> +</span><span id="L-3610"><a href="#L-3610"><span class="linenos">3610</span></a> <span class="k">def</span> <span class="nf">_parse_csv</span><span class="p">(</span> +</span><span id="L-3611"><a href="#L-3611"><span class="linenos">3611</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> +</span><span id="L-3612"><a href="#L-3612"><span class="linenos">3612</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-3613"><a href="#L-3613"><span class="linenos">3613</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="L-3614"><a href="#L-3614"><span class="linenos">3614</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[</span><span class="n">parse_result</span><span class="p">]</span> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="p">[]</span> </span><span id="L-3615"><a href="#L-3615"><span class="linenos">3615</span></a> -</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a> -</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_id_vars</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> -</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> -</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_csv</span><span class="p">(</span> -</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> -</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parse_method</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">))</span> +</span><span id="L-3616"><a href="#L-3616"><span class="linenos">3616</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">sep</span><span class="p">):</span> +</span><span id="L-3617"><a href="#L-3617"><span class="linenos">3617</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="L-3618"><a href="#L-3618"><span class="linenos">3618</span></a> <span class="n">parse_result</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-3619"><a href="#L-3619"><span class="linenos">3619</span></a> +</span><span id="L-3620"><a href="#L-3620"><span class="linenos">3620</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="L-3621"><a href="#L-3621"><span class="linenos">3621</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-3622"><a href="#L-3622"><span class="linenos">3622</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_result</span><span class="p">)</span> +</span><span id="L-3623"><a href="#L-3623"><span class="linenos">3623</span></a> +</span><span id="L-3624"><a href="#L-3624"><span class="linenos">3624</span></a> <span class="k">return</span> <span class="n">items</span> </span><span id="L-3625"><a href="#L-3625"><span class="linenos">3625</span></a> -</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span> -</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> -</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="L-3629"><a href="#L-3629"><span class="linenos">3629</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> <span class="k">return</span> <span class="n">parse_result</span> -</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> -</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a> <span class="k">def</span> <span class="nf">_parse_select_or_expression</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">Expression</span><span class="p">]:</span> -</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> -</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> -</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="k">def</span> <span class="nf">_parse_ddl_select</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">Expression</span><span class="p">]:</span> -</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> -</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a> <span class="p">)</span> -</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> -</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> <span class="k">def</span> <span class="nf">_parse_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_KIND</span><span class="p">):</span> -</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> -</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> -</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a> -</span><span id="L-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="n">mode</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a> <span class="k">while</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">VAR</span><span class="p">):</span> -</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> <span class="n">mode</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a> -</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="k">if</span> <span class="n">mode</span><span class="p">:</span> -</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> <span class="n">modes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">mode</span><span class="p">))</span> -</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> -</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a> <span class="k">break</span> +</span><span id="L-3626"><a href="#L-3626"><span class="linenos">3626</span></a> <span class="k">def</span> <span class="nf">_parse_tokens</span><span class="p">(</span> +</span><span id="L-3627"><a href="#L-3627"><span class="linenos">3627</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> +</span><span id="L-3628"><a href="#L-3628"><span class="linenos">3628</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-3629"><a href="#L-3629"><span class="linenos">3629</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="L-3630"><a href="#L-3630"><span class="linenos">3630</span></a> +</span><span id="L-3631"><a href="#L-3631"><span class="linenos">3631</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="L-3632"><a href="#L-3632"><span class="linenos">3632</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3633"><a href="#L-3633"><span class="linenos">3633</span></a> <span class="n">expressions</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> +</span><span id="L-3634"><a href="#L-3634"><span class="linenos">3634</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3635"><a href="#L-3635"><span class="linenos">3635</span></a> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> +</span><span id="L-3636"><a href="#L-3636"><span class="linenos">3636</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">parse_method</span><span class="p">(),</span> +</span><span id="L-3637"><a href="#L-3637"><span class="linenos">3637</span></a> <span class="p">)</span> +</span><span id="L-3638"><a href="#L-3638"><span class="linenos">3638</span></a> +</span><span id="L-3639"><a href="#L-3639"><span class="linenos">3639</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3640"><a href="#L-3640"><span class="linenos">3640</span></a> +</span><span id="L-3641"><a href="#L-3641"><span class="linenos">3641</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_id_vars</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="L-3642"><a href="#L-3642"><span class="linenos">3642</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> +</span><span id="L-3643"><a href="#L-3643"><span class="linenos">3643</span></a> +</span><span id="L-3644"><a href="#L-3644"><span class="linenos">3644</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_csv</span><span class="p">(</span> +</span><span id="L-3645"><a href="#L-3645"><span class="linenos">3645</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> +</span><span id="L-3646"><a href="#L-3646"><span class="linenos">3646</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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-3647"><a href="#L-3647"><span class="linenos">3647</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parse_method</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">))</span> +</span><span id="L-3648"><a href="#L-3648"><span class="linenos">3648</span></a> +</span><span id="L-3649"><a href="#L-3649"><span class="linenos">3649</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span> +</span><span id="L-3650"><a href="#L-3650"><span class="linenos">3650</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="L-3651"><a href="#L-3651"><span class="linenos">3651</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="L-3652"><a href="#L-3652"><span class="linenos">3652</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="L-3653"><a href="#L-3653"><span class="linenos">3653</span></a> <span class="k">return</span> <span class="n">parse_result</span> +</span><span id="L-3654"><a href="#L-3654"><span class="linenos">3654</span></a> +</span><span id="L-3655"><a href="#L-3655"><span class="linenos">3655</span></a> <span class="k">def</span> <span class="nf">_parse_select_or_expression</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">Expression</span><span class="p">]:</span> +</span><span id="L-3656"><a href="#L-3656"><span class="linenos">3656</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> </span><span id="L-3657"><a href="#L-3657"><span class="linenos">3657</span></a> -</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a> <span class="k">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">Transaction</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">modes</span><span class="o">=</span><span class="n">modes</span><span class="p">)</span> -</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a> -</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="k">def</span> <span class="nf">_parse_commit_or_rollback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="n">is_rollback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span> -</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> -</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> -</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a> -</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">):</span> -</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SAVEPOINT"</span><span class="p">)</span> -</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a> -</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> <span class="k">if</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">AND</span><span class="p">):</span> -</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> -</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHAIN"</span><span class="p">)</span> -</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a> -</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a> <span class="k">if</span> <span class="n">is_rollback</span><span class="p">:</span> -</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</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">Rollback</span><span class="p">,</span> <span class="n">savepoint</span><span class="o">=</span><span class="n">savepoint</span><span class="p">)</span> -</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</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">Commit</span><span class="p">,</span> <span class="n">chain</span><span class="o">=</span><span class="n">chain</span><span class="p">)</span> -</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> -</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="k">def</span> <span class="nf">_parse_add_column</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">Expression</span><span class="p">]:</span> -</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">):</span> -</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3658"><a href="#L-3658"><span class="linenos">3658</span></a> <span class="k">def</span> <span class="nf">_parse_ddl_select</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">Expression</span><span class="p">]:</span> +</span><span id="L-3659"><a href="#L-3659"><span class="linenos">3659</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> +</span><span id="L-3660"><a href="#L-3660"><span class="linenos">3660</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-3661"><a href="#L-3661"><span class="linenos">3661</span></a> <span class="p">)</span> +</span><span id="L-3662"><a href="#L-3662"><span class="linenos">3662</span></a> +</span><span id="L-3663"><a href="#L-3663"><span class="linenos">3663</span></a> <span class="k">def</span> <span class="nf">_parse_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3664"><a href="#L-3664"><span class="linenos">3664</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3665"><a href="#L-3665"><span class="linenos">3665</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_KIND</span><span class="p">):</span> +</span><span id="L-3666"><a href="#L-3666"><span class="linenos">3666</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="L-3667"><a href="#L-3667"><span class="linenos">3667</span></a> +</span><span id="L-3668"><a href="#L-3668"><span class="linenos">3668</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> +</span><span id="L-3669"><a href="#L-3669"><span class="linenos">3669</span></a> +</span><span id="L-3670"><a href="#L-3670"><span class="linenos">3670</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-3671"><a href="#L-3671"><span class="linenos">3671</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-3672"><a href="#L-3672"><span class="linenos">3672</span></a> <span class="n">mode</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-3673"><a href="#L-3673"><span class="linenos">3673</span></a> <span class="k">while</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">VAR</span><span class="p">):</span> +</span><span id="L-3674"><a href="#L-3674"><span class="linenos">3674</span></a> <span class="n">mode</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-3675"><a href="#L-3675"><span class="linenos">3675</span></a> +</span><span id="L-3676"><a href="#L-3676"><span class="linenos">3676</span></a> <span class="k">if</span> <span class="n">mode</span><span class="p">:</span> +</span><span id="L-3677"><a href="#L-3677"><span class="linenos">3677</span></a> <span class="n">modes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">mode</span><span class="p">))</span> +</span><span id="L-3678"><a href="#L-3678"><span class="linenos">3678</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> +</span><span id="L-3679"><a href="#L-3679"><span class="linenos">3679</span></a> <span class="k">break</span> +</span><span id="L-3680"><a href="#L-3680"><span class="linenos">3680</span></a> +</span><span id="L-3681"><a href="#L-3681"><span class="linenos">3681</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">Transaction</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">modes</span><span class="o">=</span><span class="n">modes</span><span class="p">)</span> </span><span id="L-3682"><a href="#L-3682"><span class="linenos">3682</span></a> -</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</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">COLUMN</span><span class="p">)</span> -</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="n">exists_column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> -</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">,</span> <span class="n">exists_column</span><span class="p">)</span> +</span><span id="L-3683"><a href="#L-3683"><span class="linenos">3683</span></a> <span class="k">def</span> <span class="nf">_parse_commit_or_rollback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3684"><a href="#L-3684"><span class="linenos">3684</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3685"><a href="#L-3685"><span class="linenos">3685</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3686"><a href="#L-3686"><span class="linenos">3686</span></a> <span class="n">is_rollback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span> +</span><span id="L-3687"><a href="#L-3687"><span class="linenos">3687</span></a> +</span><span id="L-3688"><a href="#L-3688"><span class="linenos">3688</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> </span><span id="L-3689"><a href="#L-3689"><span class="linenos">3689</span></a> -</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> -</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="k">def</span> <span class="nf">_parse_drop_column</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">Expression</span><span class="p">]:</span> -</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> <span class="k">return</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">DROP</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop</span><span class="p">(</span><span class="n">default_kind</span><span class="o">=</span><span class="s2">"COLUMN"</span><span class="p">)</span> -</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> -</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="c1"># https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html</span> -</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="k">def</span> <span class="nf">_parse_drop_partition</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exists</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</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><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DropPartition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> -</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</span></a> <span class="p">)</span> -</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</span></a> -</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</span></a> <span class="k">def</span> <span class="nf">_parse_add_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> -</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">:</span> -</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a> -</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECK"</span><span class="p">):</span> -</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="n">enforced</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ENFORCED"</span><span class="p">)</span> -</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a> -</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">enforced</span><span class="o">=</span><span class="n">enforced</span> -</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a> <span class="p">)</span> -</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a> -</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span> <span class="ow">or</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">FOREIGN_KEY</span><span class="p">):</span> -</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_foreign_key</span><span class="p">()</span> -</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span> <span class="ow">or</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">PRIMARY_KEY</span><span class="p">):</span> -</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary_key</span><span class="p">()</span> -</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</span></a> -</span><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</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">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a> -</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_add</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</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-3725"><a href="#L-3725"><span class="linenos">3725</span></a> -</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ADD_CONSTRAINT_TOKENS</span><span class="p">):</span> -</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_constraint</span><span class="p">)</span> -</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a> -</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="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-3730"><a href="#L-3730"><span class="linenos">3730</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_column</span><span class="p">)</span> -</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a> -</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_alter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</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">COLUMN</span><span class="p">)</span> -</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a> <span class="n">column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a> -</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> -</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">drop</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> -</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a> -</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SET"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">)</span> -</span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</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><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterColumn</span><span class="p">,</span> -</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</span></a> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> -</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TYPE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(),</span> -</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a> <span class="n">collate</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">COLLATE</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> -</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</span></a> <span class="n">using</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> -</span><span id="L-3748"><a href="#L-3748"><span class="linenos">3748</span></a> <span class="p">)</span> -</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> -</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_drop</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</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-3752"><a href="#L-3752"><span class="linenos">3752</span></a> -</span><span id="L-3753"><a href="#L-3753"><span class="linenos">3753</span></a> <span class="n">partition_exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> -</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a> <span class="k">if</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">PARTITION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_partition</span><span class="p">(</span><span class="n">exists</span><span class="o">=</span><span class="n">partition_exists</span><span class="p">))</span> -</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</span></a> -</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</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-3758"><a href="#L-3758"><span class="linenos">3758</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_column</span><span class="p">)</span> -</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a> -</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_rename</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">)</span> -</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</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">RenameTable</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="L-3690"><a href="#L-3690"><span class="linenos">3690</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">):</span> +</span><span id="L-3691"><a href="#L-3691"><span class="linenos">3691</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SAVEPOINT"</span><span class="p">)</span> +</span><span id="L-3692"><a href="#L-3692"><span class="linenos">3692</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3693"><a href="#L-3693"><span class="linenos">3693</span></a> +</span><span id="L-3694"><a href="#L-3694"><span class="linenos">3694</span></a> <span class="k">if</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">AND</span><span class="p">):</span> +</span><span id="L-3695"><a href="#L-3695"><span class="linenos">3695</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> +</span><span id="L-3696"><a href="#L-3696"><span class="linenos">3696</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHAIN"</span><span class="p">)</span> +</span><span id="L-3697"><a href="#L-3697"><span class="linenos">3697</span></a> +</span><span id="L-3698"><a href="#L-3698"><span class="linenos">3698</span></a> <span class="k">if</span> <span class="n">is_rollback</span><span class="p">:</span> +</span><span id="L-3699"><a href="#L-3699"><span class="linenos">3699</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">Rollback</span><span class="p">,</span> <span class="n">savepoint</span><span class="o">=</span><span class="n">savepoint</span><span class="p">)</span> +</span><span id="L-3700"><a href="#L-3700"><span class="linenos">3700</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">Commit</span><span class="p">,</span> <span class="n">chain</span><span class="o">=</span><span class="n">chain</span><span class="p">)</span> +</span><span id="L-3701"><a href="#L-3701"><span class="linenos">3701</span></a> +</span><span id="L-3702"><a href="#L-3702"><span class="linenos">3702</span></a> <span class="k">def</span> <span class="nf">_parse_add_column</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">Expression</span><span class="p">]:</span> +</span><span id="L-3703"><a href="#L-3703"><span class="linenos">3703</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">):</span> +</span><span id="L-3704"><a href="#L-3704"><span class="linenos">3704</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3705"><a href="#L-3705"><span class="linenos">3705</span></a> +</span><span id="L-3706"><a href="#L-3706"><span class="linenos">3706</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">COLUMN</span><span class="p">)</span> +</span><span id="L-3707"><a href="#L-3707"><span class="linenos">3707</span></a> <span class="n">exists_column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3708"><a href="#L-3708"><span class="linenos">3708</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="L-3709"><a href="#L-3709"><span class="linenos">3709</span></a> +</span><span id="L-3710"><a href="#L-3710"><span class="linenos">3710</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="L-3711"><a href="#L-3711"><span class="linenos">3711</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">,</span> <span class="n">exists_column</span><span class="p">)</span> +</span><span id="L-3712"><a href="#L-3712"><span class="linenos">3712</span></a> +</span><span id="L-3713"><a href="#L-3713"><span class="linenos">3713</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-3714"><a href="#L-3714"><span class="linenos">3714</span></a> +</span><span id="L-3715"><a href="#L-3715"><span class="linenos">3715</span></a> <span class="k">def</span> <span class="nf">_parse_drop_column</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">Expression</span><span class="p">]:</span> +</span><span id="L-3716"><a href="#L-3716"><span class="linenos">3716</span></a> <span class="k">return</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">DROP</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop</span><span class="p">(</span><span class="n">default_kind</span><span class="o">=</span><span class="s2">"COLUMN"</span><span class="p">)</span> +</span><span id="L-3717"><a href="#L-3717"><span class="linenos">3717</span></a> +</span><span id="L-3718"><a href="#L-3718"><span class="linenos">3718</span></a> <span class="c1"># https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html</span> +</span><span id="L-3719"><a href="#L-3719"><span class="linenos">3719</span></a> <span class="k">def</span> <span class="nf">_parse_drop_partition</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exists</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3720"><a href="#L-3720"><span class="linenos">3720</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><span id="L-3721"><a href="#L-3721"><span class="linenos">3721</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DropPartition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> +</span><span id="L-3722"><a href="#L-3722"><span class="linenos">3722</span></a> <span class="p">)</span> +</span><span id="L-3723"><a href="#L-3723"><span class="linenos">3723</span></a> +</span><span id="L-3724"><a href="#L-3724"><span class="linenos">3724</span></a> <span class="k">def</span> <span class="nf">_parse_add_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="L-3725"><a href="#L-3725"><span class="linenos">3725</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3726"><a href="#L-3726"><span class="linenos">3726</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="L-3727"><a href="#L-3727"><span class="linenos">3727</span></a> +</span><span id="L-3728"><a href="#L-3728"><span class="linenos">3728</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">:</span> +</span><span id="L-3729"><a href="#L-3729"><span class="linenos">3729</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3730"><a href="#L-3730"><span class="linenos">3730</span></a> +</span><span id="L-3731"><a href="#L-3731"><span class="linenos">3731</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECK"</span><span class="p">):</span> +</span><span id="L-3732"><a href="#L-3732"><span class="linenos">3732</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="L-3733"><a href="#L-3733"><span class="linenos">3733</span></a> <span class="n">enforced</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ENFORCED"</span><span class="p">)</span> +</span><span id="L-3734"><a href="#L-3734"><span class="linenos">3734</span></a> +</span><span id="L-3735"><a href="#L-3735"><span class="linenos">3735</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3736"><a href="#L-3736"><span class="linenos">3736</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">enforced</span><span class="o">=</span><span class="n">enforced</span> +</span><span id="L-3737"><a href="#L-3737"><span class="linenos">3737</span></a> <span class="p">)</span> +</span><span id="L-3738"><a href="#L-3738"><span class="linenos">3738</span></a> +</span><span id="L-3739"><a href="#L-3739"><span class="linenos">3739</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span> <span class="ow">or</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">FOREIGN_KEY</span><span class="p">):</span> +</span><span id="L-3740"><a href="#L-3740"><span class="linenos">3740</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_foreign_key</span><span class="p">()</span> +</span><span id="L-3741"><a href="#L-3741"><span class="linenos">3741</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span> <span class="ow">or</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">PRIMARY_KEY</span><span class="p">):</span> +</span><span id="L-3742"><a href="#L-3742"><span class="linenos">3742</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary_key</span><span class="p">()</span> +</span><span id="L-3743"><a href="#L-3743"><span class="linenos">3743</span></a> +</span><span id="L-3744"><a href="#L-3744"><span class="linenos">3744</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">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-3745"><a href="#L-3745"><span class="linenos">3745</span></a> +</span><span id="L-3746"><a href="#L-3746"><span class="linenos">3746</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_add</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="L-3747"><a href="#L-3747"><span class="linenos">3747</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-3748"><a href="#L-3748"><span class="linenos">3748</span></a> +</span><span id="L-3749"><a href="#L-3749"><span class="linenos">3749</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ADD_CONSTRAINT_TOKENS</span><span class="p">):</span> +</span><span id="L-3750"><a href="#L-3750"><span class="linenos">3750</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_constraint</span><span class="p">)</span> +</span><span id="L-3751"><a href="#L-3751"><span class="linenos">3751</span></a> +</span><span id="L-3752"><a href="#L-3752"><span class="linenos">3752</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-3753"><a href="#L-3753"><span class="linenos">3753</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_column</span><span class="p">)</span> +</span><span id="L-3754"><a href="#L-3754"><span class="linenos">3754</span></a> +</span><span id="L-3755"><a href="#L-3755"><span class="linenos">3755</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_alter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3756"><a href="#L-3756"><span class="linenos">3756</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">COLUMN</span><span class="p">)</span> +</span><span id="L-3757"><a href="#L-3757"><span class="linenos">3757</span></a> <span class="n">column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3758"><a href="#L-3758"><span class="linenos">3758</span></a> +</span><span id="L-3759"><a href="#L-3759"><span class="linenos">3759</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> +</span><span id="L-3760"><a href="#L-3760"><span class="linenos">3760</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">drop</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3761"><a href="#L-3761"><span class="linenos">3761</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> +</span><span id="L-3762"><a href="#L-3762"><span class="linenos">3762</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> </span><span id="L-3763"><a href="#L-3763"><span class="linenos">3763</span></a> -</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="k">def</span> <span class="nf">_parse_alter</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">Expression</span><span class="p">]:</span> -</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a> -</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> -</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> -</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> -</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3764"><a href="#L-3764"><span class="linenos">3764</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SET"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">)</span> +</span><span id="L-3765"><a href="#L-3765"><span class="linenos">3765</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><span id="L-3766"><a href="#L-3766"><span class="linenos">3766</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterColumn</span><span class="p">,</span> +</span><span id="L-3767"><a href="#L-3767"><span class="linenos">3767</span></a> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> +</span><span id="L-3768"><a href="#L-3768"><span class="linenos">3768</span></a> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TYPE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(),</span> +</span><span id="L-3769"><a href="#L-3769"><span class="linenos">3769</span></a> <span class="n">collate</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">COLLATE</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> +</span><span id="L-3770"><a href="#L-3770"><span class="linenos">3770</span></a> <span class="n">using</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> +</span><span id="L-3771"><a href="#L-3771"><span class="linenos">3771</span></a> <span class="p">)</span> </span><span id="L-3772"><a href="#L-3772"><span class="linenos">3772</span></a> -</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> -</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3775"><a href="#L-3775"><span class="linenos">3775</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a> -</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</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><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterTable</span><span class="p">,</span> -</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="L-3781"><a href="#L-3781"><span class="linenos">3781</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> -</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a> <span class="n">actions</span><span class="o">=</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)),</span> -</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="p">)</span> -</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</span></a> -</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> <span class="k">def</span> <span class="nf">_parse_show</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">Expression</span><span class="p">]:</span> -</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SHOW_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_show_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</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">Show</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="L-3773"><a href="#L-3773"><span class="linenos">3773</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_drop</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="L-3774"><a href="#L-3774"><span class="linenos">3774</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-3775"><a href="#L-3775"><span class="linenos">3775</span></a> +</span><span id="L-3776"><a href="#L-3776"><span class="linenos">3776</span></a> <span class="n">partition_exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> +</span><span id="L-3777"><a href="#L-3777"><span class="linenos">3777</span></a> <span class="k">if</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">PARTITION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="L-3778"><a href="#L-3778"><span class="linenos">3778</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_partition</span><span class="p">(</span><span class="n">exists</span><span class="o">=</span><span class="n">partition_exists</span><span class="p">))</span> +</span><span id="L-3779"><a href="#L-3779"><span class="linenos">3779</span></a> +</span><span id="L-3780"><a href="#L-3780"><span class="linenos">3780</span></a> <span class="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-3781"><a href="#L-3781"><span class="linenos">3781</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_column</span><span class="p">)</span> +</span><span id="L-3782"><a href="#L-3782"><span class="linenos">3782</span></a> +</span><span id="L-3783"><a href="#L-3783"><span class="linenos">3783</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_rename</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3784"><a href="#L-3784"><span class="linenos">3784</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">)</span> +</span><span id="L-3785"><a href="#L-3785"><span class="linenos">3785</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">RenameTable</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="L-3786"><a href="#L-3786"><span class="linenos">3786</span></a> +</span><span id="L-3787"><a href="#L-3787"><span class="linenos">3787</span></a> <span class="k">def</span> <span class="nf">_parse_alter</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">Expression</span><span class="p">]:</span> +</span><span id="L-3788"><a href="#L-3788"><span class="linenos">3788</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="L-3789"><a href="#L-3789"><span class="linenos">3789</span></a> +</span><span id="L-3790"><a href="#L-3790"><span class="linenos">3790</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> +</span><span id="L-3791"><a href="#L-3791"><span class="linenos">3791</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> </span><span id="L-3792"><a href="#L-3792"><span class="linenos">3792</span></a> -</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a> <span class="k">def</span> <span class="nf">_default_parse_set_item</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</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><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">(),</span> -</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a> <span class="p">)</span> -</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> -</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> <span class="k">def</span> <span class="nf">_parse_set_item</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">Expression</span><span class="p">]:</span> -</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_set_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="k">if</span> <span class="n">parser</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_default_parse_set_item</span><span class="p">()</span> -</span><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a> -</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a> <span class="k">def</span> <span class="nf">_parse_merge</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</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">INTO</span><span class="p">)</span> -</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a> <span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> -</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> <span class="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">USING</span><span class="p">)</span> -</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a> <span class="n">using</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a> -</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</span></a> <span class="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">ON</span><span class="p">)</span> -</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3793"><a href="#L-3793"><span class="linenos">3793</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> +</span><span id="L-3794"><a href="#L-3794"><span class="linenos">3794</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="L-3795"><a href="#L-3795"><span class="linenos">3795</span></a> +</span><span id="L-3796"><a href="#L-3796"><span class="linenos">3796</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> +</span><span id="L-3797"><a href="#L-3797"><span class="linenos">3797</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3798"><a href="#L-3798"><span class="linenos">3798</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-3799"><a href="#L-3799"><span class="linenos">3799</span></a> +</span><span id="L-3800"><a href="#L-3800"><span class="linenos">3800</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="L-3801"><a href="#L-3801"><span class="linenos">3801</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><span id="L-3802"><a href="#L-3802"><span class="linenos">3802</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterTable</span><span class="p">,</span> +</span><span id="L-3803"><a href="#L-3803"><span class="linenos">3803</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3804"><a href="#L-3804"><span class="linenos">3804</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> +</span><span id="L-3805"><a href="#L-3805"><span class="linenos">3805</span></a> <span class="n">actions</span><span class="o">=</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)),</span> +</span><span id="L-3806"><a href="#L-3806"><span class="linenos">3806</span></a> <span class="p">)</span> +</span><span id="L-3807"><a href="#L-3807"><span class="linenos">3807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="L-3808"><a href="#L-3808"><span class="linenos">3808</span></a> +</span><span id="L-3809"><a href="#L-3809"><span class="linenos">3809</span></a> <span class="k">def</span> <span class="nf">_parse_merge</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3810"><a href="#L-3810"><span class="linenos">3810</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">INTO</span><span class="p">)</span> +</span><span id="L-3811"><a href="#L-3811"><span class="linenos">3811</span></a> <span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> </span><span id="L-3812"><a href="#L-3812"><span class="linenos">3812</span></a> -</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</span></a> <span class="n">whens</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> -</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="ow">not</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">NOT</span><span class="p">)</span> -</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCHED"</span><span class="p">)</span> -</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a> <span class="n">source</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> <span class="kc">False</span> -</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"TARGET"</span><span class="p">)</span> -</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"SOURCE"</span><span class="p">)</span> -</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a> <span class="p">)</span> -</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">AND</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> -</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</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">THEN</span><span class="p">)</span> -</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> -</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a> <span class="k">if</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">INSERT</span><span class="p">):</span> -</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a> <span class="n">_this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> -</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a> <span class="k">if</span> <span class="n">_this</span><span class="p">:</span> -</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a> <span class="n">then</span> <span class="o">=</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">Insert</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">_this</span><span class="p">)</span> -</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> -</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> -</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="n">expression</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">VALUES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> -</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a> <span class="p">)</span> -</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="k">elif</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">UPDATE</span><span class="p">):</span> -</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> -</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a> <span class="n">then</span> <span class="o">=</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">Update</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> -</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a> <span class="n">expressions</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">SET</span><span class="p">)</span> -</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> -</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a> <span class="p">)</span> -</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a> <span class="k">elif</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">DELETE</span><span class="p">):</span> -</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a> <span class="n">then</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="n">then</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a> -</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a> <span class="n">whens</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">When</span><span class="p">,</span> -</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a> <span class="n">matched</span><span class="o">=</span><span class="n">matched</span><span class="p">,</span> -</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">,</span> -</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a> <span class="n">condition</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> -</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="n">then</span><span class="o">=</span><span class="n">then</span><span class="p">,</span> -</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a> <span class="p">)</span> -</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="p">)</span> -</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a> -</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</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><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Merge</span><span class="p">,</span> -</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">this</span><span class="o">=</span><span class="n">target</span><span class="p">,</span> -</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> <span class="n">using</span><span class="o">=</span><span class="n">using</span><span class="p">,</span> -</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> -</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">whens</span><span class="p">,</span> -</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</span></a> <span class="p">)</span> -</span><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a> -</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a> <span class="k">def</span> <span class="nf">_parse_set</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</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">Set</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item</span><span class="p">))</span> -</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> -</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> <span class="k">def</span> <span class="nf">_parse_as_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">:</span> -</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">start</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">[:</span><span class="n">size</span><span class="p">],</span> <span class="n">expression</span><span class="o">=</span><span class="n">text</span><span class="p">[</span><span class="n">size</span><span class="p">:])</span> -</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a> -</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a> <span class="k">def</span> <span class="nf">_find_parser</span><span class="p">(</span> -</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parsers</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">],</span> <span class="n">trie</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> -</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]:</span> -</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</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><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-3885"><a href="#L-3885"><span class="linenos">3885</span></a> <span class="c1"># The current token might be multiple words</span> -</span><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> <span class="n">curr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="n">key</span> <span class="o">=</span> <span class="n">curr</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> -</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">curr</span><span class="p">)</span> -</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> -</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> -</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a> <span class="k">break</span> -</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="L-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="n">subparser</span> <span class="o">=</span> <span class="n">parsers</span><span class="p">[</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">this</span><span class="p">)]</span> -</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> <span class="k">return</span> <span class="n">subparser</span> -</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</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-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> -</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="k">def</span> <span class="nf">_match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3813"><a href="#L-3813"><span class="linenos">3813</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">USING</span><span class="p">)</span> +</span><span id="L-3814"><a href="#L-3814"><span class="linenos">3814</span></a> <span class="n">using</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> +</span><span id="L-3815"><a href="#L-3815"><span class="linenos">3815</span></a> +</span><span id="L-3816"><a href="#L-3816"><span class="linenos">3816</span></a> <span class="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">ON</span><span class="p">)</span> +</span><span id="L-3817"><a href="#L-3817"><span class="linenos">3817</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="L-3818"><a href="#L-3818"><span class="linenos">3818</span></a> +</span><span id="L-3819"><a href="#L-3819"><span class="linenos">3819</span></a> <span class="n">whens</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-3820"><a href="#L-3820"><span class="linenos">3820</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> +</span><span id="L-3821"><a href="#L-3821"><span class="linenos">3821</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="ow">not</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">NOT</span><span class="p">)</span> +</span><span id="L-3822"><a href="#L-3822"><span class="linenos">3822</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCHED"</span><span class="p">)</span> +</span><span id="L-3823"><a href="#L-3823"><span class="linenos">3823</span></a> <span class="n">source</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-3824"><a href="#L-3824"><span class="linenos">3824</span></a> <span class="kc">False</span> +</span><span id="L-3825"><a href="#L-3825"><span class="linenos">3825</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"TARGET"</span><span class="p">)</span> +</span><span id="L-3826"><a href="#L-3826"><span class="linenos">3826</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"SOURCE"</span><span class="p">)</span> +</span><span id="L-3827"><a href="#L-3827"><span class="linenos">3827</span></a> <span class="p">)</span> +</span><span id="L-3828"><a href="#L-3828"><span class="linenos">3828</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">AND</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="L-3829"><a href="#L-3829"><span class="linenos">3829</span></a> +</span><span id="L-3830"><a href="#L-3830"><span class="linenos">3830</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">THEN</span><span class="p">)</span> +</span><span id="L-3831"><a href="#L-3831"><span class="linenos">3831</span></a> +</span><span id="L-3832"><a href="#L-3832"><span class="linenos">3832</span></a> <span class="k">if</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">INSERT</span><span class="p">):</span> +</span><span id="L-3833"><a href="#L-3833"><span class="linenos">3833</span></a> <span class="n">_this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> +</span><span id="L-3834"><a href="#L-3834"><span class="linenos">3834</span></a> <span class="k">if</span> <span class="n">_this</span><span class="p">:</span> +</span><span id="L-3835"><a href="#L-3835"><span class="linenos">3835</span></a> <span class="n">then</span> <span class="o">=</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">Insert</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">_this</span><span class="p">)</span> +</span><span id="L-3836"><a href="#L-3836"><span class="linenos">3836</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3837"><a href="#L-3837"><span class="linenos">3837</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3838"><a href="#L-3838"><span class="linenos">3838</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> +</span><span id="L-3839"><a href="#L-3839"><span class="linenos">3839</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> +</span><span id="L-3840"><a href="#L-3840"><span class="linenos">3840</span></a> <span class="n">expression</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">VALUES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> +</span><span id="L-3841"><a href="#L-3841"><span class="linenos">3841</span></a> <span class="p">)</span> +</span><span id="L-3842"><a href="#L-3842"><span class="linenos">3842</span></a> <span class="k">elif</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">UPDATE</span><span class="p">):</span> +</span><span id="L-3843"><a href="#L-3843"><span class="linenos">3843</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> +</span><span id="L-3844"><a href="#L-3844"><span class="linenos">3844</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="L-3845"><a href="#L-3845"><span class="linenos">3845</span></a> <span class="n">then</span> <span class="o">=</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">Update</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="L-3846"><a href="#L-3846"><span class="linenos">3846</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3847"><a href="#L-3847"><span class="linenos">3847</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3848"><a href="#L-3848"><span class="linenos">3848</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> +</span><span id="L-3849"><a href="#L-3849"><span class="linenos">3849</span></a> <span class="n">expressions</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">SET</span><span class="p">)</span> +</span><span id="L-3850"><a href="#L-3850"><span class="linenos">3850</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> +</span><span id="L-3851"><a href="#L-3851"><span class="linenos">3851</span></a> <span class="p">)</span> +</span><span id="L-3852"><a href="#L-3852"><span class="linenos">3852</span></a> <span class="k">elif</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">DELETE</span><span class="p">):</span> +</span><span id="L-3853"><a href="#L-3853"><span class="linenos">3853</span></a> <span class="n">then</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-3854"><a href="#L-3854"><span class="linenos">3854</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-3855"><a href="#L-3855"><span class="linenos">3855</span></a> <span class="n">then</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3856"><a href="#L-3856"><span class="linenos">3856</span></a> +</span><span id="L-3857"><a href="#L-3857"><span class="linenos">3857</span></a> <span class="n">whens</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="L-3858"><a href="#L-3858"><span class="linenos">3858</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3859"><a href="#L-3859"><span class="linenos">3859</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">When</span><span class="p">,</span> +</span><span id="L-3860"><a href="#L-3860"><span class="linenos">3860</span></a> <span class="n">matched</span><span class="o">=</span><span class="n">matched</span><span class="p">,</span> +</span><span id="L-3861"><a href="#L-3861"><span class="linenos">3861</span></a> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">,</span> +</span><span id="L-3862"><a href="#L-3862"><span class="linenos">3862</span></a> <span class="n">condition</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> +</span><span id="L-3863"><a href="#L-3863"><span class="linenos">3863</span></a> <span class="n">then</span><span class="o">=</span><span class="n">then</span><span class="p">,</span> +</span><span id="L-3864"><a href="#L-3864"><span class="linenos">3864</span></a> <span class="p">)</span> +</span><span id="L-3865"><a href="#L-3865"><span class="linenos">3865</span></a> <span class="p">)</span> +</span><span id="L-3866"><a href="#L-3866"><span class="linenos">3866</span></a> +</span><span id="L-3867"><a href="#L-3867"><span class="linenos">3867</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><span id="L-3868"><a href="#L-3868"><span class="linenos">3868</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Merge</span><span class="p">,</span> +</span><span id="L-3869"><a href="#L-3869"><span class="linenos">3869</span></a> <span class="n">this</span><span class="o">=</span><span class="n">target</span><span class="p">,</span> +</span><span id="L-3870"><a href="#L-3870"><span class="linenos">3870</span></a> <span class="n">using</span><span class="o">=</span><span class="n">using</span><span class="p">,</span> +</span><span id="L-3871"><a href="#L-3871"><span class="linenos">3871</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> +</span><span id="L-3872"><a href="#L-3872"><span class="linenos">3872</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">whens</span><span class="p">,</span> +</span><span id="L-3873"><a href="#L-3873"><span class="linenos">3873</span></a> <span class="p">)</span> +</span><span id="L-3874"><a href="#L-3874"><span class="linenos">3874</span></a> +</span><span id="L-3875"><a href="#L-3875"><span class="linenos">3875</span></a> <span class="k">def</span> <span class="nf">_parse_show</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">Expression</span><span class="p">]:</span> +</span><span id="L-3876"><a href="#L-3876"><span class="linenos">3876</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SHOW_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_show_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-3877"><a href="#L-3877"><span class="linenos">3877</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="L-3878"><a href="#L-3878"><span class="linenos">3878</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="L-3879"><a href="#L-3879"><span class="linenos">3879</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3880"><a href="#L-3880"><span class="linenos">3880</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">Show</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="L-3881"><a href="#L-3881"><span class="linenos">3881</span></a> +</span><span id="L-3882"><a href="#L-3882"><span class="linenos">3882</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_assignment</span><span class="p">(</span> +</span><span id="L-3883"><a href="#L-3883"><span class="linenos">3883</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-3884"><a href="#L-3884"><span class="linenos">3884</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-3885"><a href="#L-3885"><span class="linenos">3885</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><span id="L-3886"><a href="#L-3886"><span class="linenos">3886</span></a> +</span><span id="L-3887"><a href="#L-3887"><span class="linenos">3887</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"GLOBAL"</span><span class="p">,</span> <span class="s2">"SESSION"</span><span class="p">}</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">):</span> +</span><span id="L-3888"><a href="#L-3888"><span class="linenos">3888</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_transaction</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"GLOBAL"</span><span class="p">)</span> +</span><span id="L-3889"><a href="#L-3889"><span class="linenos">3889</span></a> +</span><span id="L-3890"><a href="#L-3890"><span class="linenos">3890</span></a> <span class="n">left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3891"><a href="#L-3891"><span class="linenos">3891</span></a> +</span><span id="L-3892"><a href="#L-3892"><span class="linenos">3892</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"="</span><span class="p">,</span> <span class="s2">"TO"</span><span class="p">)):</span> +</span><span id="L-3893"><a href="#L-3893"><span class="linenos">3893</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-3894"><a href="#L-3894"><span class="linenos">3894</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3895"><a href="#L-3895"><span class="linenos">3895</span></a> +</span><span id="L-3896"><a href="#L-3896"><span class="linenos">3896</span></a> <span class="n">right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="L-3897"><a href="#L-3897"><span class="linenos">3897</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="L-3898"><a href="#L-3898"><span class="linenos">3898</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="L-3899"><a href="#L-3899"><span class="linenos">3899</span></a> <span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> +</span><span id="L-3900"><a href="#L-3900"><span class="linenos">3900</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> +</span><span id="L-3901"><a href="#L-3901"><span class="linenos">3901</span></a> <span class="p">)</span> </span><span id="L-3902"><a href="#L-3902"><span class="linenos">3902</span></a> -</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type</span><span class="p">:</span> -</span><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a> -</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> -</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="k">def</span> <span class="nf">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">types</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> -</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="n">types</span><span class="p">:</span> -</span><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a> -</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3903"><a href="#L-3903"><span class="linenos">3903</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><span id="L-3904"><a href="#L-3904"><span class="linenos">3904</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="L-3905"><a href="#L-3905"><span class="linenos">3905</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="L-3906"><a href="#L-3906"><span class="linenos">3906</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="L-3907"><a href="#L-3907"><span class="linenos">3907</span></a> <span class="p">)</span> +</span><span id="L-3908"><a href="#L-3908"><span class="linenos">3908</span></a> +</span><span id="L-3909"><a href="#L-3909"><span class="linenos">3909</span></a> <span class="k">def</span> <span class="nf">_parse_set_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3910"><a href="#L-3910"><span class="linenos">3910</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">)</span> +</span><span id="L-3911"><a href="#L-3911"><span class="linenos">3911</span></a> <span class="n">characteristics</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> +</span><span id="L-3912"><a href="#L-3912"><span class="linenos">3912</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_CHARACTERISTICS</span><span class="p">)</span> +</span><span id="L-3913"><a href="#L-3913"><span class="linenos">3913</span></a> <span class="p">)</span> +</span><span id="L-3914"><a href="#L-3914"><span class="linenos">3914</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><span id="L-3915"><a href="#L-3915"><span class="linenos">3915</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="L-3916"><a href="#L-3916"><span class="linenos">3916</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">characteristics</span><span class="p">,</span> +</span><span id="L-3917"><a href="#L-3917"><span class="linenos">3917</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> +</span><span id="L-3918"><a href="#L-3918"><span class="linenos">3918</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> <span class="c1"># type: ignore</span> +</span><span id="L-3919"><a href="#L-3919"><span class="linenos">3919</span></a> <span class="p">)</span> </span><span id="L-3920"><a href="#L-3920"><span class="linenos">3920</span></a> -</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="k">def</span> <span class="nf">_match_pair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type_a</span><span class="p">,</span> <span class="n">token_type_b</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> -</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3921"><a href="#L-3921"><span class="linenos">3921</span></a> <span class="k">def</span> <span class="nf">_parse_set_item</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">Expression</span><span class="p">]:</span> +</span><span id="L-3922"><a href="#L-3922"><span class="linenos">3922</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_set_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-3923"><a href="#L-3923"><span class="linenos">3923</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="k">if</span> <span class="n">parser</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item_assignment</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> </span><span id="L-3924"><a href="#L-3924"><span class="linenos">3924</span></a> -</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_a</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_b</span><span class="p">:</span> -</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> -</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> -</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="L-3931"><a href="#L-3931"><span class="linenos">3931</span></a> -</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> <span class="k">def</span> <span class="nf">_match_l_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting ("</span><span class="p">)</span> -</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> -</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> <span class="k">def</span> <span class="nf">_match_r_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> -</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">)</span> -</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> -</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="k">def</span> <span class="nf">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> -</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</span></a> -</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a> <span class="k">def</span> <span class="nf">_match_text_seq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</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><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> <span class="k">for</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> -</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="n">text</span><span class="p">:</span> -</span><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</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-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a> -</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</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-3962"><a href="#L-3962"><span class="linenos">3962</span></a> -</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> -</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="k">def</span> <span class="nf">_replace_columns_with_dots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">):</span> -</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">):</span> -</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> -</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> -</span><span id="L-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> -</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">this</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">"table"</span><span class="p">)</span> -</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <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">Dot</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">expression</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="k">if</span> <span class="n">table</span> -</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a> <span class="k">else</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a> <span class="p">)</span> -</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> -</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="n">this</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-3925"><a href="#L-3925"><span class="linenos">3925</span></a> <span class="k">def</span> <span class="nf">_parse_set</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-3926"><a href="#L-3926"><span class="linenos">3926</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><span id="L-3927"><a href="#L-3927"><span class="linenos">3927</span></a> <span class="n">set_</span> <span class="o">=</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">Set</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item</span><span class="p">))</span> +</span><span id="L-3928"><a href="#L-3928"><span class="linenos">3928</span></a> +</span><span id="L-3929"><a href="#L-3929"><span class="linenos">3929</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-3930"><a href="#L-3930"><span class="linenos">3930</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-3931"><a href="#L-3931"><span class="linenos">3931</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3932"><a href="#L-3932"><span class="linenos">3932</span></a> +</span><span id="L-3933"><a href="#L-3933"><span class="linenos">3933</span></a> <span class="k">return</span> <span class="n">set_</span> +</span><span id="L-3934"><a href="#L-3934"><span class="linenos">3934</span></a> +</span><span id="L-3935"><a href="#L-3935"><span class="linenos">3935</span></a> <span class="k">def</span> <span class="nf">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</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="nb">str</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">Expression</span><span class="p">]:</span> +</span><span id="L-3936"><a href="#L-3936"><span class="linenos">3936</span></a> <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">options</span><span class="p">:</span> +</span><span id="L-3937"><a href="#L-3937"><span class="linenos">3937</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="o">*</span><span class="n">option</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)):</span> +</span><span id="L-3938"><a href="#L-3938"><span class="linenos">3938</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">option</span><span class="p">)</span> +</span><span id="L-3939"><a href="#L-3939"><span class="linenos">3939</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3940"><a href="#L-3940"><span class="linenos">3940</span></a> +</span><span id="L-3941"><a href="#L-3941"><span class="linenos">3941</span></a> <span class="k">def</span> <span class="nf">_parse_as_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">:</span> +</span><span id="L-3942"><a href="#L-3942"><span class="linenos">3942</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-3943"><a href="#L-3943"><span class="linenos">3943</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3944"><a href="#L-3944"><span class="linenos">3944</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="L-3945"><a href="#L-3945"><span class="linenos">3945</span></a> <span class="n">size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">start</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="L-3946"><a href="#L-3946"><span class="linenos">3946</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">[:</span><span class="n">size</span><span class="p">],</span> <span class="n">expression</span><span class="o">=</span><span class="n">text</span><span class="p">[</span><span class="n">size</span><span class="p">:])</span> +</span><span id="L-3947"><a href="#L-3947"><span class="linenos">3947</span></a> +</span><span id="L-3948"><a href="#L-3948"><span class="linenos">3948</span></a> <span class="k">def</span> <span class="nf">_find_parser</span><span class="p">(</span> +</span><span id="L-3949"><a href="#L-3949"><span class="linenos">3949</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parsers</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">],</span> <span class="n">trie</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> +</span><span id="L-3950"><a href="#L-3950"><span class="linenos">3950</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]:</span> +</span><span id="L-3951"><a href="#L-3951"><span class="linenos">3951</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-3952"><a href="#L-3952"><span class="linenos">3952</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3953"><a href="#L-3953"><span class="linenos">3953</span></a> +</span><span id="L-3954"><a href="#L-3954"><span class="linenos">3954</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><span id="L-3955"><a href="#L-3955"><span class="linenos">3955</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-3956"><a href="#L-3956"><span class="linenos">3956</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-3957"><a href="#L-3957"><span class="linenos">3957</span></a> <span class="c1"># The current token might be multiple words</span> +</span><span id="L-3958"><a href="#L-3958"><span class="linenos">3958</span></a> <span class="n">curr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="L-3959"><a href="#L-3959"><span class="linenos">3959</span></a> <span class="n">key</span> <span class="o">=</span> <span class="n">curr</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> +</span><span id="L-3960"><a href="#L-3960"><span class="linenos">3960</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">curr</span><span class="p">)</span> +</span><span id="L-3961"><a href="#L-3961"><span class="linenos">3961</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3962"><a href="#L-3962"><span class="linenos">3962</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> +</span><span id="L-3963"><a href="#L-3963"><span class="linenos">3963</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> +</span><span id="L-3964"><a href="#L-3964"><span class="linenos">3964</span></a> <span class="k">break</span> +</span><span id="L-3965"><a href="#L-3965"><span class="linenos">3965</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="L-3966"><a href="#L-3966"><span class="linenos">3966</span></a> <span class="n">subparser</span> <span class="o">=</span> <span class="n">parsers</span><span class="p">[</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">this</span><span class="p">)]</span> +</span><span id="L-3967"><a href="#L-3967"><span class="linenos">3967</span></a> <span class="k">return</span> <span class="n">subparser</span> +</span><span id="L-3968"><a href="#L-3968"><span class="linenos">3968</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-3969"><a href="#L-3969"><span class="linenos">3969</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3970"><a href="#L-3970"><span class="linenos">3970</span></a> +</span><span id="L-3971"><a href="#L-3971"><span class="linenos">3971</span></a> <span class="k">def</span> <span class="nf">_match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-3972"><a href="#L-3972"><span class="linenos">3972</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-3973"><a href="#L-3973"><span class="linenos">3973</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3974"><a href="#L-3974"><span class="linenos">3974</span></a> +</span><span id="L-3975"><a href="#L-3975"><span class="linenos">3975</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type</span><span class="p">:</span> +</span><span id="L-3976"><a href="#L-3976"><span class="linenos">3976</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="L-3977"><a href="#L-3977"><span class="linenos">3977</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3978"><a href="#L-3978"><span class="linenos">3978</span></a> <span class="k">return</span> <span class="kc">True</span> </span><span id="L-3979"><a href="#L-3979"><span class="linenos">3979</span></a> -</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a> <span class="k">def</span> <span class="nf">_replace_lambda</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">lambda_variables</span><span class="p">):</span> -</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> -</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">lambda_variables</span><span class="p">:</span> -</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="k">return</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span> -</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="L-3980"><a href="#L-3980"><span class="linenos">3980</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3981"><a href="#L-3981"><span class="linenos">3981</span></a> +</span><span id="L-3982"><a href="#L-3982"><span class="linenos">3982</span></a> <span class="k">def</span> <span class="nf">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">types</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-3983"><a href="#L-3983"><span class="linenos">3983</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="L-3984"><a href="#L-3984"><span class="linenos">3984</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3985"><a href="#L-3985"><span class="linenos">3985</span></a> +</span><span id="L-3986"><a href="#L-3986"><span class="linenos">3986</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="n">types</span><span class="p">:</span> +</span><span id="L-3987"><a href="#L-3987"><span class="linenos">3987</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="L-3988"><a href="#L-3988"><span class="linenos">3988</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-3989"><a href="#L-3989"><span class="linenos">3989</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-3990"><a href="#L-3990"><span class="linenos">3990</span></a> +</span><span id="L-3991"><a href="#L-3991"><span class="linenos">3991</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3992"><a href="#L-3992"><span class="linenos">3992</span></a> +</span><span id="L-3993"><a href="#L-3993"><span class="linenos">3993</span></a> <span class="k">def</span> <span class="nf">_match_pair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type_a</span><span class="p">,</span> <span class="n">token_type_b</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-3994"><a href="#L-3994"><span class="linenos">3994</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> +</span><span id="L-3995"><a href="#L-3995"><span class="linenos">3995</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-3996"><a href="#L-3996"><span class="linenos">3996</span></a> +</span><span id="L-3997"><a href="#L-3997"><span class="linenos">3997</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_a</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_b</span><span class="p">:</span> +</span><span id="L-3998"><a href="#L-3998"><span class="linenos">3998</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="L-3999"><a href="#L-3999"><span class="linenos">3999</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> +</span><span id="L-4000"><a href="#L-4000"><span class="linenos">4000</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-4001"><a href="#L-4001"><span class="linenos">4001</span></a> +</span><span id="L-4002"><a href="#L-4002"><span class="linenos">4002</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="L-4003"><a href="#L-4003"><span class="linenos">4003</span></a> +</span><span id="L-4004"><a href="#L-4004"><span class="linenos">4004</span></a> <span class="k">def</span> <span class="nf">_match_l_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="L-4005"><a href="#L-4005"><span class="linenos">4005</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="L-4006"><a href="#L-4006"><span class="linenos">4006</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting ("</span><span class="p">)</span> +</span><span id="L-4007"><a href="#L-4007"><span class="linenos">4007</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="L-4008"><a href="#L-4008"><span class="linenos">4008</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-4009"><a href="#L-4009"><span class="linenos">4009</span></a> +</span><span id="L-4010"><a href="#L-4010"><span class="linenos">4010</span></a> <span class="k">def</span> <span class="nf">_match_r_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="L-4011"><a href="#L-4011"><span class="linenos">4011</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> +</span><span id="L-4012"><a href="#L-4012"><span class="linenos">4012</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">)</span> +</span><span id="L-4013"><a href="#L-4013"><span class="linenos">4013</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="L-4014"><a href="#L-4014"><span class="linenos">4014</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="L-4015"><a href="#L-4015"><span class="linenos">4015</span></a> +</span><span id="L-4016"><a href="#L-4016"><span class="linenos">4016</span></a> <span class="k">def</span> <span class="nf">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-4017"><a href="#L-4017"><span class="linenos">4017</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> +</span><span id="L-4018"><a href="#L-4018"><span class="linenos">4018</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="L-4019"><a href="#L-4019"><span class="linenos">4019</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-4020"><a href="#L-4020"><span class="linenos">4020</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-4021"><a href="#L-4021"><span class="linenos">4021</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="L-4022"><a href="#L-4022"><span class="linenos">4022</span></a> +</span><span id="L-4023"><a href="#L-4023"><span class="linenos">4023</span></a> <span class="k">def</span> <span class="nf">_match_text_seq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="L-4024"><a href="#L-4024"><span class="linenos">4024</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><span id="L-4025"><a href="#L-4025"><span class="linenos">4025</span></a> <span class="k">for</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> +</span><span id="L-4026"><a href="#L-4026"><span class="linenos">4026</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="n">text</span><span class="p">:</span> +</span><span id="L-4027"><a href="#L-4027"><span class="linenos">4027</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-4028"><a href="#L-4028"><span class="linenos">4028</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-4029"><a href="#L-4029"><span class="linenos">4029</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-4030"><a href="#L-4030"><span class="linenos">4030</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="L-4031"><a href="#L-4031"><span class="linenos">4031</span></a> +</span><span id="L-4032"><a href="#L-4032"><span class="linenos">4032</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="L-4033"><a href="#L-4033"><span class="linenos">4033</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-4034"><a href="#L-4034"><span class="linenos">4034</span></a> +</span><span id="L-4035"><a href="#L-4035"><span class="linenos">4035</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-4036"><a href="#L-4036"><span class="linenos">4036</span></a> +</span><span id="L-4037"><a href="#L-4037"><span class="linenos">4037</span></a> <span class="k">def</span> <span class="nf">_replace_columns_with_dots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">):</span> +</span><span id="L-4038"><a href="#L-4038"><span class="linenos">4038</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">):</span> +</span><span id="L-4039"><a href="#L-4039"><span class="linenos">4039</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> +</span><span id="L-4040"><a href="#L-4040"><span class="linenos">4040</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> +</span><span id="L-4041"><a href="#L-4041"><span class="linenos">4041</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> +</span><span id="L-4042"><a href="#L-4042"><span class="linenos">4042</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">this</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">"table"</span><span class="p">)</span> +</span><span id="L-4043"><a href="#L-4043"><span class="linenos">4043</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="L-4044"><a href="#L-4044"><span class="linenos">4044</span></a> <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">Dot</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">expression</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="L-4045"><a href="#L-4045"><span class="linenos">4045</span></a> <span class="k">if</span> <span class="n">table</span> +</span><span id="L-4046"><a href="#L-4046"><span class="linenos">4046</span></a> <span class="k">else</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-4047"><a href="#L-4047"><span class="linenos">4047</span></a> <span class="p">)</span> +</span><span id="L-4048"><a href="#L-4048"><span class="linenos">4048</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> +</span><span id="L-4049"><a href="#L-4049"><span class="linenos">4049</span></a> <span class="n">this</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="L-4050"><a href="#L-4050"><span class="linenos">4050</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="L-4051"><a href="#L-4051"><span class="linenos">4051</span></a> +</span><span id="L-4052"><a href="#L-4052"><span class="linenos">4052</span></a> <span class="k">def</span> <span class="nf">_replace_lambda</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">lambda_variables</span><span class="p">):</span> +</span><span id="L-4053"><a href="#L-4053"><span class="linenos">4053</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> +</span><span id="L-4054"><a href="#L-4054"><span class="linenos">4054</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">lambda_variables</span><span class="p">:</span> +</span><span id="L-4055"><a href="#L-4055"><span class="linenos">4055</span></a> <span class="k">return</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span> +</span><span id="L-4056"><a href="#L-4056"><span class="linenos">4056</span></a> <span class="k">return</span> <span class="n">node</span> </span></pre></div> @@ -4138,3937 +4210,4012 @@ </div> <a class="headerlink" href="#Parser"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser-55"><a href="#Parser-55"><span class="linenos"> 55</span></a><span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Parser</span><span class="p">):</span> -</span><span id="Parser-56"><a href="#Parser-56"><span class="linenos"> 56</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-57"><a href="#Parser-57"><span class="linenos"> 57</span></a><span class="sd"> Parser consumes a list of tokens produced by the `sqlglot.tokens.Tokenizer` and produces</span> -</span><span id="Parser-58"><a href="#Parser-58"><span class="linenos"> 58</span></a><span class="sd"> a parsed syntax tree.</span> -</span><span id="Parser-59"><a href="#Parser-59"><span class="linenos"> 59</span></a> -</span><span id="Parser-60"><a href="#Parser-60"><span class="linenos"> 60</span></a><span class="sd"> Args:</span> -</span><span id="Parser-61"><a href="#Parser-61"><span class="linenos"> 61</span></a><span class="sd"> error_level: the desired error level.</span> -</span><span id="Parser-62"><a href="#Parser-62"><span class="linenos"> 62</span></a><span class="sd"> Default: ErrorLevel.RAISE</span> -</span><span id="Parser-63"><a href="#Parser-63"><span class="linenos"> 63</span></a><span class="sd"> error_message_context: determines the amount of context to capture from a</span> -</span><span id="Parser-64"><a href="#Parser-64"><span class="linenos"> 64</span></a><span class="sd"> query string when displaying the error message (in number of characters).</span> -</span><span id="Parser-65"><a href="#Parser-65"><span class="linenos"> 65</span></a><span class="sd"> Default: 50.</span> -</span><span id="Parser-66"><a href="#Parser-66"><span class="linenos"> 66</span></a><span class="sd"> index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.</span> -</span><span id="Parser-67"><a href="#Parser-67"><span class="linenos"> 67</span></a><span class="sd"> Default: 0</span> -</span><span id="Parser-68"><a href="#Parser-68"><span class="linenos"> 68</span></a><span class="sd"> alias_post_tablesample: If the table alias comes after tablesample.</span> -</span><span id="Parser-69"><a href="#Parser-69"><span class="linenos"> 69</span></a><span class="sd"> Default: False</span> -</span><span id="Parser-70"><a href="#Parser-70"><span class="linenos"> 70</span></a><span class="sd"> max_errors: Maximum number of error messages to include in a raised ParseError.</span> -</span><span id="Parser-71"><a href="#Parser-71"><span class="linenos"> 71</span></a><span class="sd"> This is only relevant if error_level is ErrorLevel.RAISE.</span> -</span><span id="Parser-72"><a href="#Parser-72"><span class="linenos"> 72</span></a><span class="sd"> Default: 3</span> -</span><span id="Parser-73"><a href="#Parser-73"><span class="linenos"> 73</span></a><span class="sd"> null_ordering: Indicates the default null ordering method to use if not explicitly set.</span> -</span><span id="Parser-74"><a href="#Parser-74"><span class="linenos"> 74</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> -</span><span id="Parser-75"><a href="#Parser-75"><span class="linenos"> 75</span></a><span class="sd"> Default: "nulls_are_small"</span> -</span><span id="Parser-76"><a href="#Parser-76"><span class="linenos"> 76</span></a><span class="sd"> """</span> -</span><span id="Parser-77"><a href="#Parser-77"><span class="linenos"> 77</span></a> -</span><span id="Parser-78"><a href="#Parser-78"><span class="linenos"> 78</span></a> <span class="n">FUNCTIONS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-79"><a href="#Parser-79"><span class="linenos"> 79</span></a> <span class="o">**</span><span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">f</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">f</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()},</span> -</span><span id="Parser-80"><a href="#Parser-80"><span class="linenos"> 80</span></a> <span class="s2">"DATE_TO_DATE_STR"</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">Cast</span><span class="p">(</span> -</span><span id="Parser-81"><a href="#Parser-81"><span class="linenos"> 81</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="Parser-82"><a href="#Parser-82"><span class="linenos"> 82</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> -</span><span id="Parser-83"><a href="#Parser-83"><span class="linenos"> 83</span></a> <span class="p">),</span> -</span><span id="Parser-84"><a href="#Parser-84"><span class="linenos"> 84</span></a> <span class="s2">"TIME_TO_TIME_STR"</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">Cast</span><span class="p">(</span> -</span><span id="Parser-85"><a href="#Parser-85"><span class="linenos"> 85</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="Parser-86"><a href="#Parser-86"><span class="linenos"> 86</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> -</span><span id="Parser-87"><a href="#Parser-87"><span class="linenos"> 87</span></a> <span class="p">),</span> -</span><span id="Parser-88"><a href="#Parser-88"><span class="linenos"> 88</span></a> <span class="s2">"TS_OR_DS_TO_DATE_STR"</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">Substring</span><span class="p">(</span> -</span><span id="Parser-89"><a href="#Parser-89"><span class="linenos"> 89</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> -</span><span id="Parser-90"><a href="#Parser-90"><span class="linenos"> 90</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="Parser-91"><a href="#Parser-91"><span class="linenos"> 91</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> -</span><span id="Parser-92"><a href="#Parser-92"><span class="linenos"> 92</span></a> <span class="p">),</span> -</span><span id="Parser-93"><a href="#Parser-93"><span class="linenos"> 93</span></a> <span class="n">start</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> -</span><span id="Parser-94"><a href="#Parser-94"><span class="linenos"> 94</span></a> <span class="n">length</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span> -</span><span id="Parser-95"><a href="#Parser-95"><span class="linenos"> 95</span></a> <span class="p">),</span> -</span><span id="Parser-96"><a href="#Parser-96"><span class="linenos"> 96</span></a> <span class="s2">"VAR_MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> -</span><span id="Parser-97"><a href="#Parser-97"><span class="linenos"> 97</span></a> <span class="s2">"IFNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> -</span><span id="Parser-98"><a href="#Parser-98"><span class="linenos"> 98</span></a> <span class="p">}</span> -</span><span id="Parser-99"><a href="#Parser-99"><span class="linenos"> 99</span></a> -</span><span id="Parser-100"><a href="#Parser-100"><span class="linenos"> 100</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-101"><a href="#Parser-101"><span class="linenos"> 101</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> -</span><span id="Parser-102"><a href="#Parser-102"><span class="linenos"> 102</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> -</span><span id="Parser-103"><a href="#Parser-103"><span class="linenos"> 103</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> -</span><span id="Parser-104"><a href="#Parser-104"><span class="linenos"> 104</span></a> <span class="p">}</span> -</span><span id="Parser-105"><a href="#Parser-105"><span class="linenos"> 105</span></a> -</span><span id="Parser-106"><a href="#Parser-106"><span class="linenos"> 106</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-107"><a href="#Parser-107"><span class="linenos"> 107</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="Parser-108"><a href="#Parser-108"><span class="linenos"> 108</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> -</span><span id="Parser-109"><a href="#Parser-109"><span class="linenos"> 109</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="Parser-110"><a href="#Parser-110"><span class="linenos"> 110</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> -</span><span id="Parser-111"><a href="#Parser-111"><span class="linenos"> 111</span></a> <span class="p">}</span> -</span><span id="Parser-112"><a href="#Parser-112"><span class="linenos"> 112</span></a> -</span><span id="Parser-113"><a href="#Parser-113"><span class="linenos"> 113</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-114"><a href="#Parser-114"><span class="linenos"> 114</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="Parser-115"><a href="#Parser-115"><span class="linenos"> 115</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="Parser-116"><a href="#Parser-116"><span class="linenos"> 116</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="Parser-117"><a href="#Parser-117"><span class="linenos"> 117</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="Parser-118"><a href="#Parser-118"><span class="linenos"> 118</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="Parser-119"><a href="#Parser-119"><span class="linenos"> 119</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="Parser-120"><a href="#Parser-120"><span class="linenos"> 120</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="Parser-121"><a href="#Parser-121"><span class="linenos"> 121</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="Parser-122"><a href="#Parser-122"><span class="linenos"> 122</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="Parser-123"><a href="#Parser-123"><span class="linenos"> 123</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="Parser-124"><a href="#Parser-124"><span class="linenos"> 124</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="Parser-125"><a href="#Parser-125"><span class="linenos"> 125</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="Parser-126"><a href="#Parser-126"><span class="linenos"> 126</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="Parser-127"><a href="#Parser-127"><span class="linenos"> 127</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">,</span> -</span><span id="Parser-128"><a href="#Parser-128"><span class="linenos"> 128</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">,</span> -</span><span id="Parser-129"><a href="#Parser-129"><span class="linenos"> 129</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">,</span> -</span><span id="Parser-130"><a href="#Parser-130"><span class="linenos"> 130</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">,</span> -</span><span id="Parser-131"><a href="#Parser-131"><span class="linenos"> 131</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> -</span><span id="Parser-132"><a href="#Parser-132"><span class="linenos"> 132</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span> -</span><span id="Parser-133"><a href="#Parser-133"><span class="linenos"> 133</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> -</span><span id="Parser-134"><a href="#Parser-134"><span class="linenos"> 134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSONB</span><span class="p">,</span> -</span><span id="Parser-135"><a href="#Parser-135"><span class="linenos"> 135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> -</span><span id="Parser-136"><a href="#Parser-136"><span class="linenos"> 136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> -</span><span id="Parser-137"><a href="#Parser-137"><span class="linenos"> 137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Parser-138"><a href="#Parser-138"><span class="linenos"> 138</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Parser-139"><a href="#Parser-139"><span class="linenos"> 139</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="Parser-140"><a href="#Parser-140"><span class="linenos"> 140</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="Parser-141"><a href="#Parser-141"><span class="linenos"> 141</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="Parser-142"><a href="#Parser-142"><span class="linenos"> 142</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="Parser-143"><a href="#Parser-143"><span class="linenos"> 143</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UUID</span><span class="p">,</span> -</span><span id="Parser-144"><a href="#Parser-144"><span class="linenos"> 144</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> -</span><span id="Parser-145"><a href="#Parser-145"><span class="linenos"> 145</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> -</span><span id="Parser-146"><a href="#Parser-146"><span class="linenos"> 146</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span> -</span><span id="Parser-147"><a href="#Parser-147"><span class="linenos"> 147</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HSTORE</span><span class="p">,</span> -</span><span id="Parser-148"><a href="#Parser-148"><span class="linenos"> 148</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">,</span> -</span><span id="Parser-149"><a href="#Parser-149"><span class="linenos"> 149</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span> -</span><span id="Parser-150"><a href="#Parser-150"><span class="linenos"> 150</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERIAL</span><span class="p">,</span> -</span><span id="Parser-151"><a href="#Parser-151"><span class="linenos"> 151</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLSERIAL</span><span class="p">,</span> -</span><span id="Parser-152"><a href="#Parser-152"><span class="linenos"> 152</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGSERIAL</span><span class="p">,</span> -</span><span id="Parser-153"><a href="#Parser-153"><span class="linenos"> 153</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> -</span><span id="Parser-154"><a href="#Parser-154"><span class="linenos"> 154</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> -</span><span id="Parser-155"><a href="#Parser-155"><span class="linenos"> 155</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> -</span><span id="Parser-156"><a href="#Parser-156"><span class="linenos"> 156</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> -</span><span id="Parser-157"><a href="#Parser-157"><span class="linenos"> 157</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> -</span><span id="Parser-158"><a href="#Parser-158"><span class="linenos"> 158</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> -</span><span id="Parser-159"><a href="#Parser-159"><span class="linenos"> 159</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="Parser-160"><a href="#Parser-160"><span class="linenos"> 160</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> -</span><span id="Parser-161"><a href="#Parser-161"><span class="linenos"> 161</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> -</span><span id="Parser-162"><a href="#Parser-162"><span class="linenos"> 162</span></a> <span class="o">*</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> -</span><span id="Parser-163"><a href="#Parser-163"><span class="linenos"> 163</span></a> <span class="p">}</span> -</span><span id="Parser-164"><a href="#Parser-164"><span class="linenos"> 164</span></a> -</span><span id="Parser-165"><a href="#Parser-165"><span class="linenos"> 165</span></a> <span class="n">SUBQUERY_PREDICATES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-166"><a href="#Parser-166"><span class="linenos"> 166</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> -</span><span id="Parser-167"><a href="#Parser-167"><span class="linenos"> 167</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALL</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">All</span><span class="p">,</span> -</span><span id="Parser-168"><a href="#Parser-168"><span class="linenos"> 168</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Exists</span><span class="p">,</span> -</span><span id="Parser-169"><a href="#Parser-169"><span class="linenos"> 169</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> -</span><span id="Parser-170"><a href="#Parser-170"><span class="linenos"> 170</span></a> <span class="p">}</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser-52"><a href="#Parser-52"><span class="linenos"> 52</span></a><span class="k">class</span> <span class="nc">Parser</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">_Parser</span><span class="p">):</span> +</span><span id="Parser-53"><a href="#Parser-53"><span class="linenos"> 53</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-54"><a href="#Parser-54"><span class="linenos"> 54</span></a><span class="sd"> Parser consumes a list of tokens produced by the `sqlglot.tokens.Tokenizer` and produces</span> +</span><span id="Parser-55"><a href="#Parser-55"><span class="linenos"> 55</span></a><span class="sd"> a parsed syntax tree.</span> +</span><span id="Parser-56"><a href="#Parser-56"><span class="linenos"> 56</span></a> +</span><span id="Parser-57"><a href="#Parser-57"><span class="linenos"> 57</span></a><span class="sd"> Args:</span> +</span><span id="Parser-58"><a href="#Parser-58"><span class="linenos"> 58</span></a><span class="sd"> error_level: the desired error level.</span> +</span><span id="Parser-59"><a href="#Parser-59"><span class="linenos"> 59</span></a><span class="sd"> Default: ErrorLevel.RAISE</span> +</span><span id="Parser-60"><a href="#Parser-60"><span class="linenos"> 60</span></a><span class="sd"> error_message_context: determines the amount of context to capture from a</span> +</span><span id="Parser-61"><a href="#Parser-61"><span class="linenos"> 61</span></a><span class="sd"> query string when displaying the error message (in number of characters).</span> +</span><span id="Parser-62"><a href="#Parser-62"><span class="linenos"> 62</span></a><span class="sd"> Default: 50.</span> +</span><span id="Parser-63"><a href="#Parser-63"><span class="linenos"> 63</span></a><span class="sd"> index_offset: Index offset for arrays eg ARRAY[0] vs ARRAY[1] as the head of a list.</span> +</span><span id="Parser-64"><a href="#Parser-64"><span class="linenos"> 64</span></a><span class="sd"> Default: 0</span> +</span><span id="Parser-65"><a href="#Parser-65"><span class="linenos"> 65</span></a><span class="sd"> alias_post_tablesample: If the table alias comes after tablesample.</span> +</span><span id="Parser-66"><a href="#Parser-66"><span class="linenos"> 66</span></a><span class="sd"> Default: False</span> +</span><span id="Parser-67"><a href="#Parser-67"><span class="linenos"> 67</span></a><span class="sd"> max_errors: Maximum number of error messages to include in a raised ParseError.</span> +</span><span id="Parser-68"><a href="#Parser-68"><span class="linenos"> 68</span></a><span class="sd"> This is only relevant if error_level is ErrorLevel.RAISE.</span> +</span><span id="Parser-69"><a href="#Parser-69"><span class="linenos"> 69</span></a><span class="sd"> Default: 3</span> +</span><span id="Parser-70"><a href="#Parser-70"><span class="linenos"> 70</span></a><span class="sd"> null_ordering: Indicates the default null ordering method to use if not explicitly set.</span> +</span><span id="Parser-71"><a href="#Parser-71"><span class="linenos"> 71</span></a><span class="sd"> Options are "nulls_are_small", "nulls_are_large", "nulls_are_last".</span> +</span><span id="Parser-72"><a href="#Parser-72"><span class="linenos"> 72</span></a><span class="sd"> Default: "nulls_are_small"</span> +</span><span id="Parser-73"><a href="#Parser-73"><span class="linenos"> 73</span></a><span class="sd"> """</span> +</span><span id="Parser-74"><a href="#Parser-74"><span class="linenos"> 74</span></a> +</span><span id="Parser-75"><a href="#Parser-75"><span class="linenos"> 75</span></a> <span class="n">FUNCTIONS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-76"><a href="#Parser-76"><span class="linenos"> 76</span></a> <span class="o">**</span><span class="p">{</span><span class="n">name</span><span class="p">:</span> <span class="n">f</span><span class="o">.</span><span class="n">from_arg_list</span> <span class="k">for</span> <span class="n">f</span> <span class="ow">in</span> <span class="n">exp</span><span class="o">.</span><span class="n">ALL_FUNCTIONS</span> <span class="k">for</span> <span class="n">name</span> <span class="ow">in</span> <span class="n">f</span><span class="o">.</span><span class="n">sql_names</span><span class="p">()},</span> +</span><span id="Parser-77"><a href="#Parser-77"><span class="linenos"> 77</span></a> <span class="s2">"DATE_TO_DATE_STR"</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">Cast</span><span class="p">(</span> +</span><span id="Parser-78"><a href="#Parser-78"><span class="linenos"> 78</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="Parser-79"><a href="#Parser-79"><span class="linenos"> 79</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> +</span><span id="Parser-80"><a href="#Parser-80"><span class="linenos"> 80</span></a> <span class="p">),</span> +</span><span id="Parser-81"><a href="#Parser-81"><span class="linenos"> 81</span></a> <span class="s2">"TIME_TO_TIME_STR"</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">Cast</span><span class="p">(</span> +</span><span id="Parser-82"><a href="#Parser-82"><span class="linenos"> 82</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="Parser-83"><a href="#Parser-83"><span class="linenos"> 83</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> +</span><span id="Parser-84"><a href="#Parser-84"><span class="linenos"> 84</span></a> <span class="p">),</span> +</span><span id="Parser-85"><a href="#Parser-85"><span class="linenos"> 85</span></a> <span class="s2">"TS_OR_DS_TO_DATE_STR"</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">Substring</span><span class="p">(</span> +</span><span id="Parser-86"><a href="#Parser-86"><span class="linenos"> 86</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">(</span> +</span><span id="Parser-87"><a href="#Parser-87"><span class="linenos"> 87</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="Parser-88"><a href="#Parser-88"><span class="linenos"> 88</span></a> <span class="n">to</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TEXT</span><span class="p">),</span> +</span><span id="Parser-89"><a href="#Parser-89"><span class="linenos"> 89</span></a> <span class="p">),</span> +</span><span id="Parser-90"><a href="#Parser-90"><span class="linenos"> 90</span></a> <span class="n">start</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">1</span><span class="p">),</span> +</span><span id="Parser-91"><a href="#Parser-91"><span class="linenos"> 91</span></a> <span class="n">length</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="mi">10</span><span class="p">),</span> +</span><span id="Parser-92"><a href="#Parser-92"><span class="linenos"> 92</span></a> <span class="p">),</span> +</span><span id="Parser-93"><a href="#Parser-93"><span class="linenos"> 93</span></a> <span class="s2">"VAR_MAP"</span><span class="p">:</span> <span class="n">parse_var_map</span><span class="p">,</span> +</span><span id="Parser-94"><a href="#Parser-94"><span class="linenos"> 94</span></a> <span class="s2">"IFNULL"</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Coalesce</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">,</span> +</span><span id="Parser-95"><a href="#Parser-95"><span class="linenos"> 95</span></a> <span class="p">}</span> +</span><span id="Parser-96"><a href="#Parser-96"><span class="linenos"> 96</span></a> +</span><span id="Parser-97"><a href="#Parser-97"><span class="linenos"> 97</span></a> <span class="n">NO_PAREN_FUNCTIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-98"><a href="#Parser-98"><span class="linenos"> 98</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> +</span><span id="Parser-99"><a href="#Parser-99"><span class="linenos"> 99</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentDate</span><span class="p">,</span> +</span><span id="Parser-100"><a href="#Parser-100"><span class="linenos"> 100</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTime</span><span class="p">,</span> +</span><span id="Parser-101"><a href="#Parser-101"><span class="linenos"> 101</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">CurrentTimestamp</span><span class="p">,</span> +</span><span id="Parser-102"><a href="#Parser-102"><span class="linenos"> 102</span></a> <span class="p">}</span> +</span><span id="Parser-103"><a href="#Parser-103"><span class="linenos"> 103</span></a> +</span><span id="Parser-104"><a href="#Parser-104"><span class="linenos"> 104</span></a> <span class="n">NESTED_TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-105"><a href="#Parser-105"><span class="linenos"> 105</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="Parser-106"><a href="#Parser-106"><span class="linenos"> 106</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> +</span><span id="Parser-107"><a href="#Parser-107"><span class="linenos"> 107</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="Parser-108"><a href="#Parser-108"><span class="linenos"> 108</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> +</span><span id="Parser-109"><a href="#Parser-109"><span class="linenos"> 109</span></a> <span class="p">}</span> +</span><span id="Parser-110"><a href="#Parser-110"><span class="linenos"> 110</span></a> +</span><span id="Parser-111"><a href="#Parser-111"><span class="linenos"> 111</span></a> <span class="n">TYPE_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-112"><a href="#Parser-112"><span class="linenos"> 112</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="Parser-113"><a href="#Parser-113"><span class="linenos"> 113</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="Parser-114"><a href="#Parser-114"><span class="linenos"> 114</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="Parser-115"><a href="#Parser-115"><span class="linenos"> 115</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="Parser-116"><a href="#Parser-116"><span class="linenos"> 116</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="Parser-117"><a href="#Parser-117"><span class="linenos"> 117</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="Parser-118"><a href="#Parser-118"><span class="linenos"> 118</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="Parser-119"><a href="#Parser-119"><span class="linenos"> 119</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="Parser-120"><a href="#Parser-120"><span class="linenos"> 120</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="Parser-121"><a href="#Parser-121"><span class="linenos"> 121</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="Parser-122"><a href="#Parser-122"><span class="linenos"> 122</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="Parser-123"><a href="#Parser-123"><span class="linenos"> 123</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="Parser-124"><a href="#Parser-124"><span class="linenos"> 124</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="Parser-125"><a href="#Parser-125"><span class="linenos"> 125</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMTEXT</span><span class="p">,</span> +</span><span id="Parser-126"><a href="#Parser-126"><span class="linenos"> 126</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGTEXT</span><span class="p">,</span> +</span><span id="Parser-127"><a href="#Parser-127"><span class="linenos"> 127</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MEDIUMBLOB</span><span class="p">,</span> +</span><span id="Parser-128"><a href="#Parser-128"><span class="linenos"> 128</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LONGBLOB</span><span class="p">,</span> +</span><span id="Parser-129"><a href="#Parser-129"><span class="linenos"> 129</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> +</span><span id="Parser-130"><a href="#Parser-130"><span class="linenos"> 130</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARBINARY</span><span class="p">,</span> +</span><span id="Parser-131"><a href="#Parser-131"><span class="linenos"> 131</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> +</span><span id="Parser-132"><a href="#Parser-132"><span class="linenos"> 132</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSONB</span><span class="p">,</span> +</span><span id="Parser-133"><a href="#Parser-133"><span class="linenos"> 133</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> +</span><span id="Parser-134"><a href="#Parser-134"><span class="linenos"> 134</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> +</span><span id="Parser-135"><a href="#Parser-135"><span class="linenos"> 135</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Parser-136"><a href="#Parser-136"><span class="linenos"> 136</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Parser-137"><a href="#Parser-137"><span class="linenos"> 137</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="Parser-138"><a href="#Parser-138"><span class="linenos"> 138</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="Parser-139"><a href="#Parser-139"><span class="linenos"> 139</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="Parser-140"><a href="#Parser-140"><span class="linenos"> 140</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="Parser-141"><a href="#Parser-141"><span class="linenos"> 141</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UUID</span><span class="p">,</span> +</span><span id="Parser-142"><a href="#Parser-142"><span class="linenos"> 142</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOGRAPHY</span><span class="p">,</span> +</span><span id="Parser-143"><a href="#Parser-143"><span class="linenos"> 143</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GEOMETRY</span><span class="p">,</span> +</span><span id="Parser-144"><a href="#Parser-144"><span class="linenos"> 144</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HLLSKETCH</span><span class="p">,</span> +</span><span id="Parser-145"><a href="#Parser-145"><span class="linenos"> 145</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HSTORE</span><span class="p">,</span> +</span><span id="Parser-146"><a href="#Parser-146"><span class="linenos"> 146</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">,</span> +</span><span id="Parser-147"><a href="#Parser-147"><span class="linenos"> 147</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SUPER</span><span class="p">,</span> +</span><span id="Parser-148"><a href="#Parser-148"><span class="linenos"> 148</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SERIAL</span><span class="p">,</span> +</span><span id="Parser-149"><a href="#Parser-149"><span class="linenos"> 149</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLSERIAL</span><span class="p">,</span> +</span><span id="Parser-150"><a href="#Parser-150"><span class="linenos"> 150</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGSERIAL</span><span class="p">,</span> +</span><span id="Parser-151"><a href="#Parser-151"><span class="linenos"> 151</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">XML</span><span class="p">,</span> +</span><span id="Parser-152"><a href="#Parser-152"><span class="linenos"> 152</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUEIDENTIFIER</span><span class="p">,</span> +</span><span id="Parser-153"><a href="#Parser-153"><span class="linenos"> 153</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MONEY</span><span class="p">,</span> +</span><span id="Parser-154"><a href="#Parser-154"><span class="linenos"> 154</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLMONEY</span><span class="p">,</span> +</span><span id="Parser-155"><a href="#Parser-155"><span class="linenos"> 155</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWVERSION</span><span class="p">,</span> +</span><span id="Parser-156"><a href="#Parser-156"><span class="linenos"> 156</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IMAGE</span><span class="p">,</span> +</span><span id="Parser-157"><a href="#Parser-157"><span class="linenos"> 157</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="Parser-158"><a href="#Parser-158"><span class="linenos"> 158</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> +</span><span id="Parser-159"><a href="#Parser-159"><span class="linenos"> 159</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> +</span><span id="Parser-160"><a href="#Parser-160"><span class="linenos"> 160</span></a> <span class="o">*</span><span class="n">NESTED_TYPE_TOKENS</span><span class="p">,</span> +</span><span id="Parser-161"><a href="#Parser-161"><span class="linenos"> 161</span></a> <span class="p">}</span> +</span><span id="Parser-162"><a href="#Parser-162"><span class="linenos"> 162</span></a> +</span><span id="Parser-163"><a href="#Parser-163"><span class="linenos"> 163</span></a> <span class="n">SUBQUERY_PREDICATES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-164"><a href="#Parser-164"><span class="linenos"> 164</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> +</span><span id="Parser-165"><a href="#Parser-165"><span class="linenos"> 165</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALL</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">All</span><span class="p">,</span> +</span><span id="Parser-166"><a href="#Parser-166"><span class="linenos"> 166</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Exists</span><span class="p">,</span> +</span><span id="Parser-167"><a href="#Parser-167"><span class="linenos"> 167</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Any</span><span class="p">,</span> +</span><span id="Parser-168"><a href="#Parser-168"><span class="linenos"> 168</span></a> <span class="p">}</span> +</span><span id="Parser-169"><a href="#Parser-169"><span class="linenos"> 169</span></a> +</span><span id="Parser-170"><a href="#Parser-170"><span class="linenos"> 170</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</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">values</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">}</span> </span><span id="Parser-171"><a href="#Parser-171"><span class="linenos"> 171</span></a> -</span><span id="Parser-172"><a href="#Parser-172"><span class="linenos"> 172</span></a> <span class="n">RESERVED_KEYWORDS</span> <span class="o">=</span> <span class="p">{</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">values</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">}</span> -</span><span id="Parser-173"><a href="#Parser-173"><span class="linenos"> 173</span></a> -</span><span id="Parser-174"><a href="#Parser-174"><span class="linenos"> 174</span></a> <span class="n">DB_CREATABLES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-175"><a href="#Parser-175"><span class="linenos"> 175</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> -</span><span id="Parser-176"><a href="#Parser-176"><span class="linenos"> 176</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> -</span><span id="Parser-177"><a href="#Parser-177"><span class="linenos"> 177</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="Parser-178"><a href="#Parser-178"><span class="linenos"> 178</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> -</span><span id="Parser-179"><a href="#Parser-179"><span class="linenos"> 179</span></a> <span class="p">}</span> -</span><span id="Parser-180"><a href="#Parser-180"><span class="linenos"> 180</span></a> -</span><span id="Parser-181"><a href="#Parser-181"><span class="linenos"> 181</span></a> <span class="n">CREATABLES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-182"><a href="#Parser-182"><span class="linenos"> 182</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> -</span><span id="Parser-183"><a href="#Parser-183"><span class="linenos"> 183</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> -</span><span id="Parser-184"><a href="#Parser-184"><span class="linenos"> 184</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> -</span><span id="Parser-185"><a href="#Parser-185"><span class="linenos"> 185</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="Parser-186"><a href="#Parser-186"><span class="linenos"> 186</span></a> <span class="o">*</span><span class="n">DB_CREATABLES</span><span class="p">,</span> -</span><span id="Parser-187"><a href="#Parser-187"><span class="linenos"> 187</span></a> <span class="p">}</span> -</span><span id="Parser-188"><a href="#Parser-188"><span class="linenos"> 188</span></a> -</span><span id="Parser-189"><a href="#Parser-189"><span class="linenos"> 189</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-190"><a href="#Parser-190"><span class="linenos"> 190</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> -</span><span id="Parser-191"><a href="#Parser-191"><span class="linenos"> 191</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> -</span><span id="Parser-192"><a href="#Parser-192"><span class="linenos"> 192</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> -</span><span id="Parser-193"><a href="#Parser-193"><span class="linenos"> 193</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">,</span> -</span><span id="Parser-194"><a href="#Parser-194"><span class="linenos"> 194</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> -</span><span id="Parser-195"><a href="#Parser-195"><span class="linenos"> 195</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">,</span> -</span><span id="Parser-196"><a href="#Parser-196"><span class="linenos"> 196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BUCKET</span><span class="p">,</span> -</span><span id="Parser-197"><a href="#Parser-197"><span class="linenos"> 197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</span><span class="p">,</span> -</span><span id="Parser-198"><a href="#Parser-198"><span class="linenos"> 198</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> -</span><span id="Parser-199"><a href="#Parser-199"><span class="linenos"> 199</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">,</span> -</span><span id="Parser-200"><a href="#Parser-200"><span class="linenos"> 200</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> -</span><span id="Parser-201"><a href="#Parser-201"><span class="linenos"> 201</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> -</span><span id="Parser-202"><a href="#Parser-202"><span class="linenos"> 202</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</span><span class="p">,</span> -</span><span id="Parser-203"><a href="#Parser-203"><span class="linenos"> 203</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> -</span><span id="Parser-204"><a href="#Parser-204"><span class="linenos"> 204</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> -</span><span id="Parser-205"><a href="#Parser-205"><span class="linenos"> 205</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="Parser-206"><a href="#Parser-206"><span class="linenos"> 206</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> -</span><span id="Parser-207"><a href="#Parser-207"><span class="linenos"> 207</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> -</span><span id="Parser-208"><a href="#Parser-208"><span class="linenos"> 208</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> -</span><span id="Parser-209"><a href="#Parser-209"><span class="linenos"> 209</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> -</span><span id="Parser-210"><a href="#Parser-210"><span class="linenos"> 210</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> -</span><span id="Parser-211"><a href="#Parser-211"><span class="linenos"> 211</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> -</span><span id="Parser-212"><a href="#Parser-212"><span class="linenos"> 212</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> -</span><span id="Parser-213"><a href="#Parser-213"><span class="linenos"> 213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> -</span><span id="Parser-214"><a href="#Parser-214"><span class="linenos"> 214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> -</span><span id="Parser-215"><a href="#Parser-215"><span class="linenos"> 215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> -</span><span id="Parser-216"><a href="#Parser-216"><span class="linenos"> 216</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> -</span><span id="Parser-217"><a href="#Parser-217"><span class="linenos"> 217</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> -</span><span id="Parser-218"><a href="#Parser-218"><span class="linenos"> 218</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> -</span><span id="Parser-219"><a href="#Parser-219"><span class="linenos"> 219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> -</span><span id="Parser-220"><a href="#Parser-220"><span class="linenos"> 220</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> -</span><span id="Parser-221"><a href="#Parser-221"><span class="linenos"> 221</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> -</span><span id="Parser-222"><a href="#Parser-222"><span class="linenos"> 222</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> -</span><span id="Parser-223"><a href="#Parser-223"><span class="linenos"> 223</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="Parser-224"><a href="#Parser-224"><span class="linenos"> 224</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> -</span><span id="Parser-225"><a href="#Parser-225"><span class="linenos"> 225</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> -</span><span id="Parser-226"><a href="#Parser-226"><span class="linenos"> 226</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> -</span><span id="Parser-227"><a href="#Parser-227"><span class="linenos"> 227</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> -</span><span id="Parser-228"><a href="#Parser-228"><span class="linenos"> 228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> -</span><span id="Parser-229"><a href="#Parser-229"><span class="linenos"> 229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="Parser-230"><a href="#Parser-230"><span class="linenos"> 230</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> -</span><span id="Parser-231"><a href="#Parser-231"><span class="linenos"> 231</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> -</span><span id="Parser-232"><a href="#Parser-232"><span class="linenos"> 232</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> -</span><span id="Parser-233"><a href="#Parser-233"><span class="linenos"> 233</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> -</span><span id="Parser-234"><a href="#Parser-234"><span class="linenos"> 234</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> -</span><span id="Parser-235"><a href="#Parser-235"><span class="linenos"> 235</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> -</span><span id="Parser-236"><a href="#Parser-236"><span class="linenos"> 236</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> -</span><span id="Parser-237"><a href="#Parser-237"><span class="linenos"> 237</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> -</span><span id="Parser-238"><a href="#Parser-238"><span class="linenos"> 238</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="Parser-239"><a href="#Parser-239"><span class="linenos"> 239</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> -</span><span id="Parser-240"><a href="#Parser-240"><span class="linenos"> 240</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> -</span><span id="Parser-241"><a href="#Parser-241"><span class="linenos"> 241</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> -</span><span id="Parser-242"><a href="#Parser-242"><span class="linenos"> 242</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> -</span><span id="Parser-243"><a href="#Parser-243"><span class="linenos"> 243</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> -</span><span id="Parser-244"><a href="#Parser-244"><span class="linenos"> 244</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> -</span><span id="Parser-245"><a href="#Parser-245"><span class="linenos"> 245</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> -</span><span id="Parser-246"><a href="#Parser-246"><span class="linenos"> 246</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> -</span><span id="Parser-247"><a href="#Parser-247"><span class="linenos"> 247</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> -</span><span id="Parser-248"><a href="#Parser-248"><span class="linenos"> 248</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> -</span><span id="Parser-249"><a href="#Parser-249"><span class="linenos"> 249</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> -</span><span id="Parser-250"><a href="#Parser-250"><span class="linenos"> 250</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> -</span><span id="Parser-251"><a href="#Parser-251"><span class="linenos"> 251</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> -</span><span id="Parser-252"><a href="#Parser-252"><span class="linenos"> 252</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> -</span><span id="Parser-253"><a href="#Parser-253"><span class="linenos"> 253</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">,</span> -</span><span id="Parser-254"><a href="#Parser-254"><span class="linenos"> 254</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="Parser-255"><a href="#Parser-255"><span class="linenos"> 255</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="Parser-256"><a href="#Parser-256"><span class="linenos"> 256</span></a> <span class="o">*</span><span class="n">CREATABLES</span><span class="p">,</span> -</span><span id="Parser-257"><a href="#Parser-257"><span class="linenos"> 257</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> -</span><span id="Parser-258"><a href="#Parser-258"><span class="linenos"> 258</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="Parser-259"><a href="#Parser-259"><span class="linenos"> 259</span></a> <span class="o">*</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> -</span><span id="Parser-260"><a href="#Parser-260"><span class="linenos"> 260</span></a> <span class="p">}</span> -</span><span id="Parser-261"><a href="#Parser-261"><span class="linenos"> 261</span></a> -</span><span id="Parser-262"><a href="#Parser-262"><span class="linenos"> 262</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> -</span><span id="Parser-263"><a href="#Parser-263"><span class="linenos"> 263</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> -</span><span id="Parser-264"><a href="#Parser-264"><span class="linenos"> 264</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="Parser-265"><a href="#Parser-265"><span class="linenos"> 265</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> -</span><span id="Parser-266"><a href="#Parser-266"><span class="linenos"> 266</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="Parser-267"><a href="#Parser-267"><span class="linenos"> 267</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="Parser-268"><a href="#Parser-268"><span class="linenos"> 268</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="Parser-269"><a href="#Parser-269"><span class="linenos"> 269</span></a> <span class="p">}</span> -</span><span id="Parser-270"><a href="#Parser-270"><span class="linenos"> 270</span></a> -</span><span id="Parser-271"><a href="#Parser-271"><span class="linenos"> 271</span></a> <span class="n">UPDATE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">}</span> -</span><span id="Parser-272"><a href="#Parser-272"><span class="linenos"> 272</span></a> -</span><span id="Parser-273"><a href="#Parser-273"><span class="linenos"> 273</span></a> <span class="n">TRIM_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">}</span> -</span><span id="Parser-274"><a href="#Parser-274"><span class="linenos"> 274</span></a> -</span><span id="Parser-275"><a href="#Parser-275"><span class="linenos"> 275</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-276"><a href="#Parser-276"><span class="linenos"> 276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> -</span><span id="Parser-277"><a href="#Parser-277"><span class="linenos"> 277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">,</span> -</span><span id="Parser-278"><a href="#Parser-278"><span class="linenos"> 278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> -</span><span id="Parser-279"><a href="#Parser-279"><span class="linenos"> 279</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> -</span><span id="Parser-280"><a href="#Parser-280"><span class="linenos"> 280</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> -</span><span id="Parser-281"><a href="#Parser-281"><span class="linenos"> 281</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> -</span><span id="Parser-282"><a href="#Parser-282"><span class="linenos"> 282</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> -</span><span id="Parser-283"><a href="#Parser-283"><span class="linenos"> 283</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> -</span><span id="Parser-284"><a href="#Parser-284"><span class="linenos"> 284</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> -</span><span id="Parser-285"><a href="#Parser-285"><span class="linenos"> 285</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> -</span><span id="Parser-286"><a href="#Parser-286"><span class="linenos"> 286</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> -</span><span id="Parser-287"><a href="#Parser-287"><span class="linenos"> 287</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> -</span><span id="Parser-288"><a href="#Parser-288"><span class="linenos"> 288</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> -</span><span id="Parser-289"><a href="#Parser-289"><span class="linenos"> 289</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> -</span><span id="Parser-290"><a href="#Parser-290"><span class="linenos"> 290</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="Parser-291"><a href="#Parser-291"><span class="linenos"> 291</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> -</span><span id="Parser-292"><a href="#Parser-292"><span class="linenos"> 292</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="Parser-293"><a href="#Parser-293"><span class="linenos"> 293</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> -</span><span id="Parser-294"><a href="#Parser-294"><span class="linenos"> 294</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> -</span><span id="Parser-295"><a href="#Parser-295"><span class="linenos"> 295</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> -</span><span id="Parser-296"><a href="#Parser-296"><span class="linenos"> 296</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="Parser-297"><a href="#Parser-297"><span class="linenos"> 297</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="Parser-298"><a href="#Parser-298"><span class="linenos"> 298</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="Parser-299"><a href="#Parser-299"><span class="linenos"> 299</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="Parser-300"><a href="#Parser-300"><span class="linenos"> 300</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="Parser-301"><a href="#Parser-301"><span class="linenos"> 301</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Parser-302"><a href="#Parser-302"><span class="linenos"> 302</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Parser-303"><a href="#Parser-303"><span class="linenos"> 303</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="Parser-304"><a href="#Parser-304"><span class="linenos"> 304</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> -</span><span id="Parser-305"><a href="#Parser-305"><span class="linenos"> 305</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> -</span><span id="Parser-306"><a href="#Parser-306"><span class="linenos"> 306</span></a> <span class="p">}</span> -</span><span id="Parser-307"><a href="#Parser-307"><span class="linenos"> 307</span></a> -</span><span id="Parser-308"><a href="#Parser-308"><span class="linenos"> 308</span></a> <span class="n">CONJUNCTION</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-309"><a href="#Parser-309"><span class="linenos"> 309</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AND</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">And</span><span class="p">,</span> -</span><span id="Parser-310"><a href="#Parser-310"><span class="linenos"> 310</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Or</span><span class="p">,</span> -</span><span id="Parser-311"><a href="#Parser-311"><span class="linenos"> 311</span></a> <span class="p">}</span> -</span><span id="Parser-312"><a href="#Parser-312"><span class="linenos"> 312</span></a> -</span><span id="Parser-313"><a href="#Parser-313"><span class="linenos"> 313</span></a> <span class="n">EQUALITY</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-314"><a href="#Parser-314"><span class="linenos"> 314</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> -</span><span id="Parser-315"><a href="#Parser-315"><span class="linenos"> 315</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NEQ</span><span class="p">,</span> -</span><span id="Parser-316"><a href="#Parser-316"><span class="linenos"> 316</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLSAFE_EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span><span class="p">,</span> -</span><span id="Parser-317"><a href="#Parser-317"><span class="linenos"> 317</span></a> <span class="p">}</span> -</span><span id="Parser-318"><a href="#Parser-318"><span class="linenos"> 318</span></a> -</span><span id="Parser-319"><a href="#Parser-319"><span class="linenos"> 319</span></a> <span class="n">COMPARISON</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-320"><a href="#Parser-320"><span class="linenos"> 320</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> -</span><span id="Parser-321"><a href="#Parser-321"><span class="linenos"> 321</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GTE</span><span class="p">,</span> -</span><span id="Parser-322"><a href="#Parser-322"><span class="linenos"> 322</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> -</span><span id="Parser-323"><a href="#Parser-323"><span class="linenos"> 323</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LTE</span><span class="p">,</span> -</span><span id="Parser-324"><a href="#Parser-324"><span class="linenos"> 324</span></a> <span class="p">}</span> -</span><span id="Parser-325"><a href="#Parser-325"><span class="linenos"> 325</span></a> -</span><span id="Parser-326"><a href="#Parser-326"><span class="linenos"> 326</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-327"><a href="#Parser-327"><span class="linenos"> 327</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</span><span class="p">,</span> -</span><span id="Parser-328"><a href="#Parser-328"><span class="linenos"> 328</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> -</span><span id="Parser-329"><a href="#Parser-329"><span class="linenos"> 329</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</span><span class="p">,</span> -</span><span id="Parser-330"><a href="#Parser-330"><span class="linenos"> 330</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DPIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DPipe</span><span class="p">,</span> -</span><span id="Parser-331"><a href="#Parser-331"><span class="linenos"> 331</span></a> <span class="p">}</span> -</span><span id="Parser-332"><a href="#Parser-332"><span class="linenos"> 332</span></a> -</span><span id="Parser-333"><a href="#Parser-333"><span class="linenos"> 333</span></a> <span class="n">TERM</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-334"><a href="#Parser-334"><span class="linenos"> 334</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sub</span><span class="p">,</span> -</span><span id="Parser-335"><a href="#Parser-335"><span class="linenos"> 335</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">,</span> -</span><span id="Parser-336"><a href="#Parser-336"><span class="linenos"> 336</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mod</span><span class="p">,</span> -</span><span id="Parser-337"><a href="#Parser-337"><span class="linenos"> 337</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Collate</span><span class="p">,</span> -</span><span id="Parser-338"><a href="#Parser-338"><span class="linenos"> 338</span></a> <span class="p">}</span> -</span><span id="Parser-339"><a href="#Parser-339"><span class="linenos"> 339</span></a> -</span><span id="Parser-340"><a href="#Parser-340"><span class="linenos"> 340</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-341"><a href="#Parser-341"><span class="linenos"> 341</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">,</span> -</span><span id="Parser-342"><a href="#Parser-342"><span class="linenos"> 342</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LR_ARROW</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distance</span><span class="p">,</span> -</span><span id="Parser-343"><a href="#Parser-343"><span class="linenos"> 343</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> -</span><span id="Parser-344"><a href="#Parser-344"><span class="linenos"> 344</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">,</span> -</span><span id="Parser-345"><a href="#Parser-345"><span class="linenos"> 345</span></a> <span class="p">}</span> -</span><span id="Parser-346"><a href="#Parser-346"><span class="linenos"> 346</span></a> -</span><span id="Parser-347"><a href="#Parser-347"><span class="linenos"> 347</span></a> <span class="n">TIMESTAMPS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-348"><a href="#Parser-348"><span class="linenos"> 348</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> -</span><span id="Parser-349"><a href="#Parser-349"><span class="linenos"> 349</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Parser-350"><a href="#Parser-350"><span class="linenos"> 350</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Parser-351"><a href="#Parser-351"><span class="linenos"> 351</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="Parser-352"><a href="#Parser-352"><span class="linenos"> 352</span></a> <span class="p">}</span> -</span><span id="Parser-353"><a href="#Parser-353"><span class="linenos"> 353</span></a> -</span><span id="Parser-354"><a href="#Parser-354"><span class="linenos"> 354</span></a> <span class="n">SET_OPERATIONS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-355"><a href="#Parser-355"><span class="linenos"> 355</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> -</span><span id="Parser-356"><a href="#Parser-356"><span class="linenos"> 356</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> -</span><span id="Parser-357"><a href="#Parser-357"><span class="linenos"> 357</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span> -</span><span id="Parser-358"><a href="#Parser-358"><span class="linenos"> 358</span></a> <span class="p">}</span> -</span><span id="Parser-359"><a href="#Parser-359"><span class="linenos"> 359</span></a> -</span><span id="Parser-360"><a href="#Parser-360"><span class="linenos"> 360</span></a> <span class="n">JOIN_SIDES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-361"><a href="#Parser-361"><span class="linenos"> 361</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="Parser-362"><a href="#Parser-362"><span class="linenos"> 362</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="Parser-363"><a href="#Parser-363"><span class="linenos"> 363</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> -</span><span id="Parser-364"><a href="#Parser-364"><span class="linenos"> 364</span></a> <span class="p">}</span> -</span><span id="Parser-365"><a href="#Parser-365"><span class="linenos"> 365</span></a> -</span><span id="Parser-366"><a href="#Parser-366"><span class="linenos"> 366</span></a> <span class="n">JOIN_KINDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-367"><a href="#Parser-367"><span class="linenos"> 367</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> -</span><span id="Parser-368"><a href="#Parser-368"><span class="linenos"> 368</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> -</span><span id="Parser-369"><a href="#Parser-369"><span class="linenos"> 369</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> -</span><span id="Parser-370"><a href="#Parser-370"><span class="linenos"> 370</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> -</span><span id="Parser-371"><a href="#Parser-371"><span class="linenos"> 371</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> -</span><span id="Parser-372"><a href="#Parser-372"><span class="linenos"> 372</span></a> <span class="p">}</span> -</span><span id="Parser-373"><a href="#Parser-373"><span class="linenos"> 373</span></a> -</span><span id="Parser-374"><a href="#Parser-374"><span class="linenos"> 374</span></a> <span class="n">LAMBDAS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-375"><a href="#Parser-375"><span class="linenos"> 375</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-376"><a href="#Parser-376"><span class="linenos"> 376</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</span><span class="p">,</span> -</span><span id="Parser-377"><a href="#Parser-377"><span class="linenos"> 377</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="Parser-378"><a href="#Parser-378"><span class="linenos"> 378</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_lambda</span><span class="p">,</span> <span class="p">{</span><span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">}</span> -</span><span id="Parser-379"><a href="#Parser-379"><span class="linenos"> 379</span></a> <span class="p">),</span> -</span><span id="Parser-380"><a href="#Parser-380"><span class="linenos"> 380</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Parser-381"><a href="#Parser-381"><span class="linenos"> 381</span></a> <span class="p">),</span> -</span><span id="Parser-382"><a href="#Parser-382"><span class="linenos"> 382</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-383"><a href="#Parser-383"><span class="linenos"> 383</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Kwarg</span><span class="p">,</span> -</span><span id="Parser-384"><a href="#Parser-384"><span class="linenos"> 384</span></a> <span class="n">this</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="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 class="o">.</span><span class="n">name</span><span class="p">),</span> -</span><span id="Parser-385"><a href="#Parser-385"><span class="linenos"> 385</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> -</span><span id="Parser-386"><a href="#Parser-386"><span class="linenos"> 386</span></a> <span class="p">),</span> -</span><span id="Parser-387"><a href="#Parser-387"><span class="linenos"> 387</span></a> <span class="p">}</span> -</span><span id="Parser-388"><a href="#Parser-388"><span class="linenos"> 388</span></a> -</span><span id="Parser-389"><a href="#Parser-389"><span class="linenos"> 389</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-390"><a href="#Parser-390"><span class="linenos"> 390</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-391"><a href="#Parser-391"><span class="linenos"> 391</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-392"><a href="#Parser-392"><span class="linenos"> 392</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> -</span><span id="Parser-393"><a href="#Parser-393"><span class="linenos"> 393</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-394"><a href="#Parser-394"><span class="linenos"> 394</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> -</span><span id="Parser-395"><a href="#Parser-395"><span class="linenos"> 395</span></a> <span class="p">),</span> -</span><span id="Parser-396"><a href="#Parser-396"><span class="linenos"> 396</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-397"><a href="#Parser-397"><span class="linenos"> 397</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">,</span> -</span><span id="Parser-398"><a href="#Parser-398"><span class="linenos"> 398</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-399"><a href="#Parser-399"><span class="linenos"> 399</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="Parser-400"><a href="#Parser-400"><span class="linenos"> 400</span></a> <span class="p">),</span> -</span><span id="Parser-401"><a href="#Parser-401"><span class="linenos"> 401</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-402"><a href="#Parser-402"><span class="linenos"> 402</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">,</span> -</span><span id="Parser-403"><a href="#Parser-403"><span class="linenos"> 403</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-404"><a href="#Parser-404"><span class="linenos"> 404</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="Parser-405"><a href="#Parser-405"><span class="linenos"> 405</span></a> <span class="p">),</span> -</span><span id="Parser-406"><a href="#Parser-406"><span class="linenos"> 406</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-407"><a href="#Parser-407"><span class="linenos"> 407</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">,</span> -</span><span id="Parser-408"><a href="#Parser-408"><span class="linenos"> 408</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-409"><a href="#Parser-409"><span class="linenos"> 409</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="Parser-410"><a href="#Parser-410"><span class="linenos"> 410</span></a> <span class="p">),</span> -</span><span id="Parser-411"><a href="#Parser-411"><span class="linenos"> 411</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DHASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-412"><a href="#Parser-412"><span class="linenos"> 412</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">,</span> -</span><span id="Parser-413"><a href="#Parser-413"><span class="linenos"> 413</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-414"><a href="#Parser-414"><span class="linenos"> 414</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> -</span><span id="Parser-415"><a href="#Parser-415"><span class="linenos"> 415</span></a> <span class="p">),</span> -</span><span id="Parser-416"><a href="#Parser-416"><span class="linenos"> 416</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">key</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-417"><a href="#Parser-417"><span class="linenos"> 417</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</span><span class="p">,</span> -</span><span id="Parser-418"><a href="#Parser-418"><span class="linenos"> 418</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-419"><a href="#Parser-419"><span class="linenos"> 419</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> -</span><span id="Parser-420"><a href="#Parser-420"><span class="linenos"> 420</span></a> <span class="p">),</span> -</span><span id="Parser-421"><a href="#Parser-421"><span class="linenos"> 421</span></a> <span class="p">}</span> -</span><span id="Parser-422"><a href="#Parser-422"><span class="linenos"> 422</span></a> -</span><span id="Parser-423"><a href="#Parser-423"><span class="linenos"> 423</span></a> <span class="n">EXPRESSION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-424"><a href="#Parser-424"><span class="linenos"> 424</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</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_column</span><span class="p">(),</span> -</span><span id="Parser-425"><a href="#Parser-425"><span class="linenos"> 425</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</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_types</span><span class="p">(),</span> -</span><span id="Parser-426"><a href="#Parser-426"><span class="linenos"> 426</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</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_from</span><span class="p">(),</span> -</span><span id="Parser-427"><a href="#Parser-427"><span class="linenos"> 427</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Group</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_group</span><span class="p">(),</span> -</span><span id="Parser-428"><a href="#Parser-428"><span class="linenos"> 428</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</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_id_var</span><span class="p">(),</span> -</span><span id="Parser-429"><a href="#Parser-429"><span class="linenos"> 429</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</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_lateral</span><span class="p">(),</span> -</span><span id="Parser-430"><a href="#Parser-430"><span class="linenos"> 430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</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_join</span><span class="p">(),</span> -</span><span id="Parser-431"><a href="#Parser-431"><span class="linenos"> 431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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_order</span><span class="p">(),</span> -</span><span id="Parser-432"><a href="#Parser-432"><span class="linenos"> 432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> -</span><span id="Parser-433"><a href="#Parser-433"><span class="linenos"> 433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> -</span><span id="Parser-434"><a href="#Parser-434"><span class="linenos"> 434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</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_lambda</span><span class="p">(),</span> -</span><span id="Parser-435"><a href="#Parser-435"><span class="linenos"> 435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</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_limit</span><span class="p">(),</span> -</span><span id="Parser-436"><a href="#Parser-436"><span class="linenos"> 436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Offset</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_offset</span><span class="p">(),</span> -</span><span id="Parser-437"><a href="#Parser-437"><span class="linenos"> 437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</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_table_alias</span><span class="p">(),</span> -</span><span id="Parser-438"><a href="#Parser-438"><span class="linenos"> 438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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_table</span><span class="p">(),</span> -</span><span id="Parser-439"><a href="#Parser-439"><span class="linenos"> 439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Condition</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_conjunction</span><span class="p">(),</span> -</span><span id="Parser-440"><a href="#Parser-440"><span class="linenos"> 440</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</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_statement</span><span class="p">(),</span> -</span><span id="Parser-441"><a href="#Parser-441"><span class="linenos"> 441</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</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_properties</span><span class="p">(),</span> -</span><span id="Parser-442"><a href="#Parser-442"><span class="linenos"> 442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</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_where</span><span class="p">(),</span> -</span><span id="Parser-443"><a href="#Parser-443"><span class="linenos"> 443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Ordered</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_ordered</span><span class="p">(),</span> -</span><span id="Parser-444"><a href="#Parser-444"><span class="linenos"> 444</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Having</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_having</span><span class="p">(),</span> -</span><span id="Parser-445"><a href="#Parser-445"><span class="linenos"> 445</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</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_with</span><span class="p">(),</span> -</span><span id="Parser-446"><a href="#Parser-446"><span class="linenos"> 446</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</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_named_window</span><span class="p">(),</span> -</span><span id="Parser-447"><a href="#Parser-447"><span class="linenos"> 447</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Qualify</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_qualify</span><span class="p">(),</span> -</span><span id="Parser-448"><a href="#Parser-448"><span class="linenos"> 448</span></a> <span class="s2">"JOIN_TYPE"</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_join_side_and_kind</span><span class="p">(),</span> -</span><span id="Parser-449"><a href="#Parser-449"><span class="linenos"> 449</span></a> <span class="p">}</span> -</span><span id="Parser-450"><a href="#Parser-450"><span class="linenos"> 450</span></a> -</span><span id="Parser-451"><a href="#Parser-451"><span class="linenos"> 451</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-452"><a href="#Parser-452"><span class="linenos"> 452</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</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_alter</span><span class="p">(),</span> -</span><span id="Parser-453"><a href="#Parser-453"><span class="linenos"> 453</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</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_transaction</span><span class="p">(),</span> -</span><span id="Parser-454"><a href="#Parser-454"><span class="linenos"> 454</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</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_cache</span><span class="p">(),</span> -</span><span id="Parser-455"><a href="#Parser-455"><span class="linenos"> 455</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</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_commit_or_rollback</span><span class="p">(),</span> -</span><span id="Parser-456"><a href="#Parser-456"><span class="linenos"> 456</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</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_comment</span><span class="p">(),</span> -</span><span id="Parser-457"><a href="#Parser-457"><span class="linenos"> 457</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CREATE</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_create</span><span class="p">(),</span> -</span><span id="Parser-458"><a href="#Parser-458"><span class="linenos"> 458</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</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_delete</span><span class="p">(),</span> -</span><span id="Parser-459"><a href="#Parser-459"><span class="linenos"> 459</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</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_describe</span><span class="p">(),</span> -</span><span id="Parser-460"><a href="#Parser-460"><span class="linenos"> 460</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</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_describe</span><span class="p">(),</span> -</span><span id="Parser-461"><a href="#Parser-461"><span class="linenos"> 461</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</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_drop</span><span class="p">(),</span> -</span><span id="Parser-462"><a href="#Parser-462"><span class="linenos"> 462</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_commit_or_rollback</span><span class="p">(),</span> -</span><span id="Parser-463"><a href="#Parser-463"><span class="linenos"> 463</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</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_insert</span><span class="p">(),</span> -</span><span id="Parser-464"><a href="#Parser-464"><span class="linenos"> 464</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</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_load_data</span><span class="p">(),</span> -</span><span id="Parser-465"><a href="#Parser-465"><span class="linenos"> 465</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</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_merge</span><span class="p">(),</span> -</span><span id="Parser-466"><a href="#Parser-466"><span class="linenos"> 466</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</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_commit_or_rollback</span><span class="p">(),</span> -</span><span id="Parser-467"><a href="#Parser-467"><span class="linenos"> 467</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNCACHE</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_uncache</span><span class="p">(),</span> -</span><span id="Parser-468"><a href="#Parser-468"><span class="linenos"> 468</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</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_update</span><span class="p">(),</span> -</span><span id="Parser-469"><a href="#Parser-469"><span class="linenos"> 469</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</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><span id="Parser-470"><a href="#Parser-470"><span class="linenos"> 470</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Use</span><span class="p">,</span> -</span><span id="Parser-471"><a href="#Parser-471"><span class="linenos"> 471</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"ROLE"</span><span class="p">,</span> <span class="s2">"WAREHOUSE"</span><span class="p">,</span> <span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">))</span> -</span><span id="Parser-472"><a href="#Parser-472"><span class="linenos"> 472</span></a> <span class="ow">and</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="Parser-473"><a href="#Parser-473"><span class="linenos"> 473</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-474"><a href="#Parser-474"><span class="linenos"> 474</span></a> <span class="p">),</span> -</span><span id="Parser-475"><a href="#Parser-475"><span class="linenos"> 475</span></a> <span class="p">}</span> -</span><span id="Parser-476"><a href="#Parser-476"><span class="linenos"> 476</span></a> -</span><span id="Parser-477"><a href="#Parser-477"><span class="linenos"> 477</span></a> <span class="n">UNARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-478"><a href="#Parser-478"><span class="linenos"> 478</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</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_unary</span><span class="p">(),</span> <span class="c1"># Unary + is handled as a no-op</span> -</span><span id="Parser-479"><a href="#Parser-479"><span class="linenos"> 479</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">()),</span> -</span><span id="Parser-480"><a href="#Parser-480"><span class="linenos"> 480</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TILDA</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">BitwiseNot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> -</span><span id="Parser-481"><a href="#Parser-481"><span class="linenos"> 481</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</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">Neg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> -</span><span id="Parser-482"><a href="#Parser-482"><span class="linenos"> 482</span></a> <span class="p">}</span> -</span><span id="Parser-483"><a href="#Parser-483"><span class="linenos"> 483</span></a> -</span><span id="Parser-484"><a href="#Parser-484"><span class="linenos"> 484</span></a> <span class="n">PRIMARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-485"><a href="#Parser-485"><span class="linenos"> 485</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-486"><a href="#Parser-486"><span class="linenos"> 486</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span> -</span><span id="Parser-487"><a href="#Parser-487"><span class="linenos"> 487</span></a> <span class="p">),</span> -</span><span id="Parser-488"><a href="#Parser-488"><span class="linenos"> 488</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-489"><a href="#Parser-489"><span class="linenos"> 489</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span> -</span><span id="Parser-490"><a href="#Parser-490"><span class="linenos"> 490</span></a> <span class="p">),</span> -</span><span id="Parser-491"><a href="#Parser-491"><span class="linenos"> 491</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-492"><a href="#Parser-492"><span class="linenos"> 492</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">,</span> -</span><span id="Parser-493"><a href="#Parser-493"><span class="linenos"> 493</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_except</span><span class="p">(),</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_replace</span><span class="p">()},</span> -</span><span id="Parser-494"><a href="#Parser-494"><span class="linenos"> 494</span></a> <span class="p">),</span> -</span><span id="Parser-495"><a href="#Parser-495"><span class="linenos"> 495</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Null</span><span class="p">),</span> -</span><span id="Parser-496"><a href="#Parser-496"><span class="linenos"> 496</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-497"><a href="#Parser-497"><span class="linenos"> 497</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-498"><a href="#Parser-498"><span class="linenos"> 498</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">BitString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="Parser-499"><a href="#Parser-499"><span class="linenos"> 499</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">HexString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="Parser-500"><a href="#Parser-500"><span class="linenos"> 500</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">ByteString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> -</span><span id="Parser-501"><a href="#Parser-501"><span class="linenos"> 501</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTRODUCER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_introducer</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> -</span><span id="Parser-502"><a href="#Parser-502"><span class="linenos"> 502</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_national</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> -</span><span id="Parser-503"><a href="#Parser-503"><span class="linenos"> 503</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_session_parameter</span><span class="p">(),</span> -</span><span id="Parser-504"><a href="#Parser-504"><span class="linenos"> 504</span></a> <span class="p">}</span> -</span><span id="Parser-505"><a href="#Parser-505"><span class="linenos"> 505</span></a> -</span><span id="Parser-506"><a href="#Parser-506"><span class="linenos"> 506</span></a> <span class="n">PLACEHOLDER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-507"><a href="#Parser-507"><span class="linenos"> 507</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</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">Placeholder</span><span class="p">),</span> -</span><span id="Parser-508"><a href="#Parser-508"><span class="linenos"> 508</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</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_parameter</span><span class="p">(),</span> -</span><span id="Parser-509"><a href="#Parser-509"><span class="linenos"> 509</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</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">Placeholder</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-510"><a href="#Parser-510"><span class="linenos"> 510</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">))</span> -</span><span id="Parser-511"><a href="#Parser-511"><span class="linenos"> 511</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-512"><a href="#Parser-512"><span class="linenos"> 512</span></a> <span class="p">}</span> -</span><span id="Parser-513"><a href="#Parser-513"><span class="linenos"> 513</span></a> -</span><span id="Parser-514"><a href="#Parser-514"><span class="linenos"> 514</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-515"><a href="#Parser-515"><span class="linenos"> 515</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_between</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> -</span><span id="Parser-516"><a href="#Parser-516"><span class="linenos"> 516</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Glob</span><span class="p">),</span> -</span><span id="Parser-517"><a href="#Parser-517"><span class="linenos"> 517</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Overlaps</span><span class="p">),</span> -</span><span id="Parser-518"><a href="#Parser-518"><span class="linenos"> 518</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> -</span><span id="Parser-519"><a href="#Parser-519"><span class="linenos"> 519</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> -</span><span id="Parser-520"><a href="#Parser-520"><span class="linenos"> 520</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">),</span> -</span><span id="Parser-521"><a href="#Parser-521"><span class="linenos"> 521</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">),</span> -</span><span id="Parser-522"><a href="#Parser-522"><span class="linenos"> 522</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IRLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</span><span class="p">),</span> -</span><span id="Parser-523"><a href="#Parser-523"><span class="linenos"> 523</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">),</span> -</span><span id="Parser-524"><a href="#Parser-524"><span class="linenos"> 524</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SimilarTo</span><span class="p">),</span> -</span><span id="Parser-525"><a href="#Parser-525"><span class="linenos"> 525</span></a> <span class="p">}</span> -</span><span id="Parser-526"><a href="#Parser-526"><span class="linenos"> 526</span></a> -</span><span id="Parser-527"><a href="#Parser-527"><span class="linenos"> 527</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-528"><a href="#Parser-528"><span class="linenos"> 528</span></a> <span class="s2">"AFTER"</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_afterjournal</span><span class="p">(</span> -</span><span id="Parser-529"><a href="#Parser-529"><span class="linenos"> 529</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> -</span><span id="Parser-530"><a href="#Parser-530"><span class="linenos"> 530</span></a> <span class="p">),</span> -</span><span id="Parser-531"><a href="#Parser-531"><span class="linenos"> 531</span></a> <span class="s2">"ALGORITHM"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">),</span> -</span><span id="Parser-532"><a href="#Parser-532"><span class="linenos"> 532</span></a> <span class="s2">"AUTO_INCREMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">),</span> -</span><span id="Parser-533"><a href="#Parser-533"><span class="linenos"> 533</span></a> <span class="s2">"BEFORE"</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_journal</span><span class="p">(</span> -</span><span id="Parser-534"><a href="#Parser-534"><span class="linenos"> 534</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> -</span><span id="Parser-535"><a href="#Parser-535"><span class="linenos"> 535</span></a> <span class="p">),</span> -</span><span id="Parser-536"><a href="#Parser-536"><span class="linenos"> 536</span></a> <span class="s2">"BLOCKCOMPRESSION"</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_blockcompression</span><span class="p">(),</span> -</span><span id="Parser-537"><a href="#Parser-537"><span class="linenos"> 537</span></a> <span class="s2">"CHARACTER SET"</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_character_set</span><span class="p">(),</span> -</span><span id="Parser-538"><a href="#Parser-538"><span class="linenos"> 538</span></a> <span class="s2">"CHECKSUM"</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_checksum</span><span class="p">(),</span> -</span><span id="Parser-539"><a href="#Parser-539"><span class="linenos"> 539</span></a> <span class="s2">"CLUSTER BY"</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><span id="Parser-540"><a href="#Parser-540"><span class="linenos"> 540</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> -</span><span id="Parser-541"><a href="#Parser-541"><span class="linenos"> 541</span></a> <span class="p">),</span> -</span><span id="Parser-542"><a href="#Parser-542"><span class="linenos"> 542</span></a> <span class="s2">"COLLATE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">),</span> -</span><span id="Parser-543"><a href="#Parser-543"><span class="linenos"> 543</span></a> <span class="s2">"COMMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">),</span> -</span><span id="Parser-544"><a href="#Parser-544"><span class="linenos"> 544</span></a> <span class="s2">"DATABLOCKSIZE"</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_datablocksize</span><span class="p">(</span> -</span><span id="Parser-545"><a href="#Parser-545"><span class="linenos"> 545</span></a> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> -</span><span id="Parser-546"><a href="#Parser-546"><span class="linenos"> 546</span></a> <span class="p">),</span> -</span><span id="Parser-547"><a href="#Parser-547"><span class="linenos"> 547</span></a> <span class="s2">"DEFINER"</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_definer</span><span class="p">(),</span> -</span><span id="Parser-548"><a href="#Parser-548"><span class="linenos"> 548</span></a> <span class="s2">"DETERMINISTIC"</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><span id="Parser-549"><a href="#Parser-549"><span class="linenos"> 549</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> -</span><span id="Parser-550"><a href="#Parser-550"><span class="linenos"> 550</span></a> <span class="p">),</span> -</span><span id="Parser-551"><a href="#Parser-551"><span class="linenos"> 551</span></a> <span class="s2">"DISTKEY"</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_distkey</span><span class="p">(),</span> -</span><span id="Parser-552"><a href="#Parser-552"><span class="linenos"> 552</span></a> <span class="s2">"DISTSTYLE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">),</span> -</span><span id="Parser-553"><a href="#Parser-553"><span class="linenos"> 553</span></a> <span class="s2">"EXECUTE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">),</span> -</span><span id="Parser-554"><a href="#Parser-554"><span class="linenos"> 554</span></a> <span class="s2">"EXTERNAL"</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">ExternalProperty</span><span class="p">),</span> -</span><span id="Parser-555"><a href="#Parser-555"><span class="linenos"> 555</span></a> <span class="s2">"FALLBACK"</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_fallback</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> -</span><span id="Parser-556"><a href="#Parser-556"><span class="linenos"> 556</span></a> <span class="s2">"FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> -</span><span id="Parser-557"><a href="#Parser-557"><span class="linenos"> 557</span></a> <span class="s2">"FREESPACE"</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_freespace</span><span class="p">(),</span> -</span><span id="Parser-558"><a href="#Parser-558"><span class="linenos"> 558</span></a> <span class="s2">"GLOBAL"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-559"><a href="#Parser-559"><span class="linenos"> 559</span></a> <span class="s2">"IMMUTABLE"</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><span id="Parser-560"><a href="#Parser-560"><span class="linenos"> 560</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> -</span><span id="Parser-561"><a href="#Parser-561"><span class="linenos"> 561</span></a> <span class="p">),</span> -</span><span id="Parser-562"><a href="#Parser-562"><span class="linenos"> 562</span></a> <span class="s2">"JOURNAL"</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_journal</span><span class="p">(</span> -</span><span id="Parser-563"><a href="#Parser-563"><span class="linenos"> 563</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> -</span><span id="Parser-564"><a href="#Parser-564"><span class="linenos"> 564</span></a> <span class="p">),</span> -</span><span id="Parser-565"><a href="#Parser-565"><span class="linenos"> 565</span></a> <span class="s2">"LANGUAGE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">),</span> -</span><span id="Parser-566"><a href="#Parser-566"><span class="linenos"> 566</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> -</span><span id="Parser-567"><a href="#Parser-567"><span class="linenos"> 567</span></a> <span class="s2">"LOCAL"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-568"><a href="#Parser-568"><span class="linenos"> 568</span></a> <span class="s2">"LOCATION"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">),</span> -</span><span id="Parser-569"><a href="#Parser-569"><span class="linenos"> 569</span></a> <span class="s2">"LOCK"</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_locking</span><span class="p">(),</span> -</span><span id="Parser-570"><a href="#Parser-570"><span class="linenos"> 570</span></a> <span class="s2">"LOCKING"</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_locking</span><span class="p">(),</span> -</span><span id="Parser-571"><a href="#Parser-571"><span class="linenos"> 571</span></a> <span class="s2">"LOG"</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_log</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> -</span><span id="Parser-572"><a href="#Parser-572"><span class="linenos"> 572</span></a> <span class="s2">"MATERIALIZED"</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">MaterializedProperty</span><span class="p">),</span> -</span><span id="Parser-573"><a href="#Parser-573"><span class="linenos"> 573</span></a> <span class="s2">"MAX"</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_datablocksize</span><span class="p">(),</span> -</span><span id="Parser-574"><a href="#Parser-574"><span class="linenos"> 574</span></a> <span class="s2">"MAXIMUM"</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_datablocksize</span><span class="p">(),</span> -</span><span id="Parser-575"><a href="#Parser-575"><span class="linenos"> 575</span></a> <span class="s2">"MERGEBLOCKRATIO"</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_mergeblockratio</span><span class="p">(</span> -</span><span id="Parser-576"><a href="#Parser-576"><span class="linenos"> 576</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> -</span><span id="Parser-577"><a href="#Parser-577"><span class="linenos"> 577</span></a> <span class="p">),</span> -</span><span id="Parser-578"><a href="#Parser-578"><span class="linenos"> 578</span></a> <span class="s2">"MIN"</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_datablocksize</span><span class="p">(),</span> -</span><span id="Parser-579"><a href="#Parser-579"><span class="linenos"> 579</span></a> <span class="s2">"MINIMUM"</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_datablocksize</span><span class="p">(),</span> -</span><span id="Parser-580"><a href="#Parser-580"><span class="linenos"> 580</span></a> <span class="s2">"MULTISET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-581"><a href="#Parser-581"><span class="linenos"> 581</span></a> <span class="s2">"NO"</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_noprimaryindex</span><span class="p">(),</span> -</span><span id="Parser-582"><a href="#Parser-582"><span class="linenos"> 582</span></a> <span class="s2">"NOT"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-583"><a href="#Parser-583"><span class="linenos"> 583</span></a> <span class="s2">"ON"</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_oncommit</span><span class="p">(),</span> -</span><span id="Parser-584"><a href="#Parser-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITION BY"</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_partitioned_by</span><span class="p">(),</span> -</span><span id="Parser-585"><a href="#Parser-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITIONED BY"</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_partitioned_by</span><span class="p">(),</span> -</span><span id="Parser-586"><a href="#Parser-586"><span class="linenos"> 586</span></a> <span class="s2">"PARTITIONED_BY"</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_partitioned_by</span><span class="p">(),</span> -</span><span id="Parser-587"><a href="#Parser-587"><span class="linenos"> 587</span></a> <span class="s2">"RETURNS"</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_returns</span><span class="p">(),</span> -</span><span id="Parser-588"><a href="#Parser-588"><span class="linenos"> 588</span></a> <span class="s2">"ROW"</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_row</span><span class="p">(),</span> -</span><span id="Parser-589"><a href="#Parser-589"><span class="linenos"> 589</span></a> <span class="s2">"SET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-590"><a href="#Parser-590"><span class="linenos"> 590</span></a> <span class="s2">"SORTKEY"</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_sortkey</span><span class="p">(),</span> -</span><span id="Parser-591"><a href="#Parser-591"><span class="linenos"> 591</span></a> <span class="s2">"STABLE"</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><span id="Parser-592"><a href="#Parser-592"><span class="linenos"> 592</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"STABLE"</span><span class="p">)</span> -</span><span id="Parser-593"><a href="#Parser-593"><span class="linenos"> 593</span></a> <span class="p">),</span> -</span><span id="Parser-594"><a href="#Parser-594"><span class="linenos"> 594</span></a> <span class="s2">"STORED"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> -</span><span id="Parser-595"><a href="#Parser-595"><span class="linenos"> 595</span></a> <span class="s2">"TABLE_FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> -</span><span id="Parser-596"><a href="#Parser-596"><span class="linenos"> 596</span></a> <span class="s2">"TBLPROPERTIES"</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_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">),</span> -</span><span id="Parser-597"><a href="#Parser-597"><span class="linenos"> 597</span></a> <span class="s2">"TEMPORARY"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-598"><a href="#Parser-598"><span class="linenos"> 598</span></a> <span class="s2">"TRANSIENT"</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">TransientProperty</span><span class="p">),</span> -</span><span id="Parser-599"><a href="#Parser-599"><span class="linenos"> 599</span></a> <span class="s2">"USING"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> -</span><span id="Parser-600"><a href="#Parser-600"><span class="linenos"> 600</span></a> <span class="s2">"VOLATILE"</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><span id="Parser-601"><a href="#Parser-601"><span class="linenos"> 601</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> -</span><span id="Parser-602"><a href="#Parser-602"><span class="linenos"> 602</span></a> <span class="p">),</span> -</span><span id="Parser-603"><a href="#Parser-603"><span class="linenos"> 603</span></a> <span class="s2">"WITH"</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_with_property</span><span class="p">(),</span> -</span><span id="Parser-604"><a href="#Parser-604"><span class="linenos"> 604</span></a> <span class="p">}</span> -</span><span id="Parser-605"><a href="#Parser-605"><span class="linenos"> 605</span></a> -</span><span id="Parser-606"><a href="#Parser-606"><span class="linenos"> 606</span></a> <span class="n">CONSTRAINT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-607"><a href="#Parser-607"><span class="linenos"> 607</span></a> <span class="s2">"AUTOINCREMENT"</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_auto_increment</span><span class="p">(),</span> -</span><span id="Parser-608"><a href="#Parser-608"><span class="linenos"> 608</span></a> <span class="s2">"AUTO_INCREMENT"</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_auto_increment</span><span class="p">(),</span> -</span><span id="Parser-609"><a href="#Parser-609"><span class="linenos"> 609</span></a> <span class="s2">"CASESPECIFIC"</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-610"><a href="#Parser-610"><span class="linenos"> 610</span></a> <span class="s2">"CHARACTER SET"</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><span id="Parser-611"><a href="#Parser-611"><span class="linenos"> 611</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="Parser-612"><a href="#Parser-612"><span class="linenos"> 612</span></a> <span class="p">),</span> -</span><span id="Parser-613"><a href="#Parser-613"><span class="linenos"> 613</span></a> <span class="s2">"CHECK"</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><span id="Parser-614"><a href="#Parser-614"><span class="linenos"> 614</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-615"><a href="#Parser-615"><span class="linenos"> 615</span></a> <span class="p">),</span> -</span><span id="Parser-616"><a href="#Parser-616"><span class="linenos"> 616</span></a> <span class="s2">"COLLATE"</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><span id="Parser-617"><a href="#Parser-617"><span class="linenos"> 617</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> -</span><span id="Parser-618"><a href="#Parser-618"><span class="linenos"> 618</span></a> <span class="p">),</span> -</span><span id="Parser-619"><a href="#Parser-619"><span class="linenos"> 619</span></a> <span class="s2">"COMMENT"</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><span id="Parser-620"><a href="#Parser-620"><span class="linenos"> 620</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-621"><a href="#Parser-621"><span class="linenos"> 621</span></a> <span class="p">),</span> -</span><span id="Parser-622"><a href="#Parser-622"><span class="linenos"> 622</span></a> <span class="s2">"COMPRESS"</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_compress</span><span class="p">(),</span> -</span><span id="Parser-623"><a href="#Parser-623"><span class="linenos"> 623</span></a> <span class="s2">"DEFAULT"</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><span id="Parser-624"><a href="#Parser-624"><span class="linenos"> 624</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</span><span class="p">,</span> <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="Parser-625"><a href="#Parser-625"><span class="linenos"> 625</span></a> <span class="p">),</span> -</span><span id="Parser-626"><a href="#Parser-626"><span class="linenos"> 626</span></a> <span class="s2">"ENCODE"</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">EncodeColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()),</span> -</span><span id="Parser-627"><a href="#Parser-627"><span class="linenos"> 627</span></a> <span class="s2">"FOREIGN KEY"</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_foreign_key</span><span class="p">(),</span> -</span><span id="Parser-628"><a href="#Parser-628"><span class="linenos"> 628</span></a> <span class="s2">"FORMAT"</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><span id="Parser-629"><a href="#Parser-629"><span class="linenos"> 629</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="Parser-630"><a href="#Parser-630"><span class="linenos"> 630</span></a> <span class="p">),</span> -</span><span id="Parser-631"><a href="#Parser-631"><span class="linenos"> 631</span></a> <span class="s2">"GENERATED"</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_generated_as_identity</span><span class="p">(),</span> -</span><span id="Parser-632"><a href="#Parser-632"><span class="linenos"> 632</span></a> <span class="s2">"IDENTITY"</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_auto_increment</span><span class="p">(),</span> -</span><span id="Parser-633"><a href="#Parser-633"><span class="linenos"> 633</span></a> <span class="s2">"INLINE"</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_inline</span><span class="p">(),</span> -</span><span id="Parser-634"><a href="#Parser-634"><span class="linenos"> 634</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> -</span><span id="Parser-635"><a href="#Parser-635"><span class="linenos"> 635</span></a> <span class="s2">"NOT"</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_not_constraint</span><span class="p">(),</span> -</span><span id="Parser-636"><a href="#Parser-636"><span class="linenos"> 636</span></a> <span class="s2">"NULL"</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">NotNullColumnConstraint</span><span class="p">,</span> <span class="n">allow_null</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-637"><a href="#Parser-637"><span class="linenos"> 637</span></a> <span class="s2">"PATH"</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">PathColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()),</span> -</span><span id="Parser-638"><a href="#Parser-638"><span class="linenos"> 638</span></a> <span class="s2">"PRIMARY KEY"</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_primary_key</span><span class="p">(),</span> -</span><span id="Parser-639"><a href="#Parser-639"><span class="linenos"> 639</span></a> <span class="s2">"TITLE"</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><span id="Parser-640"><a href="#Parser-640"><span class="linenos"> 640</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="Parser-641"><a href="#Parser-641"><span class="linenos"> 641</span></a> <span class="p">),</span> -</span><span id="Parser-642"><a href="#Parser-642"><span class="linenos"> 642</span></a> <span class="s2">"UNIQUE"</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_unique</span><span class="p">(),</span> -</span><span id="Parser-643"><a href="#Parser-643"><span class="linenos"> 643</span></a> <span class="s2">"UPPERCASE"</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">UppercaseColumnConstraint</span><span class="p">),</span> -</span><span id="Parser-644"><a href="#Parser-644"><span class="linenos"> 644</span></a> <span class="p">}</span> -</span><span id="Parser-645"><a href="#Parser-645"><span class="linenos"> 645</span></a> -</span><span id="Parser-646"><a href="#Parser-646"><span class="linenos"> 646</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-647"><a href="#Parser-647"><span class="linenos"> 647</span></a> <span class="s2">"ADD"</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_alter_table_add</span><span class="p">(),</span> -</span><span id="Parser-648"><a href="#Parser-648"><span class="linenos"> 648</span></a> <span class="s2">"ALTER"</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_alter_table_alter</span><span class="p">(),</span> -</span><span id="Parser-649"><a href="#Parser-649"><span class="linenos"> 649</span></a> <span class="s2">"DELETE"</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">Delete</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()),</span> -</span><span id="Parser-650"><a href="#Parser-650"><span class="linenos"> 650</span></a> <span class="s2">"DROP"</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_alter_table_drop</span><span class="p">(),</span> -</span><span id="Parser-651"><a href="#Parser-651"><span class="linenos"> 651</span></a> <span class="s2">"RENAME"</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_alter_table_rename</span><span class="p">(),</span> -</span><span id="Parser-652"><a href="#Parser-652"><span class="linenos"> 652</span></a> <span class="p">}</span> -</span><span id="Parser-653"><a href="#Parser-653"><span class="linenos"> 653</span></a> -</span><span id="Parser-654"><a href="#Parser-654"><span class="linenos"> 654</span></a> <span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"CHECK"</span><span class="p">,</span> <span class="s2">"FOREIGN KEY"</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">,</span> <span class="s2">"PRIMARY KEY"</span><span class="p">,</span> <span class="s2">"UNIQUE"</span><span class="p">}</span> -</span><span id="Parser-655"><a href="#Parser-655"><span class="linenos"> 655</span></a> -</span><span id="Parser-656"><a href="#Parser-656"><span class="linenos"> 656</span></a> <span class="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-657"><a href="#Parser-657"><span class="linenos"> 657</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASE</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_case</span><span class="p">(),</span> -</span><span id="Parser-658"><a href="#Parser-658"><span class="linenos"> 658</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</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_if</span><span class="p">(),</span> -</span><span id="Parser-659"><a href="#Parser-659"><span class="linenos"> 659</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</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">Any</span><span class="p">,</span> <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="Parser-660"><a href="#Parser-660"><span class="linenos"> 660</span></a> <span class="p">}</span> -</span><span id="Parser-661"><a href="#Parser-661"><span class="linenos"> 661</span></a> -</span><span id="Parser-662"><a href="#Parser-662"><span class="linenos"> 662</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-172"><a href="#Parser-172"><span class="linenos"> 172</span></a> <span class="n">DB_CREATABLES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-173"><a href="#Parser-173"><span class="linenos"> 173</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> +</span><span id="Parser-174"><a href="#Parser-174"><span class="linenos"> 174</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> +</span><span id="Parser-175"><a href="#Parser-175"><span class="linenos"> 175</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="Parser-176"><a href="#Parser-176"><span class="linenos"> 176</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> +</span><span id="Parser-177"><a href="#Parser-177"><span class="linenos"> 177</span></a> <span class="p">}</span> +</span><span id="Parser-178"><a href="#Parser-178"><span class="linenos"> 178</span></a> +</span><span id="Parser-179"><a href="#Parser-179"><span class="linenos"> 179</span></a> <span class="n">CREATABLES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-180"><a href="#Parser-180"><span class="linenos"> 180</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">,</span> +</span><span id="Parser-181"><a href="#Parser-181"><span class="linenos"> 181</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> +</span><span id="Parser-182"><a href="#Parser-182"><span class="linenos"> 182</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> +</span><span id="Parser-183"><a href="#Parser-183"><span class="linenos"> 183</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="Parser-184"><a href="#Parser-184"><span class="linenos"> 184</span></a> <span class="o">*</span><span class="n">DB_CREATABLES</span><span class="p">,</span> +</span><span id="Parser-185"><a href="#Parser-185"><span class="linenos"> 185</span></a> <span class="p">}</span> +</span><span id="Parser-186"><a href="#Parser-186"><span class="linenos"> 186</span></a> +</span><span id="Parser-187"><a href="#Parser-187"><span class="linenos"> 187</span></a> <span class="n">ID_VAR_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-188"><a href="#Parser-188"><span class="linenos"> 188</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> +</span><span id="Parser-189"><a href="#Parser-189"><span class="linenos"> 189</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> +</span><span id="Parser-190"><a href="#Parser-190"><span class="linenos"> 190</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> +</span><span id="Parser-191"><a href="#Parser-191"><span class="linenos"> 191</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AUTO_INCREMENT</span><span class="p">,</span> +</span><span id="Parser-192"><a href="#Parser-192"><span class="linenos"> 192</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</span><span class="p">,</span> +</span><span id="Parser-193"><a href="#Parser-193"><span class="linenos"> 193</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">,</span> +</span><span id="Parser-194"><a href="#Parser-194"><span class="linenos"> 194</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BUCKET</span><span class="p">,</span> +</span><span id="Parser-195"><a href="#Parser-195"><span class="linenos"> 195</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</span><span class="p">,</span> +</span><span id="Parser-196"><a href="#Parser-196"><span class="linenos"> 196</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> +</span><span id="Parser-197"><a href="#Parser-197"><span class="linenos"> 197</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">,</span> +</span><span id="Parser-198"><a href="#Parser-198"><span class="linenos"> 198</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> +</span><span id="Parser-199"><a href="#Parser-199"><span class="linenos"> 199</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> +</span><span id="Parser-200"><a href="#Parser-200"><span class="linenos"> 200</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</span><span class="p">,</span> +</span><span id="Parser-201"><a href="#Parser-201"><span class="linenos"> 201</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> +</span><span id="Parser-202"><a href="#Parser-202"><span class="linenos"> 202</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> +</span><span id="Parser-203"><a href="#Parser-203"><span class="linenos"> 203</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> +</span><span id="Parser-204"><a href="#Parser-204"><span class="linenos"> 204</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> +</span><span id="Parser-205"><a href="#Parser-205"><span class="linenos"> 205</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> +</span><span id="Parser-206"><a href="#Parser-206"><span class="linenos"> 206</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> +</span><span id="Parser-207"><a href="#Parser-207"><span class="linenos"> 207</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> +</span><span id="Parser-208"><a href="#Parser-208"><span class="linenos"> 208</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> +</span><span id="Parser-209"><a href="#Parser-209"><span class="linenos"> 209</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> +</span><span id="Parser-210"><a href="#Parser-210"><span class="linenos"> 210</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> +</span><span id="Parser-211"><a href="#Parser-211"><span class="linenos"> 211</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> +</span><span id="Parser-212"><a href="#Parser-212"><span class="linenos"> 212</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> +</span><span id="Parser-213"><a href="#Parser-213"><span class="linenos"> 213</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> +</span><span id="Parser-214"><a href="#Parser-214"><span class="linenos"> 214</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> +</span><span id="Parser-215"><a href="#Parser-215"><span class="linenos"> 215</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> +</span><span id="Parser-216"><a href="#Parser-216"><span class="linenos"> 216</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> +</span><span id="Parser-217"><a href="#Parser-217"><span class="linenos"> 217</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> +</span><span id="Parser-218"><a href="#Parser-218"><span class="linenos"> 218</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> +</span><span id="Parser-219"><a href="#Parser-219"><span class="linenos"> 219</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> +</span><span id="Parser-220"><a href="#Parser-220"><span class="linenos"> 220</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="Parser-221"><a href="#Parser-221"><span class="linenos"> 221</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> +</span><span id="Parser-222"><a href="#Parser-222"><span class="linenos"> 222</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> +</span><span id="Parser-223"><a href="#Parser-223"><span class="linenos"> 223</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> +</span><span id="Parser-224"><a href="#Parser-224"><span class="linenos"> 224</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> +</span><span id="Parser-225"><a href="#Parser-225"><span class="linenos"> 225</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> +</span><span id="Parser-226"><a href="#Parser-226"><span class="linenos"> 226</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="Parser-227"><a href="#Parser-227"><span class="linenos"> 227</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> +</span><span id="Parser-228"><a href="#Parser-228"><span class="linenos"> 228</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> +</span><span id="Parser-229"><a href="#Parser-229"><span class="linenos"> 229</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> +</span><span id="Parser-230"><a href="#Parser-230"><span class="linenos"> 230</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> +</span><span id="Parser-231"><a href="#Parser-231"><span class="linenos"> 231</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> +</span><span id="Parser-232"><a href="#Parser-232"><span class="linenos"> 232</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> +</span><span id="Parser-233"><a href="#Parser-233"><span class="linenos"> 233</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> +</span><span id="Parser-234"><a href="#Parser-234"><span class="linenos"> 234</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> +</span><span id="Parser-235"><a href="#Parser-235"><span class="linenos"> 235</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="Parser-236"><a href="#Parser-236"><span class="linenos"> 236</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> +</span><span id="Parser-237"><a href="#Parser-237"><span class="linenos"> 237</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> +</span><span id="Parser-238"><a href="#Parser-238"><span class="linenos"> 238</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> +</span><span id="Parser-239"><a href="#Parser-239"><span class="linenos"> 239</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> +</span><span id="Parser-240"><a href="#Parser-240"><span class="linenos"> 240</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> +</span><span id="Parser-241"><a href="#Parser-241"><span class="linenos"> 241</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> +</span><span id="Parser-242"><a href="#Parser-242"><span class="linenos"> 242</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> +</span><span id="Parser-243"><a href="#Parser-243"><span class="linenos"> 243</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> +</span><span id="Parser-244"><a href="#Parser-244"><span class="linenos"> 244</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TOP</span><span class="p">,</span> +</span><span id="Parser-245"><a href="#Parser-245"><span class="linenos"> 245</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> +</span><span id="Parser-246"><a href="#Parser-246"><span class="linenos"> 246</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> +</span><span id="Parser-247"><a href="#Parser-247"><span class="linenos"> 247</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> +</span><span id="Parser-248"><a href="#Parser-248"><span class="linenos"> 248</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> +</span><span id="Parser-249"><a href="#Parser-249"><span class="linenos"> 249</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> +</span><span id="Parser-250"><a href="#Parser-250"><span class="linenos"> 250</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">,</span> +</span><span id="Parser-251"><a href="#Parser-251"><span class="linenos"> 251</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="Parser-252"><a href="#Parser-252"><span class="linenos"> 252</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="Parser-253"><a href="#Parser-253"><span class="linenos"> 253</span></a> <span class="o">*</span><span class="n">CREATABLES</span><span class="p">,</span> +</span><span id="Parser-254"><a href="#Parser-254"><span class="linenos"> 254</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> +</span><span id="Parser-255"><a href="#Parser-255"><span class="linenos"> 255</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="Parser-256"><a href="#Parser-256"><span class="linenos"> 256</span></a> <span class="o">*</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">,</span> +</span><span id="Parser-257"><a href="#Parser-257"><span class="linenos"> 257</span></a> <span class="p">}</span> +</span><span id="Parser-258"><a href="#Parser-258"><span class="linenos"> 258</span></a> +</span><span id="Parser-259"><a href="#Parser-259"><span class="linenos"> 259</span></a> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span> +</span><span id="Parser-260"><a href="#Parser-260"><span class="linenos"> 260</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> +</span><span id="Parser-261"><a href="#Parser-261"><span class="linenos"> 261</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="Parser-262"><a href="#Parser-262"><span class="linenos"> 262</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> +</span><span id="Parser-263"><a href="#Parser-263"><span class="linenos"> 263</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="Parser-264"><a href="#Parser-264"><span class="linenos"> 264</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="Parser-265"><a href="#Parser-265"><span class="linenos"> 265</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="Parser-266"><a href="#Parser-266"><span class="linenos"> 266</span></a> <span class="p">}</span> +</span><span id="Parser-267"><a href="#Parser-267"><span class="linenos"> 267</span></a> +</span><span id="Parser-268"><a href="#Parser-268"><span class="linenos"> 268</span></a> <span class="n">UPDATE_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">TABLE_ALIAS_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">}</span> +</span><span id="Parser-269"><a href="#Parser-269"><span class="linenos"> 269</span></a> +</span><span id="Parser-270"><a href="#Parser-270"><span class="linenos"> 270</span></a> <span class="n">TRIM_TYPES</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOTH</span><span class="p">}</span> +</span><span id="Parser-271"><a href="#Parser-271"><span class="linenos"> 271</span></a> +</span><span id="Parser-272"><a href="#Parser-272"><span class="linenos"> 272</span></a> <span class="n">FUNC_TOKENS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-273"><a href="#Parser-273"><span class="linenos"> 273</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> +</span><span id="Parser-274"><a href="#Parser-274"><span class="linenos"> 274</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">,</span> +</span><span id="Parser-275"><a href="#Parser-275"><span class="linenos"> 275</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATETIME</span><span class="p">,</span> +</span><span id="Parser-276"><a href="#Parser-276"><span class="linenos"> 276</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> +</span><span id="Parser-277"><a href="#Parser-277"><span class="linenos"> 277</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> +</span><span id="Parser-278"><a href="#Parser-278"><span class="linenos"> 278</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> +</span><span id="Parser-279"><a href="#Parser-279"><span class="linenos"> 279</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> +</span><span id="Parser-280"><a href="#Parser-280"><span class="linenos"> 280</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> +</span><span id="Parser-281"><a href="#Parser-281"><span class="linenos"> 281</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> +</span><span id="Parser-282"><a href="#Parser-282"><span class="linenos"> 282</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> +</span><span id="Parser-283"><a href="#Parser-283"><span class="linenos"> 283</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> +</span><span id="Parser-284"><a href="#Parser-284"><span class="linenos"> 284</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> +</span><span id="Parser-285"><a href="#Parser-285"><span class="linenos"> 285</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> +</span><span id="Parser-286"><a href="#Parser-286"><span class="linenos"> 286</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> +</span><span id="Parser-287"><a href="#Parser-287"><span class="linenos"> 287</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="Parser-288"><a href="#Parser-288"><span class="linenos"> 288</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> +</span><span id="Parser-289"><a href="#Parser-289"><span class="linenos"> 289</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="Parser-290"><a href="#Parser-290"><span class="linenos"> 290</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> +</span><span id="Parser-291"><a href="#Parser-291"><span class="linenos"> 291</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> +</span><span id="Parser-292"><a href="#Parser-292"><span class="linenos"> 292</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> +</span><span id="Parser-293"><a href="#Parser-293"><span class="linenos"> 293</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="Parser-294"><a href="#Parser-294"><span class="linenos"> 294</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="Parser-295"><a href="#Parser-295"><span class="linenos"> 295</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="Parser-296"><a href="#Parser-296"><span class="linenos"> 296</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="Parser-297"><a href="#Parser-297"><span class="linenos"> 297</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="Parser-298"><a href="#Parser-298"><span class="linenos"> 298</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Parser-299"><a href="#Parser-299"><span class="linenos"> 299</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Parser-300"><a href="#Parser-300"><span class="linenos"> 300</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="Parser-301"><a href="#Parser-301"><span class="linenos"> 301</span></a> <span class="o">*</span><span class="n">TYPE_TOKENS</span><span class="p">,</span> +</span><span id="Parser-302"><a href="#Parser-302"><span class="linenos"> 302</span></a> <span class="o">*</span><span class="n">SUBQUERY_PREDICATES</span><span class="p">,</span> +</span><span id="Parser-303"><a href="#Parser-303"><span class="linenos"> 303</span></a> <span class="p">}</span> +</span><span id="Parser-304"><a href="#Parser-304"><span class="linenos"> 304</span></a> +</span><span id="Parser-305"><a href="#Parser-305"><span class="linenos"> 305</span></a> <span class="n">CONJUNCTION</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-306"><a href="#Parser-306"><span class="linenos"> 306</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AND</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">And</span><span class="p">,</span> +</span><span id="Parser-307"><a href="#Parser-307"><span class="linenos"> 307</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Or</span><span class="p">,</span> +</span><span id="Parser-308"><a href="#Parser-308"><span class="linenos"> 308</span></a> <span class="p">}</span> +</span><span id="Parser-309"><a href="#Parser-309"><span class="linenos"> 309</span></a> +</span><span id="Parser-310"><a href="#Parser-310"><span class="linenos"> 310</span></a> <span class="n">EQUALITY</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-311"><a href="#Parser-311"><span class="linenos"> 311</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="Parser-312"><a href="#Parser-312"><span class="linenos"> 312</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NEQ</span><span class="p">,</span> +</span><span id="Parser-313"><a href="#Parser-313"><span class="linenos"> 313</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLSAFE_EQ</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span><span class="p">,</span> +</span><span id="Parser-314"><a href="#Parser-314"><span class="linenos"> 314</span></a> <span class="p">}</span> +</span><span id="Parser-315"><a href="#Parser-315"><span class="linenos"> 315</span></a> +</span><span id="Parser-316"><a href="#Parser-316"><span class="linenos"> 316</span></a> <span class="n">COMPARISON</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-317"><a href="#Parser-317"><span class="linenos"> 317</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> +</span><span id="Parser-318"><a href="#Parser-318"><span class="linenos"> 318</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">GTE</span><span class="p">,</span> +</span><span id="Parser-319"><a href="#Parser-319"><span class="linenos"> 319</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> +</span><span id="Parser-320"><a href="#Parser-320"><span class="linenos"> 320</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LTE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">LTE</span><span class="p">,</span> +</span><span id="Parser-321"><a href="#Parser-321"><span class="linenos"> 321</span></a> <span class="p">}</span> +</span><span id="Parser-322"><a href="#Parser-322"><span class="linenos"> 322</span></a> +</span><span id="Parser-323"><a href="#Parser-323"><span class="linenos"> 323</span></a> <span class="n">BITWISE</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-324"><a href="#Parser-324"><span class="linenos"> 324</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">AMP</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseAnd</span><span class="p">,</span> +</span><span id="Parser-325"><a href="#Parser-325"><span class="linenos"> 325</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CARET</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseXor</span><span class="p">,</span> +</span><span id="Parser-326"><a href="#Parser-326"><span class="linenos"> 326</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseOr</span><span class="p">,</span> +</span><span id="Parser-327"><a href="#Parser-327"><span class="linenos"> 327</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DPIPE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DPipe</span><span class="p">,</span> +</span><span id="Parser-328"><a href="#Parser-328"><span class="linenos"> 328</span></a> <span class="p">}</span> +</span><span id="Parser-329"><a href="#Parser-329"><span class="linenos"> 329</span></a> +</span><span id="Parser-330"><a href="#Parser-330"><span class="linenos"> 330</span></a> <span class="n">TERM</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-331"><a href="#Parser-331"><span class="linenos"> 331</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sub</span><span class="p">,</span> +</span><span id="Parser-332"><a href="#Parser-332"><span class="linenos"> 332</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Add</span><span class="p">,</span> +</span><span id="Parser-333"><a href="#Parser-333"><span class="linenos"> 333</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mod</span><span class="p">,</span> +</span><span id="Parser-334"><a href="#Parser-334"><span class="linenos"> 334</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLLATE</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Collate</span><span class="p">,</span> +</span><span id="Parser-335"><a href="#Parser-335"><span class="linenos"> 335</span></a> <span class="p">}</span> +</span><span id="Parser-336"><a href="#Parser-336"><span class="linenos"> 336</span></a> +</span><span id="Parser-337"><a href="#Parser-337"><span class="linenos"> 337</span></a> <span class="n">FACTOR</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-338"><a href="#Parser-338"><span class="linenos"> 338</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntDiv</span><span class="p">,</span> +</span><span id="Parser-339"><a href="#Parser-339"><span class="linenos"> 339</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LR_ARROW</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distance</span><span class="p">,</span> +</span><span id="Parser-340"><a href="#Parser-340"><span class="linenos"> 340</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Div</span><span class="p">,</span> +</span><span id="Parser-341"><a href="#Parser-341"><span class="linenos"> 341</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Mul</span><span class="p">,</span> +</span><span id="Parser-342"><a href="#Parser-342"><span class="linenos"> 342</span></a> <span class="p">}</span> +</span><span id="Parser-343"><a href="#Parser-343"><span class="linenos"> 343</span></a> +</span><span id="Parser-344"><a href="#Parser-344"><span class="linenos"> 344</span></a> <span class="n">TIMESTAMPS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-345"><a href="#Parser-345"><span class="linenos"> 345</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> +</span><span id="Parser-346"><a href="#Parser-346"><span class="linenos"> 346</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Parser-347"><a href="#Parser-347"><span class="linenos"> 347</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Parser-348"><a href="#Parser-348"><span class="linenos"> 348</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="Parser-349"><a href="#Parser-349"><span class="linenos"> 349</span></a> <span class="p">}</span> +</span><span id="Parser-350"><a href="#Parser-350"><span class="linenos"> 350</span></a> +</span><span id="Parser-351"><a href="#Parser-351"><span class="linenos"> 351</span></a> <span class="n">SET_OPERATIONS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-352"><a href="#Parser-352"><span class="linenos"> 352</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> +</span><span id="Parser-353"><a href="#Parser-353"><span class="linenos"> 353</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> +</span><span id="Parser-354"><a href="#Parser-354"><span class="linenos"> 354</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">,</span> +</span><span id="Parser-355"><a href="#Parser-355"><span class="linenos"> 355</span></a> <span class="p">}</span> +</span><span id="Parser-356"><a href="#Parser-356"><span class="linenos"> 356</span></a> +</span><span id="Parser-357"><a href="#Parser-357"><span class="linenos"> 357</span></a> <span class="n">JOIN_SIDES</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-358"><a href="#Parser-358"><span class="linenos"> 358</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="Parser-359"><a href="#Parser-359"><span class="linenos"> 359</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="Parser-360"><a href="#Parser-360"><span class="linenos"> 360</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> +</span><span id="Parser-361"><a href="#Parser-361"><span class="linenos"> 361</span></a> <span class="p">}</span> +</span><span id="Parser-362"><a href="#Parser-362"><span class="linenos"> 362</span></a> +</span><span id="Parser-363"><a href="#Parser-363"><span class="linenos"> 363</span></a> <span class="n">JOIN_KINDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-364"><a href="#Parser-364"><span class="linenos"> 364</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> +</span><span id="Parser-365"><a href="#Parser-365"><span class="linenos"> 365</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> +</span><span id="Parser-366"><a href="#Parser-366"><span class="linenos"> 366</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> +</span><span id="Parser-367"><a href="#Parser-367"><span class="linenos"> 367</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> +</span><span id="Parser-368"><a href="#Parser-368"><span class="linenos"> 368</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANTI</span><span class="p">,</span> +</span><span id="Parser-369"><a href="#Parser-369"><span class="linenos"> 369</span></a> <span class="p">}</span> +</span><span id="Parser-370"><a href="#Parser-370"><span class="linenos"> 370</span></a> +</span><span id="Parser-371"><a href="#Parser-371"><span class="linenos"> 371</span></a> <span class="n">LAMBDAS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-372"><a href="#Parser-372"><span class="linenos"> 372</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-373"><a href="#Parser-373"><span class="linenos"> 373</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</span><span class="p">,</span> +</span><span id="Parser-374"><a href="#Parser-374"><span class="linenos"> 374</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="Parser-375"><a href="#Parser-375"><span class="linenos"> 375</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_lambda</span><span class="p">,</span> <span class="p">{</span><span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="k">for</span> <span class="n">node</span> <span class="ow">in</span> <span class="n">expressions</span><span class="p">}</span> +</span><span id="Parser-376"><a href="#Parser-376"><span class="linenos"> 376</span></a> <span class="p">),</span> +</span><span id="Parser-377"><a href="#Parser-377"><span class="linenos"> 377</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Parser-378"><a href="#Parser-378"><span class="linenos"> 378</span></a> <span class="p">),</span> +</span><span id="Parser-379"><a href="#Parser-379"><span class="linenos"> 379</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-380"><a href="#Parser-380"><span class="linenos"> 380</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Kwarg</span><span class="p">,</span> +</span><span id="Parser-381"><a href="#Parser-381"><span class="linenos"> 381</span></a> <span class="n">this</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="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 class="o">.</span><span class="n">name</span><span class="p">),</span> +</span><span id="Parser-382"><a href="#Parser-382"><span class="linenos"> 382</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> +</span><span id="Parser-383"><a href="#Parser-383"><span class="linenos"> 383</span></a> <span class="p">),</span> +</span><span id="Parser-384"><a href="#Parser-384"><span class="linenos"> 384</span></a> <span class="p">}</span> +</span><span id="Parser-385"><a href="#Parser-385"><span class="linenos"> 385</span></a> +</span><span id="Parser-386"><a href="#Parser-386"><span class="linenos"> 386</span></a> <span class="n">COLUMN_OPERATORS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-387"><a href="#Parser-387"><span class="linenos"> 387</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">:</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-388"><a href="#Parser-388"><span class="linenos"> 388</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">to</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-389"><a href="#Parser-389"><span class="linenos"> 389</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">,</span> +</span><span id="Parser-390"><a href="#Parser-390"><span class="linenos"> 390</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-391"><a href="#Parser-391"><span class="linenos"> 391</span></a> <span class="n">to</span><span class="o">=</span><span class="n">to</span><span class="p">,</span> +</span><span id="Parser-392"><a href="#Parser-392"><span class="linenos"> 392</span></a> <span class="p">),</span> +</span><span id="Parser-393"><a href="#Parser-393"><span class="linenos"> 393</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-394"><a href="#Parser-394"><span class="linenos"> 394</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtract</span><span class="p">,</span> +</span><span id="Parser-395"><a href="#Parser-395"><span class="linenos"> 395</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-396"><a href="#Parser-396"><span class="linenos"> 396</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="Parser-397"><a href="#Parser-397"><span class="linenos"> 397</span></a> <span class="p">),</span> +</span><span id="Parser-398"><a href="#Parser-398"><span class="linenos"> 398</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-399"><a href="#Parser-399"><span class="linenos"> 399</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONExtractScalar</span><span class="p">,</span> +</span><span id="Parser-400"><a href="#Parser-400"><span class="linenos"> 400</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-401"><a href="#Parser-401"><span class="linenos"> 401</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="Parser-402"><a href="#Parser-402"><span class="linenos"> 402</span></a> <span class="p">),</span> +</span><span id="Parser-403"><a href="#Parser-403"><span class="linenos"> 403</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-404"><a href="#Parser-404"><span class="linenos"> 404</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtract</span><span class="p">,</span> +</span><span id="Parser-405"><a href="#Parser-405"><span class="linenos"> 405</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-406"><a href="#Parser-406"><span class="linenos"> 406</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="Parser-407"><a href="#Parser-407"><span class="linenos"> 407</span></a> <span class="p">),</span> +</span><span id="Parser-408"><a href="#Parser-408"><span class="linenos"> 408</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DHASH_ARROW</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">path</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-409"><a href="#Parser-409"><span class="linenos"> 409</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBExtractScalar</span><span class="p">,</span> +</span><span id="Parser-410"><a href="#Parser-410"><span class="linenos"> 410</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-411"><a href="#Parser-411"><span class="linenos"> 411</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">path</span><span class="p">,</span> +</span><span id="Parser-412"><a href="#Parser-412"><span class="linenos"> 412</span></a> <span class="p">),</span> +</span><span id="Parser-413"><a href="#Parser-413"><span class="linenos"> 413</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">key</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-414"><a href="#Parser-414"><span class="linenos"> 414</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">JSONBContains</span><span class="p">,</span> +</span><span id="Parser-415"><a href="#Parser-415"><span class="linenos"> 415</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-416"><a href="#Parser-416"><span class="linenos"> 416</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> +</span><span id="Parser-417"><a href="#Parser-417"><span class="linenos"> 417</span></a> <span class="p">),</span> +</span><span id="Parser-418"><a href="#Parser-418"><span class="linenos"> 418</span></a> <span class="p">}</span> +</span><span id="Parser-419"><a href="#Parser-419"><span class="linenos"> 419</span></a> +</span><span id="Parser-420"><a href="#Parser-420"><span class="linenos"> 420</span></a> <span class="n">EXPRESSION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-421"><a href="#Parser-421"><span class="linenos"> 421</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</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_column</span><span class="p">(),</span> +</span><span id="Parser-422"><a href="#Parser-422"><span class="linenos"> 422</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</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_types</span><span class="p">(),</span> +</span><span id="Parser-423"><a href="#Parser-423"><span class="linenos"> 423</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</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_from</span><span class="p">(),</span> +</span><span id="Parser-424"><a href="#Parser-424"><span class="linenos"> 424</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Group</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_group</span><span class="p">(),</span> +</span><span id="Parser-425"><a href="#Parser-425"><span class="linenos"> 425</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</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_id_var</span><span class="p">(),</span> +</span><span id="Parser-426"><a href="#Parser-426"><span class="linenos"> 426</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</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_lateral</span><span class="p">(),</span> +</span><span id="Parser-427"><a href="#Parser-427"><span class="linenos"> 427</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Join</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_join</span><span class="p">(),</span> +</span><span id="Parser-428"><a href="#Parser-428"><span class="linenos"> 428</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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_order</span><span class="p">(),</span> +</span><span id="Parser-429"><a href="#Parser-429"><span class="linenos"> 429</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> +</span><span id="Parser-430"><a href="#Parser-430"><span class="linenos"> 430</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> +</span><span id="Parser-431"><a href="#Parser-431"><span class="linenos"> 431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lambda</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_lambda</span><span class="p">(),</span> +</span><span id="Parser-432"><a href="#Parser-432"><span class="linenos"> 432</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</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_limit</span><span class="p">(),</span> +</span><span id="Parser-433"><a href="#Parser-433"><span class="linenos"> 433</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Offset</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_offset</span><span class="p">(),</span> +</span><span id="Parser-434"><a href="#Parser-434"><span class="linenos"> 434</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableAlias</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_table_alias</span><span class="p">(),</span> +</span><span id="Parser-435"><a href="#Parser-435"><span class="linenos"> 435</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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_table</span><span class="p">(),</span> +</span><span id="Parser-436"><a href="#Parser-436"><span class="linenos"> 436</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Condition</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_conjunction</span><span class="p">(),</span> +</span><span id="Parser-437"><a href="#Parser-437"><span class="linenos"> 437</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</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_statement</span><span class="p">(),</span> +</span><span id="Parser-438"><a href="#Parser-438"><span class="linenos"> 438</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Properties</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_properties</span><span class="p">(),</span> +</span><span id="Parser-439"><a href="#Parser-439"><span class="linenos"> 439</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</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_where</span><span class="p">(),</span> +</span><span id="Parser-440"><a href="#Parser-440"><span class="linenos"> 440</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Ordered</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_ordered</span><span class="p">(),</span> +</span><span id="Parser-441"><a href="#Parser-441"><span class="linenos"> 441</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Having</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_having</span><span class="p">(),</span> +</span><span id="Parser-442"><a href="#Parser-442"><span class="linenos"> 442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">With</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_with</span><span class="p">(),</span> +</span><span id="Parser-443"><a href="#Parser-443"><span class="linenos"> 443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</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_named_window</span><span class="p">(),</span> +</span><span id="Parser-444"><a href="#Parser-444"><span class="linenos"> 444</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Qualify</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_qualify</span><span class="p">(),</span> +</span><span id="Parser-445"><a href="#Parser-445"><span class="linenos"> 445</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Returning</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_returning</span><span class="p">(),</span> +</span><span id="Parser-446"><a href="#Parser-446"><span class="linenos"> 446</span></a> <span class="s2">"JOIN_TYPE"</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_join_side_and_kind</span><span class="p">(),</span> +</span><span id="Parser-447"><a href="#Parser-447"><span class="linenos"> 447</span></a> <span class="p">}</span> +</span><span id="Parser-448"><a href="#Parser-448"><span class="linenos"> 448</span></a> +</span><span id="Parser-449"><a href="#Parser-449"><span class="linenos"> 449</span></a> <span class="n">STATEMENT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-450"><a href="#Parser-450"><span class="linenos"> 450</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</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_alter</span><span class="p">(),</span> +</span><span id="Parser-451"><a href="#Parser-451"><span class="linenos"> 451</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BEGIN</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_transaction</span><span class="p">(),</span> +</span><span id="Parser-452"><a href="#Parser-452"><span class="linenos"> 452</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CACHE</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_cache</span><span class="p">(),</span> +</span><span id="Parser-453"><a href="#Parser-453"><span class="linenos"> 453</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMIT</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_commit_or_rollback</span><span class="p">(),</span> +</span><span id="Parser-454"><a href="#Parser-454"><span class="linenos"> 454</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</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_comment</span><span class="p">(),</span> +</span><span id="Parser-455"><a href="#Parser-455"><span class="linenos"> 455</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CREATE</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_create</span><span class="p">(),</span> +</span><span id="Parser-456"><a href="#Parser-456"><span class="linenos"> 456</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</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_delete</span><span class="p">(),</span> +</span><span id="Parser-457"><a href="#Parser-457"><span class="linenos"> 457</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</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_describe</span><span class="p">(),</span> +</span><span id="Parser-458"><a href="#Parser-458"><span class="linenos"> 458</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</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_describe</span><span class="p">(),</span> +</span><span id="Parser-459"><a href="#Parser-459"><span class="linenos"> 459</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</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_drop</span><span class="p">(),</span> +</span><span id="Parser-460"><a href="#Parser-460"><span class="linenos"> 460</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</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_commit_or_rollback</span><span class="p">(),</span> +</span><span id="Parser-461"><a href="#Parser-461"><span class="linenos"> 461</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</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_insert</span><span class="p">(),</span> +</span><span id="Parser-462"><a href="#Parser-462"><span class="linenos"> 462</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</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_load_data</span><span class="p">(),</span> +</span><span id="Parser-463"><a href="#Parser-463"><span class="linenos"> 463</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</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_merge</span><span class="p">(),</span> +</span><span id="Parser-464"><a href="#Parser-464"><span class="linenos"> 464</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</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_commit_or_rollback</span><span class="p">(),</span> +</span><span id="Parser-465"><a href="#Parser-465"><span class="linenos"> 465</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</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_set</span><span class="p">(),</span> +</span><span id="Parser-466"><a href="#Parser-466"><span class="linenos"> 466</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNCACHE</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_uncache</span><span class="p">(),</span> +</span><span id="Parser-467"><a href="#Parser-467"><span class="linenos"> 467</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</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_update</span><span class="p">(),</span> +</span><span id="Parser-468"><a href="#Parser-468"><span class="linenos"> 468</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</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><span id="Parser-469"><a href="#Parser-469"><span class="linenos"> 469</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Use</span><span class="p">,</span> +</span><span id="Parser-470"><a href="#Parser-470"><span class="linenos"> 470</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"ROLE"</span><span class="p">,</span> <span class="s2">"WAREHOUSE"</span><span class="p">,</span> <span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">))</span> +</span><span id="Parser-471"><a href="#Parser-471"><span class="linenos"> 471</span></a> <span class="ow">and</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="Parser-472"><a href="#Parser-472"><span class="linenos"> 472</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-473"><a href="#Parser-473"><span class="linenos"> 473</span></a> <span class="p">),</span> +</span><span id="Parser-474"><a href="#Parser-474"><span class="linenos"> 474</span></a> <span class="p">}</span> +</span><span id="Parser-475"><a href="#Parser-475"><span class="linenos"> 475</span></a> +</span><span id="Parser-476"><a href="#Parser-476"><span class="linenos"> 476</span></a> <span class="n">UNARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-477"><a href="#Parser-477"><span class="linenos"> 477</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLUS</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_unary</span><span class="p">(),</span> <span class="c1"># Unary + is handled as a no-op</span> +</span><span id="Parser-478"><a href="#Parser-478"><span class="linenos"> 478</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">()),</span> +</span><span id="Parser-479"><a href="#Parser-479"><span class="linenos"> 479</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TILDA</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">BitwiseNot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> +</span><span id="Parser-480"><a href="#Parser-480"><span class="linenos"> 480</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">DASH</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">Neg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">()),</span> +</span><span id="Parser-481"><a href="#Parser-481"><span class="linenos"> 481</span></a> <span class="p">}</span> +</span><span id="Parser-482"><a href="#Parser-482"><span class="linenos"> 482</span></a> +</span><span id="Parser-483"><a href="#Parser-483"><span class="linenos"> 483</span></a> <span class="n">PRIMARY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-484"><a href="#Parser-484"><span class="linenos"> 484</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-485"><a href="#Parser-485"><span class="linenos"> 485</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">True</span> +</span><span id="Parser-486"><a href="#Parser-486"><span class="linenos"> 486</span></a> <span class="p">),</span> +</span><span id="Parser-487"><a href="#Parser-487"><span class="linenos"> 487</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-488"><a href="#Parser-488"><span class="linenos"> 488</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">is_string</span><span class="o">=</span><span class="kc">False</span> +</span><span id="Parser-489"><a href="#Parser-489"><span class="linenos"> 489</span></a> <span class="p">),</span> +</span><span id="Parser-490"><a href="#Parser-490"><span class="linenos"> 490</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-491"><a href="#Parser-491"><span class="linenos"> 491</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Star</span><span class="p">,</span> +</span><span id="Parser-492"><a href="#Parser-492"><span class="linenos"> 492</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"except"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_except</span><span class="p">(),</span> <span class="s2">"replace"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_replace</span><span class="p">()},</span> +</span><span id="Parser-493"><a href="#Parser-493"><span class="linenos"> 493</span></a> <span class="p">),</span> +</span><span id="Parser-494"><a href="#Parser-494"><span class="linenos"> 494</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Null</span><span class="p">),</span> +</span><span id="Parser-495"><a href="#Parser-495"><span class="linenos"> 495</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-496"><a href="#Parser-496"><span class="linenos"> 496</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</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">Boolean</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-497"><a href="#Parser-497"><span class="linenos"> 497</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">BitString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="Parser-498"><a href="#Parser-498"><span class="linenos"> 498</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">HexString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="Parser-499"><a href="#Parser-499"><span class="linenos"> 499</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</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">ByteString</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">),</span> +</span><span id="Parser-500"><a href="#Parser-500"><span class="linenos"> 500</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTRODUCER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_introducer</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> +</span><span id="Parser-501"><a href="#Parser-501"><span class="linenos"> 501</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_national</span><span class="p">(</span><span class="n">token</span><span class="p">),</span> +</span><span id="Parser-502"><a href="#Parser-502"><span class="linenos"> 502</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SESSION_PARAMETER</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">_</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_session_parameter</span><span class="p">(),</span> +</span><span id="Parser-503"><a href="#Parser-503"><span class="linenos"> 503</span></a> <span class="p">}</span> +</span><span id="Parser-504"><a href="#Parser-504"><span class="linenos"> 504</span></a> +</span><span id="Parser-505"><a href="#Parser-505"><span class="linenos"> 505</span></a> <span class="n">PLACEHOLDER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-506"><a href="#Parser-506"><span class="linenos"> 506</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PLACEHOLDER</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">Placeholder</span><span class="p">),</span> +</span><span id="Parser-507"><a href="#Parser-507"><span class="linenos"> 507</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</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_parameter</span><span class="p">(),</span> +</span><span id="Parser-508"><a href="#Parser-508"><span class="linenos"> 508</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLON</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">Placeholder</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-509"><a href="#Parser-509"><span class="linenos"> 509</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">))</span> +</span><span id="Parser-510"><a href="#Parser-510"><span class="linenos"> 510</span></a> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-511"><a href="#Parser-511"><span class="linenos"> 511</span></a> <span class="p">}</span> +</span><span id="Parser-512"><a href="#Parser-512"><span class="linenos"> 512</span></a> +</span><span id="Parser-513"><a href="#Parser-513"><span class="linenos"> 513</span></a> <span class="n">RANGE_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-514"><a href="#Parser-514"><span class="linenos"> 514</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">BETWEEN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_between</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> +</span><span id="Parser-515"><a href="#Parser-515"><span class="linenos"> 515</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Glob</span><span class="p">),</span> +</span><span id="Parser-516"><a href="#Parser-516"><span class="linenos"> 516</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Overlaps</span><span class="p">),</span> +</span><span id="Parser-517"><a href="#Parser-517"><span class="linenos"> 517</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> +</span><span id="Parser-518"><a href="#Parser-518"><span class="linenos"> 518</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">:</span> <span class="k">lambda</span> <span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">),</span> +</span><span id="Parser-519"><a href="#Parser-519"><span class="linenos"> 519</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Like</span><span class="p">),</span> +</span><span id="Parser-520"><a href="#Parser-520"><span class="linenos"> 520</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ILike</span><span class="p">),</span> +</span><span id="Parser-521"><a href="#Parser-521"><span class="linenos"> 521</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IRLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpILike</span><span class="p">),</span> +</span><span id="Parser-522"><a href="#Parser-522"><span class="linenos"> 522</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">RegexpLike</span><span class="p">),</span> +</span><span id="Parser-523"><a href="#Parser-523"><span class="linenos"> 523</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">:</span> <span class="n">binary_range_parser</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SimilarTo</span><span class="p">),</span> +</span><span id="Parser-524"><a href="#Parser-524"><span class="linenos"> 524</span></a> <span class="p">}</span> +</span><span id="Parser-525"><a href="#Parser-525"><span class="linenos"> 525</span></a> +</span><span id="Parser-526"><a href="#Parser-526"><span class="linenos"> 526</span></a> <span class="n">PROPERTY_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-527"><a href="#Parser-527"><span class="linenos"> 527</span></a> <span class="s2">"AFTER"</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_afterjournal</span><span class="p">(</span> +</span><span id="Parser-528"><a href="#Parser-528"><span class="linenos"> 528</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> +</span><span id="Parser-529"><a href="#Parser-529"><span class="linenos"> 529</span></a> <span class="p">),</span> +</span><span id="Parser-530"><a href="#Parser-530"><span class="linenos"> 530</span></a> <span class="s2">"ALGORITHM"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AlgorithmProperty</span><span class="p">),</span> +</span><span id="Parser-531"><a href="#Parser-531"><span class="linenos"> 531</span></a> <span class="s2">"AUTO_INCREMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementProperty</span><span class="p">),</span> +</span><span id="Parser-532"><a href="#Parser-532"><span class="linenos"> 532</span></a> <span class="s2">"BEFORE"</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_journal</span><span class="p">(</span> +</span><span id="Parser-533"><a href="#Parser-533"><span class="linenos"> 533</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> +</span><span id="Parser-534"><a href="#Parser-534"><span class="linenos"> 534</span></a> <span class="p">),</span> +</span><span id="Parser-535"><a href="#Parser-535"><span class="linenos"> 535</span></a> <span class="s2">"BLOCKCOMPRESSION"</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_blockcompression</span><span class="p">(),</span> +</span><span id="Parser-536"><a href="#Parser-536"><span class="linenos"> 536</span></a> <span class="s2">"CHARACTER SET"</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_character_set</span><span class="p">(),</span> +</span><span id="Parser-537"><a href="#Parser-537"><span class="linenos"> 537</span></a> <span class="s2">"CHECKSUM"</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_checksum</span><span class="p">(),</span> +</span><span id="Parser-538"><a href="#Parser-538"><span class="linenos"> 538</span></a> <span class="s2">"CLUSTER BY"</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><span id="Parser-539"><a href="#Parser-539"><span class="linenos"> 539</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> +</span><span id="Parser-540"><a href="#Parser-540"><span class="linenos"> 540</span></a> <span class="p">),</span> +</span><span id="Parser-541"><a href="#Parser-541"><span class="linenos"> 541</span></a> <span class="s2">"COLLATE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">CollateProperty</span><span class="p">),</span> +</span><span id="Parser-542"><a href="#Parser-542"><span class="linenos"> 542</span></a> <span class="s2">"COMMENT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">SchemaCommentProperty</span><span class="p">),</span> +</span><span id="Parser-543"><a href="#Parser-543"><span class="linenos"> 543</span></a> <span class="s2">"DATABLOCKSIZE"</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_datablocksize</span><span class="p">(</span> +</span><span id="Parser-544"><a href="#Parser-544"><span class="linenos"> 544</span></a> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> +</span><span id="Parser-545"><a href="#Parser-545"><span class="linenos"> 545</span></a> <span class="p">),</span> +</span><span id="Parser-546"><a href="#Parser-546"><span class="linenos"> 546</span></a> <span class="s2">"DEFINER"</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_definer</span><span class="p">(),</span> +</span><span id="Parser-547"><a href="#Parser-547"><span class="linenos"> 547</span></a> <span class="s2">"DETERMINISTIC"</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><span id="Parser-548"><a href="#Parser-548"><span class="linenos"> 548</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> +</span><span id="Parser-549"><a href="#Parser-549"><span class="linenos"> 549</span></a> <span class="p">),</span> +</span><span id="Parser-550"><a href="#Parser-550"><span class="linenos"> 550</span></a> <span class="s2">"DISTKEY"</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_distkey</span><span class="p">(),</span> +</span><span id="Parser-551"><a href="#Parser-551"><span class="linenos"> 551</span></a> <span class="s2">"DISTSTYLE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">DistStyleProperty</span><span class="p">),</span> +</span><span id="Parser-552"><a href="#Parser-552"><span class="linenos"> 552</span></a> <span class="s2">"EXECUTE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">ExecuteAsProperty</span><span class="p">),</span> +</span><span id="Parser-553"><a href="#Parser-553"><span class="linenos"> 553</span></a> <span class="s2">"EXTERNAL"</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">ExternalProperty</span><span class="p">),</span> +</span><span id="Parser-554"><a href="#Parser-554"><span class="linenos"> 554</span></a> <span class="s2">"FALLBACK"</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_fallback</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> +</span><span id="Parser-555"><a href="#Parser-555"><span class="linenos"> 555</span></a> <span class="s2">"FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> +</span><span id="Parser-556"><a href="#Parser-556"><span class="linenos"> 556</span></a> <span class="s2">"FREESPACE"</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_freespace</span><span class="p">(),</span> +</span><span id="Parser-557"><a href="#Parser-557"><span class="linenos"> 557</span></a> <span class="s2">"GLOBAL"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-558"><a href="#Parser-558"><span class="linenos"> 558</span></a> <span class="s2">"IMMUTABLE"</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><span id="Parser-559"><a href="#Parser-559"><span class="linenos"> 559</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"IMMUTABLE"</span><span class="p">)</span> +</span><span id="Parser-560"><a href="#Parser-560"><span class="linenos"> 560</span></a> <span class="p">),</span> +</span><span id="Parser-561"><a href="#Parser-561"><span class="linenos"> 561</span></a> <span class="s2">"JOURNAL"</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_journal</span><span class="p">(</span> +</span><span id="Parser-562"><a href="#Parser-562"><span class="linenos"> 562</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DUAL"</span> +</span><span id="Parser-563"><a href="#Parser-563"><span class="linenos"> 563</span></a> <span class="p">),</span> +</span><span id="Parser-564"><a href="#Parser-564"><span class="linenos"> 564</span></a> <span class="s2">"LANGUAGE"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LanguageProperty</span><span class="p">),</span> +</span><span id="Parser-565"><a href="#Parser-565"><span class="linenos"> 565</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> +</span><span id="Parser-566"><a href="#Parser-566"><span class="linenos"> 566</span></a> <span class="s2">"LOCAL"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-567"><a href="#Parser-567"><span class="linenos"> 567</span></a> <span class="s2">"LOCATION"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">LocationProperty</span><span class="p">),</span> +</span><span id="Parser-568"><a href="#Parser-568"><span class="linenos"> 568</span></a> <span class="s2">"LOCK"</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_locking</span><span class="p">(),</span> +</span><span id="Parser-569"><a href="#Parser-569"><span class="linenos"> 569</span></a> <span class="s2">"LOCKING"</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_locking</span><span class="p">(),</span> +</span><span id="Parser-570"><a href="#Parser-570"><span class="linenos"> 570</span></a> <span class="s2">"LOG"</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_log</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">),</span> +</span><span id="Parser-571"><a href="#Parser-571"><span class="linenos"> 571</span></a> <span class="s2">"MATERIALIZED"</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">MaterializedProperty</span><span class="p">),</span> +</span><span id="Parser-572"><a href="#Parser-572"><span class="linenos"> 572</span></a> <span class="s2">"MAX"</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_datablocksize</span><span class="p">(),</span> +</span><span id="Parser-573"><a href="#Parser-573"><span class="linenos"> 573</span></a> <span class="s2">"MAXIMUM"</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_datablocksize</span><span class="p">(),</span> +</span><span id="Parser-574"><a href="#Parser-574"><span class="linenos"> 574</span></a> <span class="s2">"MERGEBLOCKRATIO"</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_mergeblockratio</span><span class="p">(</span> +</span><span id="Parser-575"><a href="#Parser-575"><span class="linenos"> 575</span></a> <span class="n">no</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"DEFAULT"</span> +</span><span id="Parser-576"><a href="#Parser-576"><span class="linenos"> 576</span></a> <span class="p">),</span> +</span><span id="Parser-577"><a href="#Parser-577"><span class="linenos"> 577</span></a> <span class="s2">"MIN"</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_datablocksize</span><span class="p">(),</span> +</span><span id="Parser-578"><a href="#Parser-578"><span class="linenos"> 578</span></a> <span class="s2">"MINIMUM"</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_datablocksize</span><span class="p">(),</span> +</span><span id="Parser-579"><a href="#Parser-579"><span class="linenos"> 579</span></a> <span class="s2">"MULTISET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-580"><a href="#Parser-580"><span class="linenos"> 580</span></a> <span class="s2">"NO"</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_noprimaryindex</span><span class="p">(),</span> +</span><span id="Parser-581"><a href="#Parser-581"><span class="linenos"> 581</span></a> <span class="s2">"NOT"</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_afterjournal</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-582"><a href="#Parser-582"><span class="linenos"> 582</span></a> <span class="s2">"ON"</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_oncommit</span><span class="p">(),</span> +</span><span id="Parser-583"><a href="#Parser-583"><span class="linenos"> 583</span></a> <span class="s2">"PARTITION BY"</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_partitioned_by</span><span class="p">(),</span> +</span><span id="Parser-584"><a href="#Parser-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITIONED BY"</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_partitioned_by</span><span class="p">(),</span> +</span><span id="Parser-585"><a href="#Parser-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITIONED_BY"</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_partitioned_by</span><span class="p">(),</span> +</span><span id="Parser-586"><a href="#Parser-586"><span class="linenos"> 586</span></a> <span class="s2">"RETURNS"</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_returns</span><span class="p">(),</span> +</span><span id="Parser-587"><a href="#Parser-587"><span class="linenos"> 587</span></a> <span class="s2">"ROW"</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_row</span><span class="p">(),</span> +</span><span id="Parser-588"><a href="#Parser-588"><span class="linenos"> 588</span></a> <span class="s2">"SET"</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">SetProperty</span><span class="p">,</span> <span class="n">multi</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-589"><a href="#Parser-589"><span class="linenos"> 589</span></a> <span class="s2">"SORTKEY"</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_sortkey</span><span class="p">(),</span> +</span><span id="Parser-590"><a href="#Parser-590"><span class="linenos"> 590</span></a> <span class="s2">"STABLE"</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><span id="Parser-591"><a href="#Parser-591"><span class="linenos"> 591</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"STABLE"</span><span class="p">)</span> +</span><span id="Parser-592"><a href="#Parser-592"><span class="linenos"> 592</span></a> <span class="p">),</span> +</span><span id="Parser-593"><a href="#Parser-593"><span class="linenos"> 593</span></a> <span class="s2">"STORED"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">FileFormatProperty</span><span class="p">),</span> +</span><span id="Parser-594"><a href="#Parser-594"><span class="linenos"> 594</span></a> <span class="s2">"TABLE_FORMAT"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> +</span><span id="Parser-595"><a href="#Parser-595"><span class="linenos"> 595</span></a> <span class="s2">"TBLPROPERTIES"</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_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">),</span> +</span><span id="Parser-596"><a href="#Parser-596"><span class="linenos"> 596</span></a> <span class="s2">"TEMPORARY"</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_temporary</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-597"><a href="#Parser-597"><span class="linenos"> 597</span></a> <span class="s2">"TRANSIENT"</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">TransientProperty</span><span class="p">),</span> +</span><span id="Parser-598"><a href="#Parser-598"><span class="linenos"> 598</span></a> <span class="s2">"USING"</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_property_assignment</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">TableFormatProperty</span><span class="p">),</span> +</span><span id="Parser-599"><a href="#Parser-599"><span class="linenos"> 599</span></a> <span class="s2">"VOLATILE"</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><span id="Parser-600"><a href="#Parser-600"><span class="linenos"> 600</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">VolatilityProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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">"VOLATILE"</span><span class="p">)</span> +</span><span id="Parser-601"><a href="#Parser-601"><span class="linenos"> 601</span></a> <span class="p">),</span> +</span><span id="Parser-602"><a href="#Parser-602"><span class="linenos"> 602</span></a> <span class="s2">"WITH"</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_with_property</span><span class="p">(),</span> +</span><span id="Parser-603"><a href="#Parser-603"><span class="linenos"> 603</span></a> <span class="p">}</span> +</span><span id="Parser-604"><a href="#Parser-604"><span class="linenos"> 604</span></a> +</span><span id="Parser-605"><a href="#Parser-605"><span class="linenos"> 605</span></a> <span class="n">CONSTRAINT_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-606"><a href="#Parser-606"><span class="linenos"> 606</span></a> <span class="s2">"AUTOINCREMENT"</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_auto_increment</span><span class="p">(),</span> +</span><span id="Parser-607"><a href="#Parser-607"><span class="linenos"> 607</span></a> <span class="s2">"AUTO_INCREMENT"</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_auto_increment</span><span class="p">(),</span> +</span><span id="Parser-608"><a href="#Parser-608"><span class="linenos"> 608</span></a> <span class="s2">"CASESPECIFIC"</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-609"><a href="#Parser-609"><span class="linenos"> 609</span></a> <span class="s2">"CHARACTER SET"</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><span id="Parser-610"><a href="#Parser-610"><span class="linenos"> 610</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="Parser-611"><a href="#Parser-611"><span class="linenos"> 611</span></a> <span class="p">),</span> +</span><span id="Parser-612"><a href="#Parser-612"><span class="linenos"> 612</span></a> <span class="s2">"CHECK"</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><span id="Parser-613"><a href="#Parser-613"><span class="linenos"> 613</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CheckColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-614"><a href="#Parser-614"><span class="linenos"> 614</span></a> <span class="p">),</span> +</span><span id="Parser-615"><a href="#Parser-615"><span class="linenos"> 615</span></a> <span class="s2">"COLLATE"</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><span id="Parser-616"><a href="#Parser-616"><span class="linenos"> 616</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CollateColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> +</span><span id="Parser-617"><a href="#Parser-617"><span class="linenos"> 617</span></a> <span class="p">),</span> +</span><span id="Parser-618"><a href="#Parser-618"><span class="linenos"> 618</span></a> <span class="s2">"COMMENT"</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><span id="Parser-619"><a href="#Parser-619"><span class="linenos"> 619</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CommentColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-620"><a href="#Parser-620"><span class="linenos"> 620</span></a> <span class="p">),</span> +</span><span id="Parser-621"><a href="#Parser-621"><span class="linenos"> 621</span></a> <span class="s2">"COMPRESS"</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_compress</span><span class="p">(),</span> +</span><span id="Parser-622"><a href="#Parser-622"><span class="linenos"> 622</span></a> <span class="s2">"DEFAULT"</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><span id="Parser-623"><a href="#Parser-623"><span class="linenos"> 623</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DefaultColumnConstraint</span><span class="p">,</span> <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="Parser-624"><a href="#Parser-624"><span class="linenos"> 624</span></a> <span class="p">),</span> +</span><span id="Parser-625"><a href="#Parser-625"><span class="linenos"> 625</span></a> <span class="s2">"ENCODE"</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">EncodeColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()),</span> +</span><span id="Parser-626"><a href="#Parser-626"><span class="linenos"> 626</span></a> <span class="s2">"FOREIGN KEY"</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_foreign_key</span><span class="p">(),</span> +</span><span id="Parser-627"><a href="#Parser-627"><span class="linenos"> 627</span></a> <span class="s2">"FORMAT"</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><span id="Parser-628"><a href="#Parser-628"><span class="linenos"> 628</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DateFormatColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="Parser-629"><a href="#Parser-629"><span class="linenos"> 629</span></a> <span class="p">),</span> +</span><span id="Parser-630"><a href="#Parser-630"><span class="linenos"> 630</span></a> <span class="s2">"GENERATED"</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_generated_as_identity</span><span class="p">(),</span> +</span><span id="Parser-631"><a href="#Parser-631"><span class="linenos"> 631</span></a> <span class="s2">"IDENTITY"</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_auto_increment</span><span class="p">(),</span> +</span><span id="Parser-632"><a href="#Parser-632"><span class="linenos"> 632</span></a> <span class="s2">"INLINE"</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_inline</span><span class="p">(),</span> +</span><span id="Parser-633"><a href="#Parser-633"><span class="linenos"> 633</span></a> <span class="s2">"LIKE"</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_create_like</span><span class="p">(),</span> +</span><span id="Parser-634"><a href="#Parser-634"><span class="linenos"> 634</span></a> <span class="s2">"NOT"</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_not_constraint</span><span class="p">(),</span> +</span><span id="Parser-635"><a href="#Parser-635"><span class="linenos"> 635</span></a> <span class="s2">"NULL"</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">NotNullColumnConstraint</span><span class="p">,</span> <span class="n">allow_null</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-636"><a href="#Parser-636"><span class="linenos"> 636</span></a> <span class="s2">"PATH"</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">PathColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()),</span> +</span><span id="Parser-637"><a href="#Parser-637"><span class="linenos"> 637</span></a> <span class="s2">"PRIMARY KEY"</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_primary_key</span><span class="p">(),</span> +</span><span id="Parser-638"><a href="#Parser-638"><span class="linenos"> 638</span></a> <span class="s2">"TITLE"</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><span id="Parser-639"><a href="#Parser-639"><span class="linenos"> 639</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TitleColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="Parser-640"><a href="#Parser-640"><span class="linenos"> 640</span></a> <span class="p">),</span> +</span><span id="Parser-641"><a href="#Parser-641"><span class="linenos"> 641</span></a> <span class="s2">"UNIQUE"</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_unique</span><span class="p">(),</span> +</span><span id="Parser-642"><a href="#Parser-642"><span class="linenos"> 642</span></a> <span class="s2">"UPPERCASE"</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">UppercaseColumnConstraint</span><span class="p">),</span> +</span><span id="Parser-643"><a href="#Parser-643"><span class="linenos"> 643</span></a> <span class="p">}</span> +</span><span id="Parser-644"><a href="#Parser-644"><span class="linenos"> 644</span></a> +</span><span id="Parser-645"><a href="#Parser-645"><span class="linenos"> 645</span></a> <span class="n">ALTER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-646"><a href="#Parser-646"><span class="linenos"> 646</span></a> <span class="s2">"ADD"</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_alter_table_add</span><span class="p">(),</span> +</span><span id="Parser-647"><a href="#Parser-647"><span class="linenos"> 647</span></a> <span class="s2">"ALTER"</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_alter_table_alter</span><span class="p">(),</span> +</span><span id="Parser-648"><a href="#Parser-648"><span class="linenos"> 648</span></a> <span class="s2">"DELETE"</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">Delete</span><span class="p">,</span> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">()),</span> +</span><span id="Parser-649"><a href="#Parser-649"><span class="linenos"> 649</span></a> <span class="s2">"DROP"</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_alter_table_drop</span><span class="p">(),</span> +</span><span id="Parser-650"><a href="#Parser-650"><span class="linenos"> 650</span></a> <span class="s2">"RENAME"</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_alter_table_rename</span><span class="p">(),</span> +</span><span id="Parser-651"><a href="#Parser-651"><span class="linenos"> 651</span></a> <span class="p">}</span> +</span><span id="Parser-652"><a href="#Parser-652"><span class="linenos"> 652</span></a> +</span><span id="Parser-653"><a href="#Parser-653"><span class="linenos"> 653</span></a> <span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"CHECK"</span><span class="p">,</span> <span class="s2">"FOREIGN KEY"</span><span class="p">,</span> <span class="s2">"LIKE"</span><span class="p">,</span> <span class="s2">"PRIMARY KEY"</span><span class="p">,</span> <span class="s2">"UNIQUE"</span><span class="p">}</span> +</span><span id="Parser-654"><a href="#Parser-654"><span class="linenos"> 654</span></a> +</span><span id="Parser-655"><a href="#Parser-655"><span class="linenos"> 655</span></a> <span class="n">NO_PAREN_FUNCTION_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-656"><a href="#Parser-656"><span class="linenos"> 656</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">CASE</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_case</span><span class="p">(),</span> +</span><span id="Parser-657"><a href="#Parser-657"><span class="linenos"> 657</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</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_if</span><span class="p">(),</span> +</span><span id="Parser-658"><a href="#Parser-658"><span class="linenos"> 658</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">ANY</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">Any</span><span class="p">,</span> <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="Parser-659"><a href="#Parser-659"><span class="linenos"> 659</span></a> <span class="p">}</span> +</span><span id="Parser-660"><a href="#Parser-660"><span class="linenos"> 660</span></a> +</span><span id="Parser-661"><a href="#Parser-661"><span class="linenos"> 661</span></a> <span class="n">FUNCTION_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-662"><a href="#Parser-662"><span class="linenos"> 662</span></a> <span class="s2">"CAST"</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_cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STRICT_CAST</span><span class="p">),</span> </span><span id="Parser-663"><a href="#Parser-663"><span class="linenos"> 663</span></a> <span class="s2">"CONVERT"</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_convert</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STRICT_CAST</span><span class="p">),</span> -</span><span id="Parser-664"><a href="#Parser-664"><span class="linenos"> 664</span></a> <span class="s2">"TRY_CONVERT"</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_convert</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-665"><a href="#Parser-665"><span class="linenos"> 665</span></a> <span class="s2">"EXTRACT"</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_extract</span><span class="p">(),</span> -</span><span id="Parser-666"><a href="#Parser-666"><span class="linenos"> 666</span></a> <span class="s2">"POSITION"</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_position</span><span class="p">(),</span> +</span><span id="Parser-664"><a href="#Parser-664"><span class="linenos"> 664</span></a> <span class="s2">"EXTRACT"</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_extract</span><span class="p">(),</span> +</span><span id="Parser-665"><a href="#Parser-665"><span class="linenos"> 665</span></a> <span class="s2">"POSITION"</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_position</span><span class="p">(),</span> +</span><span id="Parser-666"><a href="#Parser-666"><span class="linenos"> 666</span></a> <span class="s2">"STRING_AGG"</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_string_agg</span><span class="p">(),</span> </span><span id="Parser-667"><a href="#Parser-667"><span class="linenos"> 667</span></a> <span class="s2">"SUBSTRING"</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_substring</span><span class="p">(),</span> </span><span id="Parser-668"><a href="#Parser-668"><span class="linenos"> 668</span></a> <span class="s2">"TRIM"</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_trim</span><span class="p">(),</span> -</span><span id="Parser-669"><a href="#Parser-669"><span class="linenos"> 669</span></a> <span class="s2">"CAST"</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_cast</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STRICT_CAST</span><span class="p">),</span> -</span><span id="Parser-670"><a href="#Parser-670"><span class="linenos"> 670</span></a> <span class="s2">"TRY_CAST"</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_cast</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-671"><a href="#Parser-671"><span class="linenos"> 671</span></a> <span class="s2">"STRING_AGG"</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_string_agg</span><span class="p">(),</span> -</span><span id="Parser-672"><a href="#Parser-672"><span class="linenos"> 672</span></a> <span class="p">}</span> -</span><span id="Parser-673"><a href="#Parser-673"><span class="linenos"> 673</span></a> -</span><span id="Parser-674"><a href="#Parser-674"><span class="linenos"> 674</span></a> <span class="n">QUERY_MODIFIER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Parser-675"><a href="#Parser-675"><span class="linenos"> 675</span></a> <span class="s2">"match"</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_match_recognize</span><span class="p">(),</span> -</span><span id="Parser-676"><a href="#Parser-676"><span class="linenos"> 676</span></a> <span class="s2">"where"</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_where</span><span class="p">(),</span> -</span><span id="Parser-677"><a href="#Parser-677"><span class="linenos"> 677</span></a> <span class="s2">"group"</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_group</span><span class="p">(),</span> -</span><span id="Parser-678"><a href="#Parser-678"><span class="linenos"> 678</span></a> <span class="s2">"having"</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_having</span><span class="p">(),</span> -</span><span id="Parser-679"><a href="#Parser-679"><span class="linenos"> 679</span></a> <span class="s2">"qualify"</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_qualify</span><span class="p">(),</span> -</span><span id="Parser-680"><a href="#Parser-680"><span class="linenos"> 680</span></a> <span class="s2">"windows"</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_window_clause</span><span class="p">(),</span> -</span><span id="Parser-681"><a href="#Parser-681"><span class="linenos"> 681</span></a> <span class="s2">"distribute"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distribute</span><span class="p">),</span> -</span><span id="Parser-682"><a href="#Parser-682"><span class="linenos"> 682</span></a> <span class="s2">"sort"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> -</span><span id="Parser-683"><a href="#Parser-683"><span class="linenos"> 683</span></a> <span class="s2">"cluster"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> -</span><span id="Parser-684"><a href="#Parser-684"><span class="linenos"> 684</span></a> <span class="s2">"order"</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_order</span><span class="p">(),</span> -</span><span id="Parser-685"><a href="#Parser-685"><span class="linenos"> 685</span></a> <span class="s2">"limit"</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_limit</span><span class="p">(),</span> -</span><span id="Parser-686"><a href="#Parser-686"><span class="linenos"> 686</span></a> <span class="s2">"offset"</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_offset</span><span class="p">(),</span> -</span><span id="Parser-687"><a href="#Parser-687"><span class="linenos"> 687</span></a> <span class="s2">"lock"</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_lock</span><span class="p">(),</span> -</span><span id="Parser-688"><a href="#Parser-688"><span class="linenos"> 688</span></a> <span class="s2">"sample"</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_table_sample</span><span class="p">(</span><span class="n">as_modifier</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-689"><a href="#Parser-689"><span class="linenos"> 689</span></a> <span class="p">}</span> -</span><span id="Parser-690"><a href="#Parser-690"><span class="linenos"> 690</span></a> -</span><span id="Parser-691"><a href="#Parser-691"><span class="linenos"> 691</span></a> <span class="n">SHOW_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="Parser-692"><a href="#Parser-692"><span class="linenos"> 692</span></a> <span class="n">SET_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="Parser-693"><a href="#Parser-693"><span class="linenos"> 693</span></a> -</span><span id="Parser-694"><a href="#Parser-694"><span class="linenos"> 694</span></a> <span class="n">MODIFIABLES</span> <span class="o">=</span> <span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> -</span><span id="Parser-695"><a href="#Parser-695"><span class="linenos"> 695</span></a> -</span><span id="Parser-696"><a href="#Parser-696"><span class="linenos"> 696</span></a> <span class="n">TRANSACTION_KIND</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"DEFERRED"</span><span class="p">,</span> <span class="s2">"IMMEDIATE"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">}</span> -</span><span id="Parser-697"><a href="#Parser-697"><span class="linenos"> 697</span></a> -</span><span id="Parser-698"><a href="#Parser-698"><span class="linenos"> 698</span></a> <span class="n">INSERT_ALTERNATIVES</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"ABORT"</span><span class="p">,</span> <span class="s2">"FAIL"</span><span class="p">,</span> <span class="s2">"IGNORE"</span><span class="p">,</span> <span class="s2">"REPLACE"</span><span class="p">,</span> <span class="s2">"ROLLBACK"</span><span class="p">}</span> -</span><span id="Parser-699"><a href="#Parser-699"><span class="linenos"> 699</span></a> -</span><span id="Parser-700"><a href="#Parser-700"><span class="linenos"> 700</span></a> <span class="n">WINDOW_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">}</span> -</span><span id="Parser-701"><a href="#Parser-701"><span class="linenos"> 701</span></a> -</span><span id="Parser-702"><a href="#Parser-702"><span class="linenos"> 702</span></a> <span class="n">ADD_CONSTRAINT_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">}</span> -</span><span id="Parser-703"><a href="#Parser-703"><span class="linenos"> 703</span></a> -</span><span id="Parser-704"><a href="#Parser-704"><span class="linenos"> 704</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-705"><a href="#Parser-705"><span class="linenos"> 705</span></a> -</span><span id="Parser-706"><a href="#Parser-706"><span class="linenos"> 706</span></a> <span class="n">INTEGER_DIVISION</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-707"><a href="#Parser-707"><span class="linenos"> 707</span></a> -</span><span id="Parser-708"><a href="#Parser-708"><span class="linenos"> 708</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-709"><a href="#Parser-709"><span class="linenos"> 709</span></a> -</span><span id="Parser-710"><a href="#Parser-710"><span class="linenos"> 710</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-711"><a href="#Parser-711"><span class="linenos"> 711</span></a> <span class="s2">"error_level"</span><span class="p">,</span> -</span><span id="Parser-712"><a href="#Parser-712"><span class="linenos"> 712</span></a> <span class="s2">"error_message_context"</span><span class="p">,</span> -</span><span id="Parser-713"><a href="#Parser-713"><span class="linenos"> 713</span></a> <span class="s2">"sql"</span><span class="p">,</span> -</span><span id="Parser-714"><a href="#Parser-714"><span class="linenos"> 714</span></a> <span class="s2">"errors"</span><span class="p">,</span> -</span><span id="Parser-715"><a href="#Parser-715"><span class="linenos"> 715</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> -</span><span id="Parser-716"><a href="#Parser-716"><span class="linenos"> 716</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> -</span><span id="Parser-717"><a href="#Parser-717"><span class="linenos"> 717</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> -</span><span id="Parser-718"><a href="#Parser-718"><span class="linenos"> 718</span></a> <span class="s2">"max_errors"</span><span class="p">,</span> -</span><span id="Parser-719"><a href="#Parser-719"><span class="linenos"> 719</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> -</span><span id="Parser-720"><a href="#Parser-720"><span class="linenos"> 720</span></a> <span class="s2">"_tokens"</span><span class="p">,</span> -</span><span id="Parser-721"><a href="#Parser-721"><span class="linenos"> 721</span></a> <span class="s2">"_index"</span><span class="p">,</span> -</span><span id="Parser-722"><a href="#Parser-722"><span class="linenos"> 722</span></a> <span class="s2">"_curr"</span><span class="p">,</span> -</span><span id="Parser-723"><a href="#Parser-723"><span class="linenos"> 723</span></a> <span class="s2">"_next"</span><span class="p">,</span> -</span><span id="Parser-724"><a href="#Parser-724"><span class="linenos"> 724</span></a> <span class="s2">"_prev"</span><span class="p">,</span> -</span><span id="Parser-725"><a href="#Parser-725"><span class="linenos"> 725</span></a> <span class="s2">"_prev_comments"</span><span class="p">,</span> -</span><span id="Parser-726"><a href="#Parser-726"><span class="linenos"> 726</span></a> <span class="s2">"_show_trie"</span><span class="p">,</span> -</span><span id="Parser-727"><a href="#Parser-727"><span class="linenos"> 727</span></a> <span class="s2">"_set_trie"</span><span class="p">,</span> -</span><span id="Parser-728"><a href="#Parser-728"><span class="linenos"> 728</span></a> <span class="p">)</span> -</span><span id="Parser-729"><a href="#Parser-729"><span class="linenos"> 729</span></a> -</span><span id="Parser-730"><a href="#Parser-730"><span class="linenos"> 730</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="Parser-731"><a href="#Parser-731"><span class="linenos"> 731</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser-732"><a href="#Parser-732"><span class="linenos"> 732</span></a> <span class="n">error_level</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">ErrorLevel</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-733"><a href="#Parser-733"><span class="linenos"> 733</span></a> <span class="n">error_message_context</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> -</span><span id="Parser-734"><a href="#Parser-734"><span class="linenos"> 734</span></a> <span class="n">index_offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> -</span><span id="Parser-735"><a href="#Parser-735"><span class="linenos"> 735</span></a> <span class="n">unnest_column_only</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="Parser-736"><a href="#Parser-736"><span class="linenos"> 736</span></a> <span class="n">alias_post_tablesample</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="Parser-737"><a href="#Parser-737"><span class="linenos"> 737</span></a> <span class="n">max_errors</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> -</span><span id="Parser-738"><a href="#Parser-738"><span class="linenos"> 738</span></a> <span class="n">null_ordering</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-739"><a href="#Parser-739"><span class="linenos"> 739</span></a> <span class="p">):</span> -</span><span id="Parser-740"><a href="#Parser-740"><span class="linenos"> 740</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">=</span> <span class="n">error_level</span> <span class="ow">or</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span> -</span><span id="Parser-741"><a href="#Parser-741"><span class="linenos"> 741</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span> <span class="o">=</span> <span class="n">error_message_context</span> -</span><span id="Parser-742"><a href="#Parser-742"><span class="linenos"> 742</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> -</span><span id="Parser-743"><a href="#Parser-743"><span class="linenos"> 743</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> -</span><span id="Parser-744"><a href="#Parser-744"><span class="linenos"> 744</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> -</span><span id="Parser-745"><a href="#Parser-745"><span class="linenos"> 745</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span> <span class="o">=</span> <span class="n">max_errors</span> -</span><span id="Parser-746"><a href="#Parser-746"><span class="linenos"> 746</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> -</span><span id="Parser-747"><a href="#Parser-747"><span class="linenos"> 747</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> -</span><span id="Parser-748"><a href="#Parser-748"><span class="linenos"> 748</span></a> -</span><span id="Parser-749"><a href="#Parser-749"><span class="linenos"> 749</span></a> <span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Parser-750"><a href="#Parser-750"><span class="linenos"> 750</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Parser-751"><a href="#Parser-751"><span class="linenos"> 751</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-752"><a href="#Parser-752"><span class="linenos"> 752</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-753"><a href="#Parser-753"><span class="linenos"> 753</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="Parser-754"><a href="#Parser-754"><span class="linenos"> 754</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-755"><a href="#Parser-755"><span class="linenos"> 755</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-756"><a href="#Parser-756"><span class="linenos"> 756</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-757"><a href="#Parser-757"><span class="linenos"> 757</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-758"><a href="#Parser-758"><span class="linenos"> 758</span></a> -</span><span id="Parser-759"><a href="#Parser-759"><span class="linenos"> 759</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span> -</span><span id="Parser-760"><a href="#Parser-760"><span class="linenos"> 760</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-761"><a href="#Parser-761"><span class="linenos"> 761</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-762"><a href="#Parser-762"><span class="linenos"> 762</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-763"><a href="#Parser-763"><span class="linenos"> 763</span></a><span class="sd"> Parses a list of tokens and returns a list of syntax trees, one tree</span> -</span><span id="Parser-764"><a href="#Parser-764"><span class="linenos"> 764</span></a><span class="sd"> per parsed SQL statement.</span> -</span><span id="Parser-765"><a href="#Parser-765"><span class="linenos"> 765</span></a> -</span><span id="Parser-766"><a href="#Parser-766"><span class="linenos"> 766</span></a><span class="sd"> Args:</span> -</span><span id="Parser-767"><a href="#Parser-767"><span class="linenos"> 767</span></a><span class="sd"> raw_tokens: the list of tokens.</span> -</span><span id="Parser-768"><a href="#Parser-768"><span class="linenos"> 768</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> -</span><span id="Parser-769"><a href="#Parser-769"><span class="linenos"> 769</span></a> -</span><span id="Parser-770"><a href="#Parser-770"><span class="linenos"> 770</span></a><span class="sd"> Returns:</span> -</span><span id="Parser-771"><a href="#Parser-771"><span class="linenos"> 771</span></a><span class="sd"> The list of syntax trees.</span> -</span><span id="Parser-772"><a href="#Parser-772"><span class="linenos"> 772</span></a><span class="sd"> """</span> -</span><span id="Parser-773"><a href="#Parser-773"><span class="linenos"> 773</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span> -</span><span id="Parser-774"><a href="#Parser-774"><span class="linenos"> 774</span></a> <span class="n">parse_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="o">=</span><span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="o">=</span><span class="n">sql</span> -</span><span id="Parser-775"><a href="#Parser-775"><span class="linenos"> 775</span></a> <span class="p">)</span> -</span><span id="Parser-776"><a href="#Parser-776"><span class="linenos"> 776</span></a> -</span><span id="Parser-777"><a href="#Parser-777"><span class="linenos"> 777</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> -</span><span id="Parser-778"><a href="#Parser-778"><span class="linenos"> 778</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser-779"><a href="#Parser-779"><span class="linenos"> 779</span></a> <span class="n">expression_types</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> -</span><span id="Parser-780"><a href="#Parser-780"><span class="linenos"> 780</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> -</span><span id="Parser-781"><a href="#Parser-781"><span class="linenos"> 781</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-782"><a href="#Parser-782"><span class="linenos"> 782</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-783"><a href="#Parser-783"><span class="linenos"> 783</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-784"><a href="#Parser-784"><span class="linenos"> 784</span></a><span class="sd"> Parses a list of tokens into a given Expression type. If a collection of Expression</span> -</span><span id="Parser-785"><a href="#Parser-785"><span class="linenos"> 785</span></a><span class="sd"> types is given instead, this method will try to parse the token list into each one</span> -</span><span id="Parser-786"><a href="#Parser-786"><span class="linenos"> 786</span></a><span class="sd"> of them, stopping at the first for which the parsing succeeds.</span> -</span><span id="Parser-787"><a href="#Parser-787"><span class="linenos"> 787</span></a> -</span><span id="Parser-788"><a href="#Parser-788"><span class="linenos"> 788</span></a><span class="sd"> Args:</span> -</span><span id="Parser-789"><a href="#Parser-789"><span class="linenos"> 789</span></a><span class="sd"> expression_types: the expression type(s) to try and parse the token list into.</span> -</span><span id="Parser-790"><a href="#Parser-790"><span class="linenos"> 790</span></a><span class="sd"> raw_tokens: the list of tokens.</span> -</span><span id="Parser-791"><a href="#Parser-791"><span class="linenos"> 791</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> -</span><span id="Parser-792"><a href="#Parser-792"><span class="linenos"> 792</span></a> -</span><span id="Parser-793"><a href="#Parser-793"><span class="linenos"> 793</span></a><span class="sd"> Returns:</span> -</span><span id="Parser-794"><a href="#Parser-794"><span class="linenos"> 794</span></a><span class="sd"> The target Expression.</span> -</span><span id="Parser-795"><a href="#Parser-795"><span class="linenos"> 795</span></a><span class="sd"> """</span> -</span><span id="Parser-796"><a href="#Parser-796"><span class="linenos"> 796</span></a> <span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-797"><a href="#Parser-797"><span class="linenos"> 797</span></a> <span class="k">for</span> <span class="n">expression_type</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">expression_types</span><span class="p">):</span> -</span><span id="Parser-798"><a href="#Parser-798"><span class="linenos"> 798</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPRESSION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression_type</span><span class="p">)</span> -</span><span id="Parser-799"><a href="#Parser-799"><span class="linenos"> 799</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="Parser-800"><a href="#Parser-800"><span class="linenos"> 800</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser registered for </span><span class="si">{</span><span class="n">expression_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Parser-801"><a href="#Parser-801"><span class="linenos"> 801</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Parser-802"><a href="#Parser-802"><span class="linenos"> 802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span><span class="n">parser</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Parser-803"><a href="#Parser-803"><span class="linenos"> 803</span></a> <span class="k">except</span> <span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> -</span><span id="Parser-804"><a href="#Parser-804"><span class="linenos"> 804</span></a> <span class="n">e</span><span class="o">.</span><span class="n">errors</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"into_expression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression_type</span> -</span><span id="Parser-805"><a href="#Parser-805"><span class="linenos"> 805</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> -</span><span id="Parser-806"><a href="#Parser-806"><span class="linenos"> 806</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> -</span><span id="Parser-807"><a href="#Parser-807"><span class="linenos"> 807</span></a> <span class="sa">f</span><span class="s2">"Failed to parse into </span><span class="si">{</span><span class="n">expression_types</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Parser-808"><a href="#Parser-808"><span class="linenos"> 808</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="n">errors</span><span class="p">),</span> -</span><span id="Parser-809"><a href="#Parser-809"><span class="linenos"> 809</span></a> <span class="p">)</span> <span class="kn">from</span> <span class="nn">errors</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> -</span><span id="Parser-810"><a href="#Parser-810"><span class="linenos"> 810</span></a> -</span><span id="Parser-811"><a href="#Parser-811"><span class="linenos"> 811</span></a> <span class="k">def</span> <span class="nf">_parse</span><span class="p">(</span> -</span><span id="Parser-812"><a href="#Parser-812"><span class="linenos"> 812</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser-813"><a href="#Parser-813"><span class="linenos"> 813</span></a> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Parser</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]],</span> -</span><span id="Parser-814"><a href="#Parser-814"><span class="linenos"> 814</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> -</span><span id="Parser-815"><a href="#Parser-815"><span class="linenos"> 815</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-816"><a href="#Parser-816"><span class="linenos"> 816</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-817"><a href="#Parser-817"><span class="linenos"> 817</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> -</span><span id="Parser-818"><a href="#Parser-818"><span class="linenos"> 818</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span> <span class="ow">or</span> <span class="s2">""</span> -</span><span id="Parser-819"><a href="#Parser-819"><span class="linenos"> 819</span></a> <span class="n">total</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">)</span> -</span><span id="Parser-820"><a href="#Parser-820"><span class="linenos"> 820</span></a> <span class="n">chunks</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">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]]</span> <span class="o">=</span> <span class="p">[[]]</span> -</span><span id="Parser-821"><a href="#Parser-821"><span class="linenos"> 821</span></a> -</span><span id="Parser-822"><a href="#Parser-822"><span class="linenos"> 822</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">token</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">):</span> -</span><span id="Parser-823"><a href="#Parser-823"><span class="linenos"> 823</span></a> <span class="k">if</span> <span class="n">token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMICOLON</span><span class="p">:</span> -</span><span id="Parser-824"><a href="#Parser-824"><span class="linenos"> 824</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o"><</span> <span class="n">total</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Parser-825"><a href="#Parser-825"><span class="linenos"> 825</span></a> <span class="n">chunks</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span> -</span><span id="Parser-826"><a href="#Parser-826"><span class="linenos"> 826</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-827"><a href="#Parser-827"><span class="linenos"> 827</span></a> <span class="n">chunks</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> -</span><span id="Parser-828"><a href="#Parser-828"><span class="linenos"> 828</span></a> -</span><span id="Parser-829"><a href="#Parser-829"><span class="linenos"> 829</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-830"><a href="#Parser-830"><span class="linenos"> 830</span></a> -</span><span id="Parser-831"><a href="#Parser-831"><span class="linenos"> 831</span></a> <span class="k">for</span> <span class="n">tokens</span> <span class="ow">in</span> <span class="n">chunks</span><span class="p">:</span> -</span><span id="Parser-832"><a href="#Parser-832"><span class="linenos"> 832</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> -</span><span id="Parser-833"><a href="#Parser-833"><span class="linenos"> 833</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="n">tokens</span> -</span><span id="Parser-834"><a href="#Parser-834"><span class="linenos"> 834</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-835"><a href="#Parser-835"><span class="linenos"> 835</span></a> -</span><span id="Parser-836"><a href="#Parser-836"><span class="linenos"> 836</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_method</span><span class="p">(</span><span class="bp">self</span><span class="p">))</span> -</span><span id="Parser-837"><a href="#Parser-837"><span class="linenos"> 837</span></a> -</span><span id="Parser-838"><a href="#Parser-838"><span class="linenos"> 838</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">):</span> -</span><span id="Parser-839"><a href="#Parser-839"><span class="linenos"> 839</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid expression / Unexpected token"</span><span class="p">)</span> +</span><span id="Parser-669"><a href="#Parser-669"><span class="linenos"> 669</span></a> <span class="s2">"TRY_CAST"</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_cast</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-670"><a href="#Parser-670"><span class="linenos"> 670</span></a> <span class="s2">"TRY_CONVERT"</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_convert</span><span class="p">(</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-671"><a href="#Parser-671"><span class="linenos"> 671</span></a> <span class="p">}</span> +</span><span id="Parser-672"><a href="#Parser-672"><span class="linenos"> 672</span></a> +</span><span id="Parser-673"><a href="#Parser-673"><span class="linenos"> 673</span></a> <span class="n">QUERY_MODIFIER_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-674"><a href="#Parser-674"><span class="linenos"> 674</span></a> <span class="s2">"match"</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_match_recognize</span><span class="p">(),</span> +</span><span id="Parser-675"><a href="#Parser-675"><span class="linenos"> 675</span></a> <span class="s2">"where"</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_where</span><span class="p">(),</span> +</span><span id="Parser-676"><a href="#Parser-676"><span class="linenos"> 676</span></a> <span class="s2">"group"</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_group</span><span class="p">(),</span> +</span><span id="Parser-677"><a href="#Parser-677"><span class="linenos"> 677</span></a> <span class="s2">"having"</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_having</span><span class="p">(),</span> +</span><span id="Parser-678"><a href="#Parser-678"><span class="linenos"> 678</span></a> <span class="s2">"qualify"</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_qualify</span><span class="p">(),</span> +</span><span id="Parser-679"><a href="#Parser-679"><span class="linenos"> 679</span></a> <span class="s2">"windows"</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_window_clause</span><span class="p">(),</span> +</span><span id="Parser-680"><a href="#Parser-680"><span class="linenos"> 680</span></a> <span class="s2">"distribute"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Distribute</span><span class="p">),</span> +</span><span id="Parser-681"><a href="#Parser-681"><span class="linenos"> 681</span></a> <span class="s2">"sort"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Sort</span><span class="p">),</span> +</span><span id="Parser-682"><a href="#Parser-682"><span class="linenos"> 682</span></a> <span class="s2">"cluster"</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_sort</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CLUSTER_BY</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Cluster</span><span class="p">),</span> +</span><span id="Parser-683"><a href="#Parser-683"><span class="linenos"> 683</span></a> <span class="s2">"order"</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_order</span><span class="p">(),</span> +</span><span id="Parser-684"><a href="#Parser-684"><span class="linenos"> 684</span></a> <span class="s2">"limit"</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_limit</span><span class="p">(),</span> +</span><span id="Parser-685"><a href="#Parser-685"><span class="linenos"> 685</span></a> <span class="s2">"offset"</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_offset</span><span class="p">(),</span> +</span><span id="Parser-686"><a href="#Parser-686"><span class="linenos"> 686</span></a> <span class="s2">"lock"</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_lock</span><span class="p">(),</span> +</span><span id="Parser-687"><a href="#Parser-687"><span class="linenos"> 687</span></a> <span class="s2">"sample"</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_table_sample</span><span class="p">(</span><span class="n">as_modifier</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-688"><a href="#Parser-688"><span class="linenos"> 688</span></a> <span class="p">}</span> +</span><span id="Parser-689"><a href="#Parser-689"><span class="linenos"> 689</span></a> +</span><span id="Parser-690"><a href="#Parser-690"><span class="linenos"> 690</span></a> <span class="n">SET_PARSERS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-691"><a href="#Parser-691"><span class="linenos"> 691</span></a> <span class="s2">"GLOBAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"GLOBAL"</span><span class="p">),</span> +</span><span id="Parser-692"><a href="#Parser-692"><span class="linenos"> 692</span></a> <span class="s2">"LOCAL"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">),</span> +</span><span id="Parser-693"><a href="#Parser-693"><span class="linenos"> 693</span></a> <span class="s2">"SESSION"</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_set_item_assignment</span><span class="p">(</span><span class="s2">"SESSION"</span><span class="p">),</span> +</span><span id="Parser-694"><a href="#Parser-694"><span class="linenos"> 694</span></a> <span class="s2">"TRANSACTION"</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_set_transaction</span><span class="p">(),</span> +</span><span id="Parser-695"><a href="#Parser-695"><span class="linenos"> 695</span></a> <span class="p">}</span> +</span><span id="Parser-696"><a href="#Parser-696"><span class="linenos"> 696</span></a> +</span><span id="Parser-697"><a href="#Parser-697"><span class="linenos"> 697</span></a> <span class="n">SHOW_PARSERS</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Parser-698"><a href="#Parser-698"><span class="linenos"> 698</span></a> +</span><span id="Parser-699"><a href="#Parser-699"><span class="linenos"> 699</span></a> <span class="n">MODIFIABLES</span> <span class="o">=</span> <span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> +</span><span id="Parser-700"><a href="#Parser-700"><span class="linenos"> 700</span></a> +</span><span id="Parser-701"><a href="#Parser-701"><span class="linenos"> 701</span></a> <span class="n">TRANSACTION_KIND</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"DEFERRED"</span><span class="p">,</span> <span class="s2">"IMMEDIATE"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">}</span> +</span><span id="Parser-702"><a href="#Parser-702"><span class="linenos"> 702</span></a> +</span><span id="Parser-703"><a href="#Parser-703"><span class="linenos"> 703</span></a> <span class="n">TRANSACTION_CHARACTERISTICS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Parser-704"><a href="#Parser-704"><span class="linenos"> 704</span></a> <span class="s2">"ISOLATION LEVEL REPEATABLE READ"</span><span class="p">,</span> +</span><span id="Parser-705"><a href="#Parser-705"><span class="linenos"> 705</span></a> <span class="s2">"ISOLATION LEVEL READ COMMITTED"</span><span class="p">,</span> +</span><span id="Parser-706"><a href="#Parser-706"><span class="linenos"> 706</span></a> <span class="s2">"ISOLATION LEVEL READ UNCOMMITTED"</span><span class="p">,</span> +</span><span id="Parser-707"><a href="#Parser-707"><span class="linenos"> 707</span></a> <span class="s2">"ISOLATION LEVEL SERIALIZABLE"</span><span class="p">,</span> +</span><span id="Parser-708"><a href="#Parser-708"><span class="linenos"> 708</span></a> <span class="s2">"READ WRITE"</span><span class="p">,</span> +</span><span id="Parser-709"><a href="#Parser-709"><span class="linenos"> 709</span></a> <span class="s2">"READ ONLY"</span><span class="p">,</span> +</span><span id="Parser-710"><a href="#Parser-710"><span class="linenos"> 710</span></a> <span class="p">}</span> +</span><span id="Parser-711"><a href="#Parser-711"><span class="linenos"> 711</span></a> +</span><span id="Parser-712"><a href="#Parser-712"><span class="linenos"> 712</span></a> <span class="n">INSERT_ALTERNATIVES</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"ABORT"</span><span class="p">,</span> <span class="s2">"FAIL"</span><span class="p">,</span> <span class="s2">"IGNORE"</span><span class="p">,</span> <span class="s2">"REPLACE"</span><span class="p">,</span> <span class="s2">"ROLLBACK"</span><span class="p">}</span> +</span><span id="Parser-713"><a href="#Parser-713"><span class="linenos"> 713</span></a> +</span><span id="Parser-714"><a href="#Parser-714"><span class="linenos"> 714</span></a> <span class="n">WINDOW_ALIAS_TOKENS</span> <span class="o">=</span> <span class="n">ID_VAR_TOKENS</span> <span class="o">-</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">}</span> +</span><span id="Parser-715"><a href="#Parser-715"><span class="linenos"> 715</span></a> +</span><span id="Parser-716"><a href="#Parser-716"><span class="linenos"> 716</span></a> <span class="n">ADD_CONSTRAINT_TOKENS</span> <span class="o">=</span> <span class="p">{</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">}</span> +</span><span id="Parser-717"><a href="#Parser-717"><span class="linenos"> 717</span></a> +</span><span id="Parser-718"><a href="#Parser-718"><span class="linenos"> 718</span></a> <span class="n">STRICT_CAST</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-719"><a href="#Parser-719"><span class="linenos"> 719</span></a> +</span><span id="Parser-720"><a href="#Parser-720"><span class="linenos"> 720</span></a> <span class="n">CONVERT_TYPE_FIRST</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-721"><a href="#Parser-721"><span class="linenos"> 721</span></a> +</span><span id="Parser-722"><a href="#Parser-722"><span class="linenos"> 722</span></a> <span class="vm">__slots__</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-723"><a href="#Parser-723"><span class="linenos"> 723</span></a> <span class="s2">"error_level"</span><span class="p">,</span> +</span><span id="Parser-724"><a href="#Parser-724"><span class="linenos"> 724</span></a> <span class="s2">"error_message_context"</span><span class="p">,</span> +</span><span id="Parser-725"><a href="#Parser-725"><span class="linenos"> 725</span></a> <span class="s2">"sql"</span><span class="p">,</span> +</span><span id="Parser-726"><a href="#Parser-726"><span class="linenos"> 726</span></a> <span class="s2">"errors"</span><span class="p">,</span> +</span><span id="Parser-727"><a href="#Parser-727"><span class="linenos"> 727</span></a> <span class="s2">"index_offset"</span><span class="p">,</span> +</span><span id="Parser-728"><a href="#Parser-728"><span class="linenos"> 728</span></a> <span class="s2">"unnest_column_only"</span><span class="p">,</span> +</span><span id="Parser-729"><a href="#Parser-729"><span class="linenos"> 729</span></a> <span class="s2">"alias_post_tablesample"</span><span class="p">,</span> +</span><span id="Parser-730"><a href="#Parser-730"><span class="linenos"> 730</span></a> <span class="s2">"max_errors"</span><span class="p">,</span> +</span><span id="Parser-731"><a href="#Parser-731"><span class="linenos"> 731</span></a> <span class="s2">"null_ordering"</span><span class="p">,</span> +</span><span id="Parser-732"><a href="#Parser-732"><span class="linenos"> 732</span></a> <span class="s2">"_tokens"</span><span class="p">,</span> +</span><span id="Parser-733"><a href="#Parser-733"><span class="linenos"> 733</span></a> <span class="s2">"_index"</span><span class="p">,</span> +</span><span id="Parser-734"><a href="#Parser-734"><span class="linenos"> 734</span></a> <span class="s2">"_curr"</span><span class="p">,</span> +</span><span id="Parser-735"><a href="#Parser-735"><span class="linenos"> 735</span></a> <span class="s2">"_next"</span><span class="p">,</span> +</span><span id="Parser-736"><a href="#Parser-736"><span class="linenos"> 736</span></a> <span class="s2">"_prev"</span><span class="p">,</span> +</span><span id="Parser-737"><a href="#Parser-737"><span class="linenos"> 737</span></a> <span class="s2">"_prev_comments"</span><span class="p">,</span> +</span><span id="Parser-738"><a href="#Parser-738"><span class="linenos"> 738</span></a> <span class="s2">"_show_trie"</span><span class="p">,</span> +</span><span id="Parser-739"><a href="#Parser-739"><span class="linenos"> 739</span></a> <span class="s2">"_set_trie"</span><span class="p">,</span> +</span><span id="Parser-740"><a href="#Parser-740"><span class="linenos"> 740</span></a> <span class="p">)</span> +</span><span id="Parser-741"><a href="#Parser-741"><span class="linenos"> 741</span></a> +</span><span id="Parser-742"><a href="#Parser-742"><span class="linenos"> 742</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="Parser-743"><a href="#Parser-743"><span class="linenos"> 743</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser-744"><a href="#Parser-744"><span class="linenos"> 744</span></a> <span class="n">error_level</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">ErrorLevel</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-745"><a href="#Parser-745"><span class="linenos"> 745</span></a> <span class="n">error_message_context</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> +</span><span id="Parser-746"><a href="#Parser-746"><span class="linenos"> 746</span></a> <span class="n">index_offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> +</span><span id="Parser-747"><a href="#Parser-747"><span class="linenos"> 747</span></a> <span class="n">unnest_column_only</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="Parser-748"><a href="#Parser-748"><span class="linenos"> 748</span></a> <span class="n">alias_post_tablesample</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="Parser-749"><a href="#Parser-749"><span class="linenos"> 749</span></a> <span class="n">max_errors</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> +</span><span id="Parser-750"><a href="#Parser-750"><span class="linenos"> 750</span></a> <span class="n">null_ordering</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-751"><a href="#Parser-751"><span class="linenos"> 751</span></a> <span class="p">):</span> +</span><span id="Parser-752"><a href="#Parser-752"><span class="linenos"> 752</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">=</span> <span class="n">error_level</span> <span class="ow">or</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span> +</span><span id="Parser-753"><a href="#Parser-753"><span class="linenos"> 753</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span> <span class="o">=</span> <span class="n">error_message_context</span> +</span><span id="Parser-754"><a href="#Parser-754"><span class="linenos"> 754</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> +</span><span id="Parser-755"><a href="#Parser-755"><span class="linenos"> 755</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> +</span><span id="Parser-756"><a href="#Parser-756"><span class="linenos"> 756</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> +</span><span id="Parser-757"><a href="#Parser-757"><span class="linenos"> 757</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span> <span class="o">=</span> <span class="n">max_errors</span> +</span><span id="Parser-758"><a href="#Parser-758"><span class="linenos"> 758</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> +</span><span id="Parser-759"><a href="#Parser-759"><span class="linenos"> 759</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> +</span><span id="Parser-760"><a href="#Parser-760"><span class="linenos"> 760</span></a> +</span><span id="Parser-761"><a href="#Parser-761"><span class="linenos"> 761</span></a> <span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Parser-762"><a href="#Parser-762"><span class="linenos"> 762</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Parser-763"><a href="#Parser-763"><span class="linenos"> 763</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-764"><a href="#Parser-764"><span class="linenos"> 764</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-765"><a href="#Parser-765"><span class="linenos"> 765</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="Parser-766"><a href="#Parser-766"><span class="linenos"> 766</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-767"><a href="#Parser-767"><span class="linenos"> 767</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-768"><a href="#Parser-768"><span class="linenos"> 768</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-769"><a href="#Parser-769"><span class="linenos"> 769</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-770"><a href="#Parser-770"><span class="linenos"> 770</span></a> +</span><span id="Parser-771"><a href="#Parser-771"><span class="linenos"> 771</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span> +</span><span id="Parser-772"><a href="#Parser-772"><span class="linenos"> 772</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-773"><a href="#Parser-773"><span class="linenos"> 773</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-774"><a href="#Parser-774"><span class="linenos"> 774</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-775"><a href="#Parser-775"><span class="linenos"> 775</span></a><span class="sd"> Parses a list of tokens and returns a list of syntax trees, one tree</span> +</span><span id="Parser-776"><a href="#Parser-776"><span class="linenos"> 776</span></a><span class="sd"> per parsed SQL statement.</span> +</span><span id="Parser-777"><a href="#Parser-777"><span class="linenos"> 777</span></a> +</span><span id="Parser-778"><a href="#Parser-778"><span class="linenos"> 778</span></a><span class="sd"> Args:</span> +</span><span id="Parser-779"><a href="#Parser-779"><span class="linenos"> 779</span></a><span class="sd"> raw_tokens: the list of tokens.</span> +</span><span id="Parser-780"><a href="#Parser-780"><span class="linenos"> 780</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> +</span><span id="Parser-781"><a href="#Parser-781"><span class="linenos"> 781</span></a> +</span><span id="Parser-782"><a href="#Parser-782"><span class="linenos"> 782</span></a><span class="sd"> Returns:</span> +</span><span id="Parser-783"><a href="#Parser-783"><span class="linenos"> 783</span></a><span class="sd"> The list of syntax trees.</span> +</span><span id="Parser-784"><a href="#Parser-784"><span class="linenos"> 784</span></a><span class="sd"> """</span> +</span><span id="Parser-785"><a href="#Parser-785"><span class="linenos"> 785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span> +</span><span id="Parser-786"><a href="#Parser-786"><span class="linenos"> 786</span></a> <span class="n">parse_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="o">=</span><span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="o">=</span><span class="n">sql</span> +</span><span id="Parser-787"><a href="#Parser-787"><span class="linenos"> 787</span></a> <span class="p">)</span> +</span><span id="Parser-788"><a href="#Parser-788"><span class="linenos"> 788</span></a> +</span><span id="Parser-789"><a href="#Parser-789"><span class="linenos"> 789</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> +</span><span id="Parser-790"><a href="#Parser-790"><span class="linenos"> 790</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser-791"><a href="#Parser-791"><span class="linenos"> 791</span></a> <span class="n">expression_types</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> +</span><span id="Parser-792"><a href="#Parser-792"><span class="linenos"> 792</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> +</span><span id="Parser-793"><a href="#Parser-793"><span class="linenos"> 793</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-794"><a href="#Parser-794"><span class="linenos"> 794</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-795"><a href="#Parser-795"><span class="linenos"> 795</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-796"><a href="#Parser-796"><span class="linenos"> 796</span></a><span class="sd"> Parses a list of tokens into a given Expression type. If a collection of Expression</span> +</span><span id="Parser-797"><a href="#Parser-797"><span class="linenos"> 797</span></a><span class="sd"> types is given instead, this method will try to parse the token list into each one</span> +</span><span id="Parser-798"><a href="#Parser-798"><span class="linenos"> 798</span></a><span class="sd"> of them, stopping at the first for which the parsing succeeds.</span> +</span><span id="Parser-799"><a href="#Parser-799"><span class="linenos"> 799</span></a> +</span><span id="Parser-800"><a href="#Parser-800"><span class="linenos"> 800</span></a><span class="sd"> Args:</span> +</span><span id="Parser-801"><a href="#Parser-801"><span class="linenos"> 801</span></a><span class="sd"> expression_types: the expression type(s) to try and parse the token list into.</span> +</span><span id="Parser-802"><a href="#Parser-802"><span class="linenos"> 802</span></a><span class="sd"> raw_tokens: the list of tokens.</span> +</span><span id="Parser-803"><a href="#Parser-803"><span class="linenos"> 803</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> +</span><span id="Parser-804"><a href="#Parser-804"><span class="linenos"> 804</span></a> +</span><span id="Parser-805"><a href="#Parser-805"><span class="linenos"> 805</span></a><span class="sd"> Returns:</span> +</span><span id="Parser-806"><a href="#Parser-806"><span class="linenos"> 806</span></a><span class="sd"> The target Expression.</span> +</span><span id="Parser-807"><a href="#Parser-807"><span class="linenos"> 807</span></a><span class="sd"> """</span> +</span><span id="Parser-808"><a href="#Parser-808"><span class="linenos"> 808</span></a> <span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-809"><a href="#Parser-809"><span class="linenos"> 809</span></a> <span class="k">for</span> <span class="n">expression_type</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">expression_types</span><span class="p">):</span> +</span><span id="Parser-810"><a href="#Parser-810"><span class="linenos"> 810</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPRESSION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression_type</span><span class="p">)</span> +</span><span id="Parser-811"><a href="#Parser-811"><span class="linenos"> 811</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="Parser-812"><a href="#Parser-812"><span class="linenos"> 812</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser registered for </span><span class="si">{</span><span class="n">expression_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser-813"><a href="#Parser-813"><span class="linenos"> 813</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Parser-814"><a href="#Parser-814"><span class="linenos"> 814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span><span class="n">parser</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Parser-815"><a href="#Parser-815"><span class="linenos"> 815</span></a> <span class="k">except</span> <span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> +</span><span id="Parser-816"><a href="#Parser-816"><span class="linenos"> 816</span></a> <span class="n">e</span><span class="o">.</span><span class="n">errors</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"into_expression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression_type</span> +</span><span id="Parser-817"><a href="#Parser-817"><span class="linenos"> 817</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> +</span><span id="Parser-818"><a href="#Parser-818"><span class="linenos"> 818</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> +</span><span id="Parser-819"><a href="#Parser-819"><span class="linenos"> 819</span></a> <span class="sa">f</span><span class="s2">"Failed to parse into </span><span class="si">{</span><span class="n">expression_types</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Parser-820"><a href="#Parser-820"><span class="linenos"> 820</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="n">errors</span><span class="p">),</span> +</span><span id="Parser-821"><a href="#Parser-821"><span class="linenos"> 821</span></a> <span class="p">)</span> <span class="kn">from</span> <span class="nn">errors</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> +</span><span id="Parser-822"><a href="#Parser-822"><span class="linenos"> 822</span></a> +</span><span id="Parser-823"><a href="#Parser-823"><span class="linenos"> 823</span></a> <span class="k">def</span> <span class="nf">_parse</span><span class="p">(</span> +</span><span id="Parser-824"><a href="#Parser-824"><span class="linenos"> 824</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser-825"><a href="#Parser-825"><span class="linenos"> 825</span></a> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Parser</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]],</span> +</span><span id="Parser-826"><a href="#Parser-826"><span class="linenos"> 826</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> +</span><span id="Parser-827"><a href="#Parser-827"><span class="linenos"> 827</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-828"><a href="#Parser-828"><span class="linenos"> 828</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-829"><a href="#Parser-829"><span class="linenos"> 829</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> +</span><span id="Parser-830"><a href="#Parser-830"><span class="linenos"> 830</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="n">sql</span> <span class="ow">or</span> <span class="s2">""</span> +</span><span id="Parser-831"><a href="#Parser-831"><span class="linenos"> 831</span></a> <span class="n">total</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">)</span> +</span><span id="Parser-832"><a href="#Parser-832"><span class="linenos"> 832</span></a> <span class="n">chunks</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">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">Token</span><span class="p">]]</span> <span class="o">=</span> <span class="p">[[]]</span> +</span><span id="Parser-833"><a href="#Parser-833"><span class="linenos"> 833</span></a> +</span><span id="Parser-834"><a href="#Parser-834"><span class="linenos"> 834</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">token</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">raw_tokens</span><span class="p">):</span> +</span><span id="Parser-835"><a href="#Parser-835"><span class="linenos"> 835</span></a> <span class="k">if</span> <span class="n">token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMICOLON</span><span class="p">:</span> +</span><span id="Parser-836"><a href="#Parser-836"><span class="linenos"> 836</span></a> <span class="k">if</span> <span class="n">i</span> <span class="o"><</span> <span class="n">total</span> <span class="o">-</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Parser-837"><a href="#Parser-837"><span class="linenos"> 837</span></a> <span class="n">chunks</span><span class="o">.</span><span class="n">append</span><span class="p">([])</span> +</span><span id="Parser-838"><a href="#Parser-838"><span class="linenos"> 838</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-839"><a href="#Parser-839"><span class="linenos"> 839</span></a> <span class="n">chunks</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> </span><span id="Parser-840"><a href="#Parser-840"><span class="linenos"> 840</span></a> -</span><span id="Parser-841"><a href="#Parser-841"><span class="linenos"> 841</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">check_errors</span><span class="p">()</span> +</span><span id="Parser-841"><a href="#Parser-841"><span class="linenos"> 841</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="Parser-842"><a href="#Parser-842"><span class="linenos"> 842</span></a> -</span><span id="Parser-843"><a href="#Parser-843"><span class="linenos"> 843</span></a> <span class="k">return</span> <span class="n">expressions</span> -</span><span id="Parser-844"><a href="#Parser-844"><span class="linenos"> 844</span></a> -</span><span id="Parser-845"><a href="#Parser-845"><span class="linenos"> 845</span></a> <span class="k">def</span> <span class="nf">check_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-846"><a href="#Parser-846"><span class="linenos"> 846</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-847"><a href="#Parser-847"><span class="linenos"> 847</span></a><span class="sd"> Logs or raises any found errors, depending on the chosen error level setting.</span> -</span><span id="Parser-848"><a href="#Parser-848"><span class="linenos"> 848</span></a><span class="sd"> """</span> -</span><span id="Parser-849"><a href="#Parser-849"><span class="linenos"> 849</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> -</span><span id="Parser-850"><a href="#Parser-850"><span class="linenos"> 850</span></a> <span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> -</span><span id="Parser-851"><a href="#Parser-851"><span class="linenos"> 851</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">))</span> -</span><span id="Parser-852"><a href="#Parser-852"><span class="linenos"> 852</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> -</span><span id="Parser-853"><a href="#Parser-853"><span class="linenos"> 853</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> -</span><span id="Parser-854"><a href="#Parser-854"><span class="linenos"> 854</span></a> <span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span><span class="p">),</span> -</span><span id="Parser-855"><a href="#Parser-855"><span class="linenos"> 855</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">),</span> -</span><span id="Parser-856"><a href="#Parser-856"><span class="linenos"> 856</span></a> <span class="p">)</span> -</span><span id="Parser-857"><a href="#Parser-857"><span class="linenos"> 857</span></a> -</span><span id="Parser-858"><a href="#Parser-858"><span class="linenos"> 858</span></a> <span class="k">def</span> <span class="nf">raise_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-859"><a href="#Parser-859"><span class="linenos"> 859</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-860"><a href="#Parser-860"><span class="linenos"> 860</span></a><span class="sd"> Appends an error in the list of recorded errors or raises it, depending on the chosen</span> -</span><span id="Parser-861"><a href="#Parser-861"><span class="linenos"> 861</span></a><span class="sd"> error level setting.</span> -</span><span id="Parser-862"><a href="#Parser-862"><span class="linenos"> 862</span></a><span class="sd"> """</span> -</span><span id="Parser-863"><a href="#Parser-863"><span class="linenos"> 863</span></a> <span class="n">token</span> <span class="o">=</span> <span class="n">token</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="ow">or</span> <span class="n">Token</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="Parser-864"><a href="#Parser-864"><span class="linenos"> 864</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> -</span><span id="Parser-865"><a href="#Parser-865"><span class="linenos"> 865</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-866"><a href="#Parser-866"><span class="linenos"> 866</span></a> <span class="n">start_context</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="nb">max</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span> <span class="n">start</span><span class="p">]</span> -</span><span id="Parser-867"><a href="#Parser-867"><span class="linenos"> 867</span></a> <span class="n">highlight</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">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span> -</span><span id="Parser-868"><a href="#Parser-868"><span class="linenos"> 868</span></a> <span class="n">end_context</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">end</span> <span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">]</span> +</span><span id="Parser-843"><a href="#Parser-843"><span class="linenos"> 843</span></a> <span class="k">for</span> <span class="n">tokens</span> <span class="ow">in</span> <span class="n">chunks</span><span class="p">:</span> +</span><span id="Parser-844"><a href="#Parser-844"><span class="linenos"> 844</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="o">-</span><span class="mi">1</span> +</span><span id="Parser-845"><a href="#Parser-845"><span class="linenos"> 845</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="n">tokens</span> +</span><span id="Parser-846"><a href="#Parser-846"><span class="linenos"> 846</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-847"><a href="#Parser-847"><span class="linenos"> 847</span></a> +</span><span id="Parser-848"><a href="#Parser-848"><span class="linenos"> 848</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_method</span><span class="p">(</span><span class="bp">self</span><span class="p">))</span> +</span><span id="Parser-849"><a href="#Parser-849"><span class="linenos"> 849</span></a> +</span><span id="Parser-850"><a href="#Parser-850"><span class="linenos"> 850</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o"><</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">):</span> +</span><span id="Parser-851"><a href="#Parser-851"><span class="linenos"> 851</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid expression / Unexpected token"</span><span class="p">)</span> +</span><span id="Parser-852"><a href="#Parser-852"><span class="linenos"> 852</span></a> +</span><span id="Parser-853"><a href="#Parser-853"><span class="linenos"> 853</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">check_errors</span><span class="p">()</span> +</span><span id="Parser-854"><a href="#Parser-854"><span class="linenos"> 854</span></a> +</span><span id="Parser-855"><a href="#Parser-855"><span class="linenos"> 855</span></a> <span class="k">return</span> <span class="n">expressions</span> +</span><span id="Parser-856"><a href="#Parser-856"><span class="linenos"> 856</span></a> +</span><span id="Parser-857"><a href="#Parser-857"><span class="linenos"> 857</span></a> <span class="k">def</span> <span class="nf">check_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-858"><a href="#Parser-858"><span class="linenos"> 858</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-859"><a href="#Parser-859"><span class="linenos"> 859</span></a><span class="sd"> Logs or raises any found errors, depending on the chosen error level setting.</span> +</span><span id="Parser-860"><a href="#Parser-860"><span class="linenos"> 860</span></a><span class="sd"> """</span> +</span><span id="Parser-861"><a href="#Parser-861"><span class="linenos"> 861</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> +</span><span id="Parser-862"><a href="#Parser-862"><span class="linenos"> 862</span></a> <span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> +</span><span id="Parser-863"><a href="#Parser-863"><span class="linenos"> 863</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">))</span> +</span><span id="Parser-864"><a href="#Parser-864"><span class="linenos"> 864</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> +</span><span id="Parser-865"><a href="#Parser-865"><span class="linenos"> 865</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> +</span><span id="Parser-866"><a href="#Parser-866"><span class="linenos"> 866</span></a> <span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span><span class="p">),</span> +</span><span id="Parser-867"><a href="#Parser-867"><span class="linenos"> 867</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">),</span> +</span><span id="Parser-868"><a href="#Parser-868"><span class="linenos"> 868</span></a> <span class="p">)</span> </span><span id="Parser-869"><a href="#Parser-869"><span class="linenos"> 869</span></a> -</span><span id="Parser-870"><a href="#Parser-870"><span class="linenos"> 870</span></a> <span class="n">error</span> <span class="o">=</span> <span class="n">ParseError</span><span class="o">.</span><span class="n">new</span><span class="p">(</span> -</span><span id="Parser-871"><a href="#Parser-871"><span class="linenos"> 871</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">. Line </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="si">}</span><span class="s2">, Col: </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">"</span> -</span><span id="Parser-872"><a href="#Parser-872"><span class="linenos"> 872</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">start_context</span><span class="si">}</span><span class="se">\033</span><span class="s2">[4m</span><span class="si">{</span><span class="n">highlight</span><span class="si">}</span><span class="se">\033</span><span class="s2">[0m</span><span class="si">{</span><span class="n">end_context</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Parser-873"><a href="#Parser-873"><span class="linenos"> 873</span></a> <span class="n">description</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> -</span><span id="Parser-874"><a href="#Parser-874"><span class="linenos"> 874</span></a> <span class="n">line</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> -</span><span id="Parser-875"><a href="#Parser-875"><span class="linenos"> 875</span></a> <span class="n">col</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">,</span> -</span><span id="Parser-876"><a href="#Parser-876"><span class="linenos"> 876</span></a> <span class="n">start_context</span><span class="o">=</span><span class="n">start_context</span><span class="p">,</span> -</span><span id="Parser-877"><a href="#Parser-877"><span class="linenos"> 877</span></a> <span class="n">highlight</span><span class="o">=</span><span class="n">highlight</span><span class="p">,</span> -</span><span id="Parser-878"><a href="#Parser-878"><span class="linenos"> 878</span></a> <span class="n">end_context</span><span class="o">=</span><span class="n">end_context</span><span class="p">,</span> -</span><span id="Parser-879"><a href="#Parser-879"><span class="linenos"> 879</span></a> <span class="p">)</span> -</span><span id="Parser-880"><a href="#Parser-880"><span class="linenos"> 880</span></a> -</span><span id="Parser-881"><a href="#Parser-881"><span class="linenos"> 881</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> -</span><span id="Parser-882"><a href="#Parser-882"><span class="linenos"> 882</span></a> <span class="k">raise</span> <span class="n">error</span> -</span><span id="Parser-883"><a href="#Parser-883"><span class="linenos"> 883</span></a> -</span><span id="Parser-884"><a href="#Parser-884"><span class="linenos"> 884</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error</span><span class="p">)</span> -</span><span id="Parser-885"><a href="#Parser-885"><span class="linenos"> 885</span></a> -</span><span id="Parser-886"><a href="#Parser-886"><span class="linenos"> 886</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span> -</span><span id="Parser-887"><a href="#Parser-887"><span class="linenos"> 887</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> -</span><span id="Parser-888"><a href="#Parser-888"><span class="linenos"> 888</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-889"><a href="#Parser-889"><span class="linenos"> 889</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-890"><a href="#Parser-890"><span class="linenos"> 890</span></a><span class="sd"> Creates a new, validated Expression.</span> -</span><span id="Parser-891"><a href="#Parser-891"><span class="linenos"> 891</span></a> -</span><span id="Parser-892"><a href="#Parser-892"><span class="linenos"> 892</span></a><span class="sd"> Args:</span> -</span><span id="Parser-893"><a href="#Parser-893"><span class="linenos"> 893</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> -</span><span id="Parser-894"><a href="#Parser-894"><span class="linenos"> 894</span></a><span class="sd"> comments: an optional list of comments to attach to the expression.</span> -</span><span id="Parser-895"><a href="#Parser-895"><span class="linenos"> 895</span></a><span class="sd"> kwargs: the arguments to set for the expression along with their respective values.</span> -</span><span id="Parser-896"><a href="#Parser-896"><span class="linenos"> 896</span></a> -</span><span id="Parser-897"><a href="#Parser-897"><span class="linenos"> 897</span></a><span class="sd"> Returns:</span> -</span><span id="Parser-898"><a href="#Parser-898"><span class="linenos"> 898</span></a><span class="sd"> The target expression.</span> -</span><span id="Parser-899"><a href="#Parser-899"><span class="linenos"> 899</span></a><span class="sd"> """</span> -</span><span id="Parser-900"><a href="#Parser-900"><span class="linenos"> 900</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">exp_class</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="Parser-901"><a href="#Parser-901"><span class="linenos"> 901</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="Parser-902"><a href="#Parser-902"><span class="linenos"> 902</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser-903"><a href="#Parser-903"><span class="linenos"> 903</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-904"><a href="#Parser-904"><span class="linenos"> 904</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="Parser-905"><a href="#Parser-905"><span class="linenos"> 905</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> -</span><span id="Parser-906"><a href="#Parser-906"><span class="linenos"> 906</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span> -</span><span id="Parser-907"><a href="#Parser-907"><span class="linenos"> 907</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="Parser-870"><a href="#Parser-870"><span class="linenos"> 870</span></a> <span class="k">def</span> <span class="nf">raise_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-871"><a href="#Parser-871"><span class="linenos"> 871</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-872"><a href="#Parser-872"><span class="linenos"> 872</span></a><span class="sd"> Appends an error in the list of recorded errors or raises it, depending on the chosen</span> +</span><span id="Parser-873"><a href="#Parser-873"><span class="linenos"> 873</span></a><span class="sd"> error level setting.</span> +</span><span id="Parser-874"><a href="#Parser-874"><span class="linenos"> 874</span></a><span class="sd"> """</span> +</span><span id="Parser-875"><a href="#Parser-875"><span class="linenos"> 875</span></a> <span class="n">token</span> <span class="o">=</span> <span class="n">token</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="ow">or</span> <span class="n">Token</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="Parser-876"><a href="#Parser-876"><span class="linenos"> 876</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> +</span><span id="Parser-877"><a href="#Parser-877"><span class="linenos"> 877</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-878"><a href="#Parser-878"><span class="linenos"> 878</span></a> <span class="n">start_context</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="nb">max</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span> <span class="n">start</span><span class="p">]</span> +</span><span id="Parser-879"><a href="#Parser-879"><span class="linenos"> 879</span></a> <span class="n">highlight</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">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span> +</span><span id="Parser-880"><a href="#Parser-880"><span class="linenos"> 880</span></a> <span class="n">end_context</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">end</span> <span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">]</span> +</span><span id="Parser-881"><a href="#Parser-881"><span class="linenos"> 881</span></a> +</span><span id="Parser-882"><a href="#Parser-882"><span class="linenos"> 882</span></a> <span class="n">error</span> <span class="o">=</span> <span class="n">ParseError</span><span class="o">.</span><span class="n">new</span><span class="p">(</span> +</span><span id="Parser-883"><a href="#Parser-883"><span class="linenos"> 883</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">. Line </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="si">}</span><span class="s2">, Col: </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">"</span> +</span><span id="Parser-884"><a href="#Parser-884"><span class="linenos"> 884</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">start_context</span><span class="si">}</span><span class="se">\033</span><span class="s2">[4m</span><span class="si">{</span><span class="n">highlight</span><span class="si">}</span><span class="se">\033</span><span class="s2">[0m</span><span class="si">{</span><span class="n">end_context</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Parser-885"><a href="#Parser-885"><span class="linenos"> 885</span></a> <span class="n">description</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> +</span><span id="Parser-886"><a href="#Parser-886"><span class="linenos"> 886</span></a> <span class="n">line</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> +</span><span id="Parser-887"><a href="#Parser-887"><span class="linenos"> 887</span></a> <span class="n">col</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">,</span> +</span><span id="Parser-888"><a href="#Parser-888"><span class="linenos"> 888</span></a> <span class="n">start_context</span><span class="o">=</span><span class="n">start_context</span><span class="p">,</span> +</span><span id="Parser-889"><a href="#Parser-889"><span class="linenos"> 889</span></a> <span class="n">highlight</span><span class="o">=</span><span class="n">highlight</span><span class="p">,</span> +</span><span id="Parser-890"><a href="#Parser-890"><span class="linenos"> 890</span></a> <span class="n">end_context</span><span class="o">=</span><span class="n">end_context</span><span class="p">,</span> +</span><span id="Parser-891"><a href="#Parser-891"><span class="linenos"> 891</span></a> <span class="p">)</span> +</span><span id="Parser-892"><a href="#Parser-892"><span class="linenos"> 892</span></a> +</span><span id="Parser-893"><a href="#Parser-893"><span class="linenos"> 893</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> +</span><span id="Parser-894"><a href="#Parser-894"><span class="linenos"> 894</span></a> <span class="k">raise</span> <span class="n">error</span> +</span><span id="Parser-895"><a href="#Parser-895"><span class="linenos"> 895</span></a> +</span><span id="Parser-896"><a href="#Parser-896"><span class="linenos"> 896</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error</span><span class="p">)</span> +</span><span id="Parser-897"><a href="#Parser-897"><span class="linenos"> 897</span></a> +</span><span id="Parser-898"><a href="#Parser-898"><span class="linenos"> 898</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span> +</span><span id="Parser-899"><a href="#Parser-899"><span class="linenos"> 899</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> +</span><span id="Parser-900"><a href="#Parser-900"><span class="linenos"> 900</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-901"><a href="#Parser-901"><span class="linenos"> 901</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-902"><a href="#Parser-902"><span class="linenos"> 902</span></a><span class="sd"> Creates a new, validated Expression.</span> +</span><span id="Parser-903"><a href="#Parser-903"><span class="linenos"> 903</span></a> +</span><span id="Parser-904"><a href="#Parser-904"><span class="linenos"> 904</span></a><span class="sd"> Args:</span> +</span><span id="Parser-905"><a href="#Parser-905"><span class="linenos"> 905</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> +</span><span id="Parser-906"><a href="#Parser-906"><span class="linenos"> 906</span></a><span class="sd"> comments: an optional list of comments to attach to the expression.</span> +</span><span id="Parser-907"><a href="#Parser-907"><span class="linenos"> 907</span></a><span class="sd"> kwargs: the arguments to set for the expression along with their respective values.</span> </span><span id="Parser-908"><a href="#Parser-908"><span class="linenos"> 908</span></a> -</span><span id="Parser-909"><a href="#Parser-909"><span class="linenos"> 909</span></a> <span class="k">def</span> <span class="nf">validate_expression</span><span class="p">(</span> -</span><span id="Parser-910"><a href="#Parser-910"><span class="linenos"> 910</span></a> <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">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-911"><a href="#Parser-911"><span class="linenos"> 911</span></a> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-912"><a href="#Parser-912"><span class="linenos"> 912</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser-913"><a href="#Parser-913"><span class="linenos"> 913</span></a><span class="sd"> Validates an already instantiated expression, making sure that all its mandatory arguments</span> -</span><span id="Parser-914"><a href="#Parser-914"><span class="linenos"> 914</span></a><span class="sd"> are set.</span> -</span><span id="Parser-915"><a href="#Parser-915"><span class="linenos"> 915</span></a> -</span><span id="Parser-916"><a href="#Parser-916"><span class="linenos"> 916</span></a><span class="sd"> Args:</span> -</span><span id="Parser-917"><a href="#Parser-917"><span class="linenos"> 917</span></a><span class="sd"> expression: the expression to validate.</span> -</span><span id="Parser-918"><a href="#Parser-918"><span class="linenos"> 918</span></a><span class="sd"> args: an optional list of items that was used to instantiate the expression, if it's a Func.</span> -</span><span id="Parser-919"><a href="#Parser-919"><span class="linenos"> 919</span></a><span class="sd"> """</span> -</span><span id="Parser-920"><a href="#Parser-920"><span class="linenos"> 920</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> -</span><span id="Parser-921"><a href="#Parser-921"><span class="linenos"> 921</span></a> <span class="k">return</span> -</span><span id="Parser-922"><a href="#Parser-922"><span class="linenos"> 922</span></a> -</span><span id="Parser-923"><a href="#Parser-923"><span class="linenos"> 923</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="Parser-924"><a href="#Parser-924"><span class="linenos"> 924</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> -</span><span id="Parser-925"><a href="#Parser-925"><span class="linenos"> 925</span></a> -</span><span id="Parser-926"><a href="#Parser-926"><span class="linenos"> 926</span></a> <span class="k">def</span> <span class="nf">_find_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">,</span> <span class="n">end</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Parser-927"><a href="#Parser-927"><span class="linenos"> 927</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="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">end</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">end</span><span class="o">.</span><span class="n">text</span><span class="p">)]</span> -</span><span id="Parser-928"><a href="#Parser-928"><span class="linenos"> 928</span></a> -</span><span id="Parser-929"><a href="#Parser-929"><span class="linenos"> 929</span></a> <span class="k">def</span> <span class="nf">_find_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> -</span><span id="Parser-930"><a href="#Parser-930"><span class="linenos"> 930</span></a> <span class="n">line</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="Parser-931"><a href="#Parser-931"><span class="linenos"> 931</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="Parser-932"><a href="#Parser-932"><span class="linenos"> 932</span></a> <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="Parser-933"><a href="#Parser-933"><span class="linenos"> 933</span></a> -</span><span id="Parser-934"><a href="#Parser-934"><span class="linenos"> 934</span></a> <span class="k">while</span> <span class="n">line</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">line</span> <span class="ow">or</span> <span class="n">col</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">:</span> -</span><span id="Parser-935"><a href="#Parser-935"><span class="linenos"> 935</span></a> <span class="k">if</span> <span class="n">Tokenizer</span><span class="o">.</span><span class="n">WHITE_SPACE</span><span class="o">.</span><span class="n">get</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">index</span><span class="p">])</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">:</span> -</span><span id="Parser-936"><a href="#Parser-936"><span class="linenos"> 936</span></a> <span class="n">line</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Parser-937"><a href="#Parser-937"><span class="linenos"> 937</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="Parser-938"><a href="#Parser-938"><span class="linenos"> 938</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-939"><a href="#Parser-939"><span class="linenos"> 939</span></a> <span class="n">col</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Parser-940"><a href="#Parser-940"><span class="linenos"> 940</span></a> <span class="n">index</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Parser-941"><a href="#Parser-941"><span class="linenos"> 941</span></a> -</span><span id="Parser-942"><a href="#Parser-942"><span class="linenos"> 942</span></a> <span class="k">return</span> <span class="n">index</span> -</span><span id="Parser-943"><a href="#Parser-943"><span class="linenos"> 943</span></a> -</span><span id="Parser-944"><a href="#Parser-944"><span class="linenos"> 944</span></a> <span class="k">def</span> <span class="nf">_advance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">times</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-945"><a href="#Parser-945"><span class="linenos"> 945</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">+=</span> <span class="n">times</span> -</span><span id="Parser-946"><a href="#Parser-946"><span class="linenos"> 946</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span><span class="p">)</span> -</span><span id="Parser-947"><a href="#Parser-947"><span class="linenos"> 947</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</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 class="p">)</span> -</span><span id="Parser-948"><a href="#Parser-948"><span class="linenos"> 948</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> -</span><span id="Parser-949"><a href="#Parser-949"><span class="linenos"> 949</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">[</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 class="p">]</span> -</span><span id="Parser-950"><a href="#Parser-950"><span class="linenos"> 950</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">comments</span> -</span><span id="Parser-951"><a href="#Parser-951"><span class="linenos"> 951</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-952"><a href="#Parser-952"><span class="linenos"> 952</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-953"><a href="#Parser-953"><span class="linenos"> 953</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-954"><a href="#Parser-954"><span class="linenos"> 954</span></a> -</span><span id="Parser-955"><a href="#Parser-955"><span class="linenos"> 955</span></a> <span class="k">def</span> <span class="nf">_retreat</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-956"><a href="#Parser-956"><span class="linenos"> 956</span></a> <span class="k">if</span> <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="p">:</span> -</span><span id="Parser-957"><a href="#Parser-957"><span class="linenos"> 957</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><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="p">)</span> -</span><span id="Parser-958"><a href="#Parser-958"><span class="linenos"> 958</span></a> -</span><span id="Parser-959"><a href="#Parser-959"><span class="linenos"> 959</span></a> <span class="k">def</span> <span class="nf">_parse_command</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-960"><a href="#Parser-960"><span class="linenos"> 960</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">Command</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> -</span><span id="Parser-961"><a href="#Parser-961"><span class="linenos"> 961</span></a> -</span><span id="Parser-962"><a href="#Parser-962"><span class="linenos"> 962</span></a> <span class="k">def</span> <span class="nf">_parse_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">allow_exists</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-963"><a href="#Parser-963"><span class="linenos"> 963</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-964"><a href="#Parser-964"><span class="linenos"> 964</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> <span class="k">if</span> <span class="n">allow_exists</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Parser-965"><a href="#Parser-965"><span class="linenos"> 965</span></a> -</span><span id="Parser-966"><a href="#Parser-966"><span class="linenos"> 966</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">ON</span><span class="p">)</span> -</span><span id="Parser-967"><a href="#Parser-967"><span class="linenos"> 967</span></a> -</span><span id="Parser-968"><a href="#Parser-968"><span class="linenos"> 968</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-969"><a href="#Parser-969"><span class="linenos"> 969</span></a> -</span><span id="Parser-970"><a href="#Parser-970"><span class="linenos"> 970</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Parser-971"><a href="#Parser-971"><span class="linenos"> 971</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="Parser-972"><a href="#Parser-972"><span class="linenos"> 972</span></a> -</span><span id="Parser-973"><a href="#Parser-973"><span class="linenos"> 973</span></a> <span class="k">if</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> -</span><span id="Parser-974"><a href="#Parser-974"><span class="linenos"> 974</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> -</span><span id="Parser-975"><a href="#Parser-975"><span class="linenos"> 975</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> -</span><span id="Parser-976"><a href="#Parser-976"><span class="linenos"> 976</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="Parser-977"><a href="#Parser-977"><span class="linenos"> 977</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">:</span> -</span><span id="Parser-978"><a href="#Parser-978"><span class="linenos"> 978</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Parser-979"><a href="#Parser-979"><span class="linenos"> 979</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-980"><a href="#Parser-980"><span class="linenos"> 980</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-909"><a href="#Parser-909"><span class="linenos"> 909</span></a><span class="sd"> Returns:</span> +</span><span id="Parser-910"><a href="#Parser-910"><span class="linenos"> 910</span></a><span class="sd"> The target expression.</span> +</span><span id="Parser-911"><a href="#Parser-911"><span class="linenos"> 911</span></a><span class="sd"> """</span> +</span><span id="Parser-912"><a href="#Parser-912"><span class="linenos"> 912</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">exp_class</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="Parser-913"><a href="#Parser-913"><span class="linenos"> 913</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="Parser-914"><a href="#Parser-914"><span class="linenos"> 914</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-915"><a href="#Parser-915"><span class="linenos"> 915</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-916"><a href="#Parser-916"><span class="linenos"> 916</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="Parser-917"><a href="#Parser-917"><span class="linenos"> 917</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Parser-918"><a href="#Parser-918"><span class="linenos"> 918</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span> +</span><span id="Parser-919"><a href="#Parser-919"><span class="linenos"> 919</span></a> <span class="k">return</span> <span class="n">instance</span> +</span><span id="Parser-920"><a href="#Parser-920"><span class="linenos"> 920</span></a> +</span><span id="Parser-921"><a href="#Parser-921"><span class="linenos"> 921</span></a> <span class="k">def</span> <span class="nf">validate_expression</span><span class="p">(</span> +</span><span id="Parser-922"><a href="#Parser-922"><span class="linenos"> 922</span></a> <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">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-923"><a href="#Parser-923"><span class="linenos"> 923</span></a> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-924"><a href="#Parser-924"><span class="linenos"> 924</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser-925"><a href="#Parser-925"><span class="linenos"> 925</span></a><span class="sd"> Validates an already instantiated expression, making sure that all its mandatory arguments</span> +</span><span id="Parser-926"><a href="#Parser-926"><span class="linenos"> 926</span></a><span class="sd"> are set.</span> +</span><span id="Parser-927"><a href="#Parser-927"><span class="linenos"> 927</span></a> +</span><span id="Parser-928"><a href="#Parser-928"><span class="linenos"> 928</span></a><span class="sd"> Args:</span> +</span><span id="Parser-929"><a href="#Parser-929"><span class="linenos"> 929</span></a><span class="sd"> expression: the expression to validate.</span> +</span><span id="Parser-930"><a href="#Parser-930"><span class="linenos"> 930</span></a><span class="sd"> args: an optional list of items that was used to instantiate the expression, if it's a Func.</span> +</span><span id="Parser-931"><a href="#Parser-931"><span class="linenos"> 931</span></a><span class="sd"> """</span> +</span><span id="Parser-932"><a href="#Parser-932"><span class="linenos"> 932</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> +</span><span id="Parser-933"><a href="#Parser-933"><span class="linenos"> 933</span></a> <span class="k">return</span> +</span><span id="Parser-934"><a href="#Parser-934"><span class="linenos"> 934</span></a> +</span><span id="Parser-935"><a href="#Parser-935"><span class="linenos"> 935</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="Parser-936"><a href="#Parser-936"><span class="linenos"> 936</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> +</span><span id="Parser-937"><a href="#Parser-937"><span class="linenos"> 937</span></a> +</span><span id="Parser-938"><a href="#Parser-938"><span class="linenos"> 938</span></a> <span class="k">def</span> <span class="nf">_find_sql</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">,</span> <span class="n">end</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Parser-939"><a href="#Parser-939"><span class="linenos"> 939</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="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">end</span><span class="p">)</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">end</span><span class="o">.</span><span class="n">text</span><span class="p">)]</span> +</span><span id="Parser-940"><a href="#Parser-940"><span class="linenos"> 940</span></a> +</span><span id="Parser-941"><a href="#Parser-941"><span class="linenos"> 941</span></a> <span class="k">def</span> <span class="nf">_find_token</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> +</span><span id="Parser-942"><a href="#Parser-942"><span class="linenos"> 942</span></a> <span class="n">line</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="Parser-943"><a href="#Parser-943"><span class="linenos"> 943</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="Parser-944"><a href="#Parser-944"><span class="linenos"> 944</span></a> <span class="n">index</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="Parser-945"><a href="#Parser-945"><span class="linenos"> 945</span></a> +</span><span id="Parser-946"><a href="#Parser-946"><span class="linenos"> 946</span></a> <span class="k">while</span> <span class="n">line</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">line</span> <span class="ow">or</span> <span class="n">col</span> <span class="o"><</span> <span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">:</span> +</span><span id="Parser-947"><a href="#Parser-947"><span class="linenos"> 947</span></a> <span class="k">if</span> <span class="n">Tokenizer</span><span class="o">.</span><span class="n">WHITE_SPACE</span><span class="o">.</span><span class="n">get</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">index</span><span class="p">])</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">:</span> +</span><span id="Parser-948"><a href="#Parser-948"><span class="linenos"> 948</span></a> <span class="n">line</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Parser-949"><a href="#Parser-949"><span class="linenos"> 949</span></a> <span class="n">col</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="Parser-950"><a href="#Parser-950"><span class="linenos"> 950</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-951"><a href="#Parser-951"><span class="linenos"> 951</span></a> <span class="n">col</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Parser-952"><a href="#Parser-952"><span class="linenos"> 952</span></a> <span class="n">index</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Parser-953"><a href="#Parser-953"><span class="linenos"> 953</span></a> +</span><span id="Parser-954"><a href="#Parser-954"><span class="linenos"> 954</span></a> <span class="k">return</span> <span class="n">index</span> +</span><span id="Parser-955"><a href="#Parser-955"><span class="linenos"> 955</span></a> +</span><span id="Parser-956"><a href="#Parser-956"><span class="linenos"> 956</span></a> <span class="k">def</span> <span class="nf">_advance</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">times</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">1</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-957"><a href="#Parser-957"><span class="linenos"> 957</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">+=</span> <span class="n">times</span> +</span><span id="Parser-958"><a href="#Parser-958"><span class="linenos"> 958</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span><span class="p">)</span> +</span><span id="Parser-959"><a href="#Parser-959"><span class="linenos"> 959</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">,</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 class="p">)</span> +</span><span id="Parser-960"><a href="#Parser-960"><span class="linenos"> 960</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="Parser-961"><a href="#Parser-961"><span class="linenos"> 961</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span><span class="p">[</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 class="p">]</span> +</span><span id="Parser-962"><a href="#Parser-962"><span class="linenos"> 962</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">comments</span> +</span><span id="Parser-963"><a href="#Parser-963"><span class="linenos"> 963</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-964"><a href="#Parser-964"><span class="linenos"> 964</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-965"><a href="#Parser-965"><span class="linenos"> 965</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-966"><a href="#Parser-966"><span class="linenos"> 966</span></a> +</span><span id="Parser-967"><a href="#Parser-967"><span class="linenos"> 967</span></a> <span class="k">def</span> <span class="nf">_retreat</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="nb">int</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-968"><a href="#Parser-968"><span class="linenos"> 968</span></a> <span class="k">if</span> <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="p">:</span> +</span><span id="Parser-969"><a href="#Parser-969"><span class="linenos"> 969</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><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="p">)</span> +</span><span id="Parser-970"><a href="#Parser-970"><span class="linenos"> 970</span></a> +</span><span id="Parser-971"><a href="#Parser-971"><span class="linenos"> 971</span></a> <span class="k">def</span> <span class="nf">_parse_command</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-972"><a href="#Parser-972"><span class="linenos"> 972</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">Command</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="Parser-973"><a href="#Parser-973"><span class="linenos"> 973</span></a> +</span><span id="Parser-974"><a href="#Parser-974"><span class="linenos"> 974</span></a> <span class="k">def</span> <span class="nf">_parse_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">allow_exists</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-975"><a href="#Parser-975"><span class="linenos"> 975</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-976"><a href="#Parser-976"><span class="linenos"> 976</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> <span class="k">if</span> <span class="n">allow_exists</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-977"><a href="#Parser-977"><span class="linenos"> 977</span></a> +</span><span id="Parser-978"><a href="#Parser-978"><span class="linenos"> 978</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">ON</span><span class="p">)</span> +</span><span id="Parser-979"><a href="#Parser-979"><span class="linenos"> 979</span></a> +</span><span id="Parser-980"><a href="#Parser-980"><span class="linenos"> 980</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> </span><span id="Parser-981"><a href="#Parser-981"><span class="linenos"> 981</span></a> -</span><span id="Parser-982"><a href="#Parser-982"><span class="linenos"> 982</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">IS</span><span class="p">)</span> -</span><span id="Parser-983"><a href="#Parser-983"><span class="linenos"> 983</span></a> -</span><span id="Parser-984"><a href="#Parser-984"><span class="linenos"> 984</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><span id="Parser-985"><a href="#Parser-985"><span class="linenos"> 985</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Comment</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> -</span><span id="Parser-986"><a href="#Parser-986"><span class="linenos"> 986</span></a> <span class="p">)</span> -</span><span id="Parser-987"><a href="#Parser-987"><span class="linenos"> 987</span></a> -</span><span id="Parser-988"><a href="#Parser-988"><span class="linenos"> 988</span></a> <span class="k">def</span> <span class="nf">_parse_statement</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-989"><a href="#Parser-989"><span class="linenos"> 989</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-990"><a href="#Parser-990"><span class="linenos"> 990</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-991"><a href="#Parser-991"><span class="linenos"> 991</span></a> -</span><span id="Parser-992"><a href="#Parser-992"><span class="linenos"> 992</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">):</span> -</span><span id="Parser-993"><a href="#Parser-993"><span class="linenos"> 993</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-994"><a href="#Parser-994"><span class="linenos"> 994</span></a> -</span><span id="Parser-995"><a href="#Parser-995"><span class="linenos"> 995</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span><span class="p">):</span> -</span><span id="Parser-996"><a href="#Parser-996"><span class="linenos"> 996</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_command</span><span class="p">()</span> -</span><span id="Parser-997"><a href="#Parser-997"><span class="linenos"> 997</span></a> -</span><span id="Parser-998"><a href="#Parser-998"><span class="linenos"> 998</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> -</span><span id="Parser-999"><a href="#Parser-999"><span class="linenos"> 999</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> -</span><span id="Parser-1000"><a href="#Parser-1000"><span class="linenos">1000</span></a> -</span><span id="Parser-1001"><a href="#Parser-1001"><span class="linenos">1001</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Parser-1002"><a href="#Parser-1002"><span class="linenos">1002</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Parser-982"><a href="#Parser-982"><span class="linenos"> 982</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Parser-983"><a href="#Parser-983"><span class="linenos"> 983</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="Parser-984"><a href="#Parser-984"><span class="linenos"> 984</span></a> +</span><span id="Parser-985"><a href="#Parser-985"><span class="linenos"> 985</span></a> <span class="k">if</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> +</span><span id="Parser-986"><a href="#Parser-986"><span class="linenos"> 986</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> +</span><span id="Parser-987"><a href="#Parser-987"><span class="linenos"> 987</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> +</span><span id="Parser-988"><a href="#Parser-988"><span class="linenos"> 988</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> +</span><span id="Parser-989"><a href="#Parser-989"><span class="linenos"> 989</span></a> <span class="k">elif</span> <span class="n">kind</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COLUMN</span><span class="p">:</span> +</span><span id="Parser-990"><a href="#Parser-990"><span class="linenos"> 990</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="Parser-991"><a href="#Parser-991"><span class="linenos"> 991</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-992"><a href="#Parser-992"><span class="linenos"> 992</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-993"><a href="#Parser-993"><span class="linenos"> 993</span></a> +</span><span id="Parser-994"><a href="#Parser-994"><span class="linenos"> 994</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">IS</span><span class="p">)</span> +</span><span id="Parser-995"><a href="#Parser-995"><span class="linenos"> 995</span></a> +</span><span id="Parser-996"><a href="#Parser-996"><span class="linenos"> 996</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><span id="Parser-997"><a href="#Parser-997"><span class="linenos"> 997</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Comment</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> +</span><span id="Parser-998"><a href="#Parser-998"><span class="linenos"> 998</span></a> <span class="p">)</span> +</span><span id="Parser-999"><a href="#Parser-999"><span class="linenos"> 999</span></a> +</span><span id="Parser-1000"><a href="#Parser-1000"><span class="linenos">1000</span></a> <span class="k">def</span> <span class="nf">_parse_statement</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1001"><a href="#Parser-1001"><span class="linenos">1001</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-1002"><a href="#Parser-1002"><span class="linenos">1002</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="Parser-1003"><a href="#Parser-1003"><span class="linenos">1003</span></a> -</span><span id="Parser-1004"><a href="#Parser-1004"><span class="linenos">1004</span></a> <span class="k">def</span> <span class="nf">_parse_drop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="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="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="Parser-1005"><a href="#Parser-1005"><span class="linenos">1005</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-1006"><a href="#Parser-1006"><span class="linenos">1006</span></a> <span class="n">temporary</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">TEMPORARY</span><span class="p">)</span> -</span><span id="Parser-1007"><a href="#Parser-1007"><span class="linenos">1007</span></a> <span class="n">materialized</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">MATERIALIZED</span><span class="p">)</span> -</span><span id="Parser-1008"><a href="#Parser-1008"><span class="linenos">1008</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-1009"><a href="#Parser-1009"><span class="linenos">1009</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Parser-1010"><a href="#Parser-1010"><span class="linenos">1010</span></a> <span class="k">if</span> <span class="n">default_kind</span><span class="p">:</span> -</span><span id="Parser-1011"><a href="#Parser-1011"><span class="linenos">1011</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">default_kind</span> -</span><span id="Parser-1012"><a href="#Parser-1012"><span class="linenos">1012</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1013"><a href="#Parser-1013"><span class="linenos">1013</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="Parser-1014"><a href="#Parser-1014"><span class="linenos">1014</span></a> -</span><span id="Parser-1015"><a href="#Parser-1015"><span class="linenos">1015</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><span id="Parser-1016"><a href="#Parser-1016"><span class="linenos">1016</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Drop</span><span class="p">,</span> -</span><span id="Parser-1017"><a href="#Parser-1017"><span class="linenos">1017</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> -</span><span id="Parser-1018"><a href="#Parser-1018"><span class="linenos">1018</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-1019"><a href="#Parser-1019"><span class="linenos">1019</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="Parser-1020"><a href="#Parser-1020"><span class="linenos">1020</span></a> <span class="n">temporary</span><span class="o">=</span><span class="n">temporary</span><span class="p">,</span> -</span><span id="Parser-1021"><a href="#Parser-1021"><span class="linenos">1021</span></a> <span class="n">materialized</span><span class="o">=</span><span class="n">materialized</span><span class="p">,</span> -</span><span id="Parser-1022"><a href="#Parser-1022"><span class="linenos">1022</span></a> <span class="n">cascade</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">CASCADE</span><span class="p">),</span> -</span><span id="Parser-1023"><a href="#Parser-1023"><span class="linenos">1023</span></a> <span class="p">)</span> -</span><span id="Parser-1024"><a href="#Parser-1024"><span class="linenos">1024</span></a> -</span><span id="Parser-1025"><a href="#Parser-1025"><span class="linenos">1025</span></a> <span class="k">def</span> <span class="nf">_parse_exists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">not_</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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><span id="Parser-1026"><a href="#Parser-1026"><span class="linenos">1026</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="Parser-1027"><a href="#Parser-1027"><span class="linenos">1027</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">IF</span><span class="p">)</span> -</span><span id="Parser-1028"><a href="#Parser-1028"><span class="linenos">1028</span></a> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="n">not_</span> <span class="ow">or</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">NOT</span><span class="p">))</span> -</span><span id="Parser-1029"><a href="#Parser-1029"><span class="linenos">1029</span></a> <span class="ow">and</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">EXISTS</span><span class="p">)</span> -</span><span id="Parser-1030"><a href="#Parser-1030"><span class="linenos">1030</span></a> <span class="p">)</span> -</span><span id="Parser-1031"><a href="#Parser-1031"><span class="linenos">1031</span></a> -</span><span id="Parser-1032"><a href="#Parser-1032"><span class="linenos">1032</span></a> <span class="k">def</span> <span class="nf">_parse_create</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1033"><a href="#Parser-1033"><span class="linenos">1033</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-1034"><a href="#Parser-1034"><span class="linenos">1034</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"REPLACE"</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> -</span><span id="Parser-1035"><a href="#Parser-1035"><span class="linenos">1035</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span> -</span><span id="Parser-1036"><a href="#Parser-1036"><span class="linenos">1036</span></a> <span class="p">)</span> -</span><span id="Parser-1037"><a href="#Parser-1037"><span class="linenos">1037</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> -</span><span id="Parser-1038"><a href="#Parser-1038"><span class="linenos">1038</span></a> <span class="n">volatile</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">VOLATILE</span><span class="p">)</span> -</span><span id="Parser-1039"><a href="#Parser-1039"><span class="linenos">1039</span></a> -</span><span id="Parser-1040"><a href="#Parser-1040"><span class="linenos">1040</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-1041"><a href="#Parser-1041"><span class="linenos">1041</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">TABLE</span><span class="p">)</span> -</span><span id="Parser-1042"><a href="#Parser-1042"><span class="linenos">1042</span></a> -</span><span id="Parser-1043"><a href="#Parser-1043"><span class="linenos">1043</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1044"><a href="#Parser-1044"><span class="linenos">1044</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-1045"><a href="#Parser-1045"><span class="linenos">1045</span></a> -</span><span id="Parser-1046"><a href="#Parser-1046"><span class="linenos">1046</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> -</span><span id="Parser-1047"><a href="#Parser-1047"><span class="linenos">1047</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> <span class="c1"># exp.Properties.Location.POST_CREATE</span> -</span><span id="Parser-1048"><a href="#Parser-1048"><span class="linenos">1048</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-1049"><a href="#Parser-1049"><span class="linenos">1049</span></a> -</span><span id="Parser-1050"><a href="#Parser-1050"><span class="linenos">1050</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">properties</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> -</span><span id="Parser-1051"><a href="#Parser-1051"><span class="linenos">1051</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="Parser-1052"><a href="#Parser-1052"><span class="linenos">1052</span></a> -</span><span id="Parser-1053"><a href="#Parser-1053"><span class="linenos">1053</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1054"><a href="#Parser-1054"><span class="linenos">1054</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1055"><a href="#Parser-1055"><span class="linenos">1055</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1056"><a href="#Parser-1056"><span class="linenos">1056</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1057"><a href="#Parser-1057"><span class="linenos">1057</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1058"><a href="#Parser-1058"><span class="linenos">1058</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1059"><a href="#Parser-1059"><span class="linenos">1059</span></a> -</span><span id="Parser-1060"><a href="#Parser-1060"><span class="linenos">1060</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> -</span><span id="Parser-1061"><a href="#Parser-1061"><span class="linenos">1061</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> -</span><span id="Parser-1062"><a href="#Parser-1062"><span class="linenos">1062</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="Parser-1063"><a href="#Parser-1063"><span class="linenos">1063</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1064"><a href="#Parser-1064"><span class="linenos">1064</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1065"><a href="#Parser-1065"><span class="linenos">1065</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1066"><a href="#Parser-1066"><span class="linenos">1066</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="Parser-1067"><a href="#Parser-1067"><span class="linenos">1067</span></a> -</span><span id="Parser-1068"><a href="#Parser-1068"><span class="linenos">1068</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-1069"><a href="#Parser-1069"><span class="linenos">1069</span></a> <span class="n">begin</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">BEGIN</span><span class="p">)</span> -</span><span id="Parser-1070"><a href="#Parser-1070"><span class="linenos">1070</span></a> <span class="n">return_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"RETURN"</span><span class="p">)</span> -</span><span id="Parser-1071"><a href="#Parser-1071"><span class="linenos">1071</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="Parser-1072"><a href="#Parser-1072"><span class="linenos">1072</span></a> -</span><span id="Parser-1073"><a href="#Parser-1073"><span class="linenos">1073</span></a> <span class="k">if</span> <span class="n">return_</span><span class="p">:</span> -</span><span id="Parser-1074"><a href="#Parser-1074"><span class="linenos">1074</span></a> <span class="n">expression</span> <span class="o">=</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">Return</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Parser-1075"><a href="#Parser-1075"><span class="linenos">1075</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">:</span> -</span><span id="Parser-1076"><a href="#Parser-1076"><span class="linenos">1076</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_index</span><span class="p">()</span> -</span><span id="Parser-1077"><a href="#Parser-1077"><span class="linenos">1077</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">DB_CREATABLES</span><span class="p">:</span> -</span><span id="Parser-1078"><a href="#Parser-1078"><span class="linenos">1078</span></a> <span class="n">table_parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1004"><a href="#Parser-1004"><span class="linenos">1004</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">):</span> +</span><span id="Parser-1005"><a href="#Parser-1005"><span class="linenos">1005</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">STATEMENT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-1006"><a href="#Parser-1006"><span class="linenos">1006</span></a> +</span><span id="Parser-1007"><a href="#Parser-1007"><span class="linenos">1007</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">Tokenizer</span><span class="o">.</span><span class="n">COMMANDS</span><span class="p">):</span> +</span><span id="Parser-1008"><a href="#Parser-1008"><span class="linenos">1008</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_command</span><span class="p">()</span> +</span><span id="Parser-1009"><a href="#Parser-1009"><span class="linenos">1009</span></a> +</span><span id="Parser-1010"><a href="#Parser-1010"><span class="linenos">1010</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> +</span><span id="Parser-1011"><a href="#Parser-1011"><span class="linenos">1011</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> <span class="k">if</span> <span class="n">expression</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> +</span><span id="Parser-1012"><a href="#Parser-1012"><span class="linenos">1012</span></a> +</span><span id="Parser-1013"><a href="#Parser-1013"><span class="linenos">1013</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Parser-1014"><a href="#Parser-1014"><span class="linenos">1014</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Parser-1015"><a href="#Parser-1015"><span class="linenos">1015</span></a> +</span><span id="Parser-1016"><a href="#Parser-1016"><span class="linenos">1016</span></a> <span class="k">def</span> <span class="nf">_parse_drop</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="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="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="Parser-1017"><a href="#Parser-1017"><span class="linenos">1017</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-1018"><a href="#Parser-1018"><span class="linenos">1018</span></a> <span class="n">temporary</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">TEMPORARY</span><span class="p">)</span> +</span><span id="Parser-1019"><a href="#Parser-1019"><span class="linenos">1019</span></a> <span class="n">materialized</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">MATERIALIZED</span><span class="p">)</span> +</span><span id="Parser-1020"><a href="#Parser-1020"><span class="linenos">1020</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-1021"><a href="#Parser-1021"><span class="linenos">1021</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Parser-1022"><a href="#Parser-1022"><span class="linenos">1022</span></a> <span class="k">if</span> <span class="n">default_kind</span><span class="p">:</span> +</span><span id="Parser-1023"><a href="#Parser-1023"><span class="linenos">1023</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">default_kind</span> +</span><span id="Parser-1024"><a href="#Parser-1024"><span class="linenos">1024</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1025"><a href="#Parser-1025"><span class="linenos">1025</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="Parser-1026"><a href="#Parser-1026"><span class="linenos">1026</span></a> +</span><span id="Parser-1027"><a href="#Parser-1027"><span class="linenos">1027</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><span id="Parser-1028"><a href="#Parser-1028"><span class="linenos">1028</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Drop</span><span class="p">,</span> +</span><span id="Parser-1029"><a href="#Parser-1029"><span class="linenos">1029</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> +</span><span id="Parser-1030"><a href="#Parser-1030"><span class="linenos">1030</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-1031"><a href="#Parser-1031"><span class="linenos">1031</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Parser-1032"><a href="#Parser-1032"><span class="linenos">1032</span></a> <span class="n">temporary</span><span class="o">=</span><span class="n">temporary</span><span class="p">,</span> +</span><span id="Parser-1033"><a href="#Parser-1033"><span class="linenos">1033</span></a> <span class="n">materialized</span><span class="o">=</span><span class="n">materialized</span><span class="p">,</span> +</span><span id="Parser-1034"><a href="#Parser-1034"><span class="linenos">1034</span></a> <span class="n">cascade</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">CASCADE</span><span class="p">),</span> +</span><span id="Parser-1035"><a href="#Parser-1035"><span class="linenos">1035</span></a> <span class="p">)</span> +</span><span id="Parser-1036"><a href="#Parser-1036"><span class="linenos">1036</span></a> +</span><span id="Parser-1037"><a href="#Parser-1037"><span class="linenos">1037</span></a> <span class="k">def</span> <span class="nf">_parse_exists</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">not_</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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><span id="Parser-1038"><a href="#Parser-1038"><span class="linenos">1038</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="Parser-1039"><a href="#Parser-1039"><span class="linenos">1039</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">IF</span><span class="p">)</span> +</span><span id="Parser-1040"><a href="#Parser-1040"><span class="linenos">1040</span></a> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="n">not_</span> <span class="ow">or</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">NOT</span><span class="p">))</span> +</span><span id="Parser-1041"><a href="#Parser-1041"><span class="linenos">1041</span></a> <span class="ow">and</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">EXISTS</span><span class="p">)</span> +</span><span id="Parser-1042"><a href="#Parser-1042"><span class="linenos">1042</span></a> <span class="p">)</span> +</span><span id="Parser-1043"><a href="#Parser-1043"><span class="linenos">1043</span></a> +</span><span id="Parser-1044"><a href="#Parser-1044"><span class="linenos">1044</span></a> <span class="k">def</span> <span class="nf">_parse_create</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1045"><a href="#Parser-1045"><span class="linenos">1045</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-1046"><a href="#Parser-1046"><span class="linenos">1046</span></a> <span class="n">replace</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"REPLACE"</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> +</span><span id="Parser-1047"><a href="#Parser-1047"><span class="linenos">1047</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span> +</span><span id="Parser-1048"><a href="#Parser-1048"><span class="linenos">1048</span></a> <span class="p">)</span> +</span><span id="Parser-1049"><a href="#Parser-1049"><span class="linenos">1049</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> +</span><span id="Parser-1050"><a href="#Parser-1050"><span class="linenos">1050</span></a> <span class="n">volatile</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">VOLATILE</span><span class="p">)</span> +</span><span id="Parser-1051"><a href="#Parser-1051"><span class="linenos">1051</span></a> +</span><span id="Parser-1052"><a href="#Parser-1052"><span class="linenos">1052</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-1053"><a href="#Parser-1053"><span class="linenos">1053</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">TABLE</span><span class="p">)</span> +</span><span id="Parser-1054"><a href="#Parser-1054"><span class="linenos">1054</span></a> +</span><span id="Parser-1055"><a href="#Parser-1055"><span class="linenos">1055</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1056"><a href="#Parser-1056"><span class="linenos">1056</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-1057"><a href="#Parser-1057"><span class="linenos">1057</span></a> +</span><span id="Parser-1058"><a href="#Parser-1058"><span class="linenos">1058</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> +</span><span id="Parser-1059"><a href="#Parser-1059"><span class="linenos">1059</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> <span class="c1"># exp.Properties.Location.POST_CREATE</span> +</span><span id="Parser-1060"><a href="#Parser-1060"><span class="linenos">1060</span></a> <span class="n">create_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-1061"><a href="#Parser-1061"><span class="linenos">1061</span></a> +</span><span id="Parser-1062"><a href="#Parser-1062"><span class="linenos">1062</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">properties</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">create_token</span><span class="p">:</span> +</span><span id="Parser-1063"><a href="#Parser-1063"><span class="linenos">1063</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="Parser-1064"><a href="#Parser-1064"><span class="linenos">1064</span></a> +</span><span id="Parser-1065"><a href="#Parser-1065"><span class="linenos">1065</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1066"><a href="#Parser-1066"><span class="linenos">1066</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1067"><a href="#Parser-1067"><span class="linenos">1067</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1068"><a href="#Parser-1068"><span class="linenos">1068</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1069"><a href="#Parser-1069"><span class="linenos">1069</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1070"><a href="#Parser-1070"><span class="linenos">1070</span></a> <span class="n">begin</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1071"><a href="#Parser-1071"><span class="linenos">1071</span></a> +</span><span id="Parser-1072"><a href="#Parser-1072"><span class="linenos">1072</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">):</span> +</span><span id="Parser-1073"><a href="#Parser-1073"><span class="linenos">1073</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_user_defined_function</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span><span class="p">)</span> +</span><span id="Parser-1074"><a href="#Parser-1074"><span class="linenos">1074</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="Parser-1075"><a href="#Parser-1075"><span class="linenos">1075</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1076"><a href="#Parser-1076"><span class="linenos">1076</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1077"><a href="#Parser-1077"><span class="linenos">1077</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1078"><a href="#Parser-1078"><span class="linenos">1078</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> </span><span id="Parser-1079"><a href="#Parser-1079"><span class="linenos">1079</span></a> -</span><span id="Parser-1080"><a href="#Parser-1080"><span class="linenos">1080</span></a> <span class="c1"># exp.Properties.Location.POST_NAME</span> -</span><span id="Parser-1081"><a href="#Parser-1081"><span class="linenos">1081</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> -</span><span id="Parser-1082"><a href="#Parser-1082"><span class="linenos">1082</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">(</span><span class="n">before</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1083"><a href="#Parser-1083"><span class="linenos">1083</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1084"><a href="#Parser-1084"><span class="linenos">1084</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1085"><a href="#Parser-1085"><span class="linenos">1085</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1086"><a href="#Parser-1086"><span class="linenos">1086</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="Parser-1087"><a href="#Parser-1087"><span class="linenos">1087</span></a> -</span><span id="Parser-1088"><a href="#Parser-1088"><span class="linenos">1088</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_parts</span><span class="p">)</span> -</span><span id="Parser-1089"><a href="#Parser-1089"><span class="linenos">1089</span></a> -</span><span id="Parser-1090"><a href="#Parser-1090"><span class="linenos">1090</span></a> <span class="c1"># exp.Properties.Location.POST_SCHEMA and POST_WITH</span> -</span><span id="Parser-1091"><a href="#Parser-1091"><span class="linenos">1091</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="Parser-1092"><a href="#Parser-1092"><span class="linenos">1092</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1093"><a href="#Parser-1093"><span class="linenos">1093</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1094"><a href="#Parser-1094"><span class="linenos">1094</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1095"><a href="#Parser-1095"><span class="linenos">1095</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="Parser-1096"><a href="#Parser-1096"><span class="linenos">1096</span></a> -</span><span id="Parser-1097"><a href="#Parser-1097"><span class="linenos">1097</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-1098"><a href="#Parser-1098"><span class="linenos">1098</span></a> -</span><span id="Parser-1099"><a href="#Parser-1099"><span class="linenos">1099</span></a> <span class="c1"># exp.Properties.Location.POST_ALIAS</span> -</span><span id="Parser-1100"><a href="#Parser-1100"><span class="linenos">1100</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span> -</span><span id="Parser-1101"><a href="#Parser-1101"><span class="linenos">1101</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">SELECT</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1102"><a href="#Parser-1102"><span class="linenos">1102</span></a> <span class="ow">or</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">WITH</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1103"><a href="#Parser-1103"><span class="linenos">1103</span></a> <span class="ow">or</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1104"><a href="#Parser-1104"><span class="linenos">1104</span></a> <span class="p">):</span> -</span><span id="Parser-1105"><a href="#Parser-1105"><span class="linenos">1105</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="Parser-1106"><a href="#Parser-1106"><span class="linenos">1106</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1107"><a href="#Parser-1107"><span class="linenos">1107</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1108"><a href="#Parser-1108"><span class="linenos">1108</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1109"><a href="#Parser-1109"><span class="linenos">1109</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="Parser-1080"><a href="#Parser-1080"><span class="linenos">1080</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-1081"><a href="#Parser-1081"><span class="linenos">1081</span></a> <span class="n">begin</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">BEGIN</span><span class="p">)</span> +</span><span id="Parser-1082"><a href="#Parser-1082"><span class="linenos">1082</span></a> <span class="n">return_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"RETURN"</span><span class="p">)</span> +</span><span id="Parser-1083"><a href="#Parser-1083"><span class="linenos">1083</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> +</span><span id="Parser-1084"><a href="#Parser-1084"><span class="linenos">1084</span></a> +</span><span id="Parser-1085"><a href="#Parser-1085"><span class="linenos">1085</span></a> <span class="k">if</span> <span class="n">return_</span><span class="p">:</span> +</span><span id="Parser-1086"><a href="#Parser-1086"><span class="linenos">1086</span></a> <span class="n">expression</span> <span class="o">=</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">Return</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Parser-1087"><a href="#Parser-1087"><span class="linenos">1087</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">:</span> +</span><span id="Parser-1088"><a href="#Parser-1088"><span class="linenos">1088</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_index</span><span class="p">()</span> +</span><span id="Parser-1089"><a href="#Parser-1089"><span class="linenos">1089</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">DB_CREATABLES</span><span class="p">:</span> +</span><span id="Parser-1090"><a href="#Parser-1090"><span class="linenos">1090</span></a> <span class="n">table_parts</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1091"><a href="#Parser-1091"><span class="linenos">1091</span></a> +</span><span id="Parser-1092"><a href="#Parser-1092"><span class="linenos">1092</span></a> <span class="c1"># exp.Properties.Location.POST_NAME</span> +</span><span id="Parser-1093"><a href="#Parser-1093"><span class="linenos">1093</span></a> <span class="k">if</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">COMMA</span><span class="p">):</span> +</span><span id="Parser-1094"><a href="#Parser-1094"><span class="linenos">1094</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">(</span><span class="n">before</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1095"><a href="#Parser-1095"><span class="linenos">1095</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1096"><a href="#Parser-1096"><span class="linenos">1096</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1097"><a href="#Parser-1097"><span class="linenos">1097</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1098"><a href="#Parser-1098"><span class="linenos">1098</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="Parser-1099"><a href="#Parser-1099"><span class="linenos">1099</span></a> +</span><span id="Parser-1100"><a href="#Parser-1100"><span class="linenos">1100</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">table_parts</span><span class="p">)</span> +</span><span id="Parser-1101"><a href="#Parser-1101"><span class="linenos">1101</span></a> +</span><span id="Parser-1102"><a href="#Parser-1102"><span class="linenos">1102</span></a> <span class="c1"># exp.Properties.Location.POST_SCHEMA and POST_WITH</span> +</span><span id="Parser-1103"><a href="#Parser-1103"><span class="linenos">1103</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="Parser-1104"><a href="#Parser-1104"><span class="linenos">1104</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1105"><a href="#Parser-1105"><span class="linenos">1105</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1106"><a href="#Parser-1106"><span class="linenos">1106</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1107"><a href="#Parser-1107"><span class="linenos">1107</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="Parser-1108"><a href="#Parser-1108"><span class="linenos">1108</span></a> +</span><span id="Parser-1109"><a href="#Parser-1109"><span class="linenos">1109</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">ALIAS</span><span class="p">)</span> </span><span id="Parser-1110"><a href="#Parser-1110"><span class="linenos">1110</span></a> -</span><span id="Parser-1111"><a href="#Parser-1111"><span class="linenos">1111</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">()</span> -</span><span id="Parser-1112"><a href="#Parser-1112"><span class="linenos">1112</span></a> -</span><span id="Parser-1113"><a href="#Parser-1113"><span class="linenos">1113</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> -</span><span id="Parser-1114"><a href="#Parser-1114"><span class="linenos">1114</span></a> <span class="c1"># exp.Properties.Location.POST_EXPRESSION</span> -</span><span id="Parser-1115"><a href="#Parser-1115"><span class="linenos">1115</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="Parser-1116"><a href="#Parser-1116"><span class="linenos">1116</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1117"><a href="#Parser-1117"><span class="linenos">1117</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1118"><a href="#Parser-1118"><span class="linenos">1118</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1119"><a href="#Parser-1119"><span class="linenos">1119</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> -</span><span id="Parser-1120"><a href="#Parser-1120"><span class="linenos">1120</span></a> -</span><span id="Parser-1121"><a href="#Parser-1121"><span class="linenos">1121</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-1122"><a href="#Parser-1122"><span class="linenos">1122</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-1123"><a href="#Parser-1123"><span class="linenos">1123</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_create_table_index</span><span class="p">()</span> +</span><span id="Parser-1111"><a href="#Parser-1111"><span class="linenos">1111</span></a> <span class="c1"># exp.Properties.Location.POST_ALIAS</span> +</span><span id="Parser-1112"><a href="#Parser-1112"><span class="linenos">1112</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span> +</span><span id="Parser-1113"><a href="#Parser-1113"><span class="linenos">1113</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">SELECT</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1114"><a href="#Parser-1114"><span class="linenos">1114</span></a> <span class="ow">or</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">WITH</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1115"><a href="#Parser-1115"><span class="linenos">1115</span></a> <span class="ow">or</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1116"><a href="#Parser-1116"><span class="linenos">1116</span></a> <span class="p">):</span> +</span><span id="Parser-1117"><a href="#Parser-1117"><span class="linenos">1117</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="Parser-1118"><a href="#Parser-1118"><span class="linenos">1118</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1119"><a href="#Parser-1119"><span class="linenos">1119</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1120"><a href="#Parser-1120"><span class="linenos">1120</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1121"><a href="#Parser-1121"><span class="linenos">1121</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="Parser-1122"><a href="#Parser-1122"><span class="linenos">1122</span></a> +</span><span id="Parser-1123"><a href="#Parser-1123"><span class="linenos">1123</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">()</span> </span><span id="Parser-1124"><a href="#Parser-1124"><span class="linenos">1124</span></a> -</span><span id="Parser-1125"><a href="#Parser-1125"><span class="linenos">1125</span></a> <span class="c1"># exp.Properties.Location.POST_INDEX</span> -</span><span id="Parser-1126"><a href="#Parser-1126"><span class="linenos">1126</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-1127"><a href="#Parser-1127"><span class="linenos">1127</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> -</span><span id="Parser-1128"><a href="#Parser-1128"><span class="linenos">1128</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1129"><a href="#Parser-1129"><span class="linenos">1129</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1130"><a href="#Parser-1130"><span class="linenos">1130</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> -</span><span id="Parser-1131"><a href="#Parser-1131"><span class="linenos">1131</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="Parser-1125"><a href="#Parser-1125"><span class="linenos">1125</span></a> <span class="k">if</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">:</span> +</span><span id="Parser-1126"><a href="#Parser-1126"><span class="linenos">1126</span></a> <span class="c1"># exp.Properties.Location.POST_EXPRESSION</span> +</span><span id="Parser-1127"><a href="#Parser-1127"><span class="linenos">1127</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="Parser-1128"><a href="#Parser-1128"><span class="linenos">1128</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1129"><a href="#Parser-1129"><span class="linenos">1129</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1130"><a href="#Parser-1130"><span class="linenos">1130</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1131"><a href="#Parser-1131"><span class="linenos">1131</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> </span><span id="Parser-1132"><a href="#Parser-1132"><span class="linenos">1132</span></a> -</span><span id="Parser-1133"><a href="#Parser-1133"><span class="linenos">1133</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">index</span><span class="p">:</span> -</span><span id="Parser-1134"><a href="#Parser-1134"><span class="linenos">1134</span></a> <span class="k">break</span> -</span><span id="Parser-1135"><a href="#Parser-1135"><span class="linenos">1135</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1136"><a href="#Parser-1136"><span class="linenos">1136</span></a> <span class="n">indexes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> -</span><span id="Parser-1137"><a href="#Parser-1137"><span class="linenos">1137</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">:</span> -</span><span id="Parser-1138"><a href="#Parser-1138"><span class="linenos">1138</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">,</span> <span class="s2">"BINDING"</span><span class="p">):</span> -</span><span id="Parser-1139"><a href="#Parser-1139"><span class="linenos">1139</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-1140"><a href="#Parser-1140"><span class="linenos">1140</span></a> -</span><span id="Parser-1141"><a href="#Parser-1141"><span class="linenos">1141</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><span id="Parser-1142"><a href="#Parser-1142"><span class="linenos">1142</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> -</span><span id="Parser-1143"><a href="#Parser-1143"><span class="linenos">1143</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1144"><a href="#Parser-1144"><span class="linenos">1144</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> -</span><span id="Parser-1145"><a href="#Parser-1145"><span class="linenos">1145</span></a> <span class="n">replace</span><span class="o">=</span><span class="n">replace</span><span class="p">,</span> -</span><span id="Parser-1146"><a href="#Parser-1146"><span class="linenos">1146</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> -</span><span id="Parser-1147"><a href="#Parser-1147"><span class="linenos">1147</span></a> <span class="n">volatile</span><span class="o">=</span><span class="n">volatile</span><span class="p">,</span> -</span><span id="Parser-1148"><a href="#Parser-1148"><span class="linenos">1148</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="Parser-1149"><a href="#Parser-1149"><span class="linenos">1149</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> -</span><span id="Parser-1150"><a href="#Parser-1150"><span class="linenos">1150</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties</span><span class="p">,</span> -</span><span id="Parser-1151"><a href="#Parser-1151"><span class="linenos">1151</span></a> <span class="n">indexes</span><span class="o">=</span><span class="n">indexes</span><span class="p">,</span> -</span><span id="Parser-1152"><a href="#Parser-1152"><span class="linenos">1152</span></a> <span class="n">no_schema_binding</span><span class="o">=</span><span class="n">no_schema_binding</span><span class="p">,</span> -</span><span id="Parser-1153"><a href="#Parser-1153"><span class="linenos">1153</span></a> <span class="n">begin</span><span class="o">=</span><span class="n">begin</span><span class="p">,</span> -</span><span id="Parser-1154"><a href="#Parser-1154"><span class="linenos">1154</span></a> <span class="p">)</span> -</span><span id="Parser-1155"><a href="#Parser-1155"><span class="linenos">1155</span></a> -</span><span id="Parser-1156"><a href="#Parser-1156"><span class="linenos">1156</span></a> <span class="k">def</span> <span class="nf">_parse_property_before</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1157"><a href="#Parser-1157"><span class="linenos">1157</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="Parser-1158"><a href="#Parser-1158"><span class="linenos">1158</span></a> -</span><span id="Parser-1159"><a href="#Parser-1159"><span class="linenos">1159</span></a> <span class="c1"># parsers look to _prev for no/dual/default, so need to consume first</span> -</span><span id="Parser-1160"><a href="#Parser-1160"><span class="linenos">1160</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> -</span><span id="Parser-1161"><a href="#Parser-1161"><span class="linenos">1161</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DUAL"</span><span class="p">)</span> -</span><span id="Parser-1162"><a href="#Parser-1162"><span class="linenos">1162</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> -</span><span id="Parser-1163"><a href="#Parser-1163"><span class="linenos">1163</span></a> -</span><span id="Parser-1164"><a href="#Parser-1164"><span class="linenos">1164</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()):</span> -</span><span id="Parser-1165"><a href="#Parser-1165"><span class="linenos">1165</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-1166"><a href="#Parser-1166"><span class="linenos">1166</span></a> -</span><span id="Parser-1167"><a href="#Parser-1167"><span class="linenos">1167</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1168"><a href="#Parser-1168"><span class="linenos">1168</span></a> -</span><span id="Parser-1169"><a href="#Parser-1169"><span class="linenos">1169</span></a> <span class="k">def</span> <span class="nf">_parse_property</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1170"><a href="#Parser-1170"><span class="linenos">1170</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">):</span> -</span><span id="Parser-1171"><a href="#Parser-1171"><span class="linenos">1171</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-1172"><a href="#Parser-1172"><span class="linenos">1172</span></a> -</span><span id="Parser-1173"><a href="#Parser-1173"><span class="linenos">1173</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHARACTER_SET</span><span class="p">):</span> -</span><span id="Parser-1174"><a href="#Parser-1174"><span class="linenos">1174</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_character_set</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1133"><a href="#Parser-1133"><span class="linenos">1133</span></a> <span class="n">indexes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-1134"><a href="#Parser-1134"><span class="linenos">1134</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-1135"><a href="#Parser-1135"><span class="linenos">1135</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_create_table_index</span><span class="p">()</span> +</span><span id="Parser-1136"><a href="#Parser-1136"><span class="linenos">1136</span></a> +</span><span id="Parser-1137"><a href="#Parser-1137"><span class="linenos">1137</span></a> <span class="c1"># exp.Properties.Location.POST_INDEX</span> +</span><span id="Parser-1138"><a href="#Parser-1138"><span class="linenos">1138</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-1139"><a href="#Parser-1139"><span class="linenos">1139</span></a> <span class="n">temp_properties</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_properties</span><span class="p">()</span> +</span><span id="Parser-1140"><a href="#Parser-1140"><span class="linenos">1140</span></a> <span class="k">if</span> <span class="n">properties</span> <span class="ow">and</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1141"><a href="#Parser-1141"><span class="linenos">1141</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">expressions</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">temp_properties</span><span class="o">.</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1142"><a href="#Parser-1142"><span class="linenos">1142</span></a> <span class="k">elif</span> <span class="n">temp_properties</span><span class="p">:</span> +</span><span id="Parser-1143"><a href="#Parser-1143"><span class="linenos">1143</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="n">temp_properties</span> +</span><span id="Parser-1144"><a href="#Parser-1144"><span class="linenos">1144</span></a> +</span><span id="Parser-1145"><a href="#Parser-1145"><span class="linenos">1145</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">index</span><span class="p">:</span> +</span><span id="Parser-1146"><a href="#Parser-1146"><span class="linenos">1146</span></a> <span class="k">break</span> +</span><span id="Parser-1147"><a href="#Parser-1147"><span class="linenos">1147</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1148"><a href="#Parser-1148"><span class="linenos">1148</span></a> <span class="n">indexes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">index</span><span class="p">)</span> +</span><span id="Parser-1149"><a href="#Parser-1149"><span class="linenos">1149</span></a> <span class="k">elif</span> <span class="n">create_token</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">:</span> +</span><span id="Parser-1150"><a href="#Parser-1150"><span class="linenos">1150</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"SCHEMA"</span><span class="p">,</span> <span class="s2">"BINDING"</span><span class="p">):</span> +</span><span id="Parser-1151"><a href="#Parser-1151"><span class="linenos">1151</span></a> <span class="n">no_schema_binding</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-1152"><a href="#Parser-1152"><span class="linenos">1152</span></a> +</span><span id="Parser-1153"><a href="#Parser-1153"><span class="linenos">1153</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><span id="Parser-1154"><a href="#Parser-1154"><span class="linenos">1154</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Create</span><span class="p">,</span> +</span><span id="Parser-1155"><a href="#Parser-1155"><span class="linenos">1155</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1156"><a href="#Parser-1156"><span class="linenos">1156</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">create_token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> +</span><span id="Parser-1157"><a href="#Parser-1157"><span class="linenos">1157</span></a> <span class="n">replace</span><span class="o">=</span><span class="n">replace</span><span class="p">,</span> +</span><span id="Parser-1158"><a href="#Parser-1158"><span class="linenos">1158</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> +</span><span id="Parser-1159"><a href="#Parser-1159"><span class="linenos">1159</span></a> <span class="n">volatile</span><span class="o">=</span><span class="n">volatile</span><span class="p">,</span> +</span><span id="Parser-1160"><a href="#Parser-1160"><span class="linenos">1160</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Parser-1161"><a href="#Parser-1161"><span class="linenos">1161</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> +</span><span id="Parser-1162"><a href="#Parser-1162"><span class="linenos">1162</span></a> <span class="n">properties</span><span class="o">=</span><span class="n">properties</span><span class="p">,</span> +</span><span id="Parser-1163"><a href="#Parser-1163"><span class="linenos">1163</span></a> <span class="n">indexes</span><span class="o">=</span><span class="n">indexes</span><span class="p">,</span> +</span><span id="Parser-1164"><a href="#Parser-1164"><span class="linenos">1164</span></a> <span class="n">no_schema_binding</span><span class="o">=</span><span class="n">no_schema_binding</span><span class="p">,</span> +</span><span id="Parser-1165"><a href="#Parser-1165"><span class="linenos">1165</span></a> <span class="n">begin</span><span class="o">=</span><span class="n">begin</span><span class="p">,</span> +</span><span id="Parser-1166"><a href="#Parser-1166"><span class="linenos">1166</span></a> <span class="p">)</span> +</span><span id="Parser-1167"><a href="#Parser-1167"><span class="linenos">1167</span></a> +</span><span id="Parser-1168"><a href="#Parser-1168"><span class="linenos">1168</span></a> <span class="k">def</span> <span class="nf">_parse_property_before</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1169"><a href="#Parser-1169"><span class="linenos">1169</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="Parser-1170"><a href="#Parser-1170"><span class="linenos">1170</span></a> +</span><span id="Parser-1171"><a href="#Parser-1171"><span class="linenos">1171</span></a> <span class="c1"># parsers look to _prev for no/dual/default, so need to consume first</span> +</span><span id="Parser-1172"><a href="#Parser-1172"><span class="linenos">1172</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> +</span><span id="Parser-1173"><a href="#Parser-1173"><span class="linenos">1173</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DUAL"</span><span class="p">)</span> +</span><span id="Parser-1174"><a href="#Parser-1174"><span class="linenos">1174</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> </span><span id="Parser-1175"><a href="#Parser-1175"><span class="linenos">1175</span></a> -</span><span id="Parser-1176"><a href="#Parser-1176"><span class="linenos">1176</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">):</span> -</span><span id="Parser-1177"><a href="#Parser-1177"><span class="linenos">1177</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_sortkey</span><span class="p">(</span><span class="n">compound</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1176"><a href="#Parser-1176"><span class="linenos">1176</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()):</span> +</span><span id="Parser-1177"><a href="#Parser-1177"><span class="linenos">1177</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> </span><span id="Parser-1178"><a href="#Parser-1178"><span class="linenos">1178</span></a> -</span><span id="Parser-1179"><a href="#Parser-1179"><span class="linenos">1179</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SQL"</span><span class="p">,</span> <span class="s2">"SECURITY"</span><span class="p">):</span> -</span><span id="Parser-1180"><a href="#Parser-1180"><span class="linenos">1180</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">SqlSecurityProperty</span><span class="p">,</span> <span class="n">definer</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINER"</span><span class="p">))</span> -</span><span id="Parser-1181"><a href="#Parser-1181"><span class="linenos">1181</span></a> -</span><span id="Parser-1182"><a href="#Parser-1182"><span class="linenos">1182</span></a> <span class="n">assignment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> -</span><span id="Parser-1183"><a href="#Parser-1183"><span class="linenos">1183</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span> -</span><span id="Parser-1184"><a href="#Parser-1184"><span class="linenos">1184</span></a> <span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1185"><a href="#Parser-1185"><span class="linenos">1185</span></a> -</span><span id="Parser-1186"><a href="#Parser-1186"><span class="linenos">1186</span></a> <span class="k">if</span> <span class="n">assignment</span><span class="p">:</span> -</span><span id="Parser-1187"><a href="#Parser-1187"><span class="linenos">1187</span></a> <span class="n">key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> -</span><span id="Parser-1188"><a href="#Parser-1188"><span class="linenos">1188</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1189"><a href="#Parser-1189"><span class="linenos">1189</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">Property</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">())</span> +</span><span id="Parser-1179"><a href="#Parser-1179"><span class="linenos">1179</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1180"><a href="#Parser-1180"><span class="linenos">1180</span></a> +</span><span id="Parser-1181"><a href="#Parser-1181"><span class="linenos">1181</span></a> <span class="k">def</span> <span class="nf">_parse_property</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1182"><a href="#Parser-1182"><span class="linenos">1182</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">):</span> +</span><span id="Parser-1183"><a href="#Parser-1183"><span class="linenos">1183</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PROPERTY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-1184"><a href="#Parser-1184"><span class="linenos">1184</span></a> +</span><span id="Parser-1185"><a href="#Parser-1185"><span class="linenos">1185</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHARACTER_SET</span><span class="p">):</span> +</span><span id="Parser-1186"><a href="#Parser-1186"><span class="linenos">1186</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_character_set</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1187"><a href="#Parser-1187"><span class="linenos">1187</span></a> +</span><span id="Parser-1188"><a href="#Parser-1188"><span class="linenos">1188</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">COMPOUND</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">):</span> +</span><span id="Parser-1189"><a href="#Parser-1189"><span class="linenos">1189</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_sortkey</span><span class="p">(</span><span class="n">compound</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="Parser-1190"><a href="#Parser-1190"><span class="linenos">1190</span></a> -</span><span id="Parser-1191"><a href="#Parser-1191"><span class="linenos">1191</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1192"><a href="#Parser-1192"><span class="linenos">1192</span></a> -</span><span id="Parser-1193"><a href="#Parser-1193"><span class="linenos">1193</span></a> <span class="k">def</span> <span class="nf">_parse_property_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1194"><a href="#Parser-1194"><span class="linenos">1194</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1195"><a href="#Parser-1195"><span class="linenos">1195</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-1196"><a href="#Parser-1196"><span class="linenos">1196</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><span id="Parser-1197"><a href="#Parser-1197"><span class="linenos">1197</span></a> <span class="n">exp_class</span><span class="p">,</span> -</span><span id="Parser-1198"><a href="#Parser-1198"><span class="linenos">1198</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> -</span><span id="Parser-1199"><a href="#Parser-1199"><span class="linenos">1199</span></a> <span class="p">)</span> -</span><span id="Parser-1200"><a href="#Parser-1200"><span class="linenos">1200</span></a> -</span><span id="Parser-1201"><a href="#Parser-1201"><span class="linenos">1201</span></a> <span class="k">def</span> <span class="nf">_parse_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="kc">None</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1202"><a href="#Parser-1202"><span class="linenos">1202</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-1203"><a href="#Parser-1203"><span class="linenos">1203</span></a> -</span><span id="Parser-1204"><a href="#Parser-1204"><span class="linenos">1204</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-1205"><a href="#Parser-1205"><span class="linenos">1205</span></a> <span class="k">if</span> <span class="n">before</span><span class="p">:</span> -</span><span id="Parser-1206"><a href="#Parser-1206"><span class="linenos">1206</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property_before</span><span class="p">()</span> -</span><span id="Parser-1207"><a href="#Parser-1207"><span class="linenos">1207</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1208"><a href="#Parser-1208"><span class="linenos">1208</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">()</span> -</span><span id="Parser-1209"><a href="#Parser-1209"><span class="linenos">1209</span></a> -</span><span id="Parser-1210"><a href="#Parser-1210"><span class="linenos">1210</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">identified_property</span><span class="p">:</span> -</span><span id="Parser-1211"><a href="#Parser-1211"><span class="linenos">1211</span></a> <span class="k">break</span> -</span><span id="Parser-1212"><a href="#Parser-1212"><span class="linenos">1212</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">identified_property</span><span class="p">):</span> -</span><span id="Parser-1213"><a href="#Parser-1213"><span class="linenos">1213</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> -</span><span id="Parser-1214"><a href="#Parser-1214"><span class="linenos">1214</span></a> -</span><span id="Parser-1215"><a href="#Parser-1215"><span class="linenos">1215</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> -</span><span id="Parser-1216"><a href="#Parser-1216"><span class="linenos">1216</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">Properties</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">properties</span><span class="p">)</span> -</span><span id="Parser-1217"><a href="#Parser-1217"><span class="linenos">1217</span></a> -</span><span id="Parser-1218"><a href="#Parser-1218"><span class="linenos">1218</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1219"><a href="#Parser-1219"><span class="linenos">1219</span></a> -</span><span id="Parser-1220"><a href="#Parser-1220"><span class="linenos">1220</span></a> <span class="k">def</span> <span class="nf">_parse_fallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1221"><a href="#Parser-1221"><span class="linenos">1221</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FALLBACK"</span><span class="p">)</span> -</span><span id="Parser-1222"><a href="#Parser-1222"><span class="linenos">1222</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><span id="Parser-1223"><a href="#Parser-1223"><span class="linenos">1223</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PROTECTION"</span><span class="p">)</span> -</span><span id="Parser-1224"><a href="#Parser-1224"><span class="linenos">1224</span></a> <span class="p">)</span> -</span><span id="Parser-1225"><a href="#Parser-1225"><span class="linenos">1225</span></a> -</span><span id="Parser-1226"><a href="#Parser-1226"><span class="linenos">1226</span></a> <span class="k">def</span> <span class="nf">_parse_with_property</span><span class="p">(</span> -</span><span id="Parser-1227"><a href="#Parser-1227"><span class="linenos">1227</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser-1228"><a href="#Parser-1228"><span class="linenos">1228</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="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 class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="Parser-1229"><a href="#Parser-1229"><span class="linenos">1229</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">WITH</span><span class="p">)</span> -</span><span id="Parser-1230"><a href="#Parser-1230"><span class="linenos">1230</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-1231"><a href="#Parser-1231"><span class="linenos">1231</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> -</span><span id="Parser-1232"><a href="#Parser-1232"><span class="linenos">1232</span></a> -</span><span id="Parser-1233"><a href="#Parser-1233"><span class="linenos">1233</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">):</span> -</span><span id="Parser-1234"><a href="#Parser-1234"><span class="linenos">1234</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withjournaltable</span><span class="p">()</span> -</span><span id="Parser-1235"><a href="#Parser-1235"><span class="linenos">1235</span></a> -</span><span id="Parser-1236"><a href="#Parser-1236"><span class="linenos">1236</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATA"</span><span class="p">):</span> -</span><span id="Parser-1237"><a href="#Parser-1237"><span class="linenos">1237</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1238"><a href="#Parser-1238"><span class="linenos">1238</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">):</span> -</span><span id="Parser-1239"><a href="#Parser-1239"><span class="linenos">1239</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1240"><a href="#Parser-1240"><span class="linenos">1240</span></a> -</span><span id="Parser-1241"><a href="#Parser-1241"><span class="linenos">1241</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> -</span><span id="Parser-1242"><a href="#Parser-1242"><span class="linenos">1242</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1243"><a href="#Parser-1243"><span class="linenos">1243</span></a> -</span><span id="Parser-1244"><a href="#Parser-1244"><span class="linenos">1244</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withisolatedloading</span><span class="p">()</span> -</span><span id="Parser-1245"><a href="#Parser-1245"><span class="linenos">1245</span></a> -</span><span id="Parser-1246"><a href="#Parser-1246"><span class="linenos">1246</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-view.html</span> -</span><span id="Parser-1247"><a href="#Parser-1247"><span class="linenos">1247</span></a> <span class="k">def</span> <span class="nf">_parse_definer</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1248"><a href="#Parser-1248"><span class="linenos">1248</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1249"><a href="#Parser-1249"><span class="linenos">1249</span></a> -</span><span id="Parser-1250"><a href="#Parser-1250"><span class="linenos">1250</span></a> <span class="n">user</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-1251"><a href="#Parser-1251"><span class="linenos">1251</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">PARAMETER</span><span class="p">)</span> -</span><span id="Parser-1252"><a href="#Parser-1252"><span class="linenos">1252</span></a> <span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="p">(</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">MOD</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-1253"><a href="#Parser-1253"><span class="linenos">1253</span></a> -</span><span id="Parser-1254"><a href="#Parser-1254"><span class="linenos">1254</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">user</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span> -</span><span id="Parser-1255"><a href="#Parser-1255"><span class="linenos">1255</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1256"><a href="#Parser-1256"><span class="linenos">1256</span></a> -</span><span id="Parser-1257"><a href="#Parser-1257"><span class="linenos">1257</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">@</span><span class="si">{</span><span class="n">host</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Parser-1258"><a href="#Parser-1258"><span class="linenos">1258</span></a> -</span><span id="Parser-1259"><a href="#Parser-1259"><span class="linenos">1259</span></a> <span class="k">def</span> <span class="nf">_parse_withjournaltable</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1260"><a href="#Parser-1260"><span class="linenos">1260</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">TABLE</span><span class="p">)</span> -</span><span id="Parser-1261"><a href="#Parser-1261"><span class="linenos">1261</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1262"><a href="#Parser-1262"><span class="linenos">1262</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">WithJournalTableProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">())</span> -</span><span id="Parser-1263"><a href="#Parser-1263"><span class="linenos">1263</span></a> -</span><span id="Parser-1264"><a href="#Parser-1264"><span class="linenos">1264</span></a> <span class="k">def</span> <span class="nf">_parse_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1265"><a href="#Parser-1265"><span class="linenos">1265</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOG"</span><span class="p">)</span> -</span><span id="Parser-1266"><a href="#Parser-1266"><span class="linenos">1266</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">LogProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">)</span> -</span><span id="Parser-1267"><a href="#Parser-1267"><span class="linenos">1267</span></a> -</span><span id="Parser-1268"><a href="#Parser-1268"><span class="linenos">1268</span></a> <span class="k">def</span> <span class="nf">_parse_journal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1269"><a href="#Parser-1269"><span class="linenos">1269</span></a> <span class="n">before</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BEFORE"</span><span class="p">)</span> -</span><span id="Parser-1270"><a href="#Parser-1270"><span class="linenos">1270</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">)</span> -</span><span id="Parser-1271"><a href="#Parser-1271"><span class="linenos">1271</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">JournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="n">before</span><span class="p">)</span> -</span><span id="Parser-1272"><a href="#Parser-1272"><span class="linenos">1272</span></a> -</span><span id="Parser-1273"><a href="#Parser-1273"><span class="linenos">1273</span></a> <span class="k">def</span> <span class="nf">_parse_afterjournal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1274"><a href="#Parser-1274"><span class="linenos">1274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">)</span> -</span><span id="Parser-1275"><a href="#Parser-1275"><span class="linenos">1275</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">)</span> -</span><span id="Parser-1276"><a href="#Parser-1276"><span class="linenos">1276</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"JOURNAL"</span><span class="p">)</span> -</span><span id="Parser-1277"><a href="#Parser-1277"><span class="linenos">1277</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">AfterJournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">)</span> -</span><span id="Parser-1278"><a href="#Parser-1278"><span class="linenos">1278</span></a> -</span><span id="Parser-1279"><a href="#Parser-1279"><span class="linenos">1279</span></a> <span class="k">def</span> <span class="nf">_parse_checksum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1280"><a href="#Parser-1280"><span class="linenos">1280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">)</span> -</span><span id="Parser-1281"><a href="#Parser-1281"><span class="linenos">1281</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1282"><a href="#Parser-1282"><span class="linenos">1282</span></a> -</span><span id="Parser-1283"><a href="#Parser-1283"><span class="linenos">1283</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1284"><a href="#Parser-1284"><span class="linenos">1284</span></a> <span class="k">if</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">ON</span><span class="p">):</span> -</span><span id="Parser-1285"><a href="#Parser-1285"><span class="linenos">1285</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-1286"><a href="#Parser-1286"><span class="linenos">1286</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFF"</span><span class="p">):</span> -</span><span id="Parser-1287"><a href="#Parser-1287"><span class="linenos">1287</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-1288"><a href="#Parser-1288"><span class="linenos">1288</span></a> <span class="n">default</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">DEFAULT</span><span class="p">)</span> -</span><span id="Parser-1289"><a href="#Parser-1289"><span class="linenos">1289</span></a> -</span><span id="Parser-1290"><a href="#Parser-1290"><span class="linenos">1290</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><span id="Parser-1291"><a href="#Parser-1291"><span class="linenos">1291</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">,</span> -</span><span id="Parser-1292"><a href="#Parser-1292"><span class="linenos">1292</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> -</span><span id="Parser-1293"><a href="#Parser-1293"><span class="linenos">1293</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> -</span><span id="Parser-1294"><a href="#Parser-1294"><span class="linenos">1294</span></a> <span class="p">)</span> -</span><span id="Parser-1295"><a href="#Parser-1295"><span class="linenos">1295</span></a> -</span><span id="Parser-1296"><a href="#Parser-1296"><span class="linenos">1296</span></a> <span class="k">def</span> <span class="nf">_parse_freespace</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1297"><a href="#Parser-1297"><span class="linenos">1297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FREESPACE"</span><span class="p">)</span> -</span><span id="Parser-1298"><a href="#Parser-1298"><span class="linenos">1298</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1299"><a href="#Parser-1299"><span class="linenos">1299</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><span id="Parser-1300"><a href="#Parser-1300"><span class="linenos">1300</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> <span class="n">percent</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">PERCENT</span><span class="p">)</span> -</span><span id="Parser-1301"><a href="#Parser-1301"><span class="linenos">1301</span></a> <span class="p">)</span> -</span><span id="Parser-1302"><a href="#Parser-1302"><span class="linenos">1302</span></a> -</span><span id="Parser-1303"><a href="#Parser-1303"><span class="linenos">1303</span></a> <span class="k">def</span> <span class="nf">_parse_mergeblockratio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1304"><a href="#Parser-1304"><span class="linenos">1304</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MERGEBLOCKRATIO"</span><span class="p">)</span> -</span><span id="Parser-1305"><a href="#Parser-1305"><span class="linenos">1305</span></a> <span class="k">if</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">EQ</span><span class="p">):</span> -</span><span id="Parser-1306"><a href="#Parser-1306"><span class="linenos">1306</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><span id="Parser-1307"><a href="#Parser-1307"><span class="linenos">1307</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> -</span><span id="Parser-1308"><a href="#Parser-1308"><span class="linenos">1308</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> -</span><span id="Parser-1309"><a href="#Parser-1309"><span class="linenos">1309</span></a> <span class="n">percent</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">PERCENT</span><span class="p">),</span> -</span><span id="Parser-1310"><a href="#Parser-1310"><span class="linenos">1310</span></a> <span class="p">)</span> -</span><span id="Parser-1311"><a href="#Parser-1311"><span class="linenos">1311</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1312"><a href="#Parser-1312"><span class="linenos">1312</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><span id="Parser-1313"><a href="#Parser-1313"><span class="linenos">1313</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> -</span><span id="Parser-1314"><a href="#Parser-1314"><span class="linenos">1314</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> -</span><span id="Parser-1315"><a href="#Parser-1315"><span class="linenos">1315</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> -</span><span id="Parser-1316"><a href="#Parser-1316"><span class="linenos">1316</span></a> <span class="p">)</span> -</span><span id="Parser-1317"><a href="#Parser-1317"><span class="linenos">1317</span></a> -</span><span id="Parser-1318"><a href="#Parser-1318"><span class="linenos">1318</span></a> <span class="k">def</span> <span class="nf">_parse_datablocksize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1319"><a href="#Parser-1319"><span class="linenos">1319</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> -</span><span id="Parser-1320"><a href="#Parser-1320"><span class="linenos">1320</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="Parser-1321"><a href="#Parser-1321"><span class="linenos">1321</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1322"><a href="#Parser-1322"><span class="linenos">1322</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MIN"</span><span class="p">,</span> <span class="s2">"MINIMUM"</span><span class="p">)):</span> -</span><span id="Parser-1323"><a href="#Parser-1323"><span class="linenos">1323</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="Parser-1324"><a href="#Parser-1324"><span class="linenos">1324</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1325"><a href="#Parser-1325"><span class="linenos">1325</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MAX"</span><span class="p">,</span> <span class="s2">"MAXIMUM"</span><span class="p">)):</span> -</span><span id="Parser-1326"><a href="#Parser-1326"><span class="linenos">1326</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="Parser-1327"><a href="#Parser-1327"><span class="linenos">1327</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1328"><a href="#Parser-1328"><span class="linenos">1328</span></a> -</span><span id="Parser-1329"><a href="#Parser-1329"><span class="linenos">1329</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> -</span><span id="Parser-1330"><a href="#Parser-1330"><span class="linenos">1330</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1331"><a href="#Parser-1331"><span class="linenos">1331</span></a> <span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-1332"><a href="#Parser-1332"><span class="linenos">1332</span></a> <span class="n">units</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1333"><a href="#Parser-1333"><span class="linenos">1333</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"BYTES"</span><span class="p">,</span> <span class="s2">"KBYTES"</span><span class="p">,</span> <span class="s2">"KILOBYTES"</span><span class="p">)):</span> -</span><span id="Parser-1334"><a href="#Parser-1334"><span class="linenos">1334</span></a> <span class="n">units</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-1335"><a href="#Parser-1335"><span class="linenos">1335</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">units</span><span class="p">)</span> -</span><span id="Parser-1336"><a href="#Parser-1336"><span class="linenos">1336</span></a> -</span><span id="Parser-1337"><a href="#Parser-1337"><span class="linenos">1337</span></a> <span class="k">def</span> <span class="nf">_parse_blockcompression</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1338"><a href="#Parser-1338"><span class="linenos">1338</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BLOCKCOMPRESSION"</span><span class="p">)</span> -</span><span id="Parser-1339"><a href="#Parser-1339"><span class="linenos">1339</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1340"><a href="#Parser-1340"><span class="linenos">1340</span></a> <span class="n">always</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> -</span><span id="Parser-1341"><a href="#Parser-1341"><span class="linenos">1341</span></a> <span class="n">manual</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MANUAL"</span><span class="p">)</span> -</span><span id="Parser-1342"><a href="#Parser-1342"><span class="linenos">1342</span></a> <span class="n">never</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NEVER"</span><span class="p">)</span> -</span><span id="Parser-1343"><a href="#Parser-1343"><span class="linenos">1343</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> -</span><span id="Parser-1344"><a href="#Parser-1344"><span class="linenos">1344</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1345"><a href="#Parser-1345"><span class="linenos">1345</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AUTOTEMP"</span><span class="p">):</span> -</span><span id="Parser-1346"><a href="#Parser-1346"><span class="linenos">1346</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> -</span><span id="Parser-1347"><a href="#Parser-1347"><span class="linenos">1347</span></a> -</span><span id="Parser-1348"><a href="#Parser-1348"><span class="linenos">1348</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><span id="Parser-1349"><a href="#Parser-1349"><span class="linenos">1349</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">,</span> -</span><span id="Parser-1350"><a href="#Parser-1350"><span class="linenos">1350</span></a> <span class="n">always</span><span class="o">=</span><span class="n">always</span><span class="p">,</span> -</span><span id="Parser-1351"><a href="#Parser-1351"><span class="linenos">1351</span></a> <span class="n">manual</span><span class="o">=</span><span class="n">manual</span><span class="p">,</span> -</span><span id="Parser-1352"><a href="#Parser-1352"><span class="linenos">1352</span></a> <span class="n">never</span><span class="o">=</span><span class="n">never</span><span class="p">,</span> -</span><span id="Parser-1353"><a href="#Parser-1353"><span class="linenos">1353</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> -</span><span id="Parser-1354"><a href="#Parser-1354"><span class="linenos">1354</span></a> <span class="n">autotemp</span><span class="o">=</span><span class="n">autotemp</span><span class="p">,</span> -</span><span id="Parser-1355"><a href="#Parser-1355"><span class="linenos">1355</span></a> <span class="p">)</span> -</span><span id="Parser-1356"><a href="#Parser-1356"><span class="linenos">1356</span></a> -</span><span id="Parser-1357"><a href="#Parser-1357"><span class="linenos">1357</span></a> <span class="k">def</span> <span class="nf">_parse_withisolatedloading</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1358"><a href="#Parser-1358"><span class="linenos">1358</span></a> <span class="n">no</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> -</span><span id="Parser-1359"><a href="#Parser-1359"><span class="linenos">1359</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONCURRENT"</span><span class="p">)</span> -</span><span id="Parser-1360"><a href="#Parser-1360"><span class="linenos">1360</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ISOLATED"</span><span class="p">,</span> <span class="s2">"LOADING"</span><span class="p">)</span> -</span><span id="Parser-1361"><a href="#Parser-1361"><span class="linenos">1361</span></a> <span class="n">for_all</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ALL"</span><span class="p">)</span> -</span><span id="Parser-1362"><a href="#Parser-1362"><span class="linenos">1362</span></a> <span class="n">for_insert</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"INSERT"</span><span class="p">)</span> -</span><span id="Parser-1363"><a href="#Parser-1363"><span class="linenos">1363</span></a> <span class="n">for_none</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"NONE"</span><span class="p">)</span> -</span><span id="Parser-1364"><a href="#Parser-1364"><span class="linenos">1364</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><span id="Parser-1365"><a href="#Parser-1365"><span class="linenos">1365</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">,</span> -</span><span id="Parser-1366"><a href="#Parser-1366"><span class="linenos">1366</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> -</span><span id="Parser-1367"><a href="#Parser-1367"><span class="linenos">1367</span></a> <span class="n">concurrent</span><span class="o">=</span><span class="n">concurrent</span><span class="p">,</span> -</span><span id="Parser-1368"><a href="#Parser-1368"><span class="linenos">1368</span></a> <span class="n">for_all</span><span class="o">=</span><span class="n">for_all</span><span class="p">,</span> -</span><span id="Parser-1369"><a href="#Parser-1369"><span class="linenos">1369</span></a> <span class="n">for_insert</span><span class="o">=</span><span class="n">for_insert</span><span class="p">,</span> -</span><span id="Parser-1370"><a href="#Parser-1370"><span class="linenos">1370</span></a> <span class="n">for_none</span><span class="o">=</span><span class="n">for_none</span><span class="p">,</span> -</span><span id="Parser-1371"><a href="#Parser-1371"><span class="linenos">1371</span></a> <span class="p">)</span> -</span><span id="Parser-1372"><a href="#Parser-1372"><span class="linenos">1372</span></a> -</span><span id="Parser-1373"><a href="#Parser-1373"><span class="linenos">1373</span></a> <span class="k">def</span> <span class="nf">_parse_locking</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1374"><a href="#Parser-1374"><span class="linenos">1374</span></a> <span class="k">if</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">TABLE</span><span class="p">):</span> -</span><span id="Parser-1375"><a href="#Parser-1375"><span class="linenos">1375</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLE"</span> -</span><span id="Parser-1376"><a href="#Parser-1376"><span class="linenos">1376</span></a> <span class="k">elif</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">VIEW</span><span class="p">):</span> -</span><span id="Parser-1377"><a href="#Parser-1377"><span class="linenos">1377</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"VIEW"</span> -</span><span id="Parser-1378"><a href="#Parser-1378"><span class="linenos">1378</span></a> <span class="k">elif</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">ROW</span><span class="p">):</span> -</span><span id="Parser-1379"><a href="#Parser-1379"><span class="linenos">1379</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"ROW"</span> -</span><span id="Parser-1380"><a href="#Parser-1380"><span class="linenos">1380</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">):</span> -</span><span id="Parser-1381"><a href="#Parser-1381"><span class="linenos">1381</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"DATABASE"</span> -</span><span id="Parser-1382"><a href="#Parser-1382"><span class="linenos">1382</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1383"><a href="#Parser-1383"><span class="linenos">1383</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1191"><a href="#Parser-1191"><span class="linenos">1191</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SQL"</span><span class="p">,</span> <span class="s2">"SECURITY"</span><span class="p">):</span> +</span><span id="Parser-1192"><a href="#Parser-1192"><span class="linenos">1192</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">SqlSecurityProperty</span><span class="p">,</span> <span class="n">definer</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINER"</span><span class="p">))</span> +</span><span id="Parser-1193"><a href="#Parser-1193"><span class="linenos">1193</span></a> +</span><span id="Parser-1194"><a href="#Parser-1194"><span class="linenos">1194</span></a> <span class="n">assignment</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span> +</span><span id="Parser-1195"><a href="#Parser-1195"><span class="linenos">1195</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span> +</span><span id="Parser-1196"><a href="#Parser-1196"><span class="linenos">1196</span></a> <span class="p">)</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1197"><a href="#Parser-1197"><span class="linenos">1197</span></a> +</span><span id="Parser-1198"><a href="#Parser-1198"><span class="linenos">1198</span></a> <span class="k">if</span> <span class="n">assignment</span><span class="p">:</span> +</span><span id="Parser-1199"><a href="#Parser-1199"><span class="linenos">1199</span></a> <span class="n">key</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> +</span><span id="Parser-1200"><a href="#Parser-1200"><span class="linenos">1200</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1201"><a href="#Parser-1201"><span class="linenos">1201</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">Property</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">key</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">())</span> +</span><span id="Parser-1202"><a href="#Parser-1202"><span class="linenos">1202</span></a> +</span><span id="Parser-1203"><a href="#Parser-1203"><span class="linenos">1203</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1204"><a href="#Parser-1204"><span class="linenos">1204</span></a> +</span><span id="Parser-1205"><a href="#Parser-1205"><span class="linenos">1205</span></a> <span class="k">def</span> <span class="nf">_parse_property_assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1206"><a href="#Parser-1206"><span class="linenos">1206</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1207"><a href="#Parser-1207"><span class="linenos">1207</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-1208"><a href="#Parser-1208"><span class="linenos">1208</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><span id="Parser-1209"><a href="#Parser-1209"><span class="linenos">1209</span></a> <span class="n">exp_class</span><span class="p">,</span> +</span><span id="Parser-1210"><a href="#Parser-1210"><span class="linenos">1210</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> +</span><span id="Parser-1211"><a href="#Parser-1211"><span class="linenos">1211</span></a> <span class="p">)</span> +</span><span id="Parser-1212"><a href="#Parser-1212"><span class="linenos">1212</span></a> +</span><span id="Parser-1213"><a href="#Parser-1213"><span class="linenos">1213</span></a> <span class="k">def</span> <span class="nf">_parse_properties</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="kc">None</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1214"><a href="#Parser-1214"><span class="linenos">1214</span></a> <span class="n">properties</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-1215"><a href="#Parser-1215"><span class="linenos">1215</span></a> +</span><span id="Parser-1216"><a href="#Parser-1216"><span class="linenos">1216</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-1217"><a href="#Parser-1217"><span class="linenos">1217</span></a> <span class="k">if</span> <span class="n">before</span><span class="p">:</span> +</span><span id="Parser-1218"><a href="#Parser-1218"><span class="linenos">1218</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property_before</span><span class="p">()</span> +</span><span id="Parser-1219"><a href="#Parser-1219"><span class="linenos">1219</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1220"><a href="#Parser-1220"><span class="linenos">1220</span></a> <span class="n">identified_property</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">()</span> +</span><span id="Parser-1221"><a href="#Parser-1221"><span class="linenos">1221</span></a> +</span><span id="Parser-1222"><a href="#Parser-1222"><span class="linenos">1222</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">identified_property</span><span class="p">:</span> +</span><span id="Parser-1223"><a href="#Parser-1223"><span class="linenos">1223</span></a> <span class="k">break</span> +</span><span id="Parser-1224"><a href="#Parser-1224"><span class="linenos">1224</span></a> <span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">identified_property</span><span class="p">):</span> +</span><span id="Parser-1225"><a href="#Parser-1225"><span class="linenos">1225</span></a> <span class="n">properties</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">p</span><span class="p">)</span> +</span><span id="Parser-1226"><a href="#Parser-1226"><span class="linenos">1226</span></a> +</span><span id="Parser-1227"><a href="#Parser-1227"><span class="linenos">1227</span></a> <span class="k">if</span> <span class="n">properties</span><span class="p">:</span> +</span><span id="Parser-1228"><a href="#Parser-1228"><span class="linenos">1228</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">Properties</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">properties</span><span class="p">)</span> +</span><span id="Parser-1229"><a href="#Parser-1229"><span class="linenos">1229</span></a> +</span><span id="Parser-1230"><a href="#Parser-1230"><span class="linenos">1230</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1231"><a href="#Parser-1231"><span class="linenos">1231</span></a> +</span><span id="Parser-1232"><a href="#Parser-1232"><span class="linenos">1232</span></a> <span class="k">def</span> <span class="nf">_parse_fallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1233"><a href="#Parser-1233"><span class="linenos">1233</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FALLBACK"</span><span class="p">)</span> +</span><span id="Parser-1234"><a href="#Parser-1234"><span class="linenos">1234</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><span id="Parser-1235"><a href="#Parser-1235"><span class="linenos">1235</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FallbackProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">protection</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PROTECTION"</span><span class="p">)</span> +</span><span id="Parser-1236"><a href="#Parser-1236"><span class="linenos">1236</span></a> <span class="p">)</span> +</span><span id="Parser-1237"><a href="#Parser-1237"><span class="linenos">1237</span></a> +</span><span id="Parser-1238"><a href="#Parser-1238"><span class="linenos">1238</span></a> <span class="k">def</span> <span class="nf">_parse_with_property</span><span class="p">(</span> +</span><span id="Parser-1239"><a href="#Parser-1239"><span class="linenos">1239</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser-1240"><a href="#Parser-1240"><span class="linenos">1240</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Union</span><span class="p">[</span><span class="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 class="n">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="Parser-1241"><a href="#Parser-1241"><span class="linenos">1241</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">WITH</span><span class="p">)</span> +</span><span id="Parser-1242"><a href="#Parser-1242"><span class="linenos">1242</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-1243"><a href="#Parser-1243"><span class="linenos">1243</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_property</span><span class="p">)</span> +</span><span id="Parser-1244"><a href="#Parser-1244"><span class="linenos">1244</span></a> +</span><span id="Parser-1245"><a href="#Parser-1245"><span class="linenos">1245</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">):</span> +</span><span id="Parser-1246"><a href="#Parser-1246"><span class="linenos">1246</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withjournaltable</span><span class="p">()</span> +</span><span id="Parser-1247"><a href="#Parser-1247"><span class="linenos">1247</span></a> +</span><span id="Parser-1248"><a href="#Parser-1248"><span class="linenos">1248</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATA"</span><span class="p">):</span> +</span><span id="Parser-1249"><a href="#Parser-1249"><span class="linenos">1249</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1250"><a href="#Parser-1250"><span class="linenos">1250</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">):</span> +</span><span id="Parser-1251"><a href="#Parser-1251"><span class="linenos">1251</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withdata</span><span class="p">(</span><span class="n">no</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1252"><a href="#Parser-1252"><span class="linenos">1252</span></a> +</span><span id="Parser-1253"><a href="#Parser-1253"><span class="linenos">1253</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> +</span><span id="Parser-1254"><a href="#Parser-1254"><span class="linenos">1254</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1255"><a href="#Parser-1255"><span class="linenos">1255</span></a> +</span><span id="Parser-1256"><a href="#Parser-1256"><span class="linenos">1256</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_withisolatedloading</span><span class="p">()</span> +</span><span id="Parser-1257"><a href="#Parser-1257"><span class="linenos">1257</span></a> +</span><span id="Parser-1258"><a href="#Parser-1258"><span class="linenos">1258</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/create-view.html</span> +</span><span id="Parser-1259"><a href="#Parser-1259"><span class="linenos">1259</span></a> <span class="k">def</span> <span class="nf">_parse_definer</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1260"><a href="#Parser-1260"><span class="linenos">1260</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1261"><a href="#Parser-1261"><span class="linenos">1261</span></a> +</span><span id="Parser-1262"><a href="#Parser-1262"><span class="linenos">1262</span></a> <span class="n">user</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-1263"><a href="#Parser-1263"><span class="linenos">1263</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">PARAMETER</span><span class="p">)</span> +</span><span id="Parser-1264"><a href="#Parser-1264"><span class="linenos">1264</span></a> <span class="n">host</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="p">(</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">MOD</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-1265"><a href="#Parser-1265"><span class="linenos">1265</span></a> +</span><span id="Parser-1266"><a href="#Parser-1266"><span class="linenos">1266</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">user</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">host</span><span class="p">:</span> +</span><span id="Parser-1267"><a href="#Parser-1267"><span class="linenos">1267</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1268"><a href="#Parser-1268"><span class="linenos">1268</span></a> +</span><span id="Parser-1269"><a href="#Parser-1269"><span class="linenos">1269</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DefinerProperty</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">user</span><span class="si">}</span><span class="s2">@</span><span class="si">{</span><span class="n">host</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser-1270"><a href="#Parser-1270"><span class="linenos">1270</span></a> +</span><span id="Parser-1271"><a href="#Parser-1271"><span class="linenos">1271</span></a> <span class="k">def</span> <span class="nf">_parse_withjournaltable</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1272"><a href="#Parser-1272"><span class="linenos">1272</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">TABLE</span><span class="p">)</span> +</span><span id="Parser-1273"><a href="#Parser-1273"><span class="linenos">1273</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1274"><a href="#Parser-1274"><span class="linenos">1274</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">WithJournalTableProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">())</span> +</span><span id="Parser-1275"><a href="#Parser-1275"><span class="linenos">1275</span></a> +</span><span id="Parser-1276"><a href="#Parser-1276"><span class="linenos">1276</span></a> <span class="k">def</span> <span class="nf">_parse_log</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1277"><a href="#Parser-1277"><span class="linenos">1277</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOG"</span><span class="p">)</span> +</span><span id="Parser-1278"><a href="#Parser-1278"><span class="linenos">1278</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">LogProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">)</span> +</span><span id="Parser-1279"><a href="#Parser-1279"><span class="linenos">1279</span></a> +</span><span id="Parser-1280"><a href="#Parser-1280"><span class="linenos">1280</span></a> <span class="k">def</span> <span class="nf">_parse_journal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1281"><a href="#Parser-1281"><span class="linenos">1281</span></a> <span class="n">before</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BEFORE"</span><span class="p">)</span> +</span><span id="Parser-1282"><a href="#Parser-1282"><span class="linenos">1282</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"JOURNAL"</span><span class="p">)</span> +</span><span id="Parser-1283"><a href="#Parser-1283"><span class="linenos">1283</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">JournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">before</span><span class="o">=</span><span class="n">before</span><span class="p">)</span> +</span><span id="Parser-1284"><a href="#Parser-1284"><span class="linenos">1284</span></a> +</span><span id="Parser-1285"><a href="#Parser-1285"><span class="linenos">1285</span></a> <span class="k">def</span> <span class="nf">_parse_afterjournal</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1286"><a href="#Parser-1286"><span class="linenos">1286</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">)</span> +</span><span id="Parser-1287"><a href="#Parser-1287"><span class="linenos">1287</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LOCAL"</span><span class="p">)</span> +</span><span id="Parser-1288"><a href="#Parser-1288"><span class="linenos">1288</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"JOURNAL"</span><span class="p">)</span> +</span><span id="Parser-1289"><a href="#Parser-1289"><span class="linenos">1289</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">AfterJournalProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">dual</span><span class="o">=</span><span class="n">dual</span><span class="p">,</span> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">)</span> +</span><span id="Parser-1290"><a href="#Parser-1290"><span class="linenos">1290</span></a> +</span><span id="Parser-1291"><a href="#Parser-1291"><span class="linenos">1291</span></a> <span class="k">def</span> <span class="nf">_parse_checksum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1292"><a href="#Parser-1292"><span class="linenos">1292</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">)</span> +</span><span id="Parser-1293"><a href="#Parser-1293"><span class="linenos">1293</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1294"><a href="#Parser-1294"><span class="linenos">1294</span></a> +</span><span id="Parser-1295"><a href="#Parser-1295"><span class="linenos">1295</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1296"><a href="#Parser-1296"><span class="linenos">1296</span></a> <span class="k">if</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">ON</span><span class="p">):</span> +</span><span id="Parser-1297"><a href="#Parser-1297"><span class="linenos">1297</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-1298"><a href="#Parser-1298"><span class="linenos">1298</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OFF"</span><span class="p">):</span> +</span><span id="Parser-1299"><a href="#Parser-1299"><span class="linenos">1299</span></a> <span class="n">on</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-1300"><a href="#Parser-1300"><span class="linenos">1300</span></a> <span class="n">default</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">DEFAULT</span><span class="p">)</span> +</span><span id="Parser-1301"><a href="#Parser-1301"><span class="linenos">1301</span></a> +</span><span id="Parser-1302"><a href="#Parser-1302"><span class="linenos">1302</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><span id="Parser-1303"><a href="#Parser-1303"><span class="linenos">1303</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ChecksumProperty</span><span class="p">,</span> +</span><span id="Parser-1304"><a href="#Parser-1304"><span class="linenos">1304</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> +</span><span id="Parser-1305"><a href="#Parser-1305"><span class="linenos">1305</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> +</span><span id="Parser-1306"><a href="#Parser-1306"><span class="linenos">1306</span></a> <span class="p">)</span> +</span><span id="Parser-1307"><a href="#Parser-1307"><span class="linenos">1307</span></a> +</span><span id="Parser-1308"><a href="#Parser-1308"><span class="linenos">1308</span></a> <span class="k">def</span> <span class="nf">_parse_freespace</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1309"><a href="#Parser-1309"><span class="linenos">1309</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FREESPACE"</span><span class="p">)</span> +</span><span id="Parser-1310"><a href="#Parser-1310"><span class="linenos">1310</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1311"><a href="#Parser-1311"><span class="linenos">1311</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><span id="Parser-1312"><a href="#Parser-1312"><span class="linenos">1312</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">FreespaceProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> <span class="n">percent</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">PERCENT</span><span class="p">)</span> +</span><span id="Parser-1313"><a href="#Parser-1313"><span class="linenos">1313</span></a> <span class="p">)</span> +</span><span id="Parser-1314"><a href="#Parser-1314"><span class="linenos">1314</span></a> +</span><span id="Parser-1315"><a href="#Parser-1315"><span class="linenos">1315</span></a> <span class="k">def</span> <span class="nf">_parse_mergeblockratio</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1316"><a href="#Parser-1316"><span class="linenos">1316</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MERGEBLOCKRATIO"</span><span class="p">)</span> +</span><span id="Parser-1317"><a href="#Parser-1317"><span class="linenos">1317</span></a> <span class="k">if</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">EQ</span><span class="p">):</span> +</span><span id="Parser-1318"><a href="#Parser-1318"><span class="linenos">1318</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><span id="Parser-1319"><a href="#Parser-1319"><span class="linenos">1319</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> +</span><span id="Parser-1320"><a href="#Parser-1320"><span class="linenos">1320</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">(),</span> +</span><span id="Parser-1321"><a href="#Parser-1321"><span class="linenos">1321</span></a> <span class="n">percent</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">PERCENT</span><span class="p">),</span> +</span><span id="Parser-1322"><a href="#Parser-1322"><span class="linenos">1322</span></a> <span class="p">)</span> +</span><span id="Parser-1323"><a href="#Parser-1323"><span class="linenos">1323</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1324"><a href="#Parser-1324"><span class="linenos">1324</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><span id="Parser-1325"><a href="#Parser-1325"><span class="linenos">1325</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MergeBlockRatioProperty</span><span class="p">,</span> +</span><span id="Parser-1326"><a href="#Parser-1326"><span class="linenos">1326</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> +</span><span id="Parser-1327"><a href="#Parser-1327"><span class="linenos">1327</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> +</span><span id="Parser-1328"><a href="#Parser-1328"><span class="linenos">1328</span></a> <span class="p">)</span> +</span><span id="Parser-1329"><a href="#Parser-1329"><span class="linenos">1329</span></a> +</span><span id="Parser-1330"><a href="#Parser-1330"><span class="linenos">1330</span></a> <span class="k">def</span> <span class="nf">_parse_datablocksize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1331"><a href="#Parser-1331"><span class="linenos">1331</span></a> <span class="k">if</span> <span class="n">default</span><span class="p">:</span> +</span><span id="Parser-1332"><a href="#Parser-1332"><span class="linenos">1332</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="Parser-1333"><a href="#Parser-1333"><span class="linenos">1333</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1334"><a href="#Parser-1334"><span class="linenos">1334</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MIN"</span><span class="p">,</span> <span class="s2">"MINIMUM"</span><span class="p">)):</span> +</span><span id="Parser-1335"><a href="#Parser-1335"><span class="linenos">1335</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="Parser-1336"><a href="#Parser-1336"><span class="linenos">1336</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1337"><a href="#Parser-1337"><span class="linenos">1337</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"MAX"</span><span class="p">,</span> <span class="s2">"MAXIMUM"</span><span class="p">)):</span> +</span><span id="Parser-1338"><a href="#Parser-1338"><span class="linenos">1338</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="Parser-1339"><a href="#Parser-1339"><span class="linenos">1339</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="nb">min</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1340"><a href="#Parser-1340"><span class="linenos">1340</span></a> +</span><span id="Parser-1341"><a href="#Parser-1341"><span class="linenos">1341</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABLOCKSIZE"</span><span class="p">)</span> +</span><span id="Parser-1342"><a href="#Parser-1342"><span class="linenos">1342</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1343"><a href="#Parser-1343"><span class="linenos">1343</span></a> <span class="n">size</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-1344"><a href="#Parser-1344"><span class="linenos">1344</span></a> <span class="n">units</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1345"><a href="#Parser-1345"><span class="linenos">1345</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"BYTES"</span><span class="p">,</span> <span class="s2">"KBYTES"</span><span class="p">,</span> <span class="s2">"KILOBYTES"</span><span class="p">)):</span> +</span><span id="Parser-1346"><a href="#Parser-1346"><span class="linenos">1346</span></a> <span class="n">units</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-1347"><a href="#Parser-1347"><span class="linenos">1347</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">DataBlocksizeProperty</span><span class="p">,</span> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> <span class="n">units</span><span class="o">=</span><span class="n">units</span><span class="p">)</span> +</span><span id="Parser-1348"><a href="#Parser-1348"><span class="linenos">1348</span></a> +</span><span id="Parser-1349"><a href="#Parser-1349"><span class="linenos">1349</span></a> <span class="k">def</span> <span class="nf">_parse_blockcompression</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1350"><a href="#Parser-1350"><span class="linenos">1350</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BLOCKCOMPRESSION"</span><span class="p">)</span> +</span><span id="Parser-1351"><a href="#Parser-1351"><span class="linenos">1351</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1352"><a href="#Parser-1352"><span class="linenos">1352</span></a> <span class="n">always</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> +</span><span id="Parser-1353"><a href="#Parser-1353"><span class="linenos">1353</span></a> <span class="n">manual</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MANUAL"</span><span class="p">)</span> +</span><span id="Parser-1354"><a href="#Parser-1354"><span class="linenos">1354</span></a> <span class="n">never</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NEVER"</span><span class="p">)</span> +</span><span id="Parser-1355"><a href="#Parser-1355"><span class="linenos">1355</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFAULT"</span><span class="p">)</span> +</span><span id="Parser-1356"><a href="#Parser-1356"><span class="linenos">1356</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1357"><a href="#Parser-1357"><span class="linenos">1357</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AUTOTEMP"</span><span class="p">):</span> +</span><span id="Parser-1358"><a href="#Parser-1358"><span class="linenos">1358</span></a> <span class="n">autotemp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> +</span><span id="Parser-1359"><a href="#Parser-1359"><span class="linenos">1359</span></a> +</span><span id="Parser-1360"><a href="#Parser-1360"><span class="linenos">1360</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><span id="Parser-1361"><a href="#Parser-1361"><span class="linenos">1361</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BlockCompressionProperty</span><span class="p">,</span> +</span><span id="Parser-1362"><a href="#Parser-1362"><span class="linenos">1362</span></a> <span class="n">always</span><span class="o">=</span><span class="n">always</span><span class="p">,</span> +</span><span id="Parser-1363"><a href="#Parser-1363"><span class="linenos">1363</span></a> <span class="n">manual</span><span class="o">=</span><span class="n">manual</span><span class="p">,</span> +</span><span id="Parser-1364"><a href="#Parser-1364"><span class="linenos">1364</span></a> <span class="n">never</span><span class="o">=</span><span class="n">never</span><span class="p">,</span> +</span><span id="Parser-1365"><a href="#Parser-1365"><span class="linenos">1365</span></a> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">,</span> +</span><span id="Parser-1366"><a href="#Parser-1366"><span class="linenos">1366</span></a> <span class="n">autotemp</span><span class="o">=</span><span class="n">autotemp</span><span class="p">,</span> +</span><span id="Parser-1367"><a href="#Parser-1367"><span class="linenos">1367</span></a> <span class="p">)</span> +</span><span id="Parser-1368"><a href="#Parser-1368"><span class="linenos">1368</span></a> +</span><span id="Parser-1369"><a href="#Parser-1369"><span class="linenos">1369</span></a> <span class="k">def</span> <span class="nf">_parse_withisolatedloading</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1370"><a href="#Parser-1370"><span class="linenos">1370</span></a> <span class="n">no</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> +</span><span id="Parser-1371"><a href="#Parser-1371"><span class="linenos">1371</span></a> <span class="n">concurrent</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CONCURRENT"</span><span class="p">)</span> +</span><span id="Parser-1372"><a href="#Parser-1372"><span class="linenos">1372</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ISOLATED"</span><span class="p">,</span> <span class="s2">"LOADING"</span><span class="p">)</span> +</span><span id="Parser-1373"><a href="#Parser-1373"><span class="linenos">1373</span></a> <span class="n">for_all</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ALL"</span><span class="p">)</span> +</span><span id="Parser-1374"><a href="#Parser-1374"><span class="linenos">1374</span></a> <span class="n">for_insert</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"INSERT"</span><span class="p">)</span> +</span><span id="Parser-1375"><a href="#Parser-1375"><span class="linenos">1375</span></a> <span class="n">for_none</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"NONE"</span><span class="p">)</span> +</span><span id="Parser-1376"><a href="#Parser-1376"><span class="linenos">1376</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><span id="Parser-1377"><a href="#Parser-1377"><span class="linenos">1377</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">IsolatedLoadingProperty</span><span class="p">,</span> +</span><span id="Parser-1378"><a href="#Parser-1378"><span class="linenos">1378</span></a> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> +</span><span id="Parser-1379"><a href="#Parser-1379"><span class="linenos">1379</span></a> <span class="n">concurrent</span><span class="o">=</span><span class="n">concurrent</span><span class="p">,</span> +</span><span id="Parser-1380"><a href="#Parser-1380"><span class="linenos">1380</span></a> <span class="n">for_all</span><span class="o">=</span><span class="n">for_all</span><span class="p">,</span> +</span><span id="Parser-1381"><a href="#Parser-1381"><span class="linenos">1381</span></a> <span class="n">for_insert</span><span class="o">=</span><span class="n">for_insert</span><span class="p">,</span> +</span><span id="Parser-1382"><a href="#Parser-1382"><span class="linenos">1382</span></a> <span class="n">for_none</span><span class="o">=</span><span class="n">for_none</span><span class="p">,</span> +</span><span id="Parser-1383"><a href="#Parser-1383"><span class="linenos">1383</span></a> <span class="p">)</span> </span><span id="Parser-1384"><a href="#Parser-1384"><span class="linenos">1384</span></a> -</span><span id="Parser-1385"><a href="#Parser-1385"><span class="linenos">1385</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">):</span> -</span><span id="Parser-1386"><a href="#Parser-1386"><span class="linenos">1386</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">()</span> -</span><span id="Parser-1387"><a href="#Parser-1387"><span class="linenos">1387</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1388"><a href="#Parser-1388"><span class="linenos">1388</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1389"><a href="#Parser-1389"><span class="linenos">1389</span></a> -</span><span id="Parser-1390"><a href="#Parser-1390"><span class="linenos">1390</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> -</span><span id="Parser-1391"><a href="#Parser-1391"><span class="linenos">1391</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"FOR"</span> -</span><span id="Parser-1392"><a href="#Parser-1392"><span class="linenos">1392</span></a> <span class="k">elif</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">IN</span><span class="p">):</span> -</span><span id="Parser-1393"><a href="#Parser-1393"><span class="linenos">1393</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"IN"</span> +</span><span id="Parser-1385"><a href="#Parser-1385"><span class="linenos">1385</span></a> <span class="k">def</span> <span class="nf">_parse_locking</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1386"><a href="#Parser-1386"><span class="linenos">1386</span></a> <span class="k">if</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">TABLE</span><span class="p">):</span> +</span><span id="Parser-1387"><a href="#Parser-1387"><span class="linenos">1387</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLE"</span> +</span><span id="Parser-1388"><a href="#Parser-1388"><span class="linenos">1388</span></a> <span class="k">elif</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">VIEW</span><span class="p">):</span> +</span><span id="Parser-1389"><a href="#Parser-1389"><span class="linenos">1389</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"VIEW"</span> +</span><span id="Parser-1390"><a href="#Parser-1390"><span class="linenos">1390</span></a> <span class="k">elif</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">ROW</span><span class="p">):</span> +</span><span id="Parser-1391"><a href="#Parser-1391"><span class="linenos">1391</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"ROW"</span> +</span><span id="Parser-1392"><a href="#Parser-1392"><span class="linenos">1392</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">):</span> +</span><span id="Parser-1393"><a href="#Parser-1393"><span class="linenos">1393</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"DATABASE"</span> </span><span id="Parser-1394"><a href="#Parser-1394"><span class="linenos">1394</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1395"><a href="#Parser-1395"><span class="linenos">1395</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1395"><a href="#Parser-1395"><span class="linenos">1395</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="Parser-1396"><a href="#Parser-1396"><span class="linenos">1396</span></a> -</span><span id="Parser-1397"><a href="#Parser-1397"><span class="linenos">1397</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ACCESS"</span><span class="p">):</span> -</span><span id="Parser-1398"><a href="#Parser-1398"><span class="linenos">1398</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"ACCESS"</span> -</span><span id="Parser-1399"><a href="#Parser-1399"><span class="linenos">1399</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"EXCL"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">)):</span> -</span><span id="Parser-1400"><a href="#Parser-1400"><span class="linenos">1400</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"EXCLUSIVE"</span> -</span><span id="Parser-1401"><a href="#Parser-1401"><span class="linenos">1401</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHARE"</span><span class="p">):</span> -</span><span id="Parser-1402"><a href="#Parser-1402"><span class="linenos">1402</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"SHARE"</span> -</span><span id="Parser-1403"><a href="#Parser-1403"><span class="linenos">1403</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"READ"</span><span class="p">):</span> -</span><span id="Parser-1404"><a href="#Parser-1404"><span class="linenos">1404</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"READ"</span> -</span><span id="Parser-1405"><a href="#Parser-1405"><span class="linenos">1405</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WRITE"</span><span class="p">):</span> -</span><span id="Parser-1406"><a href="#Parser-1406"><span class="linenos">1406</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"WRITE"</span> -</span><span id="Parser-1407"><a href="#Parser-1407"><span class="linenos">1407</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">):</span> -</span><span id="Parser-1408"><a href="#Parser-1408"><span class="linenos">1408</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"CHECKSUM"</span> -</span><span id="Parser-1409"><a href="#Parser-1409"><span class="linenos">1409</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1410"><a href="#Parser-1410"><span class="linenos">1410</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1411"><a href="#Parser-1411"><span class="linenos">1411</span></a> -</span><span id="Parser-1412"><a href="#Parser-1412"><span class="linenos">1412</span></a> <span class="n">override</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OVERRIDE"</span><span class="p">)</span> -</span><span id="Parser-1413"><a href="#Parser-1413"><span class="linenos">1413</span></a> -</span><span id="Parser-1414"><a href="#Parser-1414"><span class="linenos">1414</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><span id="Parser-1415"><a href="#Parser-1415"><span class="linenos">1415</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">,</span> -</span><span id="Parser-1416"><a href="#Parser-1416"><span class="linenos">1416</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1417"><a href="#Parser-1417"><span class="linenos">1417</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="Parser-1418"><a href="#Parser-1418"><span class="linenos">1418</span></a> <span class="n">for_or_in</span><span class="o">=</span><span class="n">for_or_in</span><span class="p">,</span> -</span><span id="Parser-1419"><a href="#Parser-1419"><span class="linenos">1419</span></a> <span class="n">lock_type</span><span class="o">=</span><span class="n">lock_type</span><span class="p">,</span> -</span><span id="Parser-1420"><a href="#Parser-1420"><span class="linenos">1420</span></a> <span class="n">override</span><span class="o">=</span><span class="n">override</span><span class="p">,</span> -</span><span id="Parser-1421"><a href="#Parser-1421"><span class="linenos">1421</span></a> <span class="p">)</span> -</span><span id="Parser-1422"><a href="#Parser-1422"><span class="linenos">1422</span></a> -</span><span id="Parser-1423"><a href="#Parser-1423"><span class="linenos">1423</span></a> <span class="k">def</span> <span class="nf">_parse_partition_by</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Parser-1424"><a href="#Parser-1424"><span class="linenos">1424</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">):</span> -</span><span id="Parser-1425"><a href="#Parser-1425"><span class="linenos">1425</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-1426"><a href="#Parser-1426"><span class="linenos">1426</span></a> <span class="k">return</span> <span class="p">[]</span> -</span><span id="Parser-1427"><a href="#Parser-1427"><span class="linenos">1427</span></a> -</span><span id="Parser-1428"><a href="#Parser-1428"><span class="linenos">1428</span></a> <span class="k">def</span> <span class="nf">_parse_partitioned_by</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1429"><a href="#Parser-1429"><span class="linenos">1429</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1430"><a href="#Parser-1430"><span class="linenos">1430</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><span id="Parser-1431"><a href="#Parser-1431"><span class="linenos">1431</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">,</span> -</span><span id="Parser-1432"><a href="#Parser-1432"><span class="linenos">1432</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()),</span> +</span><span id="Parser-1397"><a href="#Parser-1397"><span class="linenos">1397</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"DATABASE"</span><span class="p">,</span> <span class="s2">"TABLE"</span><span class="p">,</span> <span class="s2">"VIEW"</span><span class="p">):</span> +</span><span id="Parser-1398"><a href="#Parser-1398"><span class="linenos">1398</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">()</span> +</span><span id="Parser-1399"><a href="#Parser-1399"><span class="linenos">1399</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1400"><a href="#Parser-1400"><span class="linenos">1400</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1401"><a href="#Parser-1401"><span class="linenos">1401</span></a> +</span><span id="Parser-1402"><a href="#Parser-1402"><span class="linenos">1402</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> +</span><span id="Parser-1403"><a href="#Parser-1403"><span class="linenos">1403</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"FOR"</span> +</span><span id="Parser-1404"><a href="#Parser-1404"><span class="linenos">1404</span></a> <span class="k">elif</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">IN</span><span class="p">):</span> +</span><span id="Parser-1405"><a href="#Parser-1405"><span class="linenos">1405</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="s2">"IN"</span> +</span><span id="Parser-1406"><a href="#Parser-1406"><span class="linenos">1406</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1407"><a href="#Parser-1407"><span class="linenos">1407</span></a> <span class="n">for_or_in</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1408"><a href="#Parser-1408"><span class="linenos">1408</span></a> +</span><span id="Parser-1409"><a href="#Parser-1409"><span class="linenos">1409</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ACCESS"</span><span class="p">):</span> +</span><span id="Parser-1410"><a href="#Parser-1410"><span class="linenos">1410</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"ACCESS"</span> +</span><span id="Parser-1411"><a href="#Parser-1411"><span class="linenos">1411</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"EXCL"</span><span class="p">,</span> <span class="s2">"EXCLUSIVE"</span><span class="p">)):</span> +</span><span id="Parser-1412"><a href="#Parser-1412"><span class="linenos">1412</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"EXCLUSIVE"</span> +</span><span id="Parser-1413"><a href="#Parser-1413"><span class="linenos">1413</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHARE"</span><span class="p">):</span> +</span><span id="Parser-1414"><a href="#Parser-1414"><span class="linenos">1414</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"SHARE"</span> +</span><span id="Parser-1415"><a href="#Parser-1415"><span class="linenos">1415</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"READ"</span><span class="p">):</span> +</span><span id="Parser-1416"><a href="#Parser-1416"><span class="linenos">1416</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"READ"</span> +</span><span id="Parser-1417"><a href="#Parser-1417"><span class="linenos">1417</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WRITE"</span><span class="p">):</span> +</span><span id="Parser-1418"><a href="#Parser-1418"><span class="linenos">1418</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"WRITE"</span> +</span><span id="Parser-1419"><a href="#Parser-1419"><span class="linenos">1419</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECKSUM"</span><span class="p">):</span> +</span><span id="Parser-1420"><a href="#Parser-1420"><span class="linenos">1420</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="s2">"CHECKSUM"</span> +</span><span id="Parser-1421"><a href="#Parser-1421"><span class="linenos">1421</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1422"><a href="#Parser-1422"><span class="linenos">1422</span></a> <span class="n">lock_type</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1423"><a href="#Parser-1423"><span class="linenos">1423</span></a> +</span><span id="Parser-1424"><a href="#Parser-1424"><span class="linenos">1424</span></a> <span class="n">override</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OVERRIDE"</span><span class="p">)</span> +</span><span id="Parser-1425"><a href="#Parser-1425"><span class="linenos">1425</span></a> +</span><span id="Parser-1426"><a href="#Parser-1426"><span class="linenos">1426</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><span id="Parser-1427"><a href="#Parser-1427"><span class="linenos">1427</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LockingProperty</span><span class="p">,</span> +</span><span id="Parser-1428"><a href="#Parser-1428"><span class="linenos">1428</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1429"><a href="#Parser-1429"><span class="linenos">1429</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Parser-1430"><a href="#Parser-1430"><span class="linenos">1430</span></a> <span class="n">for_or_in</span><span class="o">=</span><span class="n">for_or_in</span><span class="p">,</span> +</span><span id="Parser-1431"><a href="#Parser-1431"><span class="linenos">1431</span></a> <span class="n">lock_type</span><span class="o">=</span><span class="n">lock_type</span><span class="p">,</span> +</span><span id="Parser-1432"><a href="#Parser-1432"><span class="linenos">1432</span></a> <span class="n">override</span><span class="o">=</span><span class="n">override</span><span class="p">,</span> </span><span id="Parser-1433"><a href="#Parser-1433"><span class="linenos">1433</span></a> <span class="p">)</span> </span><span id="Parser-1434"><a href="#Parser-1434"><span class="linenos">1434</span></a> -</span><span id="Parser-1435"><a href="#Parser-1435"><span class="linenos">1435</span></a> <span class="k">def</span> <span class="nf">_parse_withdata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1436"><a href="#Parser-1436"><span class="linenos">1436</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> -</span><span id="Parser-1437"><a href="#Parser-1437"><span class="linenos">1437</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-1438"><a href="#Parser-1438"><span class="linenos">1438</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> -</span><span id="Parser-1439"><a href="#Parser-1439"><span class="linenos">1439</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-1440"><a href="#Parser-1440"><span class="linenos">1440</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1441"><a href="#Parser-1441"><span class="linenos">1441</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1442"><a href="#Parser-1442"><span class="linenos">1442</span></a> -</span><span id="Parser-1443"><a href="#Parser-1443"><span class="linenos">1443</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">WithDataProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">statistics</span><span class="o">=</span><span class="n">statistics</span><span class="p">)</span> -</span><span id="Parser-1444"><a href="#Parser-1444"><span class="linenos">1444</span></a> -</span><span id="Parser-1445"><a href="#Parser-1445"><span class="linenos">1445</span></a> <span class="k">def</span> <span class="nf">_parse_noprimaryindex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1446"><a href="#Parser-1446"><span class="linenos">1446</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">)</span> -</span><span id="Parser-1447"><a href="#Parser-1447"><span class="linenos">1447</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">()</span> -</span><span id="Parser-1448"><a href="#Parser-1448"><span class="linenos">1448</span></a> -</span><span id="Parser-1449"><a href="#Parser-1449"><span class="linenos">1449</span></a> <span class="k">def</span> <span class="nf">_parse_oncommit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1450"><a href="#Parser-1450"><span class="linenos">1450</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COMMIT"</span><span class="p">,</span> <span class="s2">"PRESERVE"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">)</span> -</span><span id="Parser-1451"><a href="#Parser-1451"><span class="linenos">1451</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">()</span> -</span><span id="Parser-1452"><a href="#Parser-1452"><span class="linenos">1452</span></a> -</span><span id="Parser-1453"><a href="#Parser-1453"><span class="linenos">1453</span></a> <span class="k">def</span> <span class="nf">_parse_distkey</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1454"><a href="#Parser-1454"><span class="linenos">1454</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">DistKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">))</span> -</span><span id="Parser-1455"><a href="#Parser-1455"><span class="linenos">1455</span></a> -</span><span id="Parser-1456"><a href="#Parser-1456"><span class="linenos">1456</span></a> <span class="k">def</span> <span class="nf">_parse_create_like</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1457"><a href="#Parser-1457"><span class="linenos">1457</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1458"><a href="#Parser-1458"><span class="linenos">1458</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-1459"><a href="#Parser-1459"><span class="linenos">1459</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"INCLUDING"</span><span class="p">,</span> <span class="s2">"EXCLUDING"</span><span class="p">)):</span> -</span><span id="Parser-1460"><a href="#Parser-1460"><span class="linenos">1460</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Parser-1461"><a href="#Parser-1461"><span class="linenos">1461</span></a> <span class="n">id_var</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-1462"><a href="#Parser-1462"><span class="linenos">1462</span></a> -</span><span id="Parser-1463"><a href="#Parser-1463"><span class="linenos">1463</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">id_var</span><span class="p">:</span> -</span><span id="Parser-1464"><a href="#Parser-1464"><span class="linenos">1464</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1465"><a href="#Parser-1465"><span class="linenos">1465</span></a> -</span><span id="Parser-1466"><a href="#Parser-1466"><span class="linenos">1466</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Parser-1467"><a href="#Parser-1467"><span class="linenos">1467</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1468"><a href="#Parser-1468"><span class="linenos">1468</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">,</span> -</span><span id="Parser-1469"><a href="#Parser-1469"><span class="linenos">1469</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1470"><a href="#Parser-1470"><span class="linenos">1470</span></a> <span class="n">value</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="n">this</span><span class="o">=</span><span class="n">id_var</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()),</span> -</span><span id="Parser-1471"><a href="#Parser-1471"><span class="linenos">1471</span></a> <span class="p">)</span> -</span><span id="Parser-1472"><a href="#Parser-1472"><span class="linenos">1472</span></a> <span class="p">)</span> -</span><span id="Parser-1473"><a href="#Parser-1473"><span class="linenos">1473</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">LikeProperty</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">expressions</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> +</span><span id="Parser-1435"><a href="#Parser-1435"><span class="linenos">1435</span></a> <span class="k">def</span> <span class="nf">_parse_partition_by</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="Parser-1436"><a href="#Parser-1436"><span class="linenos">1436</span></a> <span class="k">if</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">PARTITION_BY</span><span class="p">):</span> +</span><span id="Parser-1437"><a href="#Parser-1437"><span class="linenos">1437</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-1438"><a href="#Parser-1438"><span class="linenos">1438</span></a> <span class="k">return</span> <span class="p">[]</span> +</span><span id="Parser-1439"><a href="#Parser-1439"><span class="linenos">1439</span></a> +</span><span id="Parser-1440"><a href="#Parser-1440"><span class="linenos">1440</span></a> <span class="k">def</span> <span class="nf">_parse_partitioned_by</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1441"><a href="#Parser-1441"><span class="linenos">1441</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1442"><a href="#Parser-1442"><span class="linenos">1442</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><span id="Parser-1443"><a href="#Parser-1443"><span class="linenos">1443</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">PartitionedByProperty</span><span class="p">,</span> +</span><span id="Parser-1444"><a href="#Parser-1444"><span class="linenos">1444</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()),</span> +</span><span id="Parser-1445"><a href="#Parser-1445"><span class="linenos">1445</span></a> <span class="p">)</span> +</span><span id="Parser-1446"><a href="#Parser-1446"><span class="linenos">1446</span></a> +</span><span id="Parser-1447"><a href="#Parser-1447"><span class="linenos">1447</span></a> <span class="k">def</span> <span class="nf">_parse_withdata</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1448"><a href="#Parser-1448"><span class="linenos">1448</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> +</span><span id="Parser-1449"><a href="#Parser-1449"><span class="linenos">1449</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-1450"><a href="#Parser-1450"><span class="linenos">1450</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AND"</span><span class="p">,</span> <span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"STATISTICS"</span><span class="p">):</span> +</span><span id="Parser-1451"><a href="#Parser-1451"><span class="linenos">1451</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-1452"><a href="#Parser-1452"><span class="linenos">1452</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1453"><a href="#Parser-1453"><span class="linenos">1453</span></a> <span class="n">statistics</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1454"><a href="#Parser-1454"><span class="linenos">1454</span></a> +</span><span id="Parser-1455"><a href="#Parser-1455"><span class="linenos">1455</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">WithDataProperty</span><span class="p">,</span> <span class="n">no</span><span class="o">=</span><span class="n">no</span><span class="p">,</span> <span class="n">statistics</span><span class="o">=</span><span class="n">statistics</span><span class="p">)</span> +</span><span id="Parser-1456"><a href="#Parser-1456"><span class="linenos">1456</span></a> +</span><span id="Parser-1457"><a href="#Parser-1457"><span class="linenos">1457</span></a> <span class="k">def</span> <span class="nf">_parse_noprimaryindex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1458"><a href="#Parser-1458"><span class="linenos">1458</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">,</span> <span class="s2">"INDEX"</span><span class="p">)</span> +</span><span id="Parser-1459"><a href="#Parser-1459"><span class="linenos">1459</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">NoPrimaryIndexProperty</span><span class="p">()</span> +</span><span id="Parser-1460"><a href="#Parser-1460"><span class="linenos">1460</span></a> +</span><span id="Parser-1461"><a href="#Parser-1461"><span class="linenos">1461</span></a> <span class="k">def</span> <span class="nf">_parse_oncommit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1462"><a href="#Parser-1462"><span class="linenos">1462</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COMMIT"</span><span class="p">,</span> <span class="s2">"PRESERVE"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">)</span> +</span><span id="Parser-1463"><a href="#Parser-1463"><span class="linenos">1463</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">OnCommitProperty</span><span class="p">()</span> +</span><span id="Parser-1464"><a href="#Parser-1464"><span class="linenos">1464</span></a> +</span><span id="Parser-1465"><a href="#Parser-1465"><span class="linenos">1465</span></a> <span class="k">def</span> <span class="nf">_parse_distkey</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1466"><a href="#Parser-1466"><span class="linenos">1466</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">DistKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">))</span> +</span><span id="Parser-1467"><a href="#Parser-1467"><span class="linenos">1467</span></a> +</span><span id="Parser-1468"><a href="#Parser-1468"><span class="linenos">1468</span></a> <span class="k">def</span> <span class="nf">_parse_create_like</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1469"><a href="#Parser-1469"><span class="linenos">1469</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1470"><a href="#Parser-1470"><span class="linenos">1470</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-1471"><a href="#Parser-1471"><span class="linenos">1471</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"INCLUDING"</span><span class="p">,</span> <span class="s2">"EXCLUDING"</span><span class="p">)):</span> +</span><span id="Parser-1472"><a href="#Parser-1472"><span class="linenos">1472</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-1473"><a href="#Parser-1473"><span class="linenos">1473</span></a> <span class="n">id_var</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="Parser-1474"><a href="#Parser-1474"><span class="linenos">1474</span></a> -</span><span id="Parser-1475"><a href="#Parser-1475"><span class="linenos">1475</span></a> <span class="k">def</span> <span class="nf">_parse_sortkey</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">compound</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1476"><a href="#Parser-1476"><span class="linenos">1476</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><span id="Parser-1477"><a href="#Parser-1477"><span class="linenos">1477</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">),</span> <span class="n">compound</span><span class="o">=</span><span class="n">compound</span> -</span><span id="Parser-1478"><a href="#Parser-1478"><span class="linenos">1478</span></a> <span class="p">)</span> -</span><span id="Parser-1479"><a href="#Parser-1479"><span class="linenos">1479</span></a> -</span><span id="Parser-1480"><a href="#Parser-1480"><span class="linenos">1480</span></a> <span class="k">def</span> <span class="nf">_parse_character_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1481"><a href="#Parser-1481"><span class="linenos">1481</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1482"><a href="#Parser-1482"><span class="linenos">1482</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><span id="Parser-1483"><a href="#Parser-1483"><span class="linenos">1483</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span> -</span><span id="Parser-1484"><a href="#Parser-1484"><span class="linenos">1484</span></a> <span class="p">)</span> -</span><span id="Parser-1485"><a href="#Parser-1485"><span class="linenos">1485</span></a> -</span><span id="Parser-1486"><a href="#Parser-1486"><span class="linenos">1486</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1487"><a href="#Parser-1487"><span class="linenos">1487</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="Parser-1488"><a href="#Parser-1488"><span class="linenos">1488</span></a> <span class="n">is_table</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">TABLE</span><span class="p">)</span> -</span><span id="Parser-1489"><a href="#Parser-1489"><span class="linenos">1489</span></a> -</span><span id="Parser-1490"><a href="#Parser-1490"><span class="linenos">1490</span></a> <span class="k">if</span> <span class="n">is_table</span><span class="p">:</span> -</span><span id="Parser-1491"><a href="#Parser-1491"><span class="linenos">1491</span></a> <span class="k">if</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">LT</span><span class="p">):</span> -</span><span id="Parser-1492"><a href="#Parser-1492"><span class="linenos">1492</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1493"><a href="#Parser-1493"><span class="linenos">1493</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">,</span> -</span><span id="Parser-1494"><a href="#Parser-1494"><span class="linenos">1494</span></a> <span class="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">,</span> -</span><span id="Parser-1495"><a href="#Parser-1495"><span class="linenos">1495</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">),</span> -</span><span id="Parser-1496"><a href="#Parser-1496"><span class="linenos">1496</span></a> <span class="p">)</span> -</span><span id="Parser-1497"><a href="#Parser-1497"><span class="linenos">1497</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> -</span><span id="Parser-1498"><a href="#Parser-1498"><span class="linenos">1498</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> -</span><span id="Parser-1499"><a href="#Parser-1499"><span class="linenos">1499</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1500"><a href="#Parser-1500"><span class="linenos">1500</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</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="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">))</span> -</span><span id="Parser-1501"><a href="#Parser-1501"><span class="linenos">1501</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1502"><a href="#Parser-1502"><span class="linenos">1502</span></a> <span class="n">value</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="Parser-1503"><a href="#Parser-1503"><span class="linenos">1503</span></a> -</span><span id="Parser-1504"><a href="#Parser-1504"><span class="linenos">1504</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">ReturnsProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">,</span> <span class="n">is_table</span><span class="o">=</span><span class="n">is_table</span><span class="p">)</span> -</span><span id="Parser-1505"><a href="#Parser-1505"><span class="linenos">1505</span></a> -</span><span id="Parser-1506"><a href="#Parser-1506"><span class="linenos">1506</span></a> <span class="k">def</span> <span class="nf">_parse_temporary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1507"><a href="#Parser-1507"><span class="linenos">1507</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">TEMPORARY</span><span class="p">)</span> <span class="c1"># in case calling from "GLOBAL"</span> -</span><span id="Parser-1508"><a href="#Parser-1508"><span class="linenos">1508</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">TemporaryProperty</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="n">global_</span><span class="p">)</span> -</span><span id="Parser-1509"><a href="#Parser-1509"><span class="linenos">1509</span></a> -</span><span id="Parser-1510"><a href="#Parser-1510"><span class="linenos">1510</span></a> <span class="k">def</span> <span class="nf">_parse_describe</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1511"><a href="#Parser-1511"><span class="linenos">1511</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-1512"><a href="#Parser-1512"><span class="linenos">1512</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="Parser-1513"><a href="#Parser-1513"><span class="linenos">1513</span></a> -</span><span id="Parser-1514"><a href="#Parser-1514"><span class="linenos">1514</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">Describe</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="Parser-1475"><a href="#Parser-1475"><span class="linenos">1475</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">id_var</span><span class="p">:</span> +</span><span id="Parser-1476"><a href="#Parser-1476"><span class="linenos">1476</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1477"><a href="#Parser-1477"><span class="linenos">1477</span></a> +</span><span id="Parser-1478"><a href="#Parser-1478"><span class="linenos">1478</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Parser-1479"><a href="#Parser-1479"><span class="linenos">1479</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1480"><a href="#Parser-1480"><span class="linenos">1480</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Property</span><span class="p">,</span> +</span><span id="Parser-1481"><a href="#Parser-1481"><span class="linenos">1481</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1482"><a href="#Parser-1482"><span class="linenos">1482</span></a> <span class="n">value</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="n">this</span><span class="o">=</span><span class="n">id_var</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()),</span> +</span><span id="Parser-1483"><a href="#Parser-1483"><span class="linenos">1483</span></a> <span class="p">)</span> +</span><span id="Parser-1484"><a href="#Parser-1484"><span class="linenos">1484</span></a> <span class="p">)</span> +</span><span id="Parser-1485"><a href="#Parser-1485"><span class="linenos">1485</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">LikeProperty</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">expressions</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> +</span><span id="Parser-1486"><a href="#Parser-1486"><span class="linenos">1486</span></a> +</span><span id="Parser-1487"><a href="#Parser-1487"><span class="linenos">1487</span></a> <span class="k">def</span> <span class="nf">_parse_sortkey</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">compound</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1488"><a href="#Parser-1488"><span class="linenos">1488</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><span id="Parser-1489"><a href="#Parser-1489"><span class="linenos">1489</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SortKeyProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">),</span> <span class="n">compound</span><span class="o">=</span><span class="n">compound</span> +</span><span id="Parser-1490"><a href="#Parser-1490"><span class="linenos">1490</span></a> <span class="p">)</span> +</span><span id="Parser-1491"><a href="#Parser-1491"><span class="linenos">1491</span></a> +</span><span id="Parser-1492"><a href="#Parser-1492"><span class="linenos">1492</span></a> <span class="k">def</span> <span class="nf">_parse_character_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1493"><a href="#Parser-1493"><span class="linenos">1493</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1494"><a href="#Parser-1494"><span class="linenos">1494</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><span id="Parser-1495"><a href="#Parser-1495"><span class="linenos">1495</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CharacterSetProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span> +</span><span id="Parser-1496"><a href="#Parser-1496"><span class="linenos">1496</span></a> <span class="p">)</span> +</span><span id="Parser-1497"><a href="#Parser-1497"><span class="linenos">1497</span></a> +</span><span id="Parser-1498"><a href="#Parser-1498"><span class="linenos">1498</span></a> <span class="k">def</span> <span class="nf">_parse_returns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1499"><a href="#Parser-1499"><span class="linenos">1499</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="Parser-1500"><a href="#Parser-1500"><span class="linenos">1500</span></a> <span class="n">is_table</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">TABLE</span><span class="p">)</span> +</span><span id="Parser-1501"><a href="#Parser-1501"><span class="linenos">1501</span></a> +</span><span id="Parser-1502"><a href="#Parser-1502"><span class="linenos">1502</span></a> <span class="k">if</span> <span class="n">is_table</span><span class="p">:</span> +</span><span id="Parser-1503"><a href="#Parser-1503"><span class="linenos">1503</span></a> <span class="k">if</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">LT</span><span class="p">):</span> +</span><span id="Parser-1504"><a href="#Parser-1504"><span class="linenos">1504</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1505"><a href="#Parser-1505"><span class="linenos">1505</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Schema</span><span class="p">,</span> +</span><span id="Parser-1506"><a href="#Parser-1506"><span class="linenos">1506</span></a> <span class="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">,</span> +</span><span id="Parser-1507"><a href="#Parser-1507"><span class="linenos">1507</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">),</span> +</span><span id="Parser-1508"><a href="#Parser-1508"><span class="linenos">1508</span></a> <span class="p">)</span> +</span><span id="Parser-1509"><a href="#Parser-1509"><span class="linenos">1509</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> +</span><span id="Parser-1510"><a href="#Parser-1510"><span class="linenos">1510</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> +</span><span id="Parser-1511"><a href="#Parser-1511"><span class="linenos">1511</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1512"><a href="#Parser-1512"><span class="linenos">1512</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</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="n">this</span><span class="o">=</span><span class="s2">"TABLE"</span><span class="p">))</span> +</span><span id="Parser-1513"><a href="#Parser-1513"><span class="linenos">1513</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1514"><a href="#Parser-1514"><span class="linenos">1514</span></a> <span class="n">value</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="Parser-1515"><a href="#Parser-1515"><span class="linenos">1515</span></a> -</span><span id="Parser-1516"><a href="#Parser-1516"><span class="linenos">1516</span></a> <span class="k">def</span> <span class="nf">_parse_insert</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1517"><a href="#Parser-1517"><span class="linenos">1517</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> -</span><span id="Parser-1518"><a href="#Parser-1518"><span class="linenos">1518</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> -</span><span id="Parser-1519"><a href="#Parser-1519"><span class="linenos">1519</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1520"><a href="#Parser-1520"><span class="linenos">1520</span></a> -</span><span id="Parser-1521"><a href="#Parser-1521"><span class="linenos">1521</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DIRECTORY"</span><span class="p">):</span> -</span><span id="Parser-1522"><a href="#Parser-1522"><span class="linenos">1522</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1523"><a href="#Parser-1523"><span class="linenos">1523</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">,</span> -</span><span id="Parser-1524"><a href="#Parser-1524"><span class="linenos">1524</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> -</span><span id="Parser-1525"><a href="#Parser-1525"><span class="linenos">1525</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> -</span><span id="Parser-1526"><a href="#Parser-1526"><span class="linenos">1526</span></a> <span class="n">row_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">(</span><span class="n">match_row</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-1527"><a href="#Parser-1527"><span class="linenos">1527</span></a> <span class="p">)</span> -</span><span id="Parser-1528"><a href="#Parser-1528"><span class="linenos">1528</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1529"><a href="#Parser-1529"><span class="linenos">1529</span></a> <span class="k">if</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">OR</span><span class="p">):</span> -</span><span id="Parser-1530"><a href="#Parser-1530"><span class="linenos">1530</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">INSERT_ALTERNATIVES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-1531"><a href="#Parser-1531"><span class="linenos">1531</span></a> -</span><span id="Parser-1532"><a href="#Parser-1532"><span class="linenos">1532</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">INTO</span><span class="p">)</span> -</span><span id="Parser-1533"><a href="#Parser-1533"><span class="linenos">1533</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">TABLE</span><span class="p">)</span> -</span><span id="Parser-1534"><a href="#Parser-1534"><span class="linenos">1534</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1535"><a href="#Parser-1535"><span class="linenos">1535</span></a> -</span><span id="Parser-1536"><a href="#Parser-1536"><span class="linenos">1536</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><span id="Parser-1537"><a href="#Parser-1537"><span class="linenos">1537</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> -</span><span id="Parser-1538"><a href="#Parser-1538"><span class="linenos">1538</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1539"><a href="#Parser-1539"><span class="linenos">1539</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> -</span><span id="Parser-1540"><a href="#Parser-1540"><span class="linenos">1540</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> -</span><span id="Parser-1541"><a href="#Parser-1541"><span class="linenos">1541</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">(),</span> -</span><span id="Parser-1542"><a href="#Parser-1542"><span class="linenos">1542</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> -</span><span id="Parser-1543"><a href="#Parser-1543"><span class="linenos">1543</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> -</span><span id="Parser-1544"><a href="#Parser-1544"><span class="linenos">1544</span></a> <span class="n">alternative</span><span class="o">=</span><span class="n">alternative</span><span class="p">,</span> -</span><span id="Parser-1545"><a href="#Parser-1545"><span class="linenos">1545</span></a> <span class="p">)</span> -</span><span id="Parser-1546"><a href="#Parser-1546"><span class="linenos">1546</span></a> -</span><span id="Parser-1547"><a href="#Parser-1547"><span class="linenos">1547</span></a> <span class="k">def</span> <span class="nf">_parse_returning</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1548"><a href="#Parser-1548"><span class="linenos">1548</span></a> <span class="k">if</span> <span class="ow">not</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">RETURNING</span><span class="p">):</span> -</span><span id="Parser-1549"><a href="#Parser-1549"><span class="linenos">1549</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1550"><a href="#Parser-1550"><span class="linenos">1550</span></a> -</span><span id="Parser-1551"><a href="#Parser-1551"><span class="linenos">1551</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">Returning</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">))</span> -</span><span id="Parser-1552"><a href="#Parser-1552"><span class="linenos">1552</span></a> -</span><span id="Parser-1553"><a href="#Parser-1553"><span class="linenos">1553</span></a> <span class="k">def</span> <span class="nf">_parse_row</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1554"><a href="#Parser-1554"><span class="linenos">1554</span></a> <span class="k">if</span> <span class="ow">not</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">FORMAT</span><span class="p">):</span> -</span><span id="Parser-1555"><a href="#Parser-1555"><span class="linenos">1555</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1556"><a href="#Parser-1556"><span class="linenos">1556</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">()</span> -</span><span id="Parser-1557"><a href="#Parser-1557"><span class="linenos">1557</span></a> -</span><span id="Parser-1558"><a href="#Parser-1558"><span class="linenos">1558</span></a> <span class="k">def</span> <span class="nf">_parse_row_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">match_row</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-1559"><a href="#Parser-1559"><span class="linenos">1559</span></a> <span class="k">if</span> <span class="n">match_row</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">):</span> -</span><span id="Parser-1560"><a href="#Parser-1560"><span class="linenos">1560</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1561"><a href="#Parser-1561"><span class="linenos">1561</span></a> -</span><span id="Parser-1562"><a href="#Parser-1562"><span class="linenos">1562</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">):</span> -</span><span id="Parser-1563"><a href="#Parser-1563"><span class="linenos">1563</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">RowFormatSerdeProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="Parser-1516"><a href="#Parser-1516"><span class="linenos">1516</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">ReturnsProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">value</span><span class="p">,</span> <span class="n">is_table</span><span class="o">=</span><span class="n">is_table</span><span class="p">)</span> +</span><span id="Parser-1517"><a href="#Parser-1517"><span class="linenos">1517</span></a> +</span><span id="Parser-1518"><a href="#Parser-1518"><span class="linenos">1518</span></a> <span class="k">def</span> <span class="nf">_parse_temporary</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1519"><a href="#Parser-1519"><span class="linenos">1519</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">TEMPORARY</span><span class="p">)</span> <span class="c1"># in case calling from "GLOBAL"</span> +</span><span id="Parser-1520"><a href="#Parser-1520"><span class="linenos">1520</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">TemporaryProperty</span><span class="p">,</span> <span class="n">global_</span><span class="o">=</span><span class="n">global_</span><span class="p">)</span> +</span><span id="Parser-1521"><a href="#Parser-1521"><span class="linenos">1521</span></a> +</span><span id="Parser-1522"><a href="#Parser-1522"><span class="linenos">1522</span></a> <span class="k">def</span> <span class="nf">_parse_describe</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1523"><a href="#Parser-1523"><span class="linenos">1523</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CREATABLES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-1524"><a href="#Parser-1524"><span class="linenos">1524</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> +</span><span id="Parser-1525"><a href="#Parser-1525"><span class="linenos">1525</span></a> +</span><span id="Parser-1526"><a href="#Parser-1526"><span class="linenos">1526</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">Describe</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="Parser-1527"><a href="#Parser-1527"><span class="linenos">1527</span></a> +</span><span id="Parser-1528"><a href="#Parser-1528"><span class="linenos">1528</span></a> <span class="k">def</span> <span class="nf">_parse_insert</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1529"><a href="#Parser-1529"><span class="linenos">1529</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> +</span><span id="Parser-1530"><a href="#Parser-1530"><span class="linenos">1530</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> +</span><span id="Parser-1531"><a href="#Parser-1531"><span class="linenos">1531</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1532"><a href="#Parser-1532"><span class="linenos">1532</span></a> +</span><span id="Parser-1533"><a href="#Parser-1533"><span class="linenos">1533</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DIRECTORY"</span><span class="p">):</span> +</span><span id="Parser-1534"><a href="#Parser-1534"><span class="linenos">1534</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1535"><a href="#Parser-1535"><span class="linenos">1535</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Directory</span><span class="p">,</span> +</span><span id="Parser-1536"><a href="#Parser-1536"><span class="linenos">1536</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">(),</span> +</span><span id="Parser-1537"><a href="#Parser-1537"><span class="linenos">1537</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> +</span><span id="Parser-1538"><a href="#Parser-1538"><span class="linenos">1538</span></a> <span class="n">row_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">(</span><span class="n">match_row</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-1539"><a href="#Parser-1539"><span class="linenos">1539</span></a> <span class="p">)</span> +</span><span id="Parser-1540"><a href="#Parser-1540"><span class="linenos">1540</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1541"><a href="#Parser-1541"><span class="linenos">1541</span></a> <span class="k">if</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">OR</span><span class="p">):</span> +</span><span id="Parser-1542"><a href="#Parser-1542"><span class="linenos">1542</span></a> <span class="n">alternative</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">INSERT_ALTERNATIVES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-1543"><a href="#Parser-1543"><span class="linenos">1543</span></a> +</span><span id="Parser-1544"><a href="#Parser-1544"><span class="linenos">1544</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">INTO</span><span class="p">)</span> +</span><span id="Parser-1545"><a href="#Parser-1545"><span class="linenos">1545</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">TABLE</span><span class="p">)</span> +</span><span id="Parser-1546"><a href="#Parser-1546"><span class="linenos">1546</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1547"><a href="#Parser-1547"><span class="linenos">1547</span></a> +</span><span id="Parser-1548"><a href="#Parser-1548"><span class="linenos">1548</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><span id="Parser-1549"><a href="#Parser-1549"><span class="linenos">1549</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> +</span><span id="Parser-1550"><a href="#Parser-1550"><span class="linenos">1550</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1551"><a href="#Parser-1551"><span class="linenos">1551</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> +</span><span id="Parser-1552"><a href="#Parser-1552"><span class="linenos">1552</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> +</span><span id="Parser-1553"><a href="#Parser-1553"><span class="linenos">1553</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ddl_select</span><span class="p">(),</span> +</span><span id="Parser-1554"><a href="#Parser-1554"><span class="linenos">1554</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> +</span><span id="Parser-1555"><a href="#Parser-1555"><span class="linenos">1555</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> +</span><span id="Parser-1556"><a href="#Parser-1556"><span class="linenos">1556</span></a> <span class="n">alternative</span><span class="o">=</span><span class="n">alternative</span><span class="p">,</span> +</span><span id="Parser-1557"><a href="#Parser-1557"><span class="linenos">1557</span></a> <span class="p">)</span> +</span><span id="Parser-1558"><a href="#Parser-1558"><span class="linenos">1558</span></a> +</span><span id="Parser-1559"><a href="#Parser-1559"><span class="linenos">1559</span></a> <span class="k">def</span> <span class="nf">_parse_returning</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1560"><a href="#Parser-1560"><span class="linenos">1560</span></a> <span class="k">if</span> <span class="ow">not</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">RETURNING</span><span class="p">):</span> +</span><span id="Parser-1561"><a href="#Parser-1561"><span class="linenos">1561</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1562"><a href="#Parser-1562"><span class="linenos">1562</span></a> +</span><span id="Parser-1563"><a href="#Parser-1563"><span class="linenos">1563</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">Returning</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">))</span> </span><span id="Parser-1564"><a href="#Parser-1564"><span class="linenos">1564</span></a> -</span><span id="Parser-1565"><a href="#Parser-1565"><span class="linenos">1565</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DELIMITED"</span><span class="p">)</span> -</span><span id="Parser-1566"><a href="#Parser-1566"><span class="linenos">1566</span></a> -</span><span id="Parser-1567"><a href="#Parser-1567"><span class="linenos">1567</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span> -</span><span id="Parser-1568"><a href="#Parser-1568"><span class="linenos">1568</span></a> -</span><span id="Parser-1569"><a href="#Parser-1569"><span class="linenos">1569</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FIELDS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="Parser-1570"><a href="#Parser-1570"><span class="linenos">1570</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"fields"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1571"><a href="#Parser-1571"><span class="linenos">1571</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ESCAPED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="Parser-1572"><a href="#Parser-1572"><span class="linenos">1572</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"escaped"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1573"><a href="#Parser-1573"><span class="linenos">1573</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLECTION"</span><span class="p">,</span> <span class="s2">"ITEMS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="Parser-1574"><a href="#Parser-1574"><span class="linenos">1574</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"collection_items"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1575"><a href="#Parser-1575"><span class="linenos">1575</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAP"</span><span class="p">,</span> <span class="s2">"KEYS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="Parser-1576"><a href="#Parser-1576"><span class="linenos">1576</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"map_keys"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1577"><a href="#Parser-1577"><span class="linenos">1577</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LINES"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="Parser-1578"><a href="#Parser-1578"><span class="linenos">1578</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"lines"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1579"><a href="#Parser-1579"><span class="linenos">1579</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">,</span> <span class="s2">"DEFINED"</span><span class="p">,</span> <span class="s2">"AS"</span><span class="p">):</span> -</span><span id="Parser-1580"><a href="#Parser-1580"><span class="linenos">1580</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"null"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1581"><a href="#Parser-1581"><span class="linenos">1581</span></a> -</span><span id="Parser-1582"><a href="#Parser-1582"><span class="linenos">1582</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">RowFormatDelimitedProperty</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-1583"><a href="#Parser-1583"><span class="linenos">1583</span></a> -</span><span id="Parser-1584"><a href="#Parser-1584"><span class="linenos">1584</span></a> <span class="k">def</span> <span class="nf">_parse_load_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1585"><a href="#Parser-1585"><span class="linenos">1585</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> -</span><span id="Parser-1586"><a href="#Parser-1586"><span class="linenos">1586</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPATH"</span><span class="p">)</span> -</span><span id="Parser-1587"><a href="#Parser-1587"><span class="linenos">1587</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1588"><a href="#Parser-1588"><span class="linenos">1588</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> -</span><span id="Parser-1589"><a href="#Parser-1589"><span class="linenos">1589</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">)</span> -</span><span id="Parser-1590"><a href="#Parser-1590"><span class="linenos">1590</span></a> -</span><span id="Parser-1591"><a href="#Parser-1591"><span class="linenos">1591</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><span id="Parser-1592"><a href="#Parser-1592"><span class="linenos">1592</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LoadData</span><span class="p">,</span> -</span><span id="Parser-1593"><a href="#Parser-1593"><span class="linenos">1593</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-1594"><a href="#Parser-1594"><span class="linenos">1594</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> -</span><span id="Parser-1595"><a href="#Parser-1595"><span class="linenos">1595</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> -</span><span id="Parser-1596"><a href="#Parser-1596"><span class="linenos">1596</span></a> <span class="n">inpath</span><span class="o">=</span><span class="n">inpath</span><span class="p">,</span> -</span><span id="Parser-1597"><a href="#Parser-1597"><span class="linenos">1597</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> -</span><span id="Parser-1598"><a href="#Parser-1598"><span class="linenos">1598</span></a> <span class="n">input_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPUTFORMAT"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> -</span><span id="Parser-1599"><a href="#Parser-1599"><span class="linenos">1599</span></a> <span class="n">serde</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> -</span><span id="Parser-1600"><a href="#Parser-1600"><span class="linenos">1600</span></a> <span class="p">)</span> -</span><span id="Parser-1601"><a href="#Parser-1601"><span class="linenos">1601</span></a> -</span><span id="Parser-1602"><a href="#Parser-1602"><span class="linenos">1602</span></a> <span class="k">def</span> <span class="nf">_parse_delete</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1603"><a href="#Parser-1603"><span class="linenos">1603</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">FROM</span><span class="p">)</span> -</span><span id="Parser-1604"><a href="#Parser-1604"><span class="linenos">1604</span></a> -</span><span id="Parser-1605"><a href="#Parser-1605"><span class="linenos">1605</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><span id="Parser-1606"><a href="#Parser-1606"><span class="linenos">1606</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">,</span> -</span><span id="Parser-1607"><a href="#Parser-1607"><span class="linenos">1607</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-1608"><a href="#Parser-1608"><span class="linenos">1608</span></a> <span class="n">using</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()),</span> -</span><span id="Parser-1609"><a href="#Parser-1609"><span class="linenos">1609</span></a> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> -</span><span id="Parser-1610"><a href="#Parser-1610"><span class="linenos">1610</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> -</span><span id="Parser-1611"><a href="#Parser-1611"><span class="linenos">1611</span></a> <span class="p">)</span> -</span><span id="Parser-1612"><a href="#Parser-1612"><span class="linenos">1612</span></a> -</span><span id="Parser-1613"><a href="#Parser-1613"><span class="linenos">1613</span></a> <span class="k">def</span> <span class="nf">_parse_update</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1614"><a href="#Parser-1614"><span class="linenos">1614</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><span id="Parser-1615"><a href="#Parser-1615"><span class="linenos">1615</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> -</span><span id="Parser-1616"><a href="#Parser-1616"><span class="linenos">1616</span></a> <span class="o">**</span><span class="p">{</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-1617"><a href="#Parser-1617"><span class="linenos">1617</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">UPDATE_ALIAS_TOKENS</span><span class="p">),</span> -</span><span id="Parser-1618"><a href="#Parser-1618"><span class="linenos">1618</span></a> <span class="s2">"expressions"</span><span class="p">:</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">SET</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> -</span><span id="Parser-1619"><a href="#Parser-1619"><span class="linenos">1619</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">(),</span> -</span><span id="Parser-1620"><a href="#Parser-1620"><span class="linenos">1620</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> -</span><span id="Parser-1621"><a href="#Parser-1621"><span class="linenos">1621</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> -</span><span id="Parser-1622"><a href="#Parser-1622"><span class="linenos">1622</span></a> <span class="p">},</span> +</span><span id="Parser-1565"><a href="#Parser-1565"><span class="linenos">1565</span></a> <span class="k">def</span> <span class="nf">_parse_row</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1566"><a href="#Parser-1566"><span class="linenos">1566</span></a> <span class="k">if</span> <span class="ow">not</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">FORMAT</span><span class="p">):</span> +</span><span id="Parser-1567"><a href="#Parser-1567"><span class="linenos">1567</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1568"><a href="#Parser-1568"><span class="linenos">1568</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_row_format</span><span class="p">()</span> +</span><span id="Parser-1569"><a href="#Parser-1569"><span class="linenos">1569</span></a> +</span><span id="Parser-1570"><a href="#Parser-1570"><span class="linenos">1570</span></a> <span class="k">def</span> <span class="nf">_parse_row_format</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">match_row</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-1571"><a href="#Parser-1571"><span class="linenos">1571</span></a> <span class="k">if</span> <span class="n">match_row</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">):</span> +</span><span id="Parser-1572"><a href="#Parser-1572"><span class="linenos">1572</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1573"><a href="#Parser-1573"><span class="linenos">1573</span></a> +</span><span id="Parser-1574"><a href="#Parser-1574"><span class="linenos">1574</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">):</span> +</span><span id="Parser-1575"><a href="#Parser-1575"><span class="linenos">1575</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">RowFormatSerdeProperty</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="Parser-1576"><a href="#Parser-1576"><span class="linenos">1576</span></a> +</span><span id="Parser-1577"><a href="#Parser-1577"><span class="linenos">1577</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DELIMITED"</span><span class="p">)</span> +</span><span id="Parser-1578"><a href="#Parser-1578"><span class="linenos">1578</span></a> +</span><span id="Parser-1579"><a href="#Parser-1579"><span class="linenos">1579</span></a> <span class="n">kwargs</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Parser-1580"><a href="#Parser-1580"><span class="linenos">1580</span></a> +</span><span id="Parser-1581"><a href="#Parser-1581"><span class="linenos">1581</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FIELDS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="Parser-1582"><a href="#Parser-1582"><span class="linenos">1582</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"fields"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1583"><a href="#Parser-1583"><span class="linenos">1583</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ESCAPED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="Parser-1584"><a href="#Parser-1584"><span class="linenos">1584</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"escaped"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1585"><a href="#Parser-1585"><span class="linenos">1585</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"COLLECTION"</span><span class="p">,</span> <span class="s2">"ITEMS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="Parser-1586"><a href="#Parser-1586"><span class="linenos">1586</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"collection_items"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1587"><a href="#Parser-1587"><span class="linenos">1587</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAP"</span><span class="p">,</span> <span class="s2">"KEYS"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="Parser-1588"><a href="#Parser-1588"><span class="linenos">1588</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"map_keys"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1589"><a href="#Parser-1589"><span class="linenos">1589</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LINES"</span><span class="p">,</span> <span class="s2">"TERMINATED"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="Parser-1590"><a href="#Parser-1590"><span class="linenos">1590</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"lines"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1591"><a href="#Parser-1591"><span class="linenos">1591</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">,</span> <span class="s2">"DEFINED"</span><span class="p">,</span> <span class="s2">"AS"</span><span class="p">):</span> +</span><span id="Parser-1592"><a href="#Parser-1592"><span class="linenos">1592</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"null"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1593"><a href="#Parser-1593"><span class="linenos">1593</span></a> +</span><span id="Parser-1594"><a href="#Parser-1594"><span class="linenos">1594</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">RowFormatDelimitedProperty</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-1595"><a href="#Parser-1595"><span class="linenos">1595</span></a> +</span><span id="Parser-1596"><a href="#Parser-1596"><span class="linenos">1596</span></a> <span class="k">def</span> <span class="nf">_parse_load_data</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1597"><a href="#Parser-1597"><span class="linenos">1597</span></a> <span class="n">local</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">LOCAL</span><span class="p">)</span> +</span><span id="Parser-1598"><a href="#Parser-1598"><span class="linenos">1598</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPATH"</span><span class="p">)</span> +</span><span id="Parser-1599"><a href="#Parser-1599"><span class="linenos">1599</span></a> <span class="n">inpath</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1600"><a href="#Parser-1600"><span class="linenos">1600</span></a> <span class="n">overwrite</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">OVERWRITE</span><span class="p">)</span> +</span><span id="Parser-1601"><a href="#Parser-1601"><span class="linenos">1601</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">)</span> +</span><span id="Parser-1602"><a href="#Parser-1602"><span class="linenos">1602</span></a> +</span><span id="Parser-1603"><a href="#Parser-1603"><span class="linenos">1603</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><span id="Parser-1604"><a href="#Parser-1604"><span class="linenos">1604</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">LoadData</span><span class="p">,</span> +</span><span id="Parser-1605"><a href="#Parser-1605"><span class="linenos">1605</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-1606"><a href="#Parser-1606"><span class="linenos">1606</span></a> <span class="n">local</span><span class="o">=</span><span class="n">local</span><span class="p">,</span> +</span><span id="Parser-1607"><a href="#Parser-1607"><span class="linenos">1607</span></a> <span class="n">overwrite</span><span class="o">=</span><span class="n">overwrite</span><span class="p">,</span> +</span><span id="Parser-1608"><a href="#Parser-1608"><span class="linenos">1608</span></a> <span class="n">inpath</span><span class="o">=</span><span class="n">inpath</span><span class="p">,</span> +</span><span id="Parser-1609"><a href="#Parser-1609"><span class="linenos">1609</span></a> <span class="n">partition</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">(),</span> +</span><span id="Parser-1610"><a href="#Parser-1610"><span class="linenos">1610</span></a> <span class="n">input_format</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INPUTFORMAT"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> +</span><span id="Parser-1611"><a href="#Parser-1611"><span class="linenos">1611</span></a> <span class="n">serde</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SERDE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">(),</span> +</span><span id="Parser-1612"><a href="#Parser-1612"><span class="linenos">1612</span></a> <span class="p">)</span> +</span><span id="Parser-1613"><a href="#Parser-1613"><span class="linenos">1613</span></a> +</span><span id="Parser-1614"><a href="#Parser-1614"><span class="linenos">1614</span></a> <span class="k">def</span> <span class="nf">_parse_delete</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1615"><a href="#Parser-1615"><span class="linenos">1615</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">FROM</span><span class="p">)</span> +</span><span id="Parser-1616"><a href="#Parser-1616"><span class="linenos">1616</span></a> +</span><span id="Parser-1617"><a href="#Parser-1617"><span class="linenos">1617</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><span id="Parser-1618"><a href="#Parser-1618"><span class="linenos">1618</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Delete</span><span class="p">,</span> +</span><span id="Parser-1619"><a href="#Parser-1619"><span class="linenos">1619</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-1620"><a href="#Parser-1620"><span class="linenos">1620</span></a> <span class="n">using</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()),</span> +</span><span id="Parser-1621"><a href="#Parser-1621"><span class="linenos">1621</span></a> <span class="n">where</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> +</span><span id="Parser-1622"><a href="#Parser-1622"><span class="linenos">1622</span></a> <span class="n">returning</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> </span><span id="Parser-1623"><a href="#Parser-1623"><span class="linenos">1623</span></a> <span class="p">)</span> </span><span id="Parser-1624"><a href="#Parser-1624"><span class="linenos">1624</span></a> -</span><span id="Parser-1625"><a href="#Parser-1625"><span class="linenos">1625</span></a> <span class="k">def</span> <span class="nf">_parse_uncache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1626"><a href="#Parser-1626"><span class="linenos">1626</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> -</span><span id="Parser-1627"><a href="#Parser-1627"><span class="linenos">1627</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting TABLE after UNCACHE"</span><span class="p">)</span> -</span><span id="Parser-1628"><a href="#Parser-1628"><span class="linenos">1628</span></a> -</span><span id="Parser-1629"><a href="#Parser-1629"><span class="linenos">1629</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><span id="Parser-1630"><a href="#Parser-1630"><span class="linenos">1630</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Uncache</span><span class="p">,</span> -</span><span id="Parser-1631"><a href="#Parser-1631"><span class="linenos">1631</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> -</span><span id="Parser-1632"><a href="#Parser-1632"><span class="linenos">1632</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-1633"><a href="#Parser-1633"><span class="linenos">1633</span></a> <span class="p">)</span> -</span><span id="Parser-1634"><a href="#Parser-1634"><span class="linenos">1634</span></a> -</span><span id="Parser-1635"><a href="#Parser-1635"><span class="linenos">1635</span></a> <span class="k">def</span> <span class="nf">_parse_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1636"><a href="#Parser-1636"><span class="linenos">1636</span></a> <span class="n">lazy</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">LAZY</span><span class="p">)</span> -</span><span id="Parser-1637"><a href="#Parser-1637"><span class="linenos">1637</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">TABLE</span><span class="p">)</span> -</span><span id="Parser-1638"><a href="#Parser-1638"><span class="linenos">1638</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1639"><a href="#Parser-1639"><span class="linenos">1639</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-1625"><a href="#Parser-1625"><span class="linenos">1625</span></a> <span class="k">def</span> <span class="nf">_parse_update</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1626"><a href="#Parser-1626"><span class="linenos">1626</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><span id="Parser-1627"><a href="#Parser-1627"><span class="linenos">1627</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> +</span><span id="Parser-1628"><a href="#Parser-1628"><span class="linenos">1628</span></a> <span class="o">**</span><span class="p">{</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-1629"><a href="#Parser-1629"><span class="linenos">1629</span></a> <span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">UPDATE_ALIAS_TOKENS</span><span class="p">),</span> +</span><span id="Parser-1630"><a href="#Parser-1630"><span class="linenos">1630</span></a> <span class="s2">"expressions"</span><span class="p">:</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">SET</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> +</span><span id="Parser-1631"><a href="#Parser-1631"><span class="linenos">1631</span></a> <span class="s2">"from"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">(),</span> +</span><span id="Parser-1632"><a href="#Parser-1632"><span class="linenos">1632</span></a> <span class="s2">"where"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">(),</span> +</span><span id="Parser-1633"><a href="#Parser-1633"><span class="linenos">1633</span></a> <span class="s2">"returning"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_returning</span><span class="p">(),</span> +</span><span id="Parser-1634"><a href="#Parser-1634"><span class="linenos">1634</span></a> <span class="p">},</span> +</span><span id="Parser-1635"><a href="#Parser-1635"><span class="linenos">1635</span></a> <span class="p">)</span> +</span><span id="Parser-1636"><a href="#Parser-1636"><span class="linenos">1636</span></a> +</span><span id="Parser-1637"><a href="#Parser-1637"><span class="linenos">1637</span></a> <span class="k">def</span> <span class="nf">_parse_uncache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1638"><a href="#Parser-1638"><span class="linenos">1638</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> +</span><span id="Parser-1639"><a href="#Parser-1639"><span class="linenos">1639</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting TABLE after UNCACHE"</span><span class="p">)</span> </span><span id="Parser-1640"><a href="#Parser-1640"><span class="linenos">1640</span></a> -</span><span id="Parser-1641"><a href="#Parser-1641"><span class="linenos">1641</span></a> <span class="k">if</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">OPTIONS</span><span class="p">):</span> -</span><span id="Parser-1642"><a href="#Parser-1642"><span class="linenos">1642</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> -</span><span id="Parser-1643"><a href="#Parser-1643"><span class="linenos">1643</span></a> <span class="n">k</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1644"><a href="#Parser-1644"><span class="linenos">1644</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">EQ</span><span class="p">)</span> -</span><span id="Parser-1645"><a href="#Parser-1645"><span class="linenos">1645</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-1646"><a href="#Parser-1646"><span class="linenos">1646</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">]</span> -</span><span id="Parser-1647"><a href="#Parser-1647"><span class="linenos">1647</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-1648"><a href="#Parser-1648"><span class="linenos">1648</span></a> -</span><span id="Parser-1649"><a href="#Parser-1649"><span class="linenos">1649</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-1650"><a href="#Parser-1650"><span class="linenos">1650</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><span id="Parser-1651"><a href="#Parser-1651"><span class="linenos">1651</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cache</span><span class="p">,</span> -</span><span id="Parser-1652"><a href="#Parser-1652"><span class="linenos">1652</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> -</span><span id="Parser-1653"><a href="#Parser-1653"><span class="linenos">1653</span></a> <span class="n">lazy</span><span class="o">=</span><span class="n">lazy</span><span class="p">,</span> -</span><span id="Parser-1654"><a href="#Parser-1654"><span class="linenos">1654</span></a> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">,</span> -</span><span id="Parser-1655"><a href="#Parser-1655"><span class="linenos">1655</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> -</span><span id="Parser-1656"><a href="#Parser-1656"><span class="linenos">1656</span></a> <span class="p">)</span> -</span><span id="Parser-1657"><a href="#Parser-1657"><span class="linenos">1657</span></a> -</span><span id="Parser-1658"><a href="#Parser-1658"><span class="linenos">1658</span></a> <span class="k">def</span> <span class="nf">_parse_partition</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1659"><a href="#Parser-1659"><span class="linenos">1659</span></a> <span class="k">if</span> <span class="ow">not</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">PARTITION</span><span class="p">):</span> -</span><span id="Parser-1660"><a href="#Parser-1660"><span class="linenos">1660</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1661"><a href="#Parser-1661"><span class="linenos">1661</span></a> +</span><span id="Parser-1641"><a href="#Parser-1641"><span class="linenos">1641</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><span id="Parser-1642"><a href="#Parser-1642"><span class="linenos">1642</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Uncache</span><span class="p">,</span> +</span><span id="Parser-1643"><a href="#Parser-1643"><span class="linenos">1643</span></a> <span class="n">exists</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(),</span> +</span><span id="Parser-1644"><a href="#Parser-1644"><span class="linenos">1644</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-1645"><a href="#Parser-1645"><span class="linenos">1645</span></a> <span class="p">)</span> +</span><span id="Parser-1646"><a href="#Parser-1646"><span class="linenos">1646</span></a> +</span><span id="Parser-1647"><a href="#Parser-1647"><span class="linenos">1647</span></a> <span class="k">def</span> <span class="nf">_parse_cache</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1648"><a href="#Parser-1648"><span class="linenos">1648</span></a> <span class="n">lazy</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">LAZY</span><span class="p">)</span> +</span><span id="Parser-1649"><a href="#Parser-1649"><span class="linenos">1649</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">TABLE</span><span class="p">)</span> +</span><span id="Parser-1650"><a href="#Parser-1650"><span class="linenos">1650</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1651"><a href="#Parser-1651"><span class="linenos">1651</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-1652"><a href="#Parser-1652"><span class="linenos">1652</span></a> +</span><span id="Parser-1653"><a href="#Parser-1653"><span class="linenos">1653</span></a> <span class="k">if</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">OPTIONS</span><span class="p">):</span> +</span><span id="Parser-1654"><a href="#Parser-1654"><span class="linenos">1654</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="Parser-1655"><a href="#Parser-1655"><span class="linenos">1655</span></a> <span class="n">k</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1656"><a href="#Parser-1656"><span class="linenos">1656</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">EQ</span><span class="p">)</span> +</span><span id="Parser-1657"><a href="#Parser-1657"><span class="linenos">1657</span></a> <span class="n">v</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-1658"><a href="#Parser-1658"><span class="linenos">1658</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[</span><span class="n">k</span><span class="p">,</span> <span class="n">v</span><span class="p">]</span> +</span><span id="Parser-1659"><a href="#Parser-1659"><span class="linenos">1659</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-1660"><a href="#Parser-1660"><span class="linenos">1660</span></a> +</span><span id="Parser-1661"><a href="#Parser-1661"><span class="linenos">1661</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">ALIAS</span><span class="p">)</span> </span><span id="Parser-1662"><a href="#Parser-1662"><span class="linenos">1662</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><span id="Parser-1663"><a href="#Parser-1663"><span class="linenos">1663</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Partition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-1664"><a href="#Parser-1664"><span class="linenos">1664</span></a> <span class="p">)</span> -</span><span id="Parser-1665"><a href="#Parser-1665"><span class="linenos">1665</span></a> -</span><span id="Parser-1666"><a href="#Parser-1666"><span class="linenos">1666</span></a> <span class="k">def</span> <span class="nf">_parse_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1667"><a href="#Parser-1667"><span class="linenos">1667</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-1668"><a href="#Parser-1668"><span class="linenos">1668</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-1669"><a href="#Parser-1669"><span class="linenos">1669</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-1670"><a href="#Parser-1670"><span class="linenos">1670</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-1671"><a href="#Parser-1671"><span class="linenos">1671</span></a> -</span><span id="Parser-1672"><a href="#Parser-1672"><span class="linenos">1672</span></a> <span class="c1"># In presto we can have VALUES 1, 2 which results in 1 column & 2 rows.</span> -</span><span id="Parser-1673"><a href="#Parser-1673"><span class="linenos">1673</span></a> <span class="c1"># Source: https://prestodb.io/docs/current/sql/values.html</span> -</span><span id="Parser-1674"><a href="#Parser-1674"><span class="linenos">1674</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()])</span> -</span><span id="Parser-1675"><a href="#Parser-1675"><span class="linenos">1675</span></a> -</span><span id="Parser-1676"><a href="#Parser-1676"><span class="linenos">1676</span></a> <span class="k">def</span> <span class="nf">_parse_select</span><span class="p">(</span> -</span><span id="Parser-1677"><a href="#Parser-1677"><span class="linenos">1677</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">nested</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-1678"><a href="#Parser-1678"><span class="linenos">1678</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="Parser-1679"><a href="#Parser-1679"><span class="linenos">1679</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_with</span><span class="p">()</span> -</span><span id="Parser-1680"><a href="#Parser-1680"><span class="linenos">1680</span></a> <span class="k">if</span> <span class="n">cte</span><span class="p">:</span> -</span><span id="Parser-1681"><a href="#Parser-1681"><span class="linenos">1681</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> -</span><span id="Parser-1682"><a href="#Parser-1682"><span class="linenos">1682</span></a> -</span><span id="Parser-1683"><a href="#Parser-1683"><span class="linenos">1683</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="Parser-1684"><a href="#Parser-1684"><span class="linenos">1684</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Failed to parse any statement following CTE"</span><span class="p">)</span> -</span><span id="Parser-1685"><a href="#Parser-1685"><span class="linenos">1685</span></a> <span class="k">return</span> <span class="n">cte</span> -</span><span id="Parser-1686"><a href="#Parser-1686"><span class="linenos">1686</span></a> -</span><span id="Parser-1687"><a href="#Parser-1687"><span class="linenos">1687</span></a> <span class="k">if</span> <span class="s2">"with"</span> <span class="ow">in</span> <span class="n">this</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> -</span><span id="Parser-1688"><a href="#Parser-1688"><span class="linenos">1688</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"with"</span><span class="p">,</span> <span class="n">cte</span><span class="p">)</span> -</span><span id="Parser-1689"><a href="#Parser-1689"><span class="linenos">1689</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1690"><a href="#Parser-1690"><span class="linenos">1690</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2"> does not support CTE"</span><span class="p">)</span> -</span><span id="Parser-1691"><a href="#Parser-1691"><span class="linenos">1691</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">cte</span> -</span><span id="Parser-1692"><a href="#Parser-1692"><span class="linenos">1692</span></a> <span class="k">elif</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">SELECT</span><span class="p">):</span> -</span><span id="Parser-1693"><a href="#Parser-1693"><span class="linenos">1693</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-1663"><a href="#Parser-1663"><span class="linenos">1663</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cache</span><span class="p">,</span> +</span><span id="Parser-1664"><a href="#Parser-1664"><span class="linenos">1664</span></a> <span class="n">this</span><span class="o">=</span><span class="n">table</span><span class="p">,</span> +</span><span id="Parser-1665"><a href="#Parser-1665"><span class="linenos">1665</span></a> <span class="n">lazy</span><span class="o">=</span><span class="n">lazy</span><span class="p">,</span> +</span><span id="Parser-1666"><a href="#Parser-1666"><span class="linenos">1666</span></a> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">,</span> +</span><span id="Parser-1667"><a href="#Parser-1667"><span class="linenos">1667</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> +</span><span id="Parser-1668"><a href="#Parser-1668"><span class="linenos">1668</span></a> <span class="p">)</span> +</span><span id="Parser-1669"><a href="#Parser-1669"><span class="linenos">1669</span></a> +</span><span id="Parser-1670"><a href="#Parser-1670"><span class="linenos">1670</span></a> <span class="k">def</span> <span class="nf">_parse_partition</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1671"><a href="#Parser-1671"><span class="linenos">1671</span></a> <span class="k">if</span> <span class="ow">not</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">PARTITION</span><span class="p">):</span> +</span><span id="Parser-1672"><a href="#Parser-1672"><span class="linenos">1672</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1673"><a href="#Parser-1673"><span class="linenos">1673</span></a> +</span><span id="Parser-1674"><a href="#Parser-1674"><span class="linenos">1674</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><span id="Parser-1675"><a href="#Parser-1675"><span class="linenos">1675</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Partition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-1676"><a href="#Parser-1676"><span class="linenos">1676</span></a> <span class="p">)</span> +</span><span id="Parser-1677"><a href="#Parser-1677"><span class="linenos">1677</span></a> +</span><span id="Parser-1678"><a href="#Parser-1678"><span class="linenos">1678</span></a> <span class="k">def</span> <span class="nf">_parse_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1679"><a href="#Parser-1679"><span class="linenos">1679</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-1680"><a href="#Parser-1680"><span class="linenos">1680</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-1681"><a href="#Parser-1681"><span class="linenos">1681</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-1682"><a href="#Parser-1682"><span class="linenos">1682</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-1683"><a href="#Parser-1683"><span class="linenos">1683</span></a> +</span><span id="Parser-1684"><a href="#Parser-1684"><span class="linenos">1684</span></a> <span class="c1"># In presto we can have VALUES 1, 2 which results in 1 column & 2 rows.</span> +</span><span id="Parser-1685"><a href="#Parser-1685"><span class="linenos">1685</span></a> <span class="c1"># Source: https://prestodb.io/docs/current/sql/values.html</span> +</span><span id="Parser-1686"><a href="#Parser-1686"><span class="linenos">1686</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()])</span> +</span><span id="Parser-1687"><a href="#Parser-1687"><span class="linenos">1687</span></a> +</span><span id="Parser-1688"><a href="#Parser-1688"><span class="linenos">1688</span></a> <span class="k">def</span> <span class="nf">_parse_select</span><span class="p">(</span> +</span><span id="Parser-1689"><a href="#Parser-1689"><span class="linenos">1689</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">nested</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">table</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-1690"><a href="#Parser-1690"><span class="linenos">1690</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="Parser-1691"><a href="#Parser-1691"><span class="linenos">1691</span></a> <span class="n">cte</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_with</span><span class="p">()</span> +</span><span id="Parser-1692"><a href="#Parser-1692"><span class="linenos">1692</span></a> <span class="k">if</span> <span class="n">cte</span><span class="p">:</span> +</span><span id="Parser-1693"><a href="#Parser-1693"><span class="linenos">1693</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> </span><span id="Parser-1694"><a href="#Parser-1694"><span class="linenos">1694</span></a> -</span><span id="Parser-1695"><a href="#Parser-1695"><span class="linenos">1695</span></a> <span class="n">hint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_hint</span><span class="p">()</span> -</span><span id="Parser-1696"><a href="#Parser-1696"><span class="linenos">1696</span></a> <span class="n">all_</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">ALL</span><span class="p">)</span> -</span><span id="Parser-1697"><a href="#Parser-1697"><span class="linenos">1697</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> +</span><span id="Parser-1695"><a href="#Parser-1695"><span class="linenos">1695</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="Parser-1696"><a href="#Parser-1696"><span class="linenos">1696</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Failed to parse any statement following CTE"</span><span class="p">)</span> +</span><span id="Parser-1697"><a href="#Parser-1697"><span class="linenos">1697</span></a> <span class="k">return</span> <span class="n">cte</span> </span><span id="Parser-1698"><a href="#Parser-1698"><span class="linenos">1698</span></a> -</span><span id="Parser-1699"><a href="#Parser-1699"><span class="linenos">1699</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> -</span><span id="Parser-1700"><a href="#Parser-1700"><span class="linenos">1700</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1701"><a href="#Parser-1701"><span class="linenos">1701</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> -</span><span id="Parser-1702"><a href="#Parser-1702"><span class="linenos">1702</span></a> <span class="n">on</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">()</span> <span class="k">if</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">ON</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-1703"><a href="#Parser-1703"><span class="linenos">1703</span></a> <span class="p">)</span> -</span><span id="Parser-1704"><a href="#Parser-1704"><span class="linenos">1704</span></a> -</span><span id="Parser-1705"><a href="#Parser-1705"><span class="linenos">1705</span></a> <span class="k">if</span> <span class="n">all_</span> <span class="ow">and</span> <span class="n">distinct</span><span class="p">:</span> -</span><span id="Parser-1706"><a href="#Parser-1706"><span class="linenos">1706</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Cannot specify both ALL and DISTINCT after SELECT"</span><span class="p">)</span> -</span><span id="Parser-1707"><a href="#Parser-1707"><span class="linenos">1707</span></a> -</span><span id="Parser-1708"><a href="#Parser-1708"><span class="linenos">1708</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1709"><a href="#Parser-1709"><span class="linenos">1709</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="Parser-1699"><a href="#Parser-1699"><span class="linenos">1699</span></a> <span class="k">if</span> <span class="s2">"with"</span> <span class="ow">in</span> <span class="n">this</span><span class="o">.</span><span class="n">arg_types</span><span class="p">:</span> +</span><span id="Parser-1700"><a href="#Parser-1700"><span class="linenos">1700</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"with"</span><span class="p">,</span> <span class="n">cte</span><span class="p">)</span> +</span><span id="Parser-1701"><a href="#Parser-1701"><span class="linenos">1701</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1702"><a href="#Parser-1702"><span class="linenos">1702</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">this</span><span class="o">.</span><span class="n">key</span><span class="si">}</span><span class="s2"> does not support CTE"</span><span class="p">)</span> +</span><span id="Parser-1703"><a href="#Parser-1703"><span class="linenos">1703</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">cte</span> +</span><span id="Parser-1704"><a href="#Parser-1704"><span class="linenos">1704</span></a> <span class="k">elif</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">SELECT</span><span class="p">):</span> +</span><span id="Parser-1705"><a href="#Parser-1705"><span class="linenos">1705</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-1706"><a href="#Parser-1706"><span class="linenos">1706</span></a> +</span><span id="Parser-1707"><a href="#Parser-1707"><span class="linenos">1707</span></a> <span class="n">hint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_hint</span><span class="p">()</span> +</span><span id="Parser-1708"><a href="#Parser-1708"><span class="linenos">1708</span></a> <span class="n">all_</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">ALL</span><span class="p">)</span> +</span><span id="Parser-1709"><a href="#Parser-1709"><span class="linenos">1709</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> </span><span id="Parser-1710"><a href="#Parser-1710"><span class="linenos">1710</span></a> -</span><span id="Parser-1711"><a href="#Parser-1711"><span class="linenos">1711</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1712"><a href="#Parser-1712"><span class="linenos">1712</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">,</span> -</span><span id="Parser-1713"><a href="#Parser-1713"><span class="linenos">1713</span></a> <span class="n">hint</span><span class="o">=</span><span class="n">hint</span><span class="p">,</span> -</span><span id="Parser-1714"><a href="#Parser-1714"><span class="linenos">1714</span></a> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> -</span><span id="Parser-1715"><a href="#Parser-1715"><span class="linenos">1715</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Parser-1716"><a href="#Parser-1716"><span class="linenos">1716</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> -</span><span id="Parser-1717"><a href="#Parser-1717"><span class="linenos">1717</span></a> <span class="p">)</span> -</span><span id="Parser-1718"><a href="#Parser-1718"><span class="linenos">1718</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Parser-1711"><a href="#Parser-1711"><span class="linenos">1711</span></a> <span class="k">if</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="Parser-1712"><a href="#Parser-1712"><span class="linenos">1712</span></a> <span class="n">distinct</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1713"><a href="#Parser-1713"><span class="linenos">1713</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> +</span><span id="Parser-1714"><a href="#Parser-1714"><span class="linenos">1714</span></a> <span class="n">on</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">()</span> <span class="k">if</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">ON</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-1715"><a href="#Parser-1715"><span class="linenos">1715</span></a> <span class="p">)</span> +</span><span id="Parser-1716"><a href="#Parser-1716"><span class="linenos">1716</span></a> +</span><span id="Parser-1717"><a href="#Parser-1717"><span class="linenos">1717</span></a> <span class="k">if</span> <span class="n">all_</span> <span class="ow">and</span> <span class="n">distinct</span><span class="p">:</span> +</span><span id="Parser-1718"><a href="#Parser-1718"><span class="linenos">1718</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Cannot specify both ALL and DISTINCT after SELECT"</span><span class="p">)</span> </span><span id="Parser-1719"><a href="#Parser-1719"><span class="linenos">1719</span></a> -</span><span id="Parser-1720"><a href="#Parser-1720"><span class="linenos">1720</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_into</span><span class="p">()</span> -</span><span id="Parser-1721"><a href="#Parser-1721"><span class="linenos">1721</span></a> <span class="k">if</span> <span class="n">into</span><span class="p">:</span> -</span><span id="Parser-1722"><a href="#Parser-1722"><span class="linenos">1722</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"into"</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span> -</span><span id="Parser-1723"><a href="#Parser-1723"><span class="linenos">1723</span></a> -</span><span id="Parser-1724"><a href="#Parser-1724"><span class="linenos">1724</span></a> <span class="n">from_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">()</span> -</span><span id="Parser-1725"><a href="#Parser-1725"><span class="linenos">1725</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> -</span><span id="Parser-1726"><a href="#Parser-1726"><span class="linenos">1726</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"from"</span><span class="p">,</span> <span class="n">from_</span><span class="p">)</span> -</span><span id="Parser-1727"><a href="#Parser-1727"><span class="linenos">1727</span></a> -</span><span id="Parser-1728"><a href="#Parser-1728"><span class="linenos">1728</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-1729"><a href="#Parser-1729"><span class="linenos">1729</span></a> <span class="k">elif</span> <span class="p">(</span><span class="n">table</span> <span class="ow">or</span> <span class="n">nested</span><span class="p">)</span> <span class="ow">and</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-1730"><a href="#Parser-1730"><span class="linenos">1730</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1731"><a href="#Parser-1731"><span class="linenos">1731</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-1732"><a href="#Parser-1732"><span class="linenos">1732</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-1733"><a href="#Parser-1733"><span class="linenos">1733</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-1734"><a href="#Parser-1734"><span class="linenos">1734</span></a> -</span><span id="Parser-1735"><a href="#Parser-1735"><span class="linenos">1735</span></a> <span class="c1"># early return so that subquery unions aren't parsed again</span> -</span><span id="Parser-1736"><a href="#Parser-1736"><span class="linenos">1736</span></a> <span class="c1"># SELECT * FROM (SELECT 1) UNION ALL SELECT 1</span> -</span><span id="Parser-1737"><a href="#Parser-1737"><span class="linenos">1737</span></a> <span class="c1"># Union ALL should be a property of the top select node, not the subquery</span> -</span><span id="Parser-1738"><a href="#Parser-1738"><span class="linenos">1738</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">parse_alias</span><span class="o">=</span><span class="n">parse_subquery_alias</span><span class="p">)</span> -</span><span id="Parser-1739"><a href="#Parser-1739"><span class="linenos">1739</span></a> <span class="k">elif</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">VALUES</span><span class="p">):</span> -</span><span id="Parser-1740"><a href="#Parser-1740"><span class="linenos">1740</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1741"><a href="#Parser-1741"><span class="linenos">1741</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">,</span> -</span><span id="Parser-1742"><a href="#Parser-1742"><span class="linenos">1742</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">),</span> -</span><span id="Parser-1743"><a href="#Parser-1743"><span class="linenos">1743</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(),</span> -</span><span id="Parser-1744"><a href="#Parser-1744"><span class="linenos">1744</span></a> <span class="p">)</span> -</span><span id="Parser-1745"><a href="#Parser-1745"><span class="linenos">1745</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1746"><a href="#Parser-1746"><span class="linenos">1746</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1747"><a href="#Parser-1747"><span class="linenos">1747</span></a> -</span><span id="Parser-1748"><a href="#Parser-1748"><span class="linenos">1748</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-1749"><a href="#Parser-1749"><span class="linenos">1749</span></a> -</span><span id="Parser-1750"><a href="#Parser-1750"><span class="linenos">1750</span></a> <span class="k">def</span> <span class="nf">_parse_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_with_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-1751"><a href="#Parser-1751"><span class="linenos">1751</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_with_token</span> <span class="ow">and</span> <span class="ow">not</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">WITH</span><span class="p">):</span> -</span><span id="Parser-1752"><a href="#Parser-1752"><span class="linenos">1752</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1753"><a href="#Parser-1753"><span class="linenos">1753</span></a> -</span><span id="Parser-1754"><a href="#Parser-1754"><span class="linenos">1754</span></a> <span class="n">recursive</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">RECURSIVE</span><span class="p">)</span> -</span><span id="Parser-1755"><a href="#Parser-1755"><span class="linenos">1755</span></a> -</span><span id="Parser-1756"><a href="#Parser-1756"><span class="linenos">1756</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-1757"><a href="#Parser-1757"><span class="linenos">1757</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-1758"><a href="#Parser-1758"><span class="linenos">1758</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">())</span> +</span><span id="Parser-1720"><a href="#Parser-1720"><span class="linenos">1720</span></a> <span class="n">limit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="n">top</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1721"><a href="#Parser-1721"><span class="linenos">1721</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="Parser-1722"><a href="#Parser-1722"><span class="linenos">1722</span></a> +</span><span id="Parser-1723"><a href="#Parser-1723"><span class="linenos">1723</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1724"><a href="#Parser-1724"><span class="linenos">1724</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">,</span> +</span><span id="Parser-1725"><a href="#Parser-1725"><span class="linenos">1725</span></a> <span class="n">hint</span><span class="o">=</span><span class="n">hint</span><span class="p">,</span> +</span><span id="Parser-1726"><a href="#Parser-1726"><span class="linenos">1726</span></a> <span class="n">distinct</span><span class="o">=</span><span class="n">distinct</span><span class="p">,</span> +</span><span id="Parser-1727"><a href="#Parser-1727"><span class="linenos">1727</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Parser-1728"><a href="#Parser-1728"><span class="linenos">1728</span></a> <span class="n">limit</span><span class="o">=</span><span class="n">limit</span><span class="p">,</span> +</span><span id="Parser-1729"><a href="#Parser-1729"><span class="linenos">1729</span></a> <span class="p">)</span> +</span><span id="Parser-1730"><a href="#Parser-1730"><span class="linenos">1730</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Parser-1731"><a href="#Parser-1731"><span class="linenos">1731</span></a> +</span><span id="Parser-1732"><a href="#Parser-1732"><span class="linenos">1732</span></a> <span class="n">into</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_into</span><span class="p">()</span> +</span><span id="Parser-1733"><a href="#Parser-1733"><span class="linenos">1733</span></a> <span class="k">if</span> <span class="n">into</span><span class="p">:</span> +</span><span id="Parser-1734"><a href="#Parser-1734"><span class="linenos">1734</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"into"</span><span class="p">,</span> <span class="n">into</span><span class="p">)</span> +</span><span id="Parser-1735"><a href="#Parser-1735"><span class="linenos">1735</span></a> +</span><span id="Parser-1736"><a href="#Parser-1736"><span class="linenos">1736</span></a> <span class="n">from_</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_from</span><span class="p">()</span> +</span><span id="Parser-1737"><a href="#Parser-1737"><span class="linenos">1737</span></a> <span class="k">if</span> <span class="n">from_</span><span class="p">:</span> +</span><span id="Parser-1738"><a href="#Parser-1738"><span class="linenos">1738</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"from"</span><span class="p">,</span> <span class="n">from_</span><span class="p">)</span> +</span><span id="Parser-1739"><a href="#Parser-1739"><span class="linenos">1739</span></a> +</span><span id="Parser-1740"><a href="#Parser-1740"><span class="linenos">1740</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-1741"><a href="#Parser-1741"><span class="linenos">1741</span></a> <span class="k">elif</span> <span class="p">(</span><span class="n">table</span> <span class="ow">or</span> <span class="n">nested</span><span class="p">)</span> <span class="ow">and</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-1742"><a href="#Parser-1742"><span class="linenos">1742</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1743"><a href="#Parser-1743"><span class="linenos">1743</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-1744"><a href="#Parser-1744"><span class="linenos">1744</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-1745"><a href="#Parser-1745"><span class="linenos">1745</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-1746"><a href="#Parser-1746"><span class="linenos">1746</span></a> +</span><span id="Parser-1747"><a href="#Parser-1747"><span class="linenos">1747</span></a> <span class="c1"># early return so that subquery unions aren't parsed again</span> +</span><span id="Parser-1748"><a href="#Parser-1748"><span class="linenos">1748</span></a> <span class="c1"># SELECT * FROM (SELECT 1) UNION ALL SELECT 1</span> +</span><span id="Parser-1749"><a href="#Parser-1749"><span class="linenos">1749</span></a> <span class="c1"># Union ALL should be a property of the top select node, not the subquery</span> +</span><span id="Parser-1750"><a href="#Parser-1750"><span class="linenos">1750</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">parse_alias</span><span class="o">=</span><span class="n">parse_subquery_alias</span><span class="p">)</span> +</span><span id="Parser-1751"><a href="#Parser-1751"><span class="linenos">1751</span></a> <span class="k">elif</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">VALUES</span><span class="p">):</span> +</span><span id="Parser-1752"><a href="#Parser-1752"><span class="linenos">1752</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1753"><a href="#Parser-1753"><span class="linenos">1753</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Values</span><span class="p">,</span> +</span><span id="Parser-1754"><a href="#Parser-1754"><span class="linenos">1754</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">),</span> +</span><span id="Parser-1755"><a href="#Parser-1755"><span class="linenos">1755</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(),</span> +</span><span id="Parser-1756"><a href="#Parser-1756"><span class="linenos">1756</span></a> <span class="p">)</span> +</span><span id="Parser-1757"><a href="#Parser-1757"><span class="linenos">1757</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1758"><a href="#Parser-1758"><span class="linenos">1758</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="Parser-1759"><a href="#Parser-1759"><span class="linenos">1759</span></a> -</span><span id="Parser-1760"><a href="#Parser-1760"><span class="linenos">1760</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> -</span><span id="Parser-1761"><a href="#Parser-1761"><span class="linenos">1761</span></a> <span class="k">break</span> -</span><span id="Parser-1762"><a href="#Parser-1762"><span class="linenos">1762</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1763"><a href="#Parser-1763"><span class="linenos">1763</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">WITH</span><span class="p">)</span> -</span><span id="Parser-1764"><a href="#Parser-1764"><span class="linenos">1764</span></a> -</span><span id="Parser-1765"><a href="#Parser-1765"><span class="linenos">1765</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">With</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">)</span> -</span><span id="Parser-1766"><a href="#Parser-1766"><span class="linenos">1766</span></a> -</span><span id="Parser-1767"><a href="#Parser-1767"><span class="linenos">1767</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1768"><a href="#Parser-1768"><span class="linenos">1768</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> -</span><span id="Parser-1769"><a href="#Parser-1769"><span class="linenos">1769</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> -</span><span id="Parser-1770"><a href="#Parser-1770"><span class="linenos">1770</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="Parser-1760"><a href="#Parser-1760"><span class="linenos">1760</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-1761"><a href="#Parser-1761"><span class="linenos">1761</span></a> +</span><span id="Parser-1762"><a href="#Parser-1762"><span class="linenos">1762</span></a> <span class="k">def</span> <span class="nf">_parse_with</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_with_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-1763"><a href="#Parser-1763"><span class="linenos">1763</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_with_token</span> <span class="ow">and</span> <span class="ow">not</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">WITH</span><span class="p">):</span> +</span><span id="Parser-1764"><a href="#Parser-1764"><span class="linenos">1764</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1765"><a href="#Parser-1765"><span class="linenos">1765</span></a> +</span><span id="Parser-1766"><a href="#Parser-1766"><span class="linenos">1766</span></a> <span class="n">recursive</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">RECURSIVE</span><span class="p">)</span> +</span><span id="Parser-1767"><a href="#Parser-1767"><span class="linenos">1767</span></a> +</span><span id="Parser-1768"><a href="#Parser-1768"><span class="linenos">1768</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-1769"><a href="#Parser-1769"><span class="linenos">1769</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-1770"><a href="#Parser-1770"><span class="linenos">1770</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_cte</span><span class="p">())</span> </span><span id="Parser-1771"><a href="#Parser-1771"><span class="linenos">1771</span></a> -</span><span id="Parser-1772"><a href="#Parser-1772"><span class="linenos">1772</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-1773"><a href="#Parser-1773"><span class="linenos">1773</span></a> -</span><span id="Parser-1774"><a href="#Parser-1774"><span class="linenos">1774</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><span id="Parser-1775"><a href="#Parser-1775"><span class="linenos">1775</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">,</span> -</span><span id="Parser-1776"><a href="#Parser-1776"><span class="linenos">1776</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">),</span> -</span><span id="Parser-1777"><a href="#Parser-1777"><span class="linenos">1777</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> -</span><span id="Parser-1778"><a href="#Parser-1778"><span class="linenos">1778</span></a> <span class="p">)</span> -</span><span id="Parser-1779"><a href="#Parser-1779"><span class="linenos">1779</span></a> -</span><span id="Parser-1780"><a href="#Parser-1780"><span class="linenos">1780</span></a> <span class="k">def</span> <span class="nf">_parse_table_alias</span><span class="p">(</span> -</span><span id="Parser-1781"><a href="#Parser-1781"><span class="linenos">1781</span></a> <span class="bp">self</span><span class="p">,</span> <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><span id="Parser-1782"><a href="#Parser-1782"><span class="linenos">1782</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="Parser-1783"><a href="#Parser-1783"><span class="linenos">1783</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-1784"><a href="#Parser-1784"><span class="linenos">1784</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span> -</span><span id="Parser-1785"><a href="#Parser-1785"><span class="linenos">1785</span></a> <span class="n">any_token</span><span class="o">=</span><span class="n">any_token</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span> -</span><span id="Parser-1786"><a href="#Parser-1786"><span class="linenos">1786</span></a> <span class="p">)</span> -</span><span id="Parser-1787"><a href="#Parser-1787"><span class="linenos">1787</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><span id="Parser-1788"><a href="#Parser-1788"><span class="linenos">1788</span></a> -</span><span id="Parser-1789"><a href="#Parser-1789"><span class="linenos">1789</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-1790"><a href="#Parser-1790"><span class="linenos">1790</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="Parser-1791"><a href="#Parser-1791"><span class="linenos">1791</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <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="Parser-1792"><a href="#Parser-1792"><span class="linenos">1792</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1793"><a href="#Parser-1793"><span class="linenos">1793</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1794"><a href="#Parser-1794"><span class="linenos">1794</span></a> -</span><span id="Parser-1795"><a href="#Parser-1795"><span class="linenos">1795</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">columns</span><span class="p">:</span> -</span><span id="Parser-1796"><a href="#Parser-1796"><span class="linenos">1796</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1797"><a href="#Parser-1797"><span class="linenos">1797</span></a> -</span><span id="Parser-1798"><a href="#Parser-1798"><span class="linenos">1798</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">TableAlias</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> -</span><span id="Parser-1799"><a href="#Parser-1799"><span class="linenos">1799</span></a> -</span><span id="Parser-1800"><a href="#Parser-1800"><span class="linenos">1800</span></a> <span class="k">def</span> <span class="nf">_parse_subquery</span><span class="p">(</span> -</span><span id="Parser-1801"><a href="#Parser-1801"><span class="linenos">1801</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">parse_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-1802"><a href="#Parser-1802"><span class="linenos">1802</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-1803"><a href="#Parser-1803"><span class="linenos">1803</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><span id="Parser-1804"><a href="#Parser-1804"><span class="linenos">1804</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> -</span><span id="Parser-1805"><a href="#Parser-1805"><span class="linenos">1805</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1806"><a href="#Parser-1806"><span class="linenos">1806</span></a> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">(),</span> -</span><span id="Parser-1807"><a href="#Parser-1807"><span class="linenos">1807</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> <span class="k">if</span> <span class="n">parse_alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser-1808"><a href="#Parser-1808"><span class="linenos">1808</span></a> <span class="p">)</span> -</span><span id="Parser-1809"><a href="#Parser-1809"><span class="linenos">1809</span></a> -</span><span id="Parser-1810"><a href="#Parser-1810"><span class="linenos">1810</span></a> <span class="k">def</span> <span class="nf">_parse_query_modifiers</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-1811"><a href="#Parser-1811"><span class="linenos">1811</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">MODIFIABLES</span><span class="p">):</span> -</span><span id="Parser-1812"><a href="#Parser-1812"><span class="linenos">1812</span></a> <span class="k">return</span> -</span><span id="Parser-1813"><a href="#Parser-1813"><span class="linenos">1813</span></a> -</span><span id="Parser-1814"><a href="#Parser-1814"><span class="linenos">1814</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> -</span><span id="Parser-1815"><a href="#Parser-1815"><span class="linenos">1815</span></a> -</span><span id="Parser-1816"><a href="#Parser-1816"><span class="linenos">1816</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-1817"><a href="#Parser-1817"><span class="linenos">1817</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> -</span><span id="Parser-1818"><a href="#Parser-1818"><span class="linenos">1818</span></a> <span class="n">join</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join</span><span class="p">()</span> -</span><span id="Parser-1819"><a href="#Parser-1819"><span class="linenos">1819</span></a> <span class="n">comma</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</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">COMMA</span><span class="p">)</span> -</span><span id="Parser-1820"><a href="#Parser-1820"><span class="linenos">1820</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> -</span><span id="Parser-1821"><a href="#Parser-1821"><span class="linenos">1821</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">,</span> <span class="n">lateral</span><span class="p">)</span> -</span><span id="Parser-1822"><a href="#Parser-1822"><span class="linenos">1822</span></a> <span class="k">if</span> <span class="n">join</span><span class="p">:</span> -</span><span id="Parser-1823"><a href="#Parser-1823"><span class="linenos">1823</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">,</span> <span class="n">join</span><span class="p">)</span> -</span><span id="Parser-1824"><a href="#Parser-1824"><span class="linenos">1824</span></a> <span class="k">if</span> <span class="n">comma</span><span class="p">:</span> -</span><span id="Parser-1825"><a href="#Parser-1825"><span class="linenos">1825</span></a> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"from"</span><span class="p">]</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="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">())</span> -</span><span id="Parser-1826"><a href="#Parser-1826"><span class="linenos">1826</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">lateral</span> <span class="ow">or</span> <span class="n">join</span> <span class="ow">or</span> <span class="n">comma</span><span class="p">):</span> -</span><span id="Parser-1827"><a href="#Parser-1827"><span class="linenos">1827</span></a> <span class="k">break</span> +</span><span id="Parser-1772"><a href="#Parser-1772"><span class="linenos">1772</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> +</span><span id="Parser-1773"><a href="#Parser-1773"><span class="linenos">1773</span></a> <span class="k">break</span> +</span><span id="Parser-1774"><a href="#Parser-1774"><span class="linenos">1774</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1775"><a href="#Parser-1775"><span class="linenos">1775</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">WITH</span><span class="p">)</span> +</span><span id="Parser-1776"><a href="#Parser-1776"><span class="linenos">1776</span></a> +</span><span id="Parser-1777"><a href="#Parser-1777"><span class="linenos">1777</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">With</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">recursive</span><span class="o">=</span><span class="n">recursive</span><span class="p">)</span> +</span><span id="Parser-1778"><a href="#Parser-1778"><span class="linenos">1778</span></a> +</span><span id="Parser-1779"><a href="#Parser-1779"><span class="linenos">1779</span></a> <span class="k">def</span> <span class="nf">_parse_cte</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1780"><a href="#Parser-1780"><span class="linenos">1780</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> +</span><span id="Parser-1781"><a href="#Parser-1781"><span class="linenos">1781</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">:</span> +</span><span id="Parser-1782"><a href="#Parser-1782"><span class="linenos">1782</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected CTE to have alias"</span><span class="p">)</span> +</span><span id="Parser-1783"><a href="#Parser-1783"><span class="linenos">1783</span></a> +</span><span id="Parser-1784"><a href="#Parser-1784"><span class="linenos">1784</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-1785"><a href="#Parser-1785"><span class="linenos">1785</span></a> +</span><span id="Parser-1786"><a href="#Parser-1786"><span class="linenos">1786</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><span id="Parser-1787"><a href="#Parser-1787"><span class="linenos">1787</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CTE</span><span class="p">,</span> +</span><span id="Parser-1788"><a href="#Parser-1788"><span class="linenos">1788</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">),</span> +</span><span id="Parser-1789"><a href="#Parser-1789"><span class="linenos">1789</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> +</span><span id="Parser-1790"><a href="#Parser-1790"><span class="linenos">1790</span></a> <span class="p">)</span> +</span><span id="Parser-1791"><a href="#Parser-1791"><span class="linenos">1791</span></a> +</span><span id="Parser-1792"><a href="#Parser-1792"><span class="linenos">1792</span></a> <span class="k">def</span> <span class="nf">_parse_table_alias</span><span class="p">(</span> +</span><span id="Parser-1793"><a href="#Parser-1793"><span class="linenos">1793</span></a> <span class="bp">self</span><span class="p">,</span> <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><span id="Parser-1794"><a href="#Parser-1794"><span class="linenos">1794</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="Parser-1795"><a href="#Parser-1795"><span class="linenos">1795</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-1796"><a href="#Parser-1796"><span class="linenos">1796</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-1797"><a href="#Parser-1797"><span class="linenos">1797</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="n">any_token</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">)</span> +</span><span id="Parser-1798"><a href="#Parser-1798"><span class="linenos">1798</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string_as_identifier</span><span class="p">()</span> +</span><span id="Parser-1799"><a href="#Parser-1799"><span class="linenos">1799</span></a> <span class="p">)</span> +</span><span id="Parser-1800"><a href="#Parser-1800"><span class="linenos">1800</span></a> +</span><span id="Parser-1801"><a href="#Parser-1801"><span class="linenos">1801</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><span id="Parser-1802"><a href="#Parser-1802"><span class="linenos">1802</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-1803"><a href="#Parser-1803"><span class="linenos">1803</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="Parser-1804"><a href="#Parser-1804"><span class="linenos">1804</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> <span class="k">if</span> <span class="n">columns</span> <span class="k">else</span> <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="Parser-1805"><a href="#Parser-1805"><span class="linenos">1805</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1806"><a href="#Parser-1806"><span class="linenos">1806</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1807"><a href="#Parser-1807"><span class="linenos">1807</span></a> +</span><span id="Parser-1808"><a href="#Parser-1808"><span class="linenos">1808</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">alias</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">columns</span><span class="p">:</span> +</span><span id="Parser-1809"><a href="#Parser-1809"><span class="linenos">1809</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1810"><a href="#Parser-1810"><span class="linenos">1810</span></a> +</span><span id="Parser-1811"><a href="#Parser-1811"><span class="linenos">1811</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">TableAlias</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> +</span><span id="Parser-1812"><a href="#Parser-1812"><span class="linenos">1812</span></a> +</span><span id="Parser-1813"><a href="#Parser-1813"><span class="linenos">1813</span></a> <span class="k">def</span> <span class="nf">_parse_subquery</span><span class="p">(</span> +</span><span id="Parser-1814"><a href="#Parser-1814"><span class="linenos">1814</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">parse_alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-1815"><a href="#Parser-1815"><span class="linenos">1815</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-1816"><a href="#Parser-1816"><span class="linenos">1816</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><span id="Parser-1817"><a href="#Parser-1817"><span class="linenos">1817</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Subquery</span><span class="p">,</span> +</span><span id="Parser-1818"><a href="#Parser-1818"><span class="linenos">1818</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1819"><a href="#Parser-1819"><span class="linenos">1819</span></a> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">(),</span> +</span><span id="Parser-1820"><a href="#Parser-1820"><span class="linenos">1820</span></a> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> <span class="k">if</span> <span class="n">parse_alias</span> <span class="k">else</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser-1821"><a href="#Parser-1821"><span class="linenos">1821</span></a> <span class="p">)</span> +</span><span id="Parser-1822"><a href="#Parser-1822"><span class="linenos">1822</span></a> +</span><span id="Parser-1823"><a href="#Parser-1823"><span class="linenos">1823</span></a> <span class="k">def</span> <span class="nf">_parse_query_modifiers</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-1824"><a href="#Parser-1824"><span class="linenos">1824</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">MODIFIABLES</span><span class="p">):</span> +</span><span id="Parser-1825"><a href="#Parser-1825"><span class="linenos">1825</span></a> <span class="k">return</span> +</span><span id="Parser-1826"><a href="#Parser-1826"><span class="linenos">1826</span></a> +</span><span id="Parser-1827"><a href="#Parser-1827"><span class="linenos">1827</span></a> <span class="n">table</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Table</span><span class="p">)</span> </span><span id="Parser-1828"><a href="#Parser-1828"><span class="linenos">1828</span></a> -</span><span id="Parser-1829"><a href="#Parser-1829"><span class="linenos">1829</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">parser</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">QUERY_MODIFIER_PARSERS</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> -</span><span id="Parser-1830"><a href="#Parser-1830"><span class="linenos">1830</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-1831"><a href="#Parser-1831"><span class="linenos">1831</span></a> -</span><span id="Parser-1832"><a href="#Parser-1832"><span class="linenos">1832</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="Parser-1833"><a href="#Parser-1833"><span class="linenos">1833</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> -</span><span id="Parser-1834"><a href="#Parser-1834"><span class="linenos">1834</span></a> -</span><span id="Parser-1835"><a href="#Parser-1835"><span class="linenos">1835</span></a> <span class="k">def</span> <span class="nf">_parse_hint</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1836"><a href="#Parser-1836"><span class="linenos">1836</span></a> <span class="k">if</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">HINT</span><span class="p">):</span> -</span><span id="Parser-1837"><a href="#Parser-1837"><span class="linenos">1837</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">)</span> -</span><span id="Parser-1838"><a href="#Parser-1838"><span class="linenos">1838</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">):</span> -</span><span id="Parser-1839"><a href="#Parser-1839"><span class="linenos">1839</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected */ after HINT"</span><span class="p">)</span> -</span><span id="Parser-1840"><a href="#Parser-1840"><span class="linenos">1840</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">Hint</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">hints</span><span class="p">)</span> +</span><span id="Parser-1829"><a href="#Parser-1829"><span class="linenos">1829</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-1830"><a href="#Parser-1830"><span class="linenos">1830</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> +</span><span id="Parser-1831"><a href="#Parser-1831"><span class="linenos">1831</span></a> <span class="n">join</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join</span><span class="p">()</span> +</span><span id="Parser-1832"><a href="#Parser-1832"><span class="linenos">1832</span></a> <span class="n">comma</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="n">table</span> <span class="k">else</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">COMMA</span><span class="p">)</span> +</span><span id="Parser-1833"><a href="#Parser-1833"><span class="linenos">1833</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> +</span><span id="Parser-1834"><a href="#Parser-1834"><span class="linenos">1834</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"laterals"</span><span class="p">,</span> <span class="n">lateral</span><span class="p">)</span> +</span><span id="Parser-1835"><a href="#Parser-1835"><span class="linenos">1835</span></a> <span class="k">if</span> <span class="n">join</span><span class="p">:</span> +</span><span id="Parser-1836"><a href="#Parser-1836"><span class="linenos">1836</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"joins"</span><span class="p">,</span> <span class="n">join</span><span class="p">)</span> +</span><span id="Parser-1837"><a href="#Parser-1837"><span class="linenos">1837</span></a> <span class="k">if</span> <span class="n">comma</span><span class="p">:</span> +</span><span id="Parser-1838"><a href="#Parser-1838"><span class="linenos">1838</span></a> <span class="n">this</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"from"</span><span class="p">]</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="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">())</span> +</span><span id="Parser-1839"><a href="#Parser-1839"><span class="linenos">1839</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">lateral</span> <span class="ow">or</span> <span class="n">join</span> <span class="ow">or</span> <span class="n">comma</span><span class="p">):</span> +</span><span id="Parser-1840"><a href="#Parser-1840"><span class="linenos">1840</span></a> <span class="k">break</span> </span><span id="Parser-1841"><a href="#Parser-1841"><span class="linenos">1841</span></a> -</span><span id="Parser-1842"><a href="#Parser-1842"><span class="linenos">1842</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1843"><a href="#Parser-1843"><span class="linenos">1843</span></a> -</span><span id="Parser-1844"><a href="#Parser-1844"><span class="linenos">1844</span></a> <span class="k">def</span> <span class="nf">_parse_into</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1845"><a href="#Parser-1845"><span class="linenos">1845</span></a> <span class="k">if</span> <span class="ow">not</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">INTO</span><span class="p">):</span> -</span><span id="Parser-1846"><a href="#Parser-1846"><span class="linenos">1846</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1842"><a href="#Parser-1842"><span class="linenos">1842</span></a> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">parser</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">QUERY_MODIFIER_PARSERS</span><span class="o">.</span><span class="n">items</span><span class="p">():</span> +</span><span id="Parser-1843"><a href="#Parser-1843"><span class="linenos">1843</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-1844"><a href="#Parser-1844"><span class="linenos">1844</span></a> +</span><span id="Parser-1845"><a href="#Parser-1845"><span class="linenos">1845</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="Parser-1846"><a href="#Parser-1846"><span class="linenos">1846</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="n">key</span><span class="p">,</span> <span class="n">expression</span><span class="p">)</span> </span><span id="Parser-1847"><a href="#Parser-1847"><span class="linenos">1847</span></a> -</span><span id="Parser-1848"><a href="#Parser-1848"><span class="linenos">1848</span></a> <span class="n">temp</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">TEMPORARY</span><span class="p">)</span> -</span><span id="Parser-1849"><a href="#Parser-1849"><span class="linenos">1849</span></a> <span class="n">unlogged</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">UNLOGGED</span><span class="p">)</span> -</span><span id="Parser-1850"><a href="#Parser-1850"><span class="linenos">1850</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">TABLE</span><span class="p">)</span> -</span><span id="Parser-1851"><a href="#Parser-1851"><span class="linenos">1851</span></a> -</span><span id="Parser-1852"><a href="#Parser-1852"><span class="linenos">1852</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><span id="Parser-1853"><a href="#Parser-1853"><span class="linenos">1853</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Into</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> <span class="n">temporary</span><span class="o">=</span><span class="n">temp</span><span class="p">,</span> <span class="n">unlogged</span><span class="o">=</span><span class="n">unlogged</span> -</span><span id="Parser-1854"><a href="#Parser-1854"><span class="linenos">1854</span></a> <span class="p">)</span> -</span><span id="Parser-1855"><a href="#Parser-1855"><span class="linenos">1855</span></a> -</span><span id="Parser-1856"><a href="#Parser-1856"><span class="linenos">1856</span></a> <span class="k">def</span> <span class="nf">_parse_from</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1857"><a href="#Parser-1857"><span class="linenos">1857</span></a> <span class="k">if</span> <span class="ow">not</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">FROM</span><span class="p">):</span> -</span><span id="Parser-1858"><a href="#Parser-1858"><span class="linenos">1858</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1859"><a href="#Parser-1859"><span class="linenos">1859</span></a> -</span><span id="Parser-1860"><a href="#Parser-1860"><span class="linenos">1860</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><span id="Parser-1861"><a href="#Parser-1861"><span class="linenos">1861</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> -</span><span id="Parser-1862"><a href="#Parser-1862"><span class="linenos">1862</span></a> <span class="p">)</span> -</span><span id="Parser-1863"><a href="#Parser-1863"><span class="linenos">1863</span></a> -</span><span id="Parser-1864"><a href="#Parser-1864"><span class="linenos">1864</span></a> <span class="k">def</span> <span class="nf">_parse_match_recognize</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1865"><a href="#Parser-1865"><span class="linenos">1865</span></a> <span class="k">if</span> <span class="ow">not</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">MATCH_RECOGNIZE</span><span class="p">):</span> -</span><span id="Parser-1866"><a href="#Parser-1866"><span class="linenos">1866</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1867"><a href="#Parser-1867"><span class="linenos">1867</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="Parser-1848"><a href="#Parser-1848"><span class="linenos">1848</span></a> <span class="k">def</span> <span class="nf">_parse_hint</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1849"><a href="#Parser-1849"><span class="linenos">1849</span></a> <span class="k">if</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">HINT</span><span class="p">):</span> +</span><span id="Parser-1850"><a href="#Parser-1850"><span class="linenos">1850</span></a> <span class="n">hints</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">)</span> +</span><span id="Parser-1851"><a href="#Parser-1851"><span class="linenos">1851</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SLASH</span><span class="p">):</span> +</span><span id="Parser-1852"><a href="#Parser-1852"><span class="linenos">1852</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected */ after HINT"</span><span class="p">)</span> +</span><span id="Parser-1853"><a href="#Parser-1853"><span class="linenos">1853</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">Hint</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">hints</span><span class="p">)</span> +</span><span id="Parser-1854"><a href="#Parser-1854"><span class="linenos">1854</span></a> +</span><span id="Parser-1855"><a href="#Parser-1855"><span class="linenos">1855</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1856"><a href="#Parser-1856"><span class="linenos">1856</span></a> +</span><span id="Parser-1857"><a href="#Parser-1857"><span class="linenos">1857</span></a> <span class="k">def</span> <span class="nf">_parse_into</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1858"><a href="#Parser-1858"><span class="linenos">1858</span></a> <span class="k">if</span> <span class="ow">not</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">INTO</span><span class="p">):</span> +</span><span id="Parser-1859"><a href="#Parser-1859"><span class="linenos">1859</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1860"><a href="#Parser-1860"><span class="linenos">1860</span></a> +</span><span id="Parser-1861"><a href="#Parser-1861"><span class="linenos">1861</span></a> <span class="n">temp</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">TEMPORARY</span><span class="p">)</span> +</span><span id="Parser-1862"><a href="#Parser-1862"><span class="linenos">1862</span></a> <span class="n">unlogged</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">UNLOGGED</span><span class="p">)</span> +</span><span id="Parser-1863"><a href="#Parser-1863"><span class="linenos">1863</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">TABLE</span><span class="p">)</span> +</span><span id="Parser-1864"><a href="#Parser-1864"><span class="linenos">1864</span></a> +</span><span id="Parser-1865"><a href="#Parser-1865"><span class="linenos">1865</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><span id="Parser-1866"><a href="#Parser-1866"><span class="linenos">1866</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Into</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> <span class="n">temporary</span><span class="o">=</span><span class="n">temp</span><span class="p">,</span> <span class="n">unlogged</span><span class="o">=</span><span class="n">unlogged</span> +</span><span id="Parser-1867"><a href="#Parser-1867"><span class="linenos">1867</span></a> <span class="p">)</span> </span><span id="Parser-1868"><a href="#Parser-1868"><span class="linenos">1868</span></a> -</span><span id="Parser-1869"><a href="#Parser-1869"><span class="linenos">1869</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> -</span><span id="Parser-1870"><a href="#Parser-1870"><span class="linenos">1870</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> -</span><span id="Parser-1871"><a href="#Parser-1871"><span class="linenos">1871</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-1872"><a href="#Parser-1872"><span class="linenos">1872</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="Parser-1873"><a href="#Parser-1873"><span class="linenos">1873</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MEASURES"</span><span class="p">)</span> -</span><span id="Parser-1874"><a href="#Parser-1874"><span class="linenos">1874</span></a> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-1869"><a href="#Parser-1869"><span class="linenos">1869</span></a> <span class="k">def</span> <span class="nf">_parse_from</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1870"><a href="#Parser-1870"><span class="linenos">1870</span></a> <span class="k">if</span> <span class="ow">not</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">FROM</span><span class="p">):</span> +</span><span id="Parser-1871"><a href="#Parser-1871"><span class="linenos">1871</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1872"><a href="#Parser-1872"><span class="linenos">1872</span></a> +</span><span id="Parser-1873"><a href="#Parser-1873"><span class="linenos">1873</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><span id="Parser-1874"><a href="#Parser-1874"><span class="linenos">1874</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">From</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> </span><span id="Parser-1875"><a href="#Parser-1875"><span class="linenos">1875</span></a> <span class="p">)</span> </span><span id="Parser-1876"><a href="#Parser-1876"><span class="linenos">1876</span></a> -</span><span id="Parser-1877"><a href="#Parser-1877"><span class="linenos">1877</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ONE"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> -</span><span id="Parser-1878"><a href="#Parser-1878"><span class="linenos">1878</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="s2">"ONE ROW PER MATCH"</span><span class="p">)</span> -</span><span id="Parser-1879"><a href="#Parser-1879"><span class="linenos">1879</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALL"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> -</span><span id="Parser-1880"><a href="#Parser-1880"><span class="linenos">1880</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"ALL ROWS PER MATCH"</span> -</span><span id="Parser-1881"><a href="#Parser-1881"><span class="linenos">1881</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHOW"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> -</span><span id="Parser-1882"><a href="#Parser-1882"><span class="linenos">1882</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" SHOW EMPTY MATCHES"</span> -</span><span id="Parser-1883"><a href="#Parser-1883"><span class="linenos">1883</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OMIT"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> -</span><span id="Parser-1884"><a href="#Parser-1884"><span class="linenos">1884</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" OMIT EMPTY MATCHES"</span> -</span><span id="Parser-1885"><a href="#Parser-1885"><span class="linenos">1885</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"UNMATCHED"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">):</span> -</span><span id="Parser-1886"><a href="#Parser-1886"><span class="linenos">1886</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" WITH UNMATCHED ROWS"</span> -</span><span id="Parser-1887"><a href="#Parser-1887"><span class="linenos">1887</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-1888"><a href="#Parser-1888"><span class="linenos">1888</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1889"><a href="#Parser-1889"><span class="linenos">1889</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1890"><a href="#Parser-1890"><span class="linenos">1890</span></a> -</span><span id="Parser-1891"><a href="#Parser-1891"><span class="linenos">1891</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"SKIP"</span><span class="p">):</span> -</span><span id="Parser-1892"><a href="#Parser-1892"><span class="linenos">1892</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"AFTER MATCH SKIP"</span> -</span><span id="Parser-1893"><a href="#Parser-1893"><span class="linenos">1893</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PAST"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> -</span><span id="Parser-1894"><a href="#Parser-1894"><span class="linenos">1894</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" PAST LAST ROW"</span> -</span><span id="Parser-1895"><a href="#Parser-1895"><span class="linenos">1895</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"NEXT"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> -</span><span id="Parser-1896"><a href="#Parser-1896"><span class="linenos">1896</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO NEXT ROW"</span> -</span><span id="Parser-1897"><a href="#Parser-1897"><span class="linenos">1897</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"FIRST"</span><span class="p">):</span> -</span><span id="Parser-1898"><a href="#Parser-1898"><span class="linenos">1898</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO FIRST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-1899"><a href="#Parser-1899"><span class="linenos">1899</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">):</span> -</span><span id="Parser-1900"><a href="#Parser-1900"><span class="linenos">1900</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO LAST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-1901"><a href="#Parser-1901"><span class="linenos">1901</span></a> <span class="n">after</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-1902"><a href="#Parser-1902"><span class="linenos">1902</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1903"><a href="#Parser-1903"><span class="linenos">1903</span></a> <span class="n">after</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1904"><a href="#Parser-1904"><span class="linenos">1904</span></a> -</span><span id="Parser-1905"><a href="#Parser-1905"><span class="linenos">1905</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PATTERN"</span><span class="p">):</span> -</span><span id="Parser-1906"><a href="#Parser-1906"><span class="linenos">1906</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> -</span><span id="Parser-1907"><a href="#Parser-1907"><span class="linenos">1907</span></a> -</span><span id="Parser-1908"><a href="#Parser-1908"><span class="linenos">1908</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="Parser-1909"><a href="#Parser-1909"><span class="linenos">1909</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">)</span> -</span><span id="Parser-1910"><a href="#Parser-1910"><span class="linenos">1910</span></a> -</span><span id="Parser-1911"><a href="#Parser-1911"><span class="linenos">1911</span></a> <span class="n">paren</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="Parser-1912"><a href="#Parser-1912"><span class="linenos">1912</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> -</span><span id="Parser-1913"><a href="#Parser-1913"><span class="linenos">1913</span></a> -</span><span id="Parser-1914"><a href="#Parser-1914"><span class="linenos">1914</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> -</span><span id="Parser-1915"><a href="#Parser-1915"><span class="linenos">1915</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> -</span><span id="Parser-1916"><a href="#Parser-1916"><span class="linenos">1916</span></a> <span class="n">paren</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Parser-1917"><a href="#Parser-1917"><span class="linenos">1917</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">:</span> -</span><span id="Parser-1918"><a href="#Parser-1918"><span class="linenos">1918</span></a> <span class="n">paren</span> <span class="o">-=</span> <span class="mi">1</span> -</span><span id="Parser-1919"><a href="#Parser-1919"><span class="linenos">1919</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-1920"><a href="#Parser-1920"><span class="linenos">1920</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-1921"><a href="#Parser-1921"><span class="linenos">1921</span></a> <span class="k">if</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="Parser-1877"><a href="#Parser-1877"><span class="linenos">1877</span></a> <span class="k">def</span> <span class="nf">_parse_match_recognize</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1878"><a href="#Parser-1878"><span class="linenos">1878</span></a> <span class="k">if</span> <span class="ow">not</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">MATCH_RECOGNIZE</span><span class="p">):</span> +</span><span id="Parser-1879"><a href="#Parser-1879"><span class="linenos">1879</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1880"><a href="#Parser-1880"><span class="linenos">1880</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="Parser-1881"><a href="#Parser-1881"><span class="linenos">1881</span></a> +</span><span id="Parser-1882"><a href="#Parser-1882"><span class="linenos">1882</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> +</span><span id="Parser-1883"><a href="#Parser-1883"><span class="linenos">1883</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> +</span><span id="Parser-1884"><a href="#Parser-1884"><span class="linenos">1884</span></a> <span class="n">measures</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-1885"><a href="#Parser-1885"><span class="linenos">1885</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="Parser-1886"><a href="#Parser-1886"><span class="linenos">1886</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MEASURES"</span><span class="p">)</span> +</span><span id="Parser-1887"><a href="#Parser-1887"><span class="linenos">1887</span></a> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-1888"><a href="#Parser-1888"><span class="linenos">1888</span></a> <span class="p">)</span> +</span><span id="Parser-1889"><a href="#Parser-1889"><span class="linenos">1889</span></a> +</span><span id="Parser-1890"><a href="#Parser-1890"><span class="linenos">1890</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ONE"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> +</span><span id="Parser-1891"><a href="#Parser-1891"><span class="linenos">1891</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="s2">"ONE ROW PER MATCH"</span><span class="p">)</span> +</span><span id="Parser-1892"><a href="#Parser-1892"><span class="linenos">1892</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALL"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">,</span> <span class="s2">"PER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">):</span> +</span><span id="Parser-1893"><a href="#Parser-1893"><span class="linenos">1893</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"ALL ROWS PER MATCH"</span> +</span><span id="Parser-1894"><a href="#Parser-1894"><span class="linenos">1894</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SHOW"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> +</span><span id="Parser-1895"><a href="#Parser-1895"><span class="linenos">1895</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" SHOW EMPTY MATCHES"</span> +</span><span id="Parser-1896"><a href="#Parser-1896"><span class="linenos">1896</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"OMIT"</span><span class="p">,</span> <span class="s2">"EMPTY"</span><span class="p">,</span> <span class="s2">"MATCHES"</span><span class="p">):</span> +</span><span id="Parser-1897"><a href="#Parser-1897"><span class="linenos">1897</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" OMIT EMPTY MATCHES"</span> +</span><span id="Parser-1898"><a href="#Parser-1898"><span class="linenos">1898</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"WITH"</span><span class="p">,</span> <span class="s2">"UNMATCHED"</span><span class="p">,</span> <span class="s2">"ROWS"</span><span class="p">):</span> +</span><span id="Parser-1899"><a href="#Parser-1899"><span class="linenos">1899</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" WITH UNMATCHED ROWS"</span> +</span><span id="Parser-1900"><a href="#Parser-1900"><span class="linenos">1900</span></a> <span class="n">rows</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-1901"><a href="#Parser-1901"><span class="linenos">1901</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1902"><a href="#Parser-1902"><span class="linenos">1902</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1903"><a href="#Parser-1903"><span class="linenos">1903</span></a> +</span><span id="Parser-1904"><a href="#Parser-1904"><span class="linenos">1904</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AFTER"</span><span class="p">,</span> <span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"SKIP"</span><span class="p">):</span> +</span><span id="Parser-1905"><a href="#Parser-1905"><span class="linenos">1905</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">"AFTER MATCH SKIP"</span> +</span><span id="Parser-1906"><a href="#Parser-1906"><span class="linenos">1906</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PAST"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> +</span><span id="Parser-1907"><a href="#Parser-1907"><span class="linenos">1907</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" PAST LAST ROW"</span> +</span><span id="Parser-1908"><a href="#Parser-1908"><span class="linenos">1908</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"NEXT"</span><span class="p">,</span> <span class="s2">"ROW"</span><span class="p">):</span> +</span><span id="Parser-1909"><a href="#Parser-1909"><span class="linenos">1909</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO NEXT ROW"</span> +</span><span id="Parser-1910"><a href="#Parser-1910"><span class="linenos">1910</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"FIRST"</span><span class="p">):</span> +</span><span id="Parser-1911"><a href="#Parser-1911"><span class="linenos">1911</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO FIRST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-1912"><a href="#Parser-1912"><span class="linenos">1912</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">,</span> <span class="s2">"LAST"</span><span class="p">):</span> +</span><span id="Parser-1913"><a href="#Parser-1913"><span class="linenos">1913</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="sa">f</span><span class="s2">" TO LAST </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-1914"><a href="#Parser-1914"><span class="linenos">1914</span></a> <span class="n">after</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="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-1915"><a href="#Parser-1915"><span class="linenos">1915</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1916"><a href="#Parser-1916"><span class="linenos">1916</span></a> <span class="n">after</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1917"><a href="#Parser-1917"><span class="linenos">1917</span></a> +</span><span id="Parser-1918"><a href="#Parser-1918"><span class="linenos">1918</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PATTERN"</span><span class="p">):</span> +</span><span id="Parser-1919"><a href="#Parser-1919"><span class="linenos">1919</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="Parser-1920"><a href="#Parser-1920"><span class="linenos">1920</span></a> +</span><span id="Parser-1921"><a href="#Parser-1921"><span class="linenos">1921</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> </span><span id="Parser-1922"><a href="#Parser-1922"><span class="linenos">1922</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">)</span> -</span><span id="Parser-1923"><a href="#Parser-1923"><span class="linenos">1923</span></a> <span class="n">pattern</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="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">))</span> -</span><span id="Parser-1924"><a href="#Parser-1924"><span class="linenos">1924</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1925"><a href="#Parser-1925"><span class="linenos">1925</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1923"><a href="#Parser-1923"><span class="linenos">1923</span></a> +</span><span id="Parser-1924"><a href="#Parser-1924"><span class="linenos">1924</span></a> <span class="n">paren</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="Parser-1925"><a href="#Parser-1925"><span class="linenos">1925</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> </span><span id="Parser-1926"><a href="#Parser-1926"><span class="linenos">1926</span></a> -</span><span id="Parser-1927"><a href="#Parser-1927"><span class="linenos">1927</span></a> <span class="n">define</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-1928"><a href="#Parser-1928"><span class="linenos">1928</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Parser-1929"><a href="#Parser-1929"><span class="linenos">1929</span></a> <span class="p">)</span> -</span><span id="Parser-1930"><a href="#Parser-1930"><span class="linenos">1930</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-1931"><a href="#Parser-1931"><span class="linenos">1931</span></a> -</span><span id="Parser-1932"><a href="#Parser-1932"><span class="linenos">1932</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><span id="Parser-1933"><a href="#Parser-1933"><span class="linenos">1933</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">,</span> -</span><span id="Parser-1934"><a href="#Parser-1934"><span class="linenos">1934</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> -</span><span id="Parser-1935"><a href="#Parser-1935"><span class="linenos">1935</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> -</span><span id="Parser-1936"><a href="#Parser-1936"><span class="linenos">1936</span></a> <span class="n">measures</span><span class="o">=</span><span class="n">measures</span><span class="p">,</span> -</span><span id="Parser-1937"><a href="#Parser-1937"><span class="linenos">1937</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> -</span><span id="Parser-1938"><a href="#Parser-1938"><span class="linenos">1938</span></a> <span class="n">after</span><span class="o">=</span><span class="n">after</span><span class="p">,</span> -</span><span id="Parser-1939"><a href="#Parser-1939"><span class="linenos">1939</span></a> <span class="n">pattern</span><span class="o">=</span><span class="n">pattern</span><span class="p">,</span> -</span><span id="Parser-1940"><a href="#Parser-1940"><span class="linenos">1940</span></a> <span class="n">define</span><span class="o">=</span><span class="n">define</span><span class="p">,</span> -</span><span id="Parser-1941"><a href="#Parser-1941"><span class="linenos">1941</span></a> <span class="p">)</span> -</span><span id="Parser-1942"><a href="#Parser-1942"><span class="linenos">1942</span></a> -</span><span id="Parser-1943"><a href="#Parser-1943"><span class="linenos">1943</span></a> <span class="k">def</span> <span class="nf">_parse_lateral</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-1944"><a href="#Parser-1944"><span class="linenos">1944</span></a> <span class="n">outer_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> -</span><span id="Parser-1945"><a href="#Parser-1945"><span class="linenos">1945</span></a> <span class="n">cross_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> -</span><span id="Parser-1946"><a href="#Parser-1946"><span class="linenos">1946</span></a> -</span><span id="Parser-1947"><a href="#Parser-1947"><span class="linenos">1947</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> -</span><span id="Parser-1948"><a href="#Parser-1948"><span class="linenos">1948</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1949"><a href="#Parser-1949"><span class="linenos">1949</span></a> <span class="n">view</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-1950"><a href="#Parser-1950"><span class="linenos">1950</span></a> <span class="n">outer</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">cross_apply</span> -</span><span id="Parser-1951"><a href="#Parser-1951"><span class="linenos">1951</span></a> <span class="k">elif</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">LATERAL</span><span class="p">):</span> -</span><span id="Parser-1952"><a href="#Parser-1952"><span class="linenos">1952</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-1953"><a href="#Parser-1953"><span class="linenos">1953</span></a> <span class="n">view</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">VIEW</span><span class="p">)</span> -</span><span id="Parser-1954"><a href="#Parser-1954"><span class="linenos">1954</span></a> <span class="n">outer</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">OUTER</span><span class="p">)</span> -</span><span id="Parser-1955"><a href="#Parser-1955"><span class="linenos">1955</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1956"><a href="#Parser-1956"><span class="linenos">1956</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-1957"><a href="#Parser-1957"><span class="linenos">1957</span></a> -</span><span id="Parser-1958"><a href="#Parser-1958"><span class="linenos">1958</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="Parser-1959"><a href="#Parser-1959"><span class="linenos">1959</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1960"><a href="#Parser-1960"><span class="linenos">1960</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> -</span><span id="Parser-1961"><a href="#Parser-1961"><span class="linenos">1961</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">(</span> -</span><span id="Parser-1962"><a href="#Parser-1962"><span class="linenos">1962</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1963"><a href="#Parser-1963"><span class="linenos">1963</span></a> <span class="n">expression</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> -</span><span id="Parser-1964"><a href="#Parser-1964"><span class="linenos">1964</span></a> <span class="p">)</span> -</span><span id="Parser-1965"><a href="#Parser-1965"><span class="linenos">1965</span></a> -</span><span id="Parser-1966"><a href="#Parser-1966"><span class="linenos">1966</span></a> <span class="n">table_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="Parser-1967"><a href="#Parser-1967"><span class="linenos">1967</span></a> -</span><span id="Parser-1968"><a href="#Parser-1968"><span class="linenos">1968</span></a> <span class="k">if</span> <span class="n">view</span><span class="p">:</span> -</span><span id="Parser-1969"><a href="#Parser-1969"><span class="linenos">1969</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-1970"><a href="#Parser-1970"><span class="linenos">1970</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> <span class="k">if</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">ALIAS</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span> -</span><span id="Parser-1971"><a href="#Parser-1971"><span class="linenos">1971</span></a> <span class="n">table_alias</span> <span class="o">=</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">TableAlias</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">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> -</span><span id="Parser-1972"><a href="#Parser-1972"><span class="linenos">1972</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-1973"><a href="#Parser-1973"><span class="linenos">1973</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> -</span><span id="Parser-1974"><a href="#Parser-1974"><span class="linenos">1974</span></a> -</span><span id="Parser-1975"><a href="#Parser-1975"><span class="linenos">1975</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-1976"><a href="#Parser-1976"><span class="linenos">1976</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">,</span> -</span><span id="Parser-1977"><a href="#Parser-1977"><span class="linenos">1977</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-1978"><a href="#Parser-1978"><span class="linenos">1978</span></a> <span class="n">view</span><span class="o">=</span><span class="n">view</span><span class="p">,</span> -</span><span id="Parser-1979"><a href="#Parser-1979"><span class="linenos">1979</span></a> <span class="n">outer</span><span class="o">=</span><span class="n">outer</span><span class="p">,</span> -</span><span id="Parser-1980"><a href="#Parser-1980"><span class="linenos">1980</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> -</span><span id="Parser-1981"><a href="#Parser-1981"><span class="linenos">1981</span></a> <span class="p">)</span> -</span><span id="Parser-1982"><a href="#Parser-1982"><span class="linenos">1982</span></a> -</span><span id="Parser-1983"><a href="#Parser-1983"><span class="linenos">1983</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> -</span><span id="Parser-1984"><a href="#Parser-1984"><span class="linenos">1984</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">Join</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="kc">None</span> <span class="k">if</span> <span class="n">cross_apply</span> <span class="k">else</span> <span class="s2">"LEFT"</span><span class="p">)</span> -</span><span id="Parser-1985"><a href="#Parser-1985"><span class="linenos">1985</span></a> -</span><span id="Parser-1986"><a href="#Parser-1986"><span class="linenos">1986</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Parser-1927"><a href="#Parser-1927"><span class="linenos">1927</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="Parser-1928"><a href="#Parser-1928"><span class="linenos">1928</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> +</span><span id="Parser-1929"><a href="#Parser-1929"><span class="linenos">1929</span></a> <span class="n">paren</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Parser-1930"><a href="#Parser-1930"><span class="linenos">1930</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">:</span> +</span><span id="Parser-1931"><a href="#Parser-1931"><span class="linenos">1931</span></a> <span class="n">paren</span> <span class="o">-=</span> <span class="mi">1</span> +</span><span id="Parser-1932"><a href="#Parser-1932"><span class="linenos">1932</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-1933"><a href="#Parser-1933"><span class="linenos">1933</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-1934"><a href="#Parser-1934"><span class="linenos">1934</span></a> <span class="k">if</span> <span class="n">paren</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> +</span><span id="Parser-1935"><a href="#Parser-1935"><span class="linenos">1935</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">)</span> +</span><span id="Parser-1936"><a href="#Parser-1936"><span class="linenos">1936</span></a> <span class="n">pattern</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="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="n">end</span><span class="p">))</span> +</span><span id="Parser-1937"><a href="#Parser-1937"><span class="linenos">1937</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1938"><a href="#Parser-1938"><span class="linenos">1938</span></a> <span class="n">pattern</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1939"><a href="#Parser-1939"><span class="linenos">1939</span></a> +</span><span id="Parser-1940"><a href="#Parser-1940"><span class="linenos">1940</span></a> <span class="n">define</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-1941"><a href="#Parser-1941"><span class="linenos">1941</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFINE"</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-1942"><a href="#Parser-1942"><span class="linenos">1942</span></a> <span class="p">)</span> +</span><span id="Parser-1943"><a href="#Parser-1943"><span class="linenos">1943</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-1944"><a href="#Parser-1944"><span class="linenos">1944</span></a> +</span><span id="Parser-1945"><a href="#Parser-1945"><span class="linenos">1945</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><span id="Parser-1946"><a href="#Parser-1946"><span class="linenos">1946</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">MatchRecognize</span><span class="p">,</span> +</span><span id="Parser-1947"><a href="#Parser-1947"><span class="linenos">1947</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> +</span><span id="Parser-1948"><a href="#Parser-1948"><span class="linenos">1948</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> +</span><span id="Parser-1949"><a href="#Parser-1949"><span class="linenos">1949</span></a> <span class="n">measures</span><span class="o">=</span><span class="n">measures</span><span class="p">,</span> +</span><span id="Parser-1950"><a href="#Parser-1950"><span class="linenos">1950</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> +</span><span id="Parser-1951"><a href="#Parser-1951"><span class="linenos">1951</span></a> <span class="n">after</span><span class="o">=</span><span class="n">after</span><span class="p">,</span> +</span><span id="Parser-1952"><a href="#Parser-1952"><span class="linenos">1952</span></a> <span class="n">pattern</span><span class="o">=</span><span class="n">pattern</span><span class="p">,</span> +</span><span id="Parser-1953"><a href="#Parser-1953"><span class="linenos">1953</span></a> <span class="n">define</span><span class="o">=</span><span class="n">define</span><span class="p">,</span> +</span><span id="Parser-1954"><a href="#Parser-1954"><span class="linenos">1954</span></a> <span class="p">)</span> +</span><span id="Parser-1955"><a href="#Parser-1955"><span class="linenos">1955</span></a> +</span><span id="Parser-1956"><a href="#Parser-1956"><span class="linenos">1956</span></a> <span class="k">def</span> <span class="nf">_parse_lateral</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-1957"><a href="#Parser-1957"><span class="linenos">1957</span></a> <span class="n">outer_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> +</span><span id="Parser-1958"><a href="#Parser-1958"><span class="linenos">1958</span></a> <span class="n">cross_apply</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">CROSS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">)</span> +</span><span id="Parser-1959"><a href="#Parser-1959"><span class="linenos">1959</span></a> +</span><span id="Parser-1960"><a href="#Parser-1960"><span class="linenos">1960</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> +</span><span id="Parser-1961"><a href="#Parser-1961"><span class="linenos">1961</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1962"><a href="#Parser-1962"><span class="linenos">1962</span></a> <span class="n">view</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-1963"><a href="#Parser-1963"><span class="linenos">1963</span></a> <span class="n">outer</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">cross_apply</span> +</span><span id="Parser-1964"><a href="#Parser-1964"><span class="linenos">1964</span></a> <span class="k">elif</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">LATERAL</span><span class="p">):</span> +</span><span id="Parser-1965"><a href="#Parser-1965"><span class="linenos">1965</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-1966"><a href="#Parser-1966"><span class="linenos">1966</span></a> <span class="n">view</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">VIEW</span><span class="p">)</span> +</span><span id="Parser-1967"><a href="#Parser-1967"><span class="linenos">1967</span></a> <span class="n">outer</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">OUTER</span><span class="p">)</span> +</span><span id="Parser-1968"><a href="#Parser-1968"><span class="linenos">1968</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1969"><a href="#Parser-1969"><span class="linenos">1969</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-1970"><a href="#Parser-1970"><span class="linenos">1970</span></a> +</span><span id="Parser-1971"><a href="#Parser-1971"><span class="linenos">1971</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="Parser-1972"><a href="#Parser-1972"><span class="linenos">1972</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1973"><a href="#Parser-1973"><span class="linenos">1973</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> +</span><span id="Parser-1974"><a href="#Parser-1974"><span class="linenos">1974</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">(</span> +</span><span id="Parser-1975"><a href="#Parser-1975"><span class="linenos">1975</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1976"><a href="#Parser-1976"><span class="linenos">1976</span></a> <span class="n">expression</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">),</span> +</span><span id="Parser-1977"><a href="#Parser-1977"><span class="linenos">1977</span></a> <span class="p">)</span> +</span><span id="Parser-1978"><a href="#Parser-1978"><span class="linenos">1978</span></a> +</span><span id="Parser-1979"><a href="#Parser-1979"><span class="linenos">1979</span></a> <span class="n">table_alias</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="Parser-1980"><a href="#Parser-1980"><span class="linenos">1980</span></a> +</span><span id="Parser-1981"><a href="#Parser-1981"><span class="linenos">1981</span></a> <span class="k">if</span> <span class="n">view</span><span class="p">:</span> +</span><span id="Parser-1982"><a href="#Parser-1982"><span class="linenos">1982</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-1983"><a href="#Parser-1983"><span class="linenos">1983</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> <span class="k">if</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">ALIAS</span><span class="p">)</span> <span class="k">else</span> <span class="p">[]</span> +</span><span id="Parser-1984"><a href="#Parser-1984"><span class="linenos">1984</span></a> <span class="n">table_alias</span> <span class="o">=</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">TableAlias</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">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">)</span> +</span><span id="Parser-1985"><a href="#Parser-1985"><span class="linenos">1985</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-1986"><a href="#Parser-1986"><span class="linenos">1986</span></a> <span class="n">table_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> </span><span id="Parser-1987"><a href="#Parser-1987"><span class="linenos">1987</span></a> -</span><span id="Parser-1988"><a href="#Parser-1988"><span class="linenos">1988</span></a> <span class="k">def</span> <span class="nf">_parse_join_side_and_kind</span><span class="p">(</span> -</span><span id="Parser-1989"><a href="#Parser-1989"><span class="linenos">1989</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser-1990"><a href="#Parser-1990"><span class="linenos">1990</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]]:</span> -</span><span id="Parser-1991"><a href="#Parser-1991"><span class="linenos">1991</span></a> <span class="k">return</span> <span class="p">(</span> -</span><span id="Parser-1992"><a href="#Parser-1992"><span class="linenos">1992</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">NATURAL</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> -</span><span id="Parser-1993"><a href="#Parser-1993"><span class="linenos">1993</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_SIDES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> -</span><span id="Parser-1994"><a href="#Parser-1994"><span class="linenos">1994</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_KINDS</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> -</span><span id="Parser-1995"><a href="#Parser-1995"><span class="linenos">1995</span></a> <span class="p">)</span> -</span><span id="Parser-1996"><a href="#Parser-1996"><span class="linenos">1996</span></a> -</span><span id="Parser-1997"><a href="#Parser-1997"><span class="linenos">1997</span></a> <span class="k">def</span> <span class="nf">_parse_join</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_join_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-1998"><a href="#Parser-1998"><span class="linenos">1998</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join_side_and_kind</span><span class="p">()</span> -</span><span id="Parser-1999"><a href="#Parser-1999"><span class="linenos">1999</span></a> -</span><span id="Parser-2000"><a href="#Parser-2000"><span class="linenos">2000</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_join_token</span> <span class="ow">and</span> <span class="ow">not</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">JOIN</span><span class="p">):</span> -</span><span id="Parser-2001"><a href="#Parser-2001"><span class="linenos">2001</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2002"><a href="#Parser-2002"><span class="linenos">2002</span></a> -</span><span id="Parser-2003"><a href="#Parser-2003"><span class="linenos">2003</span></a> <span class="n">kwargs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span> -</span><span id="Parser-2004"><a href="#Parser-2004"><span class="linenos">2004</span></a> <span class="nb">str</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">|</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-2005"><a href="#Parser-2005"><span class="linenos">2005</span></a> <span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()}</span> -</span><span id="Parser-2006"><a href="#Parser-2006"><span class="linenos">2006</span></a> -</span><span id="Parser-2007"><a href="#Parser-2007"><span class="linenos">2007</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> -</span><span id="Parser-2008"><a href="#Parser-2008"><span class="linenos">2008</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"natural"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-2009"><a href="#Parser-2009"><span class="linenos">2009</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> -</span><span id="Parser-2010"><a href="#Parser-2010"><span class="linenos">2010</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"side"</span><span class="p">]</span> <span class="o">=</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-2011"><a href="#Parser-2011"><span class="linenos">2011</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Parser-2012"><a href="#Parser-2012"><span class="linenos">2012</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> <span class="o">=</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-2013"><a href="#Parser-2013"><span class="linenos">2013</span></a> -</span><span id="Parser-2014"><a href="#Parser-2014"><span class="linenos">2014</span></a> <span class="k">if</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">ON</span><span class="p">):</span> -</span><span id="Parser-2015"><a href="#Parser-2015"><span class="linenos">2015</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-2016"><a href="#Parser-2016"><span class="linenos">2016</span></a> <span class="k">elif</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">USING</span><span class="p">):</span> -</span><span id="Parser-2017"><a href="#Parser-2017"><span class="linenos">2017</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"using"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="Parser-2018"><a href="#Parser-2018"><span class="linenos">2018</span></a> -</span><span id="Parser-2019"><a href="#Parser-2019"><span class="linenos">2019</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">Join</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-2020"><a href="#Parser-2020"><span class="linenos">2020</span></a> -</span><span id="Parser-2021"><a href="#Parser-2021"><span class="linenos">2021</span></a> <span class="k">def</span> <span class="nf">_parse_index</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2022"><a href="#Parser-2022"><span class="linenos">2022</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-2023"><a href="#Parser-2023"><span class="linenos">2023</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">ON</span><span class="p">)</span> -</span><span id="Parser-2024"><a href="#Parser-2024"><span class="linenos">2024</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">TABLE</span><span class="p">)</span> <span class="c1"># hive</span> -</span><span id="Parser-2025"><a href="#Parser-2025"><span class="linenos">2025</span></a> -</span><span id="Parser-2026"><a href="#Parser-2026"><span class="linenos">2026</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><span id="Parser-2027"><a href="#Parser-2027"><span class="linenos">2027</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> -</span><span id="Parser-2028"><a href="#Parser-2028"><span class="linenos">2028</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> -</span><span id="Parser-2029"><a href="#Parser-2029"><span class="linenos">2029</span></a> <span class="n">table</span><span class="o">=</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">Table</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()),</span> -</span><span id="Parser-2030"><a href="#Parser-2030"><span class="linenos">2030</span></a> <span class="n">columns</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">(),</span> -</span><span id="Parser-2031"><a href="#Parser-2031"><span class="linenos">2031</span></a> <span class="p">)</span> -</span><span id="Parser-2032"><a href="#Parser-2032"><span class="linenos">2032</span></a> -</span><span id="Parser-2033"><a href="#Parser-2033"><span class="linenos">2033</span></a> <span class="k">def</span> <span class="nf">_parse_create_table_index</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2034"><a href="#Parser-2034"><span class="linenos">2034</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> -</span><span id="Parser-2035"><a href="#Parser-2035"><span class="linenos">2035</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">)</span> -</span><span id="Parser-2036"><a href="#Parser-2036"><span class="linenos">2036</span></a> <span class="n">amp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AMP"</span><span class="p">)</span> -</span><span id="Parser-2037"><a href="#Parser-2037"><span class="linenos">2037</span></a> <span class="k">if</span> <span class="ow">not</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">INDEX</span><span class="p">):</span> -</span><span id="Parser-2038"><a href="#Parser-2038"><span class="linenos">2038</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2039"><a href="#Parser-2039"><span class="linenos">2039</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-2040"><a href="#Parser-2040"><span class="linenos">2040</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2041"><a href="#Parser-2041"><span class="linenos">2041</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-2042"><a href="#Parser-2042"><span class="linenos">2042</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-2043"><a href="#Parser-2043"><span class="linenos">2043</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><span id="Parser-2044"><a href="#Parser-2044"><span class="linenos">2044</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> -</span><span id="Parser-2045"><a href="#Parser-2045"><span class="linenos">2045</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> -</span><span id="Parser-2046"><a href="#Parser-2046"><span class="linenos">2046</span></a> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">,</span> -</span><span id="Parser-2047"><a href="#Parser-2047"><span class="linenos">2047</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> -</span><span id="Parser-2048"><a href="#Parser-2048"><span class="linenos">2048</span></a> <span class="n">primary</span><span class="o">=</span><span class="n">primary</span><span class="p">,</span> -</span><span id="Parser-2049"><a href="#Parser-2049"><span class="linenos">2049</span></a> <span class="n">amp</span><span class="o">=</span><span class="n">amp</span><span class="p">,</span> -</span><span id="Parser-2050"><a href="#Parser-2050"><span class="linenos">2050</span></a> <span class="p">)</span> -</span><span id="Parser-2051"><a href="#Parser-2051"><span class="linenos">2051</span></a> -</span><span id="Parser-2052"><a href="#Parser-2052"><span class="linenos">2052</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2053"><a href="#Parser-2053"><span class="linenos">2053</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2054"><a href="#Parser-2054"><span class="linenos">2054</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2055"><a href="#Parser-2055"><span class="linenos">2055</span></a> <span class="n">table</span> <span class="o">=</span> <span class="p">(</span><span class="ow">not</span> <span class="n">schema</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">())</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-2056"><a href="#Parser-2056"><span class="linenos">2056</span></a> -</span><span id="Parser-2057"><a href="#Parser-2057"><span class="linenos">2057</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> -</span><span id="Parser-2058"><a href="#Parser-2058"><span class="linenos">2058</span></a> <span class="k">if</span> <span class="n">catalog</span><span class="p">:</span> -</span><span id="Parser-2059"><a href="#Parser-2059"><span class="linenos">2059</span></a> <span class="c1"># This allows nesting the table in arbitrarily many dot expressions if needed</span> -</span><span id="Parser-2060"><a href="#Parser-2060"><span class="linenos">2060</span></a> <span class="n">table</span> <span class="o">=</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">Dot</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">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> -</span><span id="Parser-2061"><a href="#Parser-2061"><span class="linenos">2061</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2062"><a href="#Parser-2062"><span class="linenos">2062</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="n">db</span> -</span><span id="Parser-2063"><a href="#Parser-2063"><span class="linenos">2063</span></a> <span class="n">db</span> <span class="o">=</span> <span class="n">table</span> -</span><span id="Parser-2064"><a href="#Parser-2064"><span class="linenos">2064</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-2065"><a href="#Parser-2065"><span class="linenos">2065</span></a> -</span><span id="Parser-2066"><a href="#Parser-2066"><span class="linenos">2066</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> -</span><span id="Parser-2067"><a href="#Parser-2067"><span class="linenos">2067</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected table name but got </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser-1988"><a href="#Parser-1988"><span class="linenos">1988</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-1989"><a href="#Parser-1989"><span class="linenos">1989</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Lateral</span><span class="p">,</span> +</span><span id="Parser-1990"><a href="#Parser-1990"><span class="linenos">1990</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-1991"><a href="#Parser-1991"><span class="linenos">1991</span></a> <span class="n">view</span><span class="o">=</span><span class="n">view</span><span class="p">,</span> +</span><span id="Parser-1992"><a href="#Parser-1992"><span class="linenos">1992</span></a> <span class="n">outer</span><span class="o">=</span><span class="n">outer</span><span class="p">,</span> +</span><span id="Parser-1993"><a href="#Parser-1993"><span class="linenos">1993</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">table_alias</span><span class="p">,</span> +</span><span id="Parser-1994"><a href="#Parser-1994"><span class="linenos">1994</span></a> <span class="p">)</span> +</span><span id="Parser-1995"><a href="#Parser-1995"><span class="linenos">1995</span></a> +</span><span id="Parser-1996"><a href="#Parser-1996"><span class="linenos">1996</span></a> <span class="k">if</span> <span class="n">outer_apply</span> <span class="ow">or</span> <span class="n">cross_apply</span><span class="p">:</span> +</span><span id="Parser-1997"><a href="#Parser-1997"><span class="linenos">1997</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">Join</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="kc">None</span> <span class="k">if</span> <span class="n">cross_apply</span> <span class="k">else</span> <span class="s2">"LEFT"</span><span class="p">)</span> +</span><span id="Parser-1998"><a href="#Parser-1998"><span class="linenos">1998</span></a> +</span><span id="Parser-1999"><a href="#Parser-1999"><span class="linenos">1999</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Parser-2000"><a href="#Parser-2000"><span class="linenos">2000</span></a> +</span><span id="Parser-2001"><a href="#Parser-2001"><span class="linenos">2001</span></a> <span class="k">def</span> <span class="nf">_parse_join_side_and_kind</span><span class="p">(</span> +</span><span id="Parser-2002"><a href="#Parser-2002"><span class="linenos">2002</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser-2003"><a href="#Parser-2003"><span class="linenos">2003</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Tuple</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">],</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]]:</span> +</span><span id="Parser-2004"><a href="#Parser-2004"><span class="linenos">2004</span></a> <span class="k">return</span> <span class="p">(</span> +</span><span id="Parser-2005"><a href="#Parser-2005"><span class="linenos">2005</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">NATURAL</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> +</span><span id="Parser-2006"><a href="#Parser-2006"><span class="linenos">2006</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_SIDES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> +</span><span id="Parser-2007"><a href="#Parser-2007"><span class="linenos">2007</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">JOIN_KINDS</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">,</span> +</span><span id="Parser-2008"><a href="#Parser-2008"><span class="linenos">2008</span></a> <span class="p">)</span> +</span><span id="Parser-2009"><a href="#Parser-2009"><span class="linenos">2009</span></a> +</span><span id="Parser-2010"><a href="#Parser-2010"><span class="linenos">2010</span></a> <span class="k">def</span> <span class="nf">_parse_join</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_join_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2011"><a href="#Parser-2011"><span class="linenos">2011</span></a> <span class="n">natural</span><span class="p">,</span> <span class="n">side</span><span class="p">,</span> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_join_side_and_kind</span><span class="p">()</span> +</span><span id="Parser-2012"><a href="#Parser-2012"><span class="linenos">2012</span></a> +</span><span id="Parser-2013"><a href="#Parser-2013"><span class="linenos">2013</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_join_token</span> <span class="ow">and</span> <span class="ow">not</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">JOIN</span><span class="p">):</span> +</span><span id="Parser-2014"><a href="#Parser-2014"><span class="linenos">2014</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2015"><a href="#Parser-2015"><span class="linenos">2015</span></a> +</span><span id="Parser-2016"><a href="#Parser-2016"><span class="linenos">2016</span></a> <span class="n">kwargs</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span> +</span><span id="Parser-2017"><a href="#Parser-2017"><span class="linenos">2017</span></a> <span class="nb">str</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">|</span> <span class="nb">bool</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-2018"><a href="#Parser-2018"><span class="linenos">2018</span></a> <span class="p">]</span> <span class="o">=</span> <span class="p">{</span><span class="s2">"this"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()}</span> +</span><span id="Parser-2019"><a href="#Parser-2019"><span class="linenos">2019</span></a> +</span><span id="Parser-2020"><a href="#Parser-2020"><span class="linenos">2020</span></a> <span class="k">if</span> <span class="n">natural</span><span class="p">:</span> +</span><span id="Parser-2021"><a href="#Parser-2021"><span class="linenos">2021</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"natural"</span><span class="p">]</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-2022"><a href="#Parser-2022"><span class="linenos">2022</span></a> <span class="k">if</span> <span class="n">side</span><span class="p">:</span> +</span><span id="Parser-2023"><a href="#Parser-2023"><span class="linenos">2023</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"side"</span><span class="p">]</span> <span class="o">=</span> <span class="n">side</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-2024"><a href="#Parser-2024"><span class="linenos">2024</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Parser-2025"><a href="#Parser-2025"><span class="linenos">2025</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"kind"</span><span class="p">]</span> <span class="o">=</span> <span class="n">kind</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-2026"><a href="#Parser-2026"><span class="linenos">2026</span></a> +</span><span id="Parser-2027"><a href="#Parser-2027"><span class="linenos">2027</span></a> <span class="k">if</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">ON</span><span class="p">):</span> +</span><span id="Parser-2028"><a href="#Parser-2028"><span class="linenos">2028</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-2029"><a href="#Parser-2029"><span class="linenos">2029</span></a> <span class="k">elif</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">USING</span><span class="p">):</span> +</span><span id="Parser-2030"><a href="#Parser-2030"><span class="linenos">2030</span></a> <span class="n">kwargs</span><span class="p">[</span><span class="s2">"using"</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="Parser-2031"><a href="#Parser-2031"><span class="linenos">2031</span></a> +</span><span id="Parser-2032"><a href="#Parser-2032"><span class="linenos">2032</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">Join</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-2033"><a href="#Parser-2033"><span class="linenos">2033</span></a> +</span><span id="Parser-2034"><a href="#Parser-2034"><span class="linenos">2034</span></a> <span class="k">def</span> <span class="nf">_parse_index</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2035"><a href="#Parser-2035"><span class="linenos">2035</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-2036"><a href="#Parser-2036"><span class="linenos">2036</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">ON</span><span class="p">)</span> +</span><span id="Parser-2037"><a href="#Parser-2037"><span class="linenos">2037</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">TABLE</span><span class="p">)</span> <span class="c1"># hive</span> +</span><span id="Parser-2038"><a href="#Parser-2038"><span class="linenos">2038</span></a> +</span><span id="Parser-2039"><a href="#Parser-2039"><span class="linenos">2039</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><span id="Parser-2040"><a href="#Parser-2040"><span class="linenos">2040</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> +</span><span id="Parser-2041"><a href="#Parser-2041"><span class="linenos">2041</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> +</span><span id="Parser-2042"><a href="#Parser-2042"><span class="linenos">2042</span></a> <span class="n">table</span><span class="o">=</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">Table</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()),</span> +</span><span id="Parser-2043"><a href="#Parser-2043"><span class="linenos">2043</span></a> <span class="n">columns</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">(),</span> +</span><span id="Parser-2044"><a href="#Parser-2044"><span class="linenos">2044</span></a> <span class="p">)</span> +</span><span id="Parser-2045"><a href="#Parser-2045"><span class="linenos">2045</span></a> +</span><span id="Parser-2046"><a href="#Parser-2046"><span class="linenos">2046</span></a> <span class="k">def</span> <span class="nf">_parse_create_table_index</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2047"><a href="#Parser-2047"><span class="linenos">2047</span></a> <span class="n">unique</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">UNIQUE</span><span class="p">)</span> +</span><span id="Parser-2048"><a href="#Parser-2048"><span class="linenos">2048</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"PRIMARY"</span><span class="p">)</span> +</span><span id="Parser-2049"><a href="#Parser-2049"><span class="linenos">2049</span></a> <span class="n">amp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AMP"</span><span class="p">)</span> +</span><span id="Parser-2050"><a href="#Parser-2050"><span class="linenos">2050</span></a> <span class="k">if</span> <span class="ow">not</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">INDEX</span><span class="p">):</span> +</span><span id="Parser-2051"><a href="#Parser-2051"><span class="linenos">2051</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2052"><a href="#Parser-2052"><span class="linenos">2052</span></a> <span class="n">index</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-2053"><a href="#Parser-2053"><span class="linenos">2053</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2054"><a href="#Parser-2054"><span class="linenos">2054</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-2055"><a href="#Parser-2055"><span class="linenos">2055</span></a> <span class="n">columns</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-2056"><a href="#Parser-2056"><span class="linenos">2056</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><span id="Parser-2057"><a href="#Parser-2057"><span class="linenos">2057</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Index</span><span class="p">,</span> +</span><span id="Parser-2058"><a href="#Parser-2058"><span class="linenos">2058</span></a> <span class="n">this</span><span class="o">=</span><span class="n">index</span><span class="p">,</span> +</span><span id="Parser-2059"><a href="#Parser-2059"><span class="linenos">2059</span></a> <span class="n">columns</span><span class="o">=</span><span class="n">columns</span><span class="p">,</span> +</span><span id="Parser-2060"><a href="#Parser-2060"><span class="linenos">2060</span></a> <span class="n">unique</span><span class="o">=</span><span class="n">unique</span><span class="p">,</span> +</span><span id="Parser-2061"><a href="#Parser-2061"><span class="linenos">2061</span></a> <span class="n">primary</span><span class="o">=</span><span class="n">primary</span><span class="p">,</span> +</span><span id="Parser-2062"><a href="#Parser-2062"><span class="linenos">2062</span></a> <span class="n">amp</span><span class="o">=</span><span class="n">amp</span><span class="p">,</span> +</span><span id="Parser-2063"><a href="#Parser-2063"><span class="linenos">2063</span></a> <span class="p">)</span> +</span><span id="Parser-2064"><a href="#Parser-2064"><span class="linenos">2064</span></a> +</span><span id="Parser-2065"><a href="#Parser-2065"><span class="linenos">2065</span></a> <span class="k">def</span> <span class="nf">_parse_table_parts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <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 class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2066"><a href="#Parser-2066"><span class="linenos">2066</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2067"><a href="#Parser-2067"><span class="linenos">2067</span></a> <span class="n">db</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="Parser-2068"><a href="#Parser-2068"><span class="linenos">2068</span></a> -</span><span id="Parser-2069"><a href="#Parser-2069"><span class="linenos">2069</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><span id="Parser-2070"><a href="#Parser-2070"><span class="linenos">2070</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">()</span> -</span><span id="Parser-2071"><a href="#Parser-2071"><span class="linenos">2071</span></a> <span class="p">)</span> -</span><span id="Parser-2072"><a href="#Parser-2072"><span class="linenos">2072</span></a> -</span><span id="Parser-2073"><a href="#Parser-2073"><span class="linenos">2073</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> -</span><span id="Parser-2074"><a href="#Parser-2074"><span class="linenos">2074</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="Parser-2075"><a href="#Parser-2075"><span class="linenos">2075</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="Parser-2076"><a href="#Parser-2076"><span class="linenos">2076</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> -</span><span id="Parser-2077"><a href="#Parser-2077"><span class="linenos">2077</span></a> -</span><span id="Parser-2078"><a href="#Parser-2078"><span class="linenos">2078</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> -</span><span id="Parser-2079"><a href="#Parser-2079"><span class="linenos">2079</span></a> <span class="k">return</span> <span class="n">lateral</span> -</span><span id="Parser-2080"><a href="#Parser-2080"><span class="linenos">2080</span></a> -</span><span id="Parser-2081"><a href="#Parser-2081"><span class="linenos">2081</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> -</span><span id="Parser-2082"><a href="#Parser-2082"><span class="linenos">2082</span></a> -</span><span id="Parser-2083"><a href="#Parser-2083"><span class="linenos">2083</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="Parser-2084"><a href="#Parser-2084"><span class="linenos">2084</span></a> <span class="k">return</span> <span class="n">unnest</span> -</span><span id="Parser-2085"><a href="#Parser-2085"><span class="linenos">2085</span></a> -</span><span id="Parser-2086"><a href="#Parser-2086"><span class="linenos">2086</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_derived_table_values</span><span class="p">()</span> -</span><span id="Parser-2087"><a href="#Parser-2087"><span class="linenos">2087</span></a> -</span><span id="Parser-2088"><a href="#Parser-2088"><span class="linenos">2088</span></a> <span class="k">if</span> <span class="n">values</span><span class="p">:</span> -</span><span id="Parser-2089"><a href="#Parser-2089"><span class="linenos">2089</span></a> <span class="k">return</span> <span class="n">values</span> +</span><span id="Parser-2069"><a href="#Parser-2069"><span class="linenos">2069</span></a> <span class="n">table</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-2070"><a href="#Parser-2070"><span class="linenos">2070</span></a> <span class="p">(</span><span class="ow">not</span> <span class="n">schema</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">())</span> +</span><span id="Parser-2071"><a href="#Parser-2071"><span class="linenos">2071</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-2072"><a href="#Parser-2072"><span class="linenos">2072</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string_as_identifier</span><span class="p">()</span> +</span><span id="Parser-2073"><a href="#Parser-2073"><span class="linenos">2073</span></a> <span class="p">)</span> +</span><span id="Parser-2074"><a href="#Parser-2074"><span class="linenos">2074</span></a> +</span><span id="Parser-2075"><a href="#Parser-2075"><span class="linenos">2075</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> +</span><span id="Parser-2076"><a href="#Parser-2076"><span class="linenos">2076</span></a> <span class="k">if</span> <span class="n">catalog</span><span class="p">:</span> +</span><span id="Parser-2077"><a href="#Parser-2077"><span class="linenos">2077</span></a> <span class="c1"># This allows nesting the table in arbitrarily many dot expressions if needed</span> +</span><span id="Parser-2078"><a href="#Parser-2078"><span class="linenos">2078</span></a> <span class="n">table</span> <span class="o">=</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">Dot</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">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> +</span><span id="Parser-2079"><a href="#Parser-2079"><span class="linenos">2079</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2080"><a href="#Parser-2080"><span class="linenos">2080</span></a> <span class="n">catalog</span> <span class="o">=</span> <span class="n">db</span> +</span><span id="Parser-2081"><a href="#Parser-2081"><span class="linenos">2081</span></a> <span class="n">db</span> <span class="o">=</span> <span class="n">table</span> +</span><span id="Parser-2082"><a href="#Parser-2082"><span class="linenos">2082</span></a> <span class="n">table</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-2083"><a href="#Parser-2083"><span class="linenos">2083</span></a> +</span><span id="Parser-2084"><a href="#Parser-2084"><span class="linenos">2084</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">table</span><span class="p">:</span> +</span><span id="Parser-2085"><a href="#Parser-2085"><span class="linenos">2085</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Expected table name but got </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser-2086"><a href="#Parser-2086"><span class="linenos">2086</span></a> +</span><span id="Parser-2087"><a href="#Parser-2087"><span class="linenos">2087</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><span id="Parser-2088"><a href="#Parser-2088"><span class="linenos">2088</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Table</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">db</span><span class="o">=</span><span class="n">db</span><span class="p">,</span> <span class="n">catalog</span><span class="o">=</span><span class="n">catalog</span><span class="p">,</span> <span class="n">pivots</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">()</span> +</span><span id="Parser-2089"><a href="#Parser-2089"><span class="linenos">2089</span></a> <span class="p">)</span> </span><span id="Parser-2090"><a href="#Parser-2090"><span class="linenos">2090</span></a> -</span><span id="Parser-2091"><a href="#Parser-2091"><span class="linenos">2091</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-2092"><a href="#Parser-2092"><span class="linenos">2092</span></a> -</span><span id="Parser-2093"><a href="#Parser-2093"><span class="linenos">2093</span></a> <span class="k">if</span> <span class="n">subquery</span><span class="p">:</span> -</span><span id="Parser-2094"><a href="#Parser-2094"><span class="linenos">2094</span></a> <span class="k">return</span> <span class="n">subquery</span> +</span><span id="Parser-2091"><a href="#Parser-2091"><span class="linenos">2091</span></a> <span class="k">def</span> <span class="nf">_parse_table</span><span class="p">(</span> +</span><span id="Parser-2092"><a href="#Parser-2092"><span class="linenos">2092</span></a> <span class="bp">self</span><span class="p">,</span> <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 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><span id="Parser-2093"><a href="#Parser-2093"><span class="linenos">2093</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="Parser-2094"><a href="#Parser-2094"><span class="linenos">2094</span></a> <span class="n">lateral</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_lateral</span><span class="p">()</span> </span><span id="Parser-2095"><a href="#Parser-2095"><span class="linenos">2095</span></a> -</span><span id="Parser-2096"><a href="#Parser-2096"><span class="linenos">2096</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> -</span><span id="Parser-2097"><a href="#Parser-2097"><span class="linenos">2097</span></a> -</span><span id="Parser-2098"><a href="#Parser-2098"><span class="linenos">2098</span></a> <span class="k">if</span> <span class="n">schema</span><span class="p">:</span> -</span><span id="Parser-2099"><a href="#Parser-2099"><span class="linenos">2099</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2096"><a href="#Parser-2096"><span class="linenos">2096</span></a> <span class="k">if</span> <span class="n">lateral</span><span class="p">:</span> +</span><span id="Parser-2097"><a href="#Parser-2097"><span class="linenos">2097</span></a> <span class="k">return</span> <span class="n">lateral</span> +</span><span id="Parser-2098"><a href="#Parser-2098"><span class="linenos">2098</span></a> +</span><span id="Parser-2099"><a href="#Parser-2099"><span class="linenos">2099</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> </span><span id="Parser-2100"><a href="#Parser-2100"><span class="linenos">2100</span></a> -</span><span id="Parser-2101"><a href="#Parser-2101"><span class="linenos">2101</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> -</span><span id="Parser-2102"><a href="#Parser-2102"><span class="linenos">2102</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> +</span><span id="Parser-2101"><a href="#Parser-2101"><span class="linenos">2101</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="Parser-2102"><a href="#Parser-2102"><span class="linenos">2102</span></a> <span class="k">return</span> <span class="n">unnest</span> </span><span id="Parser-2103"><a href="#Parser-2103"><span class="linenos">2103</span></a> -</span><span id="Parser-2104"><a href="#Parser-2104"><span class="linenos">2104</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">)</span> +</span><span id="Parser-2104"><a href="#Parser-2104"><span class="linenos">2104</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_derived_table_values</span><span class="p">()</span> </span><span id="Parser-2105"><a href="#Parser-2105"><span class="linenos">2105</span></a> -</span><span id="Parser-2106"><a href="#Parser-2106"><span class="linenos">2106</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="Parser-2107"><a href="#Parser-2107"><span class="linenos">2107</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> +</span><span id="Parser-2106"><a href="#Parser-2106"><span class="linenos">2106</span></a> <span class="k">if</span> <span class="n">values</span><span class="p">:</span> +</span><span id="Parser-2107"><a href="#Parser-2107"><span class="linenos">2107</span></a> <span class="k">return</span> <span class="n">values</span> </span><span id="Parser-2108"><a href="#Parser-2108"><span class="linenos">2108</span></a> -</span><span id="Parser-2109"><a href="#Parser-2109"><span class="linenos">2109</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</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">"pivots"</span><span class="p">):</span> -</span><span id="Parser-2110"><a href="#Parser-2110"><span class="linenos">2110</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"pivots"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">())</span> -</span><span id="Parser-2111"><a href="#Parser-2111"><span class="linenos">2111</span></a> -</span><span id="Parser-2112"><a href="#Parser-2112"><span class="linenos">2112</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2113"><a href="#Parser-2113"><span class="linenos">2113</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> -</span><span id="Parser-2114"><a href="#Parser-2114"><span class="linenos">2114</span></a> <span class="s2">"hints"</span><span class="p">,</span> -</span><span id="Parser-2115"><a href="#Parser-2115"><span class="linenos">2115</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> -</span><span id="Parser-2116"><a href="#Parser-2116"><span class="linenos">2116</span></a> <span class="p">)</span> -</span><span id="Parser-2117"><a href="#Parser-2117"><span class="linenos">2117</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2118"><a href="#Parser-2118"><span class="linenos">2118</span></a> -</span><span id="Parser-2119"><a href="#Parser-2119"><span class="linenos">2119</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> -</span><span id="Parser-2120"><a href="#Parser-2120"><span class="linenos">2120</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> -</span><span id="Parser-2121"><a href="#Parser-2121"><span class="linenos">2121</span></a> -</span><span id="Parser-2122"><a href="#Parser-2122"><span class="linenos">2122</span></a> <span class="k">if</span> <span class="n">table_sample</span><span class="p">:</span> -</span><span id="Parser-2123"><a href="#Parser-2123"><span class="linenos">2123</span></a> <span class="n">table_sample</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">this</span><span class="p">)</span> -</span><span id="Parser-2124"><a href="#Parser-2124"><span class="linenos">2124</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">table_sample</span> +</span><span id="Parser-2109"><a href="#Parser-2109"><span class="linenos">2109</span></a> <span class="n">subquery</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">table</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-2110"><a href="#Parser-2110"><span class="linenos">2110</span></a> +</span><span id="Parser-2111"><a href="#Parser-2111"><span class="linenos">2111</span></a> <span class="k">if</span> <span class="n">subquery</span><span class="p">:</span> +</span><span id="Parser-2112"><a href="#Parser-2112"><span class="linenos">2112</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">subquery</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">"pivots"</span><span class="p">):</span> +</span><span id="Parser-2113"><a href="#Parser-2113"><span class="linenos">2113</span></a> <span class="n">subquery</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"pivots"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">())</span> +</span><span id="Parser-2114"><a href="#Parser-2114"><span class="linenos">2114</span></a> <span class="k">return</span> <span class="n">subquery</span> +</span><span id="Parser-2115"><a href="#Parser-2115"><span class="linenos">2115</span></a> +</span><span id="Parser-2116"><a href="#Parser-2116"><span class="linenos">2116</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_parts</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="n">schema</span><span class="p">)</span> +</span><span id="Parser-2117"><a href="#Parser-2117"><span class="linenos">2117</span></a> +</span><span id="Parser-2118"><a href="#Parser-2118"><span class="linenos">2118</span></a> <span class="k">if</span> <span class="n">schema</span><span class="p">:</span> +</span><span id="Parser-2119"><a href="#Parser-2119"><span class="linenos">2119</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_schema</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2120"><a href="#Parser-2120"><span class="linenos">2120</span></a> +</span><span id="Parser-2121"><a href="#Parser-2121"><span class="linenos">2121</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> +</span><span id="Parser-2122"><a href="#Parser-2122"><span class="linenos">2122</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> +</span><span id="Parser-2123"><a href="#Parser-2123"><span class="linenos">2123</span></a> +</span><span id="Parser-2124"><a href="#Parser-2124"><span class="linenos">2124</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">(</span><span class="n">alias_tokens</span><span class="o">=</span><span class="n">alias_tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">TABLE_ALIAS_TOKENS</span><span class="p">)</span> </span><span id="Parser-2125"><a href="#Parser-2125"><span class="linenos">2125</span></a> -</span><span id="Parser-2126"><a href="#Parser-2126"><span class="linenos">2126</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2127"><a href="#Parser-2127"><span class="linenos">2127</span></a> -</span><span id="Parser-2128"><a href="#Parser-2128"><span class="linenos">2128</span></a> <span class="k">def</span> <span class="nf">_parse_unnest</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2129"><a href="#Parser-2129"><span class="linenos">2129</span></a> <span class="k">if</span> <span class="ow">not</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">UNNEST</span><span class="p">):</span> -</span><span id="Parser-2130"><a href="#Parser-2130"><span class="linenos">2130</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2126"><a href="#Parser-2126"><span class="linenos">2126</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="Parser-2127"><a href="#Parser-2127"><span class="linenos">2127</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="n">alias</span><span class="p">)</span> +</span><span id="Parser-2128"><a href="#Parser-2128"><span class="linenos">2128</span></a> +</span><span id="Parser-2129"><a href="#Parser-2129"><span class="linenos">2129</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">this</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">"pivots"</span><span class="p">):</span> +</span><span id="Parser-2130"><a href="#Parser-2130"><span class="linenos">2130</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"pivots"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivots</span><span class="p">())</span> </span><span id="Parser-2131"><a href="#Parser-2131"><span class="linenos">2131</span></a> -</span><span id="Parser-2132"><a href="#Parser-2132"><span class="linenos">2132</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-2133"><a href="#Parser-2133"><span class="linenos">2133</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="nb">bool</span><span class="p">(</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">WITH</span><span class="p">)</span> <span class="ow">and</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">ORDINALITY</span><span class="p">))</span> -</span><span id="Parser-2134"><a href="#Parser-2134"><span class="linenos">2134</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> -</span><span id="Parser-2135"><a href="#Parser-2135"><span class="linenos">2135</span></a> -</span><span id="Parser-2136"><a href="#Parser-2136"><span class="linenos">2136</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> -</span><span id="Parser-2137"><a href="#Parser-2137"><span class="linenos">2137</span></a> <span class="k">if</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> -</span><span id="Parser-2138"><a href="#Parser-2138"><span class="linenos">2138</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unexpected extra column alias in unnest."</span><span class="p">)</span> -</span><span id="Parser-2139"><a href="#Parser-2139"><span class="linenos">2139</span></a> <span class="n">alias</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[</span><span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">])</span> -</span><span id="Parser-2140"><a href="#Parser-2140"><span class="linenos">2140</span></a> <span class="n">alias</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="kc">None</span><span class="p">)</span> +</span><span id="Parser-2132"><a href="#Parser-2132"><span class="linenos">2132</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2133"><a href="#Parser-2133"><span class="linenos">2133</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span> +</span><span id="Parser-2134"><a href="#Parser-2134"><span class="linenos">2134</span></a> <span class="s2">"hints"</span><span class="p">,</span> +</span><span id="Parser-2135"><a href="#Parser-2135"><span class="linenos">2135</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> +</span><span id="Parser-2136"><a href="#Parser-2136"><span class="linenos">2136</span></a> <span class="p">)</span> +</span><span id="Parser-2137"><a href="#Parser-2137"><span class="linenos">2137</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2138"><a href="#Parser-2138"><span class="linenos">2138</span></a> +</span><span id="Parser-2139"><a href="#Parser-2139"><span class="linenos">2139</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span><span class="p">:</span> +</span><span id="Parser-2140"><a href="#Parser-2140"><span class="linenos">2140</span></a> <span class="n">table_sample</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_sample</span><span class="p">()</span> </span><span id="Parser-2141"><a href="#Parser-2141"><span class="linenos">2141</span></a> -</span><span id="Parser-2142"><a href="#Parser-2142"><span class="linenos">2142</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2143"><a href="#Parser-2143"><span class="linenos">2143</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">):</span> -</span><span id="Parser-2144"><a href="#Parser-2144"><span class="linenos">2144</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-2145"><a href="#Parser-2145"><span class="linenos">2145</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-2146"><a href="#Parser-2146"><span class="linenos">2146</span></a> -</span><span id="Parser-2147"><a href="#Parser-2147"><span class="linenos">2147</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><span id="Parser-2148"><a href="#Parser-2148"><span class="linenos">2148</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">,</span> -</span><span id="Parser-2149"><a href="#Parser-2149"><span class="linenos">2149</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Parser-2150"><a href="#Parser-2150"><span class="linenos">2150</span></a> <span class="n">ordinality</span><span class="o">=</span><span class="n">ordinality</span><span class="p">,</span> -</span><span id="Parser-2151"><a href="#Parser-2151"><span class="linenos">2151</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> -</span><span id="Parser-2152"><a href="#Parser-2152"><span class="linenos">2152</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> -</span><span id="Parser-2153"><a href="#Parser-2153"><span class="linenos">2153</span></a> <span class="p">)</span> -</span><span id="Parser-2154"><a href="#Parser-2154"><span class="linenos">2154</span></a> -</span><span id="Parser-2155"><a href="#Parser-2155"><span class="linenos">2155</span></a> <span class="k">def</span> <span class="nf">_parse_derived_table_values</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2156"><a href="#Parser-2156"><span class="linenos">2156</span></a> <span class="n">is_derived</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">)</span> -</span><span id="Parser-2157"><a href="#Parser-2157"><span class="linenos">2157</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_derived</span> <span class="ow">and</span> <span class="ow">not</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">VALUES</span><span class="p">):</span> -</span><span id="Parser-2158"><a href="#Parser-2158"><span class="linenos">2158</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2159"><a href="#Parser-2159"><span class="linenos">2159</span></a> -</span><span id="Parser-2160"><a href="#Parser-2160"><span class="linenos">2160</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">)</span> +</span><span id="Parser-2142"><a href="#Parser-2142"><span class="linenos">2142</span></a> <span class="k">if</span> <span class="n">table_sample</span><span class="p">:</span> +</span><span id="Parser-2143"><a href="#Parser-2143"><span class="linenos">2143</span></a> <span class="n">table_sample</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">this</span><span class="p">)</span> +</span><span id="Parser-2144"><a href="#Parser-2144"><span class="linenos">2144</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">table_sample</span> +</span><span id="Parser-2145"><a href="#Parser-2145"><span class="linenos">2145</span></a> +</span><span id="Parser-2146"><a href="#Parser-2146"><span class="linenos">2146</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2147"><a href="#Parser-2147"><span class="linenos">2147</span></a> +</span><span id="Parser-2148"><a href="#Parser-2148"><span class="linenos">2148</span></a> <span class="k">def</span> <span class="nf">_parse_unnest</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2149"><a href="#Parser-2149"><span class="linenos">2149</span></a> <span class="k">if</span> <span class="ow">not</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">UNNEST</span><span class="p">):</span> +</span><span id="Parser-2150"><a href="#Parser-2150"><span class="linenos">2150</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2151"><a href="#Parser-2151"><span class="linenos">2151</span></a> +</span><span id="Parser-2152"><a href="#Parser-2152"><span class="linenos">2152</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-2153"><a href="#Parser-2153"><span class="linenos">2153</span></a> <span class="n">ordinality</span> <span class="o">=</span> <span class="nb">bool</span><span class="p">(</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">WITH</span><span class="p">)</span> <span class="ow">and</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">ORDINALITY</span><span class="p">))</span> +</span><span id="Parser-2154"><a href="#Parser-2154"><span class="linenos">2154</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">()</span> +</span><span id="Parser-2155"><a href="#Parser-2155"><span class="linenos">2155</span></a> +</span><span id="Parser-2156"><a href="#Parser-2156"><span class="linenos">2156</span></a> <span class="k">if</span> <span class="n">alias</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span><span class="p">:</span> +</span><span id="Parser-2157"><a href="#Parser-2157"><span class="linenos">2157</span></a> <span class="k">if</span> <span class="n">alias</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">"columns"</span><span class="p">):</span> +</span><span id="Parser-2158"><a href="#Parser-2158"><span class="linenos">2158</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Unexpected extra column alias in unnest."</span><span class="p">)</span> +</span><span id="Parser-2159"><a href="#Parser-2159"><span class="linenos">2159</span></a> <span class="n">alias</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"columns"</span><span class="p">,</span> <span class="p">[</span><span class="n">alias</span><span class="o">.</span><span class="n">this</span><span class="p">])</span> +</span><span id="Parser-2160"><a href="#Parser-2160"><span class="linenos">2160</span></a> <span class="n">alias</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="kc">None</span><span class="p">)</span> </span><span id="Parser-2161"><a href="#Parser-2161"><span class="linenos">2161</span></a> -</span><span id="Parser-2162"><a href="#Parser-2162"><span class="linenos">2162</span></a> <span class="k">if</span> <span class="n">is_derived</span><span class="p">:</span> -</span><span id="Parser-2163"><a href="#Parser-2163"><span class="linenos">2163</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2164"><a href="#Parser-2164"><span class="linenos">2164</span></a> -</span><span id="Parser-2165"><a href="#Parser-2165"><span class="linenos">2165</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">Values</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> +</span><span id="Parser-2162"><a href="#Parser-2162"><span class="linenos">2162</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2163"><a href="#Parser-2163"><span class="linenos">2163</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">):</span> +</span><span id="Parser-2164"><a href="#Parser-2164"><span class="linenos">2164</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-2165"><a href="#Parser-2165"><span class="linenos">2165</span></a> <span class="n">offset</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> </span><span id="Parser-2166"><a href="#Parser-2166"><span class="linenos">2166</span></a> -</span><span id="Parser-2167"><a href="#Parser-2167"><span class="linenos">2167</span></a> <span class="k">def</span> <span class="nf">_parse_table_sample</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">as_modifier</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2168"><a href="#Parser-2168"><span class="linenos">2168</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE_SAMPLE</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="p">(</span> -</span><span id="Parser-2169"><a href="#Parser-2169"><span class="linenos">2169</span></a> <span class="n">as_modifier</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"USING"</span><span class="p">,</span> <span class="s2">"SAMPLE"</span><span class="p">)</span> -</span><span id="Parser-2170"><a href="#Parser-2170"><span class="linenos">2170</span></a> <span class="p">):</span> -</span><span id="Parser-2171"><a href="#Parser-2171"><span class="linenos">2171</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2172"><a href="#Parser-2172"><span class="linenos">2172</span></a> -</span><span id="Parser-2173"><a href="#Parser-2173"><span class="linenos">2173</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2174"><a href="#Parser-2174"><span class="linenos">2174</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2175"><a href="#Parser-2175"><span class="linenos">2175</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2176"><a href="#Parser-2176"><span class="linenos">2176</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2177"><a href="#Parser-2177"><span class="linenos">2177</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2178"><a href="#Parser-2178"><span class="linenos">2178</span></a> <span class="n">size</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2179"><a href="#Parser-2179"><span class="linenos">2179</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2180"><a href="#Parser-2180"><span class="linenos">2180</span></a> -</span><span id="Parser-2181"><a href="#Parser-2181"><span class="linenos">2181</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLESAMPLE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span> <span class="k">else</span> <span class="s2">"USING SAMPLE"</span> -</span><span id="Parser-2182"><a href="#Parser-2182"><span class="linenos">2182</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">tokens</span><span class="o">=</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,))</span> -</span><span id="Parser-2183"><a href="#Parser-2183"><span class="linenos">2183</span></a> -</span><span id="Parser-2184"><a href="#Parser-2184"><span class="linenos">2184</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">L_PAREN</span><span class="p">)</span> -</span><span id="Parser-2185"><a href="#Parser-2185"><span class="linenos">2185</span></a> -</span><span id="Parser-2186"><a href="#Parser-2186"><span class="linenos">2186</span></a> <span class="n">num</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-2187"><a href="#Parser-2187"><span class="linenos">2187</span></a> -</span><span id="Parser-2188"><a href="#Parser-2188"><span class="linenos">2188</span></a> <span class="k">if</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">BUCKET</span><span class="p">):</span> -</span><span id="Parser-2189"><a href="#Parser-2189"><span class="linenos">2189</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-2190"><a href="#Parser-2190"><span class="linenos">2190</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">OUT_OF</span><span class="p">)</span> -</span><span id="Parser-2191"><a href="#Parser-2191"><span class="linenos">2191</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-2192"><a href="#Parser-2192"><span class="linenos">2192</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">ON</span><span class="p">)</span> -</span><span id="Parser-2193"><a href="#Parser-2193"><span class="linenos">2193</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> -</span><span id="Parser-2194"><a href="#Parser-2194"><span class="linenos">2194</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">)):</span> -</span><span id="Parser-2195"><a href="#Parser-2195"><span class="linenos">2195</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="n">num</span> -</span><span id="Parser-2196"><a href="#Parser-2196"><span class="linenos">2196</span></a> <span class="k">elif</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">ROWS</span><span class="p">):</span> -</span><span id="Parser-2197"><a href="#Parser-2197"><span class="linenos">2197</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="n">num</span> -</span><span id="Parser-2198"><a href="#Parser-2198"><span class="linenos">2198</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2199"><a href="#Parser-2199"><span class="linenos">2199</span></a> <span class="n">size</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="Parser-2167"><a href="#Parser-2167"><span class="linenos">2167</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><span id="Parser-2168"><a href="#Parser-2168"><span class="linenos">2168</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Unnest</span><span class="p">,</span> +</span><span id="Parser-2169"><a href="#Parser-2169"><span class="linenos">2169</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Parser-2170"><a href="#Parser-2170"><span class="linenos">2170</span></a> <span class="n">ordinality</span><span class="o">=</span><span class="n">ordinality</span><span class="p">,</span> +</span><span id="Parser-2171"><a href="#Parser-2171"><span class="linenos">2171</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">,</span> +</span><span id="Parser-2172"><a href="#Parser-2172"><span class="linenos">2172</span></a> <span class="n">offset</span><span class="o">=</span><span class="n">offset</span><span class="p">,</span> +</span><span id="Parser-2173"><a href="#Parser-2173"><span class="linenos">2173</span></a> <span class="p">)</span> +</span><span id="Parser-2174"><a href="#Parser-2174"><span class="linenos">2174</span></a> +</span><span id="Parser-2175"><a href="#Parser-2175"><span class="linenos">2175</span></a> <span class="k">def</span> <span class="nf">_parse_derived_table_values</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2176"><a href="#Parser-2176"><span class="linenos">2176</span></a> <span class="n">is_derived</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">)</span> +</span><span id="Parser-2177"><a href="#Parser-2177"><span class="linenos">2177</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_derived</span> <span class="ow">and</span> <span class="ow">not</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">VALUES</span><span class="p">):</span> +</span><span id="Parser-2178"><a href="#Parser-2178"><span class="linenos">2178</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2179"><a href="#Parser-2179"><span class="linenos">2179</span></a> +</span><span id="Parser-2180"><a href="#Parser-2180"><span class="linenos">2180</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">)</span> +</span><span id="Parser-2181"><a href="#Parser-2181"><span class="linenos">2181</span></a> +</span><span id="Parser-2182"><a href="#Parser-2182"><span class="linenos">2182</span></a> <span class="k">if</span> <span class="n">is_derived</span><span class="p">:</span> +</span><span id="Parser-2183"><a href="#Parser-2183"><span class="linenos">2183</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2184"><a href="#Parser-2184"><span class="linenos">2184</span></a> +</span><span id="Parser-2185"><a href="#Parser-2185"><span class="linenos">2185</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">Values</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> +</span><span id="Parser-2186"><a href="#Parser-2186"><span class="linenos">2186</span></a> +</span><span id="Parser-2187"><a href="#Parser-2187"><span class="linenos">2187</span></a> <span class="k">def</span> <span class="nf">_parse_table_sample</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">as_modifier</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2188"><a href="#Parser-2188"><span class="linenos">2188</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE_SAMPLE</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="p">(</span> +</span><span id="Parser-2189"><a href="#Parser-2189"><span class="linenos">2189</span></a> <span class="n">as_modifier</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"USING"</span><span class="p">,</span> <span class="s2">"SAMPLE"</span><span class="p">)</span> +</span><span id="Parser-2190"><a href="#Parser-2190"><span class="linenos">2190</span></a> <span class="p">):</span> +</span><span id="Parser-2191"><a href="#Parser-2191"><span class="linenos">2191</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2192"><a href="#Parser-2192"><span class="linenos">2192</span></a> +</span><span id="Parser-2193"><a href="#Parser-2193"><span class="linenos">2193</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2194"><a href="#Parser-2194"><span class="linenos">2194</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2195"><a href="#Parser-2195"><span class="linenos">2195</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2196"><a href="#Parser-2196"><span class="linenos">2196</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2197"><a href="#Parser-2197"><span class="linenos">2197</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2198"><a href="#Parser-2198"><span class="linenos">2198</span></a> <span class="n">size</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2199"><a href="#Parser-2199"><span class="linenos">2199</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="Parser-2200"><a href="#Parser-2200"><span class="linenos">2200</span></a> -</span><span id="Parser-2201"><a href="#Parser-2201"><span class="linenos">2201</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">R_PAREN</span><span class="p">)</span> -</span><span id="Parser-2202"><a href="#Parser-2202"><span class="linenos">2202</span></a> -</span><span id="Parser-2203"><a href="#Parser-2203"><span class="linenos">2203</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2204"><a href="#Parser-2204"><span class="linenos">2204</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> -</span><span id="Parser-2205"><a href="#Parser-2205"><span class="linenos">2205</span></a> <span class="n">seed</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-2206"><a href="#Parser-2206"><span class="linenos">2206</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2207"><a href="#Parser-2207"><span class="linenos">2207</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"SEED"</span><span class="p">,</span> <span class="s2">"REPEATABLE"</span><span class="p">)):</span> -</span><span id="Parser-2208"><a href="#Parser-2208"><span class="linenos">2208</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> -</span><span id="Parser-2209"><a href="#Parser-2209"><span class="linenos">2209</span></a> -</span><span id="Parser-2210"><a href="#Parser-2210"><span class="linenos">2210</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><span id="Parser-2211"><a href="#Parser-2211"><span class="linenos">2211</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">,</span> -</span><span id="Parser-2212"><a href="#Parser-2212"><span class="linenos">2212</span></a> <span class="n">method</span><span class="o">=</span><span class="n">method</span><span class="p">,</span> -</span><span id="Parser-2213"><a href="#Parser-2213"><span class="linenos">2213</span></a> <span class="n">bucket_numerator</span><span class="o">=</span><span class="n">bucket_numerator</span><span class="p">,</span> -</span><span id="Parser-2214"><a href="#Parser-2214"><span class="linenos">2214</span></a> <span class="n">bucket_denominator</span><span class="o">=</span><span class="n">bucket_denominator</span><span class="p">,</span> -</span><span id="Parser-2215"><a href="#Parser-2215"><span class="linenos">2215</span></a> <span class="n">bucket_field</span><span class="o">=</span><span class="n">bucket_field</span><span class="p">,</span> -</span><span id="Parser-2216"><a href="#Parser-2216"><span class="linenos">2216</span></a> <span class="n">percent</span><span class="o">=</span><span class="n">percent</span><span class="p">,</span> -</span><span id="Parser-2217"><a href="#Parser-2217"><span class="linenos">2217</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> -</span><span id="Parser-2218"><a href="#Parser-2218"><span class="linenos">2218</span></a> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> -</span><span id="Parser-2219"><a href="#Parser-2219"><span class="linenos">2219</span></a> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">,</span> -</span><span id="Parser-2220"><a href="#Parser-2220"><span class="linenos">2220</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="Parser-2221"><a href="#Parser-2221"><span class="linenos">2221</span></a> <span class="p">)</span> +</span><span id="Parser-2201"><a href="#Parser-2201"><span class="linenos">2201</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="s2">"TABLESAMPLE"</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span> <span class="k">else</span> <span class="s2">"USING SAMPLE"</span> +</span><span id="Parser-2202"><a href="#Parser-2202"><span class="linenos">2202</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">(</span><span class="n">tokens</span><span class="o">=</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,))</span> +</span><span id="Parser-2203"><a href="#Parser-2203"><span class="linenos">2203</span></a> +</span><span id="Parser-2204"><a href="#Parser-2204"><span class="linenos">2204</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">L_PAREN</span><span class="p">)</span> +</span><span id="Parser-2205"><a href="#Parser-2205"><span class="linenos">2205</span></a> +</span><span id="Parser-2206"><a href="#Parser-2206"><span class="linenos">2206</span></a> <span class="n">num</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-2207"><a href="#Parser-2207"><span class="linenos">2207</span></a> +</span><span id="Parser-2208"><a href="#Parser-2208"><span class="linenos">2208</span></a> <span class="k">if</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">BUCKET</span><span class="p">):</span> +</span><span id="Parser-2209"><a href="#Parser-2209"><span class="linenos">2209</span></a> <span class="n">bucket_numerator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-2210"><a href="#Parser-2210"><span class="linenos">2210</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">OUT_OF</span><span class="p">)</span> +</span><span id="Parser-2211"><a href="#Parser-2211"><span class="linenos">2211</span></a> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="n">bucket_denominator</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-2212"><a href="#Parser-2212"><span class="linenos">2212</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">ON</span><span class="p">)</span> +</span><span id="Parser-2213"><a href="#Parser-2213"><span class="linenos">2213</span></a> <span class="n">bucket_field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> +</span><span id="Parser-2214"><a href="#Parser-2214"><span class="linenos">2214</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MOD</span><span class="p">)):</span> +</span><span id="Parser-2215"><a href="#Parser-2215"><span class="linenos">2215</span></a> <span class="n">percent</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="Parser-2216"><a href="#Parser-2216"><span class="linenos">2216</span></a> <span class="k">elif</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">ROWS</span><span class="p">):</span> +</span><span id="Parser-2217"><a href="#Parser-2217"><span class="linenos">2217</span></a> <span class="n">rows</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="Parser-2218"><a href="#Parser-2218"><span class="linenos">2218</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2219"><a href="#Parser-2219"><span class="linenos">2219</span></a> <span class="n">size</span> <span class="o">=</span> <span class="n">num</span> +</span><span id="Parser-2220"><a href="#Parser-2220"><span class="linenos">2220</span></a> +</span><span id="Parser-2221"><a href="#Parser-2221"><span class="linenos">2221</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">R_PAREN</span><span class="p">)</span> </span><span id="Parser-2222"><a href="#Parser-2222"><span class="linenos">2222</span></a> -</span><span id="Parser-2223"><a href="#Parser-2223"><span class="linenos">2223</span></a> <span class="k">def</span> <span class="nf">_parse_pivots</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Parser-2224"><a href="#Parser-2224"><span class="linenos">2224</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivot</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> -</span><span id="Parser-2225"><a href="#Parser-2225"><span class="linenos">2225</span></a> -</span><span id="Parser-2226"><a href="#Parser-2226"><span class="linenos">2226</span></a> <span class="k">def</span> <span class="nf">_parse_pivot</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2227"><a href="#Parser-2227"><span class="linenos">2227</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><span id="Parser-2228"><a href="#Parser-2228"><span class="linenos">2228</span></a> -</span><span id="Parser-2229"><a href="#Parser-2229"><span class="linenos">2229</span></a> <span class="k">if</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">PIVOT</span><span class="p">):</span> -</span><span id="Parser-2230"><a href="#Parser-2230"><span class="linenos">2230</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-2231"><a href="#Parser-2231"><span class="linenos">2231</span></a> <span class="k">elif</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="Parser-2232"><a href="#Parser-2232"><span class="linenos">2232</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Parser-2233"><a href="#Parser-2233"><span class="linenos">2233</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2234"><a href="#Parser-2234"><span class="linenos">2234</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2235"><a href="#Parser-2235"><span class="linenos">2235</span></a> -</span><span id="Parser-2236"><a href="#Parser-2236"><span class="linenos">2236</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-2237"><a href="#Parser-2237"><span class="linenos">2237</span></a> <span class="n">field</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2238"><a href="#Parser-2238"><span class="linenos">2238</span></a> -</span><span id="Parser-2239"><a href="#Parser-2239"><span class="linenos">2239</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2240"><a href="#Parser-2240"><span class="linenos">2240</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="Parser-2241"><a href="#Parser-2241"><span class="linenos">2241</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2223"><a href="#Parser-2223"><span class="linenos">2223</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2224"><a href="#Parser-2224"><span class="linenos">2224</span></a> <span class="n">method</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> +</span><span id="Parser-2225"><a href="#Parser-2225"><span class="linenos">2225</span></a> <span class="n">seed</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">COMMA</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-2226"><a href="#Parser-2226"><span class="linenos">2226</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2227"><a href="#Parser-2227"><span class="linenos">2227</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"SEED"</span><span class="p">,</span> <span class="s2">"REPEATABLE"</span><span class="p">)):</span> +</span><span id="Parser-2228"><a href="#Parser-2228"><span class="linenos">2228</span></a> <span class="n">seed</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">)</span> +</span><span id="Parser-2229"><a href="#Parser-2229"><span class="linenos">2229</span></a> +</span><span id="Parser-2230"><a href="#Parser-2230"><span class="linenos">2230</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><span id="Parser-2231"><a href="#Parser-2231"><span class="linenos">2231</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">TableSample</span><span class="p">,</span> +</span><span id="Parser-2232"><a href="#Parser-2232"><span class="linenos">2232</span></a> <span class="n">method</span><span class="o">=</span><span class="n">method</span><span class="p">,</span> +</span><span id="Parser-2233"><a href="#Parser-2233"><span class="linenos">2233</span></a> <span class="n">bucket_numerator</span><span class="o">=</span><span class="n">bucket_numerator</span><span class="p">,</span> +</span><span id="Parser-2234"><a href="#Parser-2234"><span class="linenos">2234</span></a> <span class="n">bucket_denominator</span><span class="o">=</span><span class="n">bucket_denominator</span><span class="p">,</span> +</span><span id="Parser-2235"><a href="#Parser-2235"><span class="linenos">2235</span></a> <span class="n">bucket_field</span><span class="o">=</span><span class="n">bucket_field</span><span class="p">,</span> +</span><span id="Parser-2236"><a href="#Parser-2236"><span class="linenos">2236</span></a> <span class="n">percent</span><span class="o">=</span><span class="n">percent</span><span class="p">,</span> +</span><span id="Parser-2237"><a href="#Parser-2237"><span class="linenos">2237</span></a> <span class="n">rows</span><span class="o">=</span><span class="n">rows</span><span class="p">,</span> +</span><span id="Parser-2238"><a href="#Parser-2238"><span class="linenos">2238</span></a> <span class="n">size</span><span class="o">=</span><span class="n">size</span><span class="p">,</span> +</span><span id="Parser-2239"><a href="#Parser-2239"><span class="linenos">2239</span></a> <span class="n">seed</span><span class="o">=</span><span class="n">seed</span><span class="p">,</span> +</span><span id="Parser-2240"><a href="#Parser-2240"><span class="linenos">2240</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Parser-2241"><a href="#Parser-2241"><span class="linenos">2241</span></a> <span class="p">)</span> </span><span id="Parser-2242"><a href="#Parser-2242"><span class="linenos">2242</span></a> -</span><span id="Parser-2243"><a href="#Parser-2243"><span class="linenos">2243</span></a> <span class="k">if</span> <span class="n">unpivot</span><span class="p">:</span> -</span><span id="Parser-2244"><a href="#Parser-2244"><span class="linenos">2244</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-2245"><a href="#Parser-2245"><span class="linenos">2245</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2246"><a href="#Parser-2246"><span class="linenos">2246</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()))</span> -</span><span id="Parser-2247"><a href="#Parser-2247"><span class="linenos">2247</span></a> -</span><span id="Parser-2248"><a href="#Parser-2248"><span class="linenos">2248</span></a> <span class="k">if</span> <span class="ow">not</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">FOR</span><span class="p">):</span> -</span><span id="Parser-2249"><a href="#Parser-2249"><span class="linenos">2249</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting FOR"</span><span class="p">)</span> -</span><span id="Parser-2250"><a href="#Parser-2250"><span class="linenos">2250</span></a> -</span><span id="Parser-2251"><a href="#Parser-2251"><span class="linenos">2251</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Parser-2252"><a href="#Parser-2252"><span class="linenos">2252</span></a> -</span><span id="Parser-2253"><a href="#Parser-2253"><span class="linenos">2253</span></a> <span class="k">if</span> <span class="ow">not</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">IN</span><span class="p">):</span> -</span><span id="Parser-2254"><a href="#Parser-2254"><span class="linenos">2254</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting IN"</span><span class="p">)</span> +</span><span id="Parser-2243"><a href="#Parser-2243"><span class="linenos">2243</span></a> <span class="k">def</span> <span class="nf">_parse_pivots</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="Parser-2244"><a href="#Parser-2244"><span class="linenos">2244</span></a> <span class="k">return</span> <span class="nb">list</span><span class="p">(</span><span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_pivot</span><span class="p">,</span> <span class="kc">None</span><span class="p">))</span> +</span><span id="Parser-2245"><a href="#Parser-2245"><span class="linenos">2245</span></a> +</span><span id="Parser-2246"><a href="#Parser-2246"><span class="linenos">2246</span></a> <span class="k">def</span> <span class="nf">_parse_pivot</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2247"><a href="#Parser-2247"><span class="linenos">2247</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><span id="Parser-2248"><a href="#Parser-2248"><span class="linenos">2248</span></a> +</span><span id="Parser-2249"><a href="#Parser-2249"><span class="linenos">2249</span></a> <span class="k">if</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">PIVOT</span><span class="p">):</span> +</span><span id="Parser-2250"><a href="#Parser-2250"><span class="linenos">2250</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-2251"><a href="#Parser-2251"><span class="linenos">2251</span></a> <span class="k">elif</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="Parser-2252"><a href="#Parser-2252"><span class="linenos">2252</span></a> <span class="n">unpivot</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-2253"><a href="#Parser-2253"><span class="linenos">2253</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2254"><a href="#Parser-2254"><span class="linenos">2254</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="Parser-2255"><a href="#Parser-2255"><span class="linenos">2255</span></a> -</span><span id="Parser-2256"><a href="#Parser-2256"><span class="linenos">2256</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="Parser-2257"><a href="#Parser-2257"><span class="linenos">2257</span></a> -</span><span id="Parser-2258"><a href="#Parser-2258"><span class="linenos">2258</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2259"><a href="#Parser-2259"><span class="linenos">2259</span></a> -</span><span id="Parser-2260"><a href="#Parser-2260"><span class="linenos">2260</span></a> <span class="n">pivot</span> <span class="o">=</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="n">unpivot</span><span class="p">)</span> -</span><span id="Parser-2261"><a href="#Parser-2261"><span class="linenos">2261</span></a> -</span><span id="Parser-2262"><a href="#Parser-2262"><span class="linenos">2262</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">),</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-2263"><a href="#Parser-2263"><span class="linenos">2263</span></a> <span class="n">pivot</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> -</span><span id="Parser-2264"><a href="#Parser-2264"><span class="linenos">2264</span></a> -</span><span id="Parser-2265"><a href="#Parser-2265"><span class="linenos">2265</span></a> <span class="k">return</span> <span class="n">pivot</span> -</span><span id="Parser-2266"><a href="#Parser-2266"><span class="linenos">2266</span></a> -</span><span id="Parser-2267"><a href="#Parser-2267"><span class="linenos">2267</span></a> <span class="k">def</span> <span class="nf">_parse_where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_where_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2268"><a href="#Parser-2268"><span class="linenos">2268</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_where_token</span> <span class="ow">and</span> <span class="ow">not</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">WHERE</span><span class="p">):</span> -</span><span id="Parser-2269"><a href="#Parser-2269"><span class="linenos">2269</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2256"><a href="#Parser-2256"><span class="linenos">2256</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-2257"><a href="#Parser-2257"><span class="linenos">2257</span></a> <span class="n">field</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2258"><a href="#Parser-2258"><span class="linenos">2258</span></a> +</span><span id="Parser-2259"><a href="#Parser-2259"><span class="linenos">2259</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2260"><a href="#Parser-2260"><span class="linenos">2260</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="Parser-2261"><a href="#Parser-2261"><span class="linenos">2261</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2262"><a href="#Parser-2262"><span class="linenos">2262</span></a> +</span><span id="Parser-2263"><a href="#Parser-2263"><span class="linenos">2263</span></a> <span class="k">if</span> <span class="n">unpivot</span><span class="p">:</span> +</span><span id="Parser-2264"><a href="#Parser-2264"><span class="linenos">2264</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-2265"><a href="#Parser-2265"><span class="linenos">2265</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2266"><a href="#Parser-2266"><span class="linenos">2266</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()))</span> +</span><span id="Parser-2267"><a href="#Parser-2267"><span class="linenos">2267</span></a> +</span><span id="Parser-2268"><a href="#Parser-2268"><span class="linenos">2268</span></a> <span class="k">if</span> <span class="ow">not</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">FOR</span><span class="p">):</span> +</span><span id="Parser-2269"><a href="#Parser-2269"><span class="linenos">2269</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting FOR"</span><span class="p">)</span> </span><span id="Parser-2270"><a href="#Parser-2270"><span class="linenos">2270</span></a> -</span><span id="Parser-2271"><a href="#Parser-2271"><span class="linenos">2271</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><span id="Parser-2272"><a href="#Parser-2272"><span class="linenos">2272</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-2273"><a href="#Parser-2273"><span class="linenos">2273</span></a> <span class="p">)</span> -</span><span id="Parser-2274"><a href="#Parser-2274"><span class="linenos">2274</span></a> -</span><span id="Parser-2275"><a href="#Parser-2275"><span class="linenos">2275</span></a> <span class="k">def</span> <span class="nf">_parse_group</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_group_by_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2276"><a href="#Parser-2276"><span class="linenos">2276</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_group_by_token</span> <span class="ow">and</span> <span class="ow">not</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">GROUP_BY</span><span class="p">):</span> -</span><span id="Parser-2277"><a href="#Parser-2277"><span class="linenos">2277</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2278"><a href="#Parser-2278"><span class="linenos">2278</span></a> -</span><span id="Parser-2279"><a href="#Parser-2279"><span class="linenos">2279</span></a> <span class="n">elements</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">list</span><span class="p">)</span> -</span><span id="Parser-2280"><a href="#Parser-2280"><span class="linenos">2280</span></a> -</span><span id="Parser-2281"><a href="#Parser-2281"><span class="linenos">2281</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-2282"><a href="#Parser-2282"><span class="linenos">2282</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-2283"><a href="#Parser-2283"><span class="linenos">2283</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Parser-2284"><a href="#Parser-2284"><span class="linenos">2284</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"expressions"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2285"><a href="#Parser-2285"><span class="linenos">2285</span></a> -</span><span id="Parser-2286"><a href="#Parser-2286"><span class="linenos">2286</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_sets</span><span class="p">()</span> -</span><span id="Parser-2287"><a href="#Parser-2287"><span class="linenos">2287</span></a> <span class="k">if</span> <span class="n">grouping_sets</span><span class="p">:</span> -</span><span id="Parser-2288"><a href="#Parser-2288"><span class="linenos">2288</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"grouping_sets"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span> -</span><span id="Parser-2289"><a href="#Parser-2289"><span class="linenos">2289</span></a> -</span><span id="Parser-2290"><a href="#Parser-2290"><span class="linenos">2290</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2291"><a href="#Parser-2291"><span class="linenos">2291</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2292"><a href="#Parser-2292"><span class="linenos">2292</span></a> -</span><span id="Parser-2293"><a href="#Parser-2293"><span class="linenos">2293</span></a> <span class="n">with_</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">WITH</span><span class="p">)</span> -</span><span id="Parser-2294"><a href="#Parser-2294"><span class="linenos">2294</span></a> <span class="k">if</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">ROLLUP</span><span class="p">):</span> -</span><span id="Parser-2295"><a href="#Parser-2295"><span class="linenos">2295</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-2296"><a href="#Parser-2296"><span class="linenos">2296</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"rollup"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">rollup</span><span class="p">))</span> -</span><span id="Parser-2297"><a href="#Parser-2297"><span class="linenos">2297</span></a> -</span><span id="Parser-2298"><a href="#Parser-2298"><span class="linenos">2298</span></a> <span class="k">if</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">CUBE</span><span class="p">):</span> -</span><span id="Parser-2299"><a href="#Parser-2299"><span class="linenos">2299</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-2300"><a href="#Parser-2300"><span class="linenos">2300</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"cube"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">cube</span><span class="p">))</span> -</span><span id="Parser-2301"><a href="#Parser-2301"><span class="linenos">2301</span></a> -</span><span id="Parser-2302"><a href="#Parser-2302"><span class="linenos">2302</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">expressions</span> <span class="ow">or</span> <span class="n">grouping_sets</span> <span class="ow">or</span> <span class="n">rollup</span> <span class="ow">or</span> <span class="n">cube</span><span class="p">):</span> -</span><span id="Parser-2303"><a href="#Parser-2303"><span class="linenos">2303</span></a> <span class="k">break</span> -</span><span id="Parser-2304"><a href="#Parser-2304"><span class="linenos">2304</span></a> -</span><span id="Parser-2305"><a href="#Parser-2305"><span class="linenos">2305</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">Group</span><span class="p">,</span> <span class="o">**</span><span class="n">elements</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-2306"><a href="#Parser-2306"><span class="linenos">2306</span></a> -</span><span id="Parser-2307"><a href="#Parser-2307"><span class="linenos">2307</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_sets</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="Parser-2308"><a href="#Parser-2308"><span class="linenos">2308</span></a> <span class="k">if</span> <span class="ow">not</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">GROUPING_SETS</span><span class="p">):</span> -</span><span id="Parser-2309"><a href="#Parser-2309"><span class="linenos">2309</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2310"><a href="#Parser-2310"><span class="linenos">2310</span></a> -</span><span id="Parser-2311"><a href="#Parser-2311"><span class="linenos">2311</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_set</span><span class="p">)</span> +</span><span id="Parser-2271"><a href="#Parser-2271"><span class="linenos">2271</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="Parser-2272"><a href="#Parser-2272"><span class="linenos">2272</span></a> +</span><span id="Parser-2273"><a href="#Parser-2273"><span class="linenos">2273</span></a> <span class="k">if</span> <span class="ow">not</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">IN</span><span class="p">):</span> +</span><span id="Parser-2274"><a href="#Parser-2274"><span class="linenos">2274</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting IN"</span><span class="p">)</span> +</span><span id="Parser-2275"><a href="#Parser-2275"><span class="linenos">2275</span></a> +</span><span id="Parser-2276"><a href="#Parser-2276"><span class="linenos">2276</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_in</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="Parser-2277"><a href="#Parser-2277"><span class="linenos">2277</span></a> +</span><span id="Parser-2278"><a href="#Parser-2278"><span class="linenos">2278</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2279"><a href="#Parser-2279"><span class="linenos">2279</span></a> +</span><span id="Parser-2280"><a href="#Parser-2280"><span class="linenos">2280</span></a> <span class="n">pivot</span> <span class="o">=</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">field</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> <span class="n">unpivot</span><span class="o">=</span><span class="n">unpivot</span><span class="p">)</span> +</span><span id="Parser-2281"><a href="#Parser-2281"><span class="linenos">2281</span></a> +</span><span id="Parser-2282"><a href="#Parser-2282"><span class="linenos">2282</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNPIVOT</span><span class="p">),</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-2283"><a href="#Parser-2283"><span class="linenos">2283</span></a> <span class="n">pivot</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"alias"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table_alias</span><span class="p">())</span> +</span><span id="Parser-2284"><a href="#Parser-2284"><span class="linenos">2284</span></a> +</span><span id="Parser-2285"><a href="#Parser-2285"><span class="linenos">2285</span></a> <span class="k">return</span> <span class="n">pivot</span> +</span><span id="Parser-2286"><a href="#Parser-2286"><span class="linenos">2286</span></a> +</span><span id="Parser-2287"><a href="#Parser-2287"><span class="linenos">2287</span></a> <span class="k">def</span> <span class="nf">_parse_where</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_where_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2288"><a href="#Parser-2288"><span class="linenos">2288</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_where_token</span> <span class="ow">and</span> <span class="ow">not</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">WHERE</span><span class="p">):</span> +</span><span id="Parser-2289"><a href="#Parser-2289"><span class="linenos">2289</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2290"><a href="#Parser-2290"><span class="linenos">2290</span></a> +</span><span id="Parser-2291"><a href="#Parser-2291"><span class="linenos">2291</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><span id="Parser-2292"><a href="#Parser-2292"><span class="linenos">2292</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Where</span><span class="p">,</span> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-2293"><a href="#Parser-2293"><span class="linenos">2293</span></a> <span class="p">)</span> +</span><span id="Parser-2294"><a href="#Parser-2294"><span class="linenos">2294</span></a> +</span><span id="Parser-2295"><a href="#Parser-2295"><span class="linenos">2295</span></a> <span class="k">def</span> <span class="nf">_parse_group</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_group_by_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2296"><a href="#Parser-2296"><span class="linenos">2296</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_group_by_token</span> <span class="ow">and</span> <span class="ow">not</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">GROUP_BY</span><span class="p">):</span> +</span><span id="Parser-2297"><a href="#Parser-2297"><span class="linenos">2297</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2298"><a href="#Parser-2298"><span class="linenos">2298</span></a> +</span><span id="Parser-2299"><a href="#Parser-2299"><span class="linenos">2299</span></a> <span class="n">elements</span> <span class="o">=</span> <span class="n">defaultdict</span><span class="p">(</span><span class="nb">list</span><span class="p">)</span> +</span><span id="Parser-2300"><a href="#Parser-2300"><span class="linenos">2300</span></a> +</span><span id="Parser-2301"><a href="#Parser-2301"><span class="linenos">2301</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-2302"><a href="#Parser-2302"><span class="linenos">2302</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-2303"><a href="#Parser-2303"><span class="linenos">2303</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Parser-2304"><a href="#Parser-2304"><span class="linenos">2304</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"expressions"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2305"><a href="#Parser-2305"><span class="linenos">2305</span></a> +</span><span id="Parser-2306"><a href="#Parser-2306"><span class="linenos">2306</span></a> <span class="n">grouping_sets</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_sets</span><span class="p">()</span> +</span><span id="Parser-2307"><a href="#Parser-2307"><span class="linenos">2307</span></a> <span class="k">if</span> <span class="n">grouping_sets</span><span class="p">:</span> +</span><span id="Parser-2308"><a href="#Parser-2308"><span class="linenos">2308</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"grouping_sets"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">grouping_sets</span><span class="p">)</span> +</span><span id="Parser-2309"><a href="#Parser-2309"><span class="linenos">2309</span></a> +</span><span id="Parser-2310"><a href="#Parser-2310"><span class="linenos">2310</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2311"><a href="#Parser-2311"><span class="linenos">2311</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="Parser-2312"><a href="#Parser-2312"><span class="linenos">2312</span></a> -</span><span id="Parser-2313"><a href="#Parser-2313"><span class="linenos">2313</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_set</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2314"><a href="#Parser-2314"><span class="linenos">2314</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2315"><a href="#Parser-2315"><span class="linenos">2315</span></a> <span class="n">grouping_set</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-2316"><a href="#Parser-2316"><span class="linenos">2316</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2317"><a href="#Parser-2317"><span class="linenos">2317</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">grouping_set</span><span class="p">)</span> -</span><span id="Parser-2318"><a href="#Parser-2318"><span class="linenos">2318</span></a> -</span><span id="Parser-2319"><a href="#Parser-2319"><span class="linenos">2319</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Parser-2320"><a href="#Parser-2320"><span class="linenos">2320</span></a> -</span><span id="Parser-2321"><a href="#Parser-2321"><span class="linenos">2321</span></a> <span class="k">def</span> <span class="nf">_parse_having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_having_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2322"><a href="#Parser-2322"><span class="linenos">2322</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_having_token</span> <span class="ow">and</span> <span class="ow">not</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">HAVING</span><span class="p">):</span> -</span><span id="Parser-2323"><a href="#Parser-2323"><span class="linenos">2323</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2324"><a href="#Parser-2324"><span class="linenos">2324</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">Having</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="Parser-2325"><a href="#Parser-2325"><span class="linenos">2325</span></a> -</span><span id="Parser-2326"><a href="#Parser-2326"><span class="linenos">2326</span></a> <span class="k">def</span> <span class="nf">_parse_qualify</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2327"><a href="#Parser-2327"><span class="linenos">2327</span></a> <span class="k">if</span> <span class="ow">not</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">QUALIFY</span><span class="p">):</span> -</span><span id="Parser-2328"><a href="#Parser-2328"><span class="linenos">2328</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2329"><a href="#Parser-2329"><span class="linenos">2329</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">Qualify</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="Parser-2313"><a href="#Parser-2313"><span class="linenos">2313</span></a> <span class="n">with_</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">WITH</span><span class="p">)</span> +</span><span id="Parser-2314"><a href="#Parser-2314"><span class="linenos">2314</span></a> <span class="k">if</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">ROLLUP</span><span class="p">):</span> +</span><span id="Parser-2315"><a href="#Parser-2315"><span class="linenos">2315</span></a> <span class="n">rollup</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-2316"><a href="#Parser-2316"><span class="linenos">2316</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"rollup"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">rollup</span><span class="p">))</span> +</span><span id="Parser-2317"><a href="#Parser-2317"><span class="linenos">2317</span></a> +</span><span id="Parser-2318"><a href="#Parser-2318"><span class="linenos">2318</span></a> <span class="k">if</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">CUBE</span><span class="p">):</span> +</span><span id="Parser-2319"><a href="#Parser-2319"><span class="linenos">2319</span></a> <span class="n">cube</span> <span class="o">=</span> <span class="n">with_</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-2320"><a href="#Parser-2320"><span class="linenos">2320</span></a> <span class="n">elements</span><span class="p">[</span><span class="s2">"cube"</span><span class="p">]</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">cube</span><span class="p">))</span> +</span><span id="Parser-2321"><a href="#Parser-2321"><span class="linenos">2321</span></a> +</span><span id="Parser-2322"><a href="#Parser-2322"><span class="linenos">2322</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">expressions</span> <span class="ow">or</span> <span class="n">grouping_sets</span> <span class="ow">or</span> <span class="n">rollup</span> <span class="ow">or</span> <span class="n">cube</span><span class="p">):</span> +</span><span id="Parser-2323"><a href="#Parser-2323"><span class="linenos">2323</span></a> <span class="k">break</span> +</span><span id="Parser-2324"><a href="#Parser-2324"><span class="linenos">2324</span></a> +</span><span id="Parser-2325"><a href="#Parser-2325"><span class="linenos">2325</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">Group</span><span class="p">,</span> <span class="o">**</span><span class="n">elements</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-2326"><a href="#Parser-2326"><span class="linenos">2326</span></a> +</span><span id="Parser-2327"><a href="#Parser-2327"><span class="linenos">2327</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_sets</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="Parser-2328"><a href="#Parser-2328"><span class="linenos">2328</span></a> <span class="k">if</span> <span class="ow">not</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">GROUPING_SETS</span><span class="p">):</span> +</span><span id="Parser-2329"><a href="#Parser-2329"><span class="linenos">2329</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="Parser-2330"><a href="#Parser-2330"><span class="linenos">2330</span></a> -</span><span id="Parser-2331"><a href="#Parser-2331"><span class="linenos">2331</span></a> <span class="k">def</span> <span class="nf">_parse_order</span><span class="p">(</span> -</span><span id="Parser-2332"><a href="#Parser-2332"><span class="linenos">2332</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">skip_order_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-2333"><a href="#Parser-2333"><span class="linenos">2333</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="Parser-2334"><a href="#Parser-2334"><span class="linenos">2334</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_order_token</span> <span class="ow">and</span> <span class="ow">not</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">ORDER_BY</span><span class="p">):</span> -</span><span id="Parser-2335"><a href="#Parser-2335"><span class="linenos">2335</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2336"><a href="#Parser-2336"><span class="linenos">2336</span></a> -</span><span id="Parser-2337"><a href="#Parser-2337"><span class="linenos">2337</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><span id="Parser-2338"><a href="#Parser-2338"><span class="linenos">2338</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> -</span><span id="Parser-2339"><a href="#Parser-2339"><span class="linenos">2339</span></a> <span class="p">)</span> +</span><span id="Parser-2331"><a href="#Parser-2331"><span class="linenos">2331</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_grouping_set</span><span class="p">)</span> +</span><span id="Parser-2332"><a href="#Parser-2332"><span class="linenos">2332</span></a> +</span><span id="Parser-2333"><a href="#Parser-2333"><span class="linenos">2333</span></a> <span class="k">def</span> <span class="nf">_parse_grouping_set</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2334"><a href="#Parser-2334"><span class="linenos">2334</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2335"><a href="#Parser-2335"><span class="linenos">2335</span></a> <span class="n">grouping_set</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-2336"><a href="#Parser-2336"><span class="linenos">2336</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2337"><a href="#Parser-2337"><span class="linenos">2337</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">grouping_set</span><span class="p">)</span> +</span><span id="Parser-2338"><a href="#Parser-2338"><span class="linenos">2338</span></a> +</span><span id="Parser-2339"><a href="#Parser-2339"><span class="linenos">2339</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> </span><span id="Parser-2340"><a href="#Parser-2340"><span class="linenos">2340</span></a> -</span><span id="Parser-2341"><a href="#Parser-2341"><span class="linenos">2341</span></a> <span class="k">def</span> <span class="nf">_parse_sort</span><span class="p">(</span> -</span><span id="Parser-2342"><a href="#Parser-2342"><span class="linenos">2342</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="Parser-2343"><a href="#Parser-2343"><span class="linenos">2343</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="Parser-2344"><a href="#Parser-2344"><span class="linenos">2344</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">token_type</span><span class="p">):</span> -</span><span id="Parser-2345"><a href="#Parser-2345"><span class="linenos">2345</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2346"><a href="#Parser-2346"><span class="linenos">2346</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_class</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">))</span> -</span><span id="Parser-2347"><a href="#Parser-2347"><span class="linenos">2347</span></a> -</span><span id="Parser-2348"><a href="#Parser-2348"><span class="linenos">2348</span></a> <span class="k">def</span> <span class="nf">_parse_ordered</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2349"><a href="#Parser-2349"><span class="linenos">2349</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-2350"><a href="#Parser-2350"><span class="linenos">2350</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">ASC</span><span class="p">)</span> -</span><span id="Parser-2351"><a href="#Parser-2351"><span class="linenos">2351</span></a> <span class="n">is_desc</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">DESC</span><span class="p">)</span> -</span><span id="Parser-2352"><a href="#Parser-2352"><span class="linenos">2352</span></a> <span class="n">is_nulls_first</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">NULLS_FIRST</span><span class="p">)</span> -</span><span id="Parser-2353"><a href="#Parser-2353"><span class="linenos">2353</span></a> <span class="n">is_nulls_last</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">NULLS_LAST</span><span class="p">)</span> -</span><span id="Parser-2354"><a href="#Parser-2354"><span class="linenos">2354</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="n">is_desc</span> <span class="ow">or</span> <span class="kc">False</span> -</span><span id="Parser-2355"><a href="#Parser-2355"><span class="linenos">2355</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> -</span><span id="Parser-2356"><a href="#Parser-2356"><span class="linenos">2356</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="kc">False</span> -</span><span id="Parser-2357"><a href="#Parser-2357"><span class="linenos">2357</span></a> <span class="n">explicitly_null_ordered</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="n">is_nulls_last</span> -</span><span id="Parser-2358"><a href="#Parser-2358"><span class="linenos">2358</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Parser-2359"><a href="#Parser-2359"><span class="linenos">2359</span></a> <span class="ow">not</span> <span class="n">explicitly_null_ordered</span> -</span><span id="Parser-2360"><a href="#Parser-2360"><span class="linenos">2360</span></a> <span class="ow">and</span> <span class="p">(</span> -</span><span id="Parser-2361"><a href="#Parser-2361"><span class="linenos">2361</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> -</span><span id="Parser-2362"><a href="#Parser-2362"><span class="linenos">2362</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> -</span><span id="Parser-2363"><a href="#Parser-2363"><span class="linenos">2363</span></a> <span class="p">)</span> -</span><span id="Parser-2364"><a href="#Parser-2364"><span class="linenos">2364</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_last"</span> -</span><span id="Parser-2365"><a href="#Parser-2365"><span class="linenos">2365</span></a> <span class="p">):</span> -</span><span id="Parser-2366"><a href="#Parser-2366"><span class="linenos">2366</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-2341"><a href="#Parser-2341"><span class="linenos">2341</span></a> <span class="k">def</span> <span class="nf">_parse_having</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">skip_having_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2342"><a href="#Parser-2342"><span class="linenos">2342</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_having_token</span> <span class="ow">and</span> <span class="ow">not</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">HAVING</span><span class="p">):</span> +</span><span id="Parser-2343"><a href="#Parser-2343"><span class="linenos">2343</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2344"><a href="#Parser-2344"><span class="linenos">2344</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">Having</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="Parser-2345"><a href="#Parser-2345"><span class="linenos">2345</span></a> +</span><span id="Parser-2346"><a href="#Parser-2346"><span class="linenos">2346</span></a> <span class="k">def</span> <span class="nf">_parse_qualify</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2347"><a href="#Parser-2347"><span class="linenos">2347</span></a> <span class="k">if</span> <span class="ow">not</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">QUALIFY</span><span class="p">):</span> +</span><span id="Parser-2348"><a href="#Parser-2348"><span class="linenos">2348</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2349"><a href="#Parser-2349"><span class="linenos">2349</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">Qualify</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="Parser-2350"><a href="#Parser-2350"><span class="linenos">2350</span></a> +</span><span id="Parser-2351"><a href="#Parser-2351"><span class="linenos">2351</span></a> <span class="k">def</span> <span class="nf">_parse_order</span><span class="p">(</span> +</span><span id="Parser-2352"><a href="#Parser-2352"><span class="linenos">2352</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">skip_order_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-2353"><a href="#Parser-2353"><span class="linenos">2353</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="Parser-2354"><a href="#Parser-2354"><span class="linenos">2354</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">skip_order_token</span> <span class="ow">and</span> <span class="ow">not</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">ORDER_BY</span><span class="p">):</span> +</span><span id="Parser-2355"><a href="#Parser-2355"><span class="linenos">2355</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2356"><a href="#Parser-2356"><span class="linenos">2356</span></a> +</span><span id="Parser-2357"><a href="#Parser-2357"><span class="linenos">2357</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><span id="Parser-2358"><a href="#Parser-2358"><span class="linenos">2358</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Order</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">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">)</span> +</span><span id="Parser-2359"><a href="#Parser-2359"><span class="linenos">2359</span></a> <span class="p">)</span> +</span><span id="Parser-2360"><a href="#Parser-2360"><span class="linenos">2360</span></a> +</span><span id="Parser-2361"><a href="#Parser-2361"><span class="linenos">2361</span></a> <span class="k">def</span> <span class="nf">_parse_sort</span><span class="p">(</span> +</span><span id="Parser-2362"><a href="#Parser-2362"><span class="linenos">2362</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">:</span> <span class="n">TokenType</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="Parser-2363"><a href="#Parser-2363"><span class="linenos">2363</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="Parser-2364"><a href="#Parser-2364"><span class="linenos">2364</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">token_type</span><span class="p">):</span> +</span><span id="Parser-2365"><a href="#Parser-2365"><span class="linenos">2365</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2366"><a href="#Parser-2366"><span class="linenos">2366</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_class</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_ordered</span><span class="p">))</span> </span><span id="Parser-2367"><a href="#Parser-2367"><span class="linenos">2367</span></a> -</span><span id="Parser-2368"><a href="#Parser-2368"><span class="linenos">2368</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">Ordered</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">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span> -</span><span id="Parser-2369"><a href="#Parser-2369"><span class="linenos">2369</span></a> -</span><span id="Parser-2370"><a href="#Parser-2370"><span class="linenos">2370</span></a> <span class="k">def</span> <span class="nf">_parse_limit</span><span class="p">(</span> -</span><span id="Parser-2371"><a href="#Parser-2371"><span class="linenos">2371</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">top</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-2372"><a href="#Parser-2372"><span class="linenos">2372</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="Parser-2373"><a href="#Parser-2373"><span class="linenos">2373</span></a> <span class="k">if</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">TOP</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">):</span> -</span><span id="Parser-2374"><a href="#Parser-2374"><span class="linenos">2374</span></a> <span class="n">limit_paren</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">L_PAREN</span><span class="p">)</span> -</span><span id="Parser-2375"><a href="#Parser-2375"><span class="linenos">2375</span></a> <span class="n">limit_exp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2376"><a href="#Parser-2376"><span class="linenos">2376</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="Parser-2377"><a href="#Parser-2377"><span class="linenos">2377</span></a> <span class="p">)</span> -</span><span id="Parser-2378"><a href="#Parser-2378"><span class="linenos">2378</span></a> -</span><span id="Parser-2379"><a href="#Parser-2379"><span class="linenos">2379</span></a> <span class="k">if</span> <span class="n">limit_paren</span><span class="p">:</span> -</span><span id="Parser-2380"><a href="#Parser-2380"><span class="linenos">2380</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2381"><a href="#Parser-2381"><span class="linenos">2381</span></a> -</span><span id="Parser-2382"><a href="#Parser-2382"><span class="linenos">2382</span></a> <span class="k">return</span> <span class="n">limit_exp</span> -</span><span id="Parser-2383"><a href="#Parser-2383"><span class="linenos">2383</span></a> -</span><span id="Parser-2384"><a href="#Parser-2384"><span class="linenos">2384</span></a> <span class="k">if</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">FETCH</span><span class="p">):</span> -</span><span id="Parser-2385"><a href="#Parser-2385"><span class="linenos">2385</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">))</span> -</span><span id="Parser-2386"><a href="#Parser-2386"><span class="linenos">2386</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">"FIRST"</span> -</span><span id="Parser-2387"><a href="#Parser-2387"><span class="linenos">2387</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-2388"><a href="#Parser-2388"><span class="linenos">2388</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> -</span><span id="Parser-2389"><a href="#Parser-2389"><span class="linenos">2389</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">ONLY</span><span class="p">)</span> -</span><span id="Parser-2390"><a href="#Parser-2390"><span class="linenos">2390</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">Fetch</span><span class="p">,</span> <span class="n">direction</span><span class="o">=</span><span class="n">direction</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> -</span><span id="Parser-2391"><a href="#Parser-2391"><span class="linenos">2391</span></a> -</span><span id="Parser-2392"><a href="#Parser-2392"><span class="linenos">2392</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2393"><a href="#Parser-2393"><span class="linenos">2393</span></a> -</span><span id="Parser-2394"><a href="#Parser-2394"><span class="linenos">2394</span></a> <span class="k">def</span> <span class="nf">_parse_offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2395"><a href="#Parser-2395"><span class="linenos">2395</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</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="Parser-2396"><a href="#Parser-2396"><span class="linenos">2396</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2397"><a href="#Parser-2397"><span class="linenos">2397</span></a> -</span><span id="Parser-2398"><a href="#Parser-2398"><span class="linenos">2398</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> -</span><span id="Parser-2399"><a href="#Parser-2399"><span class="linenos">2399</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> -</span><span id="Parser-2400"><a href="#Parser-2400"><span class="linenos">2400</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">Offset</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> +</span><span id="Parser-2368"><a href="#Parser-2368"><span class="linenos">2368</span></a> <span class="k">def</span> <span class="nf">_parse_ordered</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2369"><a href="#Parser-2369"><span class="linenos">2369</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-2370"><a href="#Parser-2370"><span class="linenos">2370</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">ASC</span><span class="p">)</span> +</span><span id="Parser-2371"><a href="#Parser-2371"><span class="linenos">2371</span></a> <span class="n">is_desc</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">DESC</span><span class="p">)</span> +</span><span id="Parser-2372"><a href="#Parser-2372"><span class="linenos">2372</span></a> <span class="n">is_nulls_first</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">NULLS_FIRST</span><span class="p">)</span> +</span><span id="Parser-2373"><a href="#Parser-2373"><span class="linenos">2373</span></a> <span class="n">is_nulls_last</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">NULLS_LAST</span><span class="p">)</span> +</span><span id="Parser-2374"><a href="#Parser-2374"><span class="linenos">2374</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="n">is_desc</span> <span class="ow">or</span> <span class="kc">False</span> +</span><span id="Parser-2375"><a href="#Parser-2375"><span class="linenos">2375</span></a> <span class="n">asc</span> <span class="o">=</span> <span class="ow">not</span> <span class="n">desc</span> +</span><span id="Parser-2376"><a href="#Parser-2376"><span class="linenos">2376</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="kc">False</span> +</span><span id="Parser-2377"><a href="#Parser-2377"><span class="linenos">2377</span></a> <span class="n">explicitly_null_ordered</span> <span class="o">=</span> <span class="n">is_nulls_first</span> <span class="ow">or</span> <span class="n">is_nulls_last</span> +</span><span id="Parser-2378"><a href="#Parser-2378"><span class="linenos">2378</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Parser-2379"><a href="#Parser-2379"><span class="linenos">2379</span></a> <span class="ow">not</span> <span class="n">explicitly_null_ordered</span> +</span><span id="Parser-2380"><a href="#Parser-2380"><span class="linenos">2380</span></a> <span class="ow">and</span> <span class="p">(</span> +</span><span id="Parser-2381"><a href="#Parser-2381"><span class="linenos">2381</span></a> <span class="p">(</span><span class="n">asc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">==</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> +</span><span id="Parser-2382"><a href="#Parser-2382"><span class="linenos">2382</span></a> <span class="ow">or</span> <span class="p">(</span><span class="n">desc</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_small"</span><span class="p">)</span> +</span><span id="Parser-2383"><a href="#Parser-2383"><span class="linenos">2383</span></a> <span class="p">)</span> +</span><span id="Parser-2384"><a href="#Parser-2384"><span class="linenos">2384</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">!=</span> <span class="s2">"nulls_are_last"</span> +</span><span id="Parser-2385"><a href="#Parser-2385"><span class="linenos">2385</span></a> <span class="p">):</span> +</span><span id="Parser-2386"><a href="#Parser-2386"><span class="linenos">2386</span></a> <span class="n">nulls_first</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-2387"><a href="#Parser-2387"><span class="linenos">2387</span></a> +</span><span id="Parser-2388"><a href="#Parser-2388"><span class="linenos">2388</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">Ordered</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">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">,</span> <span class="n">nulls_first</span><span class="o">=</span><span class="n">nulls_first</span><span class="p">)</span> +</span><span id="Parser-2389"><a href="#Parser-2389"><span class="linenos">2389</span></a> +</span><span id="Parser-2390"><a href="#Parser-2390"><span class="linenos">2390</span></a> <span class="k">def</span> <span class="nf">_parse_limit</span><span class="p">(</span> +</span><span id="Parser-2391"><a href="#Parser-2391"><span class="linenos">2391</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">top</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-2392"><a href="#Parser-2392"><span class="linenos">2392</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="Parser-2393"><a href="#Parser-2393"><span class="linenos">2393</span></a> <span class="k">if</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">TOP</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">):</span> +</span><span id="Parser-2394"><a href="#Parser-2394"><span class="linenos">2394</span></a> <span class="n">limit_paren</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">L_PAREN</span><span class="p">)</span> +</span><span id="Parser-2395"><a href="#Parser-2395"><span class="linenos">2395</span></a> <span class="n">limit_exp</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2396"><a href="#Parser-2396"><span class="linenos">2396</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Limit</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> <span class="k">if</span> <span class="n">top</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-2397"><a href="#Parser-2397"><span class="linenos">2397</span></a> <span class="p">)</span> +</span><span id="Parser-2398"><a href="#Parser-2398"><span class="linenos">2398</span></a> +</span><span id="Parser-2399"><a href="#Parser-2399"><span class="linenos">2399</span></a> <span class="k">if</span> <span class="n">limit_paren</span><span class="p">:</span> +</span><span id="Parser-2400"><a href="#Parser-2400"><span class="linenos">2400</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> </span><span id="Parser-2401"><a href="#Parser-2401"><span class="linenos">2401</span></a> -</span><span id="Parser-2402"><a href="#Parser-2402"><span class="linenos">2402</span></a> <span class="k">def</span> <span class="nf">_parse_lock</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2403"><a href="#Parser-2403"><span class="linenos">2403</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"UPDATE"</span><span class="p">):</span> -</span><span id="Parser-2404"><a href="#Parser-2404"><span class="linenos">2404</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-2405"><a href="#Parser-2405"><span class="linenos">2405</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SHARE"</span><span class="p">):</span> -</span><span id="Parser-2406"><a href="#Parser-2406"><span class="linenos">2406</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-2407"><a href="#Parser-2407"><span class="linenos">2407</span></a> -</span><span id="Parser-2408"><a href="#Parser-2408"><span class="linenos">2408</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2409"><a href="#Parser-2409"><span class="linenos">2409</span></a> -</span><span id="Parser-2410"><a href="#Parser-2410"><span class="linenos">2410</span></a> <span class="k">def</span> <span class="nf">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2411"><a href="#Parser-2411"><span class="linenos">2411</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_OPERATIONS</span><span class="p">):</span> -</span><span id="Parser-2412"><a href="#Parser-2412"><span class="linenos">2412</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2402"><a href="#Parser-2402"><span class="linenos">2402</span></a> <span class="k">return</span> <span class="n">limit_exp</span> +</span><span id="Parser-2403"><a href="#Parser-2403"><span class="linenos">2403</span></a> +</span><span id="Parser-2404"><a href="#Parser-2404"><span class="linenos">2404</span></a> <span class="k">if</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">FETCH</span><span class="p">):</span> +</span><span id="Parser-2405"><a href="#Parser-2405"><span class="linenos">2405</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">))</span> +</span><span id="Parser-2406"><a href="#Parser-2406"><span class="linenos">2406</span></a> <span class="n">direction</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> <span class="k">if</span> <span class="n">direction</span> <span class="k">else</span> <span class="s2">"FIRST"</span> +</span><span id="Parser-2407"><a href="#Parser-2407"><span class="linenos">2407</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-2408"><a href="#Parser-2408"><span class="linenos">2408</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> +</span><span id="Parser-2409"><a href="#Parser-2409"><span class="linenos">2409</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">ONLY</span><span class="p">)</span> +</span><span id="Parser-2410"><a href="#Parser-2410"><span class="linenos">2410</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">Fetch</span><span class="p">,</span> <span class="n">direction</span><span class="o">=</span><span class="n">direction</span><span class="p">,</span> <span class="n">count</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> +</span><span id="Parser-2411"><a href="#Parser-2411"><span class="linenos">2411</span></a> +</span><span id="Parser-2412"><a href="#Parser-2412"><span class="linenos">2412</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-2413"><a href="#Parser-2413"><span class="linenos">2413</span></a> -</span><span id="Parser-2414"><a href="#Parser-2414"><span class="linenos">2414</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="Parser-2415"><a href="#Parser-2415"><span class="linenos">2415</span></a> -</span><span id="Parser-2416"><a href="#Parser-2416"><span class="linenos">2416</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">:</span> -</span><span id="Parser-2417"><a href="#Parser-2417"><span class="linenos">2417</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span> -</span><span id="Parser-2418"><a href="#Parser-2418"><span class="linenos">2418</span></a> <span class="k">elif</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">:</span> -</span><span id="Parser-2419"><a href="#Parser-2419"><span class="linenos">2419</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Except</span> -</span><span id="Parser-2420"><a href="#Parser-2420"><span class="linenos">2420</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2421"><a href="#Parser-2421"><span class="linenos">2421</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Intersect</span> -</span><span id="Parser-2422"><a href="#Parser-2422"><span class="linenos">2422</span></a> -</span><span id="Parser-2423"><a href="#Parser-2423"><span class="linenos">2423</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><span id="Parser-2424"><a href="#Parser-2424"><span class="linenos">2424</span></a> <span class="n">expression</span><span class="p">,</span> -</span><span id="Parser-2425"><a href="#Parser-2425"><span class="linenos">2425</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-2426"><a href="#Parser-2426"><span class="linenos">2426</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</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">ALL</span><span class="p">),</span> -</span><span id="Parser-2427"><a href="#Parser-2427"><span class="linenos">2427</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> -</span><span id="Parser-2428"><a href="#Parser-2428"><span class="linenos">2428</span></a> <span class="p">)</span> +</span><span id="Parser-2414"><a href="#Parser-2414"><span class="linenos">2414</span></a> <span class="k">def</span> <span class="nf">_parse_offset</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2415"><a href="#Parser-2415"><span class="linenos">2415</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</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="Parser-2416"><a href="#Parser-2416"><span class="linenos">2416</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2417"><a href="#Parser-2417"><span class="linenos">2417</span></a> +</span><span id="Parser-2418"><a href="#Parser-2418"><span class="linenos">2418</span></a> <span class="n">count</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_number</span><span class="p">()</span> +</span><span id="Parser-2419"><a href="#Parser-2419"><span class="linenos">2419</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">))</span> +</span><span id="Parser-2420"><a href="#Parser-2420"><span class="linenos">2420</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">Offset</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">count</span><span class="p">)</span> +</span><span id="Parser-2421"><a href="#Parser-2421"><span class="linenos">2421</span></a> +</span><span id="Parser-2422"><a href="#Parser-2422"><span class="linenos">2422</span></a> <span class="k">def</span> <span class="nf">_parse_lock</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2423"><a href="#Parser-2423"><span class="linenos">2423</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"UPDATE"</span><span class="p">):</span> +</span><span id="Parser-2424"><a href="#Parser-2424"><span class="linenos">2424</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-2425"><a href="#Parser-2425"><span class="linenos">2425</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"SHARE"</span><span class="p">):</span> +</span><span id="Parser-2426"><a href="#Parser-2426"><span class="linenos">2426</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">Lock</span><span class="p">,</span> <span class="n">update</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-2427"><a href="#Parser-2427"><span class="linenos">2427</span></a> +</span><span id="Parser-2428"><a href="#Parser-2428"><span class="linenos">2428</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="Parser-2429"><a href="#Parser-2429"><span class="linenos">2429</span></a> -</span><span id="Parser-2430"><a href="#Parser-2430"><span class="linenos">2430</span></a> <span class="k">def</span> <span class="nf">_parse_expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2431"><a href="#Parser-2431"><span class="linenos">2431</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="Parser-2432"><a href="#Parser-2432"><span class="linenos">2432</span></a> -</span><span id="Parser-2433"><a href="#Parser-2433"><span class="linenos">2433</span></a> <span class="k">def</span> <span class="nf">_parse_conjunction</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2434"><a href="#Parser-2434"><span class="linenos">2434</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONJUNCTION</span><span class="p">)</span> +</span><span id="Parser-2430"><a href="#Parser-2430"><span class="linenos">2430</span></a> <span class="k">def</span> <span class="nf">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2431"><a href="#Parser-2431"><span class="linenos">2431</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_OPERATIONS</span><span class="p">):</span> +</span><span id="Parser-2432"><a href="#Parser-2432"><span class="linenos">2432</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2433"><a href="#Parser-2433"><span class="linenos">2433</span></a> +</span><span id="Parser-2434"><a href="#Parser-2434"><span class="linenos">2434</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> </span><span id="Parser-2435"><a href="#Parser-2435"><span class="linenos">2435</span></a> -</span><span id="Parser-2436"><a href="#Parser-2436"><span class="linenos">2436</span></a> <span class="k">def</span> <span class="nf">_parse_equality</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2437"><a href="#Parser-2437"><span class="linenos">2437</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_comparison</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">EQUALITY</span><span class="p">)</span> -</span><span id="Parser-2438"><a href="#Parser-2438"><span class="linenos">2438</span></a> -</span><span id="Parser-2439"><a href="#Parser-2439"><span class="linenos">2439</span></a> <span class="k">def</span> <span class="nf">_parse_comparison</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2440"><a href="#Parser-2440"><span class="linenos">2440</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_range</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMPARISON</span><span class="p">)</span> -</span><span id="Parser-2441"><a href="#Parser-2441"><span class="linenos">2441</span></a> -</span><span id="Parser-2442"><a href="#Parser-2442"><span class="linenos">2442</span></a> <span class="k">def</span> <span class="nf">_parse_range</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2443"><a href="#Parser-2443"><span class="linenos">2443</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="Parser-2444"><a href="#Parser-2444"><span class="linenos">2444</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> -</span><span id="Parser-2445"><a href="#Parser-2445"><span class="linenos">2445</span></a> -</span><span id="Parser-2446"><a href="#Parser-2446"><span class="linenos">2446</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">):</span> -</span><span id="Parser-2447"><a href="#Parser-2447"><span class="linenos">2447</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2448"><a href="#Parser-2448"><span class="linenos">2448</span></a> <span class="k">elif</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">ISNULL</span><span class="p">):</span> -</span><span id="Parser-2449"><a href="#Parser-2449"><span class="linenos">2449</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> -</span><span id="Parser-2450"><a href="#Parser-2450"><span class="linenos">2450</span></a> -</span><span id="Parser-2451"><a href="#Parser-2451"><span class="linenos">2451</span></a> <span class="c1"># Postgres supports ISNULL and NOTNULL for conditions.</span> -</span><span id="Parser-2452"><a href="#Parser-2452"><span class="linenos">2452</span></a> <span class="c1"># https://blog.andreiavram.ro/postgresql-null-composite-type/</span> -</span><span id="Parser-2453"><a href="#Parser-2453"><span class="linenos">2453</span></a> <span class="k">if</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">NOTNULL</span><span class="p">):</span> -</span><span id="Parser-2454"><a href="#Parser-2454"><span class="linenos">2454</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> -</span><span id="Parser-2455"><a href="#Parser-2455"><span class="linenos">2455</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2456"><a href="#Parser-2456"><span class="linenos">2456</span></a> -</span><span id="Parser-2457"><a href="#Parser-2457"><span class="linenos">2457</span></a> <span class="k">if</span> <span class="n">negate</span><span class="p">:</span> -</span><span id="Parser-2458"><a href="#Parser-2458"><span class="linenos">2458</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2459"><a href="#Parser-2459"><span class="linenos">2459</span></a> -</span><span id="Parser-2460"><a href="#Parser-2460"><span class="linenos">2460</span></a> <span class="k">if</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">IS</span><span class="p">):</span> -</span><span id="Parser-2461"><a href="#Parser-2461"><span class="linenos">2461</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2462"><a href="#Parser-2462"><span class="linenos">2462</span></a> -</span><span id="Parser-2463"><a href="#Parser-2463"><span class="linenos">2463</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2464"><a href="#Parser-2464"><span class="linenos">2464</span></a> -</span><span id="Parser-2465"><a href="#Parser-2465"><span class="linenos">2465</span></a> <span class="k">def</span> <span class="nf">_parse_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2466"><a href="#Parser-2466"><span class="linenos">2466</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> -</span><span id="Parser-2467"><a href="#Parser-2467"><span class="linenos">2467</span></a> <span class="k">if</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">DISTINCT_FROM</span><span class="p">):</span> -</span><span id="Parser-2468"><a href="#Parser-2468"><span class="linenos">2468</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span> <span class="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</span> -</span><span id="Parser-2469"><a href="#Parser-2469"><span class="linenos">2469</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">klass</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">())</span> +</span><span id="Parser-2436"><a href="#Parser-2436"><span class="linenos">2436</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">:</span> +</span><span id="Parser-2437"><a href="#Parser-2437"><span class="linenos">2437</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Union</span> +</span><span id="Parser-2438"><a href="#Parser-2438"><span class="linenos">2438</span></a> <span class="k">elif</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXCEPT</span><span class="p">:</span> +</span><span id="Parser-2439"><a href="#Parser-2439"><span class="linenos">2439</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Except</span> +</span><span id="Parser-2440"><a href="#Parser-2440"><span class="linenos">2440</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2441"><a href="#Parser-2441"><span class="linenos">2441</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Intersect</span> +</span><span id="Parser-2442"><a href="#Parser-2442"><span class="linenos">2442</span></a> +</span><span id="Parser-2443"><a href="#Parser-2443"><span class="linenos">2443</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><span id="Parser-2444"><a href="#Parser-2444"><span class="linenos">2444</span></a> <span class="n">expression</span><span class="p">,</span> +</span><span id="Parser-2445"><a href="#Parser-2445"><span class="linenos">2445</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-2446"><a href="#Parser-2446"><span class="linenos">2446</span></a> <span class="n">distinct</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">DISTINCT</span><span class="p">)</span> <span class="ow">or</span> <span class="ow">not</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">ALL</span><span class="p">),</span> +</span><span id="Parser-2447"><a href="#Parser-2447"><span class="linenos">2447</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">)),</span> +</span><span id="Parser-2448"><a href="#Parser-2448"><span class="linenos">2448</span></a> <span class="p">)</span> +</span><span id="Parser-2449"><a href="#Parser-2449"><span class="linenos">2449</span></a> +</span><span id="Parser-2450"><a href="#Parser-2450"><span class="linenos">2450</span></a> <span class="k">def</span> <span class="nf">_parse_expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2451"><a href="#Parser-2451"><span class="linenos">2451</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="Parser-2452"><a href="#Parser-2452"><span class="linenos">2452</span></a> +</span><span id="Parser-2453"><a href="#Parser-2453"><span class="linenos">2453</span></a> <span class="k">def</span> <span class="nf">_parse_conjunction</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2454"><a href="#Parser-2454"><span class="linenos">2454</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONJUNCTION</span><span class="p">)</span> +</span><span id="Parser-2455"><a href="#Parser-2455"><span class="linenos">2455</span></a> +</span><span id="Parser-2456"><a href="#Parser-2456"><span class="linenos">2456</span></a> <span class="k">def</span> <span class="nf">_parse_equality</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2457"><a href="#Parser-2457"><span class="linenos">2457</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_comparison</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">EQUALITY</span><span class="p">)</span> +</span><span id="Parser-2458"><a href="#Parser-2458"><span class="linenos">2458</span></a> +</span><span id="Parser-2459"><a href="#Parser-2459"><span class="linenos">2459</span></a> <span class="k">def</span> <span class="nf">_parse_comparison</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2460"><a href="#Parser-2460"><span class="linenos">2460</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_range</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMPARISON</span><span class="p">)</span> +</span><span id="Parser-2461"><a href="#Parser-2461"><span class="linenos">2461</span></a> +</span><span id="Parser-2462"><a href="#Parser-2462"><span class="linenos">2462</span></a> <span class="k">def</span> <span class="nf">_parse_range</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2463"><a href="#Parser-2463"><span class="linenos">2463</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="Parser-2464"><a href="#Parser-2464"><span class="linenos">2464</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> +</span><span id="Parser-2465"><a href="#Parser-2465"><span class="linenos">2465</span></a> +</span><span id="Parser-2466"><a href="#Parser-2466"><span class="linenos">2466</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">):</span> +</span><span id="Parser-2467"><a href="#Parser-2467"><span class="linenos">2467</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">RANGE_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2468"><a href="#Parser-2468"><span class="linenos">2468</span></a> <span class="k">elif</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">ISNULL</span><span class="p">):</span> +</span><span id="Parser-2469"><a href="#Parser-2469"><span class="linenos">2469</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> </span><span id="Parser-2470"><a href="#Parser-2470"><span class="linenos">2470</span></a> -</span><span id="Parser-2471"><a href="#Parser-2471"><span class="linenos">2471</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2472"><a href="#Parser-2472"><span class="linenos">2472</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">,</span> -</span><span id="Parser-2473"><a href="#Parser-2473"><span class="linenos">2473</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-2474"><a href="#Parser-2474"><span class="linenos">2474</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_null</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_boolean</span><span class="p">(),</span> -</span><span id="Parser-2475"><a href="#Parser-2475"><span class="linenos">2475</span></a> <span class="p">)</span> -</span><span id="Parser-2476"><a href="#Parser-2476"><span class="linenos">2476</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">Not</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="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">this</span> -</span><span id="Parser-2477"><a href="#Parser-2477"><span class="linenos">2477</span></a> -</span><span id="Parser-2478"><a href="#Parser-2478"><span class="linenos">2478</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2479"><a href="#Parser-2479"><span class="linenos">2479</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> -</span><span id="Parser-2480"><a href="#Parser-2480"><span class="linenos">2480</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> -</span><span id="Parser-2481"><a href="#Parser-2481"><span class="linenos">2481</span></a> <span class="n">this</span> <span class="o">=</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">In</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">unnest</span><span class="o">=</span><span class="n">unnest</span><span class="p">)</span> -</span><span id="Parser-2482"><a href="#Parser-2482"><span class="linenos">2482</span></a> <span class="k">elif</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2483"><a href="#Parser-2483"><span class="linenos">2483</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">)</span> +</span><span id="Parser-2471"><a href="#Parser-2471"><span class="linenos">2471</span></a> <span class="c1"># Postgres supports ISNULL and NOTNULL for conditions.</span> +</span><span id="Parser-2472"><a href="#Parser-2472"><span class="linenos">2472</span></a> <span class="c1"># https://blog.andreiavram.ro/postgresql-null-composite-type/</span> +</span><span id="Parser-2473"><a href="#Parser-2473"><span class="linenos">2473</span></a> <span class="k">if</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">NOTNULL</span><span class="p">):</span> +</span><span id="Parser-2474"><a href="#Parser-2474"><span class="linenos">2474</span></a> <span class="n">this</span> <span class="o">=</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">Is</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">Null</span><span class="p">())</span> +</span><span id="Parser-2475"><a href="#Parser-2475"><span class="linenos">2475</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2476"><a href="#Parser-2476"><span class="linenos">2476</span></a> +</span><span id="Parser-2477"><a href="#Parser-2477"><span class="linenos">2477</span></a> <span class="k">if</span> <span class="n">negate</span><span class="p">:</span> +</span><span id="Parser-2478"><a href="#Parser-2478"><span class="linenos">2478</span></a> <span class="n">this</span> <span class="o">=</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">Not</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2479"><a href="#Parser-2479"><span class="linenos">2479</span></a> +</span><span id="Parser-2480"><a href="#Parser-2480"><span class="linenos">2480</span></a> <span class="k">if</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">IS</span><span class="p">):</span> +</span><span id="Parser-2481"><a href="#Parser-2481"><span class="linenos">2481</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_is</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2482"><a href="#Parser-2482"><span class="linenos">2482</span></a> +</span><span id="Parser-2483"><a href="#Parser-2483"><span class="linenos">2483</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-2484"><a href="#Parser-2484"><span class="linenos">2484</span></a> -</span><span id="Parser-2485"><a href="#Parser-2485"><span class="linenos">2485</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Parser-2486"><a href="#Parser-2486"><span class="linenos">2486</span></a> <span class="n">this</span> <span class="o">=</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">In</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">query</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="Parser-2487"><a href="#Parser-2487"><span class="linenos">2487</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2488"><a href="#Parser-2488"><span class="linenos">2488</span></a> <span class="n">this</span> <span class="o">=</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">In</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2489"><a href="#Parser-2489"><span class="linenos">2489</span></a> -</span><span id="Parser-2490"><a href="#Parser-2490"><span class="linenos">2490</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2491"><a href="#Parser-2491"><span class="linenos">2491</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2492"><a href="#Parser-2492"><span class="linenos">2492</span></a> <span class="n">this</span> <span class="o">=</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">In</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">field</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> -</span><span id="Parser-2493"><a href="#Parser-2493"><span class="linenos">2493</span></a> -</span><span id="Parser-2494"><a href="#Parser-2494"><span class="linenos">2494</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2495"><a href="#Parser-2495"><span class="linenos">2495</span></a> -</span><span id="Parser-2496"><a href="#Parser-2496"><span class="linenos">2496</span></a> <span class="k">def</span> <span class="nf">_parse_between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2497"><a href="#Parser-2497"><span class="linenos">2497</span></a> <span class="n">low</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="Parser-2498"><a href="#Parser-2498"><span class="linenos">2498</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">AND</span><span class="p">)</span> -</span><span id="Parser-2499"><a href="#Parser-2499"><span class="linenos">2499</span></a> <span class="n">high</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="Parser-2500"><a href="#Parser-2500"><span class="linenos">2500</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">Between</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">low</span><span class="o">=</span><span class="n">low</span><span class="p">,</span> <span class="n">high</span><span class="o">=</span><span class="n">high</span><span class="p">)</span> -</span><span id="Parser-2501"><a href="#Parser-2501"><span class="linenos">2501</span></a> -</span><span id="Parser-2502"><a href="#Parser-2502"><span class="linenos">2502</span></a> <span class="k">def</span> <span class="nf">_parse_escape</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2503"><a href="#Parser-2503"><span class="linenos">2503</span></a> <span class="k">if</span> <span class="ow">not</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">ESCAPE</span><span class="p">):</span> -</span><span id="Parser-2504"><a href="#Parser-2504"><span class="linenos">2504</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2505"><a href="#Parser-2505"><span class="linenos">2505</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">Escape</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> -</span><span id="Parser-2506"><a href="#Parser-2506"><span class="linenos">2506</span></a> -</span><span id="Parser-2507"><a href="#Parser-2507"><span class="linenos">2507</span></a> <span class="k">def</span> <span class="nf">_parse_bitwise</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2508"><a href="#Parser-2508"><span class="linenos">2508</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-2485"><a href="#Parser-2485"><span class="linenos">2485</span></a> <span class="k">def</span> <span class="nf">_parse_is</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2486"><a href="#Parser-2486"><span class="linenos">2486</span></a> <span class="n">negate</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">NOT</span><span class="p">)</span> +</span><span id="Parser-2487"><a href="#Parser-2487"><span class="linenos">2487</span></a> <span class="k">if</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">DISTINCT_FROM</span><span class="p">):</span> +</span><span id="Parser-2488"><a href="#Parser-2488"><span class="linenos">2488</span></a> <span class="n">klass</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeEQ</span> <span class="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">exp</span><span class="o">.</span><span class="n">NullSafeNEQ</span> +</span><span id="Parser-2489"><a href="#Parser-2489"><span class="linenos">2489</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">klass</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">())</span> +</span><span id="Parser-2490"><a href="#Parser-2490"><span class="linenos">2490</span></a> +</span><span id="Parser-2491"><a href="#Parser-2491"><span class="linenos">2491</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2492"><a href="#Parser-2492"><span class="linenos">2492</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Is</span><span class="p">,</span> +</span><span id="Parser-2493"><a href="#Parser-2493"><span class="linenos">2493</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-2494"><a href="#Parser-2494"><span class="linenos">2494</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_null</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_boolean</span><span class="p">(),</span> +</span><span id="Parser-2495"><a href="#Parser-2495"><span class="linenos">2495</span></a> <span class="p">)</span> +</span><span id="Parser-2496"><a href="#Parser-2496"><span class="linenos">2496</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">Not</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="k">if</span> <span class="n">negate</span> <span class="k">else</span> <span class="n">this</span> +</span><span id="Parser-2497"><a href="#Parser-2497"><span class="linenos">2497</span></a> +</span><span id="Parser-2498"><a href="#Parser-2498"><span class="linenos">2498</span></a> <span class="k">def</span> <span class="nf">_parse_in</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">])</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2499"><a href="#Parser-2499"><span class="linenos">2499</span></a> <span class="n">unnest</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnest</span><span class="p">()</span> +</span><span id="Parser-2500"><a href="#Parser-2500"><span class="linenos">2500</span></a> <span class="k">if</span> <span class="n">unnest</span><span class="p">:</span> +</span><span id="Parser-2501"><a href="#Parser-2501"><span class="linenos">2501</span></a> <span class="n">this</span> <span class="o">=</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">In</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">unnest</span><span class="o">=</span><span class="n">unnest</span><span class="p">)</span> +</span><span id="Parser-2502"><a href="#Parser-2502"><span class="linenos">2502</span></a> <span class="k">elif</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2503"><a href="#Parser-2503"><span class="linenos">2503</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">)</span> +</span><span id="Parser-2504"><a href="#Parser-2504"><span class="linenos">2504</span></a> +</span><span id="Parser-2505"><a href="#Parser-2505"><span class="linenos">2505</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expressions</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Parser-2506"><a href="#Parser-2506"><span class="linenos">2506</span></a> <span class="n">this</span> <span class="o">=</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">In</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">query</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="Parser-2507"><a href="#Parser-2507"><span class="linenos">2507</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2508"><a href="#Parser-2508"><span class="linenos">2508</span></a> <span class="n">this</span> <span class="o">=</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">In</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span><span id="Parser-2509"><a href="#Parser-2509"><span class="linenos">2509</span></a> -</span><span id="Parser-2510"><a href="#Parser-2510"><span class="linenos">2510</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-2511"><a href="#Parser-2511"><span class="linenos">2511</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">):</span> -</span><span id="Parser-2512"><a href="#Parser-2512"><span class="linenos">2512</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2513"><a href="#Parser-2513"><span class="linenos">2513</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> -</span><span id="Parser-2514"><a href="#Parser-2514"><span class="linenos">2514</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-2515"><a href="#Parser-2515"><span class="linenos">2515</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> -</span><span id="Parser-2516"><a href="#Parser-2516"><span class="linenos">2516</span></a> <span class="p">)</span> -</span><span id="Parser-2517"><a href="#Parser-2517"><span class="linenos">2517</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">):</span> -</span><span id="Parser-2518"><a href="#Parser-2518"><span class="linenos">2518</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2519"><a href="#Parser-2519"><span class="linenos">2519</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="Parser-2520"><a href="#Parser-2520"><span class="linenos">2520</span></a> <span class="p">)</span> -</span><span id="Parser-2521"><a href="#Parser-2521"><span class="linenos">2521</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">):</span> -</span><span id="Parser-2522"><a href="#Parser-2522"><span class="linenos">2522</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2523"><a href="#Parser-2523"><span class="linenos">2523</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="Parser-2524"><a href="#Parser-2524"><span class="linenos">2524</span></a> <span class="p">)</span> -</span><span id="Parser-2525"><a href="#Parser-2525"><span class="linenos">2525</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2526"><a href="#Parser-2526"><span class="linenos">2526</span></a> <span class="k">break</span> -</span><span id="Parser-2527"><a href="#Parser-2527"><span class="linenos">2527</span></a> -</span><span id="Parser-2528"><a href="#Parser-2528"><span class="linenos">2528</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2510"><a href="#Parser-2510"><span class="linenos">2510</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2511"><a href="#Parser-2511"><span class="linenos">2511</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2512"><a href="#Parser-2512"><span class="linenos">2512</span></a> <span class="n">this</span> <span class="o">=</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">In</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">field</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> +</span><span id="Parser-2513"><a href="#Parser-2513"><span class="linenos">2513</span></a> +</span><span id="Parser-2514"><a href="#Parser-2514"><span class="linenos">2514</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2515"><a href="#Parser-2515"><span class="linenos">2515</span></a> +</span><span id="Parser-2516"><a href="#Parser-2516"><span class="linenos">2516</span></a> <span class="k">def</span> <span class="nf">_parse_between</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2517"><a href="#Parser-2517"><span class="linenos">2517</span></a> <span class="n">low</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="Parser-2518"><a href="#Parser-2518"><span class="linenos">2518</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">AND</span><span class="p">)</span> +</span><span id="Parser-2519"><a href="#Parser-2519"><span class="linenos">2519</span></a> <span class="n">high</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="Parser-2520"><a href="#Parser-2520"><span class="linenos">2520</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">Between</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">low</span><span class="o">=</span><span class="n">low</span><span class="p">,</span> <span class="n">high</span><span class="o">=</span><span class="n">high</span><span class="p">)</span> +</span><span id="Parser-2521"><a href="#Parser-2521"><span class="linenos">2521</span></a> +</span><span id="Parser-2522"><a href="#Parser-2522"><span class="linenos">2522</span></a> <span class="k">def</span> <span class="nf">_parse_escape</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2523"><a href="#Parser-2523"><span class="linenos">2523</span></a> <span class="k">if</span> <span class="ow">not</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">ESCAPE</span><span class="p">):</span> +</span><span id="Parser-2524"><a href="#Parser-2524"><span class="linenos">2524</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2525"><a href="#Parser-2525"><span class="linenos">2525</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">Escape</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">())</span> +</span><span id="Parser-2526"><a href="#Parser-2526"><span class="linenos">2526</span></a> +</span><span id="Parser-2527"><a href="#Parser-2527"><span class="linenos">2527</span></a> <span class="k">def</span> <span class="nf">_parse_bitwise</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2528"><a href="#Parser-2528"><span class="linenos">2528</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> </span><span id="Parser-2529"><a href="#Parser-2529"><span class="linenos">2529</span></a> -</span><span id="Parser-2530"><a href="#Parser-2530"><span class="linenos">2530</span></a> <span class="k">def</span> <span class="nf">_parse_term</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2531"><a href="#Parser-2531"><span class="linenos">2531</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_factor</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">TERM</span><span class="p">)</span> -</span><span id="Parser-2532"><a href="#Parser-2532"><span class="linenos">2532</span></a> -</span><span id="Parser-2533"><a href="#Parser-2533"><span class="linenos">2533</span></a> <span class="k">def</span> <span class="nf">_parse_factor</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2534"><a href="#Parser-2534"><span class="linenos">2534</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">)</span> -</span><span id="Parser-2535"><a href="#Parser-2535"><span class="linenos">2535</span></a> -</span><span id="Parser-2536"><a href="#Parser-2536"><span class="linenos">2536</span></a> <span class="k">def</span> <span class="nf">_parse_unary</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2537"><a href="#Parser-2537"><span class="linenos">2537</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">):</span> -</span><span id="Parser-2538"><a href="#Parser-2538"><span class="linenos">2538</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-2539"><a href="#Parser-2539"><span class="linenos">2539</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">())</span> -</span><span id="Parser-2540"><a href="#Parser-2540"><span class="linenos">2540</span></a> -</span><span id="Parser-2541"><a href="#Parser-2541"><span class="linenos">2541</span></a> <span class="k">def</span> <span class="nf">_parse_type</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2542"><a href="#Parser-2542"><span class="linenos">2542</span></a> <span class="k">if</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">INTERVAL</span><span class="p">):</span> -</span><span id="Parser-2543"><a href="#Parser-2543"><span class="linenos">2543</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">Interval</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> -</span><span id="Parser-2544"><a href="#Parser-2544"><span class="linenos">2544</span></a> -</span><span id="Parser-2545"><a href="#Parser-2545"><span class="linenos">2545</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><span id="Parser-2546"><a href="#Parser-2546"><span class="linenos">2546</span></a> <span class="n">type_token</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 class="n">check_func</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-2547"><a href="#Parser-2547"><span class="linenos">2547</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Parser-2548"><a href="#Parser-2548"><span class="linenos">2548</span></a> -</span><span id="Parser-2549"><a href="#Parser-2549"><span class="linenos">2549</span></a> <span class="k">if</span> <span class="n">type_token</span><span class="p">:</span> -</span><span id="Parser-2550"><a href="#Parser-2550"><span class="linenos">2550</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span> -</span><span id="Parser-2551"><a href="#Parser-2551"><span class="linenos">2551</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">Cast</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">type_token</span><span class="p">)</span> -</span><span id="Parser-2552"><a href="#Parser-2552"><span class="linenos">2552</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">type_token</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="Parser-2553"><a href="#Parser-2553"><span class="linenos">2553</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="Parser-2554"><a href="#Parser-2554"><span class="linenos">2554</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> -</span><span id="Parser-2555"><a href="#Parser-2555"><span class="linenos">2555</span></a> <span class="k">return</span> <span class="n">type_token</span> -</span><span id="Parser-2556"><a href="#Parser-2556"><span class="linenos">2556</span></a> -</span><span id="Parser-2557"><a href="#Parser-2557"><span class="linenos">2557</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2558"><a href="#Parser-2558"><span class="linenos">2558</span></a> -</span><span id="Parser-2559"><a href="#Parser-2559"><span class="linenos">2559</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2560"><a href="#Parser-2560"><span class="linenos">2560</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><span id="Parser-2561"><a href="#Parser-2561"><span class="linenos">2561</span></a> -</span><span id="Parser-2562"><a href="#Parser-2562"><span class="linenos">2562</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SYSUDTLIB"</span><span class="p">,</span> <span class="s2">"."</span><span class="p">)</span> -</span><span id="Parser-2563"><a href="#Parser-2563"><span class="linenos">2563</span></a> -</span><span id="Parser-2564"><a href="#Parser-2564"><span class="linenos">2564</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">):</span> -</span><span id="Parser-2565"><a href="#Parser-2565"><span class="linenos">2565</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2566"><a href="#Parser-2566"><span class="linenos">2566</span></a> -</span><span id="Parser-2567"><a href="#Parser-2567"><span class="linenos">2567</span></a> <span class="n">type_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="Parser-2530"><a href="#Parser-2530"><span class="linenos">2530</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-2531"><a href="#Parser-2531"><span class="linenos">2531</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">):</span> +</span><span id="Parser-2532"><a href="#Parser-2532"><span class="linenos">2532</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2533"><a href="#Parser-2533"><span class="linenos">2533</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">BITWISE</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> +</span><span id="Parser-2534"><a href="#Parser-2534"><span class="linenos">2534</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-2535"><a href="#Parser-2535"><span class="linenos">2535</span></a> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> +</span><span id="Parser-2536"><a href="#Parser-2536"><span class="linenos">2536</span></a> <span class="p">)</span> +</span><span id="Parser-2537"><a href="#Parser-2537"><span class="linenos">2537</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LT</span><span class="p">):</span> +</span><span id="Parser-2538"><a href="#Parser-2538"><span class="linenos">2538</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2539"><a href="#Parser-2539"><span class="linenos">2539</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseLeftShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-2540"><a href="#Parser-2540"><span class="linenos">2540</span></a> <span class="p">)</span> +</span><span id="Parser-2541"><a href="#Parser-2541"><span class="linenos">2541</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GT</span><span class="p">):</span> +</span><span id="Parser-2542"><a href="#Parser-2542"><span class="linenos">2542</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2543"><a href="#Parser-2543"><span class="linenos">2543</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">BitwiseRightShift</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-2544"><a href="#Parser-2544"><span class="linenos">2544</span></a> <span class="p">)</span> +</span><span id="Parser-2545"><a href="#Parser-2545"><span class="linenos">2545</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2546"><a href="#Parser-2546"><span class="linenos">2546</span></a> <span class="k">break</span> +</span><span id="Parser-2547"><a href="#Parser-2547"><span class="linenos">2547</span></a> +</span><span id="Parser-2548"><a href="#Parser-2548"><span class="linenos">2548</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2549"><a href="#Parser-2549"><span class="linenos">2549</span></a> +</span><span id="Parser-2550"><a href="#Parser-2550"><span class="linenos">2550</span></a> <span class="k">def</span> <span class="nf">_parse_term</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2551"><a href="#Parser-2551"><span class="linenos">2551</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_factor</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">TERM</span><span class="p">)</span> +</span><span id="Parser-2552"><a href="#Parser-2552"><span class="linenos">2552</span></a> +</span><span id="Parser-2553"><a href="#Parser-2553"><span class="linenos">2553</span></a> <span class="k">def</span> <span class="nf">_parse_factor</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2554"><a href="#Parser-2554"><span class="linenos">2554</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_tokens</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">FACTOR</span><span class="p">)</span> +</span><span id="Parser-2555"><a href="#Parser-2555"><span class="linenos">2555</span></a> +</span><span id="Parser-2556"><a href="#Parser-2556"><span class="linenos">2556</span></a> <span class="k">def</span> <span class="nf">_parse_unary</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2557"><a href="#Parser-2557"><span class="linenos">2557</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">):</span> +</span><span id="Parser-2558"><a href="#Parser-2558"><span class="linenos">2558</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">UNARY_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-2559"><a href="#Parser-2559"><span class="linenos">2559</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">())</span> +</span><span id="Parser-2560"><a href="#Parser-2560"><span class="linenos">2560</span></a> +</span><span id="Parser-2561"><a href="#Parser-2561"><span class="linenos">2561</span></a> <span class="k">def</span> <span class="nf">_parse_type</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2562"><a href="#Parser-2562"><span class="linenos">2562</span></a> <span class="k">if</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">INTERVAL</span><span class="p">):</span> +</span><span id="Parser-2563"><a href="#Parser-2563"><span class="linenos">2563</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">Interval</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> <span class="n">unit</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">())</span> +</span><span id="Parser-2564"><a href="#Parser-2564"><span class="linenos">2564</span></a> +</span><span id="Parser-2565"><a href="#Parser-2565"><span class="linenos">2565</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><span id="Parser-2566"><a href="#Parser-2566"><span class="linenos">2566</span></a> <span class="n">type_token</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 class="n">check_func</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-2567"><a href="#Parser-2567"><span class="linenos">2567</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> </span><span id="Parser-2568"><a href="#Parser-2568"><span class="linenos">2568</span></a> -</span><span id="Parser-2569"><a href="#Parser-2569"><span class="linenos">2569</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">:</span> -</span><span id="Parser-2570"><a href="#Parser-2570"><span class="linenos">2570</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">PseudoType</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-2571"><a href="#Parser-2571"><span class="linenos">2571</span></a> -</span><span id="Parser-2572"><a href="#Parser-2572"><span class="linenos">2572</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span> -</span><span id="Parser-2573"><a href="#Parser-2573"><span class="linenos">2573</span></a> <span class="n">is_struct</span> <span class="o">=</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span> -</span><span id="Parser-2574"><a href="#Parser-2574"><span class="linenos">2574</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2575"><a href="#Parser-2575"><span class="linenos">2575</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-2569"><a href="#Parser-2569"><span class="linenos">2569</span></a> <span class="k">if</span> <span class="n">type_token</span><span class="p">:</span> +</span><span id="Parser-2570"><a href="#Parser-2570"><span class="linenos">2570</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="p">):</span> +</span><span id="Parser-2571"><a href="#Parser-2571"><span class="linenos">2571</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">Cast</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">type_token</span><span class="p">)</span> +</span><span id="Parser-2572"><a href="#Parser-2572"><span class="linenos">2572</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">type_token</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="Parser-2573"><a href="#Parser-2573"><span class="linenos">2573</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="Parser-2574"><a href="#Parser-2574"><span class="linenos">2574</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">()</span> +</span><span id="Parser-2575"><a href="#Parser-2575"><span class="linenos">2575</span></a> <span class="k">return</span> <span class="n">type_token</span> </span><span id="Parser-2576"><a href="#Parser-2576"><span class="linenos">2576</span></a> -</span><span id="Parser-2577"><a href="#Parser-2577"><span class="linenos">2577</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2578"><a href="#Parser-2578"><span class="linenos">2578</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> -</span><span id="Parser-2579"><a href="#Parser-2579"><span class="linenos">2579</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> -</span><span id="Parser-2580"><a href="#Parser-2580"><span class="linenos">2580</span></a> <span class="k">elif</span> <span class="n">nested</span><span class="p">:</span> -</span><span id="Parser-2581"><a href="#Parser-2581"><span class="linenos">2581</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> -</span><span id="Parser-2582"><a href="#Parser-2582"><span class="linenos">2582</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2583"><a href="#Parser-2583"><span class="linenos">2583</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-2584"><a href="#Parser-2584"><span class="linenos">2584</span></a> -</span><span id="Parser-2585"><a href="#Parser-2585"><span class="linenos">2585</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Parser-2586"><a href="#Parser-2586"><span class="linenos">2586</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="Parser-2587"><a href="#Parser-2587"><span class="linenos">2587</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2577"><a href="#Parser-2577"><span class="linenos">2577</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2578"><a href="#Parser-2578"><span class="linenos">2578</span></a> +</span><span id="Parser-2579"><a href="#Parser-2579"><span class="linenos">2579</span></a> <span class="k">def</span> <span class="nf">_parse_types</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">check_func</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2580"><a href="#Parser-2580"><span class="linenos">2580</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><span id="Parser-2581"><a href="#Parser-2581"><span class="linenos">2581</span></a> +</span><span id="Parser-2582"><a href="#Parser-2582"><span class="linenos">2582</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SYSUDTLIB"</span><span class="p">,</span> <span class="s2">"."</span><span class="p">)</span> +</span><span id="Parser-2583"><a href="#Parser-2583"><span class="linenos">2583</span></a> +</span><span id="Parser-2584"><a href="#Parser-2584"><span class="linenos">2584</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">):</span> +</span><span id="Parser-2585"><a href="#Parser-2585"><span class="linenos">2585</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2586"><a href="#Parser-2586"><span class="linenos">2586</span></a> +</span><span id="Parser-2587"><a href="#Parser-2587"><span class="linenos">2587</span></a> <span class="n">type_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> </span><span id="Parser-2588"><a href="#Parser-2588"><span class="linenos">2588</span></a> -</span><span id="Parser-2589"><a href="#Parser-2589"><span class="linenos">2589</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2590"><a href="#Parser-2590"><span class="linenos">2590</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Parser-2589"><a href="#Parser-2589"><span class="linenos">2589</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PSEUDO_TYPE</span><span class="p">:</span> +</span><span id="Parser-2590"><a href="#Parser-2590"><span class="linenos">2590</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">PseudoType</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> </span><span id="Parser-2591"><a href="#Parser-2591"><span class="linenos">2591</span></a> -</span><span id="Parser-2592"><a href="#Parser-2592"><span class="linenos">2592</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">nested</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> -</span><span id="Parser-2593"><a href="#Parser-2593"><span class="linenos">2593</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="Parser-2594"><a href="#Parser-2594"><span class="linenos">2594</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="Parser-2595"><a href="#Parser-2595"><span class="linenos">2595</span></a> <span class="n">expressions</span><span class="o">=</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="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)],</span> -</span><span id="Parser-2596"><a href="#Parser-2596"><span class="linenos">2596</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Parser-2597"><a href="#Parser-2597"><span class="linenos">2597</span></a> <span class="p">)</span> -</span><span id="Parser-2598"><a href="#Parser-2598"><span class="linenos">2598</span></a> -</span><span id="Parser-2599"><a href="#Parser-2599"><span class="linenos">2599</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> -</span><span id="Parser-2600"><a href="#Parser-2600"><span class="linenos">2600</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="Parser-2601"><a href="#Parser-2601"><span class="linenos">2601</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="Parser-2602"><a href="#Parser-2602"><span class="linenos">2602</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">this</span><span class="p">],</span> -</span><span id="Parser-2603"><a href="#Parser-2603"><span class="linenos">2603</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> -</span><span id="Parser-2604"><a href="#Parser-2604"><span class="linenos">2604</span></a> <span class="p">)</span> -</span><span id="Parser-2605"><a href="#Parser-2605"><span class="linenos">2605</span></a> -</span><span id="Parser-2606"><a href="#Parser-2606"><span class="linenos">2606</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2607"><a href="#Parser-2607"><span class="linenos">2607</span></a> -</span><span id="Parser-2608"><a href="#Parser-2608"><span class="linenos">2608</span></a> <span class="k">if</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">L_BRACKET</span><span class="p">):</span> -</span><span id="Parser-2609"><a href="#Parser-2609"><span class="linenos">2609</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="Parser-2610"><a href="#Parser-2610"><span class="linenos">2610</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2592"><a href="#Parser-2592"><span class="linenos">2592</span></a> <span class="n">nested</span> <span class="o">=</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NESTED_TYPE_TOKENS</span> +</span><span id="Parser-2593"><a href="#Parser-2593"><span class="linenos">2593</span></a> <span class="n">is_struct</span> <span class="o">=</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span> +</span><span id="Parser-2594"><a href="#Parser-2594"><span class="linenos">2594</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2595"><a href="#Parser-2595"><span class="linenos">2595</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-2596"><a href="#Parser-2596"><span class="linenos">2596</span></a> +</span><span id="Parser-2597"><a href="#Parser-2597"><span class="linenos">2597</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2598"><a href="#Parser-2598"><span class="linenos">2598</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> +</span><span id="Parser-2599"><a href="#Parser-2599"><span class="linenos">2599</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> +</span><span id="Parser-2600"><a href="#Parser-2600"><span class="linenos">2600</span></a> <span class="k">elif</span> <span class="n">nested</span><span class="p">:</span> +</span><span id="Parser-2601"><a href="#Parser-2601"><span class="linenos">2601</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> +</span><span id="Parser-2602"><a href="#Parser-2602"><span class="linenos">2602</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2603"><a href="#Parser-2603"><span class="linenos">2603</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-2604"><a href="#Parser-2604"><span class="linenos">2604</span></a> +</span><span id="Parser-2605"><a href="#Parser-2605"><span class="linenos">2605</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Parser-2606"><a href="#Parser-2606"><span class="linenos">2606</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="Parser-2607"><a href="#Parser-2607"><span class="linenos">2607</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2608"><a href="#Parser-2608"><span class="linenos">2608</span></a> +</span><span id="Parser-2609"><a href="#Parser-2609"><span class="linenos">2609</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2610"><a href="#Parser-2610"><span class="linenos">2610</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="kc">True</span> </span><span id="Parser-2611"><a href="#Parser-2611"><span class="linenos">2611</span></a> -</span><span id="Parser-2612"><a href="#Parser-2612"><span class="linenos">2612</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="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 class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2613"><a href="#Parser-2613"><span class="linenos">2613</span></a> <span class="k">if</span> <span class="n">nested</span> <span class="ow">and</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">LT</span><span class="p">):</span> -</span><span id="Parser-2614"><a href="#Parser-2614"><span class="linenos">2614</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> -</span><span id="Parser-2615"><a href="#Parser-2615"><span class="linenos">2615</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> -</span><span id="Parser-2616"><a href="#Parser-2616"><span class="linenos">2616</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2617"><a href="#Parser-2617"><span class="linenos">2617</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> +</span><span id="Parser-2612"><a href="#Parser-2612"><span class="linenos">2612</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">nested</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> +</span><span id="Parser-2613"><a href="#Parser-2613"><span class="linenos">2613</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="Parser-2614"><a href="#Parser-2614"><span class="linenos">2614</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="Parser-2615"><a href="#Parser-2615"><span class="linenos">2615</span></a> <span class="n">expressions</span><span class="o">=</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="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)],</span> +</span><span id="Parser-2616"><a href="#Parser-2616"><span class="linenos">2616</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Parser-2617"><a href="#Parser-2617"><span class="linenos">2617</span></a> <span class="p">)</span> </span><span id="Parser-2618"><a href="#Parser-2618"><span class="linenos">2618</span></a> -</span><span id="Parser-2619"><a href="#Parser-2619"><span class="linenos">2619</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> -</span><span id="Parser-2620"><a href="#Parser-2620"><span class="linenos">2620</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> -</span><span id="Parser-2621"><a href="#Parser-2621"><span class="linenos">2621</span></a> -</span><span id="Parser-2622"><a href="#Parser-2622"><span class="linenos">2622</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">)):</span> -</span><span id="Parser-2623"><a href="#Parser-2623"><span class="linenos">2623</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-2624"><a href="#Parser-2624"><span class="linenos">2624</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">))</span> +</span><span id="Parser-2619"><a href="#Parser-2619"><span class="linenos">2619</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">):</span> +</span><span id="Parser-2620"><a href="#Parser-2620"><span class="linenos">2620</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="Parser-2621"><a href="#Parser-2621"><span class="linenos">2621</span></a> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="Parser-2622"><a href="#Parser-2622"><span class="linenos">2622</span></a> <span class="n">expressions</span><span class="o">=</span><span class="p">[</span><span class="n">this</span><span class="p">],</span> +</span><span id="Parser-2623"><a href="#Parser-2623"><span class="linenos">2623</span></a> <span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> +</span><span id="Parser-2624"><a href="#Parser-2624"><span class="linenos">2624</span></a> <span class="p">)</span> </span><span id="Parser-2625"><a href="#Parser-2625"><span class="linenos">2625</span></a> -</span><span id="Parser-2626"><a href="#Parser-2626"><span class="linenos">2626</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2627"><a href="#Parser-2627"><span class="linenos">2627</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TIMESTAMPS</span><span class="p">:</span> -</span><span id="Parser-2628"><a href="#Parser-2628"><span class="linenos">2628</span></a> <span class="k">if</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">WITH_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> -</span><span id="Parser-2629"><a href="#Parser-2629"><span class="linenos">2629</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2630"><a href="#Parser-2630"><span class="linenos">2630</span></a> <span class="k">elif</span> <span class="p">(</span> -</span><span id="Parser-2631"><a href="#Parser-2631"><span class="linenos">2631</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">WITH_LOCAL_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span> -</span><span id="Parser-2632"><a href="#Parser-2632"><span class="linenos">2632</span></a> <span class="p">):</span> -</span><span id="Parser-2633"><a href="#Parser-2633"><span class="linenos">2633</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMPLTZ</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2634"><a href="#Parser-2634"><span class="linenos">2634</span></a> <span class="k">elif</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">WITHOUT_TIME_ZONE</span><span class="p">):</span> -</span><span id="Parser-2635"><a href="#Parser-2635"><span class="linenos">2635</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">:</span> -</span><span id="Parser-2636"><a href="#Parser-2636"><span class="linenos">2636</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIME</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2637"><a href="#Parser-2637"><span class="linenos">2637</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2638"><a href="#Parser-2638"><span class="linenos">2638</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2639"><a href="#Parser-2639"><span class="linenos">2639</span></a> -</span><span id="Parser-2640"><a href="#Parser-2640"><span class="linenos">2640</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> +</span><span id="Parser-2626"><a href="#Parser-2626"><span class="linenos">2626</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2627"><a href="#Parser-2627"><span class="linenos">2627</span></a> +</span><span id="Parser-2628"><a href="#Parser-2628"><span class="linenos">2628</span></a> <span class="k">if</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">L_BRACKET</span><span class="p">):</span> +</span><span id="Parser-2629"><a href="#Parser-2629"><span class="linenos">2629</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="Parser-2630"><a href="#Parser-2630"><span class="linenos">2630</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2631"><a href="#Parser-2631"><span class="linenos">2631</span></a> +</span><span id="Parser-2632"><a href="#Parser-2632"><span class="linenos">2632</span></a> <span class="n">values</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="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 class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2633"><a href="#Parser-2633"><span class="linenos">2633</span></a> <span class="k">if</span> <span class="n">nested</span> <span class="ow">and</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">LT</span><span class="p">):</span> +</span><span id="Parser-2634"><a href="#Parser-2634"><span class="linenos">2634</span></a> <span class="k">if</span> <span class="n">is_struct</span><span class="p">:</span> +</span><span id="Parser-2635"><a href="#Parser-2635"><span class="linenos">2635</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_struct_kwargs</span><span class="p">)</span> +</span><span id="Parser-2636"><a href="#Parser-2636"><span class="linenos">2636</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2637"><a href="#Parser-2637"><span class="linenos">2637</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">)</span> +</span><span id="Parser-2638"><a href="#Parser-2638"><span class="linenos">2638</span></a> +</span><span id="Parser-2639"><a href="#Parser-2639"><span class="linenos">2639</span></a> <span class="k">if</span> <span class="ow">not</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">GT</span><span class="p">):</span> +</span><span id="Parser-2640"><a href="#Parser-2640"><span class="linenos">2640</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting >"</span><span class="p">)</span> </span><span id="Parser-2641"><a href="#Parser-2641"><span class="linenos">2641</span></a> -</span><span id="Parser-2642"><a href="#Parser-2642"><span class="linenos">2642</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-2643"><a href="#Parser-2643"><span class="linenos">2643</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2644"><a href="#Parser-2644"><span class="linenos">2644</span></a> <span class="k">elif</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">:</span> -</span><span id="Parser-2645"><a href="#Parser-2645"><span class="linenos">2645</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> -</span><span id="Parser-2646"><a href="#Parser-2646"><span class="linenos">2646</span></a> -</span><span id="Parser-2647"><a href="#Parser-2647"><span class="linenos">2647</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">unit</span><span class="p">:</span> -</span><span id="Parser-2648"><a href="#Parser-2648"><span class="linenos">2648</span></a> <span class="n">value</span> <span class="o">=</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">DataType</span><span class="p">,</span> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">)</span> -</span><span id="Parser-2649"><a href="#Parser-2649"><span class="linenos">2649</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2650"><a href="#Parser-2650"><span class="linenos">2650</span></a> <span class="n">value</span> <span class="o">=</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">Interval</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> -</span><span id="Parser-2651"><a href="#Parser-2651"><span class="linenos">2651</span></a> -</span><span id="Parser-2652"><a href="#Parser-2652"><span class="linenos">2652</span></a> <span class="k">if</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">check_func</span><span class="p">:</span> -</span><span id="Parser-2653"><a href="#Parser-2653"><span class="linenos">2653</span></a> <span class="n">index2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> -</span><span id="Parser-2654"><a href="#Parser-2654"><span class="linenos">2654</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-2655"><a href="#Parser-2655"><span class="linenos">2655</span></a> -</span><span id="Parser-2656"><a href="#Parser-2656"><span class="linenos">2656</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">peek</span><span class="p">:</span> -</span><span id="Parser-2657"><a href="#Parser-2657"><span class="linenos">2657</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="Parser-2658"><a href="#Parser-2658"><span class="linenos">2658</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2642"><a href="#Parser-2642"><span class="linenos">2642</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">)):</span> +</span><span id="Parser-2643"><a href="#Parser-2643"><span class="linenos">2643</span></a> <span class="n">values</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-2644"><a href="#Parser-2644"><span class="linenos">2644</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">))</span> +</span><span id="Parser-2645"><a href="#Parser-2645"><span class="linenos">2645</span></a> +</span><span id="Parser-2646"><a href="#Parser-2646"><span class="linenos">2646</span></a> <span class="n">value</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2647"><a href="#Parser-2647"><span class="linenos">2647</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TIMESTAMPS</span><span class="p">:</span> +</span><span id="Parser-2648"><a href="#Parser-2648"><span class="linenos">2648</span></a> <span class="k">if</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">WITH_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">:</span> +</span><span id="Parser-2649"><a href="#Parser-2649"><span class="linenos">2649</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2650"><a href="#Parser-2650"><span class="linenos">2650</span></a> <span class="k">elif</span> <span class="p">(</span> +</span><span id="Parser-2651"><a href="#Parser-2651"><span class="linenos">2651</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">WITH_LOCAL_TIME_ZONE</span><span class="p">)</span> <span class="ow">or</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span> +</span><span id="Parser-2652"><a href="#Parser-2652"><span class="linenos">2652</span></a> <span class="p">):</span> +</span><span id="Parser-2653"><a href="#Parser-2653"><span class="linenos">2653</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMPLTZ</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2654"><a href="#Parser-2654"><span class="linenos">2654</span></a> <span class="k">elif</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">WITHOUT_TIME_ZONE</span><span class="p">):</span> +</span><span id="Parser-2655"><a href="#Parser-2655"><span class="linenos">2655</span></a> <span class="k">if</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">:</span> +</span><span id="Parser-2656"><a href="#Parser-2656"><span class="linenos">2656</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIME</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2657"><a href="#Parser-2657"><span class="linenos">2657</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2658"><a href="#Parser-2658"><span class="linenos">2658</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> </span><span id="Parser-2659"><a href="#Parser-2659"><span class="linenos">2659</span></a> -</span><span id="Parser-2660"><a href="#Parser-2660"><span class="linenos">2660</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index2</span><span class="p">)</span> +</span><span id="Parser-2660"><a href="#Parser-2660"><span class="linenos">2660</span></a> <span class="n">maybe_func</span> <span class="o">=</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span> </span><span id="Parser-2661"><a href="#Parser-2661"><span class="linenos">2661</span></a> -</span><span id="Parser-2662"><a href="#Parser-2662"><span class="linenos">2662</span></a> <span class="k">if</span> <span class="n">value</span><span class="p">:</span> -</span><span id="Parser-2663"><a href="#Parser-2663"><span class="linenos">2663</span></a> <span class="k">return</span> <span class="n">value</span> -</span><span id="Parser-2664"><a href="#Parser-2664"><span class="linenos">2664</span></a> -</span><span id="Parser-2665"><a href="#Parser-2665"><span class="linenos">2665</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="Parser-2666"><a href="#Parser-2666"><span class="linenos">2666</span></a> <span class="n">this</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">Type</span><span class="p">[</span><span class="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="o">.</span><span class="n">upper</span><span class="p">()],</span> -</span><span id="Parser-2667"><a href="#Parser-2667"><span class="linenos">2667</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> -</span><span id="Parser-2668"><a href="#Parser-2668"><span class="linenos">2668</span></a> <span class="n">nested</span><span class="o">=</span><span class="n">nested</span><span class="p">,</span> -</span><span id="Parser-2669"><a href="#Parser-2669"><span class="linenos">2669</span></a> <span class="n">values</span><span class="o">=</span><span class="n">values</span><span class="p">,</span> -</span><span id="Parser-2670"><a href="#Parser-2670"><span class="linenos">2670</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> -</span><span id="Parser-2671"><a href="#Parser-2671"><span class="linenos">2671</span></a> <span class="p">)</span> -</span><span id="Parser-2672"><a href="#Parser-2672"><span class="linenos">2672</span></a> -</span><span id="Parser-2673"><a href="#Parser-2673"><span class="linenos">2673</span></a> <span class="k">def</span> <span class="nf">_parse_struct_kwargs</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2674"><a href="#Parser-2674"><span class="linenos">2674</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">:</span> -</span><span id="Parser-2675"><a href="#Parser-2675"><span class="linenos">2675</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span> -</span><span id="Parser-2676"><a href="#Parser-2676"><span class="linenos">2676</span></a> -</span><span id="Parser-2677"><a href="#Parser-2677"><span class="linenos">2677</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-2678"><a href="#Parser-2678"><span class="linenos">2678</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">COLON</span><span class="p">)</span> -</span><span id="Parser-2679"><a href="#Parser-2679"><span class="linenos">2679</span></a> <span class="n">data_type</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="Parser-2680"><a href="#Parser-2680"><span class="linenos">2680</span></a> -</span><span id="Parser-2681"><a href="#Parser-2681"><span class="linenos">2681</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">data_type</span><span class="p">:</span> -</span><span id="Parser-2682"><a href="#Parser-2682"><span class="linenos">2682</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2683"><a href="#Parser-2683"><span class="linenos">2683</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">StructKwarg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span> +</span><span id="Parser-2662"><a href="#Parser-2662"><span class="linenos">2662</span></a> <span class="k">if</span> <span class="n">value</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-2663"><a href="#Parser-2663"><span class="linenos">2663</span></a> <span class="n">value</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">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">TIMESTAMP</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2664"><a href="#Parser-2664"><span class="linenos">2664</span></a> <span class="k">elif</span> <span class="n">type_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">:</span> +</span><span id="Parser-2665"><a href="#Parser-2665"><span class="linenos">2665</span></a> <span class="n">unit</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> +</span><span id="Parser-2666"><a href="#Parser-2666"><span class="linenos">2666</span></a> +</span><span id="Parser-2667"><a href="#Parser-2667"><span class="linenos">2667</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">unit</span><span class="p">:</span> +</span><span id="Parser-2668"><a href="#Parser-2668"><span class="linenos">2668</span></a> <span class="n">value</span> <span class="o">=</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">DataType</span><span class="p">,</span> <span class="n">this</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">Type</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">)</span> +</span><span id="Parser-2669"><a href="#Parser-2669"><span class="linenos">2669</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2670"><a href="#Parser-2670"><span class="linenos">2670</span></a> <span class="n">value</span> <span class="o">=</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">Interval</span><span class="p">,</span> <span class="n">unit</span><span class="o">=</span><span class="n">unit</span><span class="p">)</span> +</span><span id="Parser-2671"><a href="#Parser-2671"><span class="linenos">2671</span></a> +</span><span id="Parser-2672"><a href="#Parser-2672"><span class="linenos">2672</span></a> <span class="k">if</span> <span class="n">maybe_func</span> <span class="ow">and</span> <span class="n">check_func</span><span class="p">:</span> +</span><span id="Parser-2673"><a href="#Parser-2673"><span class="linenos">2673</span></a> <span class="n">index2</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> +</span><span id="Parser-2674"><a href="#Parser-2674"><span class="linenos">2674</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> +</span><span id="Parser-2675"><a href="#Parser-2675"><span class="linenos">2675</span></a> +</span><span id="Parser-2676"><a href="#Parser-2676"><span class="linenos">2676</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">peek</span><span class="p">:</span> +</span><span id="Parser-2677"><a href="#Parser-2677"><span class="linenos">2677</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="Parser-2678"><a href="#Parser-2678"><span class="linenos">2678</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2679"><a href="#Parser-2679"><span class="linenos">2679</span></a> +</span><span id="Parser-2680"><a href="#Parser-2680"><span class="linenos">2680</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retreat</span><span class="p">(</span><span class="n">index2</span><span class="p">)</span> +</span><span id="Parser-2681"><a href="#Parser-2681"><span class="linenos">2681</span></a> +</span><span id="Parser-2682"><a href="#Parser-2682"><span class="linenos">2682</span></a> <span class="k">if</span> <span class="n">value</span><span class="p">:</span> +</span><span id="Parser-2683"><a href="#Parser-2683"><span class="linenos">2683</span></a> <span class="k">return</span> <span class="n">value</span> </span><span id="Parser-2684"><a href="#Parser-2684"><span class="linenos">2684</span></a> -</span><span id="Parser-2685"><a href="#Parser-2685"><span class="linenos">2685</span></a> <span class="k">def</span> <span class="nf">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2686"><a href="#Parser-2686"><span class="linenos">2686</span></a> <span class="k">if</span> <span class="ow">not</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">AT_TIME_ZONE</span><span class="p">):</span> -</span><span id="Parser-2687"><a href="#Parser-2687"><span class="linenos">2687</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2688"><a href="#Parser-2688"><span class="linenos">2688</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">AtTimeZone</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">zone</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">())</span> -</span><span id="Parser-2689"><a href="#Parser-2689"><span class="linenos">2689</span></a> -</span><span id="Parser-2690"><a href="#Parser-2690"><span class="linenos">2690</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2691"><a href="#Parser-2691"><span class="linenos">2691</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> -</span><span id="Parser-2692"><a href="#Parser-2692"><span class="linenos">2692</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> -</span><span id="Parser-2693"><a href="#Parser-2693"><span class="linenos">2693</span></a> <span class="n">this</span> <span class="o">=</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">Column</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2694"><a href="#Parser-2694"><span class="linenos">2694</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> -</span><span id="Parser-2695"><a href="#Parser-2695"><span class="linenos">2695</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2696"><a href="#Parser-2696"><span class="linenos">2696</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2697"><a href="#Parser-2697"><span class="linenos">2697</span></a> -</span><span id="Parser-2698"><a href="#Parser-2698"><span class="linenos">2698</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">):</span> -</span><span id="Parser-2699"><a href="#Parser-2699"><span class="linenos">2699</span></a> <span class="n">op_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="Parser-2700"><a href="#Parser-2700"><span class="linenos">2700</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">op_token</span><span class="p">)</span> -</span><span id="Parser-2701"><a href="#Parser-2701"><span class="linenos">2701</span></a> -</span><span id="Parser-2702"><a href="#Parser-2702"><span class="linenos">2702</span></a> <span class="k">if</span> <span class="n">op_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> -</span><span id="Parser-2703"><a href="#Parser-2703"><span class="linenos">2703</span></a> <span class="n">field</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="Parser-2704"><a href="#Parser-2704"><span class="linenos">2704</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">field</span><span class="p">:</span> -</span><span id="Parser-2705"><a href="#Parser-2705"><span class="linenos">2705</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected type"</span><span class="p">)</span> -</span><span id="Parser-2706"><a href="#Parser-2706"><span class="linenos">2706</span></a> <span class="k">elif</span> <span class="n">op</span><span class="p">:</span> -</span><span id="Parser-2707"><a href="#Parser-2707"><span class="linenos">2707</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-2708"><a href="#Parser-2708"><span class="linenos">2708</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-2709"><a href="#Parser-2709"><span class="linenos">2709</span></a> <span class="n">field</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-2710"><a href="#Parser-2710"><span class="linenos">2710</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> -</span><span id="Parser-2711"><a href="#Parser-2711"><span class="linenos">2711</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span> -</span><span id="Parser-2712"><a href="#Parser-2712"><span class="linenos">2712</span></a> <span class="k">else</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="n">value</span><span class="p">)</span> -</span><span id="Parser-2713"><a href="#Parser-2713"><span class="linenos">2713</span></a> <span class="p">)</span> -</span><span id="Parser-2714"><a href="#Parser-2714"><span class="linenos">2714</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2715"><a href="#Parser-2715"><span class="linenos">2715</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-2716"><a href="#Parser-2716"><span class="linenos">2716</span></a> -</span><span id="Parser-2717"><a href="#Parser-2717"><span class="linenos">2717</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Func</span><span class="p">):</span> -</span><span id="Parser-2718"><a href="#Parser-2718"><span class="linenos">2718</span></a> <span class="c1"># bigquery allows function calls like x.y.count(...)</span> -</span><span id="Parser-2719"><a href="#Parser-2719"><span class="linenos">2719</span></a> <span class="c1"># SAFE.SUBSTR(...)</span> -</span><span id="Parser-2720"><a href="#Parser-2720"><span class="linenos">2720</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules</span> -</span><span id="Parser-2721"><a href="#Parser-2721"><span class="linenos">2721</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2722"><a href="#Parser-2722"><span class="linenos">2722</span></a> -</span><span id="Parser-2723"><a href="#Parser-2723"><span class="linenos">2723</span></a> <span class="k">if</span> <span class="n">op</span><span class="p">:</span> -</span><span id="Parser-2724"><a href="#Parser-2724"><span class="linenos">2724</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">field</span><span class="p">)</span> -</span><span id="Parser-2725"><a href="#Parser-2725"><span class="linenos">2725</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">this</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">"catalog"</span><span class="p">):</span> -</span><span id="Parser-2726"><a href="#Parser-2726"><span class="linenos">2726</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2727"><a href="#Parser-2727"><span class="linenos">2727</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">,</span> -</span><span id="Parser-2728"><a href="#Parser-2728"><span class="linenos">2728</span></a> <span class="n">this</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> -</span><span id="Parser-2729"><a href="#Parser-2729"><span class="linenos">2729</span></a> <span class="n">table</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-2730"><a href="#Parser-2730"><span class="linenos">2730</span></a> <span class="n">db</span><span class="o">=</span><span class="n">this</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">"table"</span><span class="p">),</span> -</span><span id="Parser-2731"><a href="#Parser-2731"><span class="linenos">2731</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">this</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">"db"</span><span class="p">),</span> -</span><span id="Parser-2732"><a href="#Parser-2732"><span class="linenos">2732</span></a> <span class="p">)</span> -</span><span id="Parser-2733"><a href="#Parser-2733"><span class="linenos">2733</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2734"><a href="#Parser-2734"><span class="linenos">2734</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">field</span><span class="p">)</span> -</span><span id="Parser-2735"><a href="#Parser-2735"><span class="linenos">2735</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2685"><a href="#Parser-2685"><span class="linenos">2685</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="Parser-2686"><a href="#Parser-2686"><span class="linenos">2686</span></a> <span class="n">this</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">Type</span><span class="p">[</span><span class="n">type_token</span><span class="o">.</span><span class="n">value</span><span class="o">.</span><span class="n">upper</span><span class="p">()],</span> +</span><span id="Parser-2687"><a href="#Parser-2687"><span class="linenos">2687</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> +</span><span id="Parser-2688"><a href="#Parser-2688"><span class="linenos">2688</span></a> <span class="n">nested</span><span class="o">=</span><span class="n">nested</span><span class="p">,</span> +</span><span id="Parser-2689"><a href="#Parser-2689"><span class="linenos">2689</span></a> <span class="n">values</span><span class="o">=</span><span class="n">values</span><span class="p">,</span> +</span><span id="Parser-2690"><a href="#Parser-2690"><span class="linenos">2690</span></a> <span class="n">prefix</span><span class="o">=</span><span class="n">prefix</span><span class="p">,</span> +</span><span id="Parser-2691"><a href="#Parser-2691"><span class="linenos">2691</span></a> <span class="p">)</span> +</span><span id="Parser-2692"><a href="#Parser-2692"><span class="linenos">2692</span></a> +</span><span id="Parser-2693"><a href="#Parser-2693"><span class="linenos">2693</span></a> <span class="k">def</span> <span class="nf">_parse_struct_kwargs</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2694"><a href="#Parser-2694"><span class="linenos">2694</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">TYPE_TOKENS</span><span class="p">:</span> +</span><span id="Parser-2695"><a href="#Parser-2695"><span class="linenos">2695</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">()</span> +</span><span id="Parser-2696"><a href="#Parser-2696"><span class="linenos">2696</span></a> +</span><span id="Parser-2697"><a href="#Parser-2697"><span class="linenos">2697</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-2698"><a href="#Parser-2698"><span class="linenos">2698</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">COLON</span><span class="p">)</span> +</span><span id="Parser-2699"><a href="#Parser-2699"><span class="linenos">2699</span></a> <span class="n">data_type</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="Parser-2700"><a href="#Parser-2700"><span class="linenos">2700</span></a> +</span><span id="Parser-2701"><a href="#Parser-2701"><span class="linenos">2701</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">data_type</span><span class="p">:</span> +</span><span id="Parser-2702"><a href="#Parser-2702"><span class="linenos">2702</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2703"><a href="#Parser-2703"><span class="linenos">2703</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">StructKwarg</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">data_type</span><span class="p">)</span> +</span><span id="Parser-2704"><a href="#Parser-2704"><span class="linenos">2704</span></a> +</span><span id="Parser-2705"><a href="#Parser-2705"><span class="linenos">2705</span></a> <span class="k">def</span> <span class="nf">_parse_at_time_zone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2706"><a href="#Parser-2706"><span class="linenos">2706</span></a> <span class="k">if</span> <span class="ow">not</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">AT_TIME_ZONE</span><span class="p">):</span> +</span><span id="Parser-2707"><a href="#Parser-2707"><span class="linenos">2707</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2708"><a href="#Parser-2708"><span class="linenos">2708</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">AtTimeZone</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">zone</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_unary</span><span class="p">())</span> +</span><span id="Parser-2709"><a href="#Parser-2709"><span class="linenos">2709</span></a> +</span><span id="Parser-2710"><a href="#Parser-2710"><span class="linenos">2710</span></a> <span class="k">def</span> <span class="nf">_parse_column</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2711"><a href="#Parser-2711"><span class="linenos">2711</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">()</span> +</span><span id="Parser-2712"><a href="#Parser-2712"><span class="linenos">2712</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> +</span><span id="Parser-2713"><a href="#Parser-2713"><span class="linenos">2713</span></a> <span class="n">this</span> <span class="o">=</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">Column</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2714"><a href="#Parser-2714"><span class="linenos">2714</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span><span class="p">:</span> +</span><span id="Parser-2715"><a href="#Parser-2715"><span class="linenos">2715</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2716"><a href="#Parser-2716"><span class="linenos">2716</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2717"><a href="#Parser-2717"><span class="linenos">2717</span></a> +</span><span id="Parser-2718"><a href="#Parser-2718"><span class="linenos">2718</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="p">):</span> +</span><span id="Parser-2719"><a href="#Parser-2719"><span class="linenos">2719</span></a> <span class="n">op_token</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="Parser-2720"><a href="#Parser-2720"><span class="linenos">2720</span></a> <span class="n">op</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">COLUMN_OPERATORS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">op_token</span><span class="p">)</span> +</span><span id="Parser-2721"><a href="#Parser-2721"><span class="linenos">2721</span></a> +</span><span id="Parser-2722"><a href="#Parser-2722"><span class="linenos">2722</span></a> <span class="k">if</span> <span class="n">op_token</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">:</span> +</span><span id="Parser-2723"><a href="#Parser-2723"><span class="linenos">2723</span></a> <span class="n">field</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="Parser-2724"><a href="#Parser-2724"><span class="linenos">2724</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">field</span><span class="p">:</span> +</span><span id="Parser-2725"><a href="#Parser-2725"><span class="linenos">2725</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected type"</span><span class="p">)</span> +</span><span id="Parser-2726"><a href="#Parser-2726"><span class="linenos">2726</span></a> <span class="k">elif</span> <span class="n">op</span><span class="p">:</span> +</span><span id="Parser-2727"><a href="#Parser-2727"><span class="linenos">2727</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-2728"><a href="#Parser-2728"><span class="linenos">2728</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-2729"><a href="#Parser-2729"><span class="linenos">2729</span></a> <span class="n">field</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-2730"><a href="#Parser-2730"><span class="linenos">2730</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">value</span><span class="p">)</span> +</span><span id="Parser-2731"><a href="#Parser-2731"><span class="linenos">2731</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span> +</span><span id="Parser-2732"><a href="#Parser-2732"><span class="linenos">2732</span></a> <span class="k">else</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="n">value</span><span class="p">)</span> +</span><span id="Parser-2733"><a href="#Parser-2733"><span class="linenos">2733</span></a> <span class="p">)</span> +</span><span id="Parser-2734"><a href="#Parser-2734"><span class="linenos">2734</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2735"><a href="#Parser-2735"><span class="linenos">2735</span></a> <span class="n">field</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> </span><span id="Parser-2736"><a href="#Parser-2736"><span class="linenos">2736</span></a> -</span><span id="Parser-2737"><a href="#Parser-2737"><span class="linenos">2737</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2738"><a href="#Parser-2738"><span class="linenos">2738</span></a> -</span><span id="Parser-2739"><a href="#Parser-2739"><span class="linenos">2739</span></a> <span class="k">def</span> <span class="nf">_parse_primary</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2740"><a href="#Parser-2740"><span class="linenos">2740</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">):</span> -</span><span id="Parser-2741"><a href="#Parser-2741"><span class="linenos">2741</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="Parser-2742"><a href="#Parser-2742"><span class="linenos">2742</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-2743"><a href="#Parser-2743"><span class="linenos">2743</span></a> -</span><span id="Parser-2744"><a href="#Parser-2744"><span class="linenos">2744</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> -</span><span id="Parser-2745"><a href="#Parser-2745"><span class="linenos">2745</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">primary</span><span class="p">]</span> -</span><span id="Parser-2746"><a href="#Parser-2746"><span class="linenos">2746</span></a> <span class="k">while</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">STRING</span><span class="p">):</span> -</span><span id="Parser-2747"><a href="#Parser-2747"><span class="linenos">2747</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> -</span><span id="Parser-2748"><a href="#Parser-2748"><span class="linenos">2748</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Parser-2749"><a href="#Parser-2749"><span class="linenos">2749</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">Concat</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2750"><a href="#Parser-2750"><span class="linenos">2750</span></a> <span class="k">return</span> <span class="n">primary</span> -</span><span id="Parser-2751"><a href="#Parser-2751"><span class="linenos">2751</span></a> -</span><span id="Parser-2752"><a href="#Parser-2752"><span class="linenos">2752</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">):</span> -</span><span id="Parser-2753"><a href="#Parser-2753"><span class="linenos">2753</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="sa">f</span><span class="s2">"0.</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Parser-2754"><a href="#Parser-2754"><span class="linenos">2754</span></a> -</span><span id="Parser-2755"><a href="#Parser-2755"><span class="linenos">2755</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2756"><a href="#Parser-2756"><span class="linenos">2756</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser-2757"><a href="#Parser-2757"><span class="linenos">2757</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> +</span><span id="Parser-2737"><a href="#Parser-2737"><span class="linenos">2737</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">field</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Func</span><span class="p">):</span> +</span><span id="Parser-2738"><a href="#Parser-2738"><span class="linenos">2738</span></a> <span class="c1"># bigquery allows function calls like x.y.count(...)</span> +</span><span id="Parser-2739"><a href="#Parser-2739"><span class="linenos">2739</span></a> <span class="c1"># SAFE.SUBSTR(...)</span> +</span><span id="Parser-2740"><a href="#Parser-2740"><span class="linenos">2740</span></a> <span class="c1"># https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-reference#function_call_rules</span> +</span><span id="Parser-2741"><a href="#Parser-2741"><span class="linenos">2741</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2742"><a href="#Parser-2742"><span class="linenos">2742</span></a> +</span><span id="Parser-2743"><a href="#Parser-2743"><span class="linenos">2743</span></a> <span class="k">if</span> <span class="n">op</span><span class="p">:</span> +</span><span id="Parser-2744"><a href="#Parser-2744"><span class="linenos">2744</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">op</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">,</span> <span class="n">field</span><span class="p">)</span> +</span><span id="Parser-2745"><a href="#Parser-2745"><span class="linenos">2745</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">this</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">"catalog"</span><span class="p">):</span> +</span><span id="Parser-2746"><a href="#Parser-2746"><span class="linenos">2746</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2747"><a href="#Parser-2747"><span class="linenos">2747</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">,</span> +</span><span id="Parser-2748"><a href="#Parser-2748"><span class="linenos">2748</span></a> <span class="n">this</span><span class="o">=</span><span class="n">field</span><span class="p">,</span> +</span><span id="Parser-2749"><a href="#Parser-2749"><span class="linenos">2749</span></a> <span class="n">table</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-2750"><a href="#Parser-2750"><span class="linenos">2750</span></a> <span class="n">db</span><span class="o">=</span><span class="n">this</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">"table"</span><span class="p">),</span> +</span><span id="Parser-2751"><a href="#Parser-2751"><span class="linenos">2751</span></a> <span class="n">catalog</span><span class="o">=</span><span class="n">this</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">"db"</span><span class="p">),</span> +</span><span id="Parser-2752"><a href="#Parser-2752"><span class="linenos">2752</span></a> <span class="p">)</span> +</span><span id="Parser-2753"><a href="#Parser-2753"><span class="linenos">2753</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2754"><a href="#Parser-2754"><span class="linenos">2754</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">field</span><span class="p">)</span> +</span><span id="Parser-2755"><a href="#Parser-2755"><span class="linenos">2755</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2756"><a href="#Parser-2756"><span class="linenos">2756</span></a> +</span><span id="Parser-2757"><a href="#Parser-2757"><span class="linenos">2757</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-2758"><a href="#Parser-2758"><span class="linenos">2758</span></a> -</span><span id="Parser-2759"><a href="#Parser-2759"><span class="linenos">2759</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> -</span><span id="Parser-2760"><a href="#Parser-2760"><span class="linenos">2760</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">query</span><span class="p">]</span> -</span><span id="Parser-2761"><a href="#Parser-2761"><span class="linenos">2761</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2762"><a href="#Parser-2762"><span class="linenos">2762</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="Parser-2763"><a href="#Parser-2763"><span class="linenos">2763</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> <span class="n">explicit</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-2764"><a href="#Parser-2764"><span class="linenos">2764</span></a> <span class="p">)</span> -</span><span id="Parser-2765"><a href="#Parser-2765"><span class="linenos">2765</span></a> -</span><span id="Parser-2766"><a href="#Parser-2766"><span class="linenos">2766</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> -</span><span id="Parser-2767"><a href="#Parser-2767"><span class="linenos">2767</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2768"><a href="#Parser-2768"><span class="linenos">2768</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2769"><a href="#Parser-2769"><span class="linenos">2769</span></a> -</span><span id="Parser-2770"><a href="#Parser-2770"><span class="linenos">2770</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> -</span><span id="Parser-2771"><a href="#Parser-2771"><span class="linenos">2771</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> -</span><span id="Parser-2772"><a href="#Parser-2772"><span class="linenos">2772</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</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">parse_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-2773"><a href="#Parser-2773"><span class="linenos">2773</span></a> <span class="p">)</span> -</span><span id="Parser-2774"><a href="#Parser-2774"><span class="linenos">2774</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Parser-2775"><a href="#Parser-2775"><span class="linenos">2775</span></a> <span class="n">this</span> <span class="o">=</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-2776"><a href="#Parser-2776"><span class="linenos">2776</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2777"><a href="#Parser-2777"><span class="linenos">2777</span></a> <span class="n">this</span> <span class="o">=</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">Paren</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2759"><a href="#Parser-2759"><span class="linenos">2759</span></a> <span class="k">def</span> <span class="nf">_parse_primary</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2760"><a href="#Parser-2760"><span class="linenos">2760</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">):</span> +</span><span id="Parser-2761"><a href="#Parser-2761"><span class="linenos">2761</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="Parser-2762"><a href="#Parser-2762"><span class="linenos">2762</span></a> <span class="n">primary</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-2763"><a href="#Parser-2763"><span class="linenos">2763</span></a> +</span><span id="Parser-2764"><a href="#Parser-2764"><span class="linenos">2764</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">:</span> +</span><span id="Parser-2765"><a href="#Parser-2765"><span class="linenos">2765</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">primary</span><span class="p">]</span> +</span><span id="Parser-2766"><a href="#Parser-2766"><span class="linenos">2766</span></a> <span class="k">while</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">STRING</span><span class="p">):</span> +</span><span id="Parser-2767"><a href="#Parser-2767"><span class="linenos">2767</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</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="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> +</span><span id="Parser-2768"><a href="#Parser-2768"><span class="linenos">2768</span></a> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Parser-2769"><a href="#Parser-2769"><span class="linenos">2769</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">Concat</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2770"><a href="#Parser-2770"><span class="linenos">2770</span></a> <span class="k">return</span> <span class="n">primary</span> +</span><span id="Parser-2771"><a href="#Parser-2771"><span class="linenos">2771</span></a> +</span><span id="Parser-2772"><a href="#Parser-2772"><span class="linenos">2772</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DOT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">):</span> +</span><span id="Parser-2773"><a href="#Parser-2773"><span class="linenos">2773</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="sa">f</span><span class="s2">"0.</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser-2774"><a href="#Parser-2774"><span class="linenos">2774</span></a> +</span><span id="Parser-2775"><a href="#Parser-2775"><span class="linenos">2775</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2776"><a href="#Parser-2776"><span class="linenos">2776</span></a> <span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-2777"><a href="#Parser-2777"><span class="linenos">2777</span></a> <span class="n">query</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> </span><span id="Parser-2778"><a href="#Parser-2778"><span class="linenos">2778</span></a> -</span><span id="Parser-2779"><a href="#Parser-2779"><span class="linenos">2779</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="Parser-2780"><a href="#Parser-2780"><span class="linenos">2780</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> -</span><span id="Parser-2781"><a href="#Parser-2781"><span class="linenos">2781</span></a> -</span><span id="Parser-2782"><a href="#Parser-2782"><span class="linenos">2782</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2783"><a href="#Parser-2783"><span class="linenos">2783</span></a> -</span><span id="Parser-2784"><a href="#Parser-2784"><span class="linenos">2784</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2779"><a href="#Parser-2779"><span class="linenos">2779</span></a> <span class="k">if</span> <span class="n">query</span><span class="p">:</span> +</span><span id="Parser-2780"><a href="#Parser-2780"><span class="linenos">2780</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="n">query</span><span class="p">]</span> +</span><span id="Parser-2781"><a href="#Parser-2781"><span class="linenos">2781</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2782"><a href="#Parser-2782"><span class="linenos">2782</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> +</span><span id="Parser-2783"><a href="#Parser-2783"><span class="linenos">2783</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_alias</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> <span class="n">explicit</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-2784"><a href="#Parser-2784"><span class="linenos">2784</span></a> <span class="p">)</span> </span><span id="Parser-2785"><a href="#Parser-2785"><span class="linenos">2785</span></a> -</span><span id="Parser-2786"><a href="#Parser-2786"><span class="linenos">2786</span></a> <span class="k">def</span> <span class="nf">_parse_field</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2787"><a href="#Parser-2787"><span class="linenos">2787</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> -</span><span id="Parser-2788"><a href="#Parser-2788"><span class="linenos">2788</span></a> -</span><span id="Parser-2789"><a href="#Parser-2789"><span class="linenos">2789</span></a> <span class="k">def</span> <span class="nf">_parse_function</span><span class="p">(</span> -</span><span id="Parser-2790"><a href="#Parser-2790"><span class="linenos">2790</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">functions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2791"><a href="#Parser-2791"><span class="linenos">2791</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="Parser-2792"><a href="#Parser-2792"><span class="linenos">2792</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="Parser-2793"><a href="#Parser-2793"><span class="linenos">2793</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2794"><a href="#Parser-2794"><span class="linenos">2794</span></a> -</span><span id="Parser-2795"><a href="#Parser-2795"><span class="linenos">2795</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="Parser-2796"><a href="#Parser-2796"><span class="linenos">2796</span></a> -</span><span id="Parser-2797"><a href="#Parser-2797"><span class="linenos">2797</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">):</span> -</span><span id="Parser-2798"><a href="#Parser-2798"><span class="linenos">2798</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-2799"><a href="#Parser-2799"><span class="linenos">2799</span></a> -</span><span id="Parser-2800"><a href="#Parser-2800"><span class="linenos">2800</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">!=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> -</span><span id="Parser-2801"><a href="#Parser-2801"><span class="linenos">2801</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">:</span> -</span><span id="Parser-2802"><a href="#Parser-2802"><span class="linenos">2802</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-2803"><a href="#Parser-2803"><span class="linenos">2803</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="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">[</span><span class="n">token_type</span><span class="p">])</span> -</span><span id="Parser-2804"><a href="#Parser-2804"><span class="linenos">2804</span></a> -</span><span id="Parser-2805"><a href="#Parser-2805"><span class="linenos">2805</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2806"><a href="#Parser-2806"><span class="linenos">2806</span></a> -</span><span id="Parser-2807"><a href="#Parser-2807"><span class="linenos">2807</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">:</span> -</span><span id="Parser-2808"><a href="#Parser-2808"><span class="linenos">2808</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-2809"><a href="#Parser-2809"><span class="linenos">2809</span></a> -</span><span id="Parser-2810"><a href="#Parser-2810"><span class="linenos">2810</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-2811"><a href="#Parser-2811"><span class="linenos">2811</span></a> <span class="n">upper</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Parser-2812"><a href="#Parser-2812"><span class="linenos">2812</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> -</span><span id="Parser-2813"><a href="#Parser-2813"><span class="linenos">2813</span></a> -</span><span id="Parser-2814"><a href="#Parser-2814"><span class="linenos">2814</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> -</span><span id="Parser-2815"><a href="#Parser-2815"><span class="linenos">2815</span></a> -</span><span id="Parser-2816"><a href="#Parser-2816"><span class="linenos">2816</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="Parser-2817"><a href="#Parser-2817"><span class="linenos">2817</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-2818"><a href="#Parser-2818"><span class="linenos">2818</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2819"><a href="#Parser-2819"><span class="linenos">2819</span></a> <span class="n">subquery_predicate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">SUBQUERY_PREDICATES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">)</span> -</span><span id="Parser-2820"><a href="#Parser-2820"><span class="linenos">2820</span></a> -</span><span id="Parser-2821"><a href="#Parser-2821"><span class="linenos">2821</span></a> <span class="k">if</span> <span class="n">subquery_predicate</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> -</span><span id="Parser-2822"><a href="#Parser-2822"><span class="linenos">2822</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">subquery_predicate</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">())</span> -</span><span id="Parser-2823"><a href="#Parser-2823"><span class="linenos">2823</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2824"><a href="#Parser-2824"><span class="linenos">2824</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2825"><a href="#Parser-2825"><span class="linenos">2825</span></a> -</span><span id="Parser-2826"><a href="#Parser-2826"><span class="linenos">2826</span></a> <span class="k">if</span> <span class="n">functions</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-2827"><a href="#Parser-2827"><span class="linenos">2827</span></a> <span class="n">functions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTIONS</span> -</span><span id="Parser-2828"><a href="#Parser-2828"><span class="linenos">2828</span></a> -</span><span id="Parser-2829"><a href="#Parser-2829"><span class="linenos">2829</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">functions</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> -</span><span id="Parser-2830"><a href="#Parser-2830"><span class="linenos">2830</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> -</span><span id="Parser-2831"><a href="#Parser-2831"><span class="linenos">2831</span></a> -</span><span id="Parser-2832"><a href="#Parser-2832"><span class="linenos">2832</span></a> <span class="k">if</span> <span class="n">function</span><span class="p">:</span> -</span><span id="Parser-2833"><a href="#Parser-2833"><span class="linenos">2833</span></a> <span class="c1"># Clickhouse supports function calls like foo(x, y)(z), so for these we need to also parse the</span> -</span><span id="Parser-2834"><a href="#Parser-2834"><span class="linenos">2834</span></a> <span class="c1"># second parameter list (i.e. "(z)") and the corresponding function will receive both arg lists.</span> -</span><span id="Parser-2835"><a href="#Parser-2835"><span class="linenos">2835</span></a> <span class="k">if</span> <span class="n">count_params</span><span class="p">(</span><span class="n">function</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="Parser-2836"><a href="#Parser-2836"><span class="linenos">2836</span></a> <span class="n">params</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2837"><a href="#Parser-2837"><span class="linenos">2837</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2838"><a href="#Parser-2838"><span class="linenos">2838</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> -</span><span id="Parser-2839"><a href="#Parser-2839"><span class="linenos">2839</span></a> -</span><span id="Parser-2840"><a href="#Parser-2840"><span class="linenos">2840</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> -</span><span id="Parser-2841"><a href="#Parser-2841"><span class="linenos">2841</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2842"><a href="#Parser-2842"><span class="linenos">2842</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="Parser-2843"><a href="#Parser-2843"><span class="linenos">2843</span></a> -</span><span id="Parser-2844"><a href="#Parser-2844"><span class="linenos">2844</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="Parser-2845"><a href="#Parser-2845"><span class="linenos">2845</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2846"><a href="#Parser-2846"><span class="linenos">2846</span></a> <span class="n">this</span> <span class="o">=</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">Anonymous</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">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> -</span><span id="Parser-2847"><a href="#Parser-2847"><span class="linenos">2847</span></a> -</span><span id="Parser-2848"><a href="#Parser-2848"><span class="linenos">2848</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2849"><a href="#Parser-2849"><span class="linenos">2849</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2850"><a href="#Parser-2850"><span class="linenos">2850</span></a> -</span><span id="Parser-2851"><a href="#Parser-2851"><span class="linenos">2851</span></a> <span class="k">def</span> <span class="nf">_parse_function_parameter</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2852"><a href="#Parser-2852"><span class="linenos">2852</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> -</span><span id="Parser-2853"><a href="#Parser-2853"><span class="linenos">2853</span></a> -</span><span id="Parser-2854"><a href="#Parser-2854"><span class="linenos">2854</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> -</span><span id="Parser-2855"><a href="#Parser-2855"><span class="linenos">2855</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2856"><a href="#Parser-2856"><span class="linenos">2856</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="Parser-2857"><a href="#Parser-2857"><span class="linenos">2857</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-2858"><a href="#Parser-2858"><span class="linenos">2858</span></a> -</span><span id="Parser-2859"><a href="#Parser-2859"><span class="linenos">2859</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> -</span><span id="Parser-2860"><a href="#Parser-2860"><span class="linenos">2860</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> -</span><span id="Parser-2861"><a href="#Parser-2861"><span class="linenos">2861</span></a> -</span><span id="Parser-2862"><a href="#Parser-2862"><span class="linenos">2862</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2863"><a href="#Parser-2863"><span class="linenos">2863</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2864"><a href="#Parser-2864"><span class="linenos">2864</span></a> -</span><span id="Parser-2865"><a href="#Parser-2865"><span class="linenos">2865</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> -</span><span id="Parser-2866"><a href="#Parser-2866"><span class="linenos">2866</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2867"><a href="#Parser-2867"><span class="linenos">2867</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><span id="Parser-2868"><a href="#Parser-2868"><span class="linenos">2868</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">wrapped</span><span class="o">=</span><span class="kc">True</span> -</span><span id="Parser-2869"><a href="#Parser-2869"><span class="linenos">2869</span></a> <span class="p">)</span> +</span><span id="Parser-2786"><a href="#Parser-2786"><span class="linenos">2786</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">seq_get</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> +</span><span id="Parser-2787"><a href="#Parser-2787"><span class="linenos">2787</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_query_modifiers</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2788"><a href="#Parser-2788"><span class="linenos">2788</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2789"><a href="#Parser-2789"><span class="linenos">2789</span></a> +</span><span id="Parser-2790"><a href="#Parser-2790"><span class="linenos">2790</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Subqueryable</span><span class="p">):</span> +</span><span id="Parser-2791"><a href="#Parser-2791"><span class="linenos">2791</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> +</span><span id="Parser-2792"><a href="#Parser-2792"><span class="linenos">2792</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_subquery</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">parse_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-2793"><a href="#Parser-2793"><span class="linenos">2793</span></a> <span class="p">)</span> +</span><span id="Parser-2794"><a href="#Parser-2794"><span class="linenos">2794</span></a> <span class="k">elif</span> <span class="nb">len</span><span class="p">(</span><span class="n">expressions</span><span class="p">)</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Parser-2795"><a href="#Parser-2795"><span class="linenos">2795</span></a> <span class="n">this</span> <span class="o">=</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">Tuple</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2796"><a href="#Parser-2796"><span class="linenos">2796</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2797"><a href="#Parser-2797"><span class="linenos">2797</span></a> <span class="n">this</span> <span class="o">=</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">Paren</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2798"><a href="#Parser-2798"><span class="linenos">2798</span></a> +</span><span id="Parser-2799"><a href="#Parser-2799"><span class="linenos">2799</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="Parser-2800"><a href="#Parser-2800"><span class="linenos">2800</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Parser-2801"><a href="#Parser-2801"><span class="linenos">2801</span></a> +</span><span id="Parser-2802"><a href="#Parser-2802"><span class="linenos">2802</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2803"><a href="#Parser-2803"><span class="linenos">2803</span></a> +</span><span id="Parser-2804"><a href="#Parser-2804"><span class="linenos">2804</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2805"><a href="#Parser-2805"><span class="linenos">2805</span></a> +</span><span id="Parser-2806"><a href="#Parser-2806"><span class="linenos">2806</span></a> <span class="k">def</span> <span class="nf">_parse_field</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></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="Parser-2807"><a href="#Parser-2807"><span class="linenos">2807</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> +</span><span id="Parser-2808"><a href="#Parser-2808"><span class="linenos">2808</span></a> +</span><span id="Parser-2809"><a href="#Parser-2809"><span class="linenos">2809</span></a> <span class="k">def</span> <span class="nf">_parse_function</span><span class="p">(</span> +</span><span id="Parser-2810"><a href="#Parser-2810"><span class="linenos">2810</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">functions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2811"><a href="#Parser-2811"><span class="linenos">2811</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="Parser-2812"><a href="#Parser-2812"><span class="linenos">2812</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-2813"><a href="#Parser-2813"><span class="linenos">2813</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2814"><a href="#Parser-2814"><span class="linenos">2814</span></a> +</span><span id="Parser-2815"><a href="#Parser-2815"><span class="linenos">2815</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="Parser-2816"><a href="#Parser-2816"><span class="linenos">2816</span></a> +</span><span id="Parser-2817"><a href="#Parser-2817"><span class="linenos">2817</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">):</span> +</span><span id="Parser-2818"><a href="#Parser-2818"><span class="linenos">2818</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTION_PARSERS</span><span class="p">[</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-2819"><a href="#Parser-2819"><span class="linenos">2819</span></a> +</span><span id="Parser-2820"><a href="#Parser-2820"><span class="linenos">2820</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">!=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">:</span> +</span><span id="Parser-2821"><a href="#Parser-2821"><span class="linenos">2821</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">:</span> +</span><span id="Parser-2822"><a href="#Parser-2822"><span class="linenos">2822</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-2823"><a href="#Parser-2823"><span class="linenos">2823</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="bp">self</span><span class="o">.</span><span class="n">NO_PAREN_FUNCTIONS</span><span class="p">[</span><span class="n">token_type</span><span class="p">])</span> +</span><span id="Parser-2824"><a href="#Parser-2824"><span class="linenos">2824</span></a> +</span><span id="Parser-2825"><a href="#Parser-2825"><span class="linenos">2825</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2826"><a href="#Parser-2826"><span class="linenos">2826</span></a> +</span><span id="Parser-2827"><a href="#Parser-2827"><span class="linenos">2827</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNC_TOKENS</span><span class="p">:</span> +</span><span id="Parser-2828"><a href="#Parser-2828"><span class="linenos">2828</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-2829"><a href="#Parser-2829"><span class="linenos">2829</span></a> +</span><span id="Parser-2830"><a href="#Parser-2830"><span class="linenos">2830</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-2831"><a href="#Parser-2831"><span class="linenos">2831</span></a> <span class="n">upper</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-2832"><a href="#Parser-2832"><span class="linenos">2832</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> +</span><span id="Parser-2833"><a href="#Parser-2833"><span class="linenos">2833</span></a> +</span><span id="Parser-2834"><a href="#Parser-2834"><span class="linenos">2834</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> +</span><span id="Parser-2835"><a href="#Parser-2835"><span class="linenos">2835</span></a> +</span><span id="Parser-2836"><a href="#Parser-2836"><span class="linenos">2836</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="Parser-2837"><a href="#Parser-2837"><span class="linenos">2837</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-2838"><a href="#Parser-2838"><span class="linenos">2838</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2839"><a href="#Parser-2839"><span class="linenos">2839</span></a> <span class="n">subquery_predicate</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">SUBQUERY_PREDICATES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">token_type</span><span class="p">)</span> +</span><span id="Parser-2840"><a href="#Parser-2840"><span class="linenos">2840</span></a> +</span><span id="Parser-2841"><a href="#Parser-2841"><span class="linenos">2841</span></a> <span class="k">if</span> <span class="n">subquery_predicate</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">):</span> +</span><span id="Parser-2842"><a href="#Parser-2842"><span class="linenos">2842</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span><span class="n">subquery_predicate</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">())</span> +</span><span id="Parser-2843"><a href="#Parser-2843"><span class="linenos">2843</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2844"><a href="#Parser-2844"><span class="linenos">2844</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2845"><a href="#Parser-2845"><span class="linenos">2845</span></a> +</span><span id="Parser-2846"><a href="#Parser-2846"><span class="linenos">2846</span></a> <span class="k">if</span> <span class="n">functions</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-2847"><a href="#Parser-2847"><span class="linenos">2847</span></a> <span class="n">functions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">FUNCTIONS</span> +</span><span id="Parser-2848"><a href="#Parser-2848"><span class="linenos">2848</span></a> +</span><span id="Parser-2849"><a href="#Parser-2849"><span class="linenos">2849</span></a> <span class="n">function</span> <span class="o">=</span> <span class="n">functions</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">upper</span><span class="p">)</span> +</span><span id="Parser-2850"><a href="#Parser-2850"><span class="linenos">2850</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> +</span><span id="Parser-2851"><a href="#Parser-2851"><span class="linenos">2851</span></a> +</span><span id="Parser-2852"><a href="#Parser-2852"><span class="linenos">2852</span></a> <span class="k">if</span> <span class="n">function</span><span class="p">:</span> +</span><span id="Parser-2853"><a href="#Parser-2853"><span class="linenos">2853</span></a> <span class="c1"># Clickhouse supports function calls like foo(x, y)(z), so for these we need to also parse the</span> +</span><span id="Parser-2854"><a href="#Parser-2854"><span class="linenos">2854</span></a> <span class="c1"># second parameter list (i.e. "(z)") and the corresponding function will receive both arg lists.</span> +</span><span id="Parser-2855"><a href="#Parser-2855"><span class="linenos">2855</span></a> <span class="k">if</span> <span class="n">count_params</span><span class="p">(</span><span class="n">function</span><span class="p">)</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="Parser-2856"><a href="#Parser-2856"><span class="linenos">2856</span></a> <span class="n">params</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2857"><a href="#Parser-2857"><span class="linenos">2857</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">R_PAREN</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2858"><a href="#Parser-2858"><span class="linenos">2858</span></a> <span class="n">params</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_lambda</span><span class="p">)</span> +</span><span id="Parser-2859"><a href="#Parser-2859"><span class="linenos">2859</span></a> +</span><span id="Parser-2860"><a href="#Parser-2860"><span class="linenos">2860</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">params</span><span class="p">)</span> +</span><span id="Parser-2861"><a href="#Parser-2861"><span class="linenos">2861</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2862"><a href="#Parser-2862"><span class="linenos">2862</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">function</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-2863"><a href="#Parser-2863"><span class="linenos">2863</span></a> +</span><span id="Parser-2864"><a href="#Parser-2864"><span class="linenos">2864</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="Parser-2865"><a href="#Parser-2865"><span class="linenos">2865</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2866"><a href="#Parser-2866"><span class="linenos">2866</span></a> <span class="n">this</span> <span class="o">=</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">Anonymous</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">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-2867"><a href="#Parser-2867"><span class="linenos">2867</span></a> +</span><span id="Parser-2868"><a href="#Parser-2868"><span class="linenos">2868</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2869"><a href="#Parser-2869"><span class="linenos">2869</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> </span><span id="Parser-2870"><a href="#Parser-2870"><span class="linenos">2870</span></a> -</span><span id="Parser-2871"><a href="#Parser-2871"><span class="linenos">2871</span></a> <span class="k">def</span> <span class="nf">_parse_introducer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2872"><a href="#Parser-2872"><span class="linenos">2872</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> -</span><span id="Parser-2873"><a href="#Parser-2873"><span class="linenos">2873</span></a> <span class="k">if</span> <span class="n">literal</span><span class="p">:</span> -</span><span id="Parser-2874"><a href="#Parser-2874"><span class="linenos">2874</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">Introducer</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">literal</span><span class="p">)</span> -</span><span id="Parser-2875"><a href="#Parser-2875"><span class="linenos">2875</span></a> -</span><span id="Parser-2876"><a href="#Parser-2876"><span class="linenos">2876</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-2877"><a href="#Parser-2877"><span class="linenos">2877</span></a> -</span><span id="Parser-2878"><a href="#Parser-2878"><span class="linenos">2878</span></a> <span class="k">def</span> <span class="nf">_parse_national</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2879"><a href="#Parser-2879"><span class="linenos">2879</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">National</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> -</span><span id="Parser-2880"><a href="#Parser-2880"><span class="linenos">2880</span></a> -</span><span id="Parser-2881"><a href="#Parser-2881"><span class="linenos">2881</span></a> <span class="k">def</span> <span class="nf">_parse_session_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2882"><a href="#Parser-2882"><span class="linenos">2882</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2883"><a href="#Parser-2883"><span class="linenos">2883</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> +</span><span id="Parser-2871"><a href="#Parser-2871"><span class="linenos">2871</span></a> <span class="k">def</span> <span class="nf">_parse_function_parameter</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2872"><a href="#Parser-2872"><span class="linenos">2872</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> +</span><span id="Parser-2873"><a href="#Parser-2873"><span class="linenos">2873</span></a> +</span><span id="Parser-2874"><a href="#Parser-2874"><span class="linenos">2874</span></a> <span class="k">def</span> <span class="nf">_parse_user_defined_function</span><span class="p">(</span> +</span><span id="Parser-2875"><a href="#Parser-2875"><span class="linenos">2875</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2876"><a href="#Parser-2876"><span class="linenos">2876</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="Parser-2877"><a href="#Parser-2877"><span class="linenos">2877</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-2878"><a href="#Parser-2878"><span class="linenos">2878</span></a> +</span><span id="Parser-2879"><a href="#Parser-2879"><span class="linenos">2879</span></a> <span class="k">while</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">DOT</span><span class="p">):</span> +</span><span id="Parser-2880"><a href="#Parser-2880"><span class="linenos">2880</span></a> <span class="n">this</span> <span class="o">=</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">Dot</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">())</span> +</span><span id="Parser-2881"><a href="#Parser-2881"><span class="linenos">2881</span></a> +</span><span id="Parser-2882"><a href="#Parser-2882"><span class="linenos">2882</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2883"><a href="#Parser-2883"><span class="linenos">2883</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-2884"><a href="#Parser-2884"><span class="linenos">2884</span></a> -</span><span id="Parser-2885"><a href="#Parser-2885"><span class="linenos">2885</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</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">DOT</span><span class="p">):</span> -</span><span id="Parser-2886"><a href="#Parser-2886"><span class="linenos">2886</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span> -</span><span id="Parser-2887"><a href="#Parser-2887"><span class="linenos">2887</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> -</span><span id="Parser-2888"><a href="#Parser-2888"><span class="linenos">2888</span></a> -</span><span id="Parser-2889"><a href="#Parser-2889"><span class="linenos">2889</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">SessionParameter</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="Parser-2885"><a href="#Parser-2885"><span class="linenos">2885</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_function_parameter</span><span class="p">)</span> +</span><span id="Parser-2886"><a href="#Parser-2886"><span class="linenos">2886</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2887"><a href="#Parser-2887"><span class="linenos">2887</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><span id="Parser-2888"><a href="#Parser-2888"><span class="linenos">2888</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">UserDefinedFunction</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">wrapped</span><span class="o">=</span><span class="kc">True</span> +</span><span id="Parser-2889"><a href="#Parser-2889"><span class="linenos">2889</span></a> <span class="p">)</span> </span><span id="Parser-2890"><a href="#Parser-2890"><span class="linenos">2890</span></a> -</span><span id="Parser-2891"><a href="#Parser-2891"><span class="linenos">2891</span></a> <span class="k">def</span> <span class="nf">_parse_lambda</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2892"><a href="#Parser-2892"><span class="linenos">2892</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><span id="Parser-2893"><a href="#Parser-2893"><span class="linenos">2893</span></a> -</span><span id="Parser-2894"><a href="#Parser-2894"><span class="linenos">2894</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2895"><a href="#Parser-2895"><span class="linenos">2895</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> -</span><span id="Parser-2896"><a href="#Parser-2896"><span class="linenos">2896</span></a> -</span><span id="Parser-2897"><a href="#Parser-2897"><span class="linenos">2897</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> -</span><span id="Parser-2898"><a href="#Parser-2898"><span class="linenos">2898</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="Parser-2899"><a href="#Parser-2899"><span class="linenos">2899</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2900"><a href="#Parser-2900"><span class="linenos">2900</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()]</span> -</span><span id="Parser-2901"><a href="#Parser-2901"><span class="linenos">2901</span></a> -</span><span id="Parser-2902"><a href="#Parser-2902"><span class="linenos">2902</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">):</span> -</span><span id="Parser-2903"><a href="#Parser-2903"><span class="linenos">2903</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2891"><a href="#Parser-2891"><span class="linenos">2891</span></a> <span class="k">def</span> <span class="nf">_parse_introducer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2892"><a href="#Parser-2892"><span class="linenos">2892</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> +</span><span id="Parser-2893"><a href="#Parser-2893"><span class="linenos">2893</span></a> <span class="k">if</span> <span class="n">literal</span><span class="p">:</span> +</span><span id="Parser-2894"><a href="#Parser-2894"><span class="linenos">2894</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">Introducer</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">literal</span><span class="p">)</span> +</span><span id="Parser-2895"><a href="#Parser-2895"><span class="linenos">2895</span></a> +</span><span id="Parser-2896"><a href="#Parser-2896"><span class="linenos">2896</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-2897"><a href="#Parser-2897"><span class="linenos">2897</span></a> +</span><span id="Parser-2898"><a href="#Parser-2898"><span class="linenos">2898</span></a> <span class="k">def</span> <span class="nf">_parse_national</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2899"><a href="#Parser-2899"><span class="linenos">2899</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">National</span><span class="p">,</span> <span class="n">this</span><span class="o">=</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="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">))</span> +</span><span id="Parser-2900"><a href="#Parser-2900"><span class="linenos">2900</span></a> +</span><span id="Parser-2901"><a href="#Parser-2901"><span class="linenos">2901</span></a> <span class="k">def</span> <span class="nf">_parse_session_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2902"><a href="#Parser-2902"><span class="linenos">2902</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2903"><a href="#Parser-2903"><span class="linenos">2903</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> </span><span id="Parser-2904"><a href="#Parser-2904"><span class="linenos">2904</span></a> -</span><span id="Parser-2905"><a href="#Parser-2905"><span class="linenos">2905</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="Parser-2906"><a href="#Parser-2906"><span class="linenos">2906</span></a> -</span><span id="Parser-2907"><a href="#Parser-2907"><span class="linenos">2907</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="Parser-2905"><a href="#Parser-2905"><span class="linenos">2905</span></a> <span class="k">if</span> <span class="n">this</span> <span class="ow">and</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">DOT</span><span class="p">):</span> +</span><span id="Parser-2906"><a href="#Parser-2906"><span class="linenos">2906</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span> +</span><span id="Parser-2907"><a href="#Parser-2907"><span class="linenos">2907</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> </span><span id="Parser-2908"><a href="#Parser-2908"><span class="linenos">2908</span></a> -</span><span id="Parser-2909"><a href="#Parser-2909"><span class="linenos">2909</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> -</span><span id="Parser-2910"><a href="#Parser-2910"><span class="linenos">2910</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-2911"><a href="#Parser-2911"><span class="linenos">2911</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-2912"><a href="#Parser-2912"><span class="linenos">2912</span></a> <span class="p">)</span> -</span><span id="Parser-2913"><a href="#Parser-2913"><span class="linenos">2913</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2914"><a href="#Parser-2914"><span class="linenos">2914</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">()</span> -</span><span id="Parser-2915"><a href="#Parser-2915"><span class="linenos">2915</span></a> -</span><span id="Parser-2916"><a href="#Parser-2916"><span class="linenos">2916</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> -</span><span id="Parser-2917"><a href="#Parser-2917"><span class="linenos">2917</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-2918"><a href="#Parser-2918"><span class="linenos">2918</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2919"><a href="#Parser-2919"><span class="linenos">2919</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">RESPECT_NULLS</span><span class="p">)</span> -</span><span id="Parser-2920"><a href="#Parser-2920"><span class="linenos">2920</span></a> -</span><span id="Parser-2921"><a href="#Parser-2921"><span class="linenos">2921</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> -</span><span id="Parser-2922"><a href="#Parser-2922"><span class="linenos">2922</span></a> -</span><span id="Parser-2923"><a href="#Parser-2923"><span class="linenos">2923</span></a> <span class="k">def</span> <span class="nf">_parse_schema</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2924"><a href="#Parser-2924"><span class="linenos">2924</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><span id="Parser-2925"><a href="#Parser-2925"><span class="linenos">2925</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">)</span> <span class="ow">or</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">SELECT</span><span class="p">):</span> -</span><span id="Parser-2926"><a href="#Parser-2926"><span class="linenos">2926</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="Parser-2927"><a href="#Parser-2927"><span class="linenos">2927</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2909"><a href="#Parser-2909"><span class="linenos">2909</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">SessionParameter</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">)</span> +</span><span id="Parser-2910"><a href="#Parser-2910"><span class="linenos">2910</span></a> +</span><span id="Parser-2911"><a href="#Parser-2911"><span class="linenos">2911</span></a> <span class="k">def</span> <span class="nf">_parse_lambda</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2912"><a href="#Parser-2912"><span class="linenos">2912</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><span id="Parser-2913"><a href="#Parser-2913"><span class="linenos">2913</span></a> +</span><span id="Parser-2914"><a href="#Parser-2914"><span class="linenos">2914</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-2915"><a href="#Parser-2915"><span class="linenos">2915</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> +</span><span id="Parser-2916"><a href="#Parser-2916"><span class="linenos">2916</span></a> +</span><span id="Parser-2917"><a href="#Parser-2917"><span class="linenos">2917</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> +</span><span id="Parser-2918"><a href="#Parser-2918"><span class="linenos">2918</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="Parser-2919"><a href="#Parser-2919"><span class="linenos">2919</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2920"><a href="#Parser-2920"><span class="linenos">2920</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()]</span> +</span><span id="Parser-2921"><a href="#Parser-2921"><span class="linenos">2921</span></a> +</span><span id="Parser-2922"><a href="#Parser-2922"><span class="linenos">2922</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">):</span> +</span><span id="Parser-2923"><a href="#Parser-2923"><span class="linenos">2923</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">LAMBDAS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-2924"><a href="#Parser-2924"><span class="linenos">2924</span></a> +</span><span id="Parser-2925"><a href="#Parser-2925"><span class="linenos">2925</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="Parser-2926"><a href="#Parser-2926"><span class="linenos">2926</span></a> +</span><span id="Parser-2927"><a href="#Parser-2927"><span class="linenos">2927</span></a> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> </span><span id="Parser-2928"><a href="#Parser-2928"><span class="linenos">2928</span></a> -</span><span id="Parser-2929"><a href="#Parser-2929"><span class="linenos">2929</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> -</span><span id="Parser-2930"><a href="#Parser-2930"><span class="linenos">2930</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_constraint</span><span class="p">()</span> -</span><span id="Parser-2931"><a href="#Parser-2931"><span class="linenos">2931</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="Parser-2932"><a href="#Parser-2932"><span class="linenos">2932</span></a> <span class="p">)</span> -</span><span id="Parser-2933"><a href="#Parser-2933"><span class="linenos">2933</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-2934"><a href="#Parser-2934"><span class="linenos">2934</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">Schema</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-2929"><a href="#Parser-2929"><span class="linenos">2929</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> +</span><span id="Parser-2930"><a href="#Parser-2930"><span class="linenos">2930</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-2931"><a href="#Parser-2931"><span class="linenos">2931</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-2932"><a href="#Parser-2932"><span class="linenos">2932</span></a> <span class="p">)</span> +</span><span id="Parser-2933"><a href="#Parser-2933"><span class="linenos">2933</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2934"><a href="#Parser-2934"><span class="linenos">2934</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select_or_expression</span><span class="p">()</span> </span><span id="Parser-2935"><a href="#Parser-2935"><span class="linenos">2935</span></a> -</span><span id="Parser-2936"><a href="#Parser-2936"><span class="linenos">2936</span></a> <span class="k">def</span> <span class="nf">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-2937"><a href="#Parser-2937"><span class="linenos">2937</span></a> <span class="n">kind</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="Parser-2938"><a href="#Parser-2938"><span class="linenos">2938</span></a> -</span><span id="Parser-2939"><a href="#Parser-2939"><span class="linenos">2939</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ORDINALITY"</span><span class="p">):</span> -</span><span id="Parser-2940"><a href="#Parser-2940"><span class="linenos">2940</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">ColumnDef</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">ordinality</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-2941"><a href="#Parser-2941"><span class="linenos">2941</span></a> -</span><span id="Parser-2942"><a href="#Parser-2942"><span class="linenos">2942</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-2943"><a href="#Parser-2943"><span class="linenos">2943</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-2944"><a href="#Parser-2944"><span class="linenos">2944</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_constraint</span><span class="p">()</span> -</span><span id="Parser-2945"><a href="#Parser-2945"><span class="linenos">2945</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> -</span><span id="Parser-2946"><a href="#Parser-2946"><span class="linenos">2946</span></a> <span class="k">break</span> -</span><span id="Parser-2947"><a href="#Parser-2947"><span class="linenos">2947</span></a> <span class="n">constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> +</span><span id="Parser-2936"><a href="#Parser-2936"><span class="linenos">2936</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> +</span><span id="Parser-2937"><a href="#Parser-2937"><span class="linenos">2937</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-2938"><a href="#Parser-2938"><span class="linenos">2938</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-2939"><a href="#Parser-2939"><span class="linenos">2939</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">RESPECT_NULLS</span><span class="p">)</span> +</span><span id="Parser-2940"><a href="#Parser-2940"><span class="linenos">2940</span></a> +</span><span id="Parser-2941"><a href="#Parser-2941"><span class="linenos">2941</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_limit</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="p">))</span> +</span><span id="Parser-2942"><a href="#Parser-2942"><span class="linenos">2942</span></a> +</span><span id="Parser-2943"><a href="#Parser-2943"><span class="linenos">2943</span></a> <span class="k">def</span> <span class="nf">_parse_schema</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2944"><a href="#Parser-2944"><span class="linenos">2944</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><span id="Parser-2945"><a href="#Parser-2945"><span class="linenos">2945</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">)</span> <span class="ow">or</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">SELECT</span><span class="p">):</span> +</span><span id="Parser-2946"><a href="#Parser-2946"><span class="linenos">2946</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="Parser-2947"><a href="#Parser-2947"><span class="linenos">2947</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-2948"><a href="#Parser-2948"><span class="linenos">2948</span></a> -</span><span id="Parser-2949"><a href="#Parser-2949"><span class="linenos">2949</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">constraints</span><span class="p">:</span> -</span><span id="Parser-2950"><a href="#Parser-2950"><span class="linenos">2950</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-2951"><a href="#Parser-2951"><span class="linenos">2951</span></a> -</span><span id="Parser-2952"><a href="#Parser-2952"><span class="linenos">2952</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">ColumnDef</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> <span class="n">constraints</span><span class="o">=</span><span class="n">constraints</span><span class="p">)</span> -</span><span id="Parser-2953"><a href="#Parser-2953"><span class="linenos">2953</span></a> -</span><span id="Parser-2954"><a href="#Parser-2954"><span class="linenos">2954</span></a> <span class="k">def</span> <span class="nf">_parse_auto_increment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2955"><a href="#Parser-2955"><span class="linenos">2955</span></a> <span class="n">start</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2956"><a href="#Parser-2956"><span class="linenos">2956</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-2957"><a href="#Parser-2957"><span class="linenos">2957</span></a> -</span><span id="Parser-2958"><a href="#Parser-2958"><span class="linenos">2958</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-2959"><a href="#Parser-2959"><span class="linenos">2959</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="Parser-2960"><a href="#Parser-2960"><span class="linenos">2960</span></a> <span class="n">start</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="Parser-2961"><a href="#Parser-2961"><span class="linenos">2961</span></a> <span class="n">increment</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="Parser-2962"><a href="#Parser-2962"><span class="linenos">2962</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">):</span> -</span><span id="Parser-2963"><a href="#Parser-2963"><span class="linenos">2963</span></a> <span class="n">start</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="Parser-2964"><a href="#Parser-2964"><span class="linenos">2964</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">)</span> -</span><span id="Parser-2965"><a href="#Parser-2965"><span class="linenos">2965</span></a> <span class="n">increment</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="Parser-2966"><a href="#Parser-2966"><span class="linenos">2966</span></a> -</span><span id="Parser-2967"><a href="#Parser-2967"><span class="linenos">2967</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">and</span> <span class="n">increment</span><span class="p">:</span> -</span><span id="Parser-2968"><a href="#Parser-2968"><span class="linenos">2968</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">,</span> <span class="n">increment</span><span class="o">=</span><span class="n">increment</span><span class="p">)</span> -</span><span id="Parser-2969"><a href="#Parser-2969"><span class="linenos">2969</span></a> -</span><span id="Parser-2970"><a href="#Parser-2970"><span class="linenos">2970</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">()</span> +</span><span id="Parser-2949"><a href="#Parser-2949"><span class="linenos">2949</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> +</span><span id="Parser-2950"><a href="#Parser-2950"><span class="linenos">2950</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_constraint</span><span class="p">()</span> +</span><span id="Parser-2951"><a href="#Parser-2951"><span class="linenos">2951</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Parser-2952"><a href="#Parser-2952"><span class="linenos">2952</span></a> <span class="p">)</span> +</span><span id="Parser-2953"><a href="#Parser-2953"><span class="linenos">2953</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-2954"><a href="#Parser-2954"><span class="linenos">2954</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">Schema</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-2955"><a href="#Parser-2955"><span class="linenos">2955</span></a> +</span><span id="Parser-2956"><a href="#Parser-2956"><span class="linenos">2956</span></a> <span class="k">def</span> <span class="nf">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-2957"><a href="#Parser-2957"><span class="linenos">2957</span></a> <span class="n">kind</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="Parser-2958"><a href="#Parser-2958"><span class="linenos">2958</span></a> +</span><span id="Parser-2959"><a href="#Parser-2959"><span class="linenos">2959</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"FOR"</span><span class="p">,</span> <span class="s2">"ORDINALITY"</span><span class="p">):</span> +</span><span id="Parser-2960"><a href="#Parser-2960"><span class="linenos">2960</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">ColumnDef</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">ordinality</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-2961"><a href="#Parser-2961"><span class="linenos">2961</span></a> +</span><span id="Parser-2962"><a href="#Parser-2962"><span class="linenos">2962</span></a> <span class="n">constraints</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-2963"><a href="#Parser-2963"><span class="linenos">2963</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-2964"><a href="#Parser-2964"><span class="linenos">2964</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_constraint</span><span class="p">()</span> +</span><span id="Parser-2965"><a href="#Parser-2965"><span class="linenos">2965</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> +</span><span id="Parser-2966"><a href="#Parser-2966"><span class="linenos">2966</span></a> <span class="k">break</span> +</span><span id="Parser-2967"><a href="#Parser-2967"><span class="linenos">2967</span></a> <span class="n">constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> +</span><span id="Parser-2968"><a href="#Parser-2968"><span class="linenos">2968</span></a> +</span><span id="Parser-2969"><a href="#Parser-2969"><span class="linenos">2969</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">kind</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">constraints</span><span class="p">:</span> +</span><span id="Parser-2970"><a href="#Parser-2970"><span class="linenos">2970</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-2971"><a href="#Parser-2971"><span class="linenos">2971</span></a> -</span><span id="Parser-2972"><a href="#Parser-2972"><span class="linenos">2972</span></a> <span class="k">def</span> <span class="nf">_parse_compress</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2973"><a href="#Parser-2973"><span class="linenos">2973</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-2974"><a href="#Parser-2974"><span class="linenos">2974</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><span id="Parser-2975"><a href="#Parser-2975"><span class="linenos">2975</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CompressColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="Parser-2976"><a href="#Parser-2976"><span class="linenos">2976</span></a> <span class="p">)</span> +</span><span id="Parser-2972"><a href="#Parser-2972"><span class="linenos">2972</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">ColumnDef</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">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> <span class="n">constraints</span><span class="o">=</span><span class="n">constraints</span><span class="p">)</span> +</span><span id="Parser-2973"><a href="#Parser-2973"><span class="linenos">2973</span></a> +</span><span id="Parser-2974"><a href="#Parser-2974"><span class="linenos">2974</span></a> <span class="k">def</span> <span class="nf">_parse_auto_increment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2975"><a href="#Parser-2975"><span class="linenos">2975</span></a> <span class="n">start</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-2976"><a href="#Parser-2976"><span class="linenos">2976</span></a> <span class="n">increment</span> <span class="o">=</span> <span class="kc">None</span> </span><span id="Parser-2977"><a href="#Parser-2977"><span class="linenos">2977</span></a> -</span><span id="Parser-2978"><a href="#Parser-2978"><span class="linenos">2978</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">CompressColumnConstraint</span><span class="p">,</span> <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="Parser-2979"><a href="#Parser-2979"><span class="linenos">2979</span></a> -</span><span id="Parser-2980"><a href="#Parser-2980"><span class="linenos">2980</span></a> <span class="k">def</span> <span class="nf">_parse_generated_as_identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-2981"><a href="#Parser-2981"><span class="linenos">2981</span></a> <span class="k">if</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">BY_DEFAULT</span><span class="p">):</span> -</span><span id="Parser-2982"><a href="#Parser-2982"><span class="linenos">2982</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-2983"><a href="#Parser-2983"><span class="linenos">2983</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-2984"><a href="#Parser-2984"><span class="linenos">2984</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> -</span><span id="Parser-2985"><a href="#Parser-2985"><span class="linenos">2985</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-2978"><a href="#Parser-2978"><span class="linenos">2978</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-2979"><a href="#Parser-2979"><span class="linenos">2979</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="Parser-2980"><a href="#Parser-2980"><span class="linenos">2980</span></a> <span class="n">start</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="Parser-2981"><a href="#Parser-2981"><span class="linenos">2981</span></a> <span class="n">increment</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="Parser-2982"><a href="#Parser-2982"><span class="linenos">2982</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">):</span> +</span><span id="Parser-2983"><a href="#Parser-2983"><span class="linenos">2983</span></a> <span class="n">start</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="Parser-2984"><a href="#Parser-2984"><span class="linenos">2984</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">)</span> +</span><span id="Parser-2985"><a href="#Parser-2985"><span class="linenos">2985</span></a> <span class="n">increment</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="Parser-2986"><a href="#Parser-2986"><span class="linenos">2986</span></a> -</span><span id="Parser-2987"><a href="#Parser-2987"><span class="linenos">2987</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"IDENTITY"</span><span class="p">)</span> -</span><span id="Parser-2988"><a href="#Parser-2988"><span class="linenos">2988</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-2989"><a href="#Parser-2989"><span class="linenos">2989</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">,</span> <span class="s2">"WITH"</span><span class="p">):</span> -</span><span id="Parser-2990"><a href="#Parser-2990"><span class="linenos">2990</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-2991"><a href="#Parser-2991"><span class="linenos">2991</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> -</span><span id="Parser-2992"><a href="#Parser-2992"><span class="linenos">2992</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"increment"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-2993"><a href="#Parser-2993"><span class="linenos">2993</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MINVALUE"</span><span class="p">):</span> -</span><span id="Parser-2994"><a href="#Parser-2994"><span class="linenos">2994</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"minvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-2995"><a href="#Parser-2995"><span class="linenos">2995</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAXVALUE"</span><span class="p">):</span> -</span><span id="Parser-2996"><a href="#Parser-2996"><span class="linenos">2996</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"maxvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-2987"><a href="#Parser-2987"><span class="linenos">2987</span></a> <span class="k">if</span> <span class="n">start</span> <span class="ow">and</span> <span class="n">increment</span><span class="p">:</span> +</span><span id="Parser-2988"><a href="#Parser-2988"><span class="linenos">2988</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">GeneratedAsIdentityColumnConstraint</span><span class="p">(</span><span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">,</span> <span class="n">increment</span><span class="o">=</span><span class="n">increment</span><span class="p">)</span> +</span><span id="Parser-2989"><a href="#Parser-2989"><span class="linenos">2989</span></a> +</span><span id="Parser-2990"><a href="#Parser-2990"><span class="linenos">2990</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">AutoIncrementColumnConstraint</span><span class="p">()</span> +</span><span id="Parser-2991"><a href="#Parser-2991"><span class="linenos">2991</span></a> +</span><span id="Parser-2992"><a href="#Parser-2992"><span class="linenos">2992</span></a> <span class="k">def</span> <span class="nf">_parse_compress</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-2993"><a href="#Parser-2993"><span class="linenos">2993</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-2994"><a href="#Parser-2994"><span class="linenos">2994</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><span id="Parser-2995"><a href="#Parser-2995"><span class="linenos">2995</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">CompressColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="Parser-2996"><a href="#Parser-2996"><span class="linenos">2996</span></a> <span class="p">)</span> </span><span id="Parser-2997"><a href="#Parser-2997"><span class="linenos">2997</span></a> -</span><span id="Parser-2998"><a href="#Parser-2998"><span class="linenos">2998</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CYCLE"</span><span class="p">):</span> -</span><span id="Parser-2999"><a href="#Parser-2999"><span class="linenos">2999</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3000"><a href="#Parser-3000"><span class="linenos">3000</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"CYCLE"</span><span class="p">):</span> -</span><span id="Parser-3001"><a href="#Parser-3001"><span class="linenos">3001</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-3002"><a href="#Parser-3002"><span class="linenos">3002</span></a> -</span><span id="Parser-3003"><a href="#Parser-3003"><span class="linenos">3003</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-3004"><a href="#Parser-3004"><span class="linenos">3004</span></a> -</span><span id="Parser-3005"><a href="#Parser-3005"><span class="linenos">3005</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-2998"><a href="#Parser-2998"><span class="linenos">2998</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">CompressColumnConstraint</span><span class="p">,</span> <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="Parser-2999"><a href="#Parser-2999"><span class="linenos">2999</span></a> +</span><span id="Parser-3000"><a href="#Parser-3000"><span class="linenos">3000</span></a> <span class="k">def</span> <span class="nf">_parse_generated_as_identity</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3001"><a href="#Parser-3001"><span class="linenos">3001</span></a> <span class="k">if</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">BY_DEFAULT</span><span class="p">):</span> +</span><span id="Parser-3002"><a href="#Parser-3002"><span class="linenos">3002</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-3003"><a href="#Parser-3003"><span class="linenos">3003</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3004"><a href="#Parser-3004"><span class="linenos">3004</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ALWAYS"</span><span class="p">)</span> +</span><span id="Parser-3005"><a href="#Parser-3005"><span class="linenos">3005</span></a> <span class="n">this</span> <span class="o">=</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">GeneratedAsIdentityColumnConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="Parser-3006"><a href="#Parser-3006"><span class="linenos">3006</span></a> -</span><span id="Parser-3007"><a href="#Parser-3007"><span class="linenos">3007</span></a> <span class="k">def</span> <span class="nf">_parse_inline</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3008"><a href="#Parser-3008"><span class="linenos">3008</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LENGTH"</span><span class="p">)</span> -</span><span id="Parser-3009"><a href="#Parser-3009"><span class="linenos">3009</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">InlineLengthColumnConstraint</span><span class="p">,</span> <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="Parser-3010"><a href="#Parser-3010"><span class="linenos">3010</span></a> -</span><span id="Parser-3011"><a href="#Parser-3011"><span class="linenos">3011</span></a> <span class="k">def</span> <span class="nf">_parse_not_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3012"><a href="#Parser-3012"><span class="linenos">3012</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">):</span> -</span><span id="Parser-3013"><a href="#Parser-3013"><span class="linenos">3013</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">NotNullColumnConstraint</span><span class="p">)</span> -</span><span id="Parser-3014"><a href="#Parser-3014"><span class="linenos">3014</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CASESPECIFIC"</span><span class="p">):</span> -</span><span id="Parser-3015"><a href="#Parser-3015"><span class="linenos">3015</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3016"><a href="#Parser-3016"><span class="linenos">3016</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3007"><a href="#Parser-3007"><span class="linenos">3007</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"AS"</span><span class="p">,</span> <span class="s2">"IDENTITY"</span><span class="p">)</span> +</span><span id="Parser-3008"><a href="#Parser-3008"><span class="linenos">3008</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-3009"><a href="#Parser-3009"><span class="linenos">3009</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"START"</span><span class="p">,</span> <span class="s2">"WITH"</span><span class="p">):</span> +</span><span id="Parser-3010"><a href="#Parser-3010"><span class="linenos">3010</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"start"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3011"><a href="#Parser-3011"><span class="linenos">3011</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INCREMENT"</span><span class="p">,</span> <span class="s2">"BY"</span><span class="p">):</span> +</span><span id="Parser-3012"><a href="#Parser-3012"><span class="linenos">3012</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"increment"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3013"><a href="#Parser-3013"><span class="linenos">3013</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MINVALUE"</span><span class="p">):</span> +</span><span id="Parser-3014"><a href="#Parser-3014"><span class="linenos">3014</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"minvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3015"><a href="#Parser-3015"><span class="linenos">3015</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MAXVALUE"</span><span class="p">):</span> +</span><span id="Parser-3016"><a href="#Parser-3016"><span class="linenos">3016</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"maxvalue"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> </span><span id="Parser-3017"><a href="#Parser-3017"><span class="linenos">3017</span></a> -</span><span id="Parser-3018"><a href="#Parser-3018"><span class="linenos">3018</span></a> <span class="k">def</span> <span class="nf">_parse_column_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3019"><a href="#Parser-3019"><span class="linenos">3019</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> -</span><span id="Parser-3020"><a href="#Parser-3020"><span class="linenos">3020</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> -</span><span id="Parser-3021"><a href="#Parser-3021"><span class="linenos">3021</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3018"><a href="#Parser-3018"><span class="linenos">3018</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CYCLE"</span><span class="p">):</span> +</span><span id="Parser-3019"><a href="#Parser-3019"><span class="linenos">3019</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3020"><a href="#Parser-3020"><span class="linenos">3020</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">,</span> <span class="s2">"CYCLE"</span><span class="p">):</span> +</span><span id="Parser-3021"><a href="#Parser-3021"><span class="linenos">3021</span></a> <span class="n">this</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"cycle"</span><span class="p">,</span> <span class="kc">False</span><span class="p">)</span> </span><span id="Parser-3022"><a href="#Parser-3022"><span class="linenos">3022</span></a> -</span><span id="Parser-3023"><a href="#Parser-3023"><span class="linenos">3023</span></a> <span class="k">if</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">CONSTRAINT</span><span class="p">):</span> -</span><span id="Parser-3024"><a href="#Parser-3024"><span class="linenos">3024</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-3025"><a href="#Parser-3025"><span class="linenos">3025</span></a> -</span><span id="Parser-3026"><a href="#Parser-3026"><span class="linenos">3026</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> -</span><span id="Parser-3027"><a href="#Parser-3027"><span class="linenos">3027</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><span id="Parser-3028"><a href="#Parser-3028"><span class="linenos">3028</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnConstraint</span><span class="p">,</span> -</span><span id="Parser-3029"><a href="#Parser-3029"><span class="linenos">3029</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-3030"><a href="#Parser-3030"><span class="linenos">3030</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">),</span> -</span><span id="Parser-3031"><a href="#Parser-3031"><span class="linenos">3031</span></a> <span class="p">)</span> -</span><span id="Parser-3032"><a href="#Parser-3032"><span class="linenos">3032</span></a> -</span><span id="Parser-3033"><a href="#Parser-3033"><span class="linenos">3033</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3034"><a href="#Parser-3034"><span class="linenos">3034</span></a> -</span><span id="Parser-3035"><a href="#Parser-3035"><span class="linenos">3035</span></a> <span class="k">def</span> <span class="nf">_parse_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3036"><a href="#Parser-3036"><span class="linenos">3036</span></a> <span class="k">if</span> <span class="ow">not</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">CONSTRAINT</span><span class="p">):</span> -</span><span id="Parser-3037"><a href="#Parser-3037"><span class="linenos">3037</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span><span class="p">)</span> -</span><span id="Parser-3038"><a href="#Parser-3038"><span class="linenos">3038</span></a> -</span><span id="Parser-3039"><a href="#Parser-3039"><span class="linenos">3039</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-3040"><a href="#Parser-3040"><span class="linenos">3040</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3041"><a href="#Parser-3041"><span class="linenos">3041</span></a> -</span><span id="Parser-3042"><a href="#Parser-3042"><span class="linenos">3042</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-3043"><a href="#Parser-3043"><span class="linenos">3043</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> -</span><span id="Parser-3044"><a href="#Parser-3044"><span class="linenos">3044</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> -</span><span id="Parser-3045"><a href="#Parser-3045"><span class="linenos">3045</span></a> <span class="k">break</span> -</span><span id="Parser-3046"><a href="#Parser-3046"><span class="linenos">3046</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> -</span><span id="Parser-3047"><a href="#Parser-3047"><span class="linenos">3047</span></a> -</span><span id="Parser-3048"><a href="#Parser-3048"><span class="linenos">3048</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">Constraint</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-3049"><a href="#Parser-3049"><span class="linenos">3049</span></a> -</span><span id="Parser-3050"><a href="#Parser-3050"><span class="linenos">3050</span></a> <span class="k">def</span> <span class="nf">_parse_unnamed_constraint</span><span class="p">(</span> -</span><span id="Parser-3051"><a href="#Parser-3051"><span class="linenos">3051</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">constraints</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="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3052"><a href="#Parser-3052"><span class="linenos">3052</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="Parser-3053"><a href="#Parser-3053"><span class="linenos">3053</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="n">constraints</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> -</span><span id="Parser-3054"><a href="#Parser-3054"><span class="linenos">3054</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3055"><a href="#Parser-3055"><span class="linenos">3055</span></a> -</span><span id="Parser-3056"><a href="#Parser-3056"><span class="linenos">3056</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Parser-3057"><a href="#Parser-3057"><span class="linenos">3057</span></a> <span class="k">if</span> <span class="n">constraint</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">:</span> -</span><span id="Parser-3058"><a href="#Parser-3058"><span class="linenos">3058</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser found for schema constraint </span><span class="si">{</span><span class="n">constraint</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span> -</span><span id="Parser-3059"><a href="#Parser-3059"><span class="linenos">3059</span></a> -</span><span id="Parser-3060"><a href="#Parser-3060"><span class="linenos">3060</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="n">constraint</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-3023"><a href="#Parser-3023"><span class="linenos">3023</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-3024"><a href="#Parser-3024"><span class="linenos">3024</span></a> +</span><span id="Parser-3025"><a href="#Parser-3025"><span class="linenos">3025</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3026"><a href="#Parser-3026"><span class="linenos">3026</span></a> +</span><span id="Parser-3027"><a href="#Parser-3027"><span class="linenos">3027</span></a> <span class="k">def</span> <span class="nf">_parse_inline</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3028"><a href="#Parser-3028"><span class="linenos">3028</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"LENGTH"</span><span class="p">)</span> +</span><span id="Parser-3029"><a href="#Parser-3029"><span class="linenos">3029</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">InlineLengthColumnConstraint</span><span class="p">,</span> <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="Parser-3030"><a href="#Parser-3030"><span class="linenos">3030</span></a> +</span><span id="Parser-3031"><a href="#Parser-3031"><span class="linenos">3031</span></a> <span class="k">def</span> <span class="nf">_parse_not_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3032"><a href="#Parser-3032"><span class="linenos">3032</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NULL"</span><span class="p">):</span> +</span><span id="Parser-3033"><a href="#Parser-3033"><span class="linenos">3033</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">NotNullColumnConstraint</span><span class="p">)</span> +</span><span id="Parser-3034"><a href="#Parser-3034"><span class="linenos">3034</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CASESPECIFIC"</span><span class="p">):</span> +</span><span id="Parser-3035"><a href="#Parser-3035"><span class="linenos">3035</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">CaseSpecificColumnConstraint</span><span class="p">,</span> <span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3036"><a href="#Parser-3036"><span class="linenos">3036</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3037"><a href="#Parser-3037"><span class="linenos">3037</span></a> +</span><span id="Parser-3038"><a href="#Parser-3038"><span class="linenos">3038</span></a> <span class="k">def</span> <span class="nf">_parse_column_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3039"><a href="#Parser-3039"><span class="linenos">3039</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> +</span><span id="Parser-3040"><a href="#Parser-3040"><span class="linenos">3040</span></a> <span class="k">if</span> <span class="n">this</span><span class="p">:</span> +</span><span id="Parser-3041"><a href="#Parser-3041"><span class="linenos">3041</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3042"><a href="#Parser-3042"><span class="linenos">3042</span></a> +</span><span id="Parser-3043"><a href="#Parser-3043"><span class="linenos">3043</span></a> <span class="k">if</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">CONSTRAINT</span><span class="p">):</span> +</span><span id="Parser-3044"><a href="#Parser-3044"><span class="linenos">3044</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3045"><a href="#Parser-3045"><span class="linenos">3045</span></a> +</span><span id="Parser-3046"><a href="#Parser-3046"><span class="linenos">3046</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> +</span><span id="Parser-3047"><a href="#Parser-3047"><span class="linenos">3047</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><span id="Parser-3048"><a href="#Parser-3048"><span class="linenos">3048</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ColumnConstraint</span><span class="p">,</span> +</span><span id="Parser-3049"><a href="#Parser-3049"><span class="linenos">3049</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3050"><a href="#Parser-3050"><span class="linenos">3050</span></a> <span class="n">kind</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()](</span><span class="bp">self</span><span class="p">),</span> +</span><span id="Parser-3051"><a href="#Parser-3051"><span class="linenos">3051</span></a> <span class="p">)</span> +</span><span id="Parser-3052"><a href="#Parser-3052"><span class="linenos">3052</span></a> +</span><span id="Parser-3053"><a href="#Parser-3053"><span class="linenos">3053</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3054"><a href="#Parser-3054"><span class="linenos">3054</span></a> +</span><span id="Parser-3055"><a href="#Parser-3055"><span class="linenos">3055</span></a> <span class="k">def</span> <span class="nf">_parse_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3056"><a href="#Parser-3056"><span class="linenos">3056</span></a> <span class="k">if</span> <span class="ow">not</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">CONSTRAINT</span><span class="p">):</span> +</span><span id="Parser-3057"><a href="#Parser-3057"><span class="linenos">3057</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">(</span><span class="n">constraints</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">SCHEMA_UNNAMED_CONSTRAINTS</span><span class="p">)</span> +</span><span id="Parser-3058"><a href="#Parser-3058"><span class="linenos">3058</span></a> +</span><span id="Parser-3059"><a href="#Parser-3059"><span class="linenos">3059</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3060"><a href="#Parser-3060"><span class="linenos">3060</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="p">[]</span> </span><span id="Parser-3061"><a href="#Parser-3061"><span class="linenos">3061</span></a> -</span><span id="Parser-3062"><a href="#Parser-3062"><span class="linenos">3062</span></a> <span class="k">def</span> <span class="nf">_parse_unique</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3063"><a href="#Parser-3063"><span class="linenos">3063</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-3064"><a href="#Parser-3064"><span class="linenos">3064</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">UniqueColumnConstraint</span><span class="p">)</span> -</span><span id="Parser-3065"><a href="#Parser-3065"><span class="linenos">3065</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">Unique</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">())</span> -</span><span id="Parser-3066"><a href="#Parser-3066"><span class="linenos">3066</span></a> -</span><span id="Parser-3067"><a href="#Parser-3067"><span class="linenos">3067</span></a> <span class="k">def</span> <span class="nf">_parse_key_constraint_options</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">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> -</span><span id="Parser-3068"><a href="#Parser-3068"><span class="linenos">3068</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3069"><a href="#Parser-3069"><span class="linenos">3069</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-3070"><a href="#Parser-3070"><span class="linenos">3070</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="Parser-3071"><a href="#Parser-3071"><span class="linenos">3071</span></a> <span class="k">break</span> -</span><span id="Parser-3072"><a href="#Parser-3072"><span class="linenos">3072</span></a> -</span><span id="Parser-3073"><a href="#Parser-3073"><span class="linenos">3073</span></a> <span class="k">if</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">ON</span><span class="p">):</span> -</span><span id="Parser-3074"><a href="#Parser-3074"><span class="linenos">3074</span></a> <span class="n">action</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3075"><a href="#Parser-3075"><span class="linenos">3075</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-3076"><a href="#Parser-3076"><span class="linenos">3076</span></a> -</span><span id="Parser-3077"><a href="#Parser-3077"><span class="linenos">3077</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> -</span><span id="Parser-3078"><a href="#Parser-3078"><span class="linenos">3078</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> -</span><span id="Parser-3079"><a href="#Parser-3079"><span class="linenos">3079</span></a> <span class="k">elif</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">CASCADE</span><span class="p">):</span> -</span><span id="Parser-3080"><a href="#Parser-3080"><span class="linenos">3080</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"CASCADE"</span> -</span><span id="Parser-3081"><a href="#Parser-3081"><span class="linenos">3081</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">):</span> -</span><span id="Parser-3082"><a href="#Parser-3082"><span class="linenos">3082</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET NULL"</span> -</span><span id="Parser-3083"><a href="#Parser-3083"><span class="linenos">3083</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> -</span><span id="Parser-3084"><a href="#Parser-3084"><span class="linenos">3084</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET DEFAULT"</span> -</span><span id="Parser-3085"><a href="#Parser-3085"><span class="linenos">3085</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3086"><a href="#Parser-3086"><span class="linenos">3086</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid key constraint"</span><span class="p">)</span> -</span><span id="Parser-3087"><a href="#Parser-3087"><span class="linenos">3087</span></a> -</span><span id="Parser-3088"><a href="#Parser-3088"><span class="linenos">3088</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Parser-3089"><a href="#Parser-3089"><span class="linenos">3089</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">,</span> <span class="s2">"ENFORCED"</span><span class="p">):</span> -</span><span id="Parser-3090"><a href="#Parser-3090"><span class="linenos">3090</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NOT ENFORCED"</span><span class="p">)</span> -</span><span id="Parser-3091"><a href="#Parser-3091"><span class="linenos">3091</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">):</span> -</span><span id="Parser-3092"><a href="#Parser-3092"><span class="linenos">3092</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">)</span> -</span><span id="Parser-3093"><a href="#Parser-3093"><span class="linenos">3093</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INITIALLY"</span><span class="p">,</span> <span class="s2">"DEFERRED"</span><span class="p">):</span> -</span><span id="Parser-3094"><a href="#Parser-3094"><span class="linenos">3094</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"INITIALLY DEFERRED"</span><span class="p">)</span> -</span><span id="Parser-3095"><a href="#Parser-3095"><span class="linenos">3095</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">):</span> -</span><span id="Parser-3096"><a href="#Parser-3096"><span class="linenos">3096</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">)</span> -</span><span id="Parser-3097"><a href="#Parser-3097"><span class="linenos">3097</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"FULL"</span><span class="p">):</span> -</span><span id="Parser-3098"><a href="#Parser-3098"><span class="linenos">3098</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"MATCH FULL"</span><span class="p">)</span> -</span><span id="Parser-3099"><a href="#Parser-3099"><span class="linenos">3099</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3100"><a href="#Parser-3100"><span class="linenos">3100</span></a> <span class="k">break</span> -</span><span id="Parser-3101"><a href="#Parser-3101"><span class="linenos">3101</span></a> -</span><span id="Parser-3102"><a href="#Parser-3102"><span class="linenos">3102</span></a> <span class="k">return</span> <span class="n">options</span> -</span><span id="Parser-3103"><a href="#Parser-3103"><span class="linenos">3103</span></a> -</span><span id="Parser-3104"><a href="#Parser-3104"><span class="linenos">3104</span></a> <span class="k">def</span> <span class="nf">_parse_references</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3105"><a href="#Parser-3105"><span class="linenos">3105</span></a> <span class="k">if</span> <span class="ow">not</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">REFERENCES</span><span class="p">):</span> -</span><span id="Parser-3106"><a href="#Parser-3106"><span class="linenos">3106</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3062"><a href="#Parser-3062"><span class="linenos">3062</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-3063"><a href="#Parser-3063"><span class="linenos">3063</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_unnamed_constraint</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_function</span><span class="p">()</span> +</span><span id="Parser-3064"><a href="#Parser-3064"><span class="linenos">3064</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">constraint</span><span class="p">:</span> +</span><span id="Parser-3065"><a href="#Parser-3065"><span class="linenos">3065</span></a> <span class="k">break</span> +</span><span id="Parser-3066"><a href="#Parser-3066"><span class="linenos">3066</span></a> <span class="n">expressions</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">constraint</span><span class="p">)</span> +</span><span id="Parser-3067"><a href="#Parser-3067"><span class="linenos">3067</span></a> +</span><span id="Parser-3068"><a href="#Parser-3068"><span class="linenos">3068</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">Constraint</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-3069"><a href="#Parser-3069"><span class="linenos">3069</span></a> +</span><span id="Parser-3070"><a href="#Parser-3070"><span class="linenos">3070</span></a> <span class="k">def</span> <span class="nf">_parse_unnamed_constraint</span><span class="p">(</span> +</span><span id="Parser-3071"><a href="#Parser-3071"><span class="linenos">3071</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">constraints</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="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3072"><a href="#Parser-3072"><span class="linenos">3072</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="Parser-3073"><a href="#Parser-3073"><span class="linenos">3073</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="n">constraints</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">):</span> +</span><span id="Parser-3074"><a href="#Parser-3074"><span class="linenos">3074</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3075"><a href="#Parser-3075"><span class="linenos">3075</span></a> +</span><span id="Parser-3076"><a href="#Parser-3076"><span class="linenos">3076</span></a> <span class="n">constraint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3077"><a href="#Parser-3077"><span class="linenos">3077</span></a> <span class="k">if</span> <span class="n">constraint</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">:</span> +</span><span id="Parser-3078"><a href="#Parser-3078"><span class="linenos">3078</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser found for schema constraint </span><span class="si">{</span><span class="n">constraint</span><span class="si">}</span><span class="s2">."</span><span class="p">)</span> +</span><span id="Parser-3079"><a href="#Parser-3079"><span class="linenos">3079</span></a> +</span><span id="Parser-3080"><a href="#Parser-3080"><span class="linenos">3080</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONSTRAINT_PARSERS</span><span class="p">[</span><span class="n">constraint</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-3081"><a href="#Parser-3081"><span class="linenos">3081</span></a> +</span><span id="Parser-3082"><a href="#Parser-3082"><span class="linenos">3082</span></a> <span class="k">def</span> <span class="nf">_parse_unique</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3083"><a href="#Parser-3083"><span class="linenos">3083</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-3084"><a href="#Parser-3084"><span class="linenos">3084</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">UniqueColumnConstraint</span><span class="p">)</span> +</span><span id="Parser-3085"><a href="#Parser-3085"><span class="linenos">3085</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">Unique</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">())</span> +</span><span id="Parser-3086"><a href="#Parser-3086"><span class="linenos">3086</span></a> +</span><span id="Parser-3087"><a href="#Parser-3087"><span class="linenos">3087</span></a> <span class="k">def</span> <span class="nf">_parse_key_constraint_options</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">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span> +</span><span id="Parser-3088"><a href="#Parser-3088"><span class="linenos">3088</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-3089"><a href="#Parser-3089"><span class="linenos">3089</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-3090"><a href="#Parser-3090"><span class="linenos">3090</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-3091"><a href="#Parser-3091"><span class="linenos">3091</span></a> <span class="k">break</span> +</span><span id="Parser-3092"><a href="#Parser-3092"><span class="linenos">3092</span></a> +</span><span id="Parser-3093"><a href="#Parser-3093"><span class="linenos">3093</span></a> <span class="k">if</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">ON</span><span class="p">):</span> +</span><span id="Parser-3094"><a href="#Parser-3094"><span class="linenos">3094</span></a> <span class="n">action</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3095"><a href="#Parser-3095"><span class="linenos">3095</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-3096"><a href="#Parser-3096"><span class="linenos">3096</span></a> +</span><span id="Parser-3097"><a href="#Parser-3097"><span class="linenos">3097</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> +</span><span id="Parser-3098"><a href="#Parser-3098"><span class="linenos">3098</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> +</span><span id="Parser-3099"><a href="#Parser-3099"><span class="linenos">3099</span></a> <span class="k">elif</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">CASCADE</span><span class="p">):</span> +</span><span id="Parser-3100"><a href="#Parser-3100"><span class="linenos">3100</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"CASCADE"</span> +</span><span id="Parser-3101"><a href="#Parser-3101"><span class="linenos">3101</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">):</span> +</span><span id="Parser-3102"><a href="#Parser-3102"><span class="linenos">3102</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET NULL"</span> +</span><span id="Parser-3103"><a href="#Parser-3103"><span class="linenos">3103</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> +</span><span id="Parser-3104"><a href="#Parser-3104"><span class="linenos">3104</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET DEFAULT"</span> +</span><span id="Parser-3105"><a href="#Parser-3105"><span class="linenos">3105</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3106"><a href="#Parser-3106"><span class="linenos">3106</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Invalid key constraint"</span><span class="p">)</span> </span><span id="Parser-3107"><a href="#Parser-3107"><span class="linenos">3107</span></a> -</span><span id="Parser-3108"><a href="#Parser-3108"><span class="linenos">3108</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3109"><a href="#Parser-3109"><span class="linenos">3109</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-3110"><a href="#Parser-3110"><span class="linenos">3110</span></a> -</span><span id="Parser-3111"><a href="#Parser-3111"><span class="linenos">3111</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-3112"><a href="#Parser-3112"><span class="linenos">3112</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="Parser-3113"><a href="#Parser-3113"><span class="linenos">3113</span></a> -</span><span id="Parser-3114"><a href="#Parser-3114"><span class="linenos">3114</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> -</span><span id="Parser-3115"><a href="#Parser-3115"><span class="linenos">3115</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">Reference</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> -</span><span id="Parser-3116"><a href="#Parser-3116"><span class="linenos">3116</span></a> -</span><span id="Parser-3117"><a href="#Parser-3117"><span class="linenos">3117</span></a> <span class="k">def</span> <span class="nf">_parse_foreign_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3118"><a href="#Parser-3118"><span class="linenos">3118</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="Parser-3119"><a href="#Parser-3119"><span class="linenos">3119</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> -</span><span id="Parser-3120"><a href="#Parser-3120"><span class="linenos">3120</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Parser-3108"><a href="#Parser-3108"><span class="linenos">3108</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="sa">f</span><span class="s2">"ON </span><span class="si">{</span><span class="n">on</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">action</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser-3109"><a href="#Parser-3109"><span class="linenos">3109</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NOT"</span><span class="p">,</span> <span class="s2">"ENFORCED"</span><span class="p">):</span> +</span><span id="Parser-3110"><a href="#Parser-3110"><span class="linenos">3110</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NOT ENFORCED"</span><span class="p">)</span> +</span><span id="Parser-3111"><a href="#Parser-3111"><span class="linenos">3111</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">):</span> +</span><span id="Parser-3112"><a href="#Parser-3112"><span class="linenos">3112</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"DEFERRABLE"</span><span class="p">)</span> +</span><span id="Parser-3113"><a href="#Parser-3113"><span class="linenos">3113</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"INITIALLY"</span><span class="p">,</span> <span class="s2">"DEFERRED"</span><span class="p">):</span> +</span><span id="Parser-3114"><a href="#Parser-3114"><span class="linenos">3114</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"INITIALLY DEFERRED"</span><span class="p">)</span> +</span><span id="Parser-3115"><a href="#Parser-3115"><span class="linenos">3115</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">):</span> +</span><span id="Parser-3116"><a href="#Parser-3116"><span class="linenos">3116</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"NORELY"</span><span class="p">)</span> +</span><span id="Parser-3117"><a href="#Parser-3117"><span class="linenos">3117</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCH"</span><span class="p">,</span> <span class="s2">"FULL"</span><span class="p">):</span> +</span><span id="Parser-3118"><a href="#Parser-3118"><span class="linenos">3118</span></a> <span class="n">options</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">"MATCH FULL"</span><span class="p">)</span> +</span><span id="Parser-3119"><a href="#Parser-3119"><span class="linenos">3119</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3120"><a href="#Parser-3120"><span class="linenos">3120</span></a> <span class="k">break</span> </span><span id="Parser-3121"><a href="#Parser-3121"><span class="linenos">3121</span></a> -</span><span id="Parser-3122"><a href="#Parser-3122"><span class="linenos">3122</span></a> <span class="k">while</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">ON</span><span class="p">):</span> -</span><span id="Parser-3123"><a href="#Parser-3123"><span class="linenos">3123</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">)):</span> -</span><span id="Parser-3124"><a href="#Parser-3124"><span class="linenos">3124</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected DELETE or UPDATE"</span><span class="p">)</span> -</span><span id="Parser-3125"><a href="#Parser-3125"><span class="linenos">3125</span></a> -</span><span id="Parser-3126"><a href="#Parser-3126"><span class="linenos">3126</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="Parser-3122"><a href="#Parser-3122"><span class="linenos">3122</span></a> <span class="k">return</span> <span class="n">options</span> +</span><span id="Parser-3123"><a href="#Parser-3123"><span class="linenos">3123</span></a> +</span><span id="Parser-3124"><a href="#Parser-3124"><span class="linenos">3124</span></a> <span class="k">def</span> <span class="nf">_parse_references</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3125"><a href="#Parser-3125"><span class="linenos">3125</span></a> <span class="k">if</span> <span class="ow">not</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">REFERENCES</span><span class="p">):</span> +</span><span id="Parser-3126"><a href="#Parser-3126"><span class="linenos">3126</span></a> <span class="k">return</span> <span class="kc">None</span> </span><span id="Parser-3127"><a href="#Parser-3127"><span class="linenos">3127</span></a> -</span><span id="Parser-3128"><a href="#Parser-3128"><span class="linenos">3128</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> -</span><span id="Parser-3129"><a href="#Parser-3129"><span class="linenos">3129</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> -</span><span id="Parser-3130"><a href="#Parser-3130"><span class="linenos">3130</span></a> <span class="k">elif</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">SET</span><span class="p">):</span> -</span><span id="Parser-3131"><a href="#Parser-3131"><span class="linenos">3131</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">))</span> -</span><span id="Parser-3132"><a href="#Parser-3132"><span class="linenos">3132</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Parser-3133"><a href="#Parser-3133"><span class="linenos">3133</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3134"><a href="#Parser-3134"><span class="linenos">3134</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3135"><a href="#Parser-3135"><span class="linenos">3135</span></a> <span class="n">action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3128"><a href="#Parser-3128"><span class="linenos">3128</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3129"><a href="#Parser-3129"><span class="linenos">3129</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3130"><a href="#Parser-3130"><span class="linenos">3130</span></a> +</span><span id="Parser-3131"><a href="#Parser-3131"><span class="linenos">3131</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-3132"><a href="#Parser-3132"><span class="linenos">3132</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="Parser-3133"><a href="#Parser-3133"><span class="linenos">3133</span></a> +</span><span id="Parser-3134"><a href="#Parser-3134"><span class="linenos">3134</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> +</span><span id="Parser-3135"><a href="#Parser-3135"><span class="linenos">3135</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">Reference</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> </span><span id="Parser-3136"><a href="#Parser-3136"><span class="linenos">3136</span></a> -</span><span id="Parser-3137"><a href="#Parser-3137"><span class="linenos">3137</span></a> <span class="n">options</span><span class="p">[</span><span class="n">kind</span><span class="p">]</span> <span class="o">=</span> <span class="n">action</span> -</span><span id="Parser-3138"><a href="#Parser-3138"><span class="linenos">3138</span></a> -</span><span id="Parser-3139"><a href="#Parser-3139"><span class="linenos">3139</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><span id="Parser-3140"><a href="#Parser-3140"><span class="linenos">3140</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">reference</span><span class="o">=</span><span class="n">reference</span><span class="p">,</span> <span class="o">**</span><span class="n">options</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-3141"><a href="#Parser-3141"><span class="linenos">3141</span></a> <span class="p">)</span> -</span><span id="Parser-3142"><a href="#Parser-3142"><span class="linenos">3142</span></a> -</span><span id="Parser-3143"><a href="#Parser-3143"><span class="linenos">3143</span></a> <span class="k">def</span> <span class="nf">_parse_primary_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3144"><a href="#Parser-3144"><span class="linenos">3144</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-3145"><a href="#Parser-3145"><span class="linenos">3145</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ASC</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">))</span> -</span><span id="Parser-3146"><a href="#Parser-3146"><span class="linenos">3146</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span> -</span><span id="Parser-3147"><a href="#Parser-3147"><span class="linenos">3147</span></a> <span class="p">)</span> -</span><span id="Parser-3148"><a href="#Parser-3148"><span class="linenos">3148</span></a> -</span><span id="Parser-3149"><a href="#Parser-3149"><span class="linenos">3149</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-3150"><a href="#Parser-3150"><span class="linenos">3150</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">PrimaryKeyColumnConstraint</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">)</span> -</span><span id="Parser-3151"><a href="#Parser-3151"><span class="linenos">3151</span></a> -</span><span id="Parser-3152"><a href="#Parser-3152"><span class="linenos">3152</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> -</span><span id="Parser-3153"><a href="#Parser-3153"><span class="linenos">3153</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> -</span><span id="Parser-3154"><a href="#Parser-3154"><span class="linenos">3154</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">PrimaryKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> -</span><span id="Parser-3155"><a href="#Parser-3155"><span class="linenos">3155</span></a> -</span><span id="Parser-3156"><a href="#Parser-3156"><span class="linenos">3156</span></a> <span class="k">def</span> <span class="nf">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3157"><a href="#Parser-3157"><span class="linenos">3157</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">)):</span> -</span><span id="Parser-3158"><a href="#Parser-3158"><span class="linenos">3158</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3159"><a href="#Parser-3159"><span class="linenos">3159</span></a> -</span><span id="Parser-3160"><a href="#Parser-3160"><span class="linenos">3160</span></a> <span class="n">bracket_kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="Parser-3161"><a href="#Parser-3161"><span class="linenos">3161</span></a> <span class="n">expressions</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">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="Parser-3137"><a href="#Parser-3137"><span class="linenos">3137</span></a> <span class="k">def</span> <span class="nf">_parse_foreign_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3138"><a href="#Parser-3138"><span class="linenos">3138</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="Parser-3139"><a href="#Parser-3139"><span class="linenos">3139</span></a> <span class="n">reference</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_references</span><span class="p">()</span> +</span><span id="Parser-3140"><a href="#Parser-3140"><span class="linenos">3140</span></a> <span class="n">options</span> <span class="o">=</span> <span class="p">{}</span> +</span><span id="Parser-3141"><a href="#Parser-3141"><span class="linenos">3141</span></a> +</span><span id="Parser-3142"><a href="#Parser-3142"><span class="linenos">3142</span></a> <span class="k">while</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">ON</span><span class="p">):</span> +</span><span id="Parser-3143"><a href="#Parser-3143"><span class="linenos">3143</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">)):</span> +</span><span id="Parser-3144"><a href="#Parser-3144"><span class="linenos">3144</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected DELETE or UPDATE"</span><span class="p">)</span> +</span><span id="Parser-3145"><a href="#Parser-3145"><span class="linenos">3145</span></a> +</span><span id="Parser-3146"><a href="#Parser-3146"><span class="linenos">3146</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> +</span><span id="Parser-3147"><a href="#Parser-3147"><span class="linenos">3147</span></a> +</span><span id="Parser-3148"><a href="#Parser-3148"><span class="linenos">3148</span></a> <span class="k">if</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">NO_ACTION</span><span class="p">):</span> +</span><span id="Parser-3149"><a href="#Parser-3149"><span class="linenos">3149</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"NO ACTION"</span> +</span><span id="Parser-3150"><a href="#Parser-3150"><span class="linenos">3150</span></a> <span class="k">elif</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">SET</span><span class="p">):</span> +</span><span id="Parser-3151"><a href="#Parser-3151"><span class="linenos">3151</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">))</span> +</span><span id="Parser-3152"><a href="#Parser-3152"><span class="linenos">3152</span></a> <span class="n">action</span> <span class="o">=</span> <span class="s2">"SET "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3153"><a href="#Parser-3153"><span class="linenos">3153</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3154"><a href="#Parser-3154"><span class="linenos">3154</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3155"><a href="#Parser-3155"><span class="linenos">3155</span></a> <span class="n">action</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3156"><a href="#Parser-3156"><span class="linenos">3156</span></a> +</span><span id="Parser-3157"><a href="#Parser-3157"><span class="linenos">3157</span></a> <span class="n">options</span><span class="p">[</span><span class="n">kind</span><span class="p">]</span> <span class="o">=</span> <span class="n">action</span> +</span><span id="Parser-3158"><a href="#Parser-3158"><span class="linenos">3158</span></a> +</span><span id="Parser-3159"><a href="#Parser-3159"><span class="linenos">3159</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><span id="Parser-3160"><a href="#Parser-3160"><span class="linenos">3160</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">reference</span><span class="o">=</span><span class="n">reference</span><span class="p">,</span> <span class="o">**</span><span class="n">options</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-3161"><a href="#Parser-3161"><span class="linenos">3161</span></a> <span class="p">)</span> </span><span id="Parser-3162"><a href="#Parser-3162"><span class="linenos">3162</span></a> -</span><span id="Parser-3163"><a href="#Parser-3163"><span class="linenos">3163</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> -</span><span id="Parser-3164"><a href="#Parser-3164"><span class="linenos">3164</span></a> <span class="n">expressions</span> <span class="o">=</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">Slice</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())]</span> -</span><span id="Parser-3165"><a href="#Parser-3165"><span class="linenos">3165</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3166"><a href="#Parser-3166"><span class="linenos">3166</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()))</span> -</span><span id="Parser-3167"><a href="#Parser-3167"><span class="linenos">3167</span></a> -</span><span id="Parser-3168"><a href="#Parser-3168"><span class="linenos">3168</span></a> <span class="c1"># https://duckdb.org/docs/sql/data_types/struct.html#creating-structs</span> -</span><span id="Parser-3169"><a href="#Parser-3169"><span class="linenos">3169</span></a> <span class="k">if</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> -</span><span id="Parser-3170"><a href="#Parser-3170"><span class="linenos">3170</span></a> <span class="n">this</span> <span class="o">=</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">Struct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-3171"><a href="#Parser-3171"><span class="linenos">3171</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span> <span class="ow">or</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"ARRAY"</span><span class="p">:</span> -</span><span id="Parser-3172"><a href="#Parser-3172"><span class="linenos">3172</span></a> <span class="n">this</span> <span class="o">=</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-3173"><a href="#Parser-3173"><span class="linenos">3173</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3174"><a href="#Parser-3174"><span class="linenos">3174</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> -</span><span id="Parser-3175"><a href="#Parser-3175"><span class="linenos">3175</span></a> <span class="n">this</span> <span class="o">=</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">Bracket</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-3176"><a href="#Parser-3176"><span class="linenos">3176</span></a> -</span><span id="Parser-3177"><a href="#Parser-3177"><span class="linenos">3177</span></a> <span class="k">if</span> <span class="ow">not</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">R_BRACKET</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">:</span> -</span><span id="Parser-3178"><a href="#Parser-3178"><span class="linenos">3178</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ]"</span><span class="p">)</span> -</span><span id="Parser-3179"><a href="#Parser-3179"><span class="linenos">3179</span></a> <span class="k">elif</span> <span class="ow">not</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">R_BRACE</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> -</span><span id="Parser-3180"><a href="#Parser-3180"><span class="linenos">3180</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected }"</span><span class="p">)</span> -</span><span id="Parser-3181"><a href="#Parser-3181"><span class="linenos">3181</span></a> -</span><span id="Parser-3182"><a href="#Parser-3182"><span class="linenos">3182</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser-3183"><a href="#Parser-3183"><span class="linenos">3183</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-3184"><a href="#Parser-3184"><span class="linenos">3184</span></a> -</span><span id="Parser-3185"><a href="#Parser-3185"><span class="linenos">3185</span></a> <span class="k">def</span> <span class="nf">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3186"><a href="#Parser-3186"><span class="linenos">3186</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> -</span><span id="Parser-3187"><a href="#Parser-3187"><span class="linenos">3187</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">Slice</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="Parser-3188"><a href="#Parser-3188"><span class="linenos">3188</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3189"><a href="#Parser-3189"><span class="linenos">3189</span></a> -</span><span id="Parser-3190"><a href="#Parser-3190"><span class="linenos">3190</span></a> <span class="k">def</span> <span class="nf">_parse_case</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3191"><a href="#Parser-3191"><span class="linenos">3191</span></a> <span class="n">ifs</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3192"><a href="#Parser-3192"><span class="linenos">3192</span></a> <span class="n">default</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3193"><a href="#Parser-3193"><span class="linenos">3193</span></a> -</span><span id="Parser-3194"><a href="#Parser-3194"><span class="linenos">3194</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-3195"><a href="#Parser-3195"><span class="linenos">3195</span></a> -</span><span id="Parser-3196"><a href="#Parser-3196"><span class="linenos">3196</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> -</span><span id="Parser-3197"><a href="#Parser-3197"><span class="linenos">3197</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-3198"><a href="#Parser-3198"><span class="linenos">3198</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">THEN</span><span class="p">)</span> -</span><span id="Parser-3199"><a href="#Parser-3199"><span class="linenos">3199</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-3200"><a href="#Parser-3200"><span class="linenos">3200</span></a> <span class="n">ifs</span><span class="o">.</span><span class="n">append</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">If</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">true</span><span class="o">=</span><span class="n">then</span><span class="p">))</span> +</span><span id="Parser-3163"><a href="#Parser-3163"><span class="linenos">3163</span></a> <span class="k">def</span> <span class="nf">_parse_primary_key</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3164"><a href="#Parser-3164"><span class="linenos">3164</span></a> <span class="n">desc</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-3165"><a href="#Parser-3165"><span class="linenos">3165</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ASC</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">))</span> +</span><span id="Parser-3166"><a href="#Parser-3166"><span class="linenos">3166</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span> +</span><span id="Parser-3167"><a href="#Parser-3167"><span class="linenos">3167</span></a> <span class="p">)</span> +</span><span id="Parser-3168"><a href="#Parser-3168"><span class="linenos">3168</span></a> +</span><span id="Parser-3169"><a href="#Parser-3169"><span class="linenos">3169</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-3170"><a href="#Parser-3170"><span class="linenos">3170</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">PrimaryKeyColumnConstraint</span><span class="p">,</span> <span class="n">desc</span><span class="o">=</span><span class="n">desc</span><span class="p">)</span> +</span><span id="Parser-3171"><a href="#Parser-3171"><span class="linenos">3171</span></a> +</span><span id="Parser-3172"><a href="#Parser-3172"><span class="linenos">3172</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_id_vars</span><span class="p">()</span> +</span><span id="Parser-3173"><a href="#Parser-3173"><span class="linenos">3173</span></a> <span class="n">options</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_key_constraint_options</span><span class="p">()</span> +</span><span id="Parser-3174"><a href="#Parser-3174"><span class="linenos">3174</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">PrimaryKey</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">,</span> <span class="n">options</span><span class="o">=</span><span class="n">options</span><span class="p">)</span> +</span><span id="Parser-3175"><a href="#Parser-3175"><span class="linenos">3175</span></a> +</span><span id="Parser-3176"><a href="#Parser-3176"><span class="linenos">3176</span></a> <span class="k">def</span> <span class="nf">_parse_bracket</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3177"><a href="#Parser-3177"><span class="linenos">3177</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">)):</span> +</span><span id="Parser-3178"><a href="#Parser-3178"><span class="linenos">3178</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3179"><a href="#Parser-3179"><span class="linenos">3179</span></a> +</span><span id="Parser-3180"><a href="#Parser-3180"><span class="linenos">3180</span></a> <span class="n">bracket_kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="Parser-3181"><a href="#Parser-3181"><span class="linenos">3181</span></a> <span class="n">expressions</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">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="Parser-3182"><a href="#Parser-3182"><span class="linenos">3182</span></a> +</span><span id="Parser-3183"><a href="#Parser-3183"><span class="linenos">3183</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> +</span><span id="Parser-3184"><a href="#Parser-3184"><span class="linenos">3184</span></a> <span class="n">expressions</span> <span class="o">=</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">Slice</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())]</span> +</span><span id="Parser-3185"><a href="#Parser-3185"><span class="linenos">3185</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3186"><a href="#Parser-3186"><span class="linenos">3186</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()))</span> +</span><span id="Parser-3187"><a href="#Parser-3187"><span class="linenos">3187</span></a> +</span><span id="Parser-3188"><a href="#Parser-3188"><span class="linenos">3188</span></a> <span class="c1"># https://duckdb.org/docs/sql/data_types/struct.html#creating-structs</span> +</span><span id="Parser-3189"><a href="#Parser-3189"><span class="linenos">3189</span></a> <span class="k">if</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> +</span><span id="Parser-3190"><a href="#Parser-3190"><span class="linenos">3190</span></a> <span class="n">this</span> <span class="o">=</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">Struct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-3191"><a href="#Parser-3191"><span class="linenos">3191</span></a> <span class="k">elif</span> <span class="ow">not</span> <span class="n">this</span> <span class="ow">or</span> <span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"ARRAY"</span><span class="p">:</span> +</span><span id="Parser-3192"><a href="#Parser-3192"><span class="linenos">3192</span></a> <span class="n">this</span> <span class="o">=</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">Array</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-3193"><a href="#Parser-3193"><span class="linenos">3193</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3194"><a href="#Parser-3194"><span class="linenos">3194</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="n">apply_index_offset</span><span class="p">(</span><span class="n">expressions</span><span class="p">,</span> <span class="o">-</span><span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span><span class="p">)</span> +</span><span id="Parser-3195"><a href="#Parser-3195"><span class="linenos">3195</span></a> <span class="n">this</span> <span class="o">=</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">Bracket</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">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-3196"><a href="#Parser-3196"><span class="linenos">3196</span></a> +</span><span id="Parser-3197"><a href="#Parser-3197"><span class="linenos">3197</span></a> <span class="k">if</span> <span class="ow">not</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">R_BRACKET</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACKET</span><span class="p">:</span> +</span><span id="Parser-3198"><a href="#Parser-3198"><span class="linenos">3198</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected ]"</span><span class="p">)</span> +</span><span id="Parser-3199"><a href="#Parser-3199"><span class="linenos">3199</span></a> <span class="k">elif</span> <span class="ow">not</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">R_BRACE</span><span class="p">)</span> <span class="ow">and</span> <span class="n">bracket_kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_BRACE</span><span class="p">:</span> +</span><span id="Parser-3200"><a href="#Parser-3200"><span class="linenos">3200</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected }"</span><span class="p">)</span> </span><span id="Parser-3201"><a href="#Parser-3201"><span class="linenos">3201</span></a> -</span><span id="Parser-3202"><a href="#Parser-3202"><span class="linenos">3202</span></a> <span class="k">if</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">ELSE</span><span class="p">):</span> -</span><span id="Parser-3203"><a href="#Parser-3203"><span class="linenos">3203</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3202"><a href="#Parser-3202"><span class="linenos">3202</span></a> <span class="n">this</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-3203"><a href="#Parser-3203"><span class="linenos">3203</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bracket</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> </span><span id="Parser-3204"><a href="#Parser-3204"><span class="linenos">3204</span></a> -</span><span id="Parser-3205"><a href="#Parser-3205"><span class="linenos">3205</span></a> <span class="k">if</span> <span class="ow">not</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">END</span><span class="p">):</span> -</span><span id="Parser-3206"><a href="#Parser-3206"><span class="linenos">3206</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected END after CASE"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3207"><a href="#Parser-3207"><span class="linenos">3207</span></a> -</span><span id="Parser-3208"><a href="#Parser-3208"><span class="linenos">3208</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span> -</span><span id="Parser-3209"><a href="#Parser-3209"><span class="linenos">3209</span></a> <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">Case</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="n">ifs</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">)</span> -</span><span id="Parser-3210"><a href="#Parser-3210"><span class="linenos">3210</span></a> <span class="p">)</span> -</span><span id="Parser-3211"><a href="#Parser-3211"><span class="linenos">3211</span></a> -</span><span id="Parser-3212"><a href="#Parser-3212"><span class="linenos">3212</span></a> <span class="k">def</span> <span class="nf">_parse_if</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3213"><a href="#Parser-3213"><span class="linenos">3213</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-3214"><a href="#Parser-3214"><span class="linenos">3214</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-3215"><a href="#Parser-3215"><span class="linenos">3215</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> -</span><span id="Parser-3216"><a href="#Parser-3216"><span class="linenos">3216</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="Parser-3217"><a href="#Parser-3217"><span class="linenos">3217</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-3218"><a href="#Parser-3218"><span class="linenos">3218</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3219"><a href="#Parser-3219"><span class="linenos">3219</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-3220"><a href="#Parser-3220"><span class="linenos">3220</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">THEN</span><span class="p">)</span> -</span><span id="Parser-3221"><a href="#Parser-3221"><span class="linenos">3221</span></a> <span class="n">true</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-3222"><a href="#Parser-3222"><span class="linenos">3222</span></a> <span class="n">false</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">ELSE</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Parser-3223"><a href="#Parser-3223"><span class="linenos">3223</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">END</span><span class="p">)</span> -</span><span id="Parser-3224"><a href="#Parser-3224"><span class="linenos">3224</span></a> <span class="n">this</span> <span class="o">=</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">If</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">true</span><span class="p">,</span> <span class="n">false</span><span class="o">=</span><span class="n">false</span><span class="p">)</span> -</span><span id="Parser-3225"><a href="#Parser-3225"><span class="linenos">3225</span></a> -</span><span id="Parser-3226"><a href="#Parser-3226"><span class="linenos">3226</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-3205"><a href="#Parser-3205"><span class="linenos">3205</span></a> <span class="k">def</span> <span class="nf">_parse_slice</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3206"><a href="#Parser-3206"><span class="linenos">3206</span></a> <span class="k">if</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">COLON</span><span class="p">):</span> +</span><span id="Parser-3207"><a href="#Parser-3207"><span class="linenos">3207</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">Slice</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> +</span><span id="Parser-3208"><a href="#Parser-3208"><span class="linenos">3208</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3209"><a href="#Parser-3209"><span class="linenos">3209</span></a> +</span><span id="Parser-3210"><a href="#Parser-3210"><span class="linenos">3210</span></a> <span class="k">def</span> <span class="nf">_parse_case</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3211"><a href="#Parser-3211"><span class="linenos">3211</span></a> <span class="n">ifs</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-3212"><a href="#Parser-3212"><span class="linenos">3212</span></a> <span class="n">default</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3213"><a href="#Parser-3213"><span class="linenos">3213</span></a> +</span><span id="Parser-3214"><a href="#Parser-3214"><span class="linenos">3214</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3215"><a href="#Parser-3215"><span class="linenos">3215</span></a> +</span><span id="Parser-3216"><a href="#Parser-3216"><span class="linenos">3216</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> +</span><span id="Parser-3217"><a href="#Parser-3217"><span class="linenos">3217</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3218"><a href="#Parser-3218"><span class="linenos">3218</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">THEN</span><span class="p">)</span> +</span><span id="Parser-3219"><a href="#Parser-3219"><span class="linenos">3219</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3220"><a href="#Parser-3220"><span class="linenos">3220</span></a> <span class="n">ifs</span><span class="o">.</span><span class="n">append</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">If</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">true</span><span class="o">=</span><span class="n">then</span><span class="p">))</span> +</span><span id="Parser-3221"><a href="#Parser-3221"><span class="linenos">3221</span></a> +</span><span id="Parser-3222"><a href="#Parser-3222"><span class="linenos">3222</span></a> <span class="k">if</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">ELSE</span><span class="p">):</span> +</span><span id="Parser-3223"><a href="#Parser-3223"><span class="linenos">3223</span></a> <span class="n">default</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3224"><a href="#Parser-3224"><span class="linenos">3224</span></a> +</span><span id="Parser-3225"><a href="#Parser-3225"><span class="linenos">3225</span></a> <span class="k">if</span> <span class="ow">not</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">END</span><span class="p">):</span> +</span><span id="Parser-3226"><a href="#Parser-3226"><span class="linenos">3226</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected END after CASE"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> </span><span id="Parser-3227"><a href="#Parser-3227"><span class="linenos">3227</span></a> -</span><span id="Parser-3228"><a href="#Parser-3228"><span class="linenos">3228</span></a> <span class="k">def</span> <span class="nf">_parse_extract</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3229"><a href="#Parser-3229"><span class="linenos">3229</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">()</span> -</span><span id="Parser-3230"><a href="#Parser-3230"><span class="linenos">3230</span></a> -</span><span id="Parser-3231"><a href="#Parser-3231"><span class="linenos">3231</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> -</span><span id="Parser-3232"><a href="#Parser-3232"><span class="linenos">3232</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-3233"><a href="#Parser-3233"><span class="linenos">3233</span></a> -</span><span id="Parser-3234"><a href="#Parser-3234"><span class="linenos">3234</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> -</span><span id="Parser-3235"><a href="#Parser-3235"><span class="linenos">3235</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected FROM or comma after EXTRACT"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3236"><a href="#Parser-3236"><span class="linenos">3236</span></a> -</span><span id="Parser-3237"><a href="#Parser-3237"><span class="linenos">3237</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-3238"><a href="#Parser-3238"><span class="linenos">3238</span></a> -</span><span id="Parser-3239"><a href="#Parser-3239"><span class="linenos">3239</span></a> <span class="k">def</span> <span class="nf">_parse_cast</span><span class="p">(</span><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="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3240"><a href="#Parser-3240"><span class="linenos">3240</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> -</span><span id="Parser-3241"><a href="#Parser-3241"><span class="linenos">3241</span></a> -</span><span id="Parser-3242"><a href="#Parser-3242"><span class="linenos">3242</span></a> <span class="k">if</span> <span class="ow">not</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">ALIAS</span><span class="p">):</span> -</span><span id="Parser-3243"><a href="#Parser-3243"><span class="linenos">3243</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected AS after CAST"</span><span class="p">)</span> -</span><span id="Parser-3244"><a href="#Parser-3244"><span class="linenos">3244</span></a> -</span><span id="Parser-3245"><a href="#Parser-3245"><span class="linenos">3245</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="Parser-3246"><a href="#Parser-3246"><span class="linenos">3246</span></a> -</span><span id="Parser-3247"><a href="#Parser-3247"><span class="linenos">3247</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span><span class="p">:</span> -</span><span id="Parser-3248"><a href="#Parser-3248"><span class="linenos">3248</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected TYPE after CAST"</span><span class="p">)</span> -</span><span id="Parser-3249"><a href="#Parser-3249"><span class="linenos">3249</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">:</span> -</span><span id="Parser-3250"><a href="#Parser-3250"><span class="linenos">3250</span></a> <span class="k">if</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">CHARACTER_SET</span><span class="p">):</span> -</span><span id="Parser-3251"><a href="#Parser-3251"><span class="linenos">3251</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">())</span> -</span><span id="Parser-3252"><a href="#Parser-3252"><span class="linenos">3252</span></a> -</span><span id="Parser-3253"><a href="#Parser-3253"><span class="linenos">3253</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="Parser-3254"><a href="#Parser-3254"><span class="linenos">3254</span></a> -</span><span id="Parser-3255"><a href="#Parser-3255"><span class="linenos">3255</span></a> <span class="k">def</span> <span class="nf">_parse_string_agg</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3256"><a href="#Parser-3256"><span class="linenos">3256</span></a> <span class="n">expression</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="Parser-3257"><a href="#Parser-3257"><span class="linenos">3257</span></a> -</span><span id="Parser-3258"><a href="#Parser-3258"><span class="linenos">3258</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> -</span><span id="Parser-3259"><a href="#Parser-3259"><span class="linenos">3259</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-3260"><a href="#Parser-3260"><span class="linenos">3260</span></a> <span class="n">expression</span> <span class="o">=</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">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</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="Parser-3261"><a href="#Parser-3261"><span class="linenos">3261</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3262"><a href="#Parser-3262"><span class="linenos">3262</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-3263"><a href="#Parser-3263"><span class="linenos">3263</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">0</span><span class="p">)</span> +</span><span id="Parser-3228"><a href="#Parser-3228"><span class="linenos">3228</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span> +</span><span id="Parser-3229"><a href="#Parser-3229"><span class="linenos">3229</span></a> <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">Case</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">ifs</span><span class="o">=</span><span class="n">ifs</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="n">default</span><span class="p">)</span> +</span><span id="Parser-3230"><a href="#Parser-3230"><span class="linenos">3230</span></a> <span class="p">)</span> +</span><span id="Parser-3231"><a href="#Parser-3231"><span class="linenos">3231</span></a> +</span><span id="Parser-3232"><a href="#Parser-3232"><span class="linenos">3232</span></a> <span class="k">def</span> <span class="nf">_parse_if</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3233"><a href="#Parser-3233"><span class="linenos">3233</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-3234"><a href="#Parser-3234"><span class="linenos">3234</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-3235"><a href="#Parser-3235"><span class="linenos">3235</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">If</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-3236"><a href="#Parser-3236"><span class="linenos">3236</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="Parser-3237"><a href="#Parser-3237"><span class="linenos">3237</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-3238"><a href="#Parser-3238"><span class="linenos">3238</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3239"><a href="#Parser-3239"><span class="linenos">3239</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3240"><a href="#Parser-3240"><span class="linenos">3240</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">THEN</span><span class="p">)</span> +</span><span id="Parser-3241"><a href="#Parser-3241"><span class="linenos">3241</span></a> <span class="n">true</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3242"><a href="#Parser-3242"><span class="linenos">3242</span></a> <span class="n">false</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">ELSE</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-3243"><a href="#Parser-3243"><span class="linenos">3243</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">END</span><span class="p">)</span> +</span><span id="Parser-3244"><a href="#Parser-3244"><span class="linenos">3244</span></a> <span class="n">this</span> <span class="o">=</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">If</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> <span class="n">true</span><span class="o">=</span><span class="n">true</span><span class="p">,</span> <span class="n">false</span><span class="o">=</span><span class="n">false</span><span class="p">)</span> +</span><span id="Parser-3245"><a href="#Parser-3245"><span class="linenos">3245</span></a> +</span><span id="Parser-3246"><a href="#Parser-3246"><span class="linenos">3246</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-3247"><a href="#Parser-3247"><span class="linenos">3247</span></a> +</span><span id="Parser-3248"><a href="#Parser-3248"><span class="linenos">3248</span></a> <span class="k">def</span> <span class="nf">_parse_extract</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3249"><a href="#Parser-3249"><span class="linenos">3249</span></a> <span class="n">this</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 class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_type</span><span class="p">()</span> +</span><span id="Parser-3250"><a href="#Parser-3250"><span class="linenos">3250</span></a> +</span><span id="Parser-3251"><a href="#Parser-3251"><span class="linenos">3251</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> +</span><span id="Parser-3252"><a href="#Parser-3252"><span class="linenos">3252</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3253"><a href="#Parser-3253"><span class="linenos">3253</span></a> +</span><span id="Parser-3254"><a href="#Parser-3254"><span class="linenos">3254</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> +</span><span id="Parser-3255"><a href="#Parser-3255"><span class="linenos">3255</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected FROM or comma after EXTRACT"</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3256"><a href="#Parser-3256"><span class="linenos">3256</span></a> +</span><span id="Parser-3257"><a href="#Parser-3257"><span class="linenos">3257</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">Extract</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3258"><a href="#Parser-3258"><span class="linenos">3258</span></a> +</span><span id="Parser-3259"><a href="#Parser-3259"><span class="linenos">3259</span></a> <span class="k">def</span> <span class="nf">_parse_cast</span><span class="p">(</span><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="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3260"><a href="#Parser-3260"><span class="linenos">3260</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3261"><a href="#Parser-3261"><span class="linenos">3261</span></a> +</span><span id="Parser-3262"><a href="#Parser-3262"><span class="linenos">3262</span></a> <span class="k">if</span> <span class="ow">not</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">ALIAS</span><span class="p">):</span> +</span><span id="Parser-3263"><a href="#Parser-3263"><span class="linenos">3263</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected AS after CAST"</span><span class="p">)</span> </span><span id="Parser-3264"><a href="#Parser-3264"><span class="linenos">3264</span></a> -</span><span id="Parser-3265"><a href="#Parser-3265"><span class="linenos">3265</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><span id="Parser-3266"><a href="#Parser-3266"><span class="linenos">3266</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> -</span><span id="Parser-3267"><a href="#Parser-3267"><span class="linenos">3267</span></a> <span class="c1"># postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]])</span> -</span><span id="Parser-3268"><a href="#Parser-3268"><span class="linenos">3268</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Parser-3269"><a href="#Parser-3269"><span class="linenos">3269</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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="Parser-3270"><a href="#Parser-3270"><span class="linenos">3270</span></a> -</span><span id="Parser-3271"><a href="#Parser-3271"><span class="linenos">3271</span></a> <span class="c1"># Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]).</span> -</span><span id="Parser-3272"><a href="#Parser-3272"><span class="linenos">3272</span></a> <span class="c1"># This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that</span> -</span><span id="Parser-3273"><a href="#Parser-3273"><span class="linenos">3273</span></a> <span class="c1"># the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them.</span> -</span><span id="Parser-3274"><a href="#Parser-3274"><span class="linenos">3274</span></a> <span class="k">if</span> <span class="ow">not</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">WITHIN_GROUP</span><span class="p">):</span> -</span><span id="Parser-3275"><a href="#Parser-3275"><span class="linenos">3275</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="Parser-3276"><a href="#Parser-3276"><span class="linenos">3276</span></a> <span class="n">this</span> <span class="o">=</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 class="n">args</span><span class="p">)</span> -</span><span id="Parser-3277"><a href="#Parser-3277"><span class="linenos">3277</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="Parser-3278"><a href="#Parser-3278"><span class="linenos">3278</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3279"><a href="#Parser-3279"><span class="linenos">3279</span></a> -</span><span id="Parser-3280"><a href="#Parser-3280"><span class="linenos">3280</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> <span class="c1"># The corresponding match_r_paren will be called in parse_function (caller)</span> -</span><span id="Parser-3281"><a href="#Parser-3281"><span class="linenos">3281</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Parser-3282"><a href="#Parser-3282"><span class="linenos">3282</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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="Parser-3283"><a href="#Parser-3283"><span class="linenos">3283</span></a> -</span><span id="Parser-3284"><a href="#Parser-3284"><span class="linenos">3284</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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="Parser-3285"><a href="#Parser-3285"><span class="linenos">3285</span></a> <span class="n">to</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> -</span><span id="Parser-3286"><a href="#Parser-3286"><span class="linenos">3286</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="Parser-3287"><a href="#Parser-3287"><span class="linenos">3287</span></a> -</span><span id="Parser-3288"><a href="#Parser-3288"><span class="linenos">3288</span></a> <span class="k">if</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">USING</span><span class="p">):</span> -</span><span id="Parser-3289"><a href="#Parser-3289"><span class="linenos">3289</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">())</span> -</span><span id="Parser-3290"><a href="#Parser-3290"><span class="linenos">3290</span></a> <span class="k">elif</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">COMMA</span><span class="p">):</span> -</span><span id="Parser-3291"><a href="#Parser-3291"><span class="linenos">3291</span></a> <span class="n">to</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="Parser-3292"><a href="#Parser-3292"><span class="linenos">3292</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3293"><a href="#Parser-3293"><span class="linenos">3293</span></a> <span class="n">to</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3294"><a href="#Parser-3294"><span class="linenos">3294</span></a> -</span><span id="Parser-3295"><a href="#Parser-3295"><span class="linenos">3295</span></a> <span class="c1"># Swap the argument order if needed to produce the correct AST</span> -</span><span id="Parser-3296"><a href="#Parser-3296"><span class="linenos">3296</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONVERT_TYPE_FIRST</span><span class="p">:</span> -</span><span id="Parser-3297"><a href="#Parser-3297"><span class="linenos">3297</span></a> <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">this</span> -</span><span id="Parser-3298"><a href="#Parser-3298"><span class="linenos">3298</span></a> -</span><span id="Parser-3299"><a href="#Parser-3299"><span class="linenos">3299</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="Parser-3300"><a href="#Parser-3300"><span class="linenos">3300</span></a> -</span><span id="Parser-3301"><a href="#Parser-3301"><span class="linenos">3301</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3302"><a href="#Parser-3302"><span class="linenos">3302</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="Parser-3265"><a href="#Parser-3265"><span class="linenos">3265</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="Parser-3266"><a href="#Parser-3266"><span class="linenos">3266</span></a> +</span><span id="Parser-3267"><a href="#Parser-3267"><span class="linenos">3267</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">to</span><span class="p">:</span> +</span><span id="Parser-3268"><a href="#Parser-3268"><span class="linenos">3268</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expected TYPE after CAST"</span><span class="p">)</span> +</span><span id="Parser-3269"><a href="#Parser-3269"><span class="linenos">3269</span></a> <span class="k">elif</span> <span class="n">to</span><span class="o">.</span><span class="n">this</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">Type</span><span class="o">.</span><span class="n">CHAR</span><span class="p">:</span> +</span><span id="Parser-3270"><a href="#Parser-3270"><span class="linenos">3270</span></a> <span class="k">if</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">CHARACTER_SET</span><span class="p">):</span> +</span><span id="Parser-3271"><a href="#Parser-3271"><span class="linenos">3271</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_or_string</span><span class="p">())</span> +</span><span id="Parser-3272"><a href="#Parser-3272"><span class="linenos">3272</span></a> +</span><span id="Parser-3273"><a href="#Parser-3273"><span class="linenos">3273</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="Parser-3274"><a href="#Parser-3274"><span class="linenos">3274</span></a> +</span><span id="Parser-3275"><a href="#Parser-3275"><span class="linenos">3275</span></a> <span class="k">def</span> <span class="nf">_parse_string_agg</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3276"><a href="#Parser-3276"><span class="linenos">3276</span></a> <span class="n">expression</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="Parser-3277"><a href="#Parser-3277"><span class="linenos">3277</span></a> +</span><span id="Parser-3278"><a href="#Parser-3278"><span class="linenos">3278</span></a> <span class="k">if</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">DISTINCT</span><span class="p">):</span> +</span><span id="Parser-3279"><a href="#Parser-3279"><span class="linenos">3279</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-3280"><a href="#Parser-3280"><span class="linenos">3280</span></a> <span class="n">expression</span> <span class="o">=</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">Distinct</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</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="Parser-3281"><a href="#Parser-3281"><span class="linenos">3281</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3282"><a href="#Parser-3282"><span class="linenos">3282</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-3283"><a href="#Parser-3283"><span class="linenos">3283</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">0</span><span class="p">)</span> +</span><span id="Parser-3284"><a href="#Parser-3284"><span class="linenos">3284</span></a> +</span><span id="Parser-3285"><a href="#Parser-3285"><span class="linenos">3285</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><span id="Parser-3286"><a href="#Parser-3286"><span class="linenos">3286</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> +</span><span id="Parser-3287"><a href="#Parser-3287"><span class="linenos">3287</span></a> <span class="c1"># postgres: STRING_AGG([DISTINCT] expression, separator [ORDER BY expression1 {ASC | DESC} [, ...]])</span> +</span><span id="Parser-3288"><a href="#Parser-3288"><span class="linenos">3288</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Parser-3289"><a href="#Parser-3289"><span class="linenos">3289</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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="Parser-3290"><a href="#Parser-3290"><span class="linenos">3290</span></a> +</span><span id="Parser-3291"><a href="#Parser-3291"><span class="linenos">3291</span></a> <span class="c1"># Checks if we can parse an order clause: WITHIN GROUP (ORDER BY <order_by_expression_list> [ASC | DESC]).</span> +</span><span id="Parser-3292"><a href="#Parser-3292"><span class="linenos">3292</span></a> <span class="c1"># This is done "manually", instead of letting _parse_window parse it into an exp.WithinGroup node, so that</span> +</span><span id="Parser-3293"><a href="#Parser-3293"><span class="linenos">3293</span></a> <span class="c1"># the STRING_AGG call is parsed like in MySQL / SQLite and can thus be transpiled more easily to them.</span> +</span><span id="Parser-3294"><a href="#Parser-3294"><span class="linenos">3294</span></a> <span class="k">if</span> <span class="ow">not</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">WITHIN_GROUP</span><span class="p">):</span> +</span><span id="Parser-3295"><a href="#Parser-3295"><span class="linenos">3295</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="Parser-3296"><a href="#Parser-3296"><span class="linenos">3296</span></a> <span class="n">this</span> <span class="o">=</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 class="n">args</span><span class="p">)</span> +</span><span id="Parser-3297"><a href="#Parser-3297"><span class="linenos">3297</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="Parser-3298"><a href="#Parser-3298"><span class="linenos">3298</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3299"><a href="#Parser-3299"><span class="linenos">3299</span></a> +</span><span id="Parser-3300"><a href="#Parser-3300"><span class="linenos">3300</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> <span class="c1"># The corresponding match_r_paren will be called in parse_function (caller)</span> +</span><span id="Parser-3301"><a href="#Parser-3301"><span class="linenos">3301</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Parser-3302"><a href="#Parser-3302"><span class="linenos">3302</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">GroupConcat</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> <span class="n">separator</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="Parser-3303"><a href="#Parser-3303"><span class="linenos">3303</span></a> -</span><span id="Parser-3304"><a href="#Parser-3304"><span class="linenos">3304</span></a> <span class="k">if</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">IN</span><span class="p">):</span> -</span><span id="Parser-3305"><a href="#Parser-3305"><span class="linenos">3305</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><span id="Parser-3306"><a href="#Parser-3306"><span class="linenos">3306</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">,</span> <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 class="n">substr</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="Parser-3307"><a href="#Parser-3307"><span class="linenos">3307</span></a> <span class="p">)</span> -</span><span id="Parser-3308"><a href="#Parser-3308"><span class="linenos">3308</span></a> -</span><span id="Parser-3309"><a href="#Parser-3309"><span class="linenos">3309</span></a> <span class="k">if</span> <span class="n">haystack_first</span><span class="p">:</span> -</span><span id="Parser-3310"><a href="#Parser-3310"><span class="linenos">3310</span></a> <span class="n">haystack</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="Parser-3311"><a href="#Parser-3311"><span class="linenos">3311</span></a> <span class="n">needle</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="Parser-3304"><a href="#Parser-3304"><span class="linenos">3304</span></a> <span class="k">def</span> <span class="nf">_parse_convert</span><span class="p">(</span><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="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="Parser-3305"><a href="#Parser-3305"><span class="linenos">3305</span></a> <span class="n">to</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]</span> +</span><span id="Parser-3306"><a href="#Parser-3306"><span class="linenos">3306</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="Parser-3307"><a href="#Parser-3307"><span class="linenos">3307</span></a> +</span><span id="Parser-3308"><a href="#Parser-3308"><span class="linenos">3308</span></a> <span class="k">if</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">USING</span><span class="p">):</span> +</span><span id="Parser-3309"><a href="#Parser-3309"><span class="linenos">3309</span></a> <span class="n">to</span> <span class="o">=</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">CharacterSet</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">())</span> +</span><span id="Parser-3310"><a href="#Parser-3310"><span class="linenos">3310</span></a> <span class="k">elif</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">COMMA</span><span class="p">):</span> +</span><span id="Parser-3311"><a href="#Parser-3311"><span class="linenos">3311</span></a> <span class="n">to</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="Parser-3312"><a href="#Parser-3312"><span class="linenos">3312</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3313"><a href="#Parser-3313"><span class="linenos">3313</span></a> <span class="n">needle</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="Parser-3314"><a href="#Parser-3314"><span class="linenos">3314</span></a> <span class="n">haystack</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="Parser-3315"><a href="#Parser-3315"><span class="linenos">3315</span></a> -</span><span id="Parser-3316"><a href="#Parser-3316"><span class="linenos">3316</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">haystack</span><span class="p">,</span> <span class="n">substr</span><span class="o">=</span><span class="n">needle</span><span class="p">,</span> <span class="n">position</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="Parser-3317"><a href="#Parser-3317"><span class="linenos">3317</span></a> -</span><span id="Parser-3318"><a href="#Parser-3318"><span class="linenos">3318</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> -</span><span id="Parser-3319"><a href="#Parser-3319"><span class="linenos">3319</span></a> -</span><span id="Parser-3320"><a href="#Parser-3320"><span class="linenos">3320</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3321"><a href="#Parser-3321"><span class="linenos">3321</span></a> -</span><span id="Parser-3322"><a href="#Parser-3322"><span class="linenos">3322</span></a> <span class="k">def</span> <span class="nf">_parse_join_hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3323"><a href="#Parser-3323"><span class="linenos">3323</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> -</span><span id="Parser-3324"><a href="#Parser-3324"><span class="linenos">3324</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">func_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> -</span><span id="Parser-3325"><a href="#Parser-3325"><span class="linenos">3325</span></a> -</span><span id="Parser-3326"><a href="#Parser-3326"><span class="linenos">3326</span></a> <span class="k">def</span> <span class="nf">_parse_substring</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3327"><a href="#Parser-3327"><span class="linenos">3327</span></a> <span class="c1"># Postgres supports the form: substring(string [from int] [for int])</span> -</span><span id="Parser-3328"><a href="#Parser-3328"><span class="linenos">3328</span></a> <span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span> -</span><span id="Parser-3329"><a href="#Parser-3329"><span class="linenos">3329</span></a> -</span><span id="Parser-3330"><a href="#Parser-3330"><span class="linenos">3330</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> -</span><span id="Parser-3331"><a href="#Parser-3331"><span class="linenos">3331</span></a> -</span><span id="Parser-3332"><a href="#Parser-3332"><span class="linenos">3332</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> -</span><span id="Parser-3333"><a href="#Parser-3333"><span class="linenos">3333</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-3334"><a href="#Parser-3334"><span class="linenos">3334</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> -</span><span id="Parser-3335"><a href="#Parser-3335"><span class="linenos">3335</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> -</span><span id="Parser-3336"><a href="#Parser-3336"><span class="linenos">3336</span></a> -</span><span id="Parser-3337"><a href="#Parser-3337"><span class="linenos">3337</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-3313"><a href="#Parser-3313"><span class="linenos">3313</span></a> <span class="n">to</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3314"><a href="#Parser-3314"><span class="linenos">3314</span></a> +</span><span id="Parser-3315"><a href="#Parser-3315"><span class="linenos">3315</span></a> <span class="c1"># Swap the argument order if needed to produce the correct AST</span> +</span><span id="Parser-3316"><a href="#Parser-3316"><span class="linenos">3316</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">CONVERT_TYPE_FIRST</span><span class="p">:</span> +</span><span id="Parser-3317"><a href="#Parser-3317"><span class="linenos">3317</span></a> <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">this</span> +</span><span id="Parser-3318"><a href="#Parser-3318"><span class="linenos">3318</span></a> +</span><span id="Parser-3319"><a href="#Parser-3319"><span class="linenos">3319</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">Cast</span> <span class="k">if</span> <span class="n">strict</span> <span class="k">else</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><span id="Parser-3320"><a href="#Parser-3320"><span class="linenos">3320</span></a> +</span><span id="Parser-3321"><a href="#Parser-3321"><span class="linenos">3321</span></a> <span class="k">def</span> <span class="nf">_parse_position</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">haystack_first</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3322"><a href="#Parser-3322"><span class="linenos">3322</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> +</span><span id="Parser-3323"><a href="#Parser-3323"><span class="linenos">3323</span></a> +</span><span id="Parser-3324"><a href="#Parser-3324"><span class="linenos">3324</span></a> <span class="k">if</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">IN</span><span class="p">):</span> +</span><span id="Parser-3325"><a href="#Parser-3325"><span class="linenos">3325</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><span id="Parser-3326"><a href="#Parser-3326"><span class="linenos">3326</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">,</span> <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 class="n">substr</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="Parser-3327"><a href="#Parser-3327"><span class="linenos">3327</span></a> <span class="p">)</span> +</span><span id="Parser-3328"><a href="#Parser-3328"><span class="linenos">3328</span></a> +</span><span id="Parser-3329"><a href="#Parser-3329"><span class="linenos">3329</span></a> <span class="k">if</span> <span class="n">haystack_first</span><span class="p">:</span> +</span><span id="Parser-3330"><a href="#Parser-3330"><span class="linenos">3330</span></a> <span class="n">haystack</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="Parser-3331"><a href="#Parser-3331"><span class="linenos">3331</span></a> <span class="n">needle</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="Parser-3332"><a href="#Parser-3332"><span class="linenos">3332</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3333"><a href="#Parser-3333"><span class="linenos">3333</span></a> <span class="n">needle</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="Parser-3334"><a href="#Parser-3334"><span class="linenos">3334</span></a> <span class="n">haystack</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="Parser-3335"><a href="#Parser-3335"><span class="linenos">3335</span></a> +</span><span id="Parser-3336"><a href="#Parser-3336"><span class="linenos">3336</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">StrPosition</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">haystack</span><span class="p">,</span> <span class="n">substr</span><span class="o">=</span><span class="n">needle</span><span class="p">,</span> <span class="n">position</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="Parser-3337"><a href="#Parser-3337"><span class="linenos">3337</span></a> </span><span id="Parser-3338"><a href="#Parser-3338"><span class="linenos">3338</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> </span><span id="Parser-3339"><a href="#Parser-3339"><span class="linenos">3339</span></a> </span><span id="Parser-3340"><a href="#Parser-3340"><span class="linenos">3340</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-3341"><a href="#Parser-3341"><span class="linenos">3341</span></a> -</span><span id="Parser-3342"><a href="#Parser-3342"><span class="linenos">3342</span></a> <span class="k">def</span> <span class="nf">_parse_trim</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3343"><a href="#Parser-3343"><span class="linenos">3343</span></a> <span class="c1"># https://www.w3resource.com/sql/character-functions/trim.php</span> -</span><span id="Parser-3344"><a href="#Parser-3344"><span class="linenos">3344</span></a> <span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html</span> +</span><span id="Parser-3342"><a href="#Parser-3342"><span class="linenos">3342</span></a> <span class="k">def</span> <span class="nf">_parse_join_hint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">func_name</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3343"><a href="#Parser-3343"><span class="linenos">3343</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">)</span> +</span><span id="Parser-3344"><a href="#Parser-3344"><span class="linenos">3344</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">JoinHint</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">func_name</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">expressions</span><span class="o">=</span><span class="n">args</span><span class="p">)</span> </span><span id="Parser-3345"><a href="#Parser-3345"><span class="linenos">3345</span></a> -</span><span id="Parser-3346"><a href="#Parser-3346"><span class="linenos">3346</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3347"><a href="#Parser-3347"><span class="linenos">3347</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3348"><a href="#Parser-3348"><span class="linenos">3348</span></a> -</span><span id="Parser-3349"><a href="#Parser-3349"><span class="linenos">3349</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRIM_TYPES</span><span class="p">):</span> -</span><span id="Parser-3350"><a href="#Parser-3350"><span class="linenos">3350</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3346"><a href="#Parser-3346"><span class="linenos">3346</span></a> <span class="k">def</span> <span class="nf">_parse_substring</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3347"><a href="#Parser-3347"><span class="linenos">3347</span></a> <span class="c1"># Postgres supports the form: substring(string [from int] [for int])</span> +</span><span id="Parser-3348"><a href="#Parser-3348"><span class="linenos">3348</span></a> <span class="c1"># https://www.postgresql.org/docs/9.1/functions-string.html @ Table 9-6</span> +</span><span id="Parser-3349"><a href="#Parser-3349"><span class="linenos">3349</span></a> +</span><span id="Parser-3350"><a href="#Parser-3350"><span class="linenos">3350</span></a> <span class="n">args</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">)</span> </span><span id="Parser-3351"><a href="#Parser-3351"><span class="linenos">3351</span></a> -</span><span id="Parser-3352"><a href="#Parser-3352"><span class="linenos">3352</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="Parser-3353"><a href="#Parser-3353"><span class="linenos">3353</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</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="Parser-3354"><a href="#Parser-3354"><span class="linenos">3354</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> -</span><span id="Parser-3355"><a href="#Parser-3355"><span class="linenos">3355</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3356"><a href="#Parser-3356"><span class="linenos">3356</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span> -</span><span id="Parser-3357"><a href="#Parser-3357"><span class="linenos">3357</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3358"><a href="#Parser-3358"><span class="linenos">3358</span></a> -</span><span id="Parser-3359"><a href="#Parser-3359"><span class="linenos">3359</span></a> <span class="k">if</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">COLLATE</span><span class="p">):</span> -</span><span id="Parser-3360"><a href="#Parser-3360"><span class="linenos">3360</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-3352"><a href="#Parser-3352"><span class="linenos">3352</span></a> <span class="k">if</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">FROM</span><span class="p">):</span> +</span><span id="Parser-3353"><a href="#Parser-3353"><span class="linenos">3353</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3354"><a href="#Parser-3354"><span class="linenos">3354</span></a> <span class="k">if</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">FOR</span><span class="p">):</span> +</span><span id="Parser-3355"><a href="#Parser-3355"><span class="linenos">3355</span></a> <span class="n">args</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">())</span> +</span><span id="Parser-3356"><a href="#Parser-3356"><span class="linenos">3356</span></a> +</span><span id="Parser-3357"><a href="#Parser-3357"><span class="linenos">3357</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Substring</span><span class="o">.</span><span class="n">from_arg_list</span><span class="p">(</span><span class="n">args</span><span class="p">)</span> +</span><span id="Parser-3358"><a href="#Parser-3358"><span class="linenos">3358</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">args</span><span class="p">)</span> +</span><span id="Parser-3359"><a href="#Parser-3359"><span class="linenos">3359</span></a> +</span><span id="Parser-3360"><a href="#Parser-3360"><span class="linenos">3360</span></a> <span class="k">return</span> <span class="n">this</span> </span><span id="Parser-3361"><a href="#Parser-3361"><span class="linenos">3361</span></a> -</span><span id="Parser-3362"><a href="#Parser-3362"><span class="linenos">3362</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><span id="Parser-3363"><a href="#Parser-3363"><span class="linenos">3363</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">,</span> -</span><span id="Parser-3364"><a href="#Parser-3364"><span class="linenos">3364</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-3365"><a href="#Parser-3365"><span class="linenos">3365</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> -</span><span id="Parser-3366"><a href="#Parser-3366"><span class="linenos">3366</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> -</span><span id="Parser-3367"><a href="#Parser-3367"><span class="linenos">3367</span></a> <span class="n">collation</span><span class="o">=</span><span class="n">collation</span><span class="p">,</span> -</span><span id="Parser-3368"><a href="#Parser-3368"><span class="linenos">3368</span></a> <span class="p">)</span> -</span><span id="Parser-3369"><a href="#Parser-3369"><span class="linenos">3369</span></a> -</span><span id="Parser-3370"><a href="#Parser-3370"><span class="linenos">3370</span></a> <span class="k">def</span> <span class="nf">_parse_window_clause</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="Parser-3371"><a href="#Parser-3371"><span class="linenos">3371</span></a> <span class="k">return</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">WINDOW</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_named_window</span><span class="p">)</span> -</span><span id="Parser-3372"><a href="#Parser-3372"><span class="linenos">3372</span></a> -</span><span id="Parser-3373"><a href="#Parser-3373"><span class="linenos">3373</span></a> <span class="k">def</span> <span class="nf">_parse_named_window</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3374"><a href="#Parser-3374"><span class="linenos">3374</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> <span class="n">alias</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3375"><a href="#Parser-3375"><span class="linenos">3375</span></a> -</span><span id="Parser-3376"><a href="#Parser-3376"><span class="linenos">3376</span></a> <span class="k">def</span> <span class="nf">_parse_window</span><span class="p">(</span> -</span><span id="Parser-3377"><a href="#Parser-3377"><span class="linenos">3377</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-3378"><a href="#Parser-3378"><span class="linenos">3378</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="Parser-3379"><a href="#Parser-3379"><span class="linenos">3379</span></a> <span class="k">if</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">FILTER</span><span class="p">):</span> -</span><span id="Parser-3380"><a href="#Parser-3380"><span class="linenos">3380</span></a> <span class="n">where</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">)</span> -</span><span id="Parser-3381"><a href="#Parser-3381"><span class="linenos">3381</span></a> <span class="n">this</span> <span class="o">=</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">Filter</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">where</span><span class="p">)</span> -</span><span id="Parser-3382"><a href="#Parser-3382"><span class="linenos">3382</span></a> -</span><span id="Parser-3383"><a href="#Parser-3383"><span class="linenos">3383</span></a> <span class="c1"># T-SQL allows the OVER (...) syntax after WITHIN GROUP.</span> -</span><span id="Parser-3384"><a href="#Parser-3384"><span class="linenos">3384</span></a> <span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16</span> -</span><span id="Parser-3385"><a href="#Parser-3385"><span class="linenos">3385</span></a> <span class="k">if</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">WITHIN_GROUP</span><span class="p">):</span> -</span><span id="Parser-3386"><a href="#Parser-3386"><span class="linenos">3386</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">)</span> -</span><span id="Parser-3387"><a href="#Parser-3387"><span class="linenos">3387</span></a> <span class="n">this</span> <span class="o">=</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">WithinGroup</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">order</span><span class="p">)</span> -</span><span id="Parser-3388"><a href="#Parser-3388"><span class="linenos">3388</span></a> -</span><span id="Parser-3389"><a href="#Parser-3389"><span class="linenos">3389</span></a> <span class="c1"># SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER</span> -</span><span id="Parser-3390"><a href="#Parser-3390"><span class="linenos">3390</span></a> <span class="c1"># Some dialects choose to implement and some do not.</span> -</span><span id="Parser-3391"><a href="#Parser-3391"><span class="linenos">3391</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html</span> +</span><span id="Parser-3362"><a href="#Parser-3362"><span class="linenos">3362</span></a> <span class="k">def</span> <span class="nf">_parse_trim</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3363"><a href="#Parser-3363"><span class="linenos">3363</span></a> <span class="c1"># https://www.w3resource.com/sql/character-functions/trim.php</span> +</span><span id="Parser-3364"><a href="#Parser-3364"><span class="linenos">3364</span></a> <span class="c1"># https://docs.oracle.com/javadb/10.8.3.0/ref/rreftrimfunc.html</span> +</span><span id="Parser-3365"><a href="#Parser-3365"><span class="linenos">3365</span></a> +</span><span id="Parser-3366"><a href="#Parser-3366"><span class="linenos">3366</span></a> <span class="n">position</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3367"><a href="#Parser-3367"><span class="linenos">3367</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3368"><a href="#Parser-3368"><span class="linenos">3368</span></a> +</span><span id="Parser-3369"><a href="#Parser-3369"><span class="linenos">3369</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRIM_TYPES</span><span class="p">):</span> +</span><span id="Parser-3370"><a href="#Parser-3370"><span class="linenos">3370</span></a> <span class="n">position</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3371"><a href="#Parser-3371"><span class="linenos">3371</span></a> +</span><span id="Parser-3372"><a href="#Parser-3372"><span class="linenos">3372</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-3373"><a href="#Parser-3373"><span class="linenos">3373</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</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="Parser-3374"><a href="#Parser-3374"><span class="linenos">3374</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-3375"><a href="#Parser-3375"><span class="linenos">3375</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3376"><a href="#Parser-3376"><span class="linenos">3376</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">expression</span> +</span><span id="Parser-3377"><a href="#Parser-3377"><span class="linenos">3377</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3378"><a href="#Parser-3378"><span class="linenos">3378</span></a> +</span><span id="Parser-3379"><a href="#Parser-3379"><span class="linenos">3379</span></a> <span class="k">if</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">COLLATE</span><span class="p">):</span> +</span><span id="Parser-3380"><a href="#Parser-3380"><span class="linenos">3380</span></a> <span class="n">collation</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">()</span> +</span><span id="Parser-3381"><a href="#Parser-3381"><span class="linenos">3381</span></a> +</span><span id="Parser-3382"><a href="#Parser-3382"><span class="linenos">3382</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><span id="Parser-3383"><a href="#Parser-3383"><span class="linenos">3383</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Trim</span><span class="p">,</span> +</span><span id="Parser-3384"><a href="#Parser-3384"><span class="linenos">3384</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3385"><a href="#Parser-3385"><span class="linenos">3385</span></a> <span class="n">position</span><span class="o">=</span><span class="n">position</span><span class="p">,</span> +</span><span id="Parser-3386"><a href="#Parser-3386"><span class="linenos">3386</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> +</span><span id="Parser-3387"><a href="#Parser-3387"><span class="linenos">3387</span></a> <span class="n">collation</span><span class="o">=</span><span class="n">collation</span><span class="p">,</span> +</span><span id="Parser-3388"><a href="#Parser-3388"><span class="linenos">3388</span></a> <span class="p">)</span> +</span><span id="Parser-3389"><a href="#Parser-3389"><span class="linenos">3389</span></a> +</span><span id="Parser-3390"><a href="#Parser-3390"><span class="linenos">3390</span></a> <span class="k">def</span> <span class="nf">_parse_window_clause</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="Parser-3391"><a href="#Parser-3391"><span class="linenos">3391</span></a> <span class="k">return</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">WINDOW</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_named_window</span><span class="p">)</span> </span><span id="Parser-3392"><a href="#Parser-3392"><span class="linenos">3392</span></a> -</span><span id="Parser-3393"><a href="#Parser-3393"><span class="linenos">3393</span></a> <span class="c1"># There is some code above in _parse_lambda that handles</span> -</span><span id="Parser-3394"><a href="#Parser-3394"><span class="linenos">3394</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ...</span> +</span><span id="Parser-3393"><a href="#Parser-3393"><span class="linenos">3393</span></a> <span class="k">def</span> <span class="nf">_parse_named_window</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3394"><a href="#Parser-3394"><span class="linenos">3394</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(),</span> <span class="n">alias</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> </span><span id="Parser-3395"><a href="#Parser-3395"><span class="linenos">3395</span></a> -</span><span id="Parser-3396"><a href="#Parser-3396"><span class="linenos">3396</span></a> <span class="c1"># The below changes handle</span> -</span><span id="Parser-3397"><a href="#Parser-3397"><span class="linenos">3397</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ...</span> -</span><span id="Parser-3398"><a href="#Parser-3398"><span class="linenos">3398</span></a> -</span><span id="Parser-3399"><a href="#Parser-3399"><span class="linenos">3399</span></a> <span class="c1"># Oracle allows both formats</span> -</span><span id="Parser-3400"><a href="#Parser-3400"><span class="linenos">3400</span></a> <span class="c1"># (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html)</span> -</span><span id="Parser-3401"><a href="#Parser-3401"><span class="linenos">3401</span></a> <span class="c1"># and Snowflake chose to do the same for familiarity</span> -</span><span id="Parser-3402"><a href="#Parser-3402"><span class="linenos">3402</span></a> <span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes</span> -</span><span id="Parser-3403"><a href="#Parser-3403"><span class="linenos">3403</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> -</span><span id="Parser-3404"><a href="#Parser-3404"><span class="linenos">3404</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-3405"><a href="#Parser-3405"><span class="linenos">3405</span></a> <span class="k">elif</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">RESPECT_NULLS</span><span class="p">):</span> -</span><span id="Parser-3406"><a href="#Parser-3406"><span class="linenos">3406</span></a> <span class="n">this</span> <span class="o">=</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">RespectNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-3407"><a href="#Parser-3407"><span class="linenos">3407</span></a> -</span><span id="Parser-3408"><a href="#Parser-3408"><span class="linenos">3408</span></a> <span class="c1"># bigquery select from window x AS (partition by ...)</span> -</span><span id="Parser-3409"><a href="#Parser-3409"><span class="linenos">3409</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="Parser-3410"><a href="#Parser-3410"><span class="linenos">3410</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-3411"><a href="#Parser-3411"><span class="linenos">3411</span></a> <span class="k">elif</span> <span class="ow">not</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">OVER</span><span class="p">):</span> -</span><span id="Parser-3412"><a href="#Parser-3412"><span class="linenos">3412</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3413"><a href="#Parser-3413"><span class="linenos">3413</span></a> -</span><span id="Parser-3414"><a href="#Parser-3414"><span class="linenos">3414</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-3415"><a href="#Parser-3415"><span class="linenos">3415</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">Window</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">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span> -</span><span id="Parser-3416"><a href="#Parser-3416"><span class="linenos">3416</span></a> -</span><span id="Parser-3417"><a href="#Parser-3417"><span class="linenos">3417</span></a> <span class="n">window_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">WINDOW_ALIAS_TOKENS</span><span class="p">)</span> -</span><span id="Parser-3418"><a href="#Parser-3418"><span class="linenos">3418</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> -</span><span id="Parser-3419"><a href="#Parser-3419"><span class="linenos">3419</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> -</span><span id="Parser-3420"><a href="#Parser-3420"><span class="linenos">3420</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-3421"><a href="#Parser-3421"><span class="linenos">3421</span></a> -</span><span id="Parser-3422"><a href="#Parser-3422"><span class="linenos">3422</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> -</span><span id="Parser-3423"><a href="#Parser-3423"><span class="linenos">3423</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">BETWEEN</span><span class="p">)</span> -</span><span id="Parser-3424"><a href="#Parser-3424"><span class="linenos">3424</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> -</span><span id="Parser-3425"><a href="#Parser-3425"><span class="linenos">3425</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">AND</span><span class="p">)</span> -</span><span id="Parser-3426"><a href="#Parser-3426"><span class="linenos">3426</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> +</span><span id="Parser-3396"><a href="#Parser-3396"><span class="linenos">3396</span></a> <span class="k">def</span> <span class="nf">_parse_window</span><span class="p">(</span> +</span><span id="Parser-3397"><a href="#Parser-3397"><span class="linenos">3397</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">alias</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-3398"><a href="#Parser-3398"><span class="linenos">3398</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="Parser-3399"><a href="#Parser-3399"><span class="linenos">3399</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-3400"><a href="#Parser-3400"><span class="linenos">3400</span></a> <span class="n">this</span> <span class="o">=</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">Filter</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_where</span><span class="p">())</span> +</span><span id="Parser-3401"><a href="#Parser-3401"><span class="linenos">3401</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-3402"><a href="#Parser-3402"><span class="linenos">3402</span></a> +</span><span id="Parser-3403"><a href="#Parser-3403"><span class="linenos">3403</span></a> <span class="c1"># T-SQL allows the OVER (...) syntax after WITHIN GROUP.</span> +</span><span id="Parser-3404"><a href="#Parser-3404"><span class="linenos">3404</span></a> <span class="c1"># https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16</span> +</span><span id="Parser-3405"><a href="#Parser-3405"><span class="linenos">3405</span></a> <span class="k">if</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">WITHIN_GROUP</span><span class="p">):</span> +</span><span id="Parser-3406"><a href="#Parser-3406"><span class="linenos">3406</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">)</span> +</span><span id="Parser-3407"><a href="#Parser-3407"><span class="linenos">3407</span></a> <span class="n">this</span> <span class="o">=</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">WithinGroup</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">order</span><span class="p">)</span> +</span><span id="Parser-3408"><a href="#Parser-3408"><span class="linenos">3408</span></a> +</span><span id="Parser-3409"><a href="#Parser-3409"><span class="linenos">3409</span></a> <span class="c1"># SQL spec defines an optional [ { IGNORE | RESPECT } NULLS ] OVER</span> +</span><span id="Parser-3410"><a href="#Parser-3410"><span class="linenos">3410</span></a> <span class="c1"># Some dialects choose to implement and some do not.</span> +</span><span id="Parser-3411"><a href="#Parser-3411"><span class="linenos">3411</span></a> <span class="c1"># https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html</span> +</span><span id="Parser-3412"><a href="#Parser-3412"><span class="linenos">3412</span></a> +</span><span id="Parser-3413"><a href="#Parser-3413"><span class="linenos">3413</span></a> <span class="c1"># There is some code above in _parse_lambda that handles</span> +</span><span id="Parser-3414"><a href="#Parser-3414"><span class="linenos">3414</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN IGNORE|RESPECT NULLS) OVER ...</span> +</span><span id="Parser-3415"><a href="#Parser-3415"><span class="linenos">3415</span></a> +</span><span id="Parser-3416"><a href="#Parser-3416"><span class="linenos">3416</span></a> <span class="c1"># The below changes handle</span> +</span><span id="Parser-3417"><a href="#Parser-3417"><span class="linenos">3417</span></a> <span class="c1"># SELECT FIRST_VALUE(TABLE.COLUMN) IGNORE|RESPECT NULLS OVER ...</span> +</span><span id="Parser-3418"><a href="#Parser-3418"><span class="linenos">3418</span></a> +</span><span id="Parser-3419"><a href="#Parser-3419"><span class="linenos">3419</span></a> <span class="c1"># Oracle allows both formats</span> +</span><span id="Parser-3420"><a href="#Parser-3420"><span class="linenos">3420</span></a> <span class="c1"># (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/img_text/first_value.html)</span> +</span><span id="Parser-3421"><a href="#Parser-3421"><span class="linenos">3421</span></a> <span class="c1"># and Snowflake chose to do the same for familiarity</span> +</span><span id="Parser-3422"><a href="#Parser-3422"><span class="linenos">3422</span></a> <span class="c1"># https://docs.snowflake.com/en/sql-reference/functions/first_value.html#usage-notes</span> +</span><span id="Parser-3423"><a href="#Parser-3423"><span class="linenos">3423</span></a> <span class="k">if</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">IGNORE_NULLS</span><span class="p">):</span> +</span><span id="Parser-3424"><a href="#Parser-3424"><span class="linenos">3424</span></a> <span class="n">this</span> <span class="o">=</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">IgnoreNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-3425"><a href="#Parser-3425"><span class="linenos">3425</span></a> <span class="k">elif</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">RESPECT_NULLS</span><span class="p">):</span> +</span><span id="Parser-3426"><a href="#Parser-3426"><span class="linenos">3426</span></a> <span class="n">this</span> <span class="o">=</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">RespectNulls</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">)</span> </span><span id="Parser-3427"><a href="#Parser-3427"><span class="linenos">3427</span></a> -</span><span id="Parser-3428"><a href="#Parser-3428"><span class="linenos">3428</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-3429"><a href="#Parser-3429"><span class="linenos">3429</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WindowSpec</span><span class="p">,</span> -</span><span id="Parser-3430"><a href="#Parser-3430"><span class="linenos">3430</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> -</span><span id="Parser-3431"><a href="#Parser-3431"><span class="linenos">3431</span></a> <span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> -</span><span id="Parser-3432"><a href="#Parser-3432"><span class="linenos">3432</span></a> <span class="n">start_side</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> -</span><span id="Parser-3433"><a href="#Parser-3433"><span class="linenos">3433</span></a> <span class="n">end</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> -</span><span id="Parser-3434"><a href="#Parser-3434"><span class="linenos">3434</span></a> <span class="n">end_side</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> -</span><span id="Parser-3435"><a href="#Parser-3435"><span class="linenos">3435</span></a> <span class="p">)</span> -</span><span id="Parser-3436"><a href="#Parser-3436"><span class="linenos">3436</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3437"><a href="#Parser-3437"><span class="linenos">3437</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3438"><a href="#Parser-3438"><span class="linenos">3438</span></a> -</span><span id="Parser-3439"><a href="#Parser-3439"><span class="linenos">3439</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-3440"><a href="#Parser-3440"><span class="linenos">3440</span></a> -</span><span id="Parser-3441"><a href="#Parser-3441"><span class="linenos">3441</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><span id="Parser-3442"><a href="#Parser-3442"><span class="linenos">3442</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span> -</span><span id="Parser-3443"><a href="#Parser-3443"><span class="linenos">3443</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-3444"><a href="#Parser-3444"><span class="linenos">3444</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> -</span><span id="Parser-3445"><a href="#Parser-3445"><span class="linenos">3445</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> -</span><span id="Parser-3446"><a href="#Parser-3446"><span class="linenos">3446</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> -</span><span id="Parser-3447"><a href="#Parser-3447"><span class="linenos">3447</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">window_alias</span><span class="p">,</span> -</span><span id="Parser-3448"><a href="#Parser-3448"><span class="linenos">3448</span></a> <span class="p">)</span> -</span><span id="Parser-3449"><a href="#Parser-3449"><span class="linenos">3449</span></a> -</span><span id="Parser-3450"><a href="#Parser-3450"><span class="linenos">3450</span></a> <span class="k">def</span> <span class="nf">_parse_window_spec</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">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Parser-3451"><a href="#Parser-3451"><span class="linenos">3451</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">BETWEEN</span><span class="p">)</span> -</span><span id="Parser-3452"><a href="#Parser-3452"><span class="linenos">3452</span></a> -</span><span id="Parser-3453"><a href="#Parser-3453"><span class="linenos">3453</span></a> <span class="k">return</span> <span class="p">{</span> -</span><span id="Parser-3454"><a href="#Parser-3454"><span class="linenos">3454</span></a> <span class="s2">"value"</span><span class="p">:</span> <span class="p">(</span> -</span><span id="Parser-3455"><a href="#Parser-3455"><span class="linenos">3455</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_ROW</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-3456"><a href="#Parser-3456"><span class="linenos">3456</span></a> <span class="p">)</span> -</span><span id="Parser-3457"><a href="#Parser-3457"><span class="linenos">3457</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">(),</span> -</span><span id="Parser-3458"><a href="#Parser-3458"><span class="linenos">3458</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> -</span><span id="Parser-3459"><a href="#Parser-3459"><span class="linenos">3459</span></a> <span class="p">}</span> +</span><span id="Parser-3428"><a href="#Parser-3428"><span class="linenos">3428</span></a> <span class="c1"># bigquery select from window x AS (partition by ...)</span> +</span><span id="Parser-3429"><a href="#Parser-3429"><span class="linenos">3429</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="Parser-3430"><a href="#Parser-3430"><span class="linenos">3430</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-3431"><a href="#Parser-3431"><span class="linenos">3431</span></a> <span class="k">elif</span> <span class="ow">not</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">OVER</span><span class="p">):</span> +</span><span id="Parser-3432"><a href="#Parser-3432"><span class="linenos">3432</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3433"><a href="#Parser-3433"><span class="linenos">3433</span></a> +</span><span id="Parser-3434"><a href="#Parser-3434"><span class="linenos">3434</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-3435"><a href="#Parser-3435"><span class="linenos">3435</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">Window</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">alias</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span> +</span><span id="Parser-3436"><a href="#Parser-3436"><span class="linenos">3436</span></a> +</span><span id="Parser-3437"><a href="#Parser-3437"><span class="linenos">3437</span></a> <span class="n">window_alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">tokens</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">WINDOW_ALIAS_TOKENS</span><span class="p">)</span> +</span><span id="Parser-3438"><a href="#Parser-3438"><span class="linenos">3438</span></a> <span class="n">partition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition_by</span><span class="p">()</span> +</span><span id="Parser-3439"><a href="#Parser-3439"><span class="linenos">3439</span></a> <span class="n">order</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_order</span><span class="p">()</span> +</span><span id="Parser-3440"><a href="#Parser-3440"><span class="linenos">3440</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-3441"><a href="#Parser-3441"><span class="linenos">3441</span></a> +</span><span id="Parser-3442"><a href="#Parser-3442"><span class="linenos">3442</span></a> <span class="k">if</span> <span class="n">kind</span><span class="p">:</span> +</span><span id="Parser-3443"><a href="#Parser-3443"><span class="linenos">3443</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">BETWEEN</span><span class="p">)</span> +</span><span id="Parser-3444"><a href="#Parser-3444"><span class="linenos">3444</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> +</span><span id="Parser-3445"><a href="#Parser-3445"><span class="linenos">3445</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">AND</span><span class="p">)</span> +</span><span id="Parser-3446"><a href="#Parser-3446"><span class="linenos">3446</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_window_spec</span><span class="p">()</span> +</span><span id="Parser-3447"><a href="#Parser-3447"><span class="linenos">3447</span></a> +</span><span id="Parser-3448"><a href="#Parser-3448"><span class="linenos">3448</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3449"><a href="#Parser-3449"><span class="linenos">3449</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">WindowSpec</span><span class="p">,</span> +</span><span id="Parser-3450"><a href="#Parser-3450"><span class="linenos">3450</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Parser-3451"><a href="#Parser-3451"><span class="linenos">3451</span></a> <span class="n">start</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> +</span><span id="Parser-3452"><a href="#Parser-3452"><span class="linenos">3452</span></a> <span class="n">start_side</span><span class="o">=</span><span class="n">start</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> +</span><span id="Parser-3453"><a href="#Parser-3453"><span class="linenos">3453</span></a> <span class="n">end</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"value"</span><span class="p">],</span> +</span><span id="Parser-3454"><a href="#Parser-3454"><span class="linenos">3454</span></a> <span class="n">end_side</span><span class="o">=</span><span class="n">end</span><span class="p">[</span><span class="s2">"side"</span><span class="p">],</span> +</span><span id="Parser-3455"><a href="#Parser-3455"><span class="linenos">3455</span></a> <span class="p">)</span> +</span><span id="Parser-3456"><a href="#Parser-3456"><span class="linenos">3456</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3457"><a href="#Parser-3457"><span class="linenos">3457</span></a> <span class="n">spec</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3458"><a href="#Parser-3458"><span class="linenos">3458</span></a> +</span><span id="Parser-3459"><a href="#Parser-3459"><span class="linenos">3459</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> </span><span id="Parser-3460"><a href="#Parser-3460"><span class="linenos">3460</span></a> -</span><span id="Parser-3461"><a href="#Parser-3461"><span class="linenos">3461</span></a> <span class="k">def</span> <span class="nf">_parse_alias</span><span class="p">(</span> -</span><span id="Parser-3462"><a href="#Parser-3462"><span class="linenos">3462</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">explicit</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Parser-3463"><a href="#Parser-3463"><span class="linenos">3463</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="Parser-3464"><a href="#Parser-3464"><span class="linenos">3464</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> -</span><span id="Parser-3465"><a href="#Parser-3465"><span class="linenos">3465</span></a> -</span><span id="Parser-3466"><a href="#Parser-3466"><span class="linenos">3466</span></a> <span class="k">if</span> <span class="n">explicit</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">any_token</span><span class="p">:</span> -</span><span id="Parser-3467"><a href="#Parser-3467"><span class="linenos">3467</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3468"><a href="#Parser-3468"><span class="linenos">3468</span></a> -</span><span id="Parser-3469"><a href="#Parser-3469"><span class="linenos">3469</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-3470"><a href="#Parser-3470"><span class="linenos">3470</span></a> <span class="n">aliases</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-3471"><a href="#Parser-3471"><span class="linenos">3471</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Aliases</span><span class="p">,</span> -</span><span id="Parser-3472"><a href="#Parser-3472"><span class="linenos">3472</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-3473"><a href="#Parser-3473"><span class="linenos">3473</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)),</span> -</span><span id="Parser-3474"><a href="#Parser-3474"><span class="linenos">3474</span></a> <span class="p">)</span> -</span><span id="Parser-3475"><a href="#Parser-3475"><span class="linenos">3475</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">aliases</span><span class="p">)</span> -</span><span id="Parser-3476"><a href="#Parser-3476"><span class="linenos">3476</span></a> <span class="k">return</span> <span class="n">aliases</span> -</span><span id="Parser-3477"><a href="#Parser-3477"><span class="linenos">3477</span></a> -</span><span id="Parser-3478"><a href="#Parser-3478"><span class="linenos">3478</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> -</span><span id="Parser-3479"><a href="#Parser-3479"><span class="linenos">3479</span></a> -</span><span id="Parser-3480"><a href="#Parser-3480"><span class="linenos">3480</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> -</span><span id="Parser-3481"><a href="#Parser-3481"><span class="linenos">3481</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">Alias</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">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> -</span><span id="Parser-3482"><a href="#Parser-3482"><span class="linenos">3482</span></a> -</span><span id="Parser-3483"><a href="#Parser-3483"><span class="linenos">3483</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3484"><a href="#Parser-3484"><span class="linenos">3484</span></a> -</span><span id="Parser-3485"><a href="#Parser-3485"><span class="linenos">3485</span></a> <span class="k">def</span> <span class="nf">_parse_id_var</span><span class="p">(</span> -</span><span id="Parser-3486"><a href="#Parser-3486"><span class="linenos">3486</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser-3487"><a href="#Parser-3487"><span class="linenos">3487</span></a> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> -</span><span id="Parser-3488"><a href="#Parser-3488"><span class="linenos">3488</span></a> <span class="n">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="Parser-3489"><a href="#Parser-3489"><span class="linenos">3489</span></a> <span class="n">prefix_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="Parser-3490"><a href="#Parser-3490"><span class="linenos">3490</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="Parser-3491"><a href="#Parser-3491"><span class="linenos">3491</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_identifier</span><span class="p">()</span> -</span><span id="Parser-3492"><a href="#Parser-3492"><span class="linenos">3492</span></a> -</span><span id="Parser-3493"><a href="#Parser-3493"><span class="linenos">3493</span></a> <span class="k">if</span> <span class="n">identifier</span><span class="p">:</span> -</span><span id="Parser-3494"><a href="#Parser-3494"><span class="linenos">3494</span></a> <span class="k">return</span> <span class="n">identifier</span> -</span><span id="Parser-3495"><a href="#Parser-3495"><span class="linenos">3495</span></a> -</span><span id="Parser-3496"><a href="#Parser-3496"><span class="linenos">3496</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Parser-3461"><a href="#Parser-3461"><span class="linenos">3461</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><span id="Parser-3462"><a href="#Parser-3462"><span class="linenos">3462</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span> +</span><span id="Parser-3463"><a href="#Parser-3463"><span class="linenos">3463</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3464"><a href="#Parser-3464"><span class="linenos">3464</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">partition</span><span class="p">,</span> +</span><span id="Parser-3465"><a href="#Parser-3465"><span class="linenos">3465</span></a> <span class="n">order</span><span class="o">=</span><span class="n">order</span><span class="p">,</span> +</span><span id="Parser-3466"><a href="#Parser-3466"><span class="linenos">3466</span></a> <span class="n">spec</span><span class="o">=</span><span class="n">spec</span><span class="p">,</span> +</span><span id="Parser-3467"><a href="#Parser-3467"><span class="linenos">3467</span></a> <span class="n">alias</span><span class="o">=</span><span class="n">window_alias</span><span class="p">,</span> +</span><span id="Parser-3468"><a href="#Parser-3468"><span class="linenos">3468</span></a> <span class="p">)</span> +</span><span id="Parser-3469"><a href="#Parser-3469"><span class="linenos">3469</span></a> +</span><span id="Parser-3470"><a href="#Parser-3470"><span class="linenos">3470</span></a> <span class="k">def</span> <span class="nf">_parse_window_spec</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">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span> <span class="o">|</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="Parser-3471"><a href="#Parser-3471"><span class="linenos">3471</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">BETWEEN</span><span class="p">)</span> +</span><span id="Parser-3472"><a href="#Parser-3472"><span class="linenos">3472</span></a> +</span><span id="Parser-3473"><a href="#Parser-3473"><span class="linenos">3473</span></a> <span class="k">return</span> <span class="p">{</span> +</span><span id="Parser-3474"><a href="#Parser-3474"><span class="linenos">3474</span></a> <span class="s2">"value"</span><span class="p">:</span> <span class="p">(</span> +</span><span id="Parser-3475"><a href="#Parser-3475"><span class="linenos">3475</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_ROW</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-3476"><a href="#Parser-3476"><span class="linenos">3476</span></a> <span class="p">)</span> +</span><span id="Parser-3477"><a href="#Parser-3477"><span class="linenos">3477</span></a> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_bitwise</span><span class="p">(),</span> +</span><span id="Parser-3478"><a href="#Parser-3478"><span class="linenos">3478</span></a> <span class="s2">"side"</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">((</span><span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">))</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> +</span><span id="Parser-3479"><a href="#Parser-3479"><span class="linenos">3479</span></a> <span class="p">}</span> +</span><span id="Parser-3480"><a href="#Parser-3480"><span class="linenos">3480</span></a> +</span><span id="Parser-3481"><a href="#Parser-3481"><span class="linenos">3481</span></a> <span class="k">def</span> <span class="nf">_parse_alias</span><span class="p">(</span> +</span><span id="Parser-3482"><a href="#Parser-3482"><span class="linenos">3482</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">this</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">explicit</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Parser-3483"><a href="#Parser-3483"><span class="linenos">3483</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="Parser-3484"><a href="#Parser-3484"><span class="linenos">3484</span></a> <span class="n">any_token</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">ALIAS</span><span class="p">)</span> +</span><span id="Parser-3485"><a href="#Parser-3485"><span class="linenos">3485</span></a> +</span><span id="Parser-3486"><a href="#Parser-3486"><span class="linenos">3486</span></a> <span class="k">if</span> <span class="n">explicit</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">any_token</span><span class="p">:</span> +</span><span id="Parser-3487"><a href="#Parser-3487"><span class="linenos">3487</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3488"><a href="#Parser-3488"><span class="linenos">3488</span></a> +</span><span id="Parser-3489"><a href="#Parser-3489"><span class="linenos">3489</span></a> <span class="k">if</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-3490"><a href="#Parser-3490"><span class="linenos">3490</span></a> <span class="n">aliases</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3491"><a href="#Parser-3491"><span class="linenos">3491</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Aliases</span><span class="p">,</span> +</span><span id="Parser-3492"><a href="#Parser-3492"><span class="linenos">3492</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3493"><a href="#Parser-3493"><span class="linenos">3493</span></a> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)),</span> +</span><span id="Parser-3494"><a href="#Parser-3494"><span class="linenos">3494</span></a> <span class="p">)</span> +</span><span id="Parser-3495"><a href="#Parser-3495"><span class="linenos">3495</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">(</span><span class="n">aliases</span><span class="p">)</span> +</span><span id="Parser-3496"><a href="#Parser-3496"><span class="linenos">3496</span></a> <span class="k">return</span> <span class="n">aliases</span> </span><span id="Parser-3497"><a href="#Parser-3497"><span class="linenos">3497</span></a> -</span><span id="Parser-3498"><a href="#Parser-3498"><span class="linenos">3498</span></a> <span class="k">if</span> <span class="n">prefix_tokens</span><span class="p">:</span> -</span><span id="Parser-3499"><a href="#Parser-3499"><span class="linenos">3499</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">prefix_tokens</span><span class="p">):</span> -</span><span id="Parser-3500"><a href="#Parser-3500"><span class="linenos">3500</span></a> <span class="n">prefix</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-3501"><a href="#Parser-3501"><span class="linenos">3501</span></a> -</span><span id="Parser-3502"><a href="#Parser-3502"><span class="linenos">3502</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">):</span> -</span><span id="Parser-3503"><a href="#Parser-3503"><span class="linenos">3503</span></a> <span class="n">quoted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span> -</span><span id="Parser-3504"><a href="#Parser-3504"><span class="linenos">3504</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> -</span><span id="Parser-3505"><a href="#Parser-3505"><span class="linenos">3505</span></a> -</span><span id="Parser-3506"><a href="#Parser-3506"><span class="linenos">3506</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3507"><a href="#Parser-3507"><span class="linenos">3507</span></a> -</span><span id="Parser-3508"><a href="#Parser-3508"><span class="linenos">3508</span></a> <span class="k">def</span> <span class="nf">_parse_string</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3509"><a href="#Parser-3509"><span class="linenos">3509</span></a> <span class="k">if</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">STRING</span><span class="p">):</span> -</span><span id="Parser-3510"><a href="#Parser-3510"><span class="linenos">3510</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3511"><a href="#Parser-3511"><span class="linenos">3511</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="Parser-3498"><a href="#Parser-3498"><span class="linenos">3498</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">(</span><span class="n">any_token</span><span class="p">)</span> +</span><span id="Parser-3499"><a href="#Parser-3499"><span class="linenos">3499</span></a> +</span><span id="Parser-3500"><a href="#Parser-3500"><span class="linenos">3500</span></a> <span class="k">if</span> <span class="n">alias</span><span class="p">:</span> +</span><span id="Parser-3501"><a href="#Parser-3501"><span class="linenos">3501</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">Alias</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">alias</span><span class="o">=</span><span class="n">alias</span><span class="p">)</span> +</span><span id="Parser-3502"><a href="#Parser-3502"><span class="linenos">3502</span></a> +</span><span id="Parser-3503"><a href="#Parser-3503"><span class="linenos">3503</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3504"><a href="#Parser-3504"><span class="linenos">3504</span></a> +</span><span id="Parser-3505"><a href="#Parser-3505"><span class="linenos">3505</span></a> <span class="k">def</span> <span class="nf">_parse_id_var</span><span class="p">(</span> +</span><span id="Parser-3506"><a href="#Parser-3506"><span class="linenos">3506</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser-3507"><a href="#Parser-3507"><span class="linenos">3507</span></a> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> +</span><span id="Parser-3508"><a href="#Parser-3508"><span class="linenos">3508</span></a> <span class="n">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="Parser-3509"><a href="#Parser-3509"><span class="linenos">3509</span></a> <span class="n">prefix_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="Parser-3510"><a href="#Parser-3510"><span class="linenos">3510</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="Parser-3511"><a href="#Parser-3511"><span class="linenos">3511</span></a> <span class="n">identifier</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_identifier</span><span class="p">()</span> </span><span id="Parser-3512"><a href="#Parser-3512"><span class="linenos">3512</span></a> -</span><span id="Parser-3513"><a href="#Parser-3513"><span class="linenos">3513</span></a> <span class="k">def</span> <span class="nf">_parse_number</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3514"><a href="#Parser-3514"><span class="linenos">3514</span></a> <span class="k">if</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">NUMBER</span><span class="p">):</span> -</span><span id="Parser-3515"><a href="#Parser-3515"><span class="linenos">3515</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3516"><a href="#Parser-3516"><span class="linenos">3516</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="Parser-3513"><a href="#Parser-3513"><span class="linenos">3513</span></a> <span class="k">if</span> <span class="n">identifier</span><span class="p">:</span> +</span><span id="Parser-3514"><a href="#Parser-3514"><span class="linenos">3514</span></a> <span class="k">return</span> <span class="n">identifier</span> +</span><span id="Parser-3515"><a href="#Parser-3515"><span class="linenos">3515</span></a> +</span><span id="Parser-3516"><a href="#Parser-3516"><span class="linenos">3516</span></a> <span class="n">prefix</span> <span class="o">=</span> <span class="s2">""</span> </span><span id="Parser-3517"><a href="#Parser-3517"><span class="linenos">3517</span></a> -</span><span id="Parser-3518"><a href="#Parser-3518"><span class="linenos">3518</span></a> <span class="k">def</span> <span class="nf">_parse_identifier</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3519"><a href="#Parser-3519"><span class="linenos">3519</span></a> <span class="k">if</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">IDENTIFIER</span><span class="p">):</span> -</span><span id="Parser-3520"><a href="#Parser-3520"><span class="linenos">3520</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3521"><a href="#Parser-3521"><span class="linenos">3521</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> -</span><span id="Parser-3522"><a href="#Parser-3522"><span class="linenos">3522</span></a> -</span><span id="Parser-3523"><a href="#Parser-3523"><span class="linenos">3523</span></a> <span class="k">def</span> <span class="nf">_parse_var</span><span class="p">(</span> -</span><span id="Parser-3524"><a href="#Parser-3524"><span class="linenos">3524</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">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><span id="Parser-3525"><a href="#Parser-3525"><span class="linenos">3525</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="Parser-3526"><a href="#Parser-3526"><span class="linenos">3526</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="Parser-3527"><a href="#Parser-3527"><span class="linenos">3527</span></a> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> -</span><span id="Parser-3528"><a href="#Parser-3528"><span class="linenos">3528</span></a> <span class="ow">or</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">VAR</span><span class="p">)</span> -</span><span id="Parser-3529"><a href="#Parser-3529"><span class="linenos">3529</span></a> <span class="ow">or</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span><span class="p">)</span> <span class="k">if</span> <span class="n">tokens</span> <span class="k">else</span> <span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-3530"><a href="#Parser-3530"><span class="linenos">3530</span></a> <span class="p">):</span> -</span><span id="Parser-3531"><a href="#Parser-3531"><span class="linenos">3531</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-3532"><a href="#Parser-3532"><span class="linenos">3532</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> -</span><span id="Parser-3533"><a href="#Parser-3533"><span class="linenos">3533</span></a> -</span><span id="Parser-3534"><a href="#Parser-3534"><span class="linenos">3534</span></a> <span class="k">def</span> <span class="nf">_advance_any</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">Token</span><span class="p">]:</span> -</span><span id="Parser-3535"><a href="#Parser-3535"><span class="linenos">3535</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">RESERVED_KEYWORDS</span><span class="p">:</span> -</span><span id="Parser-3536"><a href="#Parser-3536"><span class="linenos">3536</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3537"><a href="#Parser-3537"><span class="linenos">3537</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-3538"><a href="#Parser-3538"><span class="linenos">3538</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3539"><a href="#Parser-3539"><span class="linenos">3539</span></a> -</span><span id="Parser-3540"><a href="#Parser-3540"><span class="linenos">3540</span></a> <span class="k">def</span> <span class="nf">_parse_var_or_string</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3541"><a href="#Parser-3541"><span class="linenos">3541</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> -</span><span id="Parser-3542"><a href="#Parser-3542"><span class="linenos">3542</span></a> -</span><span id="Parser-3543"><a href="#Parser-3543"><span class="linenos">3543</span></a> <span class="k">def</span> <span class="nf">_parse_null</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3544"><a href="#Parser-3544"><span class="linenos">3544</span></a> <span class="k">if</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">NULL</span><span class="p">):</span> -</span><span id="Parser-3545"><a href="#Parser-3545"><span class="linenos">3545</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3546"><a href="#Parser-3546"><span class="linenos">3546</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3547"><a href="#Parser-3547"><span class="linenos">3547</span></a> -</span><span id="Parser-3548"><a href="#Parser-3548"><span class="linenos">3548</span></a> <span class="k">def</span> <span class="nf">_parse_boolean</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3549"><a href="#Parser-3549"><span class="linenos">3549</span></a> <span class="k">if</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">TRUE</span><span class="p">):</span> -</span><span id="Parser-3550"><a href="#Parser-3550"><span class="linenos">3550</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3551"><a href="#Parser-3551"><span class="linenos">3551</span></a> <span class="k">if</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">FALSE</span><span class="p">):</span> -</span><span id="Parser-3552"><a href="#Parser-3552"><span class="linenos">3552</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3553"><a href="#Parser-3553"><span class="linenos">3553</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3554"><a href="#Parser-3554"><span class="linenos">3554</span></a> -</span><span id="Parser-3555"><a href="#Parser-3555"><span class="linenos">3555</span></a> <span class="k">def</span> <span class="nf">_parse_star</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3556"><a href="#Parser-3556"><span class="linenos">3556</span></a> <span class="k">if</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">STAR</span><span class="p">):</span> -</span><span id="Parser-3557"><a href="#Parser-3557"><span class="linenos">3557</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3558"><a href="#Parser-3558"><span class="linenos">3558</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3559"><a href="#Parser-3559"><span class="linenos">3559</span></a> -</span><span id="Parser-3560"><a href="#Parser-3560"><span class="linenos">3560</span></a> <span class="k">def</span> <span class="nf">_parse_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3561"><a href="#Parser-3561"><span class="linenos">3561</span></a> <span class="n">wrapped</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">L_BRACE</span><span class="p">)</span> -</span><span id="Parser-3562"><a href="#Parser-3562"><span class="linenos">3562</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> -</span><span id="Parser-3563"><a href="#Parser-3563"><span class="linenos">3563</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">R_BRACE</span><span class="p">)</span> -</span><span id="Parser-3564"><a href="#Parser-3564"><span class="linenos">3564</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">Parameter</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">wrapped</span><span class="o">=</span><span class="n">wrapped</span><span class="p">)</span> +</span><span id="Parser-3518"><a href="#Parser-3518"><span class="linenos">3518</span></a> <span class="k">if</span> <span class="n">prefix_tokens</span><span class="p">:</span> +</span><span id="Parser-3519"><a href="#Parser-3519"><span class="linenos">3519</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">prefix_tokens</span><span class="p">):</span> +</span><span id="Parser-3520"><a href="#Parser-3520"><span class="linenos">3520</span></a> <span class="n">prefix</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-3521"><a href="#Parser-3521"><span class="linenos">3521</span></a> +</span><span id="Parser-3522"><a href="#Parser-3522"><span class="linenos">3522</span></a> <span class="k">if</span> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">ID_VAR_TOKENS</span><span class="p">):</span> +</span><span id="Parser-3523"><a href="#Parser-3523"><span class="linenos">3523</span></a> <span class="n">quoted</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span> +</span><span id="Parser-3524"><a href="#Parser-3524"><span class="linenos">3524</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">prefix</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="n">quoted</span><span class="p">)</span> +</span><span id="Parser-3525"><a href="#Parser-3525"><span class="linenos">3525</span></a> +</span><span id="Parser-3526"><a href="#Parser-3526"><span class="linenos">3526</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3527"><a href="#Parser-3527"><span class="linenos">3527</span></a> +</span><span id="Parser-3528"><a href="#Parser-3528"><span class="linenos">3528</span></a> <span class="k">def</span> <span class="nf">_parse_string</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3529"><a href="#Parser-3529"><span class="linenos">3529</span></a> <span class="k">if</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">STRING</span><span class="p">):</span> +</span><span id="Parser-3530"><a href="#Parser-3530"><span class="linenos">3530</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3531"><a href="#Parser-3531"><span class="linenos">3531</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="Parser-3532"><a href="#Parser-3532"><span class="linenos">3532</span></a> +</span><span id="Parser-3533"><a href="#Parser-3533"><span class="linenos">3533</span></a> <span class="k">def</span> <span class="nf">_parse_string_as_identifier</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3534"><a href="#Parser-3534"><span class="linenos">3534</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">to_identifier</span><span class="p">(</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">STRING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3535"><a href="#Parser-3535"><span class="linenos">3535</span></a> +</span><span id="Parser-3536"><a href="#Parser-3536"><span class="linenos">3536</span></a> <span class="k">def</span> <span class="nf">_parse_number</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3537"><a href="#Parser-3537"><span class="linenos">3537</span></a> <span class="k">if</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">NUMBER</span><span class="p">):</span> +</span><span id="Parser-3538"><a href="#Parser-3538"><span class="linenos">3538</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3539"><a href="#Parser-3539"><span class="linenos">3539</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="Parser-3540"><a href="#Parser-3540"><span class="linenos">3540</span></a> +</span><span id="Parser-3541"><a href="#Parser-3541"><span class="linenos">3541</span></a> <span class="k">def</span> <span class="nf">_parse_identifier</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3542"><a href="#Parser-3542"><span class="linenos">3542</span></a> <span class="k">if</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">IDENTIFIER</span><span class="p">):</span> +</span><span id="Parser-3543"><a href="#Parser-3543"><span class="linenos">3543</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">Identifier</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">,</span> <span class="n">quoted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3544"><a href="#Parser-3544"><span class="linenos">3544</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="Parser-3545"><a href="#Parser-3545"><span class="linenos">3545</span></a> +</span><span id="Parser-3546"><a href="#Parser-3546"><span class="linenos">3546</span></a> <span class="k">def</span> <span class="nf">_parse_var</span><span class="p">(</span> +</span><span id="Parser-3547"><a href="#Parser-3547"><span class="linenos">3547</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">any_token</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span> <span class="n">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><span id="Parser-3548"><a href="#Parser-3548"><span class="linenos">3548</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="Parser-3549"><a href="#Parser-3549"><span class="linenos">3549</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Parser-3550"><a href="#Parser-3550"><span class="linenos">3550</span></a> <span class="p">(</span><span class="n">any_token</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance_any</span><span class="p">())</span> +</span><span id="Parser-3551"><a href="#Parser-3551"><span class="linenos">3551</span></a> <span class="ow">or</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">VAR</span><span class="p">)</span> +</span><span id="Parser-3552"><a href="#Parser-3552"><span class="linenos">3552</span></a> <span class="ow">or</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">tokens</span><span class="p">)</span> <span class="k">if</span> <span class="n">tokens</span> <span class="k">else</span> <span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-3553"><a href="#Parser-3553"><span class="linenos">3553</span></a> <span class="p">):</span> +</span><span id="Parser-3554"><a href="#Parser-3554"><span class="linenos">3554</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-3555"><a href="#Parser-3555"><span class="linenos">3555</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_placeholder</span><span class="p">()</span> +</span><span id="Parser-3556"><a href="#Parser-3556"><span class="linenos">3556</span></a> +</span><span id="Parser-3557"><a href="#Parser-3557"><span class="linenos">3557</span></a> <span class="k">def</span> <span class="nf">_advance_any</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">Token</span><span class="p">]:</span> +</span><span id="Parser-3558"><a href="#Parser-3558"><span class="linenos">3558</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">RESERVED_KEYWORDS</span><span class="p">:</span> +</span><span id="Parser-3559"><a href="#Parser-3559"><span class="linenos">3559</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3560"><a href="#Parser-3560"><span class="linenos">3560</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-3561"><a href="#Parser-3561"><span class="linenos">3561</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3562"><a href="#Parser-3562"><span class="linenos">3562</span></a> +</span><span id="Parser-3563"><a href="#Parser-3563"><span class="linenos">3563</span></a> <span class="k">def</span> <span class="nf">_parse_var_or_string</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3564"><a href="#Parser-3564"><span class="linenos">3564</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_string</span><span class="p">()</span> </span><span id="Parser-3565"><a href="#Parser-3565"><span class="linenos">3565</span></a> -</span><span id="Parser-3566"><a href="#Parser-3566"><span class="linenos">3566</span></a> <span class="k">def</span> <span class="nf">_parse_placeholder</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3567"><a href="#Parser-3567"><span class="linenos">3567</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">):</span> -</span><span id="Parser-3568"><a href="#Parser-3568"><span class="linenos">3568</span></a> <span class="n">placeholder</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-3569"><a href="#Parser-3569"><span class="linenos">3569</span></a> <span class="k">if</span> <span class="n">placeholder</span><span class="p">:</span> -</span><span id="Parser-3570"><a href="#Parser-3570"><span class="linenos">3570</span></a> <span class="k">return</span> <span class="n">placeholder</span> -</span><span id="Parser-3571"><a href="#Parser-3571"><span class="linenos">3571</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> -</span><span id="Parser-3572"><a href="#Parser-3572"><span class="linenos">3572</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3573"><a href="#Parser-3573"><span class="linenos">3573</span></a> -</span><span id="Parser-3574"><a href="#Parser-3574"><span class="linenos">3574</span></a> <span class="k">def</span> <span class="nf">_parse_except</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="Parser-3575"><a href="#Parser-3575"><span class="linenos">3575</span></a> <span class="k">if</span> <span class="ow">not</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">EXCEPT</span><span class="p">):</span> -</span><span id="Parser-3576"><a href="#Parser-3576"><span class="linenos">3576</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3577"><a href="#Parser-3577"><span class="linenos">3577</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-3578"><a href="#Parser-3578"><span class="linenos">3578</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-3579"><a href="#Parser-3579"><span class="linenos">3579</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> -</span><span id="Parser-3580"><a href="#Parser-3580"><span class="linenos">3580</span></a> -</span><span id="Parser-3581"><a href="#Parser-3581"><span class="linenos">3581</span></a> <span class="k">def</span> <span class="nf">_parse_replace</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> -</span><span id="Parser-3582"><a href="#Parser-3582"><span class="linenos">3582</span></a> <span class="k">if</span> <span class="ow">not</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">REPLACE</span><span class="p">):</span> -</span><span id="Parser-3583"><a href="#Parser-3583"><span class="linenos">3583</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3584"><a href="#Parser-3584"><span class="linenos">3584</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-3585"><a href="#Parser-3585"><span class="linenos">3585</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> -</span><span id="Parser-3586"><a href="#Parser-3586"><span class="linenos">3586</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> -</span><span id="Parser-3587"><a href="#Parser-3587"><span class="linenos">3587</span></a> -</span><span id="Parser-3588"><a href="#Parser-3588"><span class="linenos">3588</span></a> <span class="k">def</span> <span class="nf">_parse_csv</span><span class="p">(</span> -</span><span id="Parser-3589"><a href="#Parser-3589"><span class="linenos">3589</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> -</span><span id="Parser-3590"><a href="#Parser-3590"><span class="linenos">3590</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-3591"><a href="#Parser-3591"><span class="linenos">3591</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="Parser-3592"><a href="#Parser-3592"><span class="linenos">3592</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[</span><span class="n">parse_result</span><span class="p">]</span> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="p">[]</span> -</span><span id="Parser-3593"><a href="#Parser-3593"><span class="linenos">3593</span></a> -</span><span id="Parser-3594"><a href="#Parser-3594"><span class="linenos">3594</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">sep</span><span class="p">):</span> -</span><span id="Parser-3595"><a href="#Parser-3595"><span class="linenos">3595</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="Parser-3596"><a href="#Parser-3596"><span class="linenos">3596</span></a> <span class="n">parse_result</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser-3597"><a href="#Parser-3597"><span class="linenos">3597</span></a> -</span><span id="Parser-3598"><a href="#Parser-3598"><span class="linenos">3598</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="Parser-3599"><a href="#Parser-3599"><span class="linenos">3599</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser-3600"><a href="#Parser-3600"><span class="linenos">3600</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_result</span><span class="p">)</span> -</span><span id="Parser-3601"><a href="#Parser-3601"><span class="linenos">3601</span></a> -</span><span id="Parser-3602"><a href="#Parser-3602"><span class="linenos">3602</span></a> <span class="k">return</span> <span class="n">items</span> +</span><span id="Parser-3566"><a href="#Parser-3566"><span class="linenos">3566</span></a> <span class="k">def</span> <span class="nf">_parse_null</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3567"><a href="#Parser-3567"><span class="linenos">3567</span></a> <span class="k">if</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">NULL</span><span class="p">):</span> +</span><span id="Parser-3568"><a href="#Parser-3568"><span class="linenos">3568</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3569"><a href="#Parser-3569"><span class="linenos">3569</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3570"><a href="#Parser-3570"><span class="linenos">3570</span></a> +</span><span id="Parser-3571"><a href="#Parser-3571"><span class="linenos">3571</span></a> <span class="k">def</span> <span class="nf">_parse_boolean</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3572"><a href="#Parser-3572"><span class="linenos">3572</span></a> <span class="k">if</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">TRUE</span><span class="p">):</span> +</span><span id="Parser-3573"><a href="#Parser-3573"><span class="linenos">3573</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3574"><a href="#Parser-3574"><span class="linenos">3574</span></a> <span class="k">if</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">FALSE</span><span class="p">):</span> +</span><span id="Parser-3575"><a href="#Parser-3575"><span class="linenos">3575</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3576"><a href="#Parser-3576"><span class="linenos">3576</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3577"><a href="#Parser-3577"><span class="linenos">3577</span></a> +</span><span id="Parser-3578"><a href="#Parser-3578"><span class="linenos">3578</span></a> <span class="k">def</span> <span class="nf">_parse_star</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3579"><a href="#Parser-3579"><span class="linenos">3579</span></a> <span class="k">if</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">STAR</span><span class="p">):</span> +</span><span id="Parser-3580"><a href="#Parser-3580"><span class="linenos">3580</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">PRIMARY_PARSERS</span><span class="p">[</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STAR</span><span class="p">](</span><span class="bp">self</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3581"><a href="#Parser-3581"><span class="linenos">3581</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3582"><a href="#Parser-3582"><span class="linenos">3582</span></a> +</span><span id="Parser-3583"><a href="#Parser-3583"><span class="linenos">3583</span></a> <span class="k">def</span> <span class="nf">_parse_parameter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3584"><a href="#Parser-3584"><span class="linenos">3584</span></a> <span class="n">wrapped</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">L_BRACE</span><span class="p">)</span> +</span><span id="Parser-3585"><a href="#Parser-3585"><span class="linenos">3585</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> +</span><span id="Parser-3586"><a href="#Parser-3586"><span class="linenos">3586</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">R_BRACE</span><span class="p">)</span> +</span><span id="Parser-3587"><a href="#Parser-3587"><span class="linenos">3587</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">Parameter</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">wrapped</span><span class="o">=</span><span class="n">wrapped</span><span class="p">)</span> +</span><span id="Parser-3588"><a href="#Parser-3588"><span class="linenos">3588</span></a> +</span><span id="Parser-3589"><a href="#Parser-3589"><span class="linenos">3589</span></a> <span class="k">def</span> <span class="nf">_parse_placeholder</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3590"><a href="#Parser-3590"><span class="linenos">3590</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">):</span> +</span><span id="Parser-3591"><a href="#Parser-3591"><span class="linenos">3591</span></a> <span class="n">placeholder</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">PLACEHOLDER_PARSERS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">](</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-3592"><a href="#Parser-3592"><span class="linenos">3592</span></a> <span class="k">if</span> <span class="n">placeholder</span><span class="p">:</span> +</span><span id="Parser-3593"><a href="#Parser-3593"><span class="linenos">3593</span></a> <span class="k">return</span> <span class="n">placeholder</span> +</span><span id="Parser-3594"><a href="#Parser-3594"><span class="linenos">3594</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span> +</span><span id="Parser-3595"><a href="#Parser-3595"><span class="linenos">3595</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3596"><a href="#Parser-3596"><span class="linenos">3596</span></a> +</span><span id="Parser-3597"><a href="#Parser-3597"><span class="linenos">3597</span></a> <span class="k">def</span> <span class="nf">_parse_except</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="Parser-3598"><a href="#Parser-3598"><span class="linenos">3598</span></a> <span class="k">if</span> <span class="ow">not</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">EXCEPT</span><span class="p">):</span> +</span><span id="Parser-3599"><a href="#Parser-3599"><span class="linenos">3599</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3600"><a href="#Parser-3600"><span class="linenos">3600</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-3601"><a href="#Parser-3601"><span class="linenos">3601</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> +</span><span id="Parser-3602"><a href="#Parser-3602"><span class="linenos">3602</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_column</span><span class="p">)</span> </span><span id="Parser-3603"><a href="#Parser-3603"><span class="linenos">3603</span></a> -</span><span id="Parser-3604"><a href="#Parser-3604"><span class="linenos">3604</span></a> <span class="k">def</span> <span class="nf">_parse_tokens</span><span class="p">(</span> -</span><span id="Parser-3605"><a href="#Parser-3605"><span class="linenos">3605</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> -</span><span id="Parser-3606"><a href="#Parser-3606"><span class="linenos">3606</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="Parser-3607"><a href="#Parser-3607"><span class="linenos">3607</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="Parser-3608"><a href="#Parser-3608"><span class="linenos">3608</span></a> -</span><span id="Parser-3609"><a href="#Parser-3609"><span class="linenos">3609</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> -</span><span id="Parser-3610"><a href="#Parser-3610"><span class="linenos">3610</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-3611"><a href="#Parser-3611"><span class="linenos">3611</span></a> <span class="n">expressions</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> -</span><span id="Parser-3612"><a href="#Parser-3612"><span class="linenos">3612</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-3613"><a href="#Parser-3613"><span class="linenos">3613</span></a> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> -</span><span id="Parser-3614"><a href="#Parser-3614"><span class="linenos">3614</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">parse_method</span><span class="p">(),</span> -</span><span id="Parser-3615"><a href="#Parser-3615"><span class="linenos">3615</span></a> <span class="p">)</span> +</span><span id="Parser-3604"><a href="#Parser-3604"><span class="linenos">3604</span></a> <span class="k">def</span> <span class="nf">_parse_replace</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">t</span><span class="o">.</span><span class="n">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]]:</span> +</span><span id="Parser-3605"><a href="#Parser-3605"><span class="linenos">3605</span></a> <span class="k">if</span> <span class="ow">not</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">REPLACE</span><span class="p">):</span> +</span><span id="Parser-3606"><a href="#Parser-3606"><span class="linenos">3606</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3607"><a href="#Parser-3607"><span class="linenos">3607</span></a> <span class="k">if</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">L_PAREN</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-3608"><a href="#Parser-3608"><span class="linenos">3608</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="Parser-3609"><a href="#Parser-3609"><span class="linenos">3609</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">)</span> +</span><span id="Parser-3610"><a href="#Parser-3610"><span class="linenos">3610</span></a> +</span><span id="Parser-3611"><a href="#Parser-3611"><span class="linenos">3611</span></a> <span class="k">def</span> <span class="nf">_parse_csv</span><span class="p">(</span> +</span><span id="Parser-3612"><a href="#Parser-3612"><span class="linenos">3612</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> +</span><span id="Parser-3613"><a href="#Parser-3613"><span class="linenos">3613</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-3614"><a href="#Parser-3614"><span class="linenos">3614</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="Parser-3615"><a href="#Parser-3615"><span class="linenos">3615</span></a> <span class="n">items</span> <span class="o">=</span> <span class="p">[</span><span class="n">parse_result</span><span class="p">]</span> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span> <span class="k">else</span> <span class="p">[]</span> </span><span id="Parser-3616"><a href="#Parser-3616"><span class="linenos">3616</span></a> -</span><span id="Parser-3617"><a href="#Parser-3617"><span class="linenos">3617</span></a> <span class="k">return</span> <span class="n">this</span> -</span><span id="Parser-3618"><a href="#Parser-3618"><span class="linenos">3618</span></a> -</span><span id="Parser-3619"><a href="#Parser-3619"><span class="linenos">3619</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_id_vars</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Parser-3620"><a href="#Parser-3620"><span class="linenos">3620</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> -</span><span id="Parser-3621"><a href="#Parser-3621"><span class="linenos">3621</span></a> -</span><span id="Parser-3622"><a href="#Parser-3622"><span class="linenos">3622</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_csv</span><span class="p">(</span> -</span><span id="Parser-3623"><a href="#Parser-3623"><span class="linenos">3623</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> -</span><span id="Parser-3624"><a href="#Parser-3624"><span class="linenos">3624</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-3625"><a href="#Parser-3625"><span class="linenos">3625</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parse_method</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">))</span> +</span><span id="Parser-3617"><a href="#Parser-3617"><span class="linenos">3617</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match</span><span class="p">(</span><span class="n">sep</span><span class="p">):</span> +</span><span id="Parser-3618"><a href="#Parser-3618"><span class="linenos">3618</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="Parser-3619"><a href="#Parser-3619"><span class="linenos">3619</span></a> <span class="n">parse_result</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-3620"><a href="#Parser-3620"><span class="linenos">3620</span></a> +</span><span id="Parser-3621"><a href="#Parser-3621"><span class="linenos">3621</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="Parser-3622"><a href="#Parser-3622"><span class="linenos">3622</span></a> <span class="k">if</span> <span class="n">parse_result</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser-3623"><a href="#Parser-3623"><span class="linenos">3623</span></a> <span class="n">items</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">parse_result</span><span class="p">)</span> +</span><span id="Parser-3624"><a href="#Parser-3624"><span class="linenos">3624</span></a> +</span><span id="Parser-3625"><a href="#Parser-3625"><span class="linenos">3625</span></a> <span class="k">return</span> <span class="n">items</span> </span><span id="Parser-3626"><a href="#Parser-3626"><span class="linenos">3626</span></a> -</span><span id="Parser-3627"><a href="#Parser-3627"><span class="linenos">3627</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span> -</span><span id="Parser-3628"><a href="#Parser-3628"><span class="linenos">3628</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> -</span><span id="Parser-3629"><a href="#Parser-3629"><span class="linenos">3629</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> -</span><span id="Parser-3630"><a href="#Parser-3630"><span class="linenos">3630</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> -</span><span id="Parser-3631"><a href="#Parser-3631"><span class="linenos">3631</span></a> <span class="k">return</span> <span class="n">parse_result</span> -</span><span id="Parser-3632"><a href="#Parser-3632"><span class="linenos">3632</span></a> -</span><span id="Parser-3633"><a href="#Parser-3633"><span class="linenos">3633</span></a> <span class="k">def</span> <span class="nf">_parse_select_or_expression</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3634"><a href="#Parser-3634"><span class="linenos">3634</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> -</span><span id="Parser-3635"><a href="#Parser-3635"><span class="linenos">3635</span></a> -</span><span id="Parser-3636"><a href="#Parser-3636"><span class="linenos">3636</span></a> <span class="k">def</span> <span class="nf">_parse_ddl_select</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3637"><a href="#Parser-3637"><span class="linenos">3637</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> -</span><span id="Parser-3638"><a href="#Parser-3638"><span class="linenos">3638</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="Parser-3639"><a href="#Parser-3639"><span class="linenos">3639</span></a> <span class="p">)</span> -</span><span id="Parser-3640"><a href="#Parser-3640"><span class="linenos">3640</span></a> -</span><span id="Parser-3641"><a href="#Parser-3641"><span class="linenos">3641</span></a> <span class="k">def</span> <span class="nf">_parse_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3642"><a href="#Parser-3642"><span class="linenos">3642</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3643"><a href="#Parser-3643"><span class="linenos">3643</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_KIND</span><span class="p">):</span> -</span><span id="Parser-3644"><a href="#Parser-3644"><span class="linenos">3644</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> -</span><span id="Parser-3645"><a href="#Parser-3645"><span class="linenos">3645</span></a> -</span><span id="Parser-3646"><a href="#Parser-3646"><span class="linenos">3646</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> -</span><span id="Parser-3647"><a href="#Parser-3647"><span class="linenos">3647</span></a> -</span><span id="Parser-3648"><a href="#Parser-3648"><span class="linenos">3648</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3649"><a href="#Parser-3649"><span class="linenos">3649</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-3650"><a href="#Parser-3650"><span class="linenos">3650</span></a> <span class="n">mode</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3651"><a href="#Parser-3651"><span class="linenos">3651</span></a> <span class="k">while</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">VAR</span><span class="p">):</span> -</span><span id="Parser-3652"><a href="#Parser-3652"><span class="linenos">3652</span></a> <span class="n">mode</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-3653"><a href="#Parser-3653"><span class="linenos">3653</span></a> -</span><span id="Parser-3654"><a href="#Parser-3654"><span class="linenos">3654</span></a> <span class="k">if</span> <span class="n">mode</span><span class="p">:</span> -</span><span id="Parser-3655"><a href="#Parser-3655"><span class="linenos">3655</span></a> <span class="n">modes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">mode</span><span class="p">))</span> -</span><span id="Parser-3656"><a href="#Parser-3656"><span class="linenos">3656</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> -</span><span id="Parser-3657"><a href="#Parser-3657"><span class="linenos">3657</span></a> <span class="k">break</span> +</span><span id="Parser-3627"><a href="#Parser-3627"><span class="linenos">3627</span></a> <span class="k">def</span> <span class="nf">_parse_tokens</span><span class="p">(</span> +</span><span id="Parser-3628"><a href="#Parser-3628"><span class="linenos">3628</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">expressions</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> +</span><span id="Parser-3629"><a href="#Parser-3629"><span class="linenos">3629</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="Parser-3630"><a href="#Parser-3630"><span class="linenos">3630</span></a> <span class="n">this</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="Parser-3631"><a href="#Parser-3631"><span class="linenos">3631</span></a> +</span><span id="Parser-3632"><a href="#Parser-3632"><span class="linenos">3632</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="n">expressions</span><span class="p">):</span> +</span><span id="Parser-3633"><a href="#Parser-3633"><span class="linenos">3633</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3634"><a href="#Parser-3634"><span class="linenos">3634</span></a> <span class="n">expressions</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span><span class="p">],</span> +</span><span id="Parser-3635"><a href="#Parser-3635"><span class="linenos">3635</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3636"><a href="#Parser-3636"><span class="linenos">3636</span></a> <span class="n">comments</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">,</span> +</span><span id="Parser-3637"><a href="#Parser-3637"><span class="linenos">3637</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">parse_method</span><span class="p">(),</span> +</span><span id="Parser-3638"><a href="#Parser-3638"><span class="linenos">3638</span></a> <span class="p">)</span> +</span><span id="Parser-3639"><a href="#Parser-3639"><span class="linenos">3639</span></a> +</span><span id="Parser-3640"><a href="#Parser-3640"><span class="linenos">3640</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3641"><a href="#Parser-3641"><span class="linenos">3641</span></a> +</span><span id="Parser-3642"><a href="#Parser-3642"><span class="linenos">3642</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_id_vars</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="Parser-3643"><a href="#Parser-3643"><span class="linenos">3643</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">)</span> +</span><span id="Parser-3644"><a href="#Parser-3644"><span class="linenos">3644</span></a> +</span><span id="Parser-3645"><a href="#Parser-3645"><span class="linenos">3645</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped_csv</span><span class="p">(</span> +</span><span id="Parser-3646"><a href="#Parser-3646"><span class="linenos">3646</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">,</span> <span class="n">sep</span><span class="p">:</span> <span class="n">TokenType</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMA</span> +</span><span id="Parser-3647"><a href="#Parser-3647"><span class="linenos">3647</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser-3648"><a href="#Parser-3648"><span class="linenos">3648</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="n">parse_method</span><span class="p">,</span> <span class="n">sep</span><span class="o">=</span><span class="n">sep</span><span class="p">))</span> +</span><span id="Parser-3649"><a href="#Parser-3649"><span class="linenos">3649</span></a> +</span><span id="Parser-3650"><a href="#Parser-3650"><span class="linenos">3650</span></a> <span class="k">def</span> <span class="nf">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">parse_method</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Any</span><span class="p">:</span> +</span><span id="Parser-3651"><a href="#Parser-3651"><span class="linenos">3651</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_l_paren</span><span class="p">()</span> +</span><span id="Parser-3652"><a href="#Parser-3652"><span class="linenos">3652</span></a> <span class="n">parse_result</span> <span class="o">=</span> <span class="n">parse_method</span><span class="p">()</span> +</span><span id="Parser-3653"><a href="#Parser-3653"><span class="linenos">3653</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_r_paren</span><span class="p">()</span> +</span><span id="Parser-3654"><a href="#Parser-3654"><span class="linenos">3654</span></a> <span class="k">return</span> <span class="n">parse_result</span> +</span><span id="Parser-3655"><a href="#Parser-3655"><span class="linenos">3655</span></a> +</span><span id="Parser-3656"><a href="#Parser-3656"><span class="linenos">3656</span></a> <span class="k">def</span> <span class="nf">_parse_select_or_expression</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3657"><a href="#Parser-3657"><span class="linenos">3657</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_expression</span><span class="p">()</span> </span><span id="Parser-3658"><a href="#Parser-3658"><span class="linenos">3658</span></a> -</span><span id="Parser-3659"><a href="#Parser-3659"><span class="linenos">3659</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">Transaction</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">modes</span><span class="o">=</span><span class="n">modes</span><span class="p">)</span> -</span><span id="Parser-3660"><a href="#Parser-3660"><span class="linenos">3660</span></a> -</span><span id="Parser-3661"><a href="#Parser-3661"><span class="linenos">3661</span></a> <span class="k">def</span> <span class="nf">_parse_commit_or_rollback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3662"><a href="#Parser-3662"><span class="linenos">3662</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3663"><a href="#Parser-3663"><span class="linenos">3663</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3664"><a href="#Parser-3664"><span class="linenos">3664</span></a> <span class="n">is_rollback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span> -</span><span id="Parser-3665"><a href="#Parser-3665"><span class="linenos">3665</span></a> -</span><span id="Parser-3666"><a href="#Parser-3666"><span class="linenos">3666</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> -</span><span id="Parser-3667"><a href="#Parser-3667"><span class="linenos">3667</span></a> -</span><span id="Parser-3668"><a href="#Parser-3668"><span class="linenos">3668</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">):</span> -</span><span id="Parser-3669"><a href="#Parser-3669"><span class="linenos">3669</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SAVEPOINT"</span><span class="p">)</span> -</span><span id="Parser-3670"><a href="#Parser-3670"><span class="linenos">3670</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-3671"><a href="#Parser-3671"><span class="linenos">3671</span></a> -</span><span id="Parser-3672"><a href="#Parser-3672"><span class="linenos">3672</span></a> <span class="k">if</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">AND</span><span class="p">):</span> -</span><span id="Parser-3673"><a href="#Parser-3673"><span class="linenos">3673</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> -</span><span id="Parser-3674"><a href="#Parser-3674"><span class="linenos">3674</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHAIN"</span><span class="p">)</span> -</span><span id="Parser-3675"><a href="#Parser-3675"><span class="linenos">3675</span></a> -</span><span id="Parser-3676"><a href="#Parser-3676"><span class="linenos">3676</span></a> <span class="k">if</span> <span class="n">is_rollback</span><span class="p">:</span> -</span><span id="Parser-3677"><a href="#Parser-3677"><span class="linenos">3677</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">Rollback</span><span class="p">,</span> <span class="n">savepoint</span><span class="o">=</span><span class="n">savepoint</span><span class="p">)</span> -</span><span id="Parser-3678"><a href="#Parser-3678"><span class="linenos">3678</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">Commit</span><span class="p">,</span> <span class="n">chain</span><span class="o">=</span><span class="n">chain</span><span class="p">)</span> -</span><span id="Parser-3679"><a href="#Parser-3679"><span class="linenos">3679</span></a> -</span><span id="Parser-3680"><a href="#Parser-3680"><span class="linenos">3680</span></a> <span class="k">def</span> <span class="nf">_parse_add_column</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3681"><a href="#Parser-3681"><span class="linenos">3681</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">):</span> -</span><span id="Parser-3682"><a href="#Parser-3682"><span class="linenos">3682</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3659"><a href="#Parser-3659"><span class="linenos">3659</span></a> <span class="k">def</span> <span class="nf">_parse_ddl_select</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3660"><a href="#Parser-3660"><span class="linenos">3660</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_operations</span><span class="p">(</span> +</span><span id="Parser-3661"><a href="#Parser-3661"><span class="linenos">3661</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_select</span><span class="p">(</span><span class="n">nested</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">parse_subquery_alias</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="Parser-3662"><a href="#Parser-3662"><span class="linenos">3662</span></a> <span class="p">)</span> +</span><span id="Parser-3663"><a href="#Parser-3663"><span class="linenos">3663</span></a> +</span><span id="Parser-3664"><a href="#Parser-3664"><span class="linenos">3664</span></a> <span class="k">def</span> <span class="nf">_parse_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3665"><a href="#Parser-3665"><span class="linenos">3665</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3666"><a href="#Parser-3666"><span class="linenos">3666</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_KIND</span><span class="p">):</span> +</span><span id="Parser-3667"><a href="#Parser-3667"><span class="linenos">3667</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span> +</span><span id="Parser-3668"><a href="#Parser-3668"><span class="linenos">3668</span></a> +</span><span id="Parser-3669"><a href="#Parser-3669"><span class="linenos">3669</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> +</span><span id="Parser-3670"><a href="#Parser-3670"><span class="linenos">3670</span></a> +</span><span id="Parser-3671"><a href="#Parser-3671"><span class="linenos">3671</span></a> <span class="n">modes</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-3672"><a href="#Parser-3672"><span class="linenos">3672</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-3673"><a href="#Parser-3673"><span class="linenos">3673</span></a> <span class="n">mode</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-3674"><a href="#Parser-3674"><span class="linenos">3674</span></a> <span class="k">while</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">VAR</span><span class="p">):</span> +</span><span id="Parser-3675"><a href="#Parser-3675"><span class="linenos">3675</span></a> <span class="n">mode</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-3676"><a href="#Parser-3676"><span class="linenos">3676</span></a> +</span><span id="Parser-3677"><a href="#Parser-3677"><span class="linenos">3677</span></a> <span class="k">if</span> <span class="n">mode</span><span class="p">:</span> +</span><span id="Parser-3678"><a href="#Parser-3678"><span class="linenos">3678</span></a> <span class="n">modes</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">mode</span><span class="p">))</span> +</span><span id="Parser-3679"><a href="#Parser-3679"><span class="linenos">3679</span></a> <span class="k">if</span> <span class="ow">not</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">COMMA</span><span class="p">):</span> +</span><span id="Parser-3680"><a href="#Parser-3680"><span class="linenos">3680</span></a> <span class="k">break</span> +</span><span id="Parser-3681"><a href="#Parser-3681"><span class="linenos">3681</span></a> +</span><span id="Parser-3682"><a href="#Parser-3682"><span class="linenos">3682</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">Transaction</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">modes</span><span class="o">=</span><span class="n">modes</span><span class="p">)</span> </span><span id="Parser-3683"><a href="#Parser-3683"><span class="linenos">3683</span></a> -</span><span id="Parser-3684"><a href="#Parser-3684"><span class="linenos">3684</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">COLUMN</span><span class="p">)</span> -</span><span id="Parser-3685"><a href="#Parser-3685"><span class="linenos">3685</span></a> <span class="n">exists_column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3686"><a href="#Parser-3686"><span class="linenos">3686</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> -</span><span id="Parser-3687"><a href="#Parser-3687"><span class="linenos">3687</span></a> -</span><span id="Parser-3688"><a href="#Parser-3688"><span class="linenos">3688</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> -</span><span id="Parser-3689"><a href="#Parser-3689"><span class="linenos">3689</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">,</span> <span class="n">exists_column</span><span class="p">)</span> +</span><span id="Parser-3684"><a href="#Parser-3684"><span class="linenos">3684</span></a> <span class="k">def</span> <span class="nf">_parse_commit_or_rollback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3685"><a href="#Parser-3685"><span class="linenos">3685</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3686"><a href="#Parser-3686"><span class="linenos">3686</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3687"><a href="#Parser-3687"><span class="linenos">3687</span></a> <span class="n">is_rollback</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span> +</span><span id="Parser-3688"><a href="#Parser-3688"><span class="linenos">3688</span></a> +</span><span id="Parser-3689"><a href="#Parser-3689"><span class="linenos">3689</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">({</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> <span class="s2">"WORK"</span><span class="p">})</span> </span><span id="Parser-3690"><a href="#Parser-3690"><span class="linenos">3690</span></a> -</span><span id="Parser-3691"><a href="#Parser-3691"><span class="linenos">3691</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="Parser-3692"><a href="#Parser-3692"><span class="linenos">3692</span></a> -</span><span id="Parser-3693"><a href="#Parser-3693"><span class="linenos">3693</span></a> <span class="k">def</span> <span class="nf">_parse_drop_column</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3694"><a href="#Parser-3694"><span class="linenos">3694</span></a> <span class="k">return</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">DROP</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop</span><span class="p">(</span><span class="n">default_kind</span><span class="o">=</span><span class="s2">"COLUMN"</span><span class="p">)</span> -</span><span id="Parser-3695"><a href="#Parser-3695"><span class="linenos">3695</span></a> -</span><span id="Parser-3696"><a href="#Parser-3696"><span class="linenos">3696</span></a> <span class="c1"># https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html</span> -</span><span id="Parser-3697"><a href="#Parser-3697"><span class="linenos">3697</span></a> <span class="k">def</span> <span class="nf">_parse_drop_partition</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exists</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3698"><a href="#Parser-3698"><span class="linenos">3698</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><span id="Parser-3699"><a href="#Parser-3699"><span class="linenos">3699</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DropPartition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> -</span><span id="Parser-3700"><a href="#Parser-3700"><span class="linenos">3700</span></a> <span class="p">)</span> -</span><span id="Parser-3701"><a href="#Parser-3701"><span class="linenos">3701</span></a> -</span><span id="Parser-3702"><a href="#Parser-3702"><span class="linenos">3702</span></a> <span class="k">def</span> <span class="nf">_parse_add_constraint</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3703"><a href="#Parser-3703"><span class="linenos">3703</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3704"><a href="#Parser-3704"><span class="linenos">3704</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> -</span><span id="Parser-3705"><a href="#Parser-3705"><span class="linenos">3705</span></a> -</span><span id="Parser-3706"><a href="#Parser-3706"><span class="linenos">3706</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">:</span> -</span><span id="Parser-3707"><a href="#Parser-3707"><span class="linenos">3707</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> -</span><span id="Parser-3708"><a href="#Parser-3708"><span class="linenos">3708</span></a> -</span><span id="Parser-3709"><a href="#Parser-3709"><span class="linenos">3709</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECK"</span><span class="p">):</span> -</span><span id="Parser-3710"><a href="#Parser-3710"><span class="linenos">3710</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> -</span><span id="Parser-3711"><a href="#Parser-3711"><span class="linenos">3711</span></a> <span class="n">enforced</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ENFORCED"</span><span class="p">)</span> -</span><span id="Parser-3712"><a href="#Parser-3712"><span class="linenos">3712</span></a> -</span><span id="Parser-3713"><a href="#Parser-3713"><span class="linenos">3713</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><span id="Parser-3714"><a href="#Parser-3714"><span class="linenos">3714</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">enforced</span><span class="o">=</span><span class="n">enforced</span> -</span><span id="Parser-3715"><a href="#Parser-3715"><span class="linenos">3715</span></a> <span class="p">)</span> -</span><span id="Parser-3716"><a href="#Parser-3716"><span class="linenos">3716</span></a> -</span><span id="Parser-3717"><a href="#Parser-3717"><span class="linenos">3717</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span> <span class="ow">or</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">FOREIGN_KEY</span><span class="p">):</span> -</span><span id="Parser-3718"><a href="#Parser-3718"><span class="linenos">3718</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_foreign_key</span><span class="p">()</span> -</span><span id="Parser-3719"><a href="#Parser-3719"><span class="linenos">3719</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span> <span class="ow">or</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">PRIMARY_KEY</span><span class="p">):</span> -</span><span id="Parser-3720"><a href="#Parser-3720"><span class="linenos">3720</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary_key</span><span class="p">()</span> -</span><span id="Parser-3721"><a href="#Parser-3721"><span class="linenos">3721</span></a> -</span><span id="Parser-3722"><a href="#Parser-3722"><span class="linenos">3722</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">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> -</span><span id="Parser-3723"><a href="#Parser-3723"><span class="linenos">3723</span></a> -</span><span id="Parser-3724"><a href="#Parser-3724"><span class="linenos">3724</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_add</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Parser-3725"><a href="#Parser-3725"><span class="linenos">3725</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="Parser-3726"><a href="#Parser-3726"><span class="linenos">3726</span></a> -</span><span id="Parser-3727"><a href="#Parser-3727"><span class="linenos">3727</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ADD_CONSTRAINT_TOKENS</span><span class="p">):</span> -</span><span id="Parser-3728"><a href="#Parser-3728"><span class="linenos">3728</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_constraint</span><span class="p">)</span> -</span><span id="Parser-3729"><a href="#Parser-3729"><span class="linenos">3729</span></a> -</span><span id="Parser-3730"><a href="#Parser-3730"><span class="linenos">3730</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="Parser-3731"><a href="#Parser-3731"><span class="linenos">3731</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_column</span><span class="p">)</span> -</span><span id="Parser-3732"><a href="#Parser-3732"><span class="linenos">3732</span></a> -</span><span id="Parser-3733"><a href="#Parser-3733"><span class="linenos">3733</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_alter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3734"><a href="#Parser-3734"><span class="linenos">3734</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">COLUMN</span><span class="p">)</span> -</span><span id="Parser-3735"><a href="#Parser-3735"><span class="linenos">3735</span></a> <span class="n">column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3736"><a href="#Parser-3736"><span class="linenos">3736</span></a> -</span><span id="Parser-3737"><a href="#Parser-3737"><span class="linenos">3737</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> -</span><span id="Parser-3738"><a href="#Parser-3738"><span class="linenos">3738</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">drop</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -</span><span id="Parser-3739"><a href="#Parser-3739"><span class="linenos">3739</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> -</span><span id="Parser-3740"><a href="#Parser-3740"><span class="linenos">3740</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> -</span><span id="Parser-3741"><a href="#Parser-3741"><span class="linenos">3741</span></a> -</span><span id="Parser-3742"><a href="#Parser-3742"><span class="linenos">3742</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SET"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">)</span> -</span><span id="Parser-3743"><a href="#Parser-3743"><span class="linenos">3743</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><span id="Parser-3744"><a href="#Parser-3744"><span class="linenos">3744</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterColumn</span><span class="p">,</span> -</span><span id="Parser-3745"><a href="#Parser-3745"><span class="linenos">3745</span></a> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> -</span><span id="Parser-3746"><a href="#Parser-3746"><span class="linenos">3746</span></a> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TYPE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(),</span> -</span><span id="Parser-3747"><a href="#Parser-3747"><span class="linenos">3747</span></a> <span class="n">collate</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">COLLATE</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> -</span><span id="Parser-3748"><a href="#Parser-3748"><span class="linenos">3748</span></a> <span class="n">using</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> -</span><span id="Parser-3749"><a href="#Parser-3749"><span class="linenos">3749</span></a> <span class="p">)</span> -</span><span id="Parser-3750"><a href="#Parser-3750"><span class="linenos">3750</span></a> -</span><span id="Parser-3751"><a href="#Parser-3751"><span class="linenos">3751</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_drop</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> -</span><span id="Parser-3752"><a href="#Parser-3752"><span class="linenos">3752</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="Parser-3753"><a href="#Parser-3753"><span class="linenos">3753</span></a> -</span><span id="Parser-3754"><a href="#Parser-3754"><span class="linenos">3754</span></a> <span class="n">partition_exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> -</span><span id="Parser-3755"><a href="#Parser-3755"><span class="linenos">3755</span></a> <span class="k">if</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">PARTITION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> -</span><span id="Parser-3756"><a href="#Parser-3756"><span class="linenos">3756</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_partition</span><span class="p">(</span><span class="n">exists</span><span class="o">=</span><span class="n">partition_exists</span><span class="p">))</span> -</span><span id="Parser-3757"><a href="#Parser-3757"><span class="linenos">3757</span></a> -</span><span id="Parser-3758"><a href="#Parser-3758"><span class="linenos">3758</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="Parser-3759"><a href="#Parser-3759"><span class="linenos">3759</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_column</span><span class="p">)</span> -</span><span id="Parser-3760"><a href="#Parser-3760"><span class="linenos">3760</span></a> -</span><span id="Parser-3761"><a href="#Parser-3761"><span class="linenos">3761</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_rename</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3762"><a href="#Parser-3762"><span class="linenos">3762</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">)</span> -</span><span id="Parser-3763"><a href="#Parser-3763"><span class="linenos">3763</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">RenameTable</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Parser-3691"><a href="#Parser-3691"><span class="linenos">3691</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">):</span> +</span><span id="Parser-3692"><a href="#Parser-3692"><span class="linenos">3692</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SAVEPOINT"</span><span class="p">)</span> +</span><span id="Parser-3693"><a href="#Parser-3693"><span class="linenos">3693</span></a> <span class="n">savepoint</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3694"><a href="#Parser-3694"><span class="linenos">3694</span></a> +</span><span id="Parser-3695"><a href="#Parser-3695"><span class="linenos">3695</span></a> <span class="k">if</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">AND</span><span class="p">):</span> +</span><span id="Parser-3696"><a href="#Parser-3696"><span class="linenos">3696</span></a> <span class="n">chain</span> <span class="o">=</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"NO"</span><span class="p">)</span> +</span><span id="Parser-3697"><a href="#Parser-3697"><span class="linenos">3697</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHAIN"</span><span class="p">)</span> +</span><span id="Parser-3698"><a href="#Parser-3698"><span class="linenos">3698</span></a> +</span><span id="Parser-3699"><a href="#Parser-3699"><span class="linenos">3699</span></a> <span class="k">if</span> <span class="n">is_rollback</span><span class="p">:</span> +</span><span id="Parser-3700"><a href="#Parser-3700"><span class="linenos">3700</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">Rollback</span><span class="p">,</span> <span class="n">savepoint</span><span class="o">=</span><span class="n">savepoint</span><span class="p">)</span> +</span><span id="Parser-3701"><a href="#Parser-3701"><span class="linenos">3701</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">Commit</span><span class="p">,</span> <span class="n">chain</span><span class="o">=</span><span class="n">chain</span><span class="p">)</span> +</span><span id="Parser-3702"><a href="#Parser-3702"><span class="linenos">3702</span></a> +</span><span id="Parser-3703"><a href="#Parser-3703"><span class="linenos">3703</span></a> <span class="k">def</span> <span class="nf">_parse_add_column</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3704"><a href="#Parser-3704"><span class="linenos">3704</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ADD"</span><span class="p">):</span> +</span><span id="Parser-3705"><a href="#Parser-3705"><span class="linenos">3705</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3706"><a href="#Parser-3706"><span class="linenos">3706</span></a> +</span><span id="Parser-3707"><a href="#Parser-3707"><span class="linenos">3707</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">COLUMN</span><span class="p">)</span> +</span><span id="Parser-3708"><a href="#Parser-3708"><span class="linenos">3708</span></a> <span class="n">exists_column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">(</span><span class="n">not_</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3709"><a href="#Parser-3709"><span class="linenos">3709</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_column_def</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Parser-3710"><a href="#Parser-3710"><span class="linenos">3710</span></a> +</span><span id="Parser-3711"><a href="#Parser-3711"><span class="linenos">3711</span></a> <span class="k">if</span> <span class="n">expression</span><span class="p">:</span> +</span><span id="Parser-3712"><a href="#Parser-3712"><span class="linenos">3712</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"exists"</span><span class="p">,</span> <span class="n">exists_column</span><span class="p">)</span> +</span><span id="Parser-3713"><a href="#Parser-3713"><span class="linenos">3713</span></a> +</span><span id="Parser-3714"><a href="#Parser-3714"><span class="linenos">3714</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="Parser-3715"><a href="#Parser-3715"><span class="linenos">3715</span></a> +</span><span id="Parser-3716"><a href="#Parser-3716"><span class="linenos">3716</span></a> <span class="k">def</span> <span class="nf">_parse_drop_column</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3717"><a href="#Parser-3717"><span class="linenos">3717</span></a> <span class="k">return</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">DROP</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop</span><span class="p">(</span><span class="n">default_kind</span><span class="o">=</span><span class="s2">"COLUMN"</span><span class="p">)</span> +</span><span id="Parser-3718"><a href="#Parser-3718"><span class="linenos">3718</span></a> +</span><span id="Parser-3719"><a href="#Parser-3719"><span class="linenos">3719</span></a> <span class="c1"># https://docs.aws.amazon.com/athena/latest/ug/alter-table-drop-partition.html</span> +</span><span id="Parser-3720"><a href="#Parser-3720"><span class="linenos">3720</span></a> <span class="k">def</span> <span class="nf">_parse_drop_partition</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">exists</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">bool</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3721"><a href="#Parser-3721"><span class="linenos">3721</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><span id="Parser-3722"><a href="#Parser-3722"><span class="linenos">3722</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">DropPartition</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_partition</span><span class="p">),</span> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span> +</span><span id="Parser-3723"><a href="#Parser-3723"><span class="linenos">3723</span></a> <span class="p">)</span> +</span><span id="Parser-3724"><a href="#Parser-3724"><span class="linenos">3724</span></a> +</span><span id="Parser-3725"><a href="#Parser-3725"><span class="linenos">3725</span></a> <span class="k">def</span> <span class="nf">_parse_add_constraint</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3726"><a href="#Parser-3726"><span class="linenos">3726</span></a> <span class="n">this</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3727"><a href="#Parser-3727"><span class="linenos">3727</span></a> <span class="n">kind</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">token_type</span> +</span><span id="Parser-3728"><a href="#Parser-3728"><span class="linenos">3728</span></a> +</span><span id="Parser-3729"><a href="#Parser-3729"><span class="linenos">3729</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CONSTRAINT</span><span class="p">:</span> +</span><span id="Parser-3730"><a href="#Parser-3730"><span class="linenos">3730</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3731"><a href="#Parser-3731"><span class="linenos">3731</span></a> +</span><span id="Parser-3732"><a href="#Parser-3732"><span class="linenos">3732</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"CHECK"</span><span class="p">):</span> +</span><span id="Parser-3733"><a href="#Parser-3733"><span class="linenos">3733</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_wrapped</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">)</span> +</span><span id="Parser-3734"><a href="#Parser-3734"><span class="linenos">3734</span></a> <span class="n">enforced</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"ENFORCED"</span><span class="p">)</span> +</span><span id="Parser-3735"><a href="#Parser-3735"><span class="linenos">3735</span></a> +</span><span id="Parser-3736"><a href="#Parser-3736"><span class="linenos">3736</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><span id="Parser-3737"><a href="#Parser-3737"><span class="linenos">3737</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">,</span> <span class="n">enforced</span><span class="o">=</span><span class="n">enforced</span> +</span><span id="Parser-3738"><a href="#Parser-3738"><span class="linenos">3738</span></a> <span class="p">)</span> +</span><span id="Parser-3739"><a href="#Parser-3739"><span class="linenos">3739</span></a> +</span><span id="Parser-3740"><a href="#Parser-3740"><span class="linenos">3740</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span> <span class="ow">or</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">FOREIGN_KEY</span><span class="p">):</span> +</span><span id="Parser-3741"><a href="#Parser-3741"><span class="linenos">3741</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_foreign_key</span><span class="p">()</span> +</span><span id="Parser-3742"><a href="#Parser-3742"><span class="linenos">3742</span></a> <span class="k">elif</span> <span class="n">kind</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span> <span class="ow">or</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">PRIMARY_KEY</span><span class="p">):</span> +</span><span id="Parser-3743"><a href="#Parser-3743"><span class="linenos">3743</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary_key</span><span class="p">()</span> +</span><span id="Parser-3744"><a href="#Parser-3744"><span class="linenos">3744</span></a> +</span><span id="Parser-3745"><a href="#Parser-3745"><span class="linenos">3745</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">AddConstraint</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="n">expression</span><span class="p">)</span> +</span><span id="Parser-3746"><a href="#Parser-3746"><span class="linenos">3746</span></a> +</span><span id="Parser-3747"><a href="#Parser-3747"><span class="linenos">3747</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_add</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="Parser-3748"><a href="#Parser-3748"><span class="linenos">3748</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="Parser-3749"><a href="#Parser-3749"><span class="linenos">3749</span></a> +</span><span id="Parser-3750"><a href="#Parser-3750"><span class="linenos">3750</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ADD_CONSTRAINT_TOKENS</span><span class="p">):</span> +</span><span id="Parser-3751"><a href="#Parser-3751"><span class="linenos">3751</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_constraint</span><span class="p">)</span> +</span><span id="Parser-3752"><a href="#Parser-3752"><span class="linenos">3752</span></a> +</span><span id="Parser-3753"><a href="#Parser-3753"><span class="linenos">3753</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="Parser-3754"><a href="#Parser-3754"><span class="linenos">3754</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_add_column</span><span class="p">)</span> +</span><span id="Parser-3755"><a href="#Parser-3755"><span class="linenos">3755</span></a> +</span><span id="Parser-3756"><a href="#Parser-3756"><span class="linenos">3756</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_alter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3757"><a href="#Parser-3757"><span class="linenos">3757</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">COLUMN</span><span class="p">)</span> +</span><span id="Parser-3758"><a href="#Parser-3758"><span class="linenos">3758</span></a> <span class="n">column</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_field</span><span class="p">(</span><span class="n">any_token</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3759"><a href="#Parser-3759"><span class="linenos">3759</span></a> +</span><span id="Parser-3760"><a href="#Parser-3760"><span class="linenos">3760</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> +</span><span id="Parser-3761"><a href="#Parser-3761"><span class="linenos">3761</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">drop</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3762"><a href="#Parser-3762"><span class="linenos">3762</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_pair</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">):</span> +</span><span id="Parser-3763"><a href="#Parser-3763"><span class="linenos">3763</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">AlterColumn</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">())</span> </span><span id="Parser-3764"><a href="#Parser-3764"><span class="linenos">3764</span></a> -</span><span id="Parser-3765"><a href="#Parser-3765"><span class="linenos">3765</span></a> <span class="k">def</span> <span class="nf">_parse_alter</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3766"><a href="#Parser-3766"><span class="linenos">3766</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> -</span><span id="Parser-3767"><a href="#Parser-3767"><span class="linenos">3767</span></a> -</span><span id="Parser-3768"><a href="#Parser-3768"><span class="linenos">3768</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> -</span><span id="Parser-3769"><a href="#Parser-3769"><span class="linenos">3769</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="Parser-3770"><a href="#Parser-3770"><span class="linenos">3770</span></a> -</span><span id="Parser-3771"><a href="#Parser-3771"><span class="linenos">3771</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> -</span><span id="Parser-3772"><a href="#Parser-3772"><span class="linenos">3772</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3765"><a href="#Parser-3765"><span class="linenos">3765</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"SET"</span><span class="p">,</span> <span class="s2">"DATA"</span><span class="p">)</span> +</span><span id="Parser-3766"><a href="#Parser-3766"><span class="linenos">3766</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><span id="Parser-3767"><a href="#Parser-3767"><span class="linenos">3767</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterColumn</span><span class="p">,</span> +</span><span id="Parser-3768"><a href="#Parser-3768"><span class="linenos">3768</span></a> <span class="n">this</span><span class="o">=</span><span class="n">column</span><span class="p">,</span> +</span><span id="Parser-3769"><a href="#Parser-3769"><span class="linenos">3769</span></a> <span class="n">dtype</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TYPE"</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_types</span><span class="p">(),</span> +</span><span id="Parser-3770"><a href="#Parser-3770"><span class="linenos">3770</span></a> <span class="n">collate</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">COLLATE</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_term</span><span class="p">(),</span> +</span><span id="Parser-3771"><a href="#Parser-3771"><span class="linenos">3771</span></a> <span class="n">using</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">USING</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">(),</span> +</span><span id="Parser-3772"><a href="#Parser-3772"><span class="linenos">3772</span></a> <span class="p">)</span> </span><span id="Parser-3773"><a href="#Parser-3773"><span class="linenos">3773</span></a> -</span><span id="Parser-3774"><a href="#Parser-3774"><span class="linenos">3774</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> -</span><span id="Parser-3775"><a href="#Parser-3775"><span class="linenos">3775</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3776"><a href="#Parser-3776"><span class="linenos">3776</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Parser-3777"><a href="#Parser-3777"><span class="linenos">3777</span></a> -</span><span id="Parser-3778"><a href="#Parser-3778"><span class="linenos">3778</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="Parser-3779"><a href="#Parser-3779"><span class="linenos">3779</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><span id="Parser-3780"><a href="#Parser-3780"><span class="linenos">3780</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterTable</span><span class="p">,</span> -</span><span id="Parser-3781"><a href="#Parser-3781"><span class="linenos">3781</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> -</span><span id="Parser-3782"><a href="#Parser-3782"><span class="linenos">3782</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> -</span><span id="Parser-3783"><a href="#Parser-3783"><span class="linenos">3783</span></a> <span class="n">actions</span><span class="o">=</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)),</span> -</span><span id="Parser-3784"><a href="#Parser-3784"><span class="linenos">3784</span></a> <span class="p">)</span> -</span><span id="Parser-3785"><a href="#Parser-3785"><span class="linenos">3785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> -</span><span id="Parser-3786"><a href="#Parser-3786"><span class="linenos">3786</span></a> -</span><span id="Parser-3787"><a href="#Parser-3787"><span class="linenos">3787</span></a> <span class="k">def</span> <span class="nf">_parse_show</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3788"><a href="#Parser-3788"><span class="linenos">3788</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SHOW_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_show_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-3789"><a href="#Parser-3789"><span class="linenos">3789</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="Parser-3790"><a href="#Parser-3790"><span class="linenos">3790</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> -</span><span id="Parser-3791"><a href="#Parser-3791"><span class="linenos">3791</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3792"><a href="#Parser-3792"><span class="linenos">3792</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">Show</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="Parser-3774"><a href="#Parser-3774"><span class="linenos">3774</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_drop</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">List</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">]]:</span> +</span><span id="Parser-3775"><a href="#Parser-3775"><span class="linenos">3775</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="Parser-3776"><a href="#Parser-3776"><span class="linenos">3776</span></a> +</span><span id="Parser-3777"><a href="#Parser-3777"><span class="linenos">3777</span></a> <span class="n">partition_exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> +</span><span id="Parser-3778"><a href="#Parser-3778"><span class="linenos">3778</span></a> <span class="k">if</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">PARTITION</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> +</span><span id="Parser-3779"><a href="#Parser-3779"><span class="linenos">3779</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_partition</span><span class="p">(</span><span class="n">exists</span><span class="o">=</span><span class="n">partition_exists</span><span class="p">))</span> +</span><span id="Parser-3780"><a href="#Parser-3780"><span class="linenos">3780</span></a> +</span><span id="Parser-3781"><a href="#Parser-3781"><span class="linenos">3781</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="Parser-3782"><a href="#Parser-3782"><span class="linenos">3782</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_drop_column</span><span class="p">)</span> +</span><span id="Parser-3783"><a href="#Parser-3783"><span class="linenos">3783</span></a> +</span><span id="Parser-3784"><a href="#Parser-3784"><span class="linenos">3784</span></a> <span class="k">def</span> <span class="nf">_parse_alter_table_rename</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3785"><a href="#Parser-3785"><span class="linenos">3785</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TO"</span><span class="p">)</span> +</span><span id="Parser-3786"><a href="#Parser-3786"><span class="linenos">3786</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">RenameTable</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">))</span> +</span><span id="Parser-3787"><a href="#Parser-3787"><span class="linenos">3787</span></a> +</span><span id="Parser-3788"><a href="#Parser-3788"><span class="linenos">3788</span></a> <span class="k">def</span> <span class="nf">_parse_alter</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3789"><a href="#Parser-3789"><span class="linenos">3789</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> +</span><span id="Parser-3790"><a href="#Parser-3790"><span class="linenos">3790</span></a> +</span><span id="Parser-3791"><a href="#Parser-3791"><span class="linenos">3791</span></a> <span class="k">if</span> <span class="ow">not</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">TABLE</span><span class="p">):</span> +</span><span id="Parser-3792"><a href="#Parser-3792"><span class="linenos">3792</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> </span><span id="Parser-3793"><a href="#Parser-3793"><span class="linenos">3793</span></a> -</span><span id="Parser-3794"><a href="#Parser-3794"><span class="linenos">3794</span></a> <span class="k">def</span> <span class="nf">_default_parse_set_item</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3795"><a href="#Parser-3795"><span class="linenos">3795</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><span id="Parser-3796"><a href="#Parser-3796"><span class="linenos">3796</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> -</span><span id="Parser-3797"><a href="#Parser-3797"><span class="linenos">3797</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">(),</span> -</span><span id="Parser-3798"><a href="#Parser-3798"><span class="linenos">3798</span></a> <span class="p">)</span> -</span><span id="Parser-3799"><a href="#Parser-3799"><span class="linenos">3799</span></a> -</span><span id="Parser-3800"><a href="#Parser-3800"><span class="linenos">3800</span></a> <span class="k">def</span> <span class="nf">_parse_set_item</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">Expression</span><span class="p">]:</span> -</span><span id="Parser-3801"><a href="#Parser-3801"><span class="linenos">3801</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_set_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Parser-3802"><a href="#Parser-3802"><span class="linenos">3802</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="k">if</span> <span class="n">parser</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_default_parse_set_item</span><span class="p">()</span> -</span><span id="Parser-3803"><a href="#Parser-3803"><span class="linenos">3803</span></a> -</span><span id="Parser-3804"><a href="#Parser-3804"><span class="linenos">3804</span></a> <span class="k">def</span> <span class="nf">_parse_merge</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3805"><a href="#Parser-3805"><span class="linenos">3805</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">INTO</span><span class="p">)</span> -</span><span id="Parser-3806"><a href="#Parser-3806"><span class="linenos">3806</span></a> <span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="Parser-3807"><a href="#Parser-3807"><span class="linenos">3807</span></a> -</span><span id="Parser-3808"><a href="#Parser-3808"><span class="linenos">3808</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">USING</span><span class="p">)</span> -</span><span id="Parser-3809"><a href="#Parser-3809"><span class="linenos">3809</span></a> <span class="n">using</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> -</span><span id="Parser-3810"><a href="#Parser-3810"><span class="linenos">3810</span></a> -</span><span id="Parser-3811"><a href="#Parser-3811"><span class="linenos">3811</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">ON</span><span class="p">)</span> -</span><span id="Parser-3812"><a href="#Parser-3812"><span class="linenos">3812</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3794"><a href="#Parser-3794"><span class="linenos">3794</span></a> <span class="n">exists</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_exists</span><span class="p">()</span> +</span><span id="Parser-3795"><a href="#Parser-3795"><span class="linenos">3795</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">(</span><span class="n">schema</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +</span><span id="Parser-3796"><a href="#Parser-3796"><span class="linenos">3796</span></a> +</span><span id="Parser-3797"><a href="#Parser-3797"><span class="linenos">3797</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> +</span><span id="Parser-3798"><a href="#Parser-3798"><span class="linenos">3798</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3799"><a href="#Parser-3799"><span class="linenos">3799</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">ALTER_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-3800"><a href="#Parser-3800"><span class="linenos">3800</span></a> +</span><span id="Parser-3801"><a href="#Parser-3801"><span class="linenos">3801</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="Parser-3802"><a href="#Parser-3802"><span class="linenos">3802</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><span id="Parser-3803"><a href="#Parser-3803"><span class="linenos">3803</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">AlterTable</span><span class="p">,</span> +</span><span id="Parser-3804"><a href="#Parser-3804"><span class="linenos">3804</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3805"><a href="#Parser-3805"><span class="linenos">3805</span></a> <span class="n">exists</span><span class="o">=</span><span class="n">exists</span><span class="p">,</span> +</span><span id="Parser-3806"><a href="#Parser-3806"><span class="linenos">3806</span></a> <span class="n">actions</span><span class="o">=</span><span class="n">ensure_list</span><span class="p">(</span><span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)),</span> +</span><span id="Parser-3807"><a href="#Parser-3807"><span class="linenos">3807</span></a> <span class="p">)</span> +</span><span id="Parser-3808"><a href="#Parser-3808"><span class="linenos">3808</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> +</span><span id="Parser-3809"><a href="#Parser-3809"><span class="linenos">3809</span></a> +</span><span id="Parser-3810"><a href="#Parser-3810"><span class="linenos">3810</span></a> <span class="k">def</span> <span class="nf">_parse_merge</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3811"><a href="#Parser-3811"><span class="linenos">3811</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">INTO</span><span class="p">)</span> +</span><span id="Parser-3812"><a href="#Parser-3812"><span class="linenos">3812</span></a> <span class="n">target</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> </span><span id="Parser-3813"><a href="#Parser-3813"><span class="linenos">3813</span></a> -</span><span id="Parser-3814"><a href="#Parser-3814"><span class="linenos">3814</span></a> <span class="n">whens</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3815"><a href="#Parser-3815"><span class="linenos">3815</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> -</span><span id="Parser-3816"><a href="#Parser-3816"><span class="linenos">3816</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="ow">not</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">NOT</span><span class="p">)</span> -</span><span id="Parser-3817"><a href="#Parser-3817"><span class="linenos">3817</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCHED"</span><span class="p">)</span> -</span><span id="Parser-3818"><a href="#Parser-3818"><span class="linenos">3818</span></a> <span class="n">source</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-3819"><a href="#Parser-3819"><span class="linenos">3819</span></a> <span class="kc">False</span> -</span><span id="Parser-3820"><a href="#Parser-3820"><span class="linenos">3820</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"TARGET"</span><span class="p">)</span> -</span><span id="Parser-3821"><a href="#Parser-3821"><span class="linenos">3821</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"SOURCE"</span><span class="p">)</span> -</span><span id="Parser-3822"><a href="#Parser-3822"><span class="linenos">3822</span></a> <span class="p">)</span> -</span><span id="Parser-3823"><a href="#Parser-3823"><span class="linenos">3823</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">AND</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> -</span><span id="Parser-3824"><a href="#Parser-3824"><span class="linenos">3824</span></a> -</span><span id="Parser-3825"><a href="#Parser-3825"><span class="linenos">3825</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">THEN</span><span class="p">)</span> -</span><span id="Parser-3826"><a href="#Parser-3826"><span class="linenos">3826</span></a> -</span><span id="Parser-3827"><a href="#Parser-3827"><span class="linenos">3827</span></a> <span class="k">if</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">INSERT</span><span class="p">):</span> -</span><span id="Parser-3828"><a href="#Parser-3828"><span class="linenos">3828</span></a> <span class="n">_this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> -</span><span id="Parser-3829"><a href="#Parser-3829"><span class="linenos">3829</span></a> <span class="k">if</span> <span class="n">_this</span><span class="p">:</span> -</span><span id="Parser-3830"><a href="#Parser-3830"><span class="linenos">3830</span></a> <span class="n">then</span> <span class="o">=</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">Insert</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">_this</span><span class="p">)</span> -</span><span id="Parser-3831"><a href="#Parser-3831"><span class="linenos">3831</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3832"><a href="#Parser-3832"><span class="linenos">3832</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-3833"><a href="#Parser-3833"><span class="linenos">3833</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> -</span><span id="Parser-3834"><a href="#Parser-3834"><span class="linenos">3834</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> -</span><span id="Parser-3835"><a href="#Parser-3835"><span class="linenos">3835</span></a> <span class="n">expression</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">VALUES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> -</span><span id="Parser-3836"><a href="#Parser-3836"><span class="linenos">3836</span></a> <span class="p">)</span> -</span><span id="Parser-3837"><a href="#Parser-3837"><span class="linenos">3837</span></a> <span class="k">elif</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">UPDATE</span><span class="p">):</span> -</span><span id="Parser-3838"><a href="#Parser-3838"><span class="linenos">3838</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> -</span><span id="Parser-3839"><a href="#Parser-3839"><span class="linenos">3839</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> -</span><span id="Parser-3840"><a href="#Parser-3840"><span class="linenos">3840</span></a> <span class="n">then</span> <span class="o">=</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">Update</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> -</span><span id="Parser-3841"><a href="#Parser-3841"><span class="linenos">3841</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3842"><a href="#Parser-3842"><span class="linenos">3842</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-3843"><a href="#Parser-3843"><span class="linenos">3843</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> -</span><span id="Parser-3844"><a href="#Parser-3844"><span class="linenos">3844</span></a> <span class="n">expressions</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">SET</span><span class="p">)</span> -</span><span id="Parser-3845"><a href="#Parser-3845"><span class="linenos">3845</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> -</span><span id="Parser-3846"><a href="#Parser-3846"><span class="linenos">3846</span></a> <span class="p">)</span> -</span><span id="Parser-3847"><a href="#Parser-3847"><span class="linenos">3847</span></a> <span class="k">elif</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">DELETE</span><span class="p">):</span> -</span><span id="Parser-3848"><a href="#Parser-3848"><span class="linenos">3848</span></a> <span class="n">then</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-3849"><a href="#Parser-3849"><span class="linenos">3849</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3850"><a href="#Parser-3850"><span class="linenos">3850</span></a> <span class="n">then</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser-3851"><a href="#Parser-3851"><span class="linenos">3851</span></a> -</span><span id="Parser-3852"><a href="#Parser-3852"><span class="linenos">3852</span></a> <span class="n">whens</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> -</span><span id="Parser-3853"><a href="#Parser-3853"><span class="linenos">3853</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> -</span><span id="Parser-3854"><a href="#Parser-3854"><span class="linenos">3854</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">When</span><span class="p">,</span> -</span><span id="Parser-3855"><a href="#Parser-3855"><span class="linenos">3855</span></a> <span class="n">matched</span><span class="o">=</span><span class="n">matched</span><span class="p">,</span> -</span><span id="Parser-3856"><a href="#Parser-3856"><span class="linenos">3856</span></a> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">,</span> -</span><span id="Parser-3857"><a href="#Parser-3857"><span class="linenos">3857</span></a> <span class="n">condition</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> -</span><span id="Parser-3858"><a href="#Parser-3858"><span class="linenos">3858</span></a> <span class="n">then</span><span class="o">=</span><span class="n">then</span><span class="p">,</span> -</span><span id="Parser-3859"><a href="#Parser-3859"><span class="linenos">3859</span></a> <span class="p">)</span> -</span><span id="Parser-3860"><a href="#Parser-3860"><span class="linenos">3860</span></a> <span class="p">)</span> -</span><span id="Parser-3861"><a href="#Parser-3861"><span class="linenos">3861</span></a> -</span><span id="Parser-3862"><a href="#Parser-3862"><span class="linenos">3862</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><span id="Parser-3863"><a href="#Parser-3863"><span class="linenos">3863</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Merge</span><span class="p">,</span> -</span><span id="Parser-3864"><a href="#Parser-3864"><span class="linenos">3864</span></a> <span class="n">this</span><span class="o">=</span><span class="n">target</span><span class="p">,</span> -</span><span id="Parser-3865"><a href="#Parser-3865"><span class="linenos">3865</span></a> <span class="n">using</span><span class="o">=</span><span class="n">using</span><span class="p">,</span> -</span><span id="Parser-3866"><a href="#Parser-3866"><span class="linenos">3866</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> -</span><span id="Parser-3867"><a href="#Parser-3867"><span class="linenos">3867</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">whens</span><span class="p">,</span> -</span><span id="Parser-3868"><a href="#Parser-3868"><span class="linenos">3868</span></a> <span class="p">)</span> -</span><span id="Parser-3869"><a href="#Parser-3869"><span class="linenos">3869</span></a> -</span><span id="Parser-3870"><a href="#Parser-3870"><span class="linenos">3870</span></a> <span class="k">def</span> <span class="nf">_parse_set</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser-3871"><a href="#Parser-3871"><span class="linenos">3871</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">Set</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item</span><span class="p">))</span> -</span><span id="Parser-3872"><a href="#Parser-3872"><span class="linenos">3872</span></a> -</span><span id="Parser-3873"><a href="#Parser-3873"><span class="linenos">3873</span></a> <span class="k">def</span> <span class="nf">_parse_as_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">:</span> -</span><span id="Parser-3874"><a href="#Parser-3874"><span class="linenos">3874</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="Parser-3875"><a href="#Parser-3875"><span class="linenos">3875</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3876"><a href="#Parser-3876"><span class="linenos">3876</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> -</span><span id="Parser-3877"><a href="#Parser-3877"><span class="linenos">3877</span></a> <span class="n">size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">start</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser-3878"><a href="#Parser-3878"><span class="linenos">3878</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">[:</span><span class="n">size</span><span class="p">],</span> <span class="n">expression</span><span class="o">=</span><span class="n">text</span><span class="p">[</span><span class="n">size</span><span class="p">:])</span> -</span><span id="Parser-3879"><a href="#Parser-3879"><span class="linenos">3879</span></a> -</span><span id="Parser-3880"><a href="#Parser-3880"><span class="linenos">3880</span></a> <span class="k">def</span> <span class="nf">_find_parser</span><span class="p">(</span> -</span><span id="Parser-3881"><a href="#Parser-3881"><span class="linenos">3881</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parsers</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">],</span> <span class="n">trie</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> -</span><span id="Parser-3882"><a href="#Parser-3882"><span class="linenos">3882</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]:</span> -</span><span id="Parser-3883"><a href="#Parser-3883"><span class="linenos">3883</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><span id="Parser-3884"><a href="#Parser-3884"><span class="linenos">3884</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser-3885"><a href="#Parser-3885"><span class="linenos">3885</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Parser-3886"><a href="#Parser-3886"><span class="linenos">3886</span></a> <span class="c1"># The current token might be multiple words</span> -</span><span id="Parser-3887"><a href="#Parser-3887"><span class="linenos">3887</span></a> <span class="n">curr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> -</span><span id="Parser-3888"><a href="#Parser-3888"><span class="linenos">3888</span></a> <span class="n">key</span> <span class="o">=</span> <span class="n">curr</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> -</span><span id="Parser-3889"><a href="#Parser-3889"><span class="linenos">3889</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">curr</span><span class="p">)</span> -</span><span id="Parser-3890"><a href="#Parser-3890"><span class="linenos">3890</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3891"><a href="#Parser-3891"><span class="linenos">3891</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> -</span><span id="Parser-3892"><a href="#Parser-3892"><span class="linenos">3892</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> -</span><span id="Parser-3893"><a href="#Parser-3893"><span class="linenos">3893</span></a> <span class="k">break</span> -</span><span id="Parser-3894"><a href="#Parser-3894"><span class="linenos">3894</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="Parser-3895"><a href="#Parser-3895"><span class="linenos">3895</span></a> <span class="n">subparser</span> <span class="o">=</span> <span class="n">parsers</span><span class="p">[</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">this</span><span class="p">)]</span> -</span><span id="Parser-3896"><a href="#Parser-3896"><span class="linenos">3896</span></a> <span class="k">return</span> <span class="n">subparser</span> -</span><span id="Parser-3897"><a href="#Parser-3897"><span class="linenos">3897</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="Parser-3898"><a href="#Parser-3898"><span class="linenos">3898</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3899"><a href="#Parser-3899"><span class="linenos">3899</span></a> -</span><span id="Parser-3900"><a href="#Parser-3900"><span class="linenos">3900</span></a> <span class="k">def</span> <span class="nf">_match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Parser-3901"><a href="#Parser-3901"><span class="linenos">3901</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="Parser-3902"><a href="#Parser-3902"><span class="linenos">3902</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3814"><a href="#Parser-3814"><span class="linenos">3814</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">USING</span><span class="p">)</span> +</span><span id="Parser-3815"><a href="#Parser-3815"><span class="linenos">3815</span></a> <span class="n">using</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_table</span><span class="p">()</span> +</span><span id="Parser-3816"><a href="#Parser-3816"><span class="linenos">3816</span></a> +</span><span id="Parser-3817"><a href="#Parser-3817"><span class="linenos">3817</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">ON</span><span class="p">)</span> +</span><span id="Parser-3818"><a href="#Parser-3818"><span class="linenos">3818</span></a> <span class="n">on</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> +</span><span id="Parser-3819"><a href="#Parser-3819"><span class="linenos">3819</span></a> +</span><span id="Parser-3820"><a href="#Parser-3820"><span class="linenos">3820</span></a> <span class="n">whens</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-3821"><a href="#Parser-3821"><span class="linenos">3821</span></a> <span class="k">while</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">WHEN</span><span class="p">):</span> +</span><span id="Parser-3822"><a href="#Parser-3822"><span class="linenos">3822</span></a> <span class="n">matched</span> <span class="o">=</span> <span class="ow">not</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">NOT</span><span class="p">)</span> +</span><span id="Parser-3823"><a href="#Parser-3823"><span class="linenos">3823</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"MATCHED"</span><span class="p">)</span> +</span><span id="Parser-3824"><a href="#Parser-3824"><span class="linenos">3824</span></a> <span class="n">source</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-3825"><a href="#Parser-3825"><span class="linenos">3825</span></a> <span class="kc">False</span> +</span><span id="Parser-3826"><a href="#Parser-3826"><span class="linenos">3826</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"TARGET"</span><span class="p">)</span> +</span><span id="Parser-3827"><a href="#Parser-3827"><span class="linenos">3827</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"BY"</span><span class="p">,</span> <span class="s2">"SOURCE"</span><span class="p">)</span> +</span><span id="Parser-3828"><a href="#Parser-3828"><span class="linenos">3828</span></a> <span class="p">)</span> +</span><span id="Parser-3829"><a href="#Parser-3829"><span class="linenos">3829</span></a> <span class="n">condition</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_conjunction</span><span class="p">()</span> <span class="k">if</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">AND</span><span class="p">)</span> <span class="k">else</span> <span class="kc">None</span> +</span><span id="Parser-3830"><a href="#Parser-3830"><span class="linenos">3830</span></a> +</span><span id="Parser-3831"><a href="#Parser-3831"><span class="linenos">3831</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">THEN</span><span class="p">)</span> +</span><span id="Parser-3832"><a href="#Parser-3832"><span class="linenos">3832</span></a> +</span><span id="Parser-3833"><a href="#Parser-3833"><span class="linenos">3833</span></a> <span class="k">if</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">INSERT</span><span class="p">):</span> +</span><span id="Parser-3834"><a href="#Parser-3834"><span class="linenos">3834</span></a> <span class="n">_this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> +</span><span id="Parser-3835"><a href="#Parser-3835"><span class="linenos">3835</span></a> <span class="k">if</span> <span class="n">_this</span><span class="p">:</span> +</span><span id="Parser-3836"><a href="#Parser-3836"><span class="linenos">3836</span></a> <span class="n">then</span> <span class="o">=</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">Insert</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">_this</span><span class="p">)</span> +</span><span id="Parser-3837"><a href="#Parser-3837"><span class="linenos">3837</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3838"><a href="#Parser-3838"><span class="linenos">3838</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3839"><a href="#Parser-3839"><span class="linenos">3839</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Insert</span><span class="p">,</span> +</span><span id="Parser-3840"><a href="#Parser-3840"><span class="linenos">3840</span></a> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> +</span><span id="Parser-3841"><a href="#Parser-3841"><span class="linenos">3841</span></a> <span class="n">expression</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">VALUES</span><span class="p">)</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_value</span><span class="p">(),</span> +</span><span id="Parser-3842"><a href="#Parser-3842"><span class="linenos">3842</span></a> <span class="p">)</span> +</span><span id="Parser-3843"><a href="#Parser-3843"><span class="linenos">3843</span></a> <span class="k">elif</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">UPDATE</span><span class="p">):</span> +</span><span id="Parser-3844"><a href="#Parser-3844"><span class="linenos">3844</span></a> <span class="n">expressions</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_star</span><span class="p">()</span> +</span><span id="Parser-3845"><a href="#Parser-3845"><span class="linenos">3845</span></a> <span class="k">if</span> <span class="n">expressions</span><span class="p">:</span> +</span><span id="Parser-3846"><a href="#Parser-3846"><span class="linenos">3846</span></a> <span class="n">then</span> <span class="o">=</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">Update</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="n">expressions</span><span class="p">)</span> +</span><span id="Parser-3847"><a href="#Parser-3847"><span class="linenos">3847</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3848"><a href="#Parser-3848"><span class="linenos">3848</span></a> <span class="n">then</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3849"><a href="#Parser-3849"><span class="linenos">3849</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Update</span><span class="p">,</span> +</span><span id="Parser-3850"><a href="#Parser-3850"><span class="linenos">3850</span></a> <span class="n">expressions</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">SET</span><span class="p">)</span> +</span><span id="Parser-3851"><a href="#Parser-3851"><span class="linenos">3851</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_equality</span><span class="p">),</span> +</span><span id="Parser-3852"><a href="#Parser-3852"><span class="linenos">3852</span></a> <span class="p">)</span> +</span><span id="Parser-3853"><a href="#Parser-3853"><span class="linenos">3853</span></a> <span class="k">elif</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">DELETE</span><span class="p">):</span> +</span><span id="Parser-3854"><a href="#Parser-3854"><span class="linenos">3854</span></a> <span class="n">then</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-3855"><a href="#Parser-3855"><span class="linenos">3855</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-3856"><a href="#Parser-3856"><span class="linenos">3856</span></a> <span class="n">then</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3857"><a href="#Parser-3857"><span class="linenos">3857</span></a> +</span><span id="Parser-3858"><a href="#Parser-3858"><span class="linenos">3858</span></a> <span class="n">whens</span><span class="o">.</span><span class="n">append</span><span class="p">(</span> +</span><span id="Parser-3859"><a href="#Parser-3859"><span class="linenos">3859</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3860"><a href="#Parser-3860"><span class="linenos">3860</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">When</span><span class="p">,</span> +</span><span id="Parser-3861"><a href="#Parser-3861"><span class="linenos">3861</span></a> <span class="n">matched</span><span class="o">=</span><span class="n">matched</span><span class="p">,</span> +</span><span id="Parser-3862"><a href="#Parser-3862"><span class="linenos">3862</span></a> <span class="n">source</span><span class="o">=</span><span class="n">source</span><span class="p">,</span> +</span><span id="Parser-3863"><a href="#Parser-3863"><span class="linenos">3863</span></a> <span class="n">condition</span><span class="o">=</span><span class="n">condition</span><span class="p">,</span> +</span><span id="Parser-3864"><a href="#Parser-3864"><span class="linenos">3864</span></a> <span class="n">then</span><span class="o">=</span><span class="n">then</span><span class="p">,</span> +</span><span id="Parser-3865"><a href="#Parser-3865"><span class="linenos">3865</span></a> <span class="p">)</span> +</span><span id="Parser-3866"><a href="#Parser-3866"><span class="linenos">3866</span></a> <span class="p">)</span> +</span><span id="Parser-3867"><a href="#Parser-3867"><span class="linenos">3867</span></a> +</span><span id="Parser-3868"><a href="#Parser-3868"><span class="linenos">3868</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><span id="Parser-3869"><a href="#Parser-3869"><span class="linenos">3869</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Merge</span><span class="p">,</span> +</span><span id="Parser-3870"><a href="#Parser-3870"><span class="linenos">3870</span></a> <span class="n">this</span><span class="o">=</span><span class="n">target</span><span class="p">,</span> +</span><span id="Parser-3871"><a href="#Parser-3871"><span class="linenos">3871</span></a> <span class="n">using</span><span class="o">=</span><span class="n">using</span><span class="p">,</span> +</span><span id="Parser-3872"><a href="#Parser-3872"><span class="linenos">3872</span></a> <span class="n">on</span><span class="o">=</span><span class="n">on</span><span class="p">,</span> +</span><span id="Parser-3873"><a href="#Parser-3873"><span class="linenos">3873</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">whens</span><span class="p">,</span> +</span><span id="Parser-3874"><a href="#Parser-3874"><span class="linenos">3874</span></a> <span class="p">)</span> +</span><span id="Parser-3875"><a href="#Parser-3875"><span class="linenos">3875</span></a> +</span><span id="Parser-3876"><a href="#Parser-3876"><span class="linenos">3876</span></a> <span class="k">def</span> <span class="nf">_parse_show</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3877"><a href="#Parser-3877"><span class="linenos">3877</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SHOW_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_show_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-3878"><a href="#Parser-3878"><span class="linenos">3878</span></a> <span class="k">if</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="Parser-3879"><a href="#Parser-3879"><span class="linenos">3879</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> +</span><span id="Parser-3880"><a href="#Parser-3880"><span class="linenos">3880</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3881"><a href="#Parser-3881"><span class="linenos">3881</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">Show</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> +</span><span id="Parser-3882"><a href="#Parser-3882"><span class="linenos">3882</span></a> +</span><span id="Parser-3883"><a href="#Parser-3883"><span class="linenos">3883</span></a> <span class="k">def</span> <span class="nf">_parse_set_item_assignment</span><span class="p">(</span> +</span><span id="Parser-3884"><a href="#Parser-3884"><span class="linenos">3884</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">kind</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser-3885"><a href="#Parser-3885"><span class="linenos">3885</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="Parser-3886"><a href="#Parser-3886"><span class="linenos">3886</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><span id="Parser-3887"><a href="#Parser-3887"><span class="linenos">3887</span></a> +</span><span id="Parser-3888"><a href="#Parser-3888"><span class="linenos">3888</span></a> <span class="k">if</span> <span class="n">kind</span> <span class="ow">in</span> <span class="p">{</span><span class="s2">"GLOBAL"</span><span class="p">,</span> <span class="s2">"SESSION"</span><span class="p">}</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">):</span> +</span><span id="Parser-3889"><a href="#Parser-3889"><span class="linenos">3889</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_transaction</span><span class="p">(</span><span class="n">global_</span><span class="o">=</span><span class="n">kind</span> <span class="o">==</span> <span class="s2">"GLOBAL"</span><span class="p">)</span> +</span><span id="Parser-3890"><a href="#Parser-3890"><span class="linenos">3890</span></a> +</span><span id="Parser-3891"><a href="#Parser-3891"><span class="linenos">3891</span></a> <span class="n">left</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_primary</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3892"><a href="#Parser-3892"><span class="linenos">3892</span></a> +</span><span id="Parser-3893"><a href="#Parser-3893"><span class="linenos">3893</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_texts</span><span class="p">((</span><span class="s2">"="</span><span class="p">,</span> <span class="s2">"TO"</span><span class="p">)):</span> +</span><span id="Parser-3894"><a href="#Parser-3894"><span class="linenos">3894</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="Parser-3895"><a href="#Parser-3895"><span class="linenos">3895</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3896"><a href="#Parser-3896"><span class="linenos">3896</span></a> +</span><span id="Parser-3897"><a href="#Parser-3897"><span class="linenos">3897</span></a> <span class="n">right</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">()</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_id_var</span><span class="p">()</span> +</span><span id="Parser-3898"><a href="#Parser-3898"><span class="linenos">3898</span></a> <span class="n">this</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">expression</span><span class="p">(</span> +</span><span id="Parser-3899"><a href="#Parser-3899"><span class="linenos">3899</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">EQ</span><span class="p">,</span> +</span><span id="Parser-3900"><a href="#Parser-3900"><span class="linenos">3900</span></a> <span class="n">this</span><span class="o">=</span><span class="n">left</span><span class="p">,</span> +</span><span id="Parser-3901"><a href="#Parser-3901"><span class="linenos">3901</span></a> <span class="n">expression</span><span class="o">=</span><span class="n">right</span><span class="p">,</span> +</span><span id="Parser-3902"><a href="#Parser-3902"><span class="linenos">3902</span></a> <span class="p">)</span> </span><span id="Parser-3903"><a href="#Parser-3903"><span class="linenos">3903</span></a> -</span><span id="Parser-3904"><a href="#Parser-3904"><span class="linenos">3904</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type</span><span class="p">:</span> -</span><span id="Parser-3905"><a href="#Parser-3905"><span class="linenos">3905</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="Parser-3906"><a href="#Parser-3906"><span class="linenos">3906</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3907"><a href="#Parser-3907"><span class="linenos">3907</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="Parser-3908"><a href="#Parser-3908"><span class="linenos">3908</span></a> -</span><span id="Parser-3909"><a href="#Parser-3909"><span class="linenos">3909</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3910"><a href="#Parser-3910"><span class="linenos">3910</span></a> -</span><span id="Parser-3911"><a href="#Parser-3911"><span class="linenos">3911</span></a> <span class="k">def</span> <span class="nf">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">types</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Parser-3912"><a href="#Parser-3912"><span class="linenos">3912</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> -</span><span id="Parser-3913"><a href="#Parser-3913"><span class="linenos">3913</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3914"><a href="#Parser-3914"><span class="linenos">3914</span></a> -</span><span id="Parser-3915"><a href="#Parser-3915"><span class="linenos">3915</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="n">types</span><span class="p">:</span> -</span><span id="Parser-3916"><a href="#Parser-3916"><span class="linenos">3916</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="Parser-3917"><a href="#Parser-3917"><span class="linenos">3917</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3918"><a href="#Parser-3918"><span class="linenos">3918</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="Parser-3919"><a href="#Parser-3919"><span class="linenos">3919</span></a> -</span><span id="Parser-3920"><a href="#Parser-3920"><span class="linenos">3920</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3904"><a href="#Parser-3904"><span class="linenos">3904</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><span id="Parser-3905"><a href="#Parser-3905"><span class="linenos">3905</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="Parser-3906"><a href="#Parser-3906"><span class="linenos">3906</span></a> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="p">,</span> +</span><span id="Parser-3907"><a href="#Parser-3907"><span class="linenos">3907</span></a> <span class="n">kind</span><span class="o">=</span><span class="n">kind</span><span class="p">,</span> +</span><span id="Parser-3908"><a href="#Parser-3908"><span class="linenos">3908</span></a> <span class="p">)</span> +</span><span id="Parser-3909"><a href="#Parser-3909"><span class="linenos">3909</span></a> +</span><span id="Parser-3910"><a href="#Parser-3910"><span class="linenos">3910</span></a> <span class="k">def</span> <span class="nf">_parse_set_transaction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">global_</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3911"><a href="#Parser-3911"><span class="linenos">3911</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="s2">"TRANSACTION"</span><span class="p">)</span> +</span><span id="Parser-3912"><a href="#Parser-3912"><span class="linenos">3912</span></a> <span class="n">characteristics</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span> +</span><span id="Parser-3913"><a href="#Parser-3913"><span class="linenos">3913</span></a> <span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">TRANSACTION_CHARACTERISTICS</span><span class="p">)</span> +</span><span id="Parser-3914"><a href="#Parser-3914"><span class="linenos">3914</span></a> <span class="p">)</span> +</span><span id="Parser-3915"><a href="#Parser-3915"><span class="linenos">3915</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><span id="Parser-3916"><a href="#Parser-3916"><span class="linenos">3916</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">SetItem</span><span class="p">,</span> +</span><span id="Parser-3917"><a href="#Parser-3917"><span class="linenos">3917</span></a> <span class="n">expressions</span><span class="o">=</span><span class="n">characteristics</span><span class="p">,</span> +</span><span id="Parser-3918"><a href="#Parser-3918"><span class="linenos">3918</span></a> <span class="n">kind</span><span class="o">=</span><span class="s2">"TRANSACTION"</span><span class="p">,</span> +</span><span id="Parser-3919"><a href="#Parser-3919"><span class="linenos">3919</span></a> <span class="o">**</span><span class="p">{</span><span class="s2">"global"</span><span class="p">:</span> <span class="n">global_</span><span class="p">},</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-3920"><a href="#Parser-3920"><span class="linenos">3920</span></a> <span class="p">)</span> </span><span id="Parser-3921"><a href="#Parser-3921"><span class="linenos">3921</span></a> -</span><span id="Parser-3922"><a href="#Parser-3922"><span class="linenos">3922</span></a> <span class="k">def</span> <span class="nf">_match_pair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type_a</span><span class="p">,</span> <span class="n">token_type_b</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Parser-3923"><a href="#Parser-3923"><span class="linenos">3923</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> -</span><span id="Parser-3924"><a href="#Parser-3924"><span class="linenos">3924</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3922"><a href="#Parser-3922"><span class="linenos">3922</span></a> <span class="k">def</span> <span class="nf">_parse_set_item</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3923"><a href="#Parser-3923"><span class="linenos">3923</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_parser</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SET_PARSERS</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_set_trie</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Parser-3924"><a href="#Parser-3924"><span class="linenos">3924</span></a> <span class="k">return</span> <span class="n">parser</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="k">if</span> <span class="n">parser</span> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item_assignment</span><span class="p">(</span><span class="n">kind</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> </span><span id="Parser-3925"><a href="#Parser-3925"><span class="linenos">3925</span></a> -</span><span id="Parser-3926"><a href="#Parser-3926"><span class="linenos">3926</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_a</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_b</span><span class="p">:</span> -</span><span id="Parser-3927"><a href="#Parser-3927"><span class="linenos">3927</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="Parser-3928"><a href="#Parser-3928"><span class="linenos">3928</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> -</span><span id="Parser-3929"><a href="#Parser-3929"><span class="linenos">3929</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="Parser-3930"><a href="#Parser-3930"><span class="linenos">3930</span></a> -</span><span id="Parser-3931"><a href="#Parser-3931"><span class="linenos">3931</span></a> <span class="k">return</span> <span class="kc">None</span> -</span><span id="Parser-3932"><a href="#Parser-3932"><span class="linenos">3932</span></a> -</span><span id="Parser-3933"><a href="#Parser-3933"><span class="linenos">3933</span></a> <span class="k">def</span> <span class="nf">_match_l_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="Parser-3934"><a href="#Parser-3934"><span class="linenos">3934</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> -</span><span id="Parser-3935"><a href="#Parser-3935"><span class="linenos">3935</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting ("</span><span class="p">)</span> -</span><span id="Parser-3936"><a href="#Parser-3936"><span class="linenos">3936</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="Parser-3937"><a href="#Parser-3937"><span class="linenos">3937</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser-3938"><a href="#Parser-3938"><span class="linenos">3938</span></a> -</span><span id="Parser-3939"><a href="#Parser-3939"><span class="linenos">3939</span></a> <span class="k">def</span> <span class="nf">_match_r_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> -</span><span id="Parser-3940"><a href="#Parser-3940"><span class="linenos">3940</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> -</span><span id="Parser-3941"><a href="#Parser-3941"><span class="linenos">3941</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">)</span> -</span><span id="Parser-3942"><a href="#Parser-3942"><span class="linenos">3942</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="Parser-3943"><a href="#Parser-3943"><span class="linenos">3943</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser-3944"><a href="#Parser-3944"><span class="linenos">3944</span></a> -</span><span id="Parser-3945"><a href="#Parser-3945"><span class="linenos">3945</span></a> <span class="k">def</span> <span class="nf">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Parser-3946"><a href="#Parser-3946"><span class="linenos">3946</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> -</span><span id="Parser-3947"><a href="#Parser-3947"><span class="linenos">3947</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="Parser-3948"><a href="#Parser-3948"><span class="linenos">3948</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3949"><a href="#Parser-3949"><span class="linenos">3949</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="Parser-3950"><a href="#Parser-3950"><span class="linenos">3950</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="Parser-3951"><a href="#Parser-3951"><span class="linenos">3951</span></a> -</span><span id="Parser-3952"><a href="#Parser-3952"><span class="linenos">3952</span></a> <span class="k">def</span> <span class="nf">_match_text_seq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> -</span><span id="Parser-3953"><a href="#Parser-3953"><span class="linenos">3953</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><span id="Parser-3954"><a href="#Parser-3954"><span class="linenos">3954</span></a> <span class="k">for</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> -</span><span id="Parser-3955"><a href="#Parser-3955"><span class="linenos">3955</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="n">text</span><span class="p">:</span> -</span><span id="Parser-3956"><a href="#Parser-3956"><span class="linenos">3956</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Parser-3957"><a href="#Parser-3957"><span class="linenos">3957</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Parser-3958"><a href="#Parser-3958"><span class="linenos">3958</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="Parser-3959"><a href="#Parser-3959"><span class="linenos">3959</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="Parser-3960"><a href="#Parser-3960"><span class="linenos">3960</span></a> -</span><span id="Parser-3961"><a href="#Parser-3961"><span class="linenos">3961</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">advance</span><span class="p">:</span> -</span><span id="Parser-3962"><a href="#Parser-3962"><span class="linenos">3962</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="Parser-3963"><a href="#Parser-3963"><span class="linenos">3963</span></a> -</span><span id="Parser-3964"><a href="#Parser-3964"><span class="linenos">3964</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="Parser-3965"><a href="#Parser-3965"><span class="linenos">3965</span></a> -</span><span id="Parser-3966"><a href="#Parser-3966"><span class="linenos">3966</span></a> <span class="k">def</span> <span class="nf">_replace_columns_with_dots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">):</span> -</span><span id="Parser-3967"><a href="#Parser-3967"><span class="linenos">3967</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">):</span> -</span><span id="Parser-3968"><a href="#Parser-3968"><span class="linenos">3968</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> -</span><span id="Parser-3969"><a href="#Parser-3969"><span class="linenos">3969</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> -</span><span id="Parser-3970"><a href="#Parser-3970"><span class="linenos">3970</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> -</span><span id="Parser-3971"><a href="#Parser-3971"><span class="linenos">3971</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">this</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">"table"</span><span class="p">)</span> -</span><span id="Parser-3972"><a href="#Parser-3972"><span class="linenos">3972</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> -</span><span id="Parser-3973"><a href="#Parser-3973"><span class="linenos">3973</span></a> <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">Dot</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">expression</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> -</span><span id="Parser-3974"><a href="#Parser-3974"><span class="linenos">3974</span></a> <span class="k">if</span> <span class="n">table</span> -</span><span id="Parser-3975"><a href="#Parser-3975"><span class="linenos">3975</span></a> <span class="k">else</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="Parser-3976"><a href="#Parser-3976"><span class="linenos">3976</span></a> <span class="p">)</span> -</span><span id="Parser-3977"><a href="#Parser-3977"><span class="linenos">3977</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> -</span><span id="Parser-3978"><a href="#Parser-3978"><span class="linenos">3978</span></a> <span class="n">this</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> -</span><span id="Parser-3979"><a href="#Parser-3979"><span class="linenos">3979</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-3926"><a href="#Parser-3926"><span class="linenos">3926</span></a> <span class="k">def</span> <span class="nf">_parse_set</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser-3927"><a href="#Parser-3927"><span class="linenos">3927</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><span id="Parser-3928"><a href="#Parser-3928"><span class="linenos">3928</span></a> <span class="n">set_</span> <span class="o">=</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">Set</span><span class="p">,</span> <span class="n">expressions</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_csv</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_parse_set_item</span><span class="p">))</span> +</span><span id="Parser-3929"><a href="#Parser-3929"><span class="linenos">3929</span></a> +</span><span id="Parser-3930"><a href="#Parser-3930"><span class="linenos">3930</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-3931"><a href="#Parser-3931"><span class="linenos">3931</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="Parser-3932"><a href="#Parser-3932"><span class="linenos">3932</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse_as_command</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3933"><a href="#Parser-3933"><span class="linenos">3933</span></a> +</span><span id="Parser-3934"><a href="#Parser-3934"><span class="linenos">3934</span></a> <span class="k">return</span> <span class="n">set_</span> +</span><span id="Parser-3935"><a href="#Parser-3935"><span class="linenos">3935</span></a> +</span><span id="Parser-3936"><a href="#Parser-3936"><span class="linenos">3936</span></a> <span class="k">def</span> <span class="nf">_parse_var_from_options</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">options</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="nb">str</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">Expression</span><span class="p">]:</span> +</span><span id="Parser-3937"><a href="#Parser-3937"><span class="linenos">3937</span></a> <span class="k">for</span> <span class="n">option</span> <span class="ow">in</span> <span class="n">options</span><span class="p">:</span> +</span><span id="Parser-3938"><a href="#Parser-3938"><span class="linenos">3938</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_match_text_seq</span><span class="p">(</span><span class="o">*</span><span class="n">option</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)):</span> +</span><span id="Parser-3939"><a href="#Parser-3939"><span class="linenos">3939</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Var</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">option</span><span class="p">)</span> +</span><span id="Parser-3940"><a href="#Parser-3940"><span class="linenos">3940</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3941"><a href="#Parser-3941"><span class="linenos">3941</span></a> +</span><span id="Parser-3942"><a href="#Parser-3942"><span class="linenos">3942</span></a> <span class="k">def</span> <span class="nf">_parse_as_command</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="n">Token</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">:</span> +</span><span id="Parser-3943"><a href="#Parser-3943"><span class="linenos">3943</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-3944"><a href="#Parser-3944"><span class="linenos">3944</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3945"><a href="#Parser-3945"><span class="linenos">3945</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_sql</span><span class="p">(</span><span class="n">start</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span><span class="p">)</span> +</span><span id="Parser-3946"><a href="#Parser-3946"><span class="linenos">3946</span></a> <span class="n">size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">start</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser-3947"><a href="#Parser-3947"><span class="linenos">3947</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">Command</span><span class="p">(</span><span class="n">this</span><span class="o">=</span><span class="n">text</span><span class="p">[:</span><span class="n">size</span><span class="p">],</span> <span class="n">expression</span><span class="o">=</span><span class="n">text</span><span class="p">[</span><span class="n">size</span><span class="p">:])</span> +</span><span id="Parser-3948"><a href="#Parser-3948"><span class="linenos">3948</span></a> +</span><span id="Parser-3949"><a href="#Parser-3949"><span class="linenos">3949</span></a> <span class="k">def</span> <span class="nf">_find_parser</span><span class="p">(</span> +</span><span id="Parser-3950"><a href="#Parser-3950"><span class="linenos">3950</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">parsers</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">],</span> <span class="n">trie</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span> +</span><span id="Parser-3951"><a href="#Parser-3951"><span class="linenos">3951</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">]:</span> +</span><span id="Parser-3952"><a href="#Parser-3952"><span class="linenos">3952</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-3953"><a href="#Parser-3953"><span class="linenos">3953</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3954"><a href="#Parser-3954"><span class="linenos">3954</span></a> +</span><span id="Parser-3955"><a href="#Parser-3955"><span class="linenos">3955</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><span id="Parser-3956"><a href="#Parser-3956"><span class="linenos">3956</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser-3957"><a href="#Parser-3957"><span class="linenos">3957</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Parser-3958"><a href="#Parser-3958"><span class="linenos">3958</span></a> <span class="c1"># The current token might be multiple words</span> +</span><span id="Parser-3959"><a href="#Parser-3959"><span class="linenos">3959</span></a> <span class="n">curr</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> +</span><span id="Parser-3960"><a href="#Parser-3960"><span class="linenos">3960</span></a> <span class="n">key</span> <span class="o">=</span> <span class="n">curr</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> +</span><span id="Parser-3961"><a href="#Parser-3961"><span class="linenos">3961</span></a> <span class="n">this</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">curr</span><span class="p">)</span> +</span><span id="Parser-3962"><a href="#Parser-3962"><span class="linenos">3962</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3963"><a href="#Parser-3963"><span class="linenos">3963</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">key</span><span class="p">)</span> +</span><span id="Parser-3964"><a href="#Parser-3964"><span class="linenos">3964</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> +</span><span id="Parser-3965"><a href="#Parser-3965"><span class="linenos">3965</span></a> <span class="k">break</span> +</span><span id="Parser-3966"><a href="#Parser-3966"><span class="linenos">3966</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="Parser-3967"><a href="#Parser-3967"><span class="linenos">3967</span></a> <span class="n">subparser</span> <span class="o">=</span> <span class="n">parsers</span><span class="p">[</span><span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">this</span><span class="p">)]</span> +</span><span id="Parser-3968"><a href="#Parser-3968"><span class="linenos">3968</span></a> <span class="k">return</span> <span class="n">subparser</span> +</span><span id="Parser-3969"><a href="#Parser-3969"><span class="linenos">3969</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="Parser-3970"><a href="#Parser-3970"><span class="linenos">3970</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3971"><a href="#Parser-3971"><span class="linenos">3971</span></a> +</span><span id="Parser-3972"><a href="#Parser-3972"><span class="linenos">3972</span></a> <span class="k">def</span> <span class="nf">_match</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Parser-3973"><a href="#Parser-3973"><span class="linenos">3973</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-3974"><a href="#Parser-3974"><span class="linenos">3974</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3975"><a href="#Parser-3975"><span class="linenos">3975</span></a> +</span><span id="Parser-3976"><a href="#Parser-3976"><span class="linenos">3976</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type</span><span class="p">:</span> +</span><span id="Parser-3977"><a href="#Parser-3977"><span class="linenos">3977</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="Parser-3978"><a href="#Parser-3978"><span class="linenos">3978</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3979"><a href="#Parser-3979"><span class="linenos">3979</span></a> <span class="k">return</span> <span class="kc">True</span> </span><span id="Parser-3980"><a href="#Parser-3980"><span class="linenos">3980</span></a> -</span><span id="Parser-3981"><a href="#Parser-3981"><span class="linenos">3981</span></a> <span class="k">def</span> <span class="nf">_replace_lambda</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">lambda_variables</span><span class="p">):</span> -</span><span id="Parser-3982"><a href="#Parser-3982"><span class="linenos">3982</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> -</span><span id="Parser-3983"><a href="#Parser-3983"><span class="linenos">3983</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">lambda_variables</span><span class="p">:</span> -</span><span id="Parser-3984"><a href="#Parser-3984"><span class="linenos">3984</span></a> <span class="k">return</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span> -</span><span id="Parser-3985"><a href="#Parser-3985"><span class="linenos">3985</span></a> <span class="k">return</span> <span class="n">node</span> +</span><span id="Parser-3981"><a href="#Parser-3981"><span class="linenos">3981</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3982"><a href="#Parser-3982"><span class="linenos">3982</span></a> +</span><span id="Parser-3983"><a href="#Parser-3983"><span class="linenos">3983</span></a> <span class="k">def</span> <span class="nf">_match_set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">types</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Parser-3984"><a href="#Parser-3984"><span class="linenos">3984</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="p">:</span> +</span><span id="Parser-3985"><a href="#Parser-3985"><span class="linenos">3985</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3986"><a href="#Parser-3986"><span class="linenos">3986</span></a> +</span><span id="Parser-3987"><a href="#Parser-3987"><span class="linenos">3987</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="n">types</span><span class="p">:</span> +</span><span id="Parser-3988"><a href="#Parser-3988"><span class="linenos">3988</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="Parser-3989"><a href="#Parser-3989"><span class="linenos">3989</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-3990"><a href="#Parser-3990"><span class="linenos">3990</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Parser-3991"><a href="#Parser-3991"><span class="linenos">3991</span></a> +</span><span id="Parser-3992"><a href="#Parser-3992"><span class="linenos">3992</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3993"><a href="#Parser-3993"><span class="linenos">3993</span></a> +</span><span id="Parser-3994"><a href="#Parser-3994"><span class="linenos">3994</span></a> <span class="k">def</span> <span class="nf">_match_pair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token_type_a</span><span class="p">,</span> <span class="n">token_type_b</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Parser-3995"><a href="#Parser-3995"><span class="linenos">3995</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="p">:</span> +</span><span id="Parser-3996"><a href="#Parser-3996"><span class="linenos">3996</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-3997"><a href="#Parser-3997"><span class="linenos">3997</span></a> +</span><span id="Parser-3998"><a href="#Parser-3998"><span class="linenos">3998</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_a</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span><span class="o">.</span><span class="n">token_type</span> <span class="o">==</span> <span class="n">token_type_b</span><span class="p">:</span> +</span><span id="Parser-3999"><a href="#Parser-3999"><span class="linenos">3999</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="Parser-4000"><a href="#Parser-4000"><span class="linenos">4000</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> +</span><span id="Parser-4001"><a href="#Parser-4001"><span class="linenos">4001</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Parser-4002"><a href="#Parser-4002"><span class="linenos">4002</span></a> +</span><span id="Parser-4003"><a href="#Parser-4003"><span class="linenos">4003</span></a> <span class="k">return</span> <span class="kc">None</span> +</span><span id="Parser-4004"><a href="#Parser-4004"><span class="linenos">4004</span></a> +</span><span id="Parser-4005"><a href="#Parser-4005"><span class="linenos">4005</span></a> <span class="k">def</span> <span class="nf">_match_l_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="Parser-4006"><a href="#Parser-4006"><span class="linenos">4006</span></a> <span class="k">if</span> <span class="ow">not</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">L_PAREN</span><span class="p">):</span> +</span><span id="Parser-4007"><a href="#Parser-4007"><span class="linenos">4007</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting ("</span><span class="p">)</span> +</span><span id="Parser-4008"><a href="#Parser-4008"><span class="linenos">4008</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="Parser-4009"><a href="#Parser-4009"><span class="linenos">4009</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-4010"><a href="#Parser-4010"><span class="linenos">4010</span></a> +</span><span id="Parser-4011"><a href="#Parser-4011"><span class="linenos">4011</span></a> <span class="k">def</span> <span class="nf">_match_r_paren</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expression</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> +</span><span id="Parser-4012"><a href="#Parser-4012"><span class="linenos">4012</span></a> <span class="k">if</span> <span class="ow">not</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">R_PAREN</span><span class="p">):</span> +</span><span id="Parser-4013"><a href="#Parser-4013"><span class="linenos">4013</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="s2">"Expecting )"</span><span class="p">)</span> +</span><span id="Parser-4014"><a href="#Parser-4014"><span class="linenos">4014</span></a> <span class="k">if</span> <span class="n">expression</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="Parser-4015"><a href="#Parser-4015"><span class="linenos">4015</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser-4016"><a href="#Parser-4016"><span class="linenos">4016</span></a> +</span><span id="Parser-4017"><a href="#Parser-4017"><span class="linenos">4017</span></a> <span class="k">def</span> <span class="nf">_match_texts</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Parser-4018"><a href="#Parser-4018"><span class="linenos">4018</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> +</span><span id="Parser-4019"><a href="#Parser-4019"><span class="linenos">4019</span></a> <span class="k">if</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="Parser-4020"><a href="#Parser-4020"><span class="linenos">4020</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-4021"><a href="#Parser-4021"><span class="linenos">4021</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Parser-4022"><a href="#Parser-4022"><span class="linenos">4022</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="Parser-4023"><a href="#Parser-4023"><span class="linenos">4023</span></a> +</span><span id="Parser-4024"><a href="#Parser-4024"><span class="linenos">4024</span></a> <span class="k">def</span> <span class="nf">_match_text_seq</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">texts</span><span class="p">,</span> <span class="n">advance</span><span class="o">=</span><span class="kc">True</span><span class="p">):</span> +</span><span id="Parser-4025"><a href="#Parser-4025"><span class="linenos">4025</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><span id="Parser-4026"><a href="#Parser-4026"><span class="linenos">4026</span></a> <span class="k">for</span> <span class="n">text</span> <span class="ow">in</span> <span class="n">texts</span><span class="p">:</span> +</span><span id="Parser-4027"><a href="#Parser-4027"><span class="linenos">4027</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span><span class="o">.</span><span class="n">text</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="n">text</span><span class="p">:</span> +</span><span id="Parser-4028"><a href="#Parser-4028"><span class="linenos">4028</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Parser-4029"><a href="#Parser-4029"><span class="linenos">4029</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Parser-4030"><a href="#Parser-4030"><span class="linenos">4030</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="Parser-4031"><a href="#Parser-4031"><span class="linenos">4031</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="Parser-4032"><a href="#Parser-4032"><span class="linenos">4032</span></a> +</span><span id="Parser-4033"><a href="#Parser-4033"><span class="linenos">4033</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">advance</span><span class="p">:</span> +</span><span id="Parser-4034"><a href="#Parser-4034"><span class="linenos">4034</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="Parser-4035"><a href="#Parser-4035"><span class="linenos">4035</span></a> +</span><span id="Parser-4036"><a href="#Parser-4036"><span class="linenos">4036</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Parser-4037"><a href="#Parser-4037"><span class="linenos">4037</span></a> +</span><span id="Parser-4038"><a href="#Parser-4038"><span class="linenos">4038</span></a> <span class="k">def</span> <span class="nf">_replace_columns_with_dots</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">this</span><span class="p">):</span> +</span><span id="Parser-4039"><a href="#Parser-4039"><span class="linenos">4039</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Dot</span><span class="p">):</span> +</span><span id="Parser-4040"><a href="#Parser-4040"><span class="linenos">4040</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> +</span><span id="Parser-4041"><a href="#Parser-4041"><span class="linenos">4041</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> +</span><span id="Parser-4042"><a href="#Parser-4042"><span class="linenos">4042</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">replace_children</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">_replace_columns_with_dots</span><span class="p">)</span> +</span><span id="Parser-4043"><a href="#Parser-4043"><span class="linenos">4043</span></a> <span class="n">table</span> <span class="o">=</span> <span class="n">this</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">"table"</span><span class="p">)</span> +</span><span id="Parser-4044"><a href="#Parser-4044"><span class="linenos">4044</span></a> <span class="n">this</span> <span class="o">=</span> <span class="p">(</span> +</span><span id="Parser-4045"><a href="#Parser-4045"><span class="linenos">4045</span></a> <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">Dot</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">expression</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">this</span><span class="p">)</span> +</span><span id="Parser-4046"><a href="#Parser-4046"><span class="linenos">4046</span></a> <span class="k">if</span> <span class="n">table</span> +</span><span id="Parser-4047"><a href="#Parser-4047"><span class="linenos">4047</span></a> <span class="k">else</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="Parser-4048"><a href="#Parser-4048"><span class="linenos">4048</span></a> <span class="p">)</span> +</span><span id="Parser-4049"><a href="#Parser-4049"><span class="linenos">4049</span></a> <span class="k">elif</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">this</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Identifier</span><span class="p">):</span> +</span><span id="Parser-4050"><a href="#Parser-4050"><span class="linenos">4050</span></a> <span class="n">this</span> <span class="o">=</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">Var</span><span class="p">,</span> <span class="n">this</span><span class="o">=</span><span class="n">this</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> +</span><span id="Parser-4051"><a href="#Parser-4051"><span class="linenos">4051</span></a> <span class="k">return</span> <span class="n">this</span> +</span><span id="Parser-4052"><a href="#Parser-4052"><span class="linenos">4052</span></a> +</span><span id="Parser-4053"><a href="#Parser-4053"><span class="linenos">4053</span></a> <span class="k">def</span> <span class="nf">_replace_lambda</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">,</span> <span class="n">lambda_variables</span><span class="p">):</span> +</span><span id="Parser-4054"><a href="#Parser-4054"><span class="linenos">4054</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">):</span> +</span><span id="Parser-4055"><a href="#Parser-4055"><span class="linenos">4055</span></a> <span class="k">if</span> <span class="n">node</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">lambda_variables</span><span class="p">:</span> +</span><span id="Parser-4056"><a href="#Parser-4056"><span class="linenos">4056</span></a> <span class="k">return</span> <span class="n">node</span><span class="o">.</span><span class="n">this</span> +</span><span id="Parser-4057"><a href="#Parser-4057"><span class="linenos">4057</span></a> <span class="k">return</span> <span class="n">node</span> </span></pre></div> @@ -8107,24 +8254,24 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Parser.__init__"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.__init__-730"><a href="#Parser.__init__-730"><span class="linenos">730</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> -</span><span id="Parser.__init__-731"><a href="#Parser.__init__-731"><span class="linenos">731</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser.__init__-732"><a href="#Parser.__init__-732"><span class="linenos">732</span></a> <span class="n">error_level</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">ErrorLevel</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser.__init__-733"><a href="#Parser.__init__-733"><span class="linenos">733</span></a> <span class="n">error_message_context</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> -</span><span id="Parser.__init__-734"><a href="#Parser.__init__-734"><span class="linenos">734</span></a> <span class="n">index_offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> -</span><span id="Parser.__init__-735"><a href="#Parser.__init__-735"><span class="linenos">735</span></a> <span class="n">unnest_column_only</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="Parser.__init__-736"><a href="#Parser.__init__-736"><span class="linenos">736</span></a> <span class="n">alias_post_tablesample</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="Parser.__init__-737"><a href="#Parser.__init__-737"><span class="linenos">737</span></a> <span class="n">max_errors</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> -</span><span id="Parser.__init__-738"><a href="#Parser.__init__-738"><span class="linenos">738</span></a> <span class="n">null_ordering</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser.__init__-739"><a href="#Parser.__init__-739"><span class="linenos">739</span></a> <span class="p">):</span> -</span><span id="Parser.__init__-740"><a href="#Parser.__init__-740"><span class="linenos">740</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">=</span> <span class="n">error_level</span> <span class="ow">or</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span> -</span><span id="Parser.__init__-741"><a href="#Parser.__init__-741"><span class="linenos">741</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span> <span class="o">=</span> <span class="n">error_message_context</span> -</span><span id="Parser.__init__-742"><a href="#Parser.__init__-742"><span class="linenos">742</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> -</span><span id="Parser.__init__-743"><a href="#Parser.__init__-743"><span class="linenos">743</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> -</span><span id="Parser.__init__-744"><a href="#Parser.__init__-744"><span class="linenos">744</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> -</span><span id="Parser.__init__-745"><a href="#Parser.__init__-745"><span class="linenos">745</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span> <span class="o">=</span> <span class="n">max_errors</span> -</span><span id="Parser.__init__-746"><a href="#Parser.__init__-746"><span class="linenos">746</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> -</span><span id="Parser.__init__-747"><a href="#Parser.__init__-747"><span class="linenos">747</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.__init__-742"><a href="#Parser.__init__-742"><span class="linenos">742</span></a> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span> +</span><span id="Parser.__init__-743"><a href="#Parser.__init__-743"><span class="linenos">743</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser.__init__-744"><a href="#Parser.__init__-744"><span class="linenos">744</span></a> <span class="n">error_level</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">ErrorLevel</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser.__init__-745"><a href="#Parser.__init__-745"><span class="linenos">745</span></a> <span class="n">error_message_context</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span> +</span><span id="Parser.__init__-746"><a href="#Parser.__init__-746"><span class="linenos">746</span></a> <span class="n">index_offset</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> +</span><span id="Parser.__init__-747"><a href="#Parser.__init__-747"><span class="linenos">747</span></a> <span class="n">unnest_column_only</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="Parser.__init__-748"><a href="#Parser.__init__-748"><span class="linenos">748</span></a> <span class="n">alias_post_tablesample</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="Parser.__init__-749"><a href="#Parser.__init__-749"><span class="linenos">749</span></a> <span class="n">max_errors</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span> +</span><span id="Parser.__init__-750"><a href="#Parser.__init__-750"><span class="linenos">750</span></a> <span class="n">null_ordering</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser.__init__-751"><a href="#Parser.__init__-751"><span class="linenos">751</span></a> <span class="p">):</span> +</span><span id="Parser.__init__-752"><a href="#Parser.__init__-752"><span class="linenos">752</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">=</span> <span class="n">error_level</span> <span class="ow">or</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span> +</span><span id="Parser.__init__-753"><a href="#Parser.__init__-753"><span class="linenos">753</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span> <span class="o">=</span> <span class="n">error_message_context</span> +</span><span id="Parser.__init__-754"><a href="#Parser.__init__-754"><span class="linenos">754</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">index_offset</span> <span class="o">=</span> <span class="n">index_offset</span> +</span><span id="Parser.__init__-755"><a href="#Parser.__init__-755"><span class="linenos">755</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">unnest_column_only</span> <span class="o">=</span> <span class="n">unnest_column_only</span> +</span><span id="Parser.__init__-756"><a href="#Parser.__init__-756"><span class="linenos">756</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">alias_post_tablesample</span> <span class="o">=</span> <span class="n">alias_post_tablesample</span> +</span><span id="Parser.__init__-757"><a href="#Parser.__init__-757"><span class="linenos">757</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span> <span class="o">=</span> <span class="n">max_errors</span> +</span><span id="Parser.__init__-758"><a href="#Parser.__init__-758"><span class="linenos">758</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">null_ordering</span> <span class="o">=</span> <span class="n">null_ordering</span> +</span><span id="Parser.__init__-759"><a href="#Parser.__init__-759"><span class="linenos">759</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">reset</span><span class="p">()</span> </span></pre></div> @@ -8142,15 +8289,15 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Parser.reset"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.reset-749"><a href="#Parser.reset-749"><span class="linenos">749</span></a> <span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> -</span><span id="Parser.reset-750"><a href="#Parser.reset-750"><span class="linenos">750</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Parser.reset-751"><a href="#Parser.reset-751"><span class="linenos">751</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser.reset-752"><a href="#Parser.reset-752"><span class="linenos">752</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser.reset-753"><a href="#Parser.reset-753"><span class="linenos">753</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="Parser.reset-754"><a href="#Parser.reset-754"><span class="linenos">754</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser.reset-755"><a href="#Parser.reset-755"><span class="linenos">755</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser.reset-756"><a href="#Parser.reset-756"><span class="linenos">756</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser.reset-757"><a href="#Parser.reset-757"><span class="linenos">757</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.reset-761"><a href="#Parser.reset-761"><span class="linenos">761</span></a> <span class="k">def</span> <span class="nf">reset</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> +</span><span id="Parser.reset-762"><a href="#Parser.reset-762"><span class="linenos">762</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">sql</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Parser.reset-763"><a href="#Parser.reset-763"><span class="linenos">763</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser.reset-764"><a href="#Parser.reset-764"><span class="linenos">764</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_tokens</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser.reset-765"><a href="#Parser.reset-765"><span class="linenos">765</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_index</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="Parser.reset-766"><a href="#Parser.reset-766"><span class="linenos">766</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser.reset-767"><a href="#Parser.reset-767"><span class="linenos">767</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_next</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser.reset-768"><a href="#Parser.reset-768"><span class="linenos">768</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser.reset-769"><a href="#Parser.reset-769"><span class="linenos">769</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> </span></pre></div> @@ -8168,23 +8315,23 @@ Default: "nulls_are_small"</li> </div> <a class="headerlink" href="#Parser.parse"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.parse-759"><a href="#Parser.parse-759"><span class="linenos">759</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span> -</span><span id="Parser.parse-760"><a href="#Parser.parse-760"><span class="linenos">760</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser.parse-761"><a href="#Parser.parse-761"><span class="linenos">761</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser.parse-762"><a href="#Parser.parse-762"><span class="linenos">762</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser.parse-763"><a href="#Parser.parse-763"><span class="linenos">763</span></a><span class="sd"> Parses a list of tokens and returns a list of syntax trees, one tree</span> -</span><span id="Parser.parse-764"><a href="#Parser.parse-764"><span class="linenos">764</span></a><span class="sd"> per parsed SQL statement.</span> -</span><span id="Parser.parse-765"><a href="#Parser.parse-765"><span class="linenos">765</span></a> -</span><span id="Parser.parse-766"><a href="#Parser.parse-766"><span class="linenos">766</span></a><span class="sd"> Args:</span> -</span><span id="Parser.parse-767"><a href="#Parser.parse-767"><span class="linenos">767</span></a><span class="sd"> raw_tokens: the list of tokens.</span> -</span><span id="Parser.parse-768"><a href="#Parser.parse-768"><span class="linenos">768</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> -</span><span id="Parser.parse-769"><a href="#Parser.parse-769"><span class="linenos">769</span></a> -</span><span id="Parser.parse-770"><a href="#Parser.parse-770"><span class="linenos">770</span></a><span class="sd"> Returns:</span> -</span><span id="Parser.parse-771"><a href="#Parser.parse-771"><span class="linenos">771</span></a><span class="sd"> The list of syntax trees.</span> -</span><span id="Parser.parse-772"><a href="#Parser.parse-772"><span class="linenos">772</span></a><span class="sd"> """</span> -</span><span id="Parser.parse-773"><a href="#Parser.parse-773"><span class="linenos">773</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span> -</span><span id="Parser.parse-774"><a href="#Parser.parse-774"><span class="linenos">774</span></a> <span class="n">parse_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="o">=</span><span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="o">=</span><span class="n">sql</span> -</span><span id="Parser.parse-775"><a href="#Parser.parse-775"><span class="linenos">775</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.parse-771"><a href="#Parser.parse-771"><span class="linenos">771</span></a> <span class="k">def</span> <span class="nf">parse</span><span class="p">(</span> +</span><span id="Parser.parse-772"><a href="#Parser.parse-772"><span class="linenos">772</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser.parse-773"><a href="#Parser.parse-773"><span class="linenos">773</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser.parse-774"><a href="#Parser.parse-774"><span class="linenos">774</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser.parse-775"><a href="#Parser.parse-775"><span class="linenos">775</span></a><span class="sd"> Parses a list of tokens and returns a list of syntax trees, one tree</span> +</span><span id="Parser.parse-776"><a href="#Parser.parse-776"><span class="linenos">776</span></a><span class="sd"> per parsed SQL statement.</span> +</span><span id="Parser.parse-777"><a href="#Parser.parse-777"><span class="linenos">777</span></a> +</span><span id="Parser.parse-778"><a href="#Parser.parse-778"><span class="linenos">778</span></a><span class="sd"> Args:</span> +</span><span id="Parser.parse-779"><a href="#Parser.parse-779"><span class="linenos">779</span></a><span class="sd"> raw_tokens: the list of tokens.</span> +</span><span id="Parser.parse-780"><a href="#Parser.parse-780"><span class="linenos">780</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> +</span><span id="Parser.parse-781"><a href="#Parser.parse-781"><span class="linenos">781</span></a> +</span><span id="Parser.parse-782"><a href="#Parser.parse-782"><span class="linenos">782</span></a><span class="sd"> Returns:</span> +</span><span id="Parser.parse-783"><a href="#Parser.parse-783"><span class="linenos">783</span></a><span class="sd"> The list of syntax trees.</span> +</span><span id="Parser.parse-784"><a href="#Parser.parse-784"><span class="linenos">784</span></a><span class="sd"> """</span> +</span><span id="Parser.parse-785"><a href="#Parser.parse-785"><span class="linenos">785</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span> +</span><span id="Parser.parse-786"><a href="#Parser.parse-786"><span class="linenos">786</span></a> <span class="n">parse_method</span><span class="o">=</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="n">_parse_statement</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="o">=</span><span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="o">=</span><span class="n">sql</span> +</span><span id="Parser.parse-787"><a href="#Parser.parse-787"><span class="linenos">787</span></a> <span class="p">)</span> </span></pre></div> @@ -8218,39 +8365,39 @@ per parsed SQL statement.</p> </div> <a class="headerlink" href="#Parser.parse_into"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.parse_into-777"><a href="#Parser.parse_into-777"><span class="linenos">777</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> -</span><span id="Parser.parse_into-778"><a href="#Parser.parse_into-778"><span class="linenos">778</span></a> <span class="bp">self</span><span class="p">,</span> -</span><span id="Parser.parse_into-779"><a href="#Parser.parse_into-779"><span class="linenos">779</span></a> <span class="n">expression_types</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> -</span><span id="Parser.parse_into-780"><a href="#Parser.parse_into-780"><span class="linenos">780</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> -</span><span id="Parser.parse_into-781"><a href="#Parser.parse_into-781"><span class="linenos">781</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> -</span><span id="Parser.parse_into-782"><a href="#Parser.parse_into-782"><span class="linenos">782</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser.parse_into-783"><a href="#Parser.parse_into-783"><span class="linenos">783</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser.parse_into-784"><a href="#Parser.parse_into-784"><span class="linenos">784</span></a><span class="sd"> Parses a list of tokens into a given Expression type. If a collection of Expression</span> -</span><span id="Parser.parse_into-785"><a href="#Parser.parse_into-785"><span class="linenos">785</span></a><span class="sd"> types is given instead, this method will try to parse the token list into each one</span> -</span><span id="Parser.parse_into-786"><a href="#Parser.parse_into-786"><span class="linenos">786</span></a><span class="sd"> of them, stopping at the first for which the parsing succeeds.</span> -</span><span id="Parser.parse_into-787"><a href="#Parser.parse_into-787"><span class="linenos">787</span></a> -</span><span id="Parser.parse_into-788"><a href="#Parser.parse_into-788"><span class="linenos">788</span></a><span class="sd"> Args:</span> -</span><span id="Parser.parse_into-789"><a href="#Parser.parse_into-789"><span class="linenos">789</span></a><span class="sd"> expression_types: the expression type(s) to try and parse the token list into.</span> -</span><span id="Parser.parse_into-790"><a href="#Parser.parse_into-790"><span class="linenos">790</span></a><span class="sd"> raw_tokens: the list of tokens.</span> -</span><span id="Parser.parse_into-791"><a href="#Parser.parse_into-791"><span class="linenos">791</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> -</span><span id="Parser.parse_into-792"><a href="#Parser.parse_into-792"><span class="linenos">792</span></a> -</span><span id="Parser.parse_into-793"><a href="#Parser.parse_into-793"><span class="linenos">793</span></a><span class="sd"> Returns:</span> -</span><span id="Parser.parse_into-794"><a href="#Parser.parse_into-794"><span class="linenos">794</span></a><span class="sd"> The target Expression.</span> -</span><span id="Parser.parse_into-795"><a href="#Parser.parse_into-795"><span class="linenos">795</span></a><span class="sd"> """</span> -</span><span id="Parser.parse_into-796"><a href="#Parser.parse_into-796"><span class="linenos">796</span></a> <span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Parser.parse_into-797"><a href="#Parser.parse_into-797"><span class="linenos">797</span></a> <span class="k">for</span> <span class="n">expression_type</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">expression_types</span><span class="p">):</span> -</span><span id="Parser.parse_into-798"><a href="#Parser.parse_into-798"><span class="linenos">798</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPRESSION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression_type</span><span class="p">)</span> -</span><span id="Parser.parse_into-799"><a href="#Parser.parse_into-799"><span class="linenos">799</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span> -</span><span id="Parser.parse_into-800"><a href="#Parser.parse_into-800"><span class="linenos">800</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser registered for </span><span class="si">{</span><span class="n">expression_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Parser.parse_into-801"><a href="#Parser.parse_into-801"><span class="linenos">801</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Parser.parse_into-802"><a href="#Parser.parse_into-802"><span class="linenos">802</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span><span class="n">parser</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> -</span><span id="Parser.parse_into-803"><a href="#Parser.parse_into-803"><span class="linenos">803</span></a> <span class="k">except</span> <span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> -</span><span id="Parser.parse_into-804"><a href="#Parser.parse_into-804"><span class="linenos">804</span></a> <span class="n">e</span><span class="o">.</span><span class="n">errors</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"into_expression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression_type</span> -</span><span id="Parser.parse_into-805"><a href="#Parser.parse_into-805"><span class="linenos">805</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> -</span><span id="Parser.parse_into-806"><a href="#Parser.parse_into-806"><span class="linenos">806</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> -</span><span id="Parser.parse_into-807"><a href="#Parser.parse_into-807"><span class="linenos">807</span></a> <span class="sa">f</span><span class="s2">"Failed to parse into </span><span class="si">{</span><span class="n">expression_types</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Parser.parse_into-808"><a href="#Parser.parse_into-808"><span class="linenos">808</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="n">errors</span><span class="p">),</span> -</span><span id="Parser.parse_into-809"><a href="#Parser.parse_into-809"><span class="linenos">809</span></a> <span class="p">)</span> <span class="kn">from</span> <span class="nn">errors</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.parse_into-789"><a href="#Parser.parse_into-789"><span class="linenos">789</span></a> <span class="k">def</span> <span class="nf">parse_into</span><span class="p">(</span> +</span><span id="Parser.parse_into-790"><a href="#Parser.parse_into-790"><span class="linenos">790</span></a> <span class="bp">self</span><span class="p">,</span> +</span><span id="Parser.parse_into-791"><a href="#Parser.parse_into-791"><span class="linenos">791</span></a> <span class="n">expression_types</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">IntoType</span><span class="p">,</span> +</span><span id="Parser.parse_into-792"><a href="#Parser.parse_into-792"><span class="linenos">792</span></a> <span class="n">raw_tokens</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">Token</span><span class="p">],</span> +</span><span id="Parser.parse_into-793"><a href="#Parser.parse_into-793"><span class="linenos">793</span></a> <span class="n">sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> +</span><span id="Parser.parse_into-794"><a href="#Parser.parse_into-794"><span class="linenos">794</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="n">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="Parser.parse_into-795"><a href="#Parser.parse_into-795"><span class="linenos">795</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser.parse_into-796"><a href="#Parser.parse_into-796"><span class="linenos">796</span></a><span class="sd"> Parses a list of tokens into a given Expression type. If a collection of Expression</span> +</span><span id="Parser.parse_into-797"><a href="#Parser.parse_into-797"><span class="linenos">797</span></a><span class="sd"> types is given instead, this method will try to parse the token list into each one</span> +</span><span id="Parser.parse_into-798"><a href="#Parser.parse_into-798"><span class="linenos">798</span></a><span class="sd"> of them, stopping at the first for which the parsing succeeds.</span> +</span><span id="Parser.parse_into-799"><a href="#Parser.parse_into-799"><span class="linenos">799</span></a> +</span><span id="Parser.parse_into-800"><a href="#Parser.parse_into-800"><span class="linenos">800</span></a><span class="sd"> Args:</span> +</span><span id="Parser.parse_into-801"><a href="#Parser.parse_into-801"><span class="linenos">801</span></a><span class="sd"> expression_types: the expression type(s) to try and parse the token list into.</span> +</span><span id="Parser.parse_into-802"><a href="#Parser.parse_into-802"><span class="linenos">802</span></a><span class="sd"> raw_tokens: the list of tokens.</span> +</span><span id="Parser.parse_into-803"><a href="#Parser.parse_into-803"><span class="linenos">803</span></a><span class="sd"> sql: the original SQL string, used to produce helpful debug messages.</span> +</span><span id="Parser.parse_into-804"><a href="#Parser.parse_into-804"><span class="linenos">804</span></a> +</span><span id="Parser.parse_into-805"><a href="#Parser.parse_into-805"><span class="linenos">805</span></a><span class="sd"> Returns:</span> +</span><span id="Parser.parse_into-806"><a href="#Parser.parse_into-806"><span class="linenos">806</span></a><span class="sd"> The target Expression.</span> +</span><span id="Parser.parse_into-807"><a href="#Parser.parse_into-807"><span class="linenos">807</span></a><span class="sd"> """</span> +</span><span id="Parser.parse_into-808"><a href="#Parser.parse_into-808"><span class="linenos">808</span></a> <span class="n">errors</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Parser.parse_into-809"><a href="#Parser.parse_into-809"><span class="linenos">809</span></a> <span class="k">for</span> <span class="n">expression_type</span> <span class="ow">in</span> <span class="n">ensure_collection</span><span class="p">(</span><span class="n">expression_types</span><span class="p">):</span> +</span><span id="Parser.parse_into-810"><a href="#Parser.parse_into-810"><span class="linenos">810</span></a> <span class="n">parser</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">EXPRESSION_PARSERS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">expression_type</span><span class="p">)</span> +</span><span id="Parser.parse_into-811"><a href="#Parser.parse_into-811"><span class="linenos">811</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">parser</span><span class="p">:</span> +</span><span id="Parser.parse_into-812"><a href="#Parser.parse_into-812"><span class="linenos">812</span></a> <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"No parser registered for </span><span class="si">{</span><span class="n">expression_type</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Parser.parse_into-813"><a href="#Parser.parse_into-813"><span class="linenos">813</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Parser.parse_into-814"><a href="#Parser.parse_into-814"><span class="linenos">814</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_parse</span><span class="p">(</span><span class="n">parser</span><span class="p">,</span> <span class="n">raw_tokens</span><span class="p">,</span> <span class="n">sql</span><span class="p">)</span> +</span><span id="Parser.parse_into-815"><a href="#Parser.parse_into-815"><span class="linenos">815</span></a> <span class="k">except</span> <span class="n">ParseError</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span> +</span><span id="Parser.parse_into-816"><a href="#Parser.parse_into-816"><span class="linenos">816</span></a> <span class="n">e</span><span class="o">.</span><span class="n">errors</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s2">"into_expression"</span><span class="p">]</span> <span class="o">=</span> <span class="n">expression_type</span> +</span><span id="Parser.parse_into-817"><a href="#Parser.parse_into-817"><span class="linenos">817</span></a> <span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">e</span><span class="p">)</span> +</span><span id="Parser.parse_into-818"><a href="#Parser.parse_into-818"><span class="linenos">818</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> +</span><span id="Parser.parse_into-819"><a href="#Parser.parse_into-819"><span class="linenos">819</span></a> <span class="sa">f</span><span class="s2">"Failed to parse into </span><span class="si">{</span><span class="n">expression_types</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Parser.parse_into-820"><a href="#Parser.parse_into-820"><span class="linenos">820</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="n">errors</span><span class="p">),</span> +</span><span id="Parser.parse_into-821"><a href="#Parser.parse_into-821"><span class="linenos">821</span></a> <span class="p">)</span> <span class="kn">from</span> <span class="nn">errors</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> </span></pre></div> @@ -8286,18 +8433,18 @@ of them, stopping at the first for which the parsing succeeds.</p> </div> <a class="headerlink" href="#Parser.check_errors"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.check_errors-845"><a href="#Parser.check_errors-845"><span class="linenos">845</span></a> <span class="k">def</span> <span class="nf">check_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser.check_errors-846"><a href="#Parser.check_errors-846"><span class="linenos">846</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser.check_errors-847"><a href="#Parser.check_errors-847"><span class="linenos">847</span></a><span class="sd"> Logs or raises any found errors, depending on the chosen error level setting.</span> -</span><span id="Parser.check_errors-848"><a href="#Parser.check_errors-848"><span class="linenos">848</span></a><span class="sd"> """</span> -</span><span id="Parser.check_errors-849"><a href="#Parser.check_errors-849"><span class="linenos">849</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> -</span><span id="Parser.check_errors-850"><a href="#Parser.check_errors-850"><span class="linenos">850</span></a> <span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> -</span><span id="Parser.check_errors-851"><a href="#Parser.check_errors-851"><span class="linenos">851</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">))</span> -</span><span id="Parser.check_errors-852"><a href="#Parser.check_errors-852"><span class="linenos">852</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> -</span><span id="Parser.check_errors-853"><a href="#Parser.check_errors-853"><span class="linenos">853</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> -</span><span id="Parser.check_errors-854"><a href="#Parser.check_errors-854"><span class="linenos">854</span></a> <span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span><span class="p">),</span> -</span><span id="Parser.check_errors-855"><a href="#Parser.check_errors-855"><span class="linenos">855</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">),</span> -</span><span id="Parser.check_errors-856"><a href="#Parser.check_errors-856"><span class="linenos">856</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.check_errors-857"><a href="#Parser.check_errors-857"><span class="linenos">857</span></a> <span class="k">def</span> <span class="nf">check_errors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser.check_errors-858"><a href="#Parser.check_errors-858"><span class="linenos">858</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser.check_errors-859"><a href="#Parser.check_errors-859"><span class="linenos">859</span></a><span class="sd"> Logs or raises any found errors, depending on the chosen error level setting.</span> +</span><span id="Parser.check_errors-860"><a href="#Parser.check_errors-860"><span class="linenos">860</span></a><span class="sd"> """</span> +</span><span id="Parser.check_errors-861"><a href="#Parser.check_errors-861"><span class="linenos">861</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">WARN</span><span class="p">:</span> +</span><span id="Parser.check_errors-862"><a href="#Parser.check_errors-862"><span class="linenos">862</span></a> <span class="k">for</span> <span class="n">error</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> +</span><span id="Parser.check_errors-863"><a href="#Parser.check_errors-863"><span class="linenos">863</span></a> <span class="n">logger</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">error</span><span class="p">))</span> +</span><span id="Parser.check_errors-864"><a href="#Parser.check_errors-864"><span class="linenos">864</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">RAISE</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">:</span> +</span><span id="Parser.check_errors-865"><a href="#Parser.check_errors-865"><span class="linenos">865</span></a> <span class="k">raise</span> <span class="n">ParseError</span><span class="p">(</span> +</span><span id="Parser.check_errors-866"><a href="#Parser.check_errors-866"><span class="linenos">866</span></a> <span class="n">concat_messages</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">max_errors</span><span class="p">),</span> +</span><span id="Parser.check_errors-867"><a href="#Parser.check_errors-867"><span class="linenos">867</span></a> <span class="n">errors</span><span class="o">=</span><span class="n">merge_errors</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="p">),</span> +</span><span id="Parser.check_errors-868"><a href="#Parser.check_errors-868"><span class="linenos">868</span></a> <span class="p">)</span> </span></pre></div> @@ -8317,33 +8464,33 @@ of them, stopping at the first for which the parsing succeeds.</p> </div> <a class="headerlink" href="#Parser.raise_error"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.raise_error-858"><a href="#Parser.raise_error-858"><span class="linenos">858</span></a> <span class="k">def</span> <span class="nf">raise_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser.raise_error-859"><a href="#Parser.raise_error-859"><span class="linenos">859</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser.raise_error-860"><a href="#Parser.raise_error-860"><span class="linenos">860</span></a><span class="sd"> Appends an error in the list of recorded errors or raises it, depending on the chosen</span> -</span><span id="Parser.raise_error-861"><a href="#Parser.raise_error-861"><span class="linenos">861</span></a><span class="sd"> error level setting.</span> -</span><span id="Parser.raise_error-862"><a href="#Parser.raise_error-862"><span class="linenos">862</span></a><span class="sd"> """</span> -</span><span id="Parser.raise_error-863"><a href="#Parser.raise_error-863"><span class="linenos">863</span></a> <span class="n">token</span> <span class="o">=</span> <span class="n">token</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="ow">or</span> <span class="n">Token</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="Parser.raise_error-864"><a href="#Parser.raise_error-864"><span class="linenos">864</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> -</span><span id="Parser.raise_error-865"><a href="#Parser.raise_error-865"><span class="linenos">865</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> -</span><span id="Parser.raise_error-866"><a href="#Parser.raise_error-866"><span class="linenos">866</span></a> <span class="n">start_context</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="nb">max</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span> <span class="n">start</span><span class="p">]</span> -</span><span id="Parser.raise_error-867"><a href="#Parser.raise_error-867"><span class="linenos">867</span></a> <span class="n">highlight</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">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span> -</span><span id="Parser.raise_error-868"><a href="#Parser.raise_error-868"><span class="linenos">868</span></a> <span class="n">end_context</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">end</span> <span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">]</span> -</span><span id="Parser.raise_error-869"><a href="#Parser.raise_error-869"><span class="linenos">869</span></a> -</span><span id="Parser.raise_error-870"><a href="#Parser.raise_error-870"><span class="linenos">870</span></a> <span class="n">error</span> <span class="o">=</span> <span class="n">ParseError</span><span class="o">.</span><span class="n">new</span><span class="p">(</span> -</span><span id="Parser.raise_error-871"><a href="#Parser.raise_error-871"><span class="linenos">871</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">. Line </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="si">}</span><span class="s2">, Col: </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">"</span> -</span><span id="Parser.raise_error-872"><a href="#Parser.raise_error-872"><span class="linenos">872</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">start_context</span><span class="si">}</span><span class="se">\033</span><span class="s2">[4m</span><span class="si">{</span><span class="n">highlight</span><span class="si">}</span><span class="se">\033</span><span class="s2">[0m</span><span class="si">{</span><span class="n">end_context</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> -</span><span id="Parser.raise_error-873"><a href="#Parser.raise_error-873"><span class="linenos">873</span></a> <span class="n">description</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> -</span><span id="Parser.raise_error-874"><a href="#Parser.raise_error-874"><span class="linenos">874</span></a> <span class="n">line</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> -</span><span id="Parser.raise_error-875"><a href="#Parser.raise_error-875"><span class="linenos">875</span></a> <span class="n">col</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">,</span> -</span><span id="Parser.raise_error-876"><a href="#Parser.raise_error-876"><span class="linenos">876</span></a> <span class="n">start_context</span><span class="o">=</span><span class="n">start_context</span><span class="p">,</span> -</span><span id="Parser.raise_error-877"><a href="#Parser.raise_error-877"><span class="linenos">877</span></a> <span class="n">highlight</span><span class="o">=</span><span class="n">highlight</span><span class="p">,</span> -</span><span id="Parser.raise_error-878"><a href="#Parser.raise_error-878"><span class="linenos">878</span></a> <span class="n">end_context</span><span class="o">=</span><span class="n">end_context</span><span class="p">,</span> -</span><span id="Parser.raise_error-879"><a href="#Parser.raise_error-879"><span class="linenos">879</span></a> <span class="p">)</span> -</span><span id="Parser.raise_error-880"><a href="#Parser.raise_error-880"><span class="linenos">880</span></a> -</span><span id="Parser.raise_error-881"><a href="#Parser.raise_error-881"><span class="linenos">881</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> -</span><span id="Parser.raise_error-882"><a href="#Parser.raise_error-882"><span class="linenos">882</span></a> <span class="k">raise</span> <span class="n">error</span> -</span><span id="Parser.raise_error-883"><a href="#Parser.raise_error-883"><span class="linenos">883</span></a> -</span><span id="Parser.raise_error-884"><a href="#Parser.raise_error-884"><span class="linenos">884</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.raise_error-870"><a href="#Parser.raise_error-870"><span class="linenos">870</span></a> <span class="k">def</span> <span class="nf">raise_error</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">message</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">Token</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser.raise_error-871"><a href="#Parser.raise_error-871"><span class="linenos">871</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser.raise_error-872"><a href="#Parser.raise_error-872"><span class="linenos">872</span></a><span class="sd"> Appends an error in the list of recorded errors or raises it, depending on the chosen</span> +</span><span id="Parser.raise_error-873"><a href="#Parser.raise_error-873"><span class="linenos">873</span></a><span class="sd"> error level setting.</span> +</span><span id="Parser.raise_error-874"><a href="#Parser.raise_error-874"><span class="linenos">874</span></a><span class="sd"> """</span> +</span><span id="Parser.raise_error-875"><a href="#Parser.raise_error-875"><span class="linenos">875</span></a> <span class="n">token</span> <span class="o">=</span> <span class="n">token</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_curr</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev</span> <span class="ow">or</span> <span class="n">Token</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="Parser.raise_error-876"><a href="#Parser.raise_error-876"><span class="linenos">876</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_find_token</span><span class="p">(</span><span class="n">token</span><span class="p">)</span> +</span><span id="Parser.raise_error-877"><a href="#Parser.raise_error-877"><span class="linenos">877</span></a> <span class="n">end</span> <span class="o">=</span> <span class="n">start</span> <span class="o">+</span> <span class="nb">len</span><span class="p">(</span><span class="n">token</span><span class="o">.</span><span class="n">text</span><span class="p">)</span> +</span><span id="Parser.raise_error-878"><a href="#Parser.raise_error-878"><span class="linenos">878</span></a> <span class="n">start_context</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="nb">max</span><span class="p">(</span><span class="n">start</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span> <span class="p">:</span> <span class="n">start</span><span class="p">]</span> +</span><span id="Parser.raise_error-879"><a href="#Parser.raise_error-879"><span class="linenos">879</span></a> <span class="n">highlight</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">start</span><span class="p">:</span><span class="n">end</span><span class="p">]</span> +</span><span id="Parser.raise_error-880"><a href="#Parser.raise_error-880"><span class="linenos">880</span></a> <span class="n">end_context</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">end</span> <span class="p">:</span> <span class="n">end</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_message_context</span><span class="p">]</span> +</span><span id="Parser.raise_error-881"><a href="#Parser.raise_error-881"><span class="linenos">881</span></a> +</span><span id="Parser.raise_error-882"><a href="#Parser.raise_error-882"><span class="linenos">882</span></a> <span class="n">error</span> <span class="o">=</span> <span class="n">ParseError</span><span class="o">.</span><span class="n">new</span><span class="p">(</span> +</span><span id="Parser.raise_error-883"><a href="#Parser.raise_error-883"><span class="linenos">883</span></a> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">. Line </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="si">}</span><span class="s2">, Col: </span><span class="si">{</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="si">}</span><span class="s2">.</span><span class="se">\n</span><span class="s2">"</span> +</span><span id="Parser.raise_error-884"><a href="#Parser.raise_error-884"><span class="linenos">884</span></a> <span class="sa">f</span><span class="s2">" </span><span class="si">{</span><span class="n">start_context</span><span class="si">}</span><span class="se">\033</span><span class="s2">[4m</span><span class="si">{</span><span class="n">highlight</span><span class="si">}</span><span class="se">\033</span><span class="s2">[0m</span><span class="si">{</span><span class="n">end_context</span><span class="si">}</span><span class="s2">"</span><span class="p">,</span> +</span><span id="Parser.raise_error-885"><a href="#Parser.raise_error-885"><span class="linenos">885</span></a> <span class="n">description</span><span class="o">=</span><span class="n">message</span><span class="p">,</span> +</span><span id="Parser.raise_error-886"><a href="#Parser.raise_error-886"><span class="linenos">886</span></a> <span class="n">line</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">line</span><span class="p">,</span> +</span><span id="Parser.raise_error-887"><a href="#Parser.raise_error-887"><span class="linenos">887</span></a> <span class="n">col</span><span class="o">=</span><span class="n">token</span><span class="o">.</span><span class="n">col</span><span class="p">,</span> +</span><span id="Parser.raise_error-888"><a href="#Parser.raise_error-888"><span class="linenos">888</span></a> <span class="n">start_context</span><span class="o">=</span><span class="n">start_context</span><span class="p">,</span> +</span><span id="Parser.raise_error-889"><a href="#Parser.raise_error-889"><span class="linenos">889</span></a> <span class="n">highlight</span><span class="o">=</span><span class="n">highlight</span><span class="p">,</span> +</span><span id="Parser.raise_error-890"><a href="#Parser.raise_error-890"><span class="linenos">890</span></a> <span class="n">end_context</span><span class="o">=</span><span class="n">end_context</span><span class="p">,</span> +</span><span id="Parser.raise_error-891"><a href="#Parser.raise_error-891"><span class="linenos">891</span></a> <span class="p">)</span> +</span><span id="Parser.raise_error-892"><a href="#Parser.raise_error-892"><span class="linenos">892</span></a> +</span><span id="Parser.raise_error-893"><a href="#Parser.raise_error-893"><span class="linenos">893</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IMMEDIATE</span><span class="p">:</span> +</span><span id="Parser.raise_error-894"><a href="#Parser.raise_error-894"><span class="linenos">894</span></a> <span class="k">raise</span> <span class="n">error</span> +</span><span id="Parser.raise_error-895"><a href="#Parser.raise_error-895"><span class="linenos">895</span></a> +</span><span id="Parser.raise_error-896"><a href="#Parser.raise_error-896"><span class="linenos">896</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">errors</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">error</span><span class="p">)</span> </span></pre></div> @@ -8364,28 +8511,28 @@ error level setting.</p> </div> <a class="headerlink" href="#Parser.expression"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.expression-886"><a href="#Parser.expression-886"><span class="linenos">886</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span> -</span><span id="Parser.expression-887"><a href="#Parser.expression-887"><span class="linenos">887</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> -</span><span id="Parser.expression-888"><a href="#Parser.expression-888"><span class="linenos">888</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="Parser.expression-889"><a href="#Parser.expression-889"><span class="linenos">889</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser.expression-890"><a href="#Parser.expression-890"><span class="linenos">890</span></a><span class="sd"> Creates a new, validated Expression.</span> -</span><span id="Parser.expression-891"><a href="#Parser.expression-891"><span class="linenos">891</span></a> -</span><span id="Parser.expression-892"><a href="#Parser.expression-892"><span class="linenos">892</span></a><span class="sd"> Args:</span> -</span><span id="Parser.expression-893"><a href="#Parser.expression-893"><span class="linenos">893</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> -</span><span id="Parser.expression-894"><a href="#Parser.expression-894"><span class="linenos">894</span></a><span class="sd"> comments: an optional list of comments to attach to the expression.</span> -</span><span id="Parser.expression-895"><a href="#Parser.expression-895"><span class="linenos">895</span></a><span class="sd"> kwargs: the arguments to set for the expression along with their respective values.</span> -</span><span id="Parser.expression-896"><a href="#Parser.expression-896"><span class="linenos">896</span></a> -</span><span id="Parser.expression-897"><a href="#Parser.expression-897"><span class="linenos">897</span></a><span class="sd"> Returns:</span> -</span><span id="Parser.expression-898"><a href="#Parser.expression-898"><span class="linenos">898</span></a><span class="sd"> The target expression.</span> -</span><span id="Parser.expression-899"><a href="#Parser.expression-899"><span class="linenos">899</span></a><span class="sd"> """</span> -</span><span id="Parser.expression-900"><a href="#Parser.expression-900"><span class="linenos">900</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">exp_class</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="Parser.expression-901"><a href="#Parser.expression-901"><span class="linenos">901</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> -</span><span id="Parser.expression-902"><a href="#Parser.expression-902"><span class="linenos">902</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> -</span><span id="Parser.expression-903"><a href="#Parser.expression-903"><span class="linenos">903</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser.expression-904"><a href="#Parser.expression-904"><span class="linenos">904</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span> -</span><span id="Parser.expression-905"><a href="#Parser.expression-905"><span class="linenos">905</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> -</span><span id="Parser.expression-906"><a href="#Parser.expression-906"><span class="linenos">906</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span> -</span><span id="Parser.expression-907"><a href="#Parser.expression-907"><span class="linenos">907</span></a> <span class="k">return</span> <span class="n">instance</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.expression-898"><a href="#Parser.expression-898"><span class="linenos">898</span></a> <span class="k">def</span> <span class="nf">expression</span><span class="p">(</span> +</span><span id="Parser.expression-899"><a href="#Parser.expression-899"><span class="linenos">899</span></a> <span class="bp">self</span><span class="p">,</span> <span class="n">exp_class</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">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="n">comments</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">[</span><span class="nb">str</span><span class="p">]]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span> +</span><span id="Parser.expression-900"><a href="#Parser.expression-900"><span class="linenos">900</span></a> <span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="Parser.expression-901"><a href="#Parser.expression-901"><span class="linenos">901</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser.expression-902"><a href="#Parser.expression-902"><span class="linenos">902</span></a><span class="sd"> Creates a new, validated Expression.</span> +</span><span id="Parser.expression-903"><a href="#Parser.expression-903"><span class="linenos">903</span></a> +</span><span id="Parser.expression-904"><a href="#Parser.expression-904"><span class="linenos">904</span></a><span class="sd"> Args:</span> +</span><span id="Parser.expression-905"><a href="#Parser.expression-905"><span class="linenos">905</span></a><span class="sd"> exp_class: the expression class to instantiate.</span> +</span><span id="Parser.expression-906"><a href="#Parser.expression-906"><span class="linenos">906</span></a><span class="sd"> comments: an optional list of comments to attach to the expression.</span> +</span><span id="Parser.expression-907"><a href="#Parser.expression-907"><span class="linenos">907</span></a><span class="sd"> kwargs: the arguments to set for the expression along with their respective values.</span> +</span><span id="Parser.expression-908"><a href="#Parser.expression-908"><span class="linenos">908</span></a> +</span><span id="Parser.expression-909"><a href="#Parser.expression-909"><span class="linenos">909</span></a><span class="sd"> Returns:</span> +</span><span id="Parser.expression-910"><a href="#Parser.expression-910"><span class="linenos">910</span></a><span class="sd"> The target expression.</span> +</span><span id="Parser.expression-911"><a href="#Parser.expression-911"><span class="linenos">911</span></a><span class="sd"> """</span> +</span><span id="Parser.expression-912"><a href="#Parser.expression-912"><span class="linenos">912</span></a> <span class="n">instance</span> <span class="o">=</span> <span class="n">exp_class</span><span class="p">(</span><span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="Parser.expression-913"><a href="#Parser.expression-913"><span class="linenos">913</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span><span class="p">:</span> +</span><span id="Parser.expression-914"><a href="#Parser.expression-914"><span class="linenos">914</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> +</span><span id="Parser.expression-915"><a href="#Parser.expression-915"><span class="linenos">915</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_comments</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser.expression-916"><a href="#Parser.expression-916"><span class="linenos">916</span></a> <span class="k">if</span> <span class="n">comments</span><span class="p">:</span> +</span><span id="Parser.expression-917"><a href="#Parser.expression-917"><span class="linenos">917</span></a> <span class="n">instance</span><span class="o">.</span><span class="n">comments</span> <span class="o">=</span> <span class="n">comments</span> +</span><span id="Parser.expression-918"><a href="#Parser.expression-918"><span class="linenos">918</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">validate_expression</span><span class="p">(</span><span class="n">instance</span><span class="p">)</span> +</span><span id="Parser.expression-919"><a href="#Parser.expression-919"><span class="linenos">919</span></a> <span class="k">return</span> <span class="n">instance</span> </span></pre></div> @@ -8419,22 +8566,22 @@ error level setting.</p> </div> <a class="headerlink" href="#Parser.validate_expression"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.validate_expression-909"><a href="#Parser.validate_expression-909"><span class="linenos">909</span></a> <span class="k">def</span> <span class="nf">validate_expression</span><span class="p">(</span> -</span><span id="Parser.validate_expression-910"><a href="#Parser.validate_expression-910"><span class="linenos">910</span></a> <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">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Parser.validate_expression-911"><a href="#Parser.validate_expression-911"><span class="linenos">911</span></a> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Parser.validate_expression-912"><a href="#Parser.validate_expression-912"><span class="linenos">912</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="Parser.validate_expression-913"><a href="#Parser.validate_expression-913"><span class="linenos">913</span></a><span class="sd"> Validates an already instantiated expression, making sure that all its mandatory arguments</span> -</span><span id="Parser.validate_expression-914"><a href="#Parser.validate_expression-914"><span class="linenos">914</span></a><span class="sd"> are set.</span> -</span><span id="Parser.validate_expression-915"><a href="#Parser.validate_expression-915"><span class="linenos">915</span></a> -</span><span id="Parser.validate_expression-916"><a href="#Parser.validate_expression-916"><span class="linenos">916</span></a><span class="sd"> Args:</span> -</span><span id="Parser.validate_expression-917"><a href="#Parser.validate_expression-917"><span class="linenos">917</span></a><span class="sd"> expression: the expression to validate.</span> -</span><span id="Parser.validate_expression-918"><a href="#Parser.validate_expression-918"><span class="linenos">918</span></a><span class="sd"> args: an optional list of items that was used to instantiate the expression, if it's a Func.</span> -</span><span id="Parser.validate_expression-919"><a href="#Parser.validate_expression-919"><span class="linenos">919</span></a><span class="sd"> """</span> -</span><span id="Parser.validate_expression-920"><a href="#Parser.validate_expression-920"><span class="linenos">920</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> -</span><span id="Parser.validate_expression-921"><a href="#Parser.validate_expression-921"><span class="linenos">921</span></a> <span class="k">return</span> -</span><span id="Parser.validate_expression-922"><a href="#Parser.validate_expression-922"><span class="linenos">922</span></a> -</span><span id="Parser.validate_expression-923"><a href="#Parser.validate_expression-923"><span class="linenos">923</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> -</span><span id="Parser.validate_expression-924"><a href="#Parser.validate_expression-924"><span class="linenos">924</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="Parser.validate_expression-921"><a href="#Parser.validate_expression-921"><span class="linenos">921</span></a> <span class="k">def</span> <span class="nf">validate_expression</span><span class="p">(</span> +</span><span id="Parser.validate_expression-922"><a href="#Parser.validate_expression-922"><span class="linenos">922</span></a> <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">Expression</span><span class="p">,</span> <span class="n">args</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Optional</span><span class="p">[</span><span class="n">t</span><span class="o">.</span><span class="n">List</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Parser.validate_expression-923"><a href="#Parser.validate_expression-923"><span class="linenos">923</span></a> <span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Parser.validate_expression-924"><a href="#Parser.validate_expression-924"><span class="linenos">924</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="Parser.validate_expression-925"><a href="#Parser.validate_expression-925"><span class="linenos">925</span></a><span class="sd"> Validates an already instantiated expression, making sure that all its mandatory arguments</span> +</span><span id="Parser.validate_expression-926"><a href="#Parser.validate_expression-926"><span class="linenos">926</span></a><span class="sd"> are set.</span> +</span><span id="Parser.validate_expression-927"><a href="#Parser.validate_expression-927"><span class="linenos">927</span></a> +</span><span id="Parser.validate_expression-928"><a href="#Parser.validate_expression-928"><span class="linenos">928</span></a><span class="sd"> Args:</span> +</span><span id="Parser.validate_expression-929"><a href="#Parser.validate_expression-929"><span class="linenos">929</span></a><span class="sd"> expression: the expression to validate.</span> +</span><span id="Parser.validate_expression-930"><a href="#Parser.validate_expression-930"><span class="linenos">930</span></a><span class="sd"> args: an optional list of items that was used to instantiate the expression, if it's a Func.</span> +</span><span id="Parser.validate_expression-931"><a href="#Parser.validate_expression-931"><span class="linenos">931</span></a><span class="sd"> """</span> +</span><span id="Parser.validate_expression-932"><a href="#Parser.validate_expression-932"><span class="linenos">932</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">error_level</span> <span class="o">==</span> <span class="n">ErrorLevel</span><span class="o">.</span><span class="n">IGNORE</span><span class="p">:</span> +</span><span id="Parser.validate_expression-933"><a href="#Parser.validate_expression-933"><span class="linenos">933</span></a> <span class="k">return</span> +</span><span id="Parser.validate_expression-934"><a href="#Parser.validate_expression-934"><span class="linenos">934</span></a> +</span><span id="Parser.validate_expression-935"><a href="#Parser.validate_expression-935"><span class="linenos">935</span></a> <span class="k">for</span> <span class="n">error_message</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">error_messages</span><span class="p">(</span><span class="n">args</span><span class="p">):</span> +</span><span id="Parser.validate_expression-936"><a href="#Parser.validate_expression-936"><span class="linenos">936</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">raise_error</span><span class="p">(</span><span class="n">error_message</span><span class="p">)</span> </span></pre></div> diff --git a/docs/sqlglot/tokens.html b/docs/sqlglot/tokens.html index 097eebb..125da50 100644 --- a/docs/sqlglot/tokens.html +++ b/docs/sqlglot/tokens.html @@ -1481,230 +1481,230 @@ </span><span id="L-502"><a href="#L-502"><span class="linenos"> 502</span></a> <span class="s2">"CUBE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CUBE</span><span class="p">,</span> </span><span id="L-503"><a href="#L-503"><span class="linenos"> 503</span></a> <span class="s2">"CURRENT_DATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">,</span> </span><span id="L-504"><a href="#L-504"><span class="linenos"> 504</span></a> <span class="s2">"CURRENT ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_ROW</span><span class="p">,</span> -</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> -</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="s2">"DATABASE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> -</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="s2">"DEFAULT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> -</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="s2">"DELETE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> -</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="s2">"DESC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">,</span> -</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="s2">"DESCRIBE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> -</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> <span class="s2">"DISTINCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT</span><span class="p">,</span> -</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="s2">"DISTINCT FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT_FROM</span><span class="p">,</span> -</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="s2">"DISTRIBUTE BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> -</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="s2">"DIV"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> -</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="s2">"DROP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> -</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="s2">"ELSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ELSE</span><span class="p">,</span> -</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="s2">"END"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> -</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="s2">"ESCAPE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> -</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="s2">"EXCEPT"</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-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="s2">"EXECUTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> -</span><span id="L-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="s2">"EXISTS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">,</span> -</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="s2">"FALSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> -</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="s2">"FETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> -</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="s2">"FILTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> -</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> <span class="s2">"FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> -</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="s2">"FULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> -</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="s2">"FUNCTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> -</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="s2">"FOLLOWING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> -</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="s2">"FOR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOR</span><span class="p">,</span> -</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="s2">"FOREIGN KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">,</span> -</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> -</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="s2">"FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> -</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="s2">"GLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">,</span> -</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="s2">"GROUP BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUP_BY</span><span class="p">,</span> -</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="s2">"GROUPING SETS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUPING_SETS</span><span class="p">,</span> -</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="s2">"HAVING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HAVING</span><span class="p">,</span> -</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="s2">"IF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> -</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="s2">"ILIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> -</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="s2">"IGNORE NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IGNORE_NULLS</span><span class="p">,</span> -</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="s2">"IN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">,</span> -</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> -</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="s2">"INET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> -</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="s2">"INNER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> -</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="s2">"INSERT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</span><span class="p">,</span> -</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="s2">"INTERVAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> -</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="s2">"INTERSECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> -</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="s2">"INTO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> -</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="s2">"IS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">,</span> -</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> -</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="s2">"JOIN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN</span><span class="p">,</span> -</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="s2">"LATERAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LATERAL</span><span class="p">,</span> -</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="s2">"LAZY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> -</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="s2">"LEADING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> -</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="s2">"LEFT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="s2">"LIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> -</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="s2">"LIMIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">,</span> -</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="s2">"LOAD DATA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</span><span class="p">,</span> -</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="s2">"LOCAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> -</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="s2">"MATERIALIZED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> -</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="s2">"MERGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> -</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="s2">"NATURAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> -</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="s2">"NEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> -</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="s2">"NO ACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NO_ACTION</span><span class="p">,</span> -</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> <span class="s2">"NOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</span><span class="p">,</span> -</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="s2">"NOTNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOTNULL</span><span class="p">,</span> -</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="s2">"NULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> -</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a> <span class="s2">"NULLS FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_FIRST</span><span class="p">,</span> -</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="s2">"NULLS LAST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_LAST</span><span class="p">,</span> -</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="s2">"OBJECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> -</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="s2">"OFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="s2">"ON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ON</span><span class="p">,</span> -</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="s2">"ONLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> -</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="s2">"OPTIONS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> -</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="s2">"OR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> -</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="s2">"ORDER BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDER_BY</span><span class="p">,</span> -</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="s2">"ORDINALITY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> -</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="s2">"OUTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> -</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="s2">"OUT OF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUT_OF</span><span class="p">,</span> -</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="s2">"OVER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVER</span><span class="p">,</span> -</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> <span class="s2">"OVERLAPS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">,</span> -</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="s2">"OVERWRITE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERWRITE</span><span class="p">,</span> -</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="s2">"PARTITION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION</span><span class="p">,</span> -</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="s2">"PARTITION BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> -</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITIONED BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> -</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> -</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="s2">"PERCENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> -</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="s2">"PIVOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> -</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="s2">"PRECEDING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> -</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="s2">"PRIMARY KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> -</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="s2">"PROCEDURE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="s2">"QUALIFY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">QUALIFY</span><span class="p">,</span> -</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="s2">"RANGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> -</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="s2">"RECURSIVE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RECURSIVE</span><span class="p">,</span> -</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="s2">"REGEXP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="s2">"REPLACE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="s2">"RESPECT NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RESPECT_NULLS</span><span class="p">,</span> -</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="s2">"REFERENCES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> -</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="s2">"RIGHT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="s2">"ROLLBACK"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span><span class="p">,</span> -</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="s2">"ROLLUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLUP</span><span class="p">,</span> -</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> -</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="s2">"ROWS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> -</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="s2">"SCHEMA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> -</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="s2">"SEED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> -</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="s2">"SELECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> -</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> <span class="s2">"SEMI"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> -</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="s2">"SET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> -</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> <span class="s2">"SHOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> -</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="s2">"SIMILAR TO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">,</span> -</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="s2">"SOME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">,</span> -</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> -</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="s2">"SORT BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> -</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="s2">"TABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="s2">"TABLESAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> -</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="s2">"TEMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> -</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="s2">"TEMPORARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> -</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="s2">"THEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">THEN</span><span class="p">,</span> -</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="s2">"TRUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> -</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="s2">"TRAILING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> -</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="s2">"UNBOUNDED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> -</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="s2">"UNION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> -</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="s2">"UNLOGGED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> -</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> -</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="s2">"UNPIVOT"</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-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="s2">"UPDATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">,</span> -</span><span id="L-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="s2">"USE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</span><span class="p">,</span> -</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="s2">"USING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USING</span><span class="p">,</span> -</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="s2">"VALUES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> -</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="s2">"VIEW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> -</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="s2">"VOLATILE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="s2">"WHEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHEN</span><span class="p">,</span> -</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="s2">"WHERE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHERE</span><span class="p">,</span> -</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="s2">"WINDOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="s2">"WITH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> -</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="s2">"WITH TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_TIME_ZONE</span><span class="p">,</span> -</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="s2">"WITH LOCAL TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_LOCAL_TIME_ZONE</span><span class="p">,</span> -</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="s2">"WITHIN GROUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHIN_GROUP</span><span class="p">,</span> -</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="s2">"WITHOUT TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHOUT_TIME_ZONE</span><span class="p">,</span> -</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="s2">"APPLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> -</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="s2">"ARRAY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="s2">"BIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="s2">"BOOL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="s2">"BOOLEAN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="s2">"BYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="s2">"TINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="s2">"SHORT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="s2">"SMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="s2">"INT2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="s2">"INTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="s2">"INT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> <span class="s2">"INT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="s2">"LONG"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> <span class="s2">"BIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="s2">"INT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="s2">"DECIMAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> -</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="s2">"NULLABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> -</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="s2">"NUMBER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="s2">"FIXED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="s2">"FLOAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="s2">"FLOAT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a> <span class="s2">"FLOAT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a> <span class="s2">"DOUBLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="s2">"DOUBLE PRECISION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="s2">"JSON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> -</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="s2">"CHARACTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="s2">"NCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="s2">"VARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="s2">"NVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="s2">"STR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="s2">"TEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="s2">"CLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="s2">"LONGVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="s2">"BINARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> -</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="s2">"BLOB"</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-683"><a href="#L-683"><span class="linenos"> 683</span></a> <span class="s2">"BYTEA"</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-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="s2">"VARBINARY"</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-685"><a href="#L-685"><span class="linenos"> 685</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> -</span><span id="L-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="s2">"TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="s2">"TIMESTAMPTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> <span class="s2">"TIMESTAMPLTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a> <span class="s2">"DATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="s2">"DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="s2">"UNIQUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> -</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> <span class="s2">"STRUCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="s2">"VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="s2">"ALTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</span><span class="p">,</span> -</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="s2">"ALTER AGGREGATE"</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-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="s2">"ALTER DEFAULT"</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-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="s2">"ALTER DOMAIN"</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-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="s2">"ALTER ROLE"</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-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="s2">"ALTER RULE"</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-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="s2">"ALTER SEQUENCE"</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-701"><a href="#L-701"><span class="linenos"> 701</span></a> <span class="s2">"ALTER TYPE"</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-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="s2">"ALTER USER"</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-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="s2">"ALTER VIEW"</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-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="s2">"ANALYZE"</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-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="s2">"CALL"</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-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> -</span><span id="L-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="s2">"COPY"</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-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="s2">"EXPLAIN"</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-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="s2">"GRANT"</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-710"><a href="#L-710"><span class="linenos"> 710</span></a> <span class="s2">"OPTIMIZE"</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-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="s2">"PREPARE"</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-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="s2">"TRUNCATE"</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-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="s2">"VACUUM"</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-714"><a href="#L-714"><span class="linenos"> 714</span></a> <span class="p">}</span> -</span><span id="L-715"><a href="#L-715"><span class="linenos"> 715</span></a> -</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> <span class="n">WHITE_SPACE</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> <span class="s2">" "</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> -</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a> <span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> -</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> -</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> <span class="s2">"</span><span class="se">\r</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> -</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="s2">"</span><span class="se">\r\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> -</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a> <span class="p">}</span> -</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> -</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> -</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> -</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> -</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> +</span><span id="L-505"><a href="#L-505"><span class="linenos"> 505</span></a> <span class="s2">"CURRENT_TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> +</span><span id="L-506"><a href="#L-506"><span class="linenos"> 506</span></a> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> +</span><span id="L-507"><a href="#L-507"><span class="linenos"> 507</span></a> <span class="s2">"DATABASE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> +</span><span id="L-508"><a href="#L-508"><span class="linenos"> 508</span></a> <span class="s2">"DEFAULT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> +</span><span id="L-509"><a href="#L-509"><span class="linenos"> 509</span></a> <span class="s2">"DELETE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> +</span><span id="L-510"><a href="#L-510"><span class="linenos"> 510</span></a> <span class="s2">"DESC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">,</span> +</span><span id="L-511"><a href="#L-511"><span class="linenos"> 511</span></a> <span class="s2">"DESCRIBE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> +</span><span id="L-512"><a href="#L-512"><span class="linenos"> 512</span></a> <span class="s2">"DISTINCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT</span><span class="p">,</span> +</span><span id="L-513"><a href="#L-513"><span class="linenos"> 513</span></a> <span class="s2">"DISTINCT FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT_FROM</span><span class="p">,</span> +</span><span id="L-514"><a href="#L-514"><span class="linenos"> 514</span></a> <span class="s2">"DISTRIBUTE BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> +</span><span id="L-515"><a href="#L-515"><span class="linenos"> 515</span></a> <span class="s2">"DIV"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> +</span><span id="L-516"><a href="#L-516"><span class="linenos"> 516</span></a> <span class="s2">"DROP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> +</span><span id="L-517"><a href="#L-517"><span class="linenos"> 517</span></a> <span class="s2">"ELSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ELSE</span><span class="p">,</span> +</span><span id="L-518"><a href="#L-518"><span class="linenos"> 518</span></a> <span class="s2">"END"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> +</span><span id="L-519"><a href="#L-519"><span class="linenos"> 519</span></a> <span class="s2">"ESCAPE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> +</span><span id="L-520"><a href="#L-520"><span class="linenos"> 520</span></a> <span class="s2">"EXCEPT"</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-521"><a href="#L-521"><span class="linenos"> 521</span></a> <span class="s2">"EXECUTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> +</span><span id="L-522"><a href="#L-522"><span class="linenos"> 522</span></a> <span class="s2">"EXISTS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">,</span> +</span><span id="L-523"><a href="#L-523"><span class="linenos"> 523</span></a> <span class="s2">"FALSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> +</span><span id="L-524"><a href="#L-524"><span class="linenos"> 524</span></a> <span class="s2">"FETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> +</span><span id="L-525"><a href="#L-525"><span class="linenos"> 525</span></a> <span class="s2">"FILTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> +</span><span id="L-526"><a href="#L-526"><span class="linenos"> 526</span></a> <span class="s2">"FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> +</span><span id="L-527"><a href="#L-527"><span class="linenos"> 527</span></a> <span class="s2">"FULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> +</span><span id="L-528"><a href="#L-528"><span class="linenos"> 528</span></a> <span class="s2">"FUNCTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> +</span><span id="L-529"><a href="#L-529"><span class="linenos"> 529</span></a> <span class="s2">"FOLLOWING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> +</span><span id="L-530"><a href="#L-530"><span class="linenos"> 530</span></a> <span class="s2">"FOR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOR</span><span class="p">,</span> +</span><span id="L-531"><a href="#L-531"><span class="linenos"> 531</span></a> <span class="s2">"FOREIGN KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">,</span> +</span><span id="L-532"><a href="#L-532"><span class="linenos"> 532</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> +</span><span id="L-533"><a href="#L-533"><span class="linenos"> 533</span></a> <span class="s2">"FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> +</span><span id="L-534"><a href="#L-534"><span class="linenos"> 534</span></a> <span class="s2">"GLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">,</span> +</span><span id="L-535"><a href="#L-535"><span class="linenos"> 535</span></a> <span class="s2">"GROUP BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUP_BY</span><span class="p">,</span> +</span><span id="L-536"><a href="#L-536"><span class="linenos"> 536</span></a> <span class="s2">"GROUPING SETS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUPING_SETS</span><span class="p">,</span> +</span><span id="L-537"><a href="#L-537"><span class="linenos"> 537</span></a> <span class="s2">"HAVING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HAVING</span><span class="p">,</span> +</span><span id="L-538"><a href="#L-538"><span class="linenos"> 538</span></a> <span class="s2">"IF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> +</span><span id="L-539"><a href="#L-539"><span class="linenos"> 539</span></a> <span class="s2">"ILIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> +</span><span id="L-540"><a href="#L-540"><span class="linenos"> 540</span></a> <span class="s2">"IGNORE NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IGNORE_NULLS</span><span class="p">,</span> +</span><span id="L-541"><a href="#L-541"><span class="linenos"> 541</span></a> <span class="s2">"IN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">,</span> +</span><span id="L-542"><a href="#L-542"><span class="linenos"> 542</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> +</span><span id="L-543"><a href="#L-543"><span class="linenos"> 543</span></a> <span class="s2">"INET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> +</span><span id="L-544"><a href="#L-544"><span class="linenos"> 544</span></a> <span class="s2">"INNER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> +</span><span id="L-545"><a href="#L-545"><span class="linenos"> 545</span></a> <span class="s2">"INSERT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</span><span class="p">,</span> +</span><span id="L-546"><a href="#L-546"><span class="linenos"> 546</span></a> <span class="s2">"INTERVAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> +</span><span id="L-547"><a href="#L-547"><span class="linenos"> 547</span></a> <span class="s2">"INTERSECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> +</span><span id="L-548"><a href="#L-548"><span class="linenos"> 548</span></a> <span class="s2">"INTO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> +</span><span id="L-549"><a href="#L-549"><span class="linenos"> 549</span></a> <span class="s2">"IS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">,</span> +</span><span id="L-550"><a href="#L-550"><span class="linenos"> 550</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> +</span><span id="L-551"><a href="#L-551"><span class="linenos"> 551</span></a> <span class="s2">"JOIN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN</span><span class="p">,</span> +</span><span id="L-552"><a href="#L-552"><span class="linenos"> 552</span></a> <span class="s2">"LATERAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LATERAL</span><span class="p">,</span> +</span><span id="L-553"><a href="#L-553"><span class="linenos"> 553</span></a> <span class="s2">"LAZY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> +</span><span id="L-554"><a href="#L-554"><span class="linenos"> 554</span></a> <span class="s2">"LEADING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> +</span><span id="L-555"><a href="#L-555"><span class="linenos"> 555</span></a> <span class="s2">"LEFT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="L-556"><a href="#L-556"><span class="linenos"> 556</span></a> <span class="s2">"LIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> +</span><span id="L-557"><a href="#L-557"><span class="linenos"> 557</span></a> <span class="s2">"LIMIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">,</span> +</span><span id="L-558"><a href="#L-558"><span class="linenos"> 558</span></a> <span class="s2">"LOAD DATA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</span><span class="p">,</span> +</span><span id="L-559"><a href="#L-559"><span class="linenos"> 559</span></a> <span class="s2">"LOCAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> +</span><span id="L-560"><a href="#L-560"><span class="linenos"> 560</span></a> <span class="s2">"MATERIALIZED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> +</span><span id="L-561"><a href="#L-561"><span class="linenos"> 561</span></a> <span class="s2">"MERGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> +</span><span id="L-562"><a href="#L-562"><span class="linenos"> 562</span></a> <span class="s2">"NATURAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> +</span><span id="L-563"><a href="#L-563"><span class="linenos"> 563</span></a> <span class="s2">"NEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> +</span><span id="L-564"><a href="#L-564"><span class="linenos"> 564</span></a> <span class="s2">"NO ACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NO_ACTION</span><span class="p">,</span> +</span><span id="L-565"><a href="#L-565"><span class="linenos"> 565</span></a> <span class="s2">"NOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</span><span class="p">,</span> +</span><span id="L-566"><a href="#L-566"><span class="linenos"> 566</span></a> <span class="s2">"NOTNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOTNULL</span><span class="p">,</span> +</span><span id="L-567"><a href="#L-567"><span class="linenos"> 567</span></a> <span class="s2">"NULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> +</span><span id="L-568"><a href="#L-568"><span class="linenos"> 568</span></a> <span class="s2">"NULLS FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_FIRST</span><span class="p">,</span> +</span><span id="L-569"><a href="#L-569"><span class="linenos"> 569</span></a> <span class="s2">"NULLS LAST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_LAST</span><span class="p">,</span> +</span><span id="L-570"><a href="#L-570"><span class="linenos"> 570</span></a> <span class="s2">"OBJECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> +</span><span id="L-571"><a href="#L-571"><span class="linenos"> 571</span></a> <span class="s2">"OFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="L-572"><a href="#L-572"><span class="linenos"> 572</span></a> <span class="s2">"ON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ON</span><span class="p">,</span> +</span><span id="L-573"><a href="#L-573"><span class="linenos"> 573</span></a> <span class="s2">"ONLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> +</span><span id="L-574"><a href="#L-574"><span class="linenos"> 574</span></a> <span class="s2">"OPTIONS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> +</span><span id="L-575"><a href="#L-575"><span class="linenos"> 575</span></a> <span class="s2">"OR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> +</span><span id="L-576"><a href="#L-576"><span class="linenos"> 576</span></a> <span class="s2">"ORDER BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDER_BY</span><span class="p">,</span> +</span><span id="L-577"><a href="#L-577"><span class="linenos"> 577</span></a> <span class="s2">"ORDINALITY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> +</span><span id="L-578"><a href="#L-578"><span class="linenos"> 578</span></a> <span class="s2">"OUTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> +</span><span id="L-579"><a href="#L-579"><span class="linenos"> 579</span></a> <span class="s2">"OUT OF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUT_OF</span><span class="p">,</span> +</span><span id="L-580"><a href="#L-580"><span class="linenos"> 580</span></a> <span class="s2">"OVER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVER</span><span class="p">,</span> +</span><span id="L-581"><a href="#L-581"><span class="linenos"> 581</span></a> <span class="s2">"OVERLAPS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">,</span> +</span><span id="L-582"><a href="#L-582"><span class="linenos"> 582</span></a> <span class="s2">"OVERWRITE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERWRITE</span><span class="p">,</span> +</span><span id="L-583"><a href="#L-583"><span class="linenos"> 583</span></a> <span class="s2">"PARTITION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION</span><span class="p">,</span> +</span><span id="L-584"><a href="#L-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITION BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> +</span><span id="L-585"><a href="#L-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITIONED BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> +</span><span id="L-586"><a href="#L-586"><span class="linenos"> 586</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> +</span><span id="L-587"><a href="#L-587"><span class="linenos"> 587</span></a> <span class="s2">"PERCENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> +</span><span id="L-588"><a href="#L-588"><span class="linenos"> 588</span></a> <span class="s2">"PIVOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> +</span><span id="L-589"><a href="#L-589"><span class="linenos"> 589</span></a> <span class="s2">"PRECEDING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> +</span><span id="L-590"><a href="#L-590"><span class="linenos"> 590</span></a> <span class="s2">"PRIMARY KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> +</span><span id="L-591"><a href="#L-591"><span class="linenos"> 591</span></a> <span class="s2">"PROCEDURE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="L-592"><a href="#L-592"><span class="linenos"> 592</span></a> <span class="s2">"QUALIFY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">QUALIFY</span><span class="p">,</span> +</span><span id="L-593"><a href="#L-593"><span class="linenos"> 593</span></a> <span class="s2">"RANGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> +</span><span id="L-594"><a href="#L-594"><span class="linenos"> 594</span></a> <span class="s2">"RECURSIVE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RECURSIVE</span><span class="p">,</span> +</span><span id="L-595"><a href="#L-595"><span class="linenos"> 595</span></a> <span class="s2">"REGEXP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="L-596"><a href="#L-596"><span class="linenos"> 596</span></a> <span class="s2">"REPLACE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="L-597"><a href="#L-597"><span class="linenos"> 597</span></a> <span class="s2">"RESPECT NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RESPECT_NULLS</span><span class="p">,</span> +</span><span id="L-598"><a href="#L-598"><span class="linenos"> 598</span></a> <span class="s2">"REFERENCES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> +</span><span id="L-599"><a href="#L-599"><span class="linenos"> 599</span></a> <span class="s2">"RIGHT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="L-600"><a href="#L-600"><span class="linenos"> 600</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="L-601"><a href="#L-601"><span class="linenos"> 601</span></a> <span class="s2">"ROLLBACK"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span><span class="p">,</span> +</span><span id="L-602"><a href="#L-602"><span class="linenos"> 602</span></a> <span class="s2">"ROLLUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLUP</span><span class="p">,</span> +</span><span id="L-603"><a href="#L-603"><span class="linenos"> 603</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> +</span><span id="L-604"><a href="#L-604"><span class="linenos"> 604</span></a> <span class="s2">"ROWS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> +</span><span id="L-605"><a href="#L-605"><span class="linenos"> 605</span></a> <span class="s2">"SCHEMA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> +</span><span id="L-606"><a href="#L-606"><span class="linenos"> 606</span></a> <span class="s2">"SEED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> +</span><span id="L-607"><a href="#L-607"><span class="linenos"> 607</span></a> <span class="s2">"SELECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> +</span><span id="L-608"><a href="#L-608"><span class="linenos"> 608</span></a> <span class="s2">"SEMI"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> +</span><span id="L-609"><a href="#L-609"><span class="linenos"> 609</span></a> <span class="s2">"SET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> +</span><span id="L-610"><a href="#L-610"><span class="linenos"> 610</span></a> <span class="s2">"SHOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> +</span><span id="L-611"><a href="#L-611"><span class="linenos"> 611</span></a> <span class="s2">"SIMILAR TO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">,</span> +</span><span id="L-612"><a href="#L-612"><span class="linenos"> 612</span></a> <span class="s2">"SOME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">,</span> +</span><span id="L-613"><a href="#L-613"><span class="linenos"> 613</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> +</span><span id="L-614"><a href="#L-614"><span class="linenos"> 614</span></a> <span class="s2">"SORT BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> +</span><span id="L-615"><a href="#L-615"><span class="linenos"> 615</span></a> <span class="s2">"TABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="L-616"><a href="#L-616"><span class="linenos"> 616</span></a> <span class="s2">"TABLESAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> +</span><span id="L-617"><a href="#L-617"><span class="linenos"> 617</span></a> <span class="s2">"TEMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> +</span><span id="L-618"><a href="#L-618"><span class="linenos"> 618</span></a> <span class="s2">"TEMPORARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> +</span><span id="L-619"><a href="#L-619"><span class="linenos"> 619</span></a> <span class="s2">"THEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">THEN</span><span class="p">,</span> +</span><span id="L-620"><a href="#L-620"><span class="linenos"> 620</span></a> <span class="s2">"TRUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> +</span><span id="L-621"><a href="#L-621"><span class="linenos"> 621</span></a> <span class="s2">"TRAILING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> +</span><span id="L-622"><a href="#L-622"><span class="linenos"> 622</span></a> <span class="s2">"UNBOUNDED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> +</span><span id="L-623"><a href="#L-623"><span class="linenos"> 623</span></a> <span class="s2">"UNION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> +</span><span id="L-624"><a href="#L-624"><span class="linenos"> 624</span></a> <span class="s2">"UNLOGGED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> +</span><span id="L-625"><a href="#L-625"><span class="linenos"> 625</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> +</span><span id="L-626"><a href="#L-626"><span class="linenos"> 626</span></a> <span class="s2">"UNPIVOT"</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-627"><a href="#L-627"><span class="linenos"> 627</span></a> <span class="s2">"UPDATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">,</span> +</span><span id="L-628"><a href="#L-628"><span class="linenos"> 628</span></a> <span class="s2">"USE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</span><span class="p">,</span> +</span><span id="L-629"><a href="#L-629"><span class="linenos"> 629</span></a> <span class="s2">"USING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USING</span><span class="p">,</span> +</span><span id="L-630"><a href="#L-630"><span class="linenos"> 630</span></a> <span class="s2">"VALUES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> +</span><span id="L-631"><a href="#L-631"><span class="linenos"> 631</span></a> <span class="s2">"VIEW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> +</span><span id="L-632"><a href="#L-632"><span class="linenos"> 632</span></a> <span class="s2">"VOLATILE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="L-633"><a href="#L-633"><span class="linenos"> 633</span></a> <span class="s2">"WHEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHEN</span><span class="p">,</span> +</span><span id="L-634"><a href="#L-634"><span class="linenos"> 634</span></a> <span class="s2">"WHERE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHERE</span><span class="p">,</span> +</span><span id="L-635"><a href="#L-635"><span class="linenos"> 635</span></a> <span class="s2">"WINDOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="L-636"><a href="#L-636"><span class="linenos"> 636</span></a> <span class="s2">"WITH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> +</span><span id="L-637"><a href="#L-637"><span class="linenos"> 637</span></a> <span class="s2">"WITH TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_TIME_ZONE</span><span class="p">,</span> +</span><span id="L-638"><a href="#L-638"><span class="linenos"> 638</span></a> <span class="s2">"WITH LOCAL TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_LOCAL_TIME_ZONE</span><span class="p">,</span> +</span><span id="L-639"><a href="#L-639"><span class="linenos"> 639</span></a> <span class="s2">"WITHIN GROUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHIN_GROUP</span><span class="p">,</span> +</span><span id="L-640"><a href="#L-640"><span class="linenos"> 640</span></a> <span class="s2">"WITHOUT TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHOUT_TIME_ZONE</span><span class="p">,</span> +</span><span id="L-641"><a href="#L-641"><span class="linenos"> 641</span></a> <span class="s2">"APPLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> +</span><span id="L-642"><a href="#L-642"><span class="linenos"> 642</span></a> <span class="s2">"ARRAY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="L-643"><a href="#L-643"><span class="linenos"> 643</span></a> <span class="s2">"BIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="L-644"><a href="#L-644"><span class="linenos"> 644</span></a> <span class="s2">"BOOL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="L-645"><a href="#L-645"><span class="linenos"> 645</span></a> <span class="s2">"BOOLEAN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="L-646"><a href="#L-646"><span class="linenos"> 646</span></a> <span class="s2">"BYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="L-647"><a href="#L-647"><span class="linenos"> 647</span></a> <span class="s2">"TINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="L-648"><a href="#L-648"><span class="linenos"> 648</span></a> <span class="s2">"SHORT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="L-649"><a href="#L-649"><span class="linenos"> 649</span></a> <span class="s2">"SMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="L-650"><a href="#L-650"><span class="linenos"> 650</span></a> <span class="s2">"INT2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="L-651"><a href="#L-651"><span class="linenos"> 651</span></a> <span class="s2">"INTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="L-652"><a href="#L-652"><span class="linenos"> 652</span></a> <span class="s2">"INT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="L-653"><a href="#L-653"><span class="linenos"> 653</span></a> <span class="s2">"INT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="L-654"><a href="#L-654"><span class="linenos"> 654</span></a> <span class="s2">"LONG"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="L-655"><a href="#L-655"><span class="linenos"> 655</span></a> <span class="s2">"BIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="L-656"><a href="#L-656"><span class="linenos"> 656</span></a> <span class="s2">"INT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="L-657"><a href="#L-657"><span class="linenos"> 657</span></a> <span class="s2">"DECIMAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="L-658"><a href="#L-658"><span class="linenos"> 658</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> +</span><span id="L-659"><a href="#L-659"><span class="linenos"> 659</span></a> <span class="s2">"NULLABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> +</span><span id="L-660"><a href="#L-660"><span class="linenos"> 660</span></a> <span class="s2">"NUMBER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="L-661"><a href="#L-661"><span class="linenos"> 661</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="L-662"><a href="#L-662"><span class="linenos"> 662</span></a> <span class="s2">"FIXED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="L-663"><a href="#L-663"><span class="linenos"> 663</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="L-664"><a href="#L-664"><span class="linenos"> 664</span></a> <span class="s2">"FLOAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="L-665"><a href="#L-665"><span class="linenos"> 665</span></a> <span class="s2">"FLOAT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="L-666"><a href="#L-666"><span class="linenos"> 666</span></a> <span class="s2">"FLOAT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-667"><a href="#L-667"><span class="linenos"> 667</span></a> <span class="s2">"DOUBLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-668"><a href="#L-668"><span class="linenos"> 668</span></a> <span class="s2">"DOUBLE PRECISION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="L-669"><a href="#L-669"><span class="linenos"> 669</span></a> <span class="s2">"JSON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> +</span><span id="L-670"><a href="#L-670"><span class="linenos"> 670</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="L-671"><a href="#L-671"><span class="linenos"> 671</span></a> <span class="s2">"CHARACTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="L-672"><a href="#L-672"><span class="linenos"> 672</span></a> <span class="s2">"NCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="L-673"><a href="#L-673"><span class="linenos"> 673</span></a> <span class="s2">"VARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="L-674"><a href="#L-674"><span class="linenos"> 674</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="L-675"><a href="#L-675"><span class="linenos"> 675</span></a> <span class="s2">"NVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="L-676"><a href="#L-676"><span class="linenos"> 676</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="L-677"><a href="#L-677"><span class="linenos"> 677</span></a> <span class="s2">"STR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-678"><a href="#L-678"><span class="linenos"> 678</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-679"><a href="#L-679"><span class="linenos"> 679</span></a> <span class="s2">"TEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-680"><a href="#L-680"><span class="linenos"> 680</span></a> <span class="s2">"CLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-681"><a href="#L-681"><span class="linenos"> 681</span></a> <span class="s2">"LONGVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="L-682"><a href="#L-682"><span class="linenos"> 682</span></a> <span class="s2">"BINARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> +</span><span id="L-683"><a href="#L-683"><span class="linenos"> 683</span></a> <span class="s2">"BLOB"</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-684"><a href="#L-684"><span class="linenos"> 684</span></a> <span class="s2">"BYTEA"</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-685"><a href="#L-685"><span class="linenos"> 685</span></a> <span class="s2">"VARBINARY"</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-686"><a href="#L-686"><span class="linenos"> 686</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> +</span><span id="L-687"><a href="#L-687"><span class="linenos"> 687</span></a> <span class="s2">"TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="L-688"><a href="#L-688"><span class="linenos"> 688</span></a> <span class="s2">"TIMESTAMPTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="L-689"><a href="#L-689"><span class="linenos"> 689</span></a> <span class="s2">"TIMESTAMPLTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="L-690"><a href="#L-690"><span class="linenos"> 690</span></a> <span class="s2">"DATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="L-691"><a href="#L-691"><span class="linenos"> 691</span></a> <span class="s2">"DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="L-692"><a href="#L-692"><span class="linenos"> 692</span></a> <span class="s2">"UNIQUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> +</span><span id="L-693"><a href="#L-693"><span class="linenos"> 693</span></a> <span class="s2">"STRUCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="L-694"><a href="#L-694"><span class="linenos"> 694</span></a> <span class="s2">"VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="L-695"><a href="#L-695"><span class="linenos"> 695</span></a> <span class="s2">"ALTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</span><span class="p">,</span> +</span><span id="L-696"><a href="#L-696"><span class="linenos"> 696</span></a> <span class="s2">"ALTER AGGREGATE"</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-697"><a href="#L-697"><span class="linenos"> 697</span></a> <span class="s2">"ALTER DEFAULT"</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-698"><a href="#L-698"><span class="linenos"> 698</span></a> <span class="s2">"ALTER DOMAIN"</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-699"><a href="#L-699"><span class="linenos"> 699</span></a> <span class="s2">"ALTER ROLE"</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-700"><a href="#L-700"><span class="linenos"> 700</span></a> <span class="s2">"ALTER RULE"</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-701"><a href="#L-701"><span class="linenos"> 701</span></a> <span class="s2">"ALTER SEQUENCE"</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-702"><a href="#L-702"><span class="linenos"> 702</span></a> <span class="s2">"ALTER TYPE"</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-703"><a href="#L-703"><span class="linenos"> 703</span></a> <span class="s2">"ALTER USER"</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-704"><a href="#L-704"><span class="linenos"> 704</span></a> <span class="s2">"ALTER VIEW"</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-705"><a href="#L-705"><span class="linenos"> 705</span></a> <span class="s2">"ANALYZE"</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-706"><a href="#L-706"><span class="linenos"> 706</span></a> <span class="s2">"CALL"</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-707"><a href="#L-707"><span class="linenos"> 707</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> +</span><span id="L-708"><a href="#L-708"><span class="linenos"> 708</span></a> <span class="s2">"COPY"</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-709"><a href="#L-709"><span class="linenos"> 709</span></a> <span class="s2">"EXPLAIN"</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-710"><a href="#L-710"><span class="linenos"> 710</span></a> <span class="s2">"GRANT"</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-711"><a href="#L-711"><span class="linenos"> 711</span></a> <span class="s2">"OPTIMIZE"</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-712"><a href="#L-712"><span class="linenos"> 712</span></a> <span class="s2">"PREPARE"</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-713"><a href="#L-713"><span class="linenos"> 713</span></a> <span class="s2">"TRUNCATE"</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-714"><a href="#L-714"><span class="linenos"> 714</span></a> <span class="s2">"VACUUM"</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-715"><a href="#L-715"><span class="linenos"> 715</span></a> <span class="p">}</span> +</span><span id="L-716"><a href="#L-716"><span class="linenos"> 716</span></a> +</span><span id="L-717"><a href="#L-717"><span class="linenos"> 717</span></a> <span class="n">WHITE_SPACE</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-718"><a href="#L-718"><span class="linenos"> 718</span></a> <span class="s2">" "</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> +</span><span id="L-719"><a href="#L-719"><span class="linenos"> 719</span></a> <span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> +</span><span id="L-720"><a href="#L-720"><span class="linenos"> 720</span></a> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> +</span><span id="L-721"><a href="#L-721"><span class="linenos"> 721</span></a> <span class="s2">"</span><span class="se">\r</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> +</span><span id="L-722"><a href="#L-722"><span class="linenos"> 722</span></a> <span class="s2">"</span><span class="se">\r\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> +</span><span id="L-723"><a href="#L-723"><span class="linenos"> 723</span></a> <span class="p">}</span> +</span><span id="L-724"><a href="#L-724"><span class="linenos"> 724</span></a> +</span><span id="L-725"><a href="#L-725"><span class="linenos"> 725</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-726"><a href="#L-726"><span class="linenos"> 726</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> +</span><span id="L-727"><a href="#L-727"><span class="linenos"> 727</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> +</span><span id="L-728"><a href="#L-728"><span class="linenos"> 728</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> </span><span id="L-729"><a href="#L-729"><span class="linenos"> 729</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> </span><span id="L-730"><a href="#L-730"><span class="linenos"> 730</span></a> <span class="p">}</span> </span><span id="L-731"><a href="#L-731"><span class="linenos"> 731</span></a> @@ -1830,284 +1830,286 @@ </span><span id="L-851"><a href="#L-851"><span class="linenos"> 851</span></a> </span><span id="L-852"><a href="#L-852"><span class="linenos"> 852</span></a> <span class="c1"># If we have either a semicolon or a begin token before the command's token, we'll parse</span> </span><span id="L-853"><a href="#L-853"><span class="linenos"> 853</span></a> <span class="c1"># whatever follows the command's token as a string</span> -</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMAND_PREFIX_TOKENS</span> -</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="p">):</span> -</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> -</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="n">tokens</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> -</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">";"</span><span class="p">)</span> -</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[:</span><span class="n">tokens</span><span class="p">]</span> -</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="n">text</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">start</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> -</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="k">if</span> <span class="n">text</span><span class="p">:</span> -</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> -</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> -</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="k">def</span> <span class="nf">_scan_keywords</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> <span class="n">size</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> -</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="n">char</span> <span class="o">=</span> <span class="n">chars</span> -</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="n">trie</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORD_TRIE</span> -</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> -</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> -</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="k">while</span> <span class="n">chars</span><span class="p">:</span> -</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> <span class="k">if</span> <span class="n">skip</span><span class="p">:</span> -</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="n">result</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">char</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> -</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> -</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> -</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> <span class="k">break</span> -</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="n">word</span> <span class="o">=</span> <span class="n">chars</span> -</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="n">size</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">size</span> -</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> -</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="k">if</span> <span class="n">end</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> -</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> <span class="n">char</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">end</span><span class="p">]</span> -</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">single_token</span> <span class="ow">or</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> -</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="n">is_space</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> -</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> -</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_space</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">prev_space</span><span class="p">:</span> -</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> <span class="k">if</span> <span class="n">is_space</span><span class="p">:</span> -</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="n">char</span> <span class="o">=</span> <span class="s2">" "</span> -</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> <span class="n">chars</span> <span class="o">+=</span> <span class="n">char</span> -</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="n">is_space</span> -</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="s2">" "</span> -</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> -</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">single_token</span> <span class="ow">and</span> <span class="n">chars</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> <span class="k">else</span> <span class="n">word</span> +</span><span id="L-854"><a href="#L-854"><span class="linenos"> 854</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-855"><a href="#L-855"><span class="linenos"> 855</span></a> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMANDS</span> +</span><span id="L-856"><a href="#L-856"><span class="linenos"> 856</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">!=</span> <span class="s2">";"</span> +</span><span id="L-857"><a href="#L-857"><span class="linenos"> 857</span></a> <span class="ow">and</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMAND_PREFIX_TOKENS</span><span class="p">)</span> +</span><span id="L-858"><a href="#L-858"><span class="linenos"> 858</span></a> <span class="p">):</span> +</span><span id="L-859"><a href="#L-859"><span class="linenos"> 859</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> +</span><span id="L-860"><a href="#L-860"><span class="linenos"> 860</span></a> <span class="n">tokens</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> +</span><span id="L-861"><a href="#L-861"><span class="linenos"> 861</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">";"</span><span class="p">)</span> +</span><span id="L-862"><a href="#L-862"><span class="linenos"> 862</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[:</span><span class="n">tokens</span><span class="p">]</span> +</span><span id="L-863"><a href="#L-863"><span class="linenos"> 863</span></a> <span class="n">text</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">start</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="L-864"><a href="#L-864"><span class="linenos"> 864</span></a> <span class="k">if</span> <span class="n">text</span><span class="p">:</span> +</span><span id="L-865"><a href="#L-865"><span class="linenos"> 865</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="L-866"><a href="#L-866"><span class="linenos"> 866</span></a> +</span><span id="L-867"><a href="#L-867"><span class="linenos"> 867</span></a> <span class="k">def</span> <span class="nf">_scan_keywords</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-868"><a href="#L-868"><span class="linenos"> 868</span></a> <span class="n">size</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="L-869"><a href="#L-869"><span class="linenos"> 869</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-870"><a href="#L-870"><span class="linenos"> 870</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="L-871"><a href="#L-871"><span class="linenos"> 871</span></a> <span class="n">char</span> <span class="o">=</span> <span class="n">chars</span> +</span><span id="L-872"><a href="#L-872"><span class="linenos"> 872</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-873"><a href="#L-873"><span class="linenos"> 873</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-874"><a href="#L-874"><span class="linenos"> 874</span></a> <span class="n">trie</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORD_TRIE</span> +</span><span id="L-875"><a href="#L-875"><span class="linenos"> 875</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> +</span><span id="L-876"><a href="#L-876"><span class="linenos"> 876</span></a> +</span><span id="L-877"><a href="#L-877"><span class="linenos"> 877</span></a> <span class="k">while</span> <span class="n">chars</span><span class="p">:</span> +</span><span id="L-878"><a href="#L-878"><span class="linenos"> 878</span></a> <span class="k">if</span> <span class="n">skip</span><span class="p">:</span> +</span><span id="L-879"><a href="#L-879"><span class="linenos"> 879</span></a> <span class="n">result</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="L-880"><a href="#L-880"><span class="linenos"> 880</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-881"><a href="#L-881"><span class="linenos"> 881</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">char</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> +</span><span id="L-882"><a href="#L-882"><span class="linenos"> 882</span></a> +</span><span id="L-883"><a href="#L-883"><span class="linenos"> 883</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> +</span><span id="L-884"><a href="#L-884"><span class="linenos"> 884</span></a> <span class="k">break</span> +</span><span id="L-885"><a href="#L-885"><span class="linenos"> 885</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="L-886"><a href="#L-886"><span class="linenos"> 886</span></a> <span class="n">word</span> <span class="o">=</span> <span class="n">chars</span> +</span><span id="L-887"><a href="#L-887"><span class="linenos"> 887</span></a> <span class="n">size</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-888"><a href="#L-888"><span class="linenos"> 888</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">size</span> +</span><span id="L-889"><a href="#L-889"><span class="linenos"> 889</span></a> +</span><span id="L-890"><a href="#L-890"><span class="linenos"> 890</span></a> <span class="k">if</span> <span class="n">end</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> +</span><span id="L-891"><a href="#L-891"><span class="linenos"> 891</span></a> <span class="n">char</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">end</span><span class="p">]</span> +</span><span id="L-892"><a href="#L-892"><span class="linenos"> 892</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">single_token</span> <span class="ow">or</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> +</span><span id="L-893"><a href="#L-893"><span class="linenos"> 893</span></a> <span class="n">is_space</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> +</span><span id="L-894"><a href="#L-894"><span class="linenos"> 894</span></a> +</span><span id="L-895"><a href="#L-895"><span class="linenos"> 895</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_space</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">prev_space</span><span class="p">:</span> +</span><span id="L-896"><a href="#L-896"><span class="linenos"> 896</span></a> <span class="k">if</span> <span class="n">is_space</span><span class="p">:</span> +</span><span id="L-897"><a href="#L-897"><span class="linenos"> 897</span></a> <span class="n">char</span> <span class="o">=</span> <span class="s2">" "</span> +</span><span id="L-898"><a href="#L-898"><span class="linenos"> 898</span></a> <span class="n">chars</span> <span class="o">+=</span> <span class="n">char</span> +</span><span id="L-899"><a href="#L-899"><span class="linenos"> 899</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="n">is_space</span> +</span><span id="L-900"><a href="#L-900"><span class="linenos"> 900</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-901"><a href="#L-901"><span class="linenos"> 901</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-902"><a href="#L-902"><span class="linenos"> 902</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-903"><a href="#L-903"><span class="linenos"> 903</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-904"><a href="#L-904"><span class="linenos"> 904</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="s2">" "</span> </span><span id="L-905"><a href="#L-905"><span class="linenos"> 905</span></a> -</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">word</span><span class="p">:</span> -</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> -</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_char</span><span class="p">])</span> <span class="c1"># type: ignore</span> -</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> <span class="k">return</span> -</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_var</span><span class="p">()</span> -</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="k">return</span> -</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> -</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> -</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> <span class="k">return</span> -</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_formatted_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> +</span><span id="L-906"><a href="#L-906"><span class="linenos"> 906</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">single_token</span> <span class="ow">and</span> <span class="n">chars</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> <span class="k">else</span> <span class="n">word</span> +</span><span id="L-907"><a href="#L-907"><span class="linenos"> 907</span></a> +</span><span id="L-908"><a href="#L-908"><span class="linenos"> 908</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">word</span><span class="p">:</span> +</span><span id="L-909"><a href="#L-909"><span class="linenos"> 909</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> +</span><span id="L-910"><a href="#L-910"><span class="linenos"> 910</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_char</span><span class="p">])</span> <span class="c1"># type: ignore</span> +</span><span id="L-911"><a href="#L-911"><span class="linenos"> 911</span></a> <span class="k">return</span> +</span><span id="L-912"><a href="#L-912"><span class="linenos"> 912</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_var</span><span class="p">()</span> +</span><span id="L-913"><a href="#L-913"><span class="linenos"> 913</span></a> <span class="k">return</span> +</span><span id="L-914"><a href="#L-914"><span class="linenos"> 914</span></a> +</span><span id="L-915"><a href="#L-915"><span class="linenos"> 915</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> </span><span id="L-916"><a href="#L-916"><span class="linenos"> 916</span></a> <span class="k">return</span> -</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_comment</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> +</span><span id="L-917"><a href="#L-917"><span class="linenos"> 917</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_formatted_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> </span><span id="L-918"><a href="#L-918"><span class="linenos"> 918</span></a> <span class="k">return</span> -</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> -</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">[</span><span class="n">word</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> -</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> -</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="k">def</span> <span class="nf">_scan_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> <span class="k">if</span> <span class="n">comment_start</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> -</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="n">comment_start_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> -</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> <span class="n">comment_start_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_start</span><span class="p">)</span> -</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="n">comment_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">[</span><span class="n">comment_start</span><span class="p">]</span> <span class="c1"># type: ignore</span> -</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> -</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="k">if</span> <span class="n">comment_end</span><span class="p">:</span> -</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> <span class="n">comment_end_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_end</span><span class="p">)</span> -</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> -</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">comment_end_size</span><span class="p">)</span> <span class="o">!=</span> <span class="n">comment_end</span><span class="p">:</span> -</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> -</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span> <span class="p">:</span> <span class="o">-</span><span class="n">comment_end_size</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="c1"># type: ignore</span> -</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">comment_end_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line_break</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="p">):</span> -</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span><span class="p">:])</span> <span class="c1"># type: ignore</span> -</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> -</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> <span class="c1"># Leading comment is attached to the succeeding token, whilst trailing comment to the preceding.</span> -</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> <span class="c1"># Multiple consecutive comments are preserved by appending them to the current comments list.</span> -</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="k">if</span> <span class="n">comment_start_line</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span><span class="p">:</span> -</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="p">)</span> -</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> -</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> -</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-919"><a href="#L-919"><span class="linenos"> 919</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_comment</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> +</span><span id="L-920"><a href="#L-920"><span class="linenos"> 920</span></a> <span class="k">return</span> +</span><span id="L-921"><a href="#L-921"><span class="linenos"> 921</span></a> +</span><span id="L-922"><a href="#L-922"><span class="linenos"> 922</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="L-923"><a href="#L-923"><span class="linenos"> 923</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">[</span><span class="n">word</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> +</span><span id="L-924"><a href="#L-924"><span class="linenos"> 924</span></a> +</span><span id="L-925"><a href="#L-925"><span class="linenos"> 925</span></a> <span class="k">def</span> <span class="nf">_scan_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-926"><a href="#L-926"><span class="linenos"> 926</span></a> <span class="k">if</span> <span class="n">comment_start</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="L-927"><a href="#L-927"><span class="linenos"> 927</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="L-928"><a href="#L-928"><span class="linenos"> 928</span></a> +</span><span id="L-929"><a href="#L-929"><span class="linenos"> 929</span></a> <span class="n">comment_start_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> +</span><span id="L-930"><a href="#L-930"><span class="linenos"> 930</span></a> <span class="n">comment_start_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_start</span><span class="p">)</span> +</span><span id="L-931"><a href="#L-931"><span class="linenos"> 931</span></a> <span class="n">comment_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">[</span><span class="n">comment_start</span><span class="p">]</span> <span class="c1"># type: ignore</span> +</span><span id="L-932"><a href="#L-932"><span class="linenos"> 932</span></a> +</span><span id="L-933"><a href="#L-933"><span class="linenos"> 933</span></a> <span class="k">if</span> <span class="n">comment_end</span><span class="p">:</span> +</span><span id="L-934"><a href="#L-934"><span class="linenos"> 934</span></a> <span class="n">comment_end_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_end</span><span class="p">)</span> +</span><span id="L-935"><a href="#L-935"><span class="linenos"> 935</span></a> +</span><span id="L-936"><a href="#L-936"><span class="linenos"> 936</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">comment_end_size</span><span class="p">)</span> <span class="o">!=</span> <span class="n">comment_end</span><span class="p">:</span> +</span><span id="L-937"><a href="#L-937"><span class="linenos"> 937</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-938"><a href="#L-938"><span class="linenos"> 938</span></a> +</span><span id="L-939"><a href="#L-939"><span class="linenos"> 939</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span> <span class="p">:</span> <span class="o">-</span><span class="n">comment_end_size</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="c1"># type: ignore</span> +</span><span id="L-940"><a href="#L-940"><span class="linenos"> 940</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">comment_end_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="L-941"><a href="#L-941"><span class="linenos"> 941</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-942"><a href="#L-942"><span class="linenos"> 942</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line_break</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="p">):</span> +</span><span id="L-943"><a href="#L-943"><span class="linenos"> 943</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-944"><a href="#L-944"><span class="linenos"> 944</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span><span class="p">:])</span> <span class="c1"># type: ignore</span> +</span><span id="L-945"><a href="#L-945"><span class="linenos"> 945</span></a> +</span><span id="L-946"><a href="#L-946"><span class="linenos"> 946</span></a> <span class="c1"># Leading comment is attached to the succeeding token, whilst trailing comment to the preceding.</span> +</span><span id="L-947"><a href="#L-947"><span class="linenos"> 947</span></a> <span class="c1"># Multiple consecutive comments are preserved by appending them to the current comments list.</span> +</span><span id="L-948"><a href="#L-948"><span class="linenos"> 948</span></a> <span class="k">if</span> <span class="n">comment_start_line</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span><span class="p">:</span> +</span><span id="L-949"><a href="#L-949"><span class="linenos"> 949</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="p">)</span> +</span><span id="L-950"><a href="#L-950"><span class="linenos"> 950</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-951"><a href="#L-951"><span class="linenos"> 951</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> </span><span id="L-952"><a href="#L-952"><span class="linenos"> 952</span></a> -</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> <span class="k">def</span> <span class="nf">_scan_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> -</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="k">if</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"B"</span><span class="p">:</span> -</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_bits</span><span class="p">()</span> -</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="k">elif</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"X"</span><span class="p">:</span> -</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_hex</span><span class="p">()</span> -</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> -</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> <span class="n">scientific</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> -</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span> <span class="c1"># type: ignore</span> -</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">"."</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">decimal</span><span class="p">:</span> -</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scientific</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"E"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scientific</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isidentifier</span><span class="p">():</span> <span class="c1"># type: ignore</span> -</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> <span class="n">number_text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> -</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> -</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> <span class="n">literal</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> -</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> -</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NUMERIC_LITERALS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> <span class="c1"># type: ignore</span> -</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> -</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="k">if</span> <span class="n">token_type</span><span class="p">:</span> -</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> -</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">,</span> <span class="s2">"::"</span><span class="p">)</span> -</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span><span class="p">:</span> -</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> -</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> -</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> -</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> -</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">)</span> -</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> -</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> <span class="k">def</span> <span class="nf">_scan_bits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> -</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> -</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> -</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> -</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="k">def</span> <span class="nf">_scan_hex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> -</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> -</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> -</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a> -</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="k">def</span> <span class="nf">_extract_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> -</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="k">break</span> -</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> -</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="L-953"><a href="#L-953"><span class="linenos"> 953</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-954"><a href="#L-954"><span class="linenos"> 954</span></a> +</span><span id="L-955"><a href="#L-955"><span class="linenos"> 955</span></a> <span class="k">def</span> <span class="nf">_scan_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-956"><a href="#L-956"><span class="linenos"> 956</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> +</span><span id="L-957"><a href="#L-957"><span class="linenos"> 957</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="L-958"><a href="#L-958"><span class="linenos"> 958</span></a> <span class="k">if</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"B"</span><span class="p">:</span> +</span><span id="L-959"><a href="#L-959"><span class="linenos"> 959</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_bits</span><span class="p">()</span> +</span><span id="L-960"><a href="#L-960"><span class="linenos"> 960</span></a> <span class="k">elif</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"X"</span><span class="p">:</span> +</span><span id="L-961"><a href="#L-961"><span class="linenos"> 961</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_hex</span><span class="p">()</span> +</span><span id="L-962"><a href="#L-962"><span class="linenos"> 962</span></a> +</span><span id="L-963"><a href="#L-963"><span class="linenos"> 963</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="L-964"><a href="#L-964"><span class="linenos"> 964</span></a> <span class="n">scientific</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="L-965"><a href="#L-965"><span class="linenos"> 965</span></a> +</span><span id="L-966"><a href="#L-966"><span class="linenos"> 966</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-967"><a href="#L-967"><span class="linenos"> 967</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span> <span class="c1"># type: ignore</span> +</span><span id="L-968"><a href="#L-968"><span class="linenos"> 968</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-969"><a href="#L-969"><span class="linenos"> 969</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">"."</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">decimal</span><span class="p">:</span> +</span><span id="L-970"><a href="#L-970"><span class="linenos"> 970</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="L-971"><a href="#L-971"><span class="linenos"> 971</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-972"><a href="#L-972"><span class="linenos"> 972</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scientific</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-973"><a href="#L-973"><span class="linenos"> 973</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-974"><a href="#L-974"><span class="linenos"> 974</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-975"><a href="#L-975"><span class="linenos"> 975</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"E"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scientific</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="L-976"><a href="#L-976"><span class="linenos"> 976</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="L-977"><a href="#L-977"><span class="linenos"> 977</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-978"><a href="#L-978"><span class="linenos"> 978</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isidentifier</span><span class="p">():</span> <span class="c1"># type: ignore</span> +</span><span id="L-979"><a href="#L-979"><span class="linenos"> 979</span></a> <span class="n">number_text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="L-980"><a href="#L-980"><span class="linenos"> 980</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="L-981"><a href="#L-981"><span class="linenos"> 981</span></a> +</span><span id="L-982"><a href="#L-982"><span class="linenos"> 982</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="L-983"><a href="#L-983"><span class="linenos"> 983</span></a> <span class="n">literal</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> +</span><span id="L-984"><a href="#L-984"><span class="linenos"> 984</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-985"><a href="#L-985"><span class="linenos"> 985</span></a> +</span><span id="L-986"><a href="#L-986"><span class="linenos"> 986</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-987"><a href="#L-987"><span class="linenos"> 987</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NUMERIC_LITERALS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> <span class="c1"># type: ignore</span> +</span><span id="L-988"><a href="#L-988"><span class="linenos"> 988</span></a> +</span><span id="L-989"><a href="#L-989"><span class="linenos"> 989</span></a> <span class="k">if</span> <span class="n">token_type</span><span class="p">:</span> +</span><span id="L-990"><a href="#L-990"><span class="linenos"> 990</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> +</span><span id="L-991"><a href="#L-991"><span class="linenos"> 991</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">,</span> <span class="s2">"::"</span><span class="p">)</span> +</span><span id="L-992"><a href="#L-992"><span class="linenos"> 992</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-993"><a href="#L-993"><span class="linenos"> 993</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span><span class="p">:</span> +</span><span id="L-994"><a href="#L-994"><span class="linenos"> 994</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> +</span><span id="L-995"><a href="#L-995"><span class="linenos"> 995</span></a> +</span><span id="L-996"><a href="#L-996"><span class="linenos"> 996</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> +</span><span id="L-997"><a href="#L-997"><span class="linenos"> 997</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> +</span><span id="L-998"><a href="#L-998"><span class="linenos"> 998</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-999"><a href="#L-999"><span class="linenos"> 999</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">)</span> +</span><span id="L-1000"><a href="#L-1000"><span class="linenos">1000</span></a> +</span><span id="L-1001"><a href="#L-1001"><span class="linenos">1001</span></a> <span class="k">def</span> <span class="nf">_scan_bits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1002"><a href="#L-1002"><span class="linenos">1002</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1003"><a href="#L-1003"><span class="linenos">1003</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> +</span><span id="L-1004"><a href="#L-1004"><span class="linenos">1004</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-1005"><a href="#L-1005"><span class="linenos">1005</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1006"><a href="#L-1006"><span class="linenos">1006</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> +</span><span id="L-1007"><a href="#L-1007"><span class="linenos">1007</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> +</span><span id="L-1008"><a href="#L-1008"><span class="linenos">1008</span></a> +</span><span id="L-1009"><a href="#L-1009"><span class="linenos">1009</span></a> <span class="k">def</span> <span class="nf">_scan_hex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1010"><a href="#L-1010"><span class="linenos">1010</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1011"><a href="#L-1011"><span class="linenos">1011</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> +</span><span id="L-1012"><a href="#L-1012"><span class="linenos">1012</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-1013"><a href="#L-1013"><span class="linenos">1013</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1014"><a href="#L-1014"><span class="linenos">1014</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> +</span><span id="L-1015"><a href="#L-1015"><span class="linenos">1015</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> +</span><span id="L-1016"><a href="#L-1016"><span class="linenos">1016</span></a> +</span><span id="L-1017"><a href="#L-1017"><span class="linenos">1017</span></a> <span class="k">def</span> <span class="nf">_extract_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1018"><a href="#L-1018"><span class="linenos">1018</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1019"><a href="#L-1019"><span class="linenos">1019</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="L-1020"><a href="#L-1020"><span class="linenos">1020</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> +</span><span id="L-1021"><a href="#L-1021"><span class="linenos">1021</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1022"><a href="#L-1022"><span class="linenos">1022</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1023"><a href="#L-1023"><span class="linenos">1023</span></a> <span class="k">break</span> </span><span id="L-1024"><a href="#L-1024"><span class="linenos">1024</span></a> -</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="k">def</span> <span class="nf">_scan_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">quote</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a> <span class="n">quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_QUOTES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">quote</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="k">if</span> <span class="n">quote_end</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> -</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">quote</span><span class="p">))</span> -</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">quote_end</span><span class="p">)</span> -</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span> <span class="k">else</span> <span class="n">text</span> <span class="c1"># type: ignore</span> -</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span> <span class="k">if</span> <span class="n">quote</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"N"</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> -</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> -</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="c1"># X'1234, b'0110', E'\\\\\' etc.</span> -</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> <span class="k">def</span> <span class="nf">_scan_formatted_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">string_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="k">if</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span> <span class="c1"># type: ignore</span> -</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span> -</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">16</span> -</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span> <span class="c1"># type: ignore</span> -</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span> -</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">2</span> -</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span> <span class="c1"># type: ignore</span> -</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span> -</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="n">base</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> -</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">string_start</span><span class="p">))</span> -</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> <span class="n">string_end</span> <span class="o">=</span> <span class="n">delimiters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">string_start</span><span class="p">)</span> -</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">string_end</span><span class="p">)</span> -</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> -</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="k">if</span> <span class="n">base</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> -</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="k">except</span><span class="p">:</span> -</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span> -</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="sa">f</span><span class="s2">"Numeric string contains invalid characters from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span> -</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="p">)</span> -</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> -</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-1025"><a href="#L-1025"><span class="linenos">1025</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="L-1026"><a href="#L-1026"><span class="linenos">1026</span></a> +</span><span id="L-1027"><a href="#L-1027"><span class="linenos">1027</span></a> <span class="k">def</span> <span class="nf">_scan_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">quote</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-1028"><a href="#L-1028"><span class="linenos">1028</span></a> <span class="n">quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_QUOTES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">quote</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="L-1029"><a href="#L-1029"><span class="linenos">1029</span></a> <span class="k">if</span> <span class="n">quote_end</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1030"><a href="#L-1030"><span class="linenos">1030</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="L-1031"><a href="#L-1031"><span class="linenos">1031</span></a> +</span><span id="L-1032"><a href="#L-1032"><span class="linenos">1032</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">quote</span><span class="p">))</span> +</span><span id="L-1033"><a href="#L-1033"><span class="linenos">1033</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">quote_end</span><span class="p">)</span> +</span><span id="L-1034"><a href="#L-1034"><span class="linenos">1034</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span> <span class="k">else</span> <span class="n">text</span> <span class="c1"># type: ignore</span> +</span><span id="L-1035"><a href="#L-1035"><span class="linenos">1035</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span> <span class="k">if</span> <span class="n">quote</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"N"</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="L-1036"><a href="#L-1036"><span class="linenos">1036</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-1037"><a href="#L-1037"><span class="linenos">1037</span></a> +</span><span id="L-1038"><a href="#L-1038"><span class="linenos">1038</span></a> <span class="c1"># X'1234, b'0110', E'\\\\\' etc.</span> +</span><span id="L-1039"><a href="#L-1039"><span class="linenos">1039</span></a> <span class="k">def</span> <span class="nf">_scan_formatted_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">string_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="L-1040"><a href="#L-1040"><span class="linenos">1040</span></a> <span class="k">if</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="L-1041"><a href="#L-1041"><span class="linenos">1041</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span> <span class="c1"># type: ignore</span> +</span><span id="L-1042"><a href="#L-1042"><span class="linenos">1042</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span> +</span><span id="L-1043"><a href="#L-1043"><span class="linenos">1043</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">16</span> +</span><span id="L-1044"><a href="#L-1044"><span class="linenos">1044</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="L-1045"><a href="#L-1045"><span class="linenos">1045</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span> <span class="c1"># type: ignore</span> +</span><span id="L-1046"><a href="#L-1046"><span class="linenos">1046</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span> +</span><span id="L-1047"><a href="#L-1047"><span class="linenos">1047</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">2</span> +</span><span id="L-1048"><a href="#L-1048"><span class="linenos">1048</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="L-1049"><a href="#L-1049"><span class="linenos">1049</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span> <span class="c1"># type: ignore</span> +</span><span id="L-1050"><a href="#L-1050"><span class="linenos">1050</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span> +</span><span id="L-1051"><a href="#L-1051"><span class="linenos">1051</span></a> <span class="n">base</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="L-1052"><a href="#L-1052"><span class="linenos">1052</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1053"><a href="#L-1053"><span class="linenos">1053</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="L-1054"><a href="#L-1054"><span class="linenos">1054</span></a> +</span><span id="L-1055"><a href="#L-1055"><span class="linenos">1055</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">string_start</span><span class="p">))</span> +</span><span id="L-1056"><a href="#L-1056"><span class="linenos">1056</span></a> <span class="n">string_end</span> <span class="o">=</span> <span class="n">delimiters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">string_start</span><span class="p">)</span> +</span><span id="L-1057"><a href="#L-1057"><span class="linenos">1057</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">string_end</span><span class="p">)</span> +</span><span id="L-1058"><a href="#L-1058"><span class="linenos">1058</span></a> +</span><span id="L-1059"><a href="#L-1059"><span class="linenos">1059</span></a> <span class="k">if</span> <span class="n">base</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1060"><a href="#L-1060"><span class="linenos">1060</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="L-1061"><a href="#L-1061"><span class="linenos">1061</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1062"><a href="#L-1062"><span class="linenos">1062</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="L-1063"><a href="#L-1063"><span class="linenos">1063</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1064"><a href="#L-1064"><span class="linenos">1064</span></a> <span class="k">except</span><span class="p">:</span> +</span><span id="L-1065"><a href="#L-1065"><span class="linenos">1065</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span> +</span><span id="L-1066"><a href="#L-1066"><span class="linenos">1066</span></a> <span class="sa">f</span><span class="s2">"Numeric string contains invalid characters from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span> +</span><span id="L-1067"><a href="#L-1067"><span class="linenos">1067</span></a> <span class="p">)</span> </span><span id="L-1068"><a href="#L-1068"><span class="linenos">1068</span></a> -</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="k">def</span> <span class="nf">_scan_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier_end</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="n">identifier_end_is_escape</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IDENTIFIER_ESCAPES</span> -</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> -</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> -</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> -</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> -</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="k">if</span> <span class="n">identifier_end_is_escape</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> -</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">identifier_end</span> <span class="c1"># type: ignore</span> -</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="k">continue</span> -</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> -</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="k">break</span> +</span><span id="L-1069"><a href="#L-1069"><span class="linenos">1069</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="L-1070"><a href="#L-1070"><span class="linenos">1070</span></a> +</span><span id="L-1071"><a href="#L-1071"><span class="linenos">1071</span></a> <span class="k">def</span> <span class="nf">_scan_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier_end</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1072"><a href="#L-1072"><span class="linenos">1072</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-1073"><a href="#L-1073"><span class="linenos">1073</span></a> <span class="n">identifier_end_is_escape</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IDENTIFIER_ESCAPES</span> +</span><span id="L-1074"><a href="#L-1074"><span class="linenos">1074</span></a> +</span><span id="L-1075"><a href="#L-1075"><span class="linenos">1075</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1076"><a href="#L-1076"><span class="linenos">1076</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> +</span><span id="L-1077"><a href="#L-1077"><span class="linenos">1077</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1078"><a href="#L-1078"><span class="linenos">1078</span></a> +</span><span id="L-1079"><a href="#L-1079"><span class="linenos">1079</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1080"><a href="#L-1080"><span class="linenos">1080</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> +</span><span id="L-1081"><a href="#L-1081"><span class="linenos">1081</span></a> <span class="k">if</span> <span class="n">identifier_end_is_escape</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> +</span><span id="L-1082"><a href="#L-1082"><span class="linenos">1082</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">identifier_end</span> <span class="c1"># type: ignore</span> +</span><span id="L-1083"><a href="#L-1083"><span class="linenos">1083</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1084"><a href="#L-1084"><span class="linenos">1084</span></a> <span class="k">continue</span> </span><span id="L-1085"><a href="#L-1085"><span class="linenos">1085</span></a> -</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> +</span><span id="L-1086"><a href="#L-1086"><span class="linenos">1086</span></a> <span class="k">break</span> </span><span id="L-1087"><a href="#L-1087"><span class="linenos">1087</span></a> -</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="L-1088"><a href="#L-1088"><span class="linenos">1088</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> </span><span id="L-1089"><a href="#L-1089"><span class="linenos">1089</span></a> -</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> <span class="k">def</span> <span class="nf">_scan_var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> -</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="k">break</span> -</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span> -</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span> -</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span> -</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> -</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="p">)</span> -</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> -</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="k">def</span> <span class="nf">_extract_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delimiter</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="n">delim_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">delimiter</span><span class="p">)</span> -</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> -</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> -</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="p">):</span> -</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> -</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> -</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> -</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> -</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> -</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> -</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">delim_size</span><span class="p">)</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> -</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="k">if</span> <span class="n">delim_size</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">delim_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="k">break</span> -</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> -</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> -</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> -</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> -</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="L-1090"><a href="#L-1090"><span class="linenos">1090</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="L-1091"><a href="#L-1091"><span class="linenos">1091</span></a> +</span><span id="L-1092"><a href="#L-1092"><span class="linenos">1092</span></a> <span class="k">def</span> <span class="nf">_scan_var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="L-1093"><a href="#L-1093"><span class="linenos">1093</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1094"><a href="#L-1094"><span class="linenos">1094</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="L-1095"><a href="#L-1095"><span class="linenos">1095</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> +</span><span id="L-1096"><a href="#L-1096"><span class="linenos">1096</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1097"><a href="#L-1097"><span class="linenos">1097</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1098"><a href="#L-1098"><span class="linenos">1098</span></a> <span class="k">break</span> +</span><span id="L-1099"><a href="#L-1099"><span class="linenos">1099</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span> +</span><span id="L-1100"><a href="#L-1100"><span class="linenos">1100</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span> +</span><span id="L-1101"><a href="#L-1101"><span class="linenos">1101</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span> +</span><span id="L-1102"><a href="#L-1102"><span class="linenos">1102</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> +</span><span id="L-1103"><a href="#L-1103"><span class="linenos">1103</span></a> <span class="p">)</span> +</span><span id="L-1104"><a href="#L-1104"><span class="linenos">1104</span></a> +</span><span id="L-1105"><a href="#L-1105"><span class="linenos">1105</span></a> <span class="k">def</span> <span class="nf">_extract_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delimiter</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="L-1106"><a href="#L-1106"><span class="linenos">1106</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="L-1107"><a href="#L-1107"><span class="linenos">1107</span></a> <span class="n">delim_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">delimiter</span><span class="p">)</span> +</span><span id="L-1108"><a href="#L-1108"><span class="linenos">1108</span></a> +</span><span id="L-1109"><a href="#L-1109"><span class="linenos">1109</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="L-1110"><a href="#L-1110"><span class="linenos">1110</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> <span class="ow">and</span> <span class="p">(</span> +</span><span id="L-1111"><a href="#L-1111"><span class="linenos">1111</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> +</span><span id="L-1112"><a href="#L-1112"><span class="linenos">1112</span></a> <span class="p">):</span> +</span><span id="L-1113"><a href="#L-1113"><span class="linenos">1113</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> +</span><span id="L-1114"><a href="#L-1114"><span class="linenos">1114</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> +</span><span id="L-1115"><a href="#L-1115"><span class="linenos">1115</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1116"><a href="#L-1116"><span class="linenos">1116</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> +</span><span id="L-1117"><a href="#L-1117"><span class="linenos">1117</span></a> +</span><span id="L-1118"><a href="#L-1118"><span class="linenos">1118</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> +</span><span id="L-1119"><a href="#L-1119"><span class="linenos">1119</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> +</span><span id="L-1120"><a href="#L-1120"><span class="linenos">1120</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1121"><a href="#L-1121"><span class="linenos">1121</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1122"><a href="#L-1122"><span class="linenos">1122</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="L-1123"><a href="#L-1123"><span class="linenos">1123</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">delim_size</span><span class="p">)</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> +</span><span id="L-1124"><a href="#L-1124"><span class="linenos">1124</span></a> <span class="k">if</span> <span class="n">delim_size</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="L-1125"><a href="#L-1125"><span class="linenos">1125</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">delim_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="L-1126"><a href="#L-1126"><span class="linenos">1126</span></a> <span class="k">break</span> +</span><span id="L-1127"><a href="#L-1127"><span class="linenos">1127</span></a> +</span><span id="L-1128"><a href="#L-1128"><span class="linenos">1128</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> +</span><span id="L-1129"><a href="#L-1129"><span class="linenos">1129</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="L-1130"><a href="#L-1130"><span class="linenos">1130</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> +</span><span id="L-1131"><a href="#L-1131"><span class="linenos">1131</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="L-1132"><a href="#L-1132"><span class="linenos">1132</span></a> +</span><span id="L-1133"><a href="#L-1133"><span class="linenos">1133</span></a> <span class="k">return</span> <span class="n">text</span> </span></pre></div> @@ -6285,230 +6287,230 @@ </span><span id="Tokenizer-503"><a href="#Tokenizer-503"><span class="linenos"> 503</span></a> <span class="s2">"CUBE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CUBE</span><span class="p">,</span> </span><span id="Tokenizer-504"><a href="#Tokenizer-504"><span class="linenos"> 504</span></a> <span class="s2">"CURRENT_DATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_DATE</span><span class="p">,</span> </span><span id="Tokenizer-505"><a href="#Tokenizer-505"><span class="linenos"> 505</span></a> <span class="s2">"CURRENT ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_ROW</span><span class="p">,</span> -</span><span id="Tokenizer-506"><a href="#Tokenizer-506"><span class="linenos"> 506</span></a> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> -</span><span id="Tokenizer-507"><a href="#Tokenizer-507"><span class="linenos"> 507</span></a> <span class="s2">"DATABASE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> -</span><span id="Tokenizer-508"><a href="#Tokenizer-508"><span class="linenos"> 508</span></a> <span class="s2">"DEFAULT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> -</span><span id="Tokenizer-509"><a href="#Tokenizer-509"><span class="linenos"> 509</span></a> <span class="s2">"DELETE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> -</span><span id="Tokenizer-510"><a href="#Tokenizer-510"><span class="linenos"> 510</span></a> <span class="s2">"DESC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">,</span> -</span><span id="Tokenizer-511"><a href="#Tokenizer-511"><span class="linenos"> 511</span></a> <span class="s2">"DESCRIBE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> -</span><span id="Tokenizer-512"><a href="#Tokenizer-512"><span class="linenos"> 512</span></a> <span class="s2">"DISTINCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT</span><span class="p">,</span> -</span><span id="Tokenizer-513"><a href="#Tokenizer-513"><span class="linenos"> 513</span></a> <span class="s2">"DISTINCT FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT_FROM</span><span class="p">,</span> -</span><span id="Tokenizer-514"><a href="#Tokenizer-514"><span class="linenos"> 514</span></a> <span class="s2">"DISTRIBUTE BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> -</span><span id="Tokenizer-515"><a href="#Tokenizer-515"><span class="linenos"> 515</span></a> <span class="s2">"DIV"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> -</span><span id="Tokenizer-516"><a href="#Tokenizer-516"><span class="linenos"> 516</span></a> <span class="s2">"DROP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> -</span><span id="Tokenizer-517"><a href="#Tokenizer-517"><span class="linenos"> 517</span></a> <span class="s2">"ELSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ELSE</span><span class="p">,</span> -</span><span id="Tokenizer-518"><a href="#Tokenizer-518"><span class="linenos"> 518</span></a> <span class="s2">"END"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> -</span><span id="Tokenizer-519"><a href="#Tokenizer-519"><span class="linenos"> 519</span></a> <span class="s2">"ESCAPE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> -</span><span id="Tokenizer-520"><a href="#Tokenizer-520"><span class="linenos"> 520</span></a> <span class="s2">"EXCEPT"</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="Tokenizer-521"><a href="#Tokenizer-521"><span class="linenos"> 521</span></a> <span class="s2">"EXECUTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> -</span><span id="Tokenizer-522"><a href="#Tokenizer-522"><span class="linenos"> 522</span></a> <span class="s2">"EXISTS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">,</span> -</span><span id="Tokenizer-523"><a href="#Tokenizer-523"><span class="linenos"> 523</span></a> <span class="s2">"FALSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> -</span><span id="Tokenizer-524"><a href="#Tokenizer-524"><span class="linenos"> 524</span></a> <span class="s2">"FETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> -</span><span id="Tokenizer-525"><a href="#Tokenizer-525"><span class="linenos"> 525</span></a> <span class="s2">"FILTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> -</span><span id="Tokenizer-526"><a href="#Tokenizer-526"><span class="linenos"> 526</span></a> <span class="s2">"FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> -</span><span id="Tokenizer-527"><a href="#Tokenizer-527"><span class="linenos"> 527</span></a> <span class="s2">"FULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> -</span><span id="Tokenizer-528"><a href="#Tokenizer-528"><span class="linenos"> 528</span></a> <span class="s2">"FUNCTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> -</span><span id="Tokenizer-529"><a href="#Tokenizer-529"><span class="linenos"> 529</span></a> <span class="s2">"FOLLOWING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> -</span><span id="Tokenizer-530"><a href="#Tokenizer-530"><span class="linenos"> 530</span></a> <span class="s2">"FOR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOR</span><span class="p">,</span> -</span><span id="Tokenizer-531"><a href="#Tokenizer-531"><span class="linenos"> 531</span></a> <span class="s2">"FOREIGN KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">,</span> -</span><span id="Tokenizer-532"><a href="#Tokenizer-532"><span class="linenos"> 532</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> -</span><span id="Tokenizer-533"><a href="#Tokenizer-533"><span class="linenos"> 533</span></a> <span class="s2">"FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> -</span><span id="Tokenizer-534"><a href="#Tokenizer-534"><span class="linenos"> 534</span></a> <span class="s2">"GLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">,</span> -</span><span id="Tokenizer-535"><a href="#Tokenizer-535"><span class="linenos"> 535</span></a> <span class="s2">"GROUP BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUP_BY</span><span class="p">,</span> -</span><span id="Tokenizer-536"><a href="#Tokenizer-536"><span class="linenos"> 536</span></a> <span class="s2">"GROUPING SETS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUPING_SETS</span><span class="p">,</span> -</span><span id="Tokenizer-537"><a href="#Tokenizer-537"><span class="linenos"> 537</span></a> <span class="s2">"HAVING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HAVING</span><span class="p">,</span> -</span><span id="Tokenizer-538"><a href="#Tokenizer-538"><span class="linenos"> 538</span></a> <span class="s2">"IF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> -</span><span id="Tokenizer-539"><a href="#Tokenizer-539"><span class="linenos"> 539</span></a> <span class="s2">"ILIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> -</span><span id="Tokenizer-540"><a href="#Tokenizer-540"><span class="linenos"> 540</span></a> <span class="s2">"IGNORE NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IGNORE_NULLS</span><span class="p">,</span> -</span><span id="Tokenizer-541"><a href="#Tokenizer-541"><span class="linenos"> 541</span></a> <span class="s2">"IN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">,</span> -</span><span id="Tokenizer-542"><a href="#Tokenizer-542"><span class="linenos"> 542</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> -</span><span id="Tokenizer-543"><a href="#Tokenizer-543"><span class="linenos"> 543</span></a> <span class="s2">"INET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> -</span><span id="Tokenizer-544"><a href="#Tokenizer-544"><span class="linenos"> 544</span></a> <span class="s2">"INNER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> -</span><span id="Tokenizer-545"><a href="#Tokenizer-545"><span class="linenos"> 545</span></a> <span class="s2">"INSERT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</span><span class="p">,</span> -</span><span id="Tokenizer-546"><a href="#Tokenizer-546"><span class="linenos"> 546</span></a> <span class="s2">"INTERVAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> -</span><span id="Tokenizer-547"><a href="#Tokenizer-547"><span class="linenos"> 547</span></a> <span class="s2">"INTERSECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> -</span><span id="Tokenizer-548"><a href="#Tokenizer-548"><span class="linenos"> 548</span></a> <span class="s2">"INTO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> -</span><span id="Tokenizer-549"><a href="#Tokenizer-549"><span class="linenos"> 549</span></a> <span class="s2">"IS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">,</span> -</span><span id="Tokenizer-550"><a href="#Tokenizer-550"><span class="linenos"> 550</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> -</span><span id="Tokenizer-551"><a href="#Tokenizer-551"><span class="linenos"> 551</span></a> <span class="s2">"JOIN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN</span><span class="p">,</span> -</span><span id="Tokenizer-552"><a href="#Tokenizer-552"><span class="linenos"> 552</span></a> <span class="s2">"LATERAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LATERAL</span><span class="p">,</span> -</span><span id="Tokenizer-553"><a href="#Tokenizer-553"><span class="linenos"> 553</span></a> <span class="s2">"LAZY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> -</span><span id="Tokenizer-554"><a href="#Tokenizer-554"><span class="linenos"> 554</span></a> <span class="s2">"LEADING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> -</span><span id="Tokenizer-555"><a href="#Tokenizer-555"><span class="linenos"> 555</span></a> <span class="s2">"LEFT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> -</span><span id="Tokenizer-556"><a href="#Tokenizer-556"><span class="linenos"> 556</span></a> <span class="s2">"LIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> -</span><span id="Tokenizer-557"><a href="#Tokenizer-557"><span class="linenos"> 557</span></a> <span class="s2">"LIMIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">,</span> -</span><span id="Tokenizer-558"><a href="#Tokenizer-558"><span class="linenos"> 558</span></a> <span class="s2">"LOAD DATA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</span><span class="p">,</span> -</span><span id="Tokenizer-559"><a href="#Tokenizer-559"><span class="linenos"> 559</span></a> <span class="s2">"LOCAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> -</span><span id="Tokenizer-560"><a href="#Tokenizer-560"><span class="linenos"> 560</span></a> <span class="s2">"MATERIALIZED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> -</span><span id="Tokenizer-561"><a href="#Tokenizer-561"><span class="linenos"> 561</span></a> <span class="s2">"MERGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> -</span><span id="Tokenizer-562"><a href="#Tokenizer-562"><span class="linenos"> 562</span></a> <span class="s2">"NATURAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> -</span><span id="Tokenizer-563"><a href="#Tokenizer-563"><span class="linenos"> 563</span></a> <span class="s2">"NEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> -</span><span id="Tokenizer-564"><a href="#Tokenizer-564"><span class="linenos"> 564</span></a> <span class="s2">"NO ACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NO_ACTION</span><span class="p">,</span> -</span><span id="Tokenizer-565"><a href="#Tokenizer-565"><span class="linenos"> 565</span></a> <span class="s2">"NOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</span><span class="p">,</span> -</span><span id="Tokenizer-566"><a href="#Tokenizer-566"><span class="linenos"> 566</span></a> <span class="s2">"NOTNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOTNULL</span><span class="p">,</span> -</span><span id="Tokenizer-567"><a href="#Tokenizer-567"><span class="linenos"> 567</span></a> <span class="s2">"NULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> -</span><span id="Tokenizer-568"><a href="#Tokenizer-568"><span class="linenos"> 568</span></a> <span class="s2">"NULLS FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_FIRST</span><span class="p">,</span> -</span><span id="Tokenizer-569"><a href="#Tokenizer-569"><span class="linenos"> 569</span></a> <span class="s2">"NULLS LAST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_LAST</span><span class="p">,</span> -</span><span id="Tokenizer-570"><a href="#Tokenizer-570"><span class="linenos"> 570</span></a> <span class="s2">"OBJECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> -</span><span id="Tokenizer-571"><a href="#Tokenizer-571"><span class="linenos"> 571</span></a> <span class="s2">"OFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> -</span><span id="Tokenizer-572"><a href="#Tokenizer-572"><span class="linenos"> 572</span></a> <span class="s2">"ON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ON</span><span class="p">,</span> -</span><span id="Tokenizer-573"><a href="#Tokenizer-573"><span class="linenos"> 573</span></a> <span class="s2">"ONLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> -</span><span id="Tokenizer-574"><a href="#Tokenizer-574"><span class="linenos"> 574</span></a> <span class="s2">"OPTIONS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> -</span><span id="Tokenizer-575"><a href="#Tokenizer-575"><span class="linenos"> 575</span></a> <span class="s2">"OR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> -</span><span id="Tokenizer-576"><a href="#Tokenizer-576"><span class="linenos"> 576</span></a> <span class="s2">"ORDER BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDER_BY</span><span class="p">,</span> -</span><span id="Tokenizer-577"><a href="#Tokenizer-577"><span class="linenos"> 577</span></a> <span class="s2">"ORDINALITY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> -</span><span id="Tokenizer-578"><a href="#Tokenizer-578"><span class="linenos"> 578</span></a> <span class="s2">"OUTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> -</span><span id="Tokenizer-579"><a href="#Tokenizer-579"><span class="linenos"> 579</span></a> <span class="s2">"OUT OF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUT_OF</span><span class="p">,</span> -</span><span id="Tokenizer-580"><a href="#Tokenizer-580"><span class="linenos"> 580</span></a> <span class="s2">"OVER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVER</span><span class="p">,</span> -</span><span id="Tokenizer-581"><a href="#Tokenizer-581"><span class="linenos"> 581</span></a> <span class="s2">"OVERLAPS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">,</span> -</span><span id="Tokenizer-582"><a href="#Tokenizer-582"><span class="linenos"> 582</span></a> <span class="s2">"OVERWRITE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERWRITE</span><span class="p">,</span> -</span><span id="Tokenizer-583"><a href="#Tokenizer-583"><span class="linenos"> 583</span></a> <span class="s2">"PARTITION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION</span><span class="p">,</span> -</span><span id="Tokenizer-584"><a href="#Tokenizer-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITION BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> -</span><span id="Tokenizer-585"><a href="#Tokenizer-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITIONED BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> -</span><span id="Tokenizer-586"><a href="#Tokenizer-586"><span class="linenos"> 586</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> -</span><span id="Tokenizer-587"><a href="#Tokenizer-587"><span class="linenos"> 587</span></a> <span class="s2">"PERCENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> -</span><span id="Tokenizer-588"><a href="#Tokenizer-588"><span class="linenos"> 588</span></a> <span class="s2">"PIVOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> -</span><span id="Tokenizer-589"><a href="#Tokenizer-589"><span class="linenos"> 589</span></a> <span class="s2">"PRECEDING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> -</span><span id="Tokenizer-590"><a href="#Tokenizer-590"><span class="linenos"> 590</span></a> <span class="s2">"PRIMARY KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> -</span><span id="Tokenizer-591"><a href="#Tokenizer-591"><span class="linenos"> 591</span></a> <span class="s2">"PROCEDURE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> -</span><span id="Tokenizer-592"><a href="#Tokenizer-592"><span class="linenos"> 592</span></a> <span class="s2">"QUALIFY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">QUALIFY</span><span class="p">,</span> -</span><span id="Tokenizer-593"><a href="#Tokenizer-593"><span class="linenos"> 593</span></a> <span class="s2">"RANGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> -</span><span id="Tokenizer-594"><a href="#Tokenizer-594"><span class="linenos"> 594</span></a> <span class="s2">"RECURSIVE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RECURSIVE</span><span class="p">,</span> -</span><span id="Tokenizer-595"><a href="#Tokenizer-595"><span class="linenos"> 595</span></a> <span class="s2">"REGEXP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="Tokenizer-596"><a href="#Tokenizer-596"><span class="linenos"> 596</span></a> <span class="s2">"REPLACE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> -</span><span id="Tokenizer-597"><a href="#Tokenizer-597"><span class="linenos"> 597</span></a> <span class="s2">"RESPECT NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RESPECT_NULLS</span><span class="p">,</span> -</span><span id="Tokenizer-598"><a href="#Tokenizer-598"><span class="linenos"> 598</span></a> <span class="s2">"REFERENCES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> -</span><span id="Tokenizer-599"><a href="#Tokenizer-599"><span class="linenos"> 599</span></a> <span class="s2">"RIGHT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> -</span><span id="Tokenizer-600"><a href="#Tokenizer-600"><span class="linenos"> 600</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> -</span><span id="Tokenizer-601"><a href="#Tokenizer-601"><span class="linenos"> 601</span></a> <span class="s2">"ROLLBACK"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span><span class="p">,</span> -</span><span id="Tokenizer-602"><a href="#Tokenizer-602"><span class="linenos"> 602</span></a> <span class="s2">"ROLLUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLUP</span><span class="p">,</span> -</span><span id="Tokenizer-603"><a href="#Tokenizer-603"><span class="linenos"> 603</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> -</span><span id="Tokenizer-604"><a href="#Tokenizer-604"><span class="linenos"> 604</span></a> <span class="s2">"ROWS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> -</span><span id="Tokenizer-605"><a href="#Tokenizer-605"><span class="linenos"> 605</span></a> <span class="s2">"SCHEMA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> -</span><span id="Tokenizer-606"><a href="#Tokenizer-606"><span class="linenos"> 606</span></a> <span class="s2">"SEED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> -</span><span id="Tokenizer-607"><a href="#Tokenizer-607"><span class="linenos"> 607</span></a> <span class="s2">"SELECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> -</span><span id="Tokenizer-608"><a href="#Tokenizer-608"><span class="linenos"> 608</span></a> <span class="s2">"SEMI"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> -</span><span id="Tokenizer-609"><a href="#Tokenizer-609"><span class="linenos"> 609</span></a> <span class="s2">"SET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> -</span><span id="Tokenizer-610"><a href="#Tokenizer-610"><span class="linenos"> 610</span></a> <span class="s2">"SHOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> -</span><span id="Tokenizer-611"><a href="#Tokenizer-611"><span class="linenos"> 611</span></a> <span class="s2">"SIMILAR TO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">,</span> -</span><span id="Tokenizer-612"><a href="#Tokenizer-612"><span class="linenos"> 612</span></a> <span class="s2">"SOME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">,</span> -</span><span id="Tokenizer-613"><a href="#Tokenizer-613"><span class="linenos"> 613</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> -</span><span id="Tokenizer-614"><a href="#Tokenizer-614"><span class="linenos"> 614</span></a> <span class="s2">"SORT BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> -</span><span id="Tokenizer-615"><a href="#Tokenizer-615"><span class="linenos"> 615</span></a> <span class="s2">"TABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> -</span><span id="Tokenizer-616"><a href="#Tokenizer-616"><span class="linenos"> 616</span></a> <span class="s2">"TABLESAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> -</span><span id="Tokenizer-617"><a href="#Tokenizer-617"><span class="linenos"> 617</span></a> <span class="s2">"TEMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> -</span><span id="Tokenizer-618"><a href="#Tokenizer-618"><span class="linenos"> 618</span></a> <span class="s2">"TEMPORARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> -</span><span id="Tokenizer-619"><a href="#Tokenizer-619"><span class="linenos"> 619</span></a> <span class="s2">"THEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">THEN</span><span class="p">,</span> -</span><span id="Tokenizer-620"><a href="#Tokenizer-620"><span class="linenos"> 620</span></a> <span class="s2">"TRUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> -</span><span id="Tokenizer-621"><a href="#Tokenizer-621"><span class="linenos"> 621</span></a> <span class="s2">"TRAILING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> -</span><span id="Tokenizer-622"><a href="#Tokenizer-622"><span class="linenos"> 622</span></a> <span class="s2">"UNBOUNDED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> -</span><span id="Tokenizer-623"><a href="#Tokenizer-623"><span class="linenos"> 623</span></a> <span class="s2">"UNION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> -</span><span id="Tokenizer-624"><a href="#Tokenizer-624"><span class="linenos"> 624</span></a> <span class="s2">"UNLOGGED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> -</span><span id="Tokenizer-625"><a href="#Tokenizer-625"><span class="linenos"> 625</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> -</span><span id="Tokenizer-626"><a href="#Tokenizer-626"><span class="linenos"> 626</span></a> <span class="s2">"UNPIVOT"</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="Tokenizer-627"><a href="#Tokenizer-627"><span class="linenos"> 627</span></a> <span class="s2">"UPDATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">,</span> -</span><span id="Tokenizer-628"><a href="#Tokenizer-628"><span class="linenos"> 628</span></a> <span class="s2">"USE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</span><span class="p">,</span> -</span><span id="Tokenizer-629"><a href="#Tokenizer-629"><span class="linenos"> 629</span></a> <span class="s2">"USING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USING</span><span class="p">,</span> -</span><span id="Tokenizer-630"><a href="#Tokenizer-630"><span class="linenos"> 630</span></a> <span class="s2">"VALUES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> -</span><span id="Tokenizer-631"><a href="#Tokenizer-631"><span class="linenos"> 631</span></a> <span class="s2">"VIEW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> -</span><span id="Tokenizer-632"><a href="#Tokenizer-632"><span class="linenos"> 632</span></a> <span class="s2">"VOLATILE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> -</span><span id="Tokenizer-633"><a href="#Tokenizer-633"><span class="linenos"> 633</span></a> <span class="s2">"WHEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHEN</span><span class="p">,</span> -</span><span id="Tokenizer-634"><a href="#Tokenizer-634"><span class="linenos"> 634</span></a> <span class="s2">"WHERE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHERE</span><span class="p">,</span> -</span><span id="Tokenizer-635"><a href="#Tokenizer-635"><span class="linenos"> 635</span></a> <span class="s2">"WINDOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> -</span><span id="Tokenizer-636"><a href="#Tokenizer-636"><span class="linenos"> 636</span></a> <span class="s2">"WITH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> -</span><span id="Tokenizer-637"><a href="#Tokenizer-637"><span class="linenos"> 637</span></a> <span class="s2">"WITH TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_TIME_ZONE</span><span class="p">,</span> -</span><span id="Tokenizer-638"><a href="#Tokenizer-638"><span class="linenos"> 638</span></a> <span class="s2">"WITH LOCAL TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_LOCAL_TIME_ZONE</span><span class="p">,</span> -</span><span id="Tokenizer-639"><a href="#Tokenizer-639"><span class="linenos"> 639</span></a> <span class="s2">"WITHIN GROUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHIN_GROUP</span><span class="p">,</span> -</span><span id="Tokenizer-640"><a href="#Tokenizer-640"><span class="linenos"> 640</span></a> <span class="s2">"WITHOUT TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHOUT_TIME_ZONE</span><span class="p">,</span> -</span><span id="Tokenizer-641"><a href="#Tokenizer-641"><span class="linenos"> 641</span></a> <span class="s2">"APPLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> -</span><span id="Tokenizer-642"><a href="#Tokenizer-642"><span class="linenos"> 642</span></a> <span class="s2">"ARRAY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> -</span><span id="Tokenizer-643"><a href="#Tokenizer-643"><span class="linenos"> 643</span></a> <span class="s2">"BIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> -</span><span id="Tokenizer-644"><a href="#Tokenizer-644"><span class="linenos"> 644</span></a> <span class="s2">"BOOL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="Tokenizer-645"><a href="#Tokenizer-645"><span class="linenos"> 645</span></a> <span class="s2">"BOOLEAN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> -</span><span id="Tokenizer-646"><a href="#Tokenizer-646"><span class="linenos"> 646</span></a> <span class="s2">"BYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="Tokenizer-647"><a href="#Tokenizer-647"><span class="linenos"> 647</span></a> <span class="s2">"TINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> -</span><span id="Tokenizer-648"><a href="#Tokenizer-648"><span class="linenos"> 648</span></a> <span class="s2">"SHORT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="Tokenizer-649"><a href="#Tokenizer-649"><span class="linenos"> 649</span></a> <span class="s2">"SMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="Tokenizer-650"><a href="#Tokenizer-650"><span class="linenos"> 650</span></a> <span class="s2">"INT2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> -</span><span id="Tokenizer-651"><a href="#Tokenizer-651"><span class="linenos"> 651</span></a> <span class="s2">"INTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="Tokenizer-652"><a href="#Tokenizer-652"><span class="linenos"> 652</span></a> <span class="s2">"INT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="Tokenizer-653"><a href="#Tokenizer-653"><span class="linenos"> 653</span></a> <span class="s2">"INT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> -</span><span id="Tokenizer-654"><a href="#Tokenizer-654"><span class="linenos"> 654</span></a> <span class="s2">"LONG"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="Tokenizer-655"><a href="#Tokenizer-655"><span class="linenos"> 655</span></a> <span class="s2">"BIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="Tokenizer-656"><a href="#Tokenizer-656"><span class="linenos"> 656</span></a> <span class="s2">"INT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> -</span><span id="Tokenizer-657"><a href="#Tokenizer-657"><span class="linenos"> 657</span></a> <span class="s2">"DECIMAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="Tokenizer-658"><a href="#Tokenizer-658"><span class="linenos"> 658</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> -</span><span id="Tokenizer-659"><a href="#Tokenizer-659"><span class="linenos"> 659</span></a> <span class="s2">"NULLABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> -</span><span id="Tokenizer-660"><a href="#Tokenizer-660"><span class="linenos"> 660</span></a> <span class="s2">"NUMBER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="Tokenizer-661"><a href="#Tokenizer-661"><span class="linenos"> 661</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="Tokenizer-662"><a href="#Tokenizer-662"><span class="linenos"> 662</span></a> <span class="s2">"FIXED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> -</span><span id="Tokenizer-663"><a href="#Tokenizer-663"><span class="linenos"> 663</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="Tokenizer-664"><a href="#Tokenizer-664"><span class="linenos"> 664</span></a> <span class="s2">"FLOAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="Tokenizer-665"><a href="#Tokenizer-665"><span class="linenos"> 665</span></a> <span class="s2">"FLOAT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> -</span><span id="Tokenizer-666"><a href="#Tokenizer-666"><span class="linenos"> 666</span></a> <span class="s2">"FLOAT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="Tokenizer-667"><a href="#Tokenizer-667"><span class="linenos"> 667</span></a> <span class="s2">"DOUBLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="Tokenizer-668"><a href="#Tokenizer-668"><span class="linenos"> 668</span></a> <span class="s2">"DOUBLE PRECISION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> -</span><span id="Tokenizer-669"><a href="#Tokenizer-669"><span class="linenos"> 669</span></a> <span class="s2">"JSON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> -</span><span id="Tokenizer-670"><a href="#Tokenizer-670"><span class="linenos"> 670</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="Tokenizer-671"><a href="#Tokenizer-671"><span class="linenos"> 671</span></a> <span class="s2">"CHARACTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> -</span><span id="Tokenizer-672"><a href="#Tokenizer-672"><span class="linenos"> 672</span></a> <span class="s2">"NCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> -</span><span id="Tokenizer-673"><a href="#Tokenizer-673"><span class="linenos"> 673</span></a> <span class="s2">"VARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="Tokenizer-674"><a href="#Tokenizer-674"><span class="linenos"> 674</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> -</span><span id="Tokenizer-675"><a href="#Tokenizer-675"><span class="linenos"> 675</span></a> <span class="s2">"NVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="Tokenizer-676"><a href="#Tokenizer-676"><span class="linenos"> 676</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> -</span><span id="Tokenizer-677"><a href="#Tokenizer-677"><span class="linenos"> 677</span></a> <span class="s2">"STR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="Tokenizer-678"><a href="#Tokenizer-678"><span class="linenos"> 678</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="Tokenizer-679"><a href="#Tokenizer-679"><span class="linenos"> 679</span></a> <span class="s2">"TEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="Tokenizer-680"><a href="#Tokenizer-680"><span class="linenos"> 680</span></a> <span class="s2">"CLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="Tokenizer-681"><a href="#Tokenizer-681"><span class="linenos"> 681</span></a> <span class="s2">"LONGVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> -</span><span id="Tokenizer-682"><a href="#Tokenizer-682"><span class="linenos"> 682</span></a> <span class="s2">"BINARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> -</span><span id="Tokenizer-683"><a href="#Tokenizer-683"><span class="linenos"> 683</span></a> <span class="s2">"BLOB"</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="Tokenizer-684"><a href="#Tokenizer-684"><span class="linenos"> 684</span></a> <span class="s2">"BYTEA"</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="Tokenizer-685"><a href="#Tokenizer-685"><span class="linenos"> 685</span></a> <span class="s2">"VARBINARY"</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="Tokenizer-686"><a href="#Tokenizer-686"><span class="linenos"> 686</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> -</span><span id="Tokenizer-687"><a href="#Tokenizer-687"><span class="linenos"> 687</span></a> <span class="s2">"TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> -</span><span id="Tokenizer-688"><a href="#Tokenizer-688"><span class="linenos"> 688</span></a> <span class="s2">"TIMESTAMPTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> -</span><span id="Tokenizer-689"><a href="#Tokenizer-689"><span class="linenos"> 689</span></a> <span class="s2">"TIMESTAMPLTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> -</span><span id="Tokenizer-690"><a href="#Tokenizer-690"><span class="linenos"> 690</span></a> <span class="s2">"DATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> -</span><span id="Tokenizer-691"><a href="#Tokenizer-691"><span class="linenos"> 691</span></a> <span class="s2">"DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> -</span><span id="Tokenizer-692"><a href="#Tokenizer-692"><span class="linenos"> 692</span></a> <span class="s2">"UNIQUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> -</span><span id="Tokenizer-693"><a href="#Tokenizer-693"><span class="linenos"> 693</span></a> <span class="s2">"STRUCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> -</span><span id="Tokenizer-694"><a href="#Tokenizer-694"><span class="linenos"> 694</span></a> <span class="s2">"VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> -</span><span id="Tokenizer-695"><a href="#Tokenizer-695"><span class="linenos"> 695</span></a> <span class="s2">"ALTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</span><span class="p">,</span> -</span><span id="Tokenizer-696"><a href="#Tokenizer-696"><span class="linenos"> 696</span></a> <span class="s2">"ALTER AGGREGATE"</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="Tokenizer-697"><a href="#Tokenizer-697"><span class="linenos"> 697</span></a> <span class="s2">"ALTER DEFAULT"</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="Tokenizer-698"><a href="#Tokenizer-698"><span class="linenos"> 698</span></a> <span class="s2">"ALTER DOMAIN"</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="Tokenizer-699"><a href="#Tokenizer-699"><span class="linenos"> 699</span></a> <span class="s2">"ALTER ROLE"</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="Tokenizer-700"><a href="#Tokenizer-700"><span class="linenos"> 700</span></a> <span class="s2">"ALTER RULE"</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="Tokenizer-701"><a href="#Tokenizer-701"><span class="linenos"> 701</span></a> <span class="s2">"ALTER SEQUENCE"</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="Tokenizer-702"><a href="#Tokenizer-702"><span class="linenos"> 702</span></a> <span class="s2">"ALTER TYPE"</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="Tokenizer-703"><a href="#Tokenizer-703"><span class="linenos"> 703</span></a> <span class="s2">"ALTER USER"</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="Tokenizer-704"><a href="#Tokenizer-704"><span class="linenos"> 704</span></a> <span class="s2">"ALTER VIEW"</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="Tokenizer-705"><a href="#Tokenizer-705"><span class="linenos"> 705</span></a> <span class="s2">"ANALYZE"</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="Tokenizer-706"><a href="#Tokenizer-706"><span class="linenos"> 706</span></a> <span class="s2">"CALL"</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="Tokenizer-707"><a href="#Tokenizer-707"><span class="linenos"> 707</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> -</span><span id="Tokenizer-708"><a href="#Tokenizer-708"><span class="linenos"> 708</span></a> <span class="s2">"COPY"</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="Tokenizer-709"><a href="#Tokenizer-709"><span class="linenos"> 709</span></a> <span class="s2">"EXPLAIN"</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="Tokenizer-710"><a href="#Tokenizer-710"><span class="linenos"> 710</span></a> <span class="s2">"GRANT"</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="Tokenizer-711"><a href="#Tokenizer-711"><span class="linenos"> 711</span></a> <span class="s2">"OPTIMIZE"</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="Tokenizer-712"><a href="#Tokenizer-712"><span class="linenos"> 712</span></a> <span class="s2">"PREPARE"</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="Tokenizer-713"><a href="#Tokenizer-713"><span class="linenos"> 713</span></a> <span class="s2">"TRUNCATE"</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="Tokenizer-714"><a href="#Tokenizer-714"><span class="linenos"> 714</span></a> <span class="s2">"VACUUM"</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="Tokenizer-715"><a href="#Tokenizer-715"><span class="linenos"> 715</span></a> <span class="p">}</span> -</span><span id="Tokenizer-716"><a href="#Tokenizer-716"><span class="linenos"> 716</span></a> -</span><span id="Tokenizer-717"><a href="#Tokenizer-717"><span class="linenos"> 717</span></a> <span class="n">WHITE_SPACE</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Tokenizer-718"><a href="#Tokenizer-718"><span class="linenos"> 718</span></a> <span class="s2">" "</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> -</span><span id="Tokenizer-719"><a href="#Tokenizer-719"><span class="linenos"> 719</span></a> <span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> -</span><span id="Tokenizer-720"><a href="#Tokenizer-720"><span class="linenos"> 720</span></a> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> -</span><span id="Tokenizer-721"><a href="#Tokenizer-721"><span class="linenos"> 721</span></a> <span class="s2">"</span><span class="se">\r</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> -</span><span id="Tokenizer-722"><a href="#Tokenizer-722"><span class="linenos"> 722</span></a> <span class="s2">"</span><span class="se">\r\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> -</span><span id="Tokenizer-723"><a href="#Tokenizer-723"><span class="linenos"> 723</span></a> <span class="p">}</span> -</span><span id="Tokenizer-724"><a href="#Tokenizer-724"><span class="linenos"> 724</span></a> -</span><span id="Tokenizer-725"><a href="#Tokenizer-725"><span class="linenos"> 725</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="Tokenizer-726"><a href="#Tokenizer-726"><span class="linenos"> 726</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> -</span><span id="Tokenizer-727"><a href="#Tokenizer-727"><span class="linenos"> 727</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> -</span><span id="Tokenizer-728"><a href="#Tokenizer-728"><span class="linenos"> 728</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> -</span><span id="Tokenizer-729"><a href="#Tokenizer-729"><span class="linenos"> 729</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> +</span><span id="Tokenizer-506"><a href="#Tokenizer-506"><span class="linenos"> 506</span></a> <span class="s2">"CURRENT_TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIME</span><span class="p">,</span> +</span><span id="Tokenizer-507"><a href="#Tokenizer-507"><span class="linenos"> 507</span></a> <span class="s2">"CURRENT_TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CURRENT_TIMESTAMP</span><span class="p">,</span> +</span><span id="Tokenizer-508"><a href="#Tokenizer-508"><span class="linenos"> 508</span></a> <span class="s2">"DATABASE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATABASE</span><span class="p">,</span> +</span><span id="Tokenizer-509"><a href="#Tokenizer-509"><span class="linenos"> 509</span></a> <span class="s2">"DEFAULT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DEFAULT</span><span class="p">,</span> +</span><span id="Tokenizer-510"><a href="#Tokenizer-510"><span class="linenos"> 510</span></a> <span class="s2">"DELETE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DELETE</span><span class="p">,</span> +</span><span id="Tokenizer-511"><a href="#Tokenizer-511"><span class="linenos"> 511</span></a> <span class="s2">"DESC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESC</span><span class="p">,</span> +</span><span id="Tokenizer-512"><a href="#Tokenizer-512"><span class="linenos"> 512</span></a> <span class="s2">"DESCRIBE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DESCRIBE</span><span class="p">,</span> +</span><span id="Tokenizer-513"><a href="#Tokenizer-513"><span class="linenos"> 513</span></a> <span class="s2">"DISTINCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT</span><span class="p">,</span> +</span><span id="Tokenizer-514"><a href="#Tokenizer-514"><span class="linenos"> 514</span></a> <span class="s2">"DISTINCT FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTINCT_FROM</span><span class="p">,</span> +</span><span id="Tokenizer-515"><a href="#Tokenizer-515"><span class="linenos"> 515</span></a> <span class="s2">"DISTRIBUTE BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DISTRIBUTE_BY</span><span class="p">,</span> +</span><span id="Tokenizer-516"><a href="#Tokenizer-516"><span class="linenos"> 516</span></a> <span class="s2">"DIV"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DIV</span><span class="p">,</span> +</span><span id="Tokenizer-517"><a href="#Tokenizer-517"><span class="linenos"> 517</span></a> <span class="s2">"DROP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DROP</span><span class="p">,</span> +</span><span id="Tokenizer-518"><a href="#Tokenizer-518"><span class="linenos"> 518</span></a> <span class="s2">"ELSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ELSE</span><span class="p">,</span> +</span><span id="Tokenizer-519"><a href="#Tokenizer-519"><span class="linenos"> 519</span></a> <span class="s2">"END"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">END</span><span class="p">,</span> +</span><span id="Tokenizer-520"><a href="#Tokenizer-520"><span class="linenos"> 520</span></a> <span class="s2">"ESCAPE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ESCAPE</span><span class="p">,</span> +</span><span id="Tokenizer-521"><a href="#Tokenizer-521"><span class="linenos"> 521</span></a> <span class="s2">"EXCEPT"</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="Tokenizer-522"><a href="#Tokenizer-522"><span class="linenos"> 522</span></a> <span class="s2">"EXECUTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> +</span><span id="Tokenizer-523"><a href="#Tokenizer-523"><span class="linenos"> 523</span></a> <span class="s2">"EXISTS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXISTS</span><span class="p">,</span> +</span><span id="Tokenizer-524"><a href="#Tokenizer-524"><span class="linenos"> 524</span></a> <span class="s2">"FALSE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FALSE</span><span class="p">,</span> +</span><span id="Tokenizer-525"><a href="#Tokenizer-525"><span class="linenos"> 525</span></a> <span class="s2">"FETCH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> +</span><span id="Tokenizer-526"><a href="#Tokenizer-526"><span class="linenos"> 526</span></a> <span class="s2">"FILTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FILTER</span><span class="p">,</span> +</span><span id="Tokenizer-527"><a href="#Tokenizer-527"><span class="linenos"> 527</span></a> <span class="s2">"FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FIRST</span><span class="p">,</span> +</span><span id="Tokenizer-528"><a href="#Tokenizer-528"><span class="linenos"> 528</span></a> <span class="s2">"FULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FULL</span><span class="p">,</span> +</span><span id="Tokenizer-529"><a href="#Tokenizer-529"><span class="linenos"> 529</span></a> <span class="s2">"FUNCTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FUNCTION</span><span class="p">,</span> +</span><span id="Tokenizer-530"><a href="#Tokenizer-530"><span class="linenos"> 530</span></a> <span class="s2">"FOLLOWING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOLLOWING</span><span class="p">,</span> +</span><span id="Tokenizer-531"><a href="#Tokenizer-531"><span class="linenos"> 531</span></a> <span class="s2">"FOR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOR</span><span class="p">,</span> +</span><span id="Tokenizer-532"><a href="#Tokenizer-532"><span class="linenos"> 532</span></a> <span class="s2">"FOREIGN KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FOREIGN_KEY</span><span class="p">,</span> +</span><span id="Tokenizer-533"><a href="#Tokenizer-533"><span class="linenos"> 533</span></a> <span class="s2">"FORMAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FORMAT</span><span class="p">,</span> +</span><span id="Tokenizer-534"><a href="#Tokenizer-534"><span class="linenos"> 534</span></a> <span class="s2">"FROM"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FROM</span><span class="p">,</span> +</span><span id="Tokenizer-535"><a href="#Tokenizer-535"><span class="linenos"> 535</span></a> <span class="s2">"GLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GLOB</span><span class="p">,</span> +</span><span id="Tokenizer-536"><a href="#Tokenizer-536"><span class="linenos"> 536</span></a> <span class="s2">"GROUP BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUP_BY</span><span class="p">,</span> +</span><span id="Tokenizer-537"><a href="#Tokenizer-537"><span class="linenos"> 537</span></a> <span class="s2">"GROUPING SETS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">GROUPING_SETS</span><span class="p">,</span> +</span><span id="Tokenizer-538"><a href="#Tokenizer-538"><span class="linenos"> 538</span></a> <span class="s2">"HAVING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HAVING</span><span class="p">,</span> +</span><span id="Tokenizer-539"><a href="#Tokenizer-539"><span class="linenos"> 539</span></a> <span class="s2">"IF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IF</span><span class="p">,</span> +</span><span id="Tokenizer-540"><a href="#Tokenizer-540"><span class="linenos"> 540</span></a> <span class="s2">"ILIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ILIKE</span><span class="p">,</span> +</span><span id="Tokenizer-541"><a href="#Tokenizer-541"><span class="linenos"> 541</span></a> <span class="s2">"IGNORE NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IGNORE_NULLS</span><span class="p">,</span> +</span><span id="Tokenizer-542"><a href="#Tokenizer-542"><span class="linenos"> 542</span></a> <span class="s2">"IN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IN</span><span class="p">,</span> +</span><span id="Tokenizer-543"><a href="#Tokenizer-543"><span class="linenos"> 543</span></a> <span class="s2">"INDEX"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INDEX</span><span class="p">,</span> +</span><span id="Tokenizer-544"><a href="#Tokenizer-544"><span class="linenos"> 544</span></a> <span class="s2">"INET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INET</span><span class="p">,</span> +</span><span id="Tokenizer-545"><a href="#Tokenizer-545"><span class="linenos"> 545</span></a> <span class="s2">"INNER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INNER</span><span class="p">,</span> +</span><span id="Tokenizer-546"><a href="#Tokenizer-546"><span class="linenos"> 546</span></a> <span class="s2">"INSERT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INSERT</span><span class="p">,</span> +</span><span id="Tokenizer-547"><a href="#Tokenizer-547"><span class="linenos"> 547</span></a> <span class="s2">"INTERVAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERVAL</span><span class="p">,</span> +</span><span id="Tokenizer-548"><a href="#Tokenizer-548"><span class="linenos"> 548</span></a> <span class="s2">"INTERSECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTERSECT</span><span class="p">,</span> +</span><span id="Tokenizer-549"><a href="#Tokenizer-549"><span class="linenos"> 549</span></a> <span class="s2">"INTO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INTO</span><span class="p">,</span> +</span><span id="Tokenizer-550"><a href="#Tokenizer-550"><span class="linenos"> 550</span></a> <span class="s2">"IS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">IS</span><span class="p">,</span> +</span><span id="Tokenizer-551"><a href="#Tokenizer-551"><span class="linenos"> 551</span></a> <span class="s2">"ISNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ISNULL</span><span class="p">,</span> +</span><span id="Tokenizer-552"><a href="#Tokenizer-552"><span class="linenos"> 552</span></a> <span class="s2">"JOIN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JOIN</span><span class="p">,</span> +</span><span id="Tokenizer-553"><a href="#Tokenizer-553"><span class="linenos"> 553</span></a> <span class="s2">"LATERAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LATERAL</span><span class="p">,</span> +</span><span id="Tokenizer-554"><a href="#Tokenizer-554"><span class="linenos"> 554</span></a> <span class="s2">"LAZY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LAZY</span><span class="p">,</span> +</span><span id="Tokenizer-555"><a href="#Tokenizer-555"><span class="linenos"> 555</span></a> <span class="s2">"LEADING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEADING</span><span class="p">,</span> +</span><span id="Tokenizer-556"><a href="#Tokenizer-556"><span class="linenos"> 556</span></a> <span class="s2">"LEFT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LEFT</span><span class="p">,</span> +</span><span id="Tokenizer-557"><a href="#Tokenizer-557"><span class="linenos"> 557</span></a> <span class="s2">"LIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIKE</span><span class="p">,</span> +</span><span id="Tokenizer-558"><a href="#Tokenizer-558"><span class="linenos"> 558</span></a> <span class="s2">"LIMIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LIMIT</span><span class="p">,</span> +</span><span id="Tokenizer-559"><a href="#Tokenizer-559"><span class="linenos"> 559</span></a> <span class="s2">"LOAD DATA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOAD_DATA</span><span class="p">,</span> +</span><span id="Tokenizer-560"><a href="#Tokenizer-560"><span class="linenos"> 560</span></a> <span class="s2">"LOCAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">LOCAL</span><span class="p">,</span> +</span><span id="Tokenizer-561"><a href="#Tokenizer-561"><span class="linenos"> 561</span></a> <span class="s2">"MATERIALIZED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MATERIALIZED</span><span class="p">,</span> +</span><span id="Tokenizer-562"><a href="#Tokenizer-562"><span class="linenos"> 562</span></a> <span class="s2">"MERGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MERGE</span><span class="p">,</span> +</span><span id="Tokenizer-563"><a href="#Tokenizer-563"><span class="linenos"> 563</span></a> <span class="s2">"NATURAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NATURAL</span><span class="p">,</span> +</span><span id="Tokenizer-564"><a href="#Tokenizer-564"><span class="linenos"> 564</span></a> <span class="s2">"NEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NEXT</span><span class="p">,</span> +</span><span id="Tokenizer-565"><a href="#Tokenizer-565"><span class="linenos"> 565</span></a> <span class="s2">"NO ACTION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NO_ACTION</span><span class="p">,</span> +</span><span id="Tokenizer-566"><a href="#Tokenizer-566"><span class="linenos"> 566</span></a> <span class="s2">"NOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOT</span><span class="p">,</span> +</span><span id="Tokenizer-567"><a href="#Tokenizer-567"><span class="linenos"> 567</span></a> <span class="s2">"NOTNULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NOTNULL</span><span class="p">,</span> +</span><span id="Tokenizer-568"><a href="#Tokenizer-568"><span class="linenos"> 568</span></a> <span class="s2">"NULL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULL</span><span class="p">,</span> +</span><span id="Tokenizer-569"><a href="#Tokenizer-569"><span class="linenos"> 569</span></a> <span class="s2">"NULLS FIRST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_FIRST</span><span class="p">,</span> +</span><span id="Tokenizer-570"><a href="#Tokenizer-570"><span class="linenos"> 570</span></a> <span class="s2">"NULLS LAST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLS_LAST</span><span class="p">,</span> +</span><span id="Tokenizer-571"><a href="#Tokenizer-571"><span class="linenos"> 571</span></a> <span class="s2">"OBJECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OBJECT</span><span class="p">,</span> +</span><span id="Tokenizer-572"><a href="#Tokenizer-572"><span class="linenos"> 572</span></a> <span class="s2">"OFFSET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OFFSET</span><span class="p">,</span> +</span><span id="Tokenizer-573"><a href="#Tokenizer-573"><span class="linenos"> 573</span></a> <span class="s2">"ON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ON</span><span class="p">,</span> +</span><span id="Tokenizer-574"><a href="#Tokenizer-574"><span class="linenos"> 574</span></a> <span class="s2">"ONLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ONLY</span><span class="p">,</span> +</span><span id="Tokenizer-575"><a href="#Tokenizer-575"><span class="linenos"> 575</span></a> <span class="s2">"OPTIONS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OPTIONS</span><span class="p">,</span> +</span><span id="Tokenizer-576"><a href="#Tokenizer-576"><span class="linenos"> 576</span></a> <span class="s2">"OR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OR</span><span class="p">,</span> +</span><span id="Tokenizer-577"><a href="#Tokenizer-577"><span class="linenos"> 577</span></a> <span class="s2">"ORDER BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDER_BY</span><span class="p">,</span> +</span><span id="Tokenizer-578"><a href="#Tokenizer-578"><span class="linenos"> 578</span></a> <span class="s2">"ORDINALITY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ORDINALITY</span><span class="p">,</span> +</span><span id="Tokenizer-579"><a href="#Tokenizer-579"><span class="linenos"> 579</span></a> <span class="s2">"OUTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUTER</span><span class="p">,</span> +</span><span id="Tokenizer-580"><a href="#Tokenizer-580"><span class="linenos"> 580</span></a> <span class="s2">"OUT OF"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OUT_OF</span><span class="p">,</span> +</span><span id="Tokenizer-581"><a href="#Tokenizer-581"><span class="linenos"> 581</span></a> <span class="s2">"OVER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVER</span><span class="p">,</span> +</span><span id="Tokenizer-582"><a href="#Tokenizer-582"><span class="linenos"> 582</span></a> <span class="s2">"OVERLAPS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERLAPS</span><span class="p">,</span> +</span><span id="Tokenizer-583"><a href="#Tokenizer-583"><span class="linenos"> 583</span></a> <span class="s2">"OVERWRITE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">OVERWRITE</span><span class="p">,</span> +</span><span id="Tokenizer-584"><a href="#Tokenizer-584"><span class="linenos"> 584</span></a> <span class="s2">"PARTITION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION</span><span class="p">,</span> +</span><span id="Tokenizer-585"><a href="#Tokenizer-585"><span class="linenos"> 585</span></a> <span class="s2">"PARTITION BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> +</span><span id="Tokenizer-586"><a href="#Tokenizer-586"><span class="linenos"> 586</span></a> <span class="s2">"PARTITIONED BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> +</span><span id="Tokenizer-587"><a href="#Tokenizer-587"><span class="linenos"> 587</span></a> <span class="s2">"PARTITIONED_BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARTITION_BY</span><span class="p">,</span> +</span><span id="Tokenizer-588"><a href="#Tokenizer-588"><span class="linenos"> 588</span></a> <span class="s2">"PERCENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PERCENT</span><span class="p">,</span> +</span><span id="Tokenizer-589"><a href="#Tokenizer-589"><span class="linenos"> 589</span></a> <span class="s2">"PIVOT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PIVOT</span><span class="p">,</span> +</span><span id="Tokenizer-590"><a href="#Tokenizer-590"><span class="linenos"> 590</span></a> <span class="s2">"PRECEDING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRECEDING</span><span class="p">,</span> +</span><span id="Tokenizer-591"><a href="#Tokenizer-591"><span class="linenos"> 591</span></a> <span class="s2">"PRIMARY KEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PRIMARY_KEY</span><span class="p">,</span> +</span><span id="Tokenizer-592"><a href="#Tokenizer-592"><span class="linenos"> 592</span></a> <span class="s2">"PROCEDURE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PROCEDURE</span><span class="p">,</span> +</span><span id="Tokenizer-593"><a href="#Tokenizer-593"><span class="linenos"> 593</span></a> <span class="s2">"QUALIFY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">QUALIFY</span><span class="p">,</span> +</span><span id="Tokenizer-594"><a href="#Tokenizer-594"><span class="linenos"> 594</span></a> <span class="s2">"RANGE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RANGE</span><span class="p">,</span> +</span><span id="Tokenizer-595"><a href="#Tokenizer-595"><span class="linenos"> 595</span></a> <span class="s2">"RECURSIVE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RECURSIVE</span><span class="p">,</span> +</span><span id="Tokenizer-596"><a href="#Tokenizer-596"><span class="linenos"> 596</span></a> <span class="s2">"REGEXP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="Tokenizer-597"><a href="#Tokenizer-597"><span class="linenos"> 597</span></a> <span class="s2">"REPLACE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REPLACE</span><span class="p">,</span> +</span><span id="Tokenizer-598"><a href="#Tokenizer-598"><span class="linenos"> 598</span></a> <span class="s2">"RESPECT NULLS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RESPECT_NULLS</span><span class="p">,</span> +</span><span id="Tokenizer-599"><a href="#Tokenizer-599"><span class="linenos"> 599</span></a> <span class="s2">"REFERENCES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">REFERENCES</span><span class="p">,</span> +</span><span id="Tokenizer-600"><a href="#Tokenizer-600"><span class="linenos"> 600</span></a> <span class="s2">"RIGHT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RIGHT</span><span class="p">,</span> +</span><span id="Tokenizer-601"><a href="#Tokenizer-601"><span class="linenos"> 601</span></a> <span class="s2">"RLIKE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">RLIKE</span><span class="p">,</span> +</span><span id="Tokenizer-602"><a href="#Tokenizer-602"><span class="linenos"> 602</span></a> <span class="s2">"ROLLBACK"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLBACK</span><span class="p">,</span> +</span><span id="Tokenizer-603"><a href="#Tokenizer-603"><span class="linenos"> 603</span></a> <span class="s2">"ROLLUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROLLUP</span><span class="p">,</span> +</span><span id="Tokenizer-604"><a href="#Tokenizer-604"><span class="linenos"> 604</span></a> <span class="s2">"ROW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROW</span><span class="p">,</span> +</span><span id="Tokenizer-605"><a href="#Tokenizer-605"><span class="linenos"> 605</span></a> <span class="s2">"ROWS"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ROWS</span><span class="p">,</span> +</span><span id="Tokenizer-606"><a href="#Tokenizer-606"><span class="linenos"> 606</span></a> <span class="s2">"SCHEMA"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SCHEMA</span><span class="p">,</span> +</span><span id="Tokenizer-607"><a href="#Tokenizer-607"><span class="linenos"> 607</span></a> <span class="s2">"SEED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEED</span><span class="p">,</span> +</span><span id="Tokenizer-608"><a href="#Tokenizer-608"><span class="linenos"> 608</span></a> <span class="s2">"SELECT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SELECT</span><span class="p">,</span> +</span><span id="Tokenizer-609"><a href="#Tokenizer-609"><span class="linenos"> 609</span></a> <span class="s2">"SEMI"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SEMI</span><span class="p">,</span> +</span><span id="Tokenizer-610"><a href="#Tokenizer-610"><span class="linenos"> 610</span></a> <span class="s2">"SET"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SET</span><span class="p">,</span> +</span><span id="Tokenizer-611"><a href="#Tokenizer-611"><span class="linenos"> 611</span></a> <span class="s2">"SHOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> +</span><span id="Tokenizer-612"><a href="#Tokenizer-612"><span class="linenos"> 612</span></a> <span class="s2">"SIMILAR TO"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SIMILAR_TO</span><span class="p">,</span> +</span><span id="Tokenizer-613"><a href="#Tokenizer-613"><span class="linenos"> 613</span></a> <span class="s2">"SOME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SOME</span><span class="p">,</span> +</span><span id="Tokenizer-614"><a href="#Tokenizer-614"><span class="linenos"> 614</span></a> <span class="s2">"SORTKEY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORTKEY</span><span class="p">,</span> +</span><span id="Tokenizer-615"><a href="#Tokenizer-615"><span class="linenos"> 615</span></a> <span class="s2">"SORT BY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SORT_BY</span><span class="p">,</span> +</span><span id="Tokenizer-616"><a href="#Tokenizer-616"><span class="linenos"> 616</span></a> <span class="s2">"TABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE</span><span class="p">,</span> +</span><span id="Tokenizer-617"><a href="#Tokenizer-617"><span class="linenos"> 617</span></a> <span class="s2">"TABLESAMPLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TABLE_SAMPLE</span><span class="p">,</span> +</span><span id="Tokenizer-618"><a href="#Tokenizer-618"><span class="linenos"> 618</span></a> <span class="s2">"TEMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> +</span><span id="Tokenizer-619"><a href="#Tokenizer-619"><span class="linenos"> 619</span></a> <span class="s2">"TEMPORARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEMPORARY</span><span class="p">,</span> +</span><span id="Tokenizer-620"><a href="#Tokenizer-620"><span class="linenos"> 620</span></a> <span class="s2">"THEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">THEN</span><span class="p">,</span> +</span><span id="Tokenizer-621"><a href="#Tokenizer-621"><span class="linenos"> 621</span></a> <span class="s2">"TRUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRUE</span><span class="p">,</span> +</span><span id="Tokenizer-622"><a href="#Tokenizer-622"><span class="linenos"> 622</span></a> <span class="s2">"TRAILING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TRAILING</span><span class="p">,</span> +</span><span id="Tokenizer-623"><a href="#Tokenizer-623"><span class="linenos"> 623</span></a> <span class="s2">"UNBOUNDED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNBOUNDED</span><span class="p">,</span> +</span><span id="Tokenizer-624"><a href="#Tokenizer-624"><span class="linenos"> 624</span></a> <span class="s2">"UNION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNION</span><span class="p">,</span> +</span><span id="Tokenizer-625"><a href="#Tokenizer-625"><span class="linenos"> 625</span></a> <span class="s2">"UNLOGGED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNLOGGED</span><span class="p">,</span> +</span><span id="Tokenizer-626"><a href="#Tokenizer-626"><span class="linenos"> 626</span></a> <span class="s2">"UNNEST"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNNEST</span><span class="p">,</span> +</span><span id="Tokenizer-627"><a href="#Tokenizer-627"><span class="linenos"> 627</span></a> <span class="s2">"UNPIVOT"</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="Tokenizer-628"><a href="#Tokenizer-628"><span class="linenos"> 628</span></a> <span class="s2">"UPDATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UPDATE</span><span class="p">,</span> +</span><span id="Tokenizer-629"><a href="#Tokenizer-629"><span class="linenos"> 629</span></a> <span class="s2">"USE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USE</span><span class="p">,</span> +</span><span id="Tokenizer-630"><a href="#Tokenizer-630"><span class="linenos"> 630</span></a> <span class="s2">"USING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">USING</span><span class="p">,</span> +</span><span id="Tokenizer-631"><a href="#Tokenizer-631"><span class="linenos"> 631</span></a> <span class="s2">"VALUES"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VALUES</span><span class="p">,</span> +</span><span id="Tokenizer-632"><a href="#Tokenizer-632"><span class="linenos"> 632</span></a> <span class="s2">"VIEW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VIEW</span><span class="p">,</span> +</span><span id="Tokenizer-633"><a href="#Tokenizer-633"><span class="linenos"> 633</span></a> <span class="s2">"VOLATILE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VOLATILE</span><span class="p">,</span> +</span><span id="Tokenizer-634"><a href="#Tokenizer-634"><span class="linenos"> 634</span></a> <span class="s2">"WHEN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHEN</span><span class="p">,</span> +</span><span id="Tokenizer-635"><a href="#Tokenizer-635"><span class="linenos"> 635</span></a> <span class="s2">"WHERE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WHERE</span><span class="p">,</span> +</span><span id="Tokenizer-636"><a href="#Tokenizer-636"><span class="linenos"> 636</span></a> <span class="s2">"WINDOW"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WINDOW</span><span class="p">,</span> +</span><span id="Tokenizer-637"><a href="#Tokenizer-637"><span class="linenos"> 637</span></a> <span class="s2">"WITH"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH</span><span class="p">,</span> +</span><span id="Tokenizer-638"><a href="#Tokenizer-638"><span class="linenos"> 638</span></a> <span class="s2">"WITH TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_TIME_ZONE</span><span class="p">,</span> +</span><span id="Tokenizer-639"><a href="#Tokenizer-639"><span class="linenos"> 639</span></a> <span class="s2">"WITH LOCAL TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITH_LOCAL_TIME_ZONE</span><span class="p">,</span> +</span><span id="Tokenizer-640"><a href="#Tokenizer-640"><span class="linenos"> 640</span></a> <span class="s2">"WITHIN GROUP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHIN_GROUP</span><span class="p">,</span> +</span><span id="Tokenizer-641"><a href="#Tokenizer-641"><span class="linenos"> 641</span></a> <span class="s2">"WITHOUT TIME ZONE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">WITHOUT_TIME_ZONE</span><span class="p">,</span> +</span><span id="Tokenizer-642"><a href="#Tokenizer-642"><span class="linenos"> 642</span></a> <span class="s2">"APPLY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">APPLY</span><span class="p">,</span> +</span><span id="Tokenizer-643"><a href="#Tokenizer-643"><span class="linenos"> 643</span></a> <span class="s2">"ARRAY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ARRAY</span><span class="p">,</span> +</span><span id="Tokenizer-644"><a href="#Tokenizer-644"><span class="linenos"> 644</span></a> <span class="s2">"BIT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT</span><span class="p">,</span> +</span><span id="Tokenizer-645"><a href="#Tokenizer-645"><span class="linenos"> 645</span></a> <span class="s2">"BOOL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="Tokenizer-646"><a href="#Tokenizer-646"><span class="linenos"> 646</span></a> <span class="s2">"BOOLEAN"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BOOLEAN</span><span class="p">,</span> +</span><span id="Tokenizer-647"><a href="#Tokenizer-647"><span class="linenos"> 647</span></a> <span class="s2">"BYTE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="Tokenizer-648"><a href="#Tokenizer-648"><span class="linenos"> 648</span></a> <span class="s2">"TINYINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TINYINT</span><span class="p">,</span> +</span><span id="Tokenizer-649"><a href="#Tokenizer-649"><span class="linenos"> 649</span></a> <span class="s2">"SHORT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="Tokenizer-650"><a href="#Tokenizer-650"><span class="linenos"> 650</span></a> <span class="s2">"SMALLINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="Tokenizer-651"><a href="#Tokenizer-651"><span class="linenos"> 651</span></a> <span class="s2">"INT2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SMALLINT</span><span class="p">,</span> +</span><span id="Tokenizer-652"><a href="#Tokenizer-652"><span class="linenos"> 652</span></a> <span class="s2">"INTEGER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="Tokenizer-653"><a href="#Tokenizer-653"><span class="linenos"> 653</span></a> <span class="s2">"INT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="Tokenizer-654"><a href="#Tokenizer-654"><span class="linenos"> 654</span></a> <span class="s2">"INT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">INT</span><span class="p">,</span> +</span><span id="Tokenizer-655"><a href="#Tokenizer-655"><span class="linenos"> 655</span></a> <span class="s2">"LONG"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="Tokenizer-656"><a href="#Tokenizer-656"><span class="linenos"> 656</span></a> <span class="s2">"BIGINT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="Tokenizer-657"><a href="#Tokenizer-657"><span class="linenos"> 657</span></a> <span class="s2">"INT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIGINT</span><span class="p">,</span> +</span><span id="Tokenizer-658"><a href="#Tokenizer-658"><span class="linenos"> 658</span></a> <span class="s2">"DECIMAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="Tokenizer-659"><a href="#Tokenizer-659"><span class="linenos"> 659</span></a> <span class="s2">"MAP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">MAP</span><span class="p">,</span> +</span><span id="Tokenizer-660"><a href="#Tokenizer-660"><span class="linenos"> 660</span></a> <span class="s2">"NULLABLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NULLABLE</span><span class="p">,</span> +</span><span id="Tokenizer-661"><a href="#Tokenizer-661"><span class="linenos"> 661</span></a> <span class="s2">"NUMBER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="Tokenizer-662"><a href="#Tokenizer-662"><span class="linenos"> 662</span></a> <span class="s2">"NUMERIC"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="Tokenizer-663"><a href="#Tokenizer-663"><span class="linenos"> 663</span></a> <span class="s2">"FIXED"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DECIMAL</span><span class="p">,</span> +</span><span id="Tokenizer-664"><a href="#Tokenizer-664"><span class="linenos"> 664</span></a> <span class="s2">"REAL"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="Tokenizer-665"><a href="#Tokenizer-665"><span class="linenos"> 665</span></a> <span class="s2">"FLOAT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="Tokenizer-666"><a href="#Tokenizer-666"><span class="linenos"> 666</span></a> <span class="s2">"FLOAT4"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">FLOAT</span><span class="p">,</span> +</span><span id="Tokenizer-667"><a href="#Tokenizer-667"><span class="linenos"> 667</span></a> <span class="s2">"FLOAT8"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="Tokenizer-668"><a href="#Tokenizer-668"><span class="linenos"> 668</span></a> <span class="s2">"DOUBLE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="Tokenizer-669"><a href="#Tokenizer-669"><span class="linenos"> 669</span></a> <span class="s2">"DOUBLE PRECISION"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DOUBLE</span><span class="p">,</span> +</span><span id="Tokenizer-670"><a href="#Tokenizer-670"><span class="linenos"> 670</span></a> <span class="s2">"JSON"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">JSON</span><span class="p">,</span> +</span><span id="Tokenizer-671"><a href="#Tokenizer-671"><span class="linenos"> 671</span></a> <span class="s2">"CHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="Tokenizer-672"><a href="#Tokenizer-672"><span class="linenos"> 672</span></a> <span class="s2">"CHARACTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">CHAR</span><span class="p">,</span> +</span><span id="Tokenizer-673"><a href="#Tokenizer-673"><span class="linenos"> 673</span></a> <span class="s2">"NCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NCHAR</span><span class="p">,</span> +</span><span id="Tokenizer-674"><a href="#Tokenizer-674"><span class="linenos"> 674</span></a> <span class="s2">"VARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="Tokenizer-675"><a href="#Tokenizer-675"><span class="linenos"> 675</span></a> <span class="s2">"VARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARCHAR</span><span class="p">,</span> +</span><span id="Tokenizer-676"><a href="#Tokenizer-676"><span class="linenos"> 676</span></a> <span class="s2">"NVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="Tokenizer-677"><a href="#Tokenizer-677"><span class="linenos"> 677</span></a> <span class="s2">"NVARCHAR2"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">NVARCHAR</span><span class="p">,</span> +</span><span id="Tokenizer-678"><a href="#Tokenizer-678"><span class="linenos"> 678</span></a> <span class="s2">"STR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="Tokenizer-679"><a href="#Tokenizer-679"><span class="linenos"> 679</span></a> <span class="s2">"STRING"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="Tokenizer-680"><a href="#Tokenizer-680"><span class="linenos"> 680</span></a> <span class="s2">"TEXT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="Tokenizer-681"><a href="#Tokenizer-681"><span class="linenos"> 681</span></a> <span class="s2">"CLOB"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="Tokenizer-682"><a href="#Tokenizer-682"><span class="linenos"> 682</span></a> <span class="s2">"LONGVARCHAR"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TEXT</span><span class="p">,</span> +</span><span id="Tokenizer-683"><a href="#Tokenizer-683"><span class="linenos"> 683</span></a> <span class="s2">"BINARY"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> +</span><span id="Tokenizer-684"><a href="#Tokenizer-684"><span class="linenos"> 684</span></a> <span class="s2">"BLOB"</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="Tokenizer-685"><a href="#Tokenizer-685"><span class="linenos"> 685</span></a> <span class="s2">"BYTEA"</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="Tokenizer-686"><a href="#Tokenizer-686"><span class="linenos"> 686</span></a> <span class="s2">"VARBINARY"</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="Tokenizer-687"><a href="#Tokenizer-687"><span class="linenos"> 687</span></a> <span class="s2">"TIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIME</span><span class="p">,</span> +</span><span id="Tokenizer-688"><a href="#Tokenizer-688"><span class="linenos"> 688</span></a> <span class="s2">"TIMESTAMP"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMP</span><span class="p">,</span> +</span><span id="Tokenizer-689"><a href="#Tokenizer-689"><span class="linenos"> 689</span></a> <span class="s2">"TIMESTAMPTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPTZ</span><span class="p">,</span> +</span><span id="Tokenizer-690"><a href="#Tokenizer-690"><span class="linenos"> 690</span></a> <span class="s2">"TIMESTAMPLTZ"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">TIMESTAMPLTZ</span><span class="p">,</span> +</span><span id="Tokenizer-691"><a href="#Tokenizer-691"><span class="linenos"> 691</span></a> <span class="s2">"DATE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATE</span><span class="p">,</span> +</span><span id="Tokenizer-692"><a href="#Tokenizer-692"><span class="linenos"> 692</span></a> <span class="s2">"DATETIME"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">DATETIME</span><span class="p">,</span> +</span><span id="Tokenizer-693"><a href="#Tokenizer-693"><span class="linenos"> 693</span></a> <span class="s2">"UNIQUE"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">UNIQUE</span><span class="p">,</span> +</span><span id="Tokenizer-694"><a href="#Tokenizer-694"><span class="linenos"> 694</span></a> <span class="s2">"STRUCT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRUCT</span><span class="p">,</span> +</span><span id="Tokenizer-695"><a href="#Tokenizer-695"><span class="linenos"> 695</span></a> <span class="s2">"VARIANT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VARIANT</span><span class="p">,</span> +</span><span id="Tokenizer-696"><a href="#Tokenizer-696"><span class="linenos"> 696</span></a> <span class="s2">"ALTER"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">ALTER</span><span class="p">,</span> +</span><span id="Tokenizer-697"><a href="#Tokenizer-697"><span class="linenos"> 697</span></a> <span class="s2">"ALTER AGGREGATE"</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="Tokenizer-698"><a href="#Tokenizer-698"><span class="linenos"> 698</span></a> <span class="s2">"ALTER DEFAULT"</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="Tokenizer-699"><a href="#Tokenizer-699"><span class="linenos"> 699</span></a> <span class="s2">"ALTER DOMAIN"</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="Tokenizer-700"><a href="#Tokenizer-700"><span class="linenos"> 700</span></a> <span class="s2">"ALTER ROLE"</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="Tokenizer-701"><a href="#Tokenizer-701"><span class="linenos"> 701</span></a> <span class="s2">"ALTER RULE"</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="Tokenizer-702"><a href="#Tokenizer-702"><span class="linenos"> 702</span></a> <span class="s2">"ALTER SEQUENCE"</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="Tokenizer-703"><a href="#Tokenizer-703"><span class="linenos"> 703</span></a> <span class="s2">"ALTER TYPE"</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="Tokenizer-704"><a href="#Tokenizer-704"><span class="linenos"> 704</span></a> <span class="s2">"ALTER USER"</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="Tokenizer-705"><a href="#Tokenizer-705"><span class="linenos"> 705</span></a> <span class="s2">"ALTER VIEW"</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="Tokenizer-706"><a href="#Tokenizer-706"><span class="linenos"> 706</span></a> <span class="s2">"ANALYZE"</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="Tokenizer-707"><a href="#Tokenizer-707"><span class="linenos"> 707</span></a> <span class="s2">"CALL"</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="Tokenizer-708"><a href="#Tokenizer-708"><span class="linenos"> 708</span></a> <span class="s2">"COMMENT"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMENT</span><span class="p">,</span> +</span><span id="Tokenizer-709"><a href="#Tokenizer-709"><span class="linenos"> 709</span></a> <span class="s2">"COPY"</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="Tokenizer-710"><a href="#Tokenizer-710"><span class="linenos"> 710</span></a> <span class="s2">"EXPLAIN"</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="Tokenizer-711"><a href="#Tokenizer-711"><span class="linenos"> 711</span></a> <span class="s2">"GRANT"</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="Tokenizer-712"><a href="#Tokenizer-712"><span class="linenos"> 712</span></a> <span class="s2">"OPTIMIZE"</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="Tokenizer-713"><a href="#Tokenizer-713"><span class="linenos"> 713</span></a> <span class="s2">"PREPARE"</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="Tokenizer-714"><a href="#Tokenizer-714"><span class="linenos"> 714</span></a> <span class="s2">"TRUNCATE"</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="Tokenizer-715"><a href="#Tokenizer-715"><span class="linenos"> 715</span></a> <span class="s2">"VACUUM"</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="Tokenizer-716"><a href="#Tokenizer-716"><span class="linenos"> 716</span></a> <span class="p">}</span> +</span><span id="Tokenizer-717"><a href="#Tokenizer-717"><span class="linenos"> 717</span></a> +</span><span id="Tokenizer-718"><a href="#Tokenizer-718"><span class="linenos"> 718</span></a> <span class="n">WHITE_SPACE</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">TokenType</span><span class="p">]</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Tokenizer-719"><a href="#Tokenizer-719"><span class="linenos"> 719</span></a> <span class="s2">" "</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> +</span><span id="Tokenizer-720"><a href="#Tokenizer-720"><span class="linenos"> 720</span></a> <span class="s2">"</span><span class="se">\t</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">SPACE</span><span class="p">,</span> +</span><span id="Tokenizer-721"><a href="#Tokenizer-721"><span class="linenos"> 721</span></a> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> +</span><span id="Tokenizer-722"><a href="#Tokenizer-722"><span class="linenos"> 722</span></a> <span class="s2">"</span><span class="se">\r</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> +</span><span id="Tokenizer-723"><a href="#Tokenizer-723"><span class="linenos"> 723</span></a> <span class="s2">"</span><span class="se">\r\n</span><span class="s2">"</span><span class="p">:</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BREAK</span><span class="p">,</span> +</span><span id="Tokenizer-724"><a href="#Tokenizer-724"><span class="linenos"> 724</span></a> <span class="p">}</span> +</span><span id="Tokenizer-725"><a href="#Tokenizer-725"><span class="linenos"> 725</span></a> +</span><span id="Tokenizer-726"><a href="#Tokenizer-726"><span class="linenos"> 726</span></a> <span class="n">COMMANDS</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="Tokenizer-727"><a href="#Tokenizer-727"><span class="linenos"> 727</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">COMMAND</span><span class="p">,</span> +</span><span id="Tokenizer-728"><a href="#Tokenizer-728"><span class="linenos"> 728</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">EXECUTE</span><span class="p">,</span> +</span><span id="Tokenizer-729"><a href="#Tokenizer-729"><span class="linenos"> 729</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">FETCH</span><span class="p">,</span> </span><span id="Tokenizer-730"><a href="#Tokenizer-730"><span class="linenos"> 730</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">SHOW</span><span class="p">,</span> </span><span id="Tokenizer-731"><a href="#Tokenizer-731"><span class="linenos"> 731</span></a> <span class="p">}</span> </span><span id="Tokenizer-732"><a href="#Tokenizer-732"><span class="linenos"> 732</span></a> @@ -6634,284 +6636,286 @@ </span><span id="Tokenizer-852"><a href="#Tokenizer-852"><span class="linenos"> 852</span></a> </span><span id="Tokenizer-853"><a href="#Tokenizer-853"><span class="linenos"> 853</span></a> <span class="c1"># If we have either a semicolon or a begin token before the command's token, we'll parse</span> </span><span id="Tokenizer-854"><a href="#Tokenizer-854"><span class="linenos"> 854</span></a> <span class="c1"># whatever follows the command's token as a string</span> -</span><span id="Tokenizer-855"><a href="#Tokenizer-855"><span class="linenos"> 855</span></a> <span class="k">if</span> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMANDS</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="Tokenizer-856"><a href="#Tokenizer-856"><span class="linenos"> 856</span></a> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMAND_PREFIX_TOKENS</span> -</span><span id="Tokenizer-857"><a href="#Tokenizer-857"><span class="linenos"> 857</span></a> <span class="p">):</span> -</span><span id="Tokenizer-858"><a href="#Tokenizer-858"><span class="linenos"> 858</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> -</span><span id="Tokenizer-859"><a href="#Tokenizer-859"><span class="linenos"> 859</span></a> <span class="n">tokens</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> -</span><span id="Tokenizer-860"><a href="#Tokenizer-860"><span class="linenos"> 860</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">";"</span><span class="p">)</span> -</span><span id="Tokenizer-861"><a href="#Tokenizer-861"><span class="linenos"> 861</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[:</span><span class="n">tokens</span><span class="p">]</span> -</span><span id="Tokenizer-862"><a href="#Tokenizer-862"><span class="linenos"> 862</span></a> <span class="n">text</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">start</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> -</span><span id="Tokenizer-863"><a href="#Tokenizer-863"><span class="linenos"> 863</span></a> <span class="k">if</span> <span class="n">text</span><span class="p">:</span> -</span><span id="Tokenizer-864"><a href="#Tokenizer-864"><span class="linenos"> 864</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> -</span><span id="Tokenizer-865"><a href="#Tokenizer-865"><span class="linenos"> 865</span></a> -</span><span id="Tokenizer-866"><a href="#Tokenizer-866"><span class="linenos"> 866</span></a> <span class="k">def</span> <span class="nf">_scan_keywords</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-867"><a href="#Tokenizer-867"><span class="linenos"> 867</span></a> <span class="n">size</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="Tokenizer-868"><a href="#Tokenizer-868"><span class="linenos"> 868</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Tokenizer-869"><a href="#Tokenizer-869"><span class="linenos"> 869</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> -</span><span id="Tokenizer-870"><a href="#Tokenizer-870"><span class="linenos"> 870</span></a> <span class="n">char</span> <span class="o">=</span> <span class="n">chars</span> -</span><span id="Tokenizer-871"><a href="#Tokenizer-871"><span class="linenos"> 871</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Tokenizer-872"><a href="#Tokenizer-872"><span class="linenos"> 872</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Tokenizer-873"><a href="#Tokenizer-873"><span class="linenos"> 873</span></a> <span class="n">trie</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORD_TRIE</span> -</span><span id="Tokenizer-874"><a href="#Tokenizer-874"><span class="linenos"> 874</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> -</span><span id="Tokenizer-875"><a href="#Tokenizer-875"><span class="linenos"> 875</span></a> -</span><span id="Tokenizer-876"><a href="#Tokenizer-876"><span class="linenos"> 876</span></a> <span class="k">while</span> <span class="n">chars</span><span class="p">:</span> -</span><span id="Tokenizer-877"><a href="#Tokenizer-877"><span class="linenos"> 877</span></a> <span class="k">if</span> <span class="n">skip</span><span class="p">:</span> -</span><span id="Tokenizer-878"><a href="#Tokenizer-878"><span class="linenos"> 878</span></a> <span class="n">result</span> <span class="o">=</span> <span class="mi">1</span> -</span><span id="Tokenizer-879"><a href="#Tokenizer-879"><span class="linenos"> 879</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-880"><a href="#Tokenizer-880"><span class="linenos"> 880</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">char</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-881"><a href="#Tokenizer-881"><span class="linenos"> 881</span></a> -</span><span id="Tokenizer-882"><a href="#Tokenizer-882"><span class="linenos"> 882</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> -</span><span id="Tokenizer-883"><a href="#Tokenizer-883"><span class="linenos"> 883</span></a> <span class="k">break</span> -</span><span id="Tokenizer-884"><a href="#Tokenizer-884"><span class="linenos"> 884</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> -</span><span id="Tokenizer-885"><a href="#Tokenizer-885"><span class="linenos"> 885</span></a> <span class="n">word</span> <span class="o">=</span> <span class="n">chars</span> -</span><span id="Tokenizer-886"><a href="#Tokenizer-886"><span class="linenos"> 886</span></a> <span class="n">size</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Tokenizer-887"><a href="#Tokenizer-887"><span class="linenos"> 887</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">size</span> -</span><span id="Tokenizer-888"><a href="#Tokenizer-888"><span class="linenos"> 888</span></a> -</span><span id="Tokenizer-889"><a href="#Tokenizer-889"><span class="linenos"> 889</span></a> <span class="k">if</span> <span class="n">end</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> -</span><span id="Tokenizer-890"><a href="#Tokenizer-890"><span class="linenos"> 890</span></a> <span class="n">char</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">end</span><span class="p">]</span> -</span><span id="Tokenizer-891"><a href="#Tokenizer-891"><span class="linenos"> 891</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">single_token</span> <span class="ow">or</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> -</span><span id="Tokenizer-892"><a href="#Tokenizer-892"><span class="linenos"> 892</span></a> <span class="n">is_space</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> -</span><span id="Tokenizer-893"><a href="#Tokenizer-893"><span class="linenos"> 893</span></a> -</span><span id="Tokenizer-894"><a href="#Tokenizer-894"><span class="linenos"> 894</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_space</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">prev_space</span><span class="p">:</span> -</span><span id="Tokenizer-895"><a href="#Tokenizer-895"><span class="linenos"> 895</span></a> <span class="k">if</span> <span class="n">is_space</span><span class="p">:</span> -</span><span id="Tokenizer-896"><a href="#Tokenizer-896"><span class="linenos"> 896</span></a> <span class="n">char</span> <span class="o">=</span> <span class="s2">" "</span> -</span><span id="Tokenizer-897"><a href="#Tokenizer-897"><span class="linenos"> 897</span></a> <span class="n">chars</span> <span class="o">+=</span> <span class="n">char</span> -</span><span id="Tokenizer-898"><a href="#Tokenizer-898"><span class="linenos"> 898</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="n">is_space</span> -</span><span id="Tokenizer-899"><a href="#Tokenizer-899"><span class="linenos"> 899</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Tokenizer-900"><a href="#Tokenizer-900"><span class="linenos"> 900</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-901"><a href="#Tokenizer-901"><span class="linenos"> 901</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Tokenizer-902"><a href="#Tokenizer-902"><span class="linenos"> 902</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-903"><a href="#Tokenizer-903"><span class="linenos"> 903</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="s2">" "</span> -</span><span id="Tokenizer-904"><a href="#Tokenizer-904"><span class="linenos"> 904</span></a> -</span><span id="Tokenizer-905"><a href="#Tokenizer-905"><span class="linenos"> 905</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">single_token</span> <span class="ow">and</span> <span class="n">chars</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> <span class="k">else</span> <span class="n">word</span> +</span><span id="Tokenizer-855"><a href="#Tokenizer-855"><span class="linenos"> 855</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="Tokenizer-856"><a href="#Tokenizer-856"><span class="linenos"> 856</span></a> <span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMANDS</span> +</span><span id="Tokenizer-857"><a href="#Tokenizer-857"><span class="linenos"> 857</span></a> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">!=</span> <span class="s2">";"</span> +</span><span id="Tokenizer-858"><a href="#Tokenizer-858"><span class="linenos"> 858</span></a> <span class="ow">and</span> <span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> <span class="o">==</span> <span class="mi">1</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">]</span><span class="o">.</span><span class="n">token_type</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">COMMAND_PREFIX_TOKENS</span><span class="p">)</span> +</span><span id="Tokenizer-859"><a href="#Tokenizer-859"><span class="linenos"> 859</span></a> <span class="p">):</span> +</span><span id="Tokenizer-860"><a href="#Tokenizer-860"><span class="linenos"> 860</span></a> <span class="n">start</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> +</span><span id="Tokenizer-861"><a href="#Tokenizer-861"><span class="linenos"> 861</span></a> <span class="n">tokens</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">)</span> +</span><span id="Tokenizer-862"><a href="#Tokenizer-862"><span class="linenos"> 862</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan</span><span class="p">(</span><span class="k">lambda</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">";"</span><span class="p">)</span> +</span><span id="Tokenizer-863"><a href="#Tokenizer-863"><span class="linenos"> 863</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[:</span><span class="n">tokens</span><span class="p">]</span> +</span><span id="Tokenizer-864"><a href="#Tokenizer-864"><span class="linenos"> 864</span></a> <span class="n">text</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">start</span> <span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> +</span><span id="Tokenizer-865"><a href="#Tokenizer-865"><span class="linenos"> 865</span></a> <span class="k">if</span> <span class="n">text</span><span class="p">:</span> +</span><span id="Tokenizer-866"><a href="#Tokenizer-866"><span class="linenos"> 866</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="Tokenizer-867"><a href="#Tokenizer-867"><span class="linenos"> 867</span></a> +</span><span id="Tokenizer-868"><a href="#Tokenizer-868"><span class="linenos"> 868</span></a> <span class="k">def</span> <span class="nf">_scan_keywords</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-869"><a href="#Tokenizer-869"><span class="linenos"> 869</span></a> <span class="n">size</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="Tokenizer-870"><a href="#Tokenizer-870"><span class="linenos"> 870</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Tokenizer-871"><a href="#Tokenizer-871"><span class="linenos"> 871</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="Tokenizer-872"><a href="#Tokenizer-872"><span class="linenos"> 872</span></a> <span class="n">char</span> <span class="o">=</span> <span class="n">chars</span> +</span><span id="Tokenizer-873"><a href="#Tokenizer-873"><span class="linenos"> 873</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Tokenizer-874"><a href="#Tokenizer-874"><span class="linenos"> 874</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Tokenizer-875"><a href="#Tokenizer-875"><span class="linenos"> 875</span></a> <span class="n">trie</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORD_TRIE</span> +</span><span id="Tokenizer-876"><a href="#Tokenizer-876"><span class="linenos"> 876</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> +</span><span id="Tokenizer-877"><a href="#Tokenizer-877"><span class="linenos"> 877</span></a> +</span><span id="Tokenizer-878"><a href="#Tokenizer-878"><span class="linenos"> 878</span></a> <span class="k">while</span> <span class="n">chars</span><span class="p">:</span> +</span><span id="Tokenizer-879"><a href="#Tokenizer-879"><span class="linenos"> 879</span></a> <span class="k">if</span> <span class="n">skip</span><span class="p">:</span> +</span><span id="Tokenizer-880"><a href="#Tokenizer-880"><span class="linenos"> 880</span></a> <span class="n">result</span> <span class="o">=</span> <span class="mi">1</span> +</span><span id="Tokenizer-881"><a href="#Tokenizer-881"><span class="linenos"> 881</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-882"><a href="#Tokenizer-882"><span class="linenos"> 882</span></a> <span class="n">result</span><span class="p">,</span> <span class="n">trie</span> <span class="o">=</span> <span class="n">in_trie</span><span class="p">(</span><span class="n">trie</span><span class="p">,</span> <span class="n">char</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-883"><a href="#Tokenizer-883"><span class="linenos"> 883</span></a> +</span><span id="Tokenizer-884"><a href="#Tokenizer-884"><span class="linenos"> 884</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> +</span><span id="Tokenizer-885"><a href="#Tokenizer-885"><span class="linenos"> 885</span></a> <span class="k">break</span> +</span><span id="Tokenizer-886"><a href="#Tokenizer-886"><span class="linenos"> 886</span></a> <span class="k">if</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">2</span><span class="p">:</span> +</span><span id="Tokenizer-887"><a href="#Tokenizer-887"><span class="linenos"> 887</span></a> <span class="n">word</span> <span class="o">=</span> <span class="n">chars</span> +</span><span id="Tokenizer-888"><a href="#Tokenizer-888"><span class="linenos"> 888</span></a> <span class="n">size</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Tokenizer-889"><a href="#Tokenizer-889"><span class="linenos"> 889</span></a> <span class="n">end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">-</span> <span class="mi">1</span> <span class="o">+</span> <span class="n">size</span> +</span><span id="Tokenizer-890"><a href="#Tokenizer-890"><span class="linenos"> 890</span></a> +</span><span id="Tokenizer-891"><a href="#Tokenizer-891"><span class="linenos"> 891</span></a> <span class="k">if</span> <span class="n">end</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> +</span><span id="Tokenizer-892"><a href="#Tokenizer-892"><span class="linenos"> 892</span></a> <span class="n">char</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">end</span><span class="p">]</span> +</span><span id="Tokenizer-893"><a href="#Tokenizer-893"><span class="linenos"> 893</span></a> <span class="n">single_token</span> <span class="o">=</span> <span class="n">single_token</span> <span class="ow">or</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span> +</span><span id="Tokenizer-894"><a href="#Tokenizer-894"><span class="linenos"> 894</span></a> <span class="n">is_space</span> <span class="o">=</span> <span class="n">char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> +</span><span id="Tokenizer-895"><a href="#Tokenizer-895"><span class="linenos"> 895</span></a> +</span><span id="Tokenizer-896"><a href="#Tokenizer-896"><span class="linenos"> 896</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">is_space</span> <span class="ow">or</span> <span class="ow">not</span> <span class="n">prev_space</span><span class="p">:</span> +</span><span id="Tokenizer-897"><a href="#Tokenizer-897"><span class="linenos"> 897</span></a> <span class="k">if</span> <span class="n">is_space</span><span class="p">:</span> +</span><span id="Tokenizer-898"><a href="#Tokenizer-898"><span class="linenos"> 898</span></a> <span class="n">char</span> <span class="o">=</span> <span class="s2">" "</span> +</span><span id="Tokenizer-899"><a href="#Tokenizer-899"><span class="linenos"> 899</span></a> <span class="n">chars</span> <span class="o">+=</span> <span class="n">char</span> +</span><span id="Tokenizer-900"><a href="#Tokenizer-900"><span class="linenos"> 900</span></a> <span class="n">prev_space</span> <span class="o">=</span> <span class="n">is_space</span> +</span><span id="Tokenizer-901"><a href="#Tokenizer-901"><span class="linenos"> 901</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Tokenizer-902"><a href="#Tokenizer-902"><span class="linenos"> 902</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-903"><a href="#Tokenizer-903"><span class="linenos"> 903</span></a> <span class="n">skip</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Tokenizer-904"><a href="#Tokenizer-904"><span class="linenos"> 904</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-905"><a href="#Tokenizer-905"><span class="linenos"> 905</span></a> <span class="n">chars</span> <span class="o">=</span> <span class="s2">" "</span> </span><span id="Tokenizer-906"><a href="#Tokenizer-906"><span class="linenos"> 906</span></a> -</span><span id="Tokenizer-907"><a href="#Tokenizer-907"><span class="linenos"> 907</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">word</span><span class="p">:</span> -</span><span id="Tokenizer-908"><a href="#Tokenizer-908"><span class="linenos"> 908</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> -</span><span id="Tokenizer-909"><a href="#Tokenizer-909"><span class="linenos"> 909</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_char</span><span class="p">])</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-910"><a href="#Tokenizer-910"><span class="linenos"> 910</span></a> <span class="k">return</span> -</span><span id="Tokenizer-911"><a href="#Tokenizer-911"><span class="linenos"> 911</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_var</span><span class="p">()</span> -</span><span id="Tokenizer-912"><a href="#Tokenizer-912"><span class="linenos"> 912</span></a> <span class="k">return</span> -</span><span id="Tokenizer-913"><a href="#Tokenizer-913"><span class="linenos"> 913</span></a> -</span><span id="Tokenizer-914"><a href="#Tokenizer-914"><span class="linenos"> 914</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> -</span><span id="Tokenizer-915"><a href="#Tokenizer-915"><span class="linenos"> 915</span></a> <span class="k">return</span> -</span><span id="Tokenizer-916"><a href="#Tokenizer-916"><span class="linenos"> 916</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_formatted_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> +</span><span id="Tokenizer-907"><a href="#Tokenizer-907"><span class="linenos"> 907</span></a> <span class="n">word</span> <span class="o">=</span> <span class="kc">None</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">single_token</span> <span class="ow">and</span> <span class="n">chars</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">WHITE_SPACE</span> <span class="k">else</span> <span class="n">word</span> +</span><span id="Tokenizer-908"><a href="#Tokenizer-908"><span class="linenos"> 908</span></a> +</span><span id="Tokenizer-909"><a href="#Tokenizer-909"><span class="linenos"> 909</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">word</span><span class="p">:</span> +</span><span id="Tokenizer-910"><a href="#Tokenizer-910"><span class="linenos"> 910</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> +</span><span id="Tokenizer-911"><a href="#Tokenizer-911"><span class="linenos"> 911</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">_char</span><span class="p">])</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-912"><a href="#Tokenizer-912"><span class="linenos"> 912</span></a> <span class="k">return</span> +</span><span id="Tokenizer-913"><a href="#Tokenizer-913"><span class="linenos"> 913</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_var</span><span class="p">()</span> +</span><span id="Tokenizer-914"><a href="#Tokenizer-914"><span class="linenos"> 914</span></a> <span class="k">return</span> +</span><span id="Tokenizer-915"><a href="#Tokenizer-915"><span class="linenos"> 915</span></a> +</span><span id="Tokenizer-916"><a href="#Tokenizer-916"><span class="linenos"> 916</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> </span><span id="Tokenizer-917"><a href="#Tokenizer-917"><span class="linenos"> 917</span></a> <span class="k">return</span> -</span><span id="Tokenizer-918"><a href="#Tokenizer-918"><span class="linenos"> 918</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_comment</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> +</span><span id="Tokenizer-918"><a href="#Tokenizer-918"><span class="linenos"> 918</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_formatted_string</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> </span><span id="Tokenizer-919"><a href="#Tokenizer-919"><span class="linenos"> 919</span></a> <span class="k">return</span> -</span><span id="Tokenizer-920"><a href="#Tokenizer-920"><span class="linenos"> 920</span></a> -</span><span id="Tokenizer-921"><a href="#Tokenizer-921"><span class="linenos"> 921</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="Tokenizer-922"><a href="#Tokenizer-922"><span class="linenos"> 922</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">[</span><span class="n">word</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> -</span><span id="Tokenizer-923"><a href="#Tokenizer-923"><span class="linenos"> 923</span></a> -</span><span id="Tokenizer-924"><a href="#Tokenizer-924"><span class="linenos"> 924</span></a> <span class="k">def</span> <span class="nf">_scan_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Tokenizer-925"><a href="#Tokenizer-925"><span class="linenos"> 925</span></a> <span class="k">if</span> <span class="n">comment_start</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-926"><a href="#Tokenizer-926"><span class="linenos"> 926</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="Tokenizer-927"><a href="#Tokenizer-927"><span class="linenos"> 927</span></a> -</span><span id="Tokenizer-928"><a href="#Tokenizer-928"><span class="linenos"> 928</span></a> <span class="n">comment_start_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> -</span><span id="Tokenizer-929"><a href="#Tokenizer-929"><span class="linenos"> 929</span></a> <span class="n">comment_start_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_start</span><span class="p">)</span> -</span><span id="Tokenizer-930"><a href="#Tokenizer-930"><span class="linenos"> 930</span></a> <span class="n">comment_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">[</span><span class="n">comment_start</span><span class="p">]</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-931"><a href="#Tokenizer-931"><span class="linenos"> 931</span></a> -</span><span id="Tokenizer-932"><a href="#Tokenizer-932"><span class="linenos"> 932</span></a> <span class="k">if</span> <span class="n">comment_end</span><span class="p">:</span> -</span><span id="Tokenizer-933"><a href="#Tokenizer-933"><span class="linenos"> 933</span></a> <span class="n">comment_end_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_end</span><span class="p">)</span> -</span><span id="Tokenizer-934"><a href="#Tokenizer-934"><span class="linenos"> 934</span></a> -</span><span id="Tokenizer-935"><a href="#Tokenizer-935"><span class="linenos"> 935</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">comment_end_size</span><span class="p">)</span> <span class="o">!=</span> <span class="n">comment_end</span><span class="p">:</span> -</span><span id="Tokenizer-936"><a href="#Tokenizer-936"><span class="linenos"> 936</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-937"><a href="#Tokenizer-937"><span class="linenos"> 937</span></a> -</span><span id="Tokenizer-938"><a href="#Tokenizer-938"><span class="linenos"> 938</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span> <span class="p">:</span> <span class="o">-</span><span class="n">comment_end_size</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-939"><a href="#Tokenizer-939"><span class="linenos"> 939</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">comment_end_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="Tokenizer-940"><a href="#Tokenizer-940"><span class="linenos"> 940</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-941"><a href="#Tokenizer-941"><span class="linenos"> 941</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line_break</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="p">):</span> -</span><span id="Tokenizer-942"><a href="#Tokenizer-942"><span class="linenos"> 942</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-943"><a href="#Tokenizer-943"><span class="linenos"> 943</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span><span class="p">:])</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-944"><a href="#Tokenizer-944"><span class="linenos"> 944</span></a> -</span><span id="Tokenizer-945"><a href="#Tokenizer-945"><span class="linenos"> 945</span></a> <span class="c1"># Leading comment is attached to the succeeding token, whilst trailing comment to the preceding.</span> -</span><span id="Tokenizer-946"><a href="#Tokenizer-946"><span class="linenos"> 946</span></a> <span class="c1"># Multiple consecutive comments are preserved by appending them to the current comments list.</span> -</span><span id="Tokenizer-947"><a href="#Tokenizer-947"><span class="linenos"> 947</span></a> <span class="k">if</span> <span class="n">comment_start_line</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span><span class="p">:</span> -</span><span id="Tokenizer-948"><a href="#Tokenizer-948"><span class="linenos"> 948</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="p">)</span> -</span><span id="Tokenizer-949"><a href="#Tokenizer-949"><span class="linenos"> 949</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Tokenizer-950"><a href="#Tokenizer-950"><span class="linenos"> 950</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> -</span><span id="Tokenizer-951"><a href="#Tokenizer-951"><span class="linenos"> 951</span></a> -</span><span id="Tokenizer-952"><a href="#Tokenizer-952"><span class="linenos"> 952</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Tokenizer-920"><a href="#Tokenizer-920"><span class="linenos"> 920</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_comment</span><span class="p">(</span><span class="n">word</span><span class="p">):</span> +</span><span id="Tokenizer-921"><a href="#Tokenizer-921"><span class="linenos"> 921</span></a> <span class="k">return</span> +</span><span id="Tokenizer-922"><a href="#Tokenizer-922"><span class="linenos"> 922</span></a> +</span><span id="Tokenizer-923"><a href="#Tokenizer-923"><span class="linenos"> 923</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="Tokenizer-924"><a href="#Tokenizer-924"><span class="linenos"> 924</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="p">[</span><span class="n">word</span><span class="o">.</span><span class="n">upper</span><span class="p">()])</span> +</span><span id="Tokenizer-925"><a href="#Tokenizer-925"><span class="linenos"> 925</span></a> +</span><span id="Tokenizer-926"><a href="#Tokenizer-926"><span class="linenos"> 926</span></a> <span class="k">def</span> <span class="nf">_scan_comment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">comment_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Tokenizer-927"><a href="#Tokenizer-927"><span class="linenos"> 927</span></a> <span class="k">if</span> <span class="n">comment_start</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-928"><a href="#Tokenizer-928"><span class="linenos"> 928</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="Tokenizer-929"><a href="#Tokenizer-929"><span class="linenos"> 929</span></a> +</span><span id="Tokenizer-930"><a href="#Tokenizer-930"><span class="linenos"> 930</span></a> <span class="n">comment_start_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> +</span><span id="Tokenizer-931"><a href="#Tokenizer-931"><span class="linenos"> 931</span></a> <span class="n">comment_start_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_start</span><span class="p">)</span> +</span><span id="Tokenizer-932"><a href="#Tokenizer-932"><span class="linenos"> 932</span></a> <span class="n">comment_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_COMMENTS</span><span class="p">[</span><span class="n">comment_start</span><span class="p">]</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-933"><a href="#Tokenizer-933"><span class="linenos"> 933</span></a> +</span><span id="Tokenizer-934"><a href="#Tokenizer-934"><span class="linenos"> 934</span></a> <span class="k">if</span> <span class="n">comment_end</span><span class="p">:</span> +</span><span id="Tokenizer-935"><a href="#Tokenizer-935"><span class="linenos"> 935</span></a> <span class="n">comment_end_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">comment_end</span><span class="p">)</span> +</span><span id="Tokenizer-936"><a href="#Tokenizer-936"><span class="linenos"> 936</span></a> +</span><span id="Tokenizer-937"><a href="#Tokenizer-937"><span class="linenos"> 937</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">comment_end_size</span><span class="p">)</span> <span class="o">!=</span> <span class="n">comment_end</span><span class="p">:</span> +</span><span id="Tokenizer-938"><a href="#Tokenizer-938"><span class="linenos"> 938</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-939"><a href="#Tokenizer-939"><span class="linenos"> 939</span></a> +</span><span id="Tokenizer-940"><a href="#Tokenizer-940"><span class="linenos"> 940</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span> <span class="p">:</span> <span class="o">-</span><span class="n">comment_end_size</span> <span class="o">+</span> <span class="mi">1</span><span class="p">])</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-941"><a href="#Tokenizer-941"><span class="linenos"> 941</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">comment_end_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="Tokenizer-942"><a href="#Tokenizer-942"><span class="linenos"> 942</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-943"><a href="#Tokenizer-943"><span class="linenos"> 943</span></a> <span class="k">while</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span> <span class="ow">and</span> <span class="ow">not</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line_break</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="p">):</span> +</span><span id="Tokenizer-944"><a href="#Tokenizer-944"><span class="linenos"> 944</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-945"><a href="#Tokenizer-945"><span class="linenos"> 945</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="p">[</span><span class="n">comment_start_size</span><span class="p">:])</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-946"><a href="#Tokenizer-946"><span class="linenos"> 946</span></a> +</span><span id="Tokenizer-947"><a href="#Tokenizer-947"><span class="linenos"> 947</span></a> <span class="c1"># Leading comment is attached to the succeeding token, whilst trailing comment to the preceding.</span> +</span><span id="Tokenizer-948"><a href="#Tokenizer-948"><span class="linenos"> 948</span></a> <span class="c1"># Multiple consecutive comments are preserved by appending them to the current comments list.</span> +</span><span id="Tokenizer-949"><a href="#Tokenizer-949"><span class="linenos"> 949</span></a> <span class="k">if</span> <span class="n">comment_start_line</span> <span class="o">==</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span><span class="p">:</span> +</span><span id="Tokenizer-950"><a href="#Tokenizer-950"><span class="linenos"> 950</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">tokens</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">comments</span><span class="o">.</span><span class="n">extend</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_comments</span><span class="p">)</span> +</span><span id="Tokenizer-951"><a href="#Tokenizer-951"><span class="linenos"> 951</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_comments</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Tokenizer-952"><a href="#Tokenizer-952"><span class="linenos"> 952</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_line</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_line</span> </span><span id="Tokenizer-953"><a href="#Tokenizer-953"><span class="linenos"> 953</span></a> -</span><span id="Tokenizer-954"><a href="#Tokenizer-954"><span class="linenos"> 954</span></a> <span class="k">def</span> <span class="nf">_scan_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-955"><a href="#Tokenizer-955"><span class="linenos"> 955</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> -</span><span id="Tokenizer-956"><a href="#Tokenizer-956"><span class="linenos"> 956</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-957"><a href="#Tokenizer-957"><span class="linenos"> 957</span></a> <span class="k">if</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"B"</span><span class="p">:</span> -</span><span id="Tokenizer-958"><a href="#Tokenizer-958"><span class="linenos"> 958</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_bits</span><span class="p">()</span> -</span><span id="Tokenizer-959"><a href="#Tokenizer-959"><span class="linenos"> 959</span></a> <span class="k">elif</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"X"</span><span class="p">:</span> -</span><span id="Tokenizer-960"><a href="#Tokenizer-960"><span class="linenos"> 960</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_hex</span><span class="p">()</span> -</span><span id="Tokenizer-961"><a href="#Tokenizer-961"><span class="linenos"> 961</span></a> -</span><span id="Tokenizer-962"><a href="#Tokenizer-962"><span class="linenos"> 962</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">False</span> -</span><span id="Tokenizer-963"><a href="#Tokenizer-963"><span class="linenos"> 963</span></a> <span class="n">scientific</span> <span class="o">=</span> <span class="mi">0</span> -</span><span id="Tokenizer-964"><a href="#Tokenizer-964"><span class="linenos"> 964</span></a> -</span><span id="Tokenizer-965"><a href="#Tokenizer-965"><span class="linenos"> 965</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Tokenizer-966"><a href="#Tokenizer-966"><span class="linenos"> 966</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-967"><a href="#Tokenizer-967"><span class="linenos"> 967</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-968"><a href="#Tokenizer-968"><span class="linenos"> 968</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">"."</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">decimal</span><span class="p">:</span> -</span><span id="Tokenizer-969"><a href="#Tokenizer-969"><span class="linenos"> 969</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">True</span> -</span><span id="Tokenizer-970"><a href="#Tokenizer-970"><span class="linenos"> 970</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-971"><a href="#Tokenizer-971"><span class="linenos"> 971</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scientific</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Tokenizer-972"><a href="#Tokenizer-972"><span class="linenos"> 972</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Tokenizer-973"><a href="#Tokenizer-973"><span class="linenos"> 973</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-974"><a href="#Tokenizer-974"><span class="linenos"> 974</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"E"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scientific</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-975"><a href="#Tokenizer-975"><span class="linenos"> 975</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> -</span><span id="Tokenizer-976"><a href="#Tokenizer-976"><span class="linenos"> 976</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-977"><a href="#Tokenizer-977"><span class="linenos"> 977</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isidentifier</span><span class="p">():</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-978"><a href="#Tokenizer-978"><span class="linenos"> 978</span></a> <span class="n">number_text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> -</span><span id="Tokenizer-979"><a href="#Tokenizer-979"><span class="linenos"> 979</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="p">[]</span> -</span><span id="Tokenizer-980"><a href="#Tokenizer-980"><span class="linenos"> 980</span></a> -</span><span id="Tokenizer-981"><a href="#Tokenizer-981"><span class="linenos"> 981</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-982"><a href="#Tokenizer-982"><span class="linenos"> 982</span></a> <span class="n">literal</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-983"><a href="#Tokenizer-983"><span class="linenos"> 983</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-984"><a href="#Tokenizer-984"><span class="linenos"> 984</span></a> -</span><span id="Tokenizer-985"><a href="#Tokenizer-985"><span class="linenos"> 985</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-986"><a href="#Tokenizer-986"><span class="linenos"> 986</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NUMERIC_LITERALS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-987"><a href="#Tokenizer-987"><span class="linenos"> 987</span></a> -</span><span id="Tokenizer-988"><a href="#Tokenizer-988"><span class="linenos"> 988</span></a> <span class="k">if</span> <span class="n">token_type</span><span class="p">:</span> -</span><span id="Tokenizer-989"><a href="#Tokenizer-989"><span class="linenos"> 989</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> -</span><span id="Tokenizer-990"><a href="#Tokenizer-990"><span class="linenos"> 990</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">,</span> <span class="s2">"::"</span><span class="p">)</span> -</span><span id="Tokenizer-991"><a href="#Tokenizer-991"><span class="linenos"> 991</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-992"><a href="#Tokenizer-992"><span class="linenos"> 992</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span><span class="p">:</span> -</span><span id="Tokenizer-993"><a href="#Tokenizer-993"><span class="linenos"> 993</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> -</span><span id="Tokenizer-994"><a href="#Tokenizer-994"><span class="linenos"> 994</span></a> -</span><span id="Tokenizer-995"><a href="#Tokenizer-995"><span class="linenos"> 995</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> -</span><span id="Tokenizer-996"><a href="#Tokenizer-996"><span class="linenos"> 996</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> -</span><span id="Tokenizer-997"><a href="#Tokenizer-997"><span class="linenos"> 997</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-998"><a href="#Tokenizer-998"><span class="linenos"> 998</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">)</span> -</span><span id="Tokenizer-999"><a href="#Tokenizer-999"><span class="linenos"> 999</span></a> -</span><span id="Tokenizer-1000"><a href="#Tokenizer-1000"><span class="linenos">1000</span></a> <span class="k">def</span> <span class="nf">_scan_bits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-1001"><a href="#Tokenizer-1001"><span class="linenos">1001</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1002"><a href="#Tokenizer-1002"><span class="linenos">1002</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> -</span><span id="Tokenizer-1003"><a href="#Tokenizer-1003"><span class="linenos">1003</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Tokenizer-1004"><a href="#Tokenizer-1004"><span class="linenos">1004</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Tokenizer-1005"><a href="#Tokenizer-1005"><span class="linenos">1005</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> -</span><span id="Tokenizer-1006"><a href="#Tokenizer-1006"><span class="linenos">1006</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> -</span><span id="Tokenizer-1007"><a href="#Tokenizer-1007"><span class="linenos">1007</span></a> -</span><span id="Tokenizer-1008"><a href="#Tokenizer-1008"><span class="linenos">1008</span></a> <span class="k">def</span> <span class="nf">_scan_hex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-1009"><a href="#Tokenizer-1009"><span class="linenos">1009</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1010"><a href="#Tokenizer-1010"><span class="linenos">1010</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> -</span><span id="Tokenizer-1011"><a href="#Tokenizer-1011"><span class="linenos">1011</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Tokenizer-1012"><a href="#Tokenizer-1012"><span class="linenos">1012</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Tokenizer-1013"><a href="#Tokenizer-1013"><span class="linenos">1013</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> -</span><span id="Tokenizer-1014"><a href="#Tokenizer-1014"><span class="linenos">1014</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> -</span><span id="Tokenizer-1015"><a href="#Tokenizer-1015"><span class="linenos">1015</span></a> -</span><span id="Tokenizer-1016"><a href="#Tokenizer-1016"><span class="linenos">1016</span></a> <span class="k">def</span> <span class="nf">_extract_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Tokenizer-1017"><a href="#Tokenizer-1017"><span class="linenos">1017</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Tokenizer-1018"><a href="#Tokenizer-1018"><span class="linenos">1018</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1019"><a href="#Tokenizer-1019"><span class="linenos">1019</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> -</span><span id="Tokenizer-1020"><a href="#Tokenizer-1020"><span class="linenos">1020</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1021"><a href="#Tokenizer-1021"><span class="linenos">1021</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1022"><a href="#Tokenizer-1022"><span class="linenos">1022</span></a> <span class="k">break</span> -</span><span id="Tokenizer-1023"><a href="#Tokenizer-1023"><span class="linenos">1023</span></a> -</span><span id="Tokenizer-1024"><a href="#Tokenizer-1024"><span class="linenos">1024</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="Tokenizer-954"><a href="#Tokenizer-954"><span class="linenos"> 954</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Tokenizer-955"><a href="#Tokenizer-955"><span class="linenos"> 955</span></a> +</span><span id="Tokenizer-956"><a href="#Tokenizer-956"><span class="linenos"> 956</span></a> <span class="k">def</span> <span class="nf">_scan_number</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-957"><a href="#Tokenizer-957"><span class="linenos"> 957</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="s2">"0"</span><span class="p">:</span> +</span><span id="Tokenizer-958"><a href="#Tokenizer-958"><span class="linenos"> 958</span></a> <span class="n">peek</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-959"><a href="#Tokenizer-959"><span class="linenos"> 959</span></a> <span class="k">if</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"B"</span><span class="p">:</span> +</span><span id="Tokenizer-960"><a href="#Tokenizer-960"><span class="linenos"> 960</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_bits</span><span class="p">()</span> +</span><span id="Tokenizer-961"><a href="#Tokenizer-961"><span class="linenos"> 961</span></a> <span class="k">elif</span> <span class="n">peek</span> <span class="o">==</span> <span class="s2">"X"</span><span class="p">:</span> +</span><span id="Tokenizer-962"><a href="#Tokenizer-962"><span class="linenos"> 962</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_scan_hex</span><span class="p">()</span> +</span><span id="Tokenizer-963"><a href="#Tokenizer-963"><span class="linenos"> 963</span></a> +</span><span id="Tokenizer-964"><a href="#Tokenizer-964"><span class="linenos"> 964</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">False</span> +</span><span id="Tokenizer-965"><a href="#Tokenizer-965"><span class="linenos"> 965</span></a> <span class="n">scientific</span> <span class="o">=</span> <span class="mi">0</span> +</span><span id="Tokenizer-966"><a href="#Tokenizer-966"><span class="linenos"> 966</span></a> +</span><span id="Tokenizer-967"><a href="#Tokenizer-967"><span class="linenos"> 967</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Tokenizer-968"><a href="#Tokenizer-968"><span class="linenos"> 968</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isdigit</span><span class="p">():</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-969"><a href="#Tokenizer-969"><span class="linenos"> 969</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-970"><a href="#Tokenizer-970"><span class="linenos"> 970</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="s2">"."</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">decimal</span><span class="p">:</span> +</span><span id="Tokenizer-971"><a href="#Tokenizer-971"><span class="linenos"> 971</span></a> <span class="n">decimal</span> <span class="o">=</span> <span class="kc">True</span> +</span><span id="Tokenizer-972"><a href="#Tokenizer-972"><span class="linenos"> 972</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-973"><a href="#Tokenizer-973"><span class="linenos"> 973</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="p">(</span><span class="s2">"-"</span><span class="p">,</span> <span class="s2">"+"</span><span class="p">)</span> <span class="ow">and</span> <span class="n">scientific</span> <span class="o">==</span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Tokenizer-974"><a href="#Tokenizer-974"><span class="linenos"> 974</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Tokenizer-975"><a href="#Tokenizer-975"><span class="linenos"> 975</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-976"><a href="#Tokenizer-976"><span class="linenos"> 976</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"E"</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">scientific</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-977"><a href="#Tokenizer-977"><span class="linenos"> 977</span></a> <span class="n">scientific</span> <span class="o">+=</span> <span class="mi">1</span> +</span><span id="Tokenizer-978"><a href="#Tokenizer-978"><span class="linenos"> 978</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-979"><a href="#Tokenizer-979"><span class="linenos"> 979</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">isidentifier</span><span class="p">():</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-980"><a href="#Tokenizer-980"><span class="linenos"> 980</span></a> <span class="n">number_text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="Tokenizer-981"><a href="#Tokenizer-981"><span class="linenos"> 981</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="p">[]</span> +</span><span id="Tokenizer-982"><a href="#Tokenizer-982"><span class="linenos"> 982</span></a> +</span><span id="Tokenizer-983"><a href="#Tokenizer-983"><span class="linenos"> 983</span></a> <span class="k">while</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-984"><a href="#Tokenizer-984"><span class="linenos"> 984</span></a> <span class="n">literal</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">upper</span><span class="p">())</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-985"><a href="#Tokenizer-985"><span class="linenos"> 985</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-986"><a href="#Tokenizer-986"><span class="linenos"> 986</span></a> +</span><span id="Tokenizer-987"><a href="#Tokenizer-987"><span class="linenos"> 987</span></a> <span class="n">literal</span> <span class="o">=</span> <span class="s2">""</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-988"><a href="#Tokenizer-988"><span class="linenos"> 988</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">NUMERIC_LITERALS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-989"><a href="#Tokenizer-989"><span class="linenos"> 989</span></a> +</span><span id="Tokenizer-990"><a href="#Tokenizer-990"><span class="linenos"> 990</span></a> <span class="k">if</span> <span class="n">token_type</span><span class="p">:</span> +</span><span id="Tokenizer-991"><a href="#Tokenizer-991"><span class="linenos"> 991</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> +</span><span id="Tokenizer-992"><a href="#Tokenizer-992"><span class="linenos"> 992</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">DCOLON</span><span class="p">,</span> <span class="s2">"::"</span><span class="p">)</span> +</span><span id="Tokenizer-993"><a href="#Tokenizer-993"><span class="linenos"> 993</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">literal</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-994"><a href="#Tokenizer-994"><span class="linenos"> 994</span></a> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">IDENTIFIER_CAN_START_WITH_DIGIT</span><span class="p">:</span> +</span><span id="Tokenizer-995"><a href="#Tokenizer-995"><span class="linenos"> 995</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> +</span><span id="Tokenizer-996"><a href="#Tokenizer-996"><span class="linenos"> 996</span></a> +</span><span id="Tokenizer-997"><a href="#Tokenizer-997"><span class="linenos"> 997</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">,</span> <span class="n">number_text</span><span class="p">)</span> +</span><span id="Tokenizer-998"><a href="#Tokenizer-998"><span class="linenos"> 998</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="o">-</span><span class="nb">len</span><span class="p">(</span><span class="n">literal</span><span class="p">))</span> +</span><span id="Tokenizer-999"><a href="#Tokenizer-999"><span class="linenos"> 999</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1000"><a href="#Tokenizer-1000"><span class="linenos">1000</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NUMBER</span><span class="p">)</span> +</span><span id="Tokenizer-1001"><a href="#Tokenizer-1001"><span class="linenos">1001</span></a> +</span><span id="Tokenizer-1002"><a href="#Tokenizer-1002"><span class="linenos">1002</span></a> <span class="k">def</span> <span class="nf">_scan_bits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-1003"><a href="#Tokenizer-1003"><span class="linenos">1003</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1004"><a href="#Tokenizer-1004"><span class="linenos">1004</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> +</span><span id="Tokenizer-1005"><a href="#Tokenizer-1005"><span class="linenos">1005</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Tokenizer-1006"><a href="#Tokenizer-1006"><span class="linenos">1006</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Tokenizer-1007"><a href="#Tokenizer-1007"><span class="linenos">1007</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> +</span><span id="Tokenizer-1008"><a href="#Tokenizer-1008"><span class="linenos">1008</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> +</span><span id="Tokenizer-1009"><a href="#Tokenizer-1009"><span class="linenos">1009</span></a> +</span><span id="Tokenizer-1010"><a href="#Tokenizer-1010"><span class="linenos">1010</span></a> <span class="k">def</span> <span class="nf">_scan_hex</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-1011"><a href="#Tokenizer-1011"><span class="linenos">1011</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1012"><a href="#Tokenizer-1012"><span class="linenos">1012</span></a> <span class="n">value</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_value</span><span class="p">()</span> +</span><span id="Tokenizer-1013"><a href="#Tokenizer-1013"><span class="linenos">1013</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Tokenizer-1014"><a href="#Tokenizer-1014"><span class="linenos">1014</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">value</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Tokenizer-1015"><a href="#Tokenizer-1015"><span class="linenos">1015</span></a> <span class="k">except</span> <span class="ne">ValueError</span><span class="p">:</span> +</span><span id="Tokenizer-1016"><a href="#Tokenizer-1016"><span class="linenos">1016</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">)</span> +</span><span id="Tokenizer-1017"><a href="#Tokenizer-1017"><span class="linenos">1017</span></a> +</span><span id="Tokenizer-1018"><a href="#Tokenizer-1018"><span class="linenos">1018</span></a> <span class="k">def</span> <span class="nf">_extract_value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Tokenizer-1019"><a href="#Tokenizer-1019"><span class="linenos">1019</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Tokenizer-1020"><a href="#Tokenizer-1020"><span class="linenos">1020</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1021"><a href="#Tokenizer-1021"><span class="linenos">1021</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> +</span><span id="Tokenizer-1022"><a href="#Tokenizer-1022"><span class="linenos">1022</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1023"><a href="#Tokenizer-1023"><span class="linenos">1023</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1024"><a href="#Tokenizer-1024"><span class="linenos">1024</span></a> <span class="k">break</span> </span><span id="Tokenizer-1025"><a href="#Tokenizer-1025"><span class="linenos">1025</span></a> -</span><span id="Tokenizer-1026"><a href="#Tokenizer-1026"><span class="linenos">1026</span></a> <span class="k">def</span> <span class="nf">_scan_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">quote</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Tokenizer-1027"><a href="#Tokenizer-1027"><span class="linenos">1027</span></a> <span class="n">quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_QUOTES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">quote</span><span class="p">)</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1028"><a href="#Tokenizer-1028"><span class="linenos">1028</span></a> <span class="k">if</span> <span class="n">quote_end</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-1029"><a href="#Tokenizer-1029"><span class="linenos">1029</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="Tokenizer-1030"><a href="#Tokenizer-1030"><span class="linenos">1030</span></a> -</span><span id="Tokenizer-1031"><a href="#Tokenizer-1031"><span class="linenos">1031</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">quote</span><span class="p">))</span> -</span><span id="Tokenizer-1032"><a href="#Tokenizer-1032"><span class="linenos">1032</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">quote_end</span><span class="p">)</span> -</span><span id="Tokenizer-1033"><a href="#Tokenizer-1033"><span class="linenos">1033</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span> <span class="k">else</span> <span class="n">text</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1034"><a href="#Tokenizer-1034"><span class="linenos">1034</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span> <span class="k">if</span> <span class="n">quote</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"N"</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> -</span><span id="Tokenizer-1035"><a href="#Tokenizer-1035"><span class="linenos">1035</span></a> <span class="k">return</span> <span class="kc">True</span> -</span><span id="Tokenizer-1036"><a href="#Tokenizer-1036"><span class="linenos">1036</span></a> -</span><span id="Tokenizer-1037"><a href="#Tokenizer-1037"><span class="linenos">1037</span></a> <span class="c1"># X'1234, b'0110', E'\\\\\' etc.</span> -</span><span id="Tokenizer-1038"><a href="#Tokenizer-1038"><span class="linenos">1038</span></a> <span class="k">def</span> <span class="nf">_scan_formatted_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">string_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> -</span><span id="Tokenizer-1039"><a href="#Tokenizer-1039"><span class="linenos">1039</span></a> <span class="k">if</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1040"><a href="#Tokenizer-1040"><span class="linenos">1040</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1041"><a href="#Tokenizer-1041"><span class="linenos">1041</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span> -</span><span id="Tokenizer-1042"><a href="#Tokenizer-1042"><span class="linenos">1042</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">16</span> -</span><span id="Tokenizer-1043"><a href="#Tokenizer-1043"><span class="linenos">1043</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1044"><a href="#Tokenizer-1044"><span class="linenos">1044</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1045"><a href="#Tokenizer-1045"><span class="linenos">1045</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span> -</span><span id="Tokenizer-1046"><a href="#Tokenizer-1046"><span class="linenos">1046</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">2</span> -</span><span id="Tokenizer-1047"><a href="#Tokenizer-1047"><span class="linenos">1047</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1048"><a href="#Tokenizer-1048"><span class="linenos">1048</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1049"><a href="#Tokenizer-1049"><span class="linenos">1049</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span> -</span><span id="Tokenizer-1050"><a href="#Tokenizer-1050"><span class="linenos">1050</span></a> <span class="n">base</span> <span class="o">=</span> <span class="kc">None</span> -</span><span id="Tokenizer-1051"><a href="#Tokenizer-1051"><span class="linenos">1051</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1052"><a href="#Tokenizer-1052"><span class="linenos">1052</span></a> <span class="k">return</span> <span class="kc">False</span> -</span><span id="Tokenizer-1053"><a href="#Tokenizer-1053"><span class="linenos">1053</span></a> -</span><span id="Tokenizer-1054"><a href="#Tokenizer-1054"><span class="linenos">1054</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">string_start</span><span class="p">))</span> -</span><span id="Tokenizer-1055"><a href="#Tokenizer-1055"><span class="linenos">1055</span></a> <span class="n">string_end</span> <span class="o">=</span> <span class="n">delimiters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">string_start</span><span class="p">)</span> -</span><span id="Tokenizer-1056"><a href="#Tokenizer-1056"><span class="linenos">1056</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">string_end</span><span class="p">)</span> -</span><span id="Tokenizer-1057"><a href="#Tokenizer-1057"><span class="linenos">1057</span></a> -</span><span id="Tokenizer-1058"><a href="#Tokenizer-1058"><span class="linenos">1058</span></a> <span class="k">if</span> <span class="n">base</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-1059"><a href="#Tokenizer-1059"><span class="linenos">1059</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> -</span><span id="Tokenizer-1060"><a href="#Tokenizer-1060"><span class="linenos">1060</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1061"><a href="#Tokenizer-1061"><span class="linenos">1061</span></a> <span class="k">try</span><span class="p">:</span> -</span><span id="Tokenizer-1062"><a href="#Tokenizer-1062"><span class="linenos">1062</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Tokenizer-1063"><a href="#Tokenizer-1063"><span class="linenos">1063</span></a> <span class="k">except</span><span class="p">:</span> -</span><span id="Tokenizer-1064"><a href="#Tokenizer-1064"><span class="linenos">1064</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span> -</span><span id="Tokenizer-1065"><a href="#Tokenizer-1065"><span class="linenos">1065</span></a> <span class="sa">f</span><span class="s2">"Numeric string contains invalid characters from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span> -</span><span id="Tokenizer-1066"><a href="#Tokenizer-1066"><span class="linenos">1066</span></a> <span class="p">)</span> -</span><span id="Tokenizer-1067"><a href="#Tokenizer-1067"><span class="linenos">1067</span></a> -</span><span id="Tokenizer-1068"><a href="#Tokenizer-1068"><span class="linenos">1068</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Tokenizer-1026"><a href="#Tokenizer-1026"><span class="linenos">1026</span></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_text</span> +</span><span id="Tokenizer-1027"><a href="#Tokenizer-1027"><span class="linenos">1027</span></a> +</span><span id="Tokenizer-1028"><a href="#Tokenizer-1028"><span class="linenos">1028</span></a> <span class="k">def</span> <span class="nf">_scan_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">quote</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Tokenizer-1029"><a href="#Tokenizer-1029"><span class="linenos">1029</span></a> <span class="n">quote_end</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_QUOTES</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">quote</span><span class="p">)</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1030"><a href="#Tokenizer-1030"><span class="linenos">1030</span></a> <span class="k">if</span> <span class="n">quote_end</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-1031"><a href="#Tokenizer-1031"><span class="linenos">1031</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="Tokenizer-1032"><a href="#Tokenizer-1032"><span class="linenos">1032</span></a> +</span><span id="Tokenizer-1033"><a href="#Tokenizer-1033"><span class="linenos">1033</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">quote</span><span class="p">))</span> +</span><span id="Tokenizer-1034"><a href="#Tokenizer-1034"><span class="linenos">1034</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">quote_end</span><span class="p">)</span> +</span><span id="Tokenizer-1035"><a href="#Tokenizer-1035"><span class="linenos">1035</span></a> <span class="n">text</span> <span class="o">=</span> <span class="n">text</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span><span class="o">.</span><span class="n">decode</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">ENCODE</span> <span class="k">else</span> <span class="n">text</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1036"><a href="#Tokenizer-1036"><span class="linenos">1036</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">NATIONAL</span> <span class="k">if</span> <span class="n">quote</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">upper</span><span class="p">()</span> <span class="o">==</span> <span class="s2">"N"</span> <span class="k">else</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">STRING</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="Tokenizer-1037"><a href="#Tokenizer-1037"><span class="linenos">1037</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Tokenizer-1038"><a href="#Tokenizer-1038"><span class="linenos">1038</span></a> +</span><span id="Tokenizer-1039"><a href="#Tokenizer-1039"><span class="linenos">1039</span></a> <span class="c1"># X'1234, b'0110', E'\\\\\' etc.</span> +</span><span id="Tokenizer-1040"><a href="#Tokenizer-1040"><span class="linenos">1040</span></a> <span class="k">def</span> <span class="nf">_scan_formatted_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">string_start</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bool</span><span class="p">:</span> +</span><span id="Tokenizer-1041"><a href="#Tokenizer-1041"><span class="linenos">1041</span></a> <span class="k">if</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1042"><a href="#Tokenizer-1042"><span class="linenos">1042</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_HEX_STRINGS</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1043"><a href="#Tokenizer-1043"><span class="linenos">1043</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">HEX_STRING</span> +</span><span id="Tokenizer-1044"><a href="#Tokenizer-1044"><span class="linenos">1044</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">16</span> +</span><span id="Tokenizer-1045"><a href="#Tokenizer-1045"><span class="linenos">1045</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1046"><a href="#Tokenizer-1046"><span class="linenos">1046</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BIT_STRINGS</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1047"><a href="#Tokenizer-1047"><span class="linenos">1047</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BIT_STRING</span> +</span><span id="Tokenizer-1048"><a href="#Tokenizer-1048"><span class="linenos">1048</span></a> <span class="n">base</span> <span class="o">=</span> <span class="mi">2</span> +</span><span id="Tokenizer-1049"><a href="#Tokenizer-1049"><span class="linenos">1049</span></a> <span class="k">elif</span> <span class="n">string_start</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span><span class="p">:</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1050"><a href="#Tokenizer-1050"><span class="linenos">1050</span></a> <span class="n">delimiters</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_BYTE_STRINGS</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1051"><a href="#Tokenizer-1051"><span class="linenos">1051</span></a> <span class="n">token_type</span> <span class="o">=</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">BYTE_STRING</span> +</span><span id="Tokenizer-1052"><a href="#Tokenizer-1052"><span class="linenos">1052</span></a> <span class="n">base</span> <span class="o">=</span> <span class="kc">None</span> +</span><span id="Tokenizer-1053"><a href="#Tokenizer-1053"><span class="linenos">1053</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1054"><a href="#Tokenizer-1054"><span class="linenos">1054</span></a> <span class="k">return</span> <span class="kc">False</span> +</span><span id="Tokenizer-1055"><a href="#Tokenizer-1055"><span class="linenos">1055</span></a> +</span><span id="Tokenizer-1056"><a href="#Tokenizer-1056"><span class="linenos">1056</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="nb">len</span><span class="p">(</span><span class="n">string_start</span><span class="p">))</span> +</span><span id="Tokenizer-1057"><a href="#Tokenizer-1057"><span class="linenos">1057</span></a> <span class="n">string_end</span> <span class="o">=</span> <span class="n">delimiters</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">string_start</span><span class="p">)</span> +</span><span id="Tokenizer-1058"><a href="#Tokenizer-1058"><span class="linenos">1058</span></a> <span class="n">text</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_extract_string</span><span class="p">(</span><span class="n">string_end</span><span class="p">)</span> +</span><span id="Tokenizer-1059"><a href="#Tokenizer-1059"><span class="linenos">1059</span></a> +</span><span id="Tokenizer-1060"><a href="#Tokenizer-1060"><span class="linenos">1060</span></a> <span class="k">if</span> <span class="n">base</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-1061"><a href="#Tokenizer-1061"><span class="linenos">1061</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="Tokenizer-1062"><a href="#Tokenizer-1062"><span class="linenos">1062</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1063"><a href="#Tokenizer-1063"><span class="linenos">1063</span></a> <span class="k">try</span><span class="p">:</span> +</span><span id="Tokenizer-1064"><a href="#Tokenizer-1064"><span class="linenos">1064</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">token_type</span><span class="p">,</span> <span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="nb">int</span><span class="p">(</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="n">base</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Tokenizer-1065"><a href="#Tokenizer-1065"><span class="linenos">1065</span></a> <span class="k">except</span><span class="p">:</span> +</span><span id="Tokenizer-1066"><a href="#Tokenizer-1066"><span class="linenos">1066</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span> +</span><span id="Tokenizer-1067"><a href="#Tokenizer-1067"><span class="linenos">1067</span></a> <span class="sa">f</span><span class="s2">"Numeric string contains invalid characters from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span> +</span><span id="Tokenizer-1068"><a href="#Tokenizer-1068"><span class="linenos">1068</span></a> <span class="p">)</span> </span><span id="Tokenizer-1069"><a href="#Tokenizer-1069"><span class="linenos">1069</span></a> -</span><span id="Tokenizer-1070"><a href="#Tokenizer-1070"><span class="linenos">1070</span></a> <span class="k">def</span> <span class="nf">_scan_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier_end</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-1071"><a href="#Tokenizer-1071"><span class="linenos">1071</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Tokenizer-1072"><a href="#Tokenizer-1072"><span class="linenos">1072</span></a> <span class="n">identifier_end_is_escape</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IDENTIFIER_ESCAPES</span> -</span><span id="Tokenizer-1073"><a href="#Tokenizer-1073"><span class="linenos">1073</span></a> -</span><span id="Tokenizer-1074"><a href="#Tokenizer-1074"><span class="linenos">1074</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Tokenizer-1075"><a href="#Tokenizer-1075"><span class="linenos">1075</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> -</span><span id="Tokenizer-1076"><a href="#Tokenizer-1076"><span class="linenos">1076</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Tokenizer-1077"><a href="#Tokenizer-1077"><span class="linenos">1077</span></a> -</span><span id="Tokenizer-1078"><a href="#Tokenizer-1078"><span class="linenos">1078</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1079"><a href="#Tokenizer-1079"><span class="linenos">1079</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> -</span><span id="Tokenizer-1080"><a href="#Tokenizer-1080"><span class="linenos">1080</span></a> <span class="k">if</span> <span class="n">identifier_end_is_escape</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> -</span><span id="Tokenizer-1081"><a href="#Tokenizer-1081"><span class="linenos">1081</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">identifier_end</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1082"><a href="#Tokenizer-1082"><span class="linenos">1082</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1083"><a href="#Tokenizer-1083"><span class="linenos">1083</span></a> <span class="k">continue</span> -</span><span id="Tokenizer-1084"><a href="#Tokenizer-1084"><span class="linenos">1084</span></a> -</span><span id="Tokenizer-1085"><a href="#Tokenizer-1085"><span class="linenos">1085</span></a> <span class="k">break</span> +</span><span id="Tokenizer-1070"><a href="#Tokenizer-1070"><span class="linenos">1070</span></a> <span class="k">return</span> <span class="kc">True</span> +</span><span id="Tokenizer-1071"><a href="#Tokenizer-1071"><span class="linenos">1071</span></a> +</span><span id="Tokenizer-1072"><a href="#Tokenizer-1072"><span class="linenos">1072</span></a> <span class="k">def</span> <span class="nf">_scan_identifier</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">identifier_end</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-1073"><a href="#Tokenizer-1073"><span class="linenos">1073</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Tokenizer-1074"><a href="#Tokenizer-1074"><span class="linenos">1074</span></a> <span class="n">identifier_end_is_escape</span> <span class="o">=</span> <span class="n">identifier_end</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_IDENTIFIER_ESCAPES</span> +</span><span id="Tokenizer-1075"><a href="#Tokenizer-1075"><span class="linenos">1075</span></a> +</span><span id="Tokenizer-1076"><a href="#Tokenizer-1076"><span class="linenos">1076</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Tokenizer-1077"><a href="#Tokenizer-1077"><span class="linenos">1077</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> +</span><span id="Tokenizer-1078"><a href="#Tokenizer-1078"><span class="linenos">1078</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">identifier_end</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Tokenizer-1079"><a href="#Tokenizer-1079"><span class="linenos">1079</span></a> +</span><span id="Tokenizer-1080"><a href="#Tokenizer-1080"><span class="linenos">1080</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1081"><a href="#Tokenizer-1081"><span class="linenos">1081</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> +</span><span id="Tokenizer-1082"><a href="#Tokenizer-1082"><span class="linenos">1082</span></a> <span class="k">if</span> <span class="n">identifier_end_is_escape</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">identifier_end</span><span class="p">:</span> +</span><span id="Tokenizer-1083"><a href="#Tokenizer-1083"><span class="linenos">1083</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="n">identifier_end</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1084"><a href="#Tokenizer-1084"><span class="linenos">1084</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1085"><a href="#Tokenizer-1085"><span class="linenos">1085</span></a> <span class="k">continue</span> </span><span id="Tokenizer-1086"><a href="#Tokenizer-1086"><span class="linenos">1086</span></a> -</span><span id="Tokenizer-1087"><a href="#Tokenizer-1087"><span class="linenos">1087</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1087"><a href="#Tokenizer-1087"><span class="linenos">1087</span></a> <span class="k">break</span> </span><span id="Tokenizer-1088"><a href="#Tokenizer-1088"><span class="linenos">1088</span></a> -</span><span id="Tokenizer-1089"><a href="#Tokenizer-1089"><span class="linenos">1089</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="Tokenizer-1089"><a href="#Tokenizer-1089"><span class="linenos">1089</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> </span><span id="Tokenizer-1090"><a href="#Tokenizer-1090"><span class="linenos">1090</span></a> -</span><span id="Tokenizer-1091"><a href="#Tokenizer-1091"><span class="linenos">1091</span></a> <span class="k">def</span> <span class="nf">_scan_var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> -</span><span id="Tokenizer-1092"><a href="#Tokenizer-1092"><span class="linenos">1092</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Tokenizer-1093"><a href="#Tokenizer-1093"><span class="linenos">1093</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1094"><a href="#Tokenizer-1094"><span class="linenos">1094</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> -</span><span id="Tokenizer-1095"><a href="#Tokenizer-1095"><span class="linenos">1095</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1096"><a href="#Tokenizer-1096"><span class="linenos">1096</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1097"><a href="#Tokenizer-1097"><span class="linenos">1097</span></a> <span class="k">break</span> -</span><span id="Tokenizer-1098"><a href="#Tokenizer-1098"><span class="linenos">1098</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span> -</span><span id="Tokenizer-1099"><a href="#Tokenizer-1099"><span class="linenos">1099</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span> -</span><span id="Tokenizer-1100"><a href="#Tokenizer-1100"><span class="linenos">1100</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span> -</span><span id="Tokenizer-1101"><a href="#Tokenizer-1101"><span class="linenos">1101</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> -</span><span id="Tokenizer-1102"><a href="#Tokenizer-1102"><span class="linenos">1102</span></a> <span class="p">)</span> -</span><span id="Tokenizer-1103"><a href="#Tokenizer-1103"><span class="linenos">1103</span></a> -</span><span id="Tokenizer-1104"><a href="#Tokenizer-1104"><span class="linenos">1104</span></a> <span class="k">def</span> <span class="nf">_extract_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delimiter</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> -</span><span id="Tokenizer-1105"><a href="#Tokenizer-1105"><span class="linenos">1105</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> -</span><span id="Tokenizer-1106"><a href="#Tokenizer-1106"><span class="linenos">1106</span></a> <span class="n">delim_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">delimiter</span><span class="p">)</span> -</span><span id="Tokenizer-1107"><a href="#Tokenizer-1107"><span class="linenos">1107</span></a> -</span><span id="Tokenizer-1108"><a href="#Tokenizer-1108"><span class="linenos">1108</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> -</span><span id="Tokenizer-1109"><a href="#Tokenizer-1109"><span class="linenos">1109</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> <span class="ow">and</span> <span class="p">(</span> -</span><span id="Tokenizer-1110"><a href="#Tokenizer-1110"><span class="linenos">1110</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> -</span><span id="Tokenizer-1111"><a href="#Tokenizer-1111"><span class="linenos">1111</span></a> <span class="p">):</span> -</span><span id="Tokenizer-1112"><a href="#Tokenizer-1112"><span class="linenos">1112</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> -</span><span id="Tokenizer-1113"><a href="#Tokenizer-1113"><span class="linenos">1113</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1114"><a href="#Tokenizer-1114"><span class="linenos">1114</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1115"><a href="#Tokenizer-1115"><span class="linenos">1115</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1116"><a href="#Tokenizer-1116"><span class="linenos">1116</span></a> -</span><span id="Tokenizer-1117"><a href="#Tokenizer-1117"><span class="linenos">1117</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> -</span><span id="Tokenizer-1118"><a href="#Tokenizer-1118"><span class="linenos">1118</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> -</span><span id="Tokenizer-1119"><a href="#Tokenizer-1119"><span class="linenos">1119</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1120"><a href="#Tokenizer-1120"><span class="linenos">1120</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Tokenizer-1121"><a href="#Tokenizer-1121"><span class="linenos">1121</span></a> <span class="k">else</span><span class="p">:</span> -</span><span id="Tokenizer-1122"><a href="#Tokenizer-1122"><span class="linenos">1122</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">delim_size</span><span class="p">)</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> -</span><span id="Tokenizer-1123"><a href="#Tokenizer-1123"><span class="linenos">1123</span></a> <span class="k">if</span> <span class="n">delim_size</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> -</span><span id="Tokenizer-1124"><a href="#Tokenizer-1124"><span class="linenos">1124</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">delim_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> -</span><span id="Tokenizer-1125"><a href="#Tokenizer-1125"><span class="linenos">1125</span></a> <span class="k">break</span> -</span><span id="Tokenizer-1126"><a href="#Tokenizer-1126"><span class="linenos">1126</span></a> -</span><span id="Tokenizer-1127"><a href="#Tokenizer-1127"><span class="linenos">1127</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> -</span><span id="Tokenizer-1128"><a href="#Tokenizer-1128"><span class="linenos">1128</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> -</span><span id="Tokenizer-1129"><a href="#Tokenizer-1129"><span class="linenos">1129</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> -</span><span id="Tokenizer-1130"><a href="#Tokenizer-1130"><span class="linenos">1130</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> -</span><span id="Tokenizer-1131"><a href="#Tokenizer-1131"><span class="linenos">1131</span></a> -</span><span id="Tokenizer-1132"><a href="#Tokenizer-1132"><span class="linenos">1132</span></a> <span class="k">return</span> <span class="n">text</span> +</span><span id="Tokenizer-1091"><a href="#Tokenizer-1091"><span class="linenos">1091</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span><span class="n">TokenType</span><span class="o">.</span><span class="n">IDENTIFIER</span><span class="p">,</span> <span class="n">text</span><span class="p">)</span> +</span><span id="Tokenizer-1092"><a href="#Tokenizer-1092"><span class="linenos">1092</span></a> +</span><span id="Tokenizer-1093"><a href="#Tokenizer-1093"><span class="linenos">1093</span></a> <span class="k">def</span> <span class="nf">_scan_var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span> +</span><span id="Tokenizer-1094"><a href="#Tokenizer-1094"><span class="linenos">1094</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Tokenizer-1095"><a href="#Tokenizer-1095"><span class="linenos">1095</span></a> <span class="n">char</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1096"><a href="#Tokenizer-1096"><span class="linenos">1096</span></a> <span class="k">if</span> <span class="n">char</span> <span class="ow">and</span> <span class="n">char</span> <span class="ow">not</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">SINGLE_TOKENS</span><span class="p">:</span> +</span><span id="Tokenizer-1097"><a href="#Tokenizer-1097"><span class="linenos">1097</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1098"><a href="#Tokenizer-1098"><span class="linenos">1098</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1099"><a href="#Tokenizer-1099"><span class="linenos">1099</span></a> <span class="k">break</span> +</span><span id="Tokenizer-1100"><a href="#Tokenizer-1100"><span class="linenos">1100</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_add</span><span class="p">(</span> +</span><span id="Tokenizer-1101"><a href="#Tokenizer-1101"><span class="linenos">1101</span></a> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span> +</span><span id="Tokenizer-1102"><a href="#Tokenizer-1102"><span class="linenos">1102</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_prev_token_type</span> <span class="o">==</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">PARAMETER</span> +</span><span id="Tokenizer-1103"><a href="#Tokenizer-1103"><span class="linenos">1103</span></a> <span class="k">else</span> <span class="bp">self</span><span class="o">.</span><span class="n">KEYWORDS</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">_text</span><span class="o">.</span><span class="n">upper</span><span class="p">(),</span> <span class="n">TokenType</span><span class="o">.</span><span class="n">VAR</span><span class="p">)</span> +</span><span id="Tokenizer-1104"><a href="#Tokenizer-1104"><span class="linenos">1104</span></a> <span class="p">)</span> +</span><span id="Tokenizer-1105"><a href="#Tokenizer-1105"><span class="linenos">1105</span></a> +</span><span id="Tokenizer-1106"><a href="#Tokenizer-1106"><span class="linenos">1106</span></a> <span class="k">def</span> <span class="nf">_extract_string</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delimiter</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span> +</span><span id="Tokenizer-1107"><a href="#Tokenizer-1107"><span class="linenos">1107</span></a> <span class="n">text</span> <span class="o">=</span> <span class="s2">""</span> +</span><span id="Tokenizer-1108"><a href="#Tokenizer-1108"><span class="linenos">1108</span></a> <span class="n">delim_size</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">delimiter</span><span class="p">)</span> +</span><span id="Tokenizer-1109"><a href="#Tokenizer-1109"><span class="linenos">1109</span></a> +</span><span id="Tokenizer-1110"><a href="#Tokenizer-1110"><span class="linenos">1110</span></a> <span class="k">while</span> <span class="kc">True</span><span class="p">:</span> +</span><span id="Tokenizer-1111"><a href="#Tokenizer-1111"><span class="linenos">1111</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> <span class="ow">and</span> <span class="p">(</span> +</span><span id="Tokenizer-1112"><a href="#Tokenizer-1112"><span class="linenos">1112</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span> <span class="ow">or</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">_STRING_ESCAPES</span> +</span><span id="Tokenizer-1113"><a href="#Tokenizer-1113"><span class="linenos">1113</span></a> <span class="p">):</span> +</span><span id="Tokenizer-1114"><a href="#Tokenizer-1114"><span class="linenos">1114</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> +</span><span id="Tokenizer-1115"><a href="#Tokenizer-1115"><span class="linenos">1115</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1116"><a href="#Tokenizer-1116"><span class="linenos">1116</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1117"><a href="#Tokenizer-1117"><span class="linenos">1117</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">_peek</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1118"><a href="#Tokenizer-1118"><span class="linenos">1118</span></a> +</span><span id="Tokenizer-1119"><a href="#Tokenizer-1119"><span class="linenos">1119</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_current</span> <span class="o">+</span> <span class="mi">1</span> <span class="o"><</span> <span class="bp">self</span><span class="o">.</span><span class="n">size</span><span class="p">:</span> +</span><span id="Tokenizer-1120"><a href="#Tokenizer-1120"><span class="linenos">1120</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span> +</span><span id="Tokenizer-1121"><a href="#Tokenizer-1121"><span class="linenos">1121</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1122"><a href="#Tokenizer-1122"><span class="linenos">1122</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_current</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Tokenizer-1123"><a href="#Tokenizer-1123"><span class="linenos">1123</span></a> <span class="k">else</span><span class="p">:</span> +</span><span id="Tokenizer-1124"><a href="#Tokenizer-1124"><span class="linenos">1124</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_chars</span><span class="p">(</span><span class="n">delim_size</span><span class="p">)</span> <span class="o">==</span> <span class="n">delimiter</span><span class="p">:</span> +</span><span id="Tokenizer-1125"><a href="#Tokenizer-1125"><span class="linenos">1125</span></a> <span class="k">if</span> <span class="n">delim_size</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> +</span><span id="Tokenizer-1126"><a href="#Tokenizer-1126"><span class="linenos">1126</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">(</span><span class="n">delim_size</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> +</span><span id="Tokenizer-1127"><a href="#Tokenizer-1127"><span class="linenos">1127</span></a> <span class="k">break</span> +</span><span id="Tokenizer-1128"><a href="#Tokenizer-1128"><span class="linenos">1128</span></a> +</span><span id="Tokenizer-1129"><a href="#Tokenizer-1129"><span class="linenos">1129</span></a> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_end</span><span class="p">:</span> +</span><span id="Tokenizer-1130"><a href="#Tokenizer-1130"><span class="linenos">1130</span></a> <span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Missing </span><span class="si">{</span><span class="n">delimiter</span><span class="si">}</span><span class="s2"> from </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_line</span><span class="si">}</span><span class="s2">:</span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_start</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span> +</span><span id="Tokenizer-1131"><a href="#Tokenizer-1131"><span class="linenos">1131</span></a> <span class="n">text</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_char</span> <span class="c1"># type: ignore</span> +</span><span id="Tokenizer-1132"><a href="#Tokenizer-1132"><span class="linenos">1132</span></a> <span class="bp">self</span><span class="o">.</span><span class="n">_advance</span><span class="p">()</span> +</span><span id="Tokenizer-1133"><a href="#Tokenizer-1133"><span class="linenos">1133</span></a> +</span><span id="Tokenizer-1134"><a href="#Tokenizer-1134"><span class="linenos">1134</span></a> <span class="k">return</span> <span class="n">text</span> </span></pre></div> diff --git a/docs/sqlglot/transforms.html b/docs/sqlglot/transforms.html index 04b2bbf..e29c207 100644 --- a/docs/sqlglot/transforms.html +++ b/docs/sqlglot/transforms.html @@ -37,6 +37,9 @@ <a class="function" href="#eliminate_distinct_on">eliminate_distinct_on</a> </li> <li> + <a class="function" href="#eliminate_qualify">eliminate_qualify</a> + </li> + <li> <a class="function" href="#remove_precision_parameterized_types">remove_precision_parameterized_types</a> </li> <li> @@ -72,146 +75,180 @@ </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.helper</span> <span class="kn">import</span> <span class="n">find_new_name</span> -</span><span id="L-6"><a href="#L-6"><span class="linenos"> 6</span></a> -</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</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-8"><a href="#L-8"><span class="linenos"> 8</span></a> <span class="kn">from</span> <span class="nn">sqlglot.generator</span> <span class="kn">import</span> <span class="n">Generator</span> -</span><span id="L-9"><a href="#L-9"><span class="linenos"> 9</span></a> -</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a><span class="kn">from</span> <span class="nn">sqlglot</span> <span class="kn">import</span> <span class="n">expressions</span> <span class="k">as</span> <span class="n">exp</span> +</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">expressions</span> <span class="k">as</span> <span class="n">exp</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.helper</span> <span class="kn">import</span> <span class="n">find_new_name</span> +</span><span id="L-7"><a href="#L-7"><span class="linenos"> 7</span></a> +</span><span id="L-8"><a href="#L-8"><span class="linenos"> 8</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-9"><a href="#L-9"><span class="linenos"> 9</span></a> <span class="kn">from</span> <span class="nn">sqlglot.generator</span> <span class="kn">import</span> <span class="n">Generator</span> +</span><span id="L-10"><a href="#L-10"><span class="linenos"> 10</span></a> </span><span id="L-11"><a href="#L-11"><span class="linenos"> 11</span></a> -</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a> -</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="k">def</span> <span class="nf">unalias_group</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a><span class="sd"> Replace references to select aliases in GROUP BY clauses.</span> -</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a> -</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="sd"> Example:</span> -</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()</span> -</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a><span class="sd"> 'SELECT a AS b FROM x GROUP BY 1'</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="sd"> Args:</span> -</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a><span class="sd"> expression: the expression that will be transformed.</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 class="sd"> Returns:</span> -</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="sd"> The transformed expression.</span> -</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a><span class="sd"> """</span> -</span><span id="L-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Group</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</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-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">aliased_selects</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="n">e</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> <span class="n">i</span> -</span><span id="L-31"><a href="#L-31"><span class="linenos"> 31</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> -</span><span id="L-32"><a href="#L-32"><span class="linenos"> 32</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">)</span> -</span><span id="L-33"><a href="#L-33"><span class="linenos"> 33</span></a> <span class="p">}</span> -</span><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> -</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="k">for</span> <span class="n">group_by</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">group_by</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> -</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">group_by</span><span class="o">.</span><span class="n">table</span> -</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="ow">and</span> <span class="n">group_by</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">aliased_selects</span> -</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="p">):</span> -</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> <span class="n">group_by</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">aliased_selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">group_by</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span> -</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> -</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-12"><a href="#L-12"><span class="linenos"> 12</span></a><span class="k">def</span> <span class="nf">unalias_group</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-13"><a href="#L-13"><span class="linenos"> 13</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-14"><a href="#L-14"><span class="linenos"> 14</span></a><span class="sd"> Replace references to select aliases in GROUP BY clauses.</span> +</span><span id="L-15"><a href="#L-15"><span class="linenos"> 15</span></a> +</span><span id="L-16"><a href="#L-16"><span class="linenos"> 16</span></a><span class="sd"> Example:</span> +</span><span id="L-17"><a href="#L-17"><span class="linenos"> 17</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="L-18"><a href="#L-18"><span class="linenos"> 18</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()</span> +</span><span id="L-19"><a href="#L-19"><span class="linenos"> 19</span></a><span class="sd"> 'SELECT a AS b FROM x GROUP BY 1'</span> +</span><span id="L-20"><a href="#L-20"><span class="linenos"> 20</span></a> +</span><span id="L-21"><a href="#L-21"><span class="linenos"> 21</span></a><span class="sd"> Args:</span> +</span><span id="L-22"><a href="#L-22"><span class="linenos"> 22</span></a><span class="sd"> expression: the expression that will be transformed.</span> +</span><span id="L-23"><a href="#L-23"><span class="linenos"> 23</span></a> +</span><span id="L-24"><a href="#L-24"><span class="linenos"> 24</span></a><span class="sd"> Returns:</span> +</span><span id="L-25"><a href="#L-25"><span class="linenos"> 25</span></a><span class="sd"> The transformed expression.</span> +</span><span id="L-26"><a href="#L-26"><span class="linenos"> 26</span></a><span class="sd"> """</span> +</span><span id="L-27"><a href="#L-27"><span class="linenos"> 27</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Group</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</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-28"><a href="#L-28"><span class="linenos"> 28</span></a> <span class="n">aliased_selects</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="L-29"><a href="#L-29"><span class="linenos"> 29</span></a> <span class="n">e</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> <span class="n">i</span> +</span><span id="L-30"><a href="#L-30"><span class="linenos"> 30</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">start</span><span class="o">=</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="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</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><span id="L-34"><a href="#L-34"><span class="linenos"> 34</span></a> <span class="k">for</span> <span class="n">group_by</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="L-35"><a href="#L-35"><span class="linenos"> 35</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-36"><a href="#L-36"><span class="linenos"> 36</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">group_by</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> +</span><span id="L-37"><a href="#L-37"><span class="linenos"> 37</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">group_by</span><span class="o">.</span><span class="n">table</span> +</span><span id="L-38"><a href="#L-38"><span class="linenos"> 38</span></a> <span class="ow">and</span> <span class="n">group_by</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">aliased_selects</span> +</span><span id="L-39"><a href="#L-39"><span class="linenos"> 39</span></a> <span class="p">):</span> +</span><span id="L-40"><a href="#L-40"><span class="linenos"> 40</span></a> <span class="n">group_by</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">aliased_selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">group_by</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span> +</span><span id="L-41"><a href="#L-41"><span class="linenos"> 41</span></a> +</span><span id="L-42"><a href="#L-42"><span class="linenos"> 42</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-43"><a href="#L-43"><span class="linenos"> 43</span></a> </span><span id="L-44"><a href="#L-44"><span class="linenos"> 44</span></a> -</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a> -</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="k">def</span> <span class="nf">eliminate_distinct_on</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a><span class="sd"> Convert SELECT DISTINCT ON statements to a subquery with a window function.</span> -</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a> -</span><span id="L-50"><a href="#L-50"><span class="linenos"> 50</span></a><span class="sd"> This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.</span> -</span><span id="L-51"><a href="#L-51"><span class="linenos"> 51</span></a> -</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> Args:</span> -</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a><span class="sd"> expression: the expression that will be transformed.</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="sd"> Returns:</span> -</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> The transformed expression.</span> -</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a><span class="sd"> """</span> -</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="nb">isinstance</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">Select</span><span class="p">)</span> -</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="ow">and</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">"distinct"</span><span class="p">)</span> -</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"on"</span><span class="p">)</span> -</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Tuple</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="n">distinct_cols</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> -</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">outer_selects</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span> -</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">row_number</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">,</span> <span class="s2">"_row_number"</span><span class="p">)</span> -</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">(</span> -</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">RowNumber</span><span class="p">(),</span> -</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">distinct_cols</span><span class="p">,</span> -</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="p">)</span> -</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="k">if</span> <span class="n">order</span><span class="p">:</span> -</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">window</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"order"</span><span class="p">,</span> <span class="n">order</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span> -</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="n">order</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> -</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">row_number</span><span class="p">)</span> -</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">outer_selects</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="sa">f</span><span class="s1">'"</span><span class="si">{</span><span class="n">row_number</span><span class="si">}</span><span class="s1">" = 1'</span><span class="p">)</span> -</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a> <span class="k">return</span> <span class="n">expression</span> -</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a> -</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a> -</span><span id="L-82"><a href="#L-82"><span class="linenos"> 82</span></a><span class="k">def</span> <span class="nf">remove_precision_parameterized_types</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="L-83"><a href="#L-83"><span class="linenos"> 83</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions.</span> -</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a><span class="sd"> This transforms removes the precision from parameterized types in expressions.</span> -</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> """</span> -</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a> <span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> -</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="p">[</span> -</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">node_expression</span> -</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">for</span> <span class="n">node_expression</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node_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><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="p">],</span> -</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="p">}</span> -</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="p">)</span> -</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="p">)</span> +</span><span id="L-45"><a href="#L-45"><span class="linenos"> 45</span></a><span class="k">def</span> <span class="nf">eliminate_distinct_on</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-46"><a href="#L-46"><span class="linenos"> 46</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-47"><a href="#L-47"><span class="linenos"> 47</span></a><span class="sd"> Convert SELECT DISTINCT ON statements to a subquery with a window function.</span> +</span><span id="L-48"><a href="#L-48"><span class="linenos"> 48</span></a> +</span><span id="L-49"><a href="#L-49"><span class="linenos"> 49</span></a><span class="sd"> This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.</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="sd"> Args:</span> +</span><span id="L-52"><a href="#L-52"><span class="linenos"> 52</span></a><span class="sd"> expression: the expression that will be transformed.</span> +</span><span id="L-53"><a href="#L-53"><span class="linenos"> 53</span></a> +</span><span id="L-54"><a href="#L-54"><span class="linenos"> 54</span></a><span class="sd"> Returns:</span> +</span><span id="L-55"><a href="#L-55"><span class="linenos"> 55</span></a><span class="sd"> The transformed expression.</span> +</span><span id="L-56"><a href="#L-56"><span class="linenos"> 56</span></a><span class="sd"> """</span> +</span><span id="L-57"><a href="#L-57"><span class="linenos"> 57</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="L-58"><a href="#L-58"><span class="linenos"> 58</span></a> <span class="nb">isinstance</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">Select</span><span class="p">)</span> +</span><span id="L-59"><a href="#L-59"><span class="linenos"> 59</span></a> <span class="ow">and</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">"distinct"</span><span class="p">)</span> +</span><span id="L-60"><a href="#L-60"><span class="linenos"> 60</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"on"</span><span class="p">)</span> +</span><span id="L-61"><a href="#L-61"><span class="linenos"> 61</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Tuple</span><span class="p">)</span> +</span><span id="L-62"><a href="#L-62"><span class="linenos"> 62</span></a> <span class="p">):</span> +</span><span id="L-63"><a href="#L-63"><span class="linenos"> 63</span></a> <span class="n">distinct_cols</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-64"><a href="#L-64"><span class="linenos"> 64</span></a> <span class="n">outer_selects</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span> +</span><span id="L-65"><a href="#L-65"><span class="linenos"> 65</span></a> <span class="n">row_number</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">,</span> <span class="s2">"_row_number"</span><span class="p">)</span> +</span><span id="L-66"><a href="#L-66"><span class="linenos"> 66</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">(</span> +</span><span id="L-67"><a href="#L-67"><span class="linenos"> 67</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">RowNumber</span><span class="p">(),</span> +</span><span id="L-68"><a href="#L-68"><span class="linenos"> 68</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">distinct_cols</span><span class="p">,</span> +</span><span id="L-69"><a href="#L-69"><span class="linenos"> 69</span></a> <span class="p">)</span> +</span><span id="L-70"><a href="#L-70"><span class="linenos"> 70</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="L-71"><a href="#L-71"><span class="linenos"> 71</span></a> <span class="k">if</span> <span class="n">order</span><span class="p">:</span> +</span><span id="L-72"><a href="#L-72"><span class="linenos"> 72</span></a> <span class="n">window</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"order"</span><span class="p">,</span> <span class="n">order</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span> +</span><span id="L-73"><a href="#L-73"><span class="linenos"> 73</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">row_number</span><span class="p">)</span> +</span><span id="L-74"><a href="#L-74"><span class="linenos"> 74</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-75"><a href="#L-75"><span class="linenos"> 75</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">outer_selects</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="sa">f</span><span class="s1">'"</span><span class="si">{</span><span class="n">row_number</span><span class="si">}</span><span class="s1">" = 1'</span><span class="p">)</span> +</span><span id="L-76"><a href="#L-76"><span class="linenos"> 76</span></a> <span class="k">return</span> <span class="n">expression</span> +</span><span id="L-77"><a href="#L-77"><span class="linenos"> 77</span></a> +</span><span id="L-78"><a href="#L-78"><span class="linenos"> 78</span></a> +</span><span id="L-79"><a href="#L-79"><span class="linenos"> 79</span></a><span class="k">def</span> <span class="nf">eliminate_qualify</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-80"><a href="#L-80"><span class="linenos"> 80</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-81"><a href="#L-81"><span class="linenos"> 81</span></a><span class="sd"> Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.</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="sd"> The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:</span> +</span><span id="L-84"><a href="#L-84"><span class="linenos"> 84</span></a><span class="sd"> https://docs.snowflake.com/en/sql-reference/constructs/qualify</span> +</span><span id="L-85"><a href="#L-85"><span class="linenos"> 85</span></a> +</span><span id="L-86"><a href="#L-86"><span class="linenos"> 86</span></a><span class="sd"> Some dialects don't support window functions in the WHERE clause, so we need to include them as</span> +</span><span id="L-87"><a href="#L-87"><span class="linenos"> 87</span></a><span class="sd"> projections in the subquery, in order to refer to them in the outer filter using aliases. Also,</span> +</span><span id="L-88"><a href="#L-88"><span class="linenos"> 88</span></a><span class="sd"> if a column is referenced in the QUALIFY clause but is not selected, we need to include it too,</span> +</span><span id="L-89"><a href="#L-89"><span class="linenos"> 89</span></a><span class="sd"> otherwise we won't be able to refer to it in the outer query's WHERE clause.</span> +</span><span id="L-90"><a href="#L-90"><span class="linenos"> 90</span></a><span class="sd"> """</span> +</span><span id="L-91"><a href="#L-91"><span class="linenos"> 91</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> <span class="ow">and</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">"qualify"</span><span class="p">):</span> +</span><span id="L-92"><a href="#L-92"><span class="linenos"> 92</span></a> <span class="n">taken</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">)</span> +</span><span id="L-93"><a href="#L-93"><span class="linenos"> 93</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span><span class="p">:</span> +</span><span id="L-94"><a href="#L-94"><span class="linenos"> 94</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">:</span> +</span><span id="L-95"><a href="#L-95"><span class="linenos"> 95</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">taken</span><span class="p">,</span> <span class="s2">"_c"</span><span class="p">)</span> +</span><span id="L-96"><a href="#L-96"><span class="linenos"> 96</span></a> <span class="n">select</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">alias</span><span class="p">))</span> +</span><span id="L-97"><a href="#L-97"><span class="linenos"> 97</span></a> <span class="n">taken</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> +</span><span id="L-98"><a href="#L-98"><span class="linenos"> 98</span></a> +</span><span id="L-99"><a href="#L-99"><span class="linenos"> 99</span></a> <span class="n">outer_selects</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span><span class="p">])</span> +</span><span id="L-100"><a href="#L-100"><span class="linenos">100</span></a> <span class="n">qualify_filters</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"qualify"</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">this</span> </span><span id="L-101"><a href="#L-101"><span class="linenos">101</span></a> -</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> -</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a><span class="k">def</span> <span class="nf">preprocess</span><span class="p">(</span> -</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">transforms</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">exp</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">Expression</span><span class="p">]],</span> -</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="n">to_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">],</span> -</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a><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">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> -</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a><span class="sd"> Creates a new transform by chaining a sequence of transformations and converts the resulting</span> -</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a><span class="sd"> expression to SQL, using an appropriate `Generator.TRANSFORMS` function.</span> -</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> -</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a><span class="sd"> Args:</span> -</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a><span class="sd"> transforms: sequence of transform functions. These will be called in order.</span> -</span><span id="L-113"><a href="#L-113"><span class="linenos">113</span></a><span class="sd"> to_sql: final transform that converts the resulting expression to a SQL string.</span> +</span><span id="L-102"><a href="#L-102"><span class="linenos">102</span></a> <span class="k">for</span> <span class="n">expr</span> <span class="ow">in</span> <span class="n">qualify_filters</span><span class="o">.</span><span class="n">find_all</span><span class="p">((</span><span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)):</span> +</span><span id="L-103"><a href="#L-103"><span class="linenos">103</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">):</span> +</span><span id="L-104"><a href="#L-104"><span class="linenos">104</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">,</span> <span class="s2">"_w"</span><span class="p">)</span> +</span><span id="L-105"><a href="#L-105"><span class="linenos">105</span></a> <span class="n">expression</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">alias_</span><span class="p">(</span><span class="n">expr</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">alias</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-106"><a href="#L-106"><span class="linenos">106</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> +</span><span id="L-107"><a href="#L-107"><span class="linenos">107</span></a> <span class="k">elif</span> <span class="n">expr</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">:</span> +</span><span id="L-108"><a href="#L-108"><span class="linenos">108</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">expr</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="L-109"><a href="#L-109"><span class="linenos">109</span></a> +</span><span id="L-110"><a href="#L-110"><span class="linenos">110</span></a> <span class="k">return</span> <span class="n">outer_selects</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_t"</span><span class="p">))</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">qualify_filters</span><span class="p">)</span> +</span><span id="L-111"><a href="#L-111"><span class="linenos">111</span></a> +</span><span id="L-112"><a href="#L-112"><span class="linenos">112</span></a> <span class="k">return</span> <span class="n">expression</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><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a><span class="sd"> Returns:</span> -</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a><span class="sd"> Function that can be used as a generator transform.</span> -</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a><span class="sd"> """</span> -</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a> -</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a> <span class="k">def</span> <span class="nf">_to_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><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">transforms</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">copy</span><span class="p">())</span> -</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="k">return</span> <span class="n">to_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><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> -</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="k">return</span> <span class="n">_to_sql</span> -</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> -</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> -</span><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a><span class="k">def</span> <span class="nf">delegate</span><span class="p">(</span><span class="n">attr</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> -</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a><span class="sd"> Create a new method that delegates to `attr`. This is useful for creating `Generator.TRANSFORMS`</span> -</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a><span class="sd"> functions that delegate to existing generator methods.</span> -</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a><span class="sd"> """</span> -</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> -</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> <span class="k">def</span> <span class="nf">_transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a> -</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="k">return</span> <span class="n">_transform</span> -</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> -</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a> -</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="n">UNALIAS_GROUP</span> <span class="o">=</span> <span class="p">{</span><span class="n">exp</span><span class="o">.</span><span class="n">Group</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">([</span><span class="n">unalias_group</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"group_sql"</span><span class="p">))}</span> -</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="n">ELIMINATE_DISTINCT_ON</span> <span class="o">=</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">preprocess</span><span class="p">([</span><span class="n">eliminate_distinct_on</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">))}</span> -</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> <span class="n">exp</span><span class="o">.</span><span class="n">Cast</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">([</span><span class="n">remove_precision_parameterized_types</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"cast_sql"</span><span class="p">))</span> -</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="p">}</span> +</span><span id="L-115"><a href="#L-115"><span class="linenos">115</span></a><span class="k">def</span> <span class="nf">remove_precision_parameterized_types</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="L-116"><a href="#L-116"><span class="linenos">116</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-117"><a href="#L-117"><span class="linenos">117</span></a><span class="sd"> Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions.</span> +</span><span id="L-118"><a href="#L-118"><span class="linenos">118</span></a><span class="sd"> This transforms removes the precision from parameterized types in expressions.</span> +</span><span id="L-119"><a href="#L-119"><span class="linenos">119</span></a><span class="sd"> """</span> +</span><span id="L-120"><a href="#L-120"><span class="linenos">120</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="L-121"><a href="#L-121"><span class="linenos">121</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="L-122"><a href="#L-122"><span class="linenos">122</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="L-123"><a href="#L-123"><span class="linenos">123</span></a> <span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> +</span><span id="L-124"><a href="#L-124"><span class="linenos">124</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="p">[</span> +</span><span id="L-125"><a href="#L-125"><span class="linenos">125</span></a> <span class="n">node_expression</span> +</span><span id="L-126"><a href="#L-126"><span class="linenos">126</span></a> <span class="k">for</span> <span class="n">node_expression</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="L-127"><a href="#L-127"><span class="linenos">127</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node_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><span id="L-128"><a href="#L-128"><span class="linenos">128</span></a> <span class="p">],</span> +</span><span id="L-129"><a href="#L-129"><span class="linenos">129</span></a> <span class="p">}</span> +</span><span id="L-130"><a href="#L-130"><span class="linenos">130</span></a> <span class="p">)</span> +</span><span id="L-131"><a href="#L-131"><span class="linenos">131</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="L-132"><a href="#L-132"><span class="linenos">132</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="L-133"><a href="#L-133"><span class="linenos">133</span></a> <span class="p">)</span> +</span><span id="L-134"><a href="#L-134"><span class="linenos">134</span></a> +</span><span id="L-135"><a href="#L-135"><span class="linenos">135</span></a> +</span><span id="L-136"><a href="#L-136"><span class="linenos">136</span></a><span class="k">def</span> <span class="nf">preprocess</span><span class="p">(</span> +</span><span id="L-137"><a href="#L-137"><span class="linenos">137</span></a> <span class="n">transforms</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">exp</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">Expression</span><span class="p">]],</span> +</span><span id="L-138"><a href="#L-138"><span class="linenos">138</span></a> <span class="n">to_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">],</span> +</span><span id="L-139"><a href="#L-139"><span class="linenos">139</span></a><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">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> +</span><span id="L-140"><a href="#L-140"><span class="linenos">140</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-141"><a href="#L-141"><span class="linenos">141</span></a><span class="sd"> Creates a new transform by chaining a sequence of transformations and converts the resulting</span> +</span><span id="L-142"><a href="#L-142"><span class="linenos">142</span></a><span class="sd"> expression to SQL, using an appropriate `Generator.TRANSFORMS` function.</span> +</span><span id="L-143"><a href="#L-143"><span class="linenos">143</span></a> +</span><span id="L-144"><a href="#L-144"><span class="linenos">144</span></a><span class="sd"> Args:</span> +</span><span id="L-145"><a href="#L-145"><span class="linenos">145</span></a><span class="sd"> transforms: sequence of transform functions. These will be called in order.</span> +</span><span id="L-146"><a href="#L-146"><span class="linenos">146</span></a><span class="sd"> to_sql: final transform that converts the resulting expression to a SQL string.</span> +</span><span id="L-147"><a href="#L-147"><span class="linenos">147</span></a> +</span><span id="L-148"><a href="#L-148"><span class="linenos">148</span></a><span class="sd"> Returns:</span> +</span><span id="L-149"><a href="#L-149"><span class="linenos">149</span></a><span class="sd"> Function that can be used as a generator transform.</span> +</span><span id="L-150"><a href="#L-150"><span class="linenos">150</span></a><span class="sd"> """</span> +</span><span id="L-151"><a href="#L-151"><span class="linenos">151</span></a> +</span><span id="L-152"><a href="#L-152"><span class="linenos">152</span></a> <span class="k">def</span> <span class="nf">_to_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><span id="L-153"><a href="#L-153"><span class="linenos">153</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">transforms</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">copy</span><span class="p">())</span> +</span><span id="L-154"><a href="#L-154"><span class="linenos">154</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="L-155"><a href="#L-155"><span class="linenos">155</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="L-156"><a href="#L-156"><span class="linenos">156</span></a> <span class="k">return</span> <span class="n">to_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><span id="L-157"><a href="#L-157"><span class="linenos">157</span></a> +</span><span id="L-158"><a href="#L-158"><span class="linenos">158</span></a> <span class="k">return</span> <span class="n">_to_sql</span> +</span><span id="L-159"><a href="#L-159"><span class="linenos">159</span></a> +</span><span id="L-160"><a href="#L-160"><span class="linenos">160</span></a> +</span><span id="L-161"><a href="#L-161"><span class="linenos">161</span></a><span class="k">def</span> <span class="nf">delegate</span><span class="p">(</span><span class="n">attr</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> +</span><span id="L-162"><a href="#L-162"><span class="linenos">162</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="L-163"><a href="#L-163"><span class="linenos">163</span></a><span class="sd"> Create a new method that delegates to `attr`. This is useful for creating `Generator.TRANSFORMS`</span> +</span><span id="L-164"><a href="#L-164"><span class="linenos">164</span></a><span class="sd"> functions that delegate to existing generator methods.</span> +</span><span id="L-165"><a href="#L-165"><span class="linenos">165</span></a><span class="sd"> """</span> +</span><span id="L-166"><a href="#L-166"><span class="linenos">166</span></a> +</span><span id="L-167"><a href="#L-167"><span class="linenos">167</span></a> <span class="k">def</span> <span class="nf">_transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="L-168"><a href="#L-168"><span class="linenos">168</span></a> <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="L-169"><a href="#L-169"><span class="linenos">169</span></a> +</span><span id="L-170"><a href="#L-170"><span class="linenos">170</span></a> <span class="k">return</span> <span class="n">_transform</span> +</span><span id="L-171"><a href="#L-171"><span class="linenos">171</span></a> +</span><span id="L-172"><a href="#L-172"><span class="linenos">172</span></a> +</span><span id="L-173"><a href="#L-173"><span class="linenos">173</span></a><span class="n">UNALIAS_GROUP</span> <span class="o">=</span> <span class="p">{</span><span class="n">exp</span><span class="o">.</span><span class="n">Group</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">([</span><span class="n">unalias_group</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"group_sql"</span><span class="p">))}</span> +</span><span id="L-174"><a href="#L-174"><span class="linenos">174</span></a><span class="n">ELIMINATE_DISTINCT_ON</span> <span class="o">=</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">preprocess</span><span class="p">([</span><span class="n">eliminate_distinct_on</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">))}</span> +</span><span id="L-175"><a href="#L-175"><span class="linenos">175</span></a><span class="n">ELIMINATE_QUALIFY</span> <span class="o">=</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">preprocess</span><span class="p">([</span><span class="n">eliminate_qualify</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"select_sql"</span><span class="p">))}</span> +</span><span id="L-176"><a href="#L-176"><span class="linenos">176</span></a><span class="n">REMOVE_PRECISION_PARAMETERIZED_TYPES</span> <span class="o">=</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">Cast</span><span class="p">:</span> <span class="n">preprocess</span><span class="p">([</span><span class="n">remove_precision_parameterized_types</span><span class="p">],</span> <span class="n">delegate</span><span class="p">(</span><span class="s2">"cast_sql"</span><span class="p">))</span> +</span><span id="L-178"><a href="#L-178"><span class="linenos">178</span></a><span class="p">}</span> </span></pre></div> @@ -227,37 +264,37 @@ </div> <a class="headerlink" href="#unalias_group"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="unalias_group-14"><a href="#unalias_group-14"><span class="linenos">14</span></a><span class="k">def</span> <span class="nf">unalias_group</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="unalias_group-15"><a href="#unalias_group-15"><span class="linenos">15</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="unalias_group-16"><a href="#unalias_group-16"><span class="linenos">16</span></a><span class="sd"> Replace references to select aliases in GROUP BY clauses.</span> -</span><span id="unalias_group-17"><a href="#unalias_group-17"><span class="linenos">17</span></a> -</span><span id="unalias_group-18"><a href="#unalias_group-18"><span class="linenos">18</span></a><span class="sd"> Example:</span> -</span><span id="unalias_group-19"><a href="#unalias_group-19"><span class="linenos">19</span></a><span class="sd"> >>> import sqlglot</span> -</span><span id="unalias_group-20"><a href="#unalias_group-20"><span class="linenos">20</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()</span> -</span><span id="unalias_group-21"><a href="#unalias_group-21"><span class="linenos">21</span></a><span class="sd"> 'SELECT a AS b FROM x GROUP BY 1'</span> -</span><span id="unalias_group-22"><a href="#unalias_group-22"><span class="linenos">22</span></a> -</span><span id="unalias_group-23"><a href="#unalias_group-23"><span class="linenos">23</span></a><span class="sd"> Args:</span> -</span><span id="unalias_group-24"><a href="#unalias_group-24"><span class="linenos">24</span></a><span class="sd"> expression: the expression that will be transformed.</span> -</span><span id="unalias_group-25"><a href="#unalias_group-25"><span class="linenos">25</span></a> -</span><span id="unalias_group-26"><a href="#unalias_group-26"><span class="linenos">26</span></a><span class="sd"> Returns:</span> -</span><span id="unalias_group-27"><a href="#unalias_group-27"><span class="linenos">27</span></a><span class="sd"> The transformed expression.</span> -</span><span id="unalias_group-28"><a href="#unalias_group-28"><span class="linenos">28</span></a><span class="sd"> """</span> -</span><span id="unalias_group-29"><a href="#unalias_group-29"><span class="linenos">29</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Group</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</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="unalias_group-30"><a href="#unalias_group-30"><span class="linenos">30</span></a> <span class="n">aliased_selects</span> <span class="o">=</span> <span class="p">{</span> -</span><span id="unalias_group-31"><a href="#unalias_group-31"><span class="linenos">31</span></a> <span class="n">e</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> <span class="n">i</span> -</span><span id="unalias_group-32"><a href="#unalias_group-32"><span class="linenos">32</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> -</span><span id="unalias_group-33"><a href="#unalias_group-33"><span class="linenos">33</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">)</span> -</span><span id="unalias_group-34"><a href="#unalias_group-34"><span class="linenos">34</span></a> <span class="p">}</span> -</span><span id="unalias_group-35"><a href="#unalias_group-35"><span class="linenos">35</span></a> -</span><span id="unalias_group-36"><a href="#unalias_group-36"><span class="linenos">36</span></a> <span class="k">for</span> <span class="n">group_by</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> -</span><span id="unalias_group-37"><a href="#unalias_group-37"><span class="linenos">37</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="unalias_group-38"><a href="#unalias_group-38"><span class="linenos">38</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">group_by</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> -</span><span id="unalias_group-39"><a href="#unalias_group-39"><span class="linenos">39</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">group_by</span><span class="o">.</span><span class="n">table</span> -</span><span id="unalias_group-40"><a href="#unalias_group-40"><span class="linenos">40</span></a> <span class="ow">and</span> <span class="n">group_by</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">aliased_selects</span> -</span><span id="unalias_group-41"><a href="#unalias_group-41"><span class="linenos">41</span></a> <span class="p">):</span> -</span><span id="unalias_group-42"><a href="#unalias_group-42"><span class="linenos">42</span></a> <span class="n">group_by</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">aliased_selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">group_by</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span> -</span><span id="unalias_group-43"><a href="#unalias_group-43"><span class="linenos">43</span></a> -</span><span id="unalias_group-44"><a href="#unalias_group-44"><span class="linenos">44</span></a> <span class="k">return</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="unalias_group-13"><a href="#unalias_group-13"><span class="linenos">13</span></a><span class="k">def</span> <span class="nf">unalias_group</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="unalias_group-14"><a href="#unalias_group-14"><span class="linenos">14</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="unalias_group-15"><a href="#unalias_group-15"><span class="linenos">15</span></a><span class="sd"> Replace references to select aliases in GROUP BY clauses.</span> +</span><span id="unalias_group-16"><a href="#unalias_group-16"><span class="linenos">16</span></a> +</span><span id="unalias_group-17"><a href="#unalias_group-17"><span class="linenos">17</span></a><span class="sd"> Example:</span> +</span><span id="unalias_group-18"><a href="#unalias_group-18"><span class="linenos">18</span></a><span class="sd"> >>> import sqlglot</span> +</span><span id="unalias_group-19"><a href="#unalias_group-19"><span class="linenos">19</span></a><span class="sd"> >>> sqlglot.parse_one("SELECT a AS b FROM x GROUP BY b").transform(unalias_group).sql()</span> +</span><span id="unalias_group-20"><a href="#unalias_group-20"><span class="linenos">20</span></a><span class="sd"> 'SELECT a AS b FROM x GROUP BY 1'</span> +</span><span id="unalias_group-21"><a href="#unalias_group-21"><span class="linenos">21</span></a> +</span><span id="unalias_group-22"><a href="#unalias_group-22"><span class="linenos">22</span></a><span class="sd"> Args:</span> +</span><span id="unalias_group-23"><a href="#unalias_group-23"><span class="linenos">23</span></a><span class="sd"> expression: the expression that will be transformed.</span> +</span><span id="unalias_group-24"><a href="#unalias_group-24"><span class="linenos">24</span></a> +</span><span id="unalias_group-25"><a href="#unalias_group-25"><span class="linenos">25</span></a><span class="sd"> Returns:</span> +</span><span id="unalias_group-26"><a href="#unalias_group-26"><span class="linenos">26</span></a><span class="sd"> The transformed expression.</span> +</span><span id="unalias_group-27"><a href="#unalias_group-27"><span class="linenos">27</span></a><span class="sd"> """</span> +</span><span id="unalias_group-28"><a href="#unalias_group-28"><span class="linenos">28</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Group</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</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="unalias_group-29"><a href="#unalias_group-29"><span class="linenos">29</span></a> <span class="n">aliased_selects</span> <span class="o">=</span> <span class="p">{</span> +</span><span id="unalias_group-30"><a href="#unalias_group-30"><span class="linenos">30</span></a> <span class="n">e</span><span class="o">.</span><span class="n">alias</span><span class="p">:</span> <span class="n">i</span> +</span><span id="unalias_group-31"><a href="#unalias_group-31"><span class="linenos">31</span></a> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">e</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">parent</span><span class="o">.</span><span class="n">expressions</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> +</span><span id="unalias_group-32"><a href="#unalias_group-32"><span class="linenos">32</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">e</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Alias</span><span class="p">)</span> +</span><span id="unalias_group-33"><a href="#unalias_group-33"><span class="linenos">33</span></a> <span class="p">}</span> +</span><span id="unalias_group-34"><a href="#unalias_group-34"><span class="linenos">34</span></a> +</span><span id="unalias_group-35"><a href="#unalias_group-35"><span class="linenos">35</span></a> <span class="k">for</span> <span class="n">group_by</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">expressions</span><span class="p">:</span> +</span><span id="unalias_group-36"><a href="#unalias_group-36"><span class="linenos">36</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="unalias_group-37"><a href="#unalias_group-37"><span class="linenos">37</span></a> <span class="nb">isinstance</span><span class="p">(</span><span class="n">group_by</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)</span> +</span><span id="unalias_group-38"><a href="#unalias_group-38"><span class="linenos">38</span></a> <span class="ow">and</span> <span class="ow">not</span> <span class="n">group_by</span><span class="o">.</span><span class="n">table</span> +</span><span id="unalias_group-39"><a href="#unalias_group-39"><span class="linenos">39</span></a> <span class="ow">and</span> <span class="n">group_by</span><span class="o">.</span><span class="n">name</span> <span class="ow">in</span> <span class="n">aliased_selects</span> +</span><span id="unalias_group-40"><a href="#unalias_group-40"><span class="linenos">40</span></a> <span class="p">):</span> +</span><span id="unalias_group-41"><a href="#unalias_group-41"><span class="linenos">41</span></a> <span class="n">group_by</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">Literal</span><span class="o">.</span><span class="n">number</span><span class="p">(</span><span class="n">aliased_selects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">group_by</span><span class="o">.</span><span class="n">name</span><span class="p">)))</span> +</span><span id="unalias_group-42"><a href="#unalias_group-42"><span class="linenos">42</span></a> +</span><span id="unalias_group-43"><a href="#unalias_group-43"><span class="linenos">43</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -300,40 +337,38 @@ </div> <a class="headerlink" href="#eliminate_distinct_on"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="eliminate_distinct_on-47"><a href="#eliminate_distinct_on-47"><span class="linenos">47</span></a><span class="k">def</span> <span class="nf">eliminate_distinct_on</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="eliminate_distinct_on-48"><a href="#eliminate_distinct_on-48"><span class="linenos">48</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="eliminate_distinct_on-49"><a href="#eliminate_distinct_on-49"><span class="linenos">49</span></a><span class="sd"> Convert SELECT DISTINCT ON statements to a subquery with a window function.</span> -</span><span id="eliminate_distinct_on-50"><a href="#eliminate_distinct_on-50"><span class="linenos">50</span></a> -</span><span id="eliminate_distinct_on-51"><a href="#eliminate_distinct_on-51"><span class="linenos">51</span></a><span class="sd"> This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.</span> -</span><span id="eliminate_distinct_on-52"><a href="#eliminate_distinct_on-52"><span class="linenos">52</span></a> -</span><span id="eliminate_distinct_on-53"><a href="#eliminate_distinct_on-53"><span class="linenos">53</span></a><span class="sd"> Args:</span> -</span><span id="eliminate_distinct_on-54"><a href="#eliminate_distinct_on-54"><span class="linenos">54</span></a><span class="sd"> expression: the expression that will be transformed.</span> -</span><span id="eliminate_distinct_on-55"><a href="#eliminate_distinct_on-55"><span class="linenos">55</span></a> -</span><span id="eliminate_distinct_on-56"><a href="#eliminate_distinct_on-56"><span class="linenos">56</span></a><span class="sd"> Returns:</span> -</span><span id="eliminate_distinct_on-57"><a href="#eliminate_distinct_on-57"><span class="linenos">57</span></a><span class="sd"> The transformed expression.</span> -</span><span id="eliminate_distinct_on-58"><a href="#eliminate_distinct_on-58"><span class="linenos">58</span></a><span class="sd"> """</span> -</span><span id="eliminate_distinct_on-59"><a href="#eliminate_distinct_on-59"><span class="linenos">59</span></a> <span class="k">if</span> <span class="p">(</span> -</span><span id="eliminate_distinct_on-60"><a href="#eliminate_distinct_on-60"><span class="linenos">60</span></a> <span class="nb">isinstance</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">Select</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-61"><a href="#eliminate_distinct_on-61"><span class="linenos">61</span></a> <span class="ow">and</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">"distinct"</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-62"><a href="#eliminate_distinct_on-62"><span class="linenos">62</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"on"</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-63"><a href="#eliminate_distinct_on-63"><span class="linenos">63</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Tuple</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-64"><a href="#eliminate_distinct_on-64"><span class="linenos">64</span></a> <span class="p">):</span> -</span><span id="eliminate_distinct_on-65"><a href="#eliminate_distinct_on-65"><span class="linenos">65</span></a> <span class="n">distinct_cols</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="eliminate_distinct_on-66"><a href="#eliminate_distinct_on-66"><span class="linenos">66</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> -</span><span id="eliminate_distinct_on-67"><a href="#eliminate_distinct_on-67"><span class="linenos">67</span></a> <span class="n">outer_selects</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span> -</span><span id="eliminate_distinct_on-68"><a href="#eliminate_distinct_on-68"><span class="linenos">68</span></a> <span class="n">row_number</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">,</span> <span class="s2">"_row_number"</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-69"><a href="#eliminate_distinct_on-69"><span class="linenos">69</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">(</span> -</span><span id="eliminate_distinct_on-70"><a href="#eliminate_distinct_on-70"><span class="linenos">70</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">RowNumber</span><span class="p">(),</span> -</span><span id="eliminate_distinct_on-71"><a href="#eliminate_distinct_on-71"><span class="linenos">71</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">distinct_cols</span><span class="p">,</span> -</span><span id="eliminate_distinct_on-72"><a href="#eliminate_distinct_on-72"><span class="linenos">72</span></a> <span class="p">)</span> -</span><span id="eliminate_distinct_on-73"><a href="#eliminate_distinct_on-73"><span class="linenos">73</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-74"><a href="#eliminate_distinct_on-74"><span class="linenos">74</span></a> <span class="k">if</span> <span class="n">order</span><span class="p">:</span> -</span><span id="eliminate_distinct_on-75"><a href="#eliminate_distinct_on-75"><span class="linenos">75</span></a> <span class="n">window</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"order"</span><span class="p">,</span> <span class="n">order</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span> -</span><span id="eliminate_distinct_on-76"><a href="#eliminate_distinct_on-76"><span class="linenos">76</span></a> <span class="n">order</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span> -</span><span id="eliminate_distinct_on-77"><a href="#eliminate_distinct_on-77"><span class="linenos">77</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">row_number</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-78"><a href="#eliminate_distinct_on-78"><span class="linenos">78</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-79"><a href="#eliminate_distinct_on-79"><span class="linenos">79</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">outer_selects</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="sa">f</span><span class="s1">'"</span><span class="si">{</span><span class="n">row_number</span><span class="si">}</span><span class="s1">" = 1'</span><span class="p">)</span> -</span><span id="eliminate_distinct_on-80"><a href="#eliminate_distinct_on-80"><span class="linenos">80</span></a> <span class="k">return</span> <span class="n">expression</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="eliminate_distinct_on-46"><a href="#eliminate_distinct_on-46"><span class="linenos">46</span></a><span class="k">def</span> <span class="nf">eliminate_distinct_on</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="eliminate_distinct_on-47"><a href="#eliminate_distinct_on-47"><span class="linenos">47</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="eliminate_distinct_on-48"><a href="#eliminate_distinct_on-48"><span class="linenos">48</span></a><span class="sd"> Convert SELECT DISTINCT ON statements to a subquery with a window function.</span> +</span><span id="eliminate_distinct_on-49"><a href="#eliminate_distinct_on-49"><span class="linenos">49</span></a> +</span><span id="eliminate_distinct_on-50"><a href="#eliminate_distinct_on-50"><span class="linenos">50</span></a><span class="sd"> This is useful for dialects that don't support SELECT DISTINCT ON but support window functions.</span> +</span><span id="eliminate_distinct_on-51"><a href="#eliminate_distinct_on-51"><span class="linenos">51</span></a> +</span><span id="eliminate_distinct_on-52"><a href="#eliminate_distinct_on-52"><span class="linenos">52</span></a><span class="sd"> Args:</span> +</span><span id="eliminate_distinct_on-53"><a href="#eliminate_distinct_on-53"><span class="linenos">53</span></a><span class="sd"> expression: the expression that will be transformed.</span> +</span><span id="eliminate_distinct_on-54"><a href="#eliminate_distinct_on-54"><span class="linenos">54</span></a> +</span><span id="eliminate_distinct_on-55"><a href="#eliminate_distinct_on-55"><span class="linenos">55</span></a><span class="sd"> Returns:</span> +</span><span id="eliminate_distinct_on-56"><a href="#eliminate_distinct_on-56"><span class="linenos">56</span></a><span class="sd"> The transformed expression.</span> +</span><span id="eliminate_distinct_on-57"><a href="#eliminate_distinct_on-57"><span class="linenos">57</span></a><span class="sd"> """</span> +</span><span id="eliminate_distinct_on-58"><a href="#eliminate_distinct_on-58"><span class="linenos">58</span></a> <span class="k">if</span> <span class="p">(</span> +</span><span id="eliminate_distinct_on-59"><a href="#eliminate_distinct_on-59"><span class="linenos">59</span></a> <span class="nb">isinstance</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">Select</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-60"><a href="#eliminate_distinct_on-60"><span class="linenos">60</span></a> <span class="ow">and</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">"distinct"</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-61"><a href="#eliminate_distinct_on-61"><span class="linenos">61</span></a> <span class="ow">and</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s2">"on"</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-62"><a href="#eliminate_distinct_on-62"><span class="linenos">62</span></a> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">],</span> <span class="n">exp</span><span class="o">.</span><span class="n">Tuple</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-63"><a href="#eliminate_distinct_on-63"><span class="linenos">63</span></a> <span class="p">):</span> +</span><span id="eliminate_distinct_on-64"><a href="#eliminate_distinct_on-64"><span class="linenos">64</span></a> <span class="n">distinct_cols</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"distinct"</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"on"</span><span class="p">]</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="eliminate_distinct_on-65"><a href="#eliminate_distinct_on-65"><span class="linenos">65</span></a> <span class="n">outer_selects</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span> +</span><span id="eliminate_distinct_on-66"><a href="#eliminate_distinct_on-66"><span class="linenos">66</span></a> <span class="n">row_number</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">,</span> <span class="s2">"_row_number"</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-67"><a href="#eliminate_distinct_on-67"><span class="linenos">67</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">(</span> +</span><span id="eliminate_distinct_on-68"><a href="#eliminate_distinct_on-68"><span class="linenos">68</span></a> <span class="n">this</span><span class="o">=</span><span class="n">exp</span><span class="o">.</span><span class="n">RowNumber</span><span class="p">(),</span> +</span><span id="eliminate_distinct_on-69"><a href="#eliminate_distinct_on-69"><span class="linenos">69</span></a> <span class="n">partition_by</span><span class="o">=</span><span class="n">distinct_cols</span><span class="p">,</span> +</span><span id="eliminate_distinct_on-70"><a href="#eliminate_distinct_on-70"><span class="linenos">70</span></a> <span class="p">)</span> +</span><span id="eliminate_distinct_on-71"><a href="#eliminate_distinct_on-71"><span class="linenos">71</span></a> <span class="n">order</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">"order"</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-72"><a href="#eliminate_distinct_on-72"><span class="linenos">72</span></a> <span class="k">if</span> <span class="n">order</span><span class="p">:</span> +</span><span id="eliminate_distinct_on-73"><a href="#eliminate_distinct_on-73"><span class="linenos">73</span></a> <span class="n">window</span><span class="o">.</span><span class="n">set</span><span class="p">(</span><span class="s2">"order"</span><span class="p">,</span> <span class="n">order</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span> +</span><span id="eliminate_distinct_on-74"><a href="#eliminate_distinct_on-74"><span class="linenos">74</span></a> <span class="n">window</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">row_number</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-75"><a href="#eliminate_distinct_on-75"><span class="linenos">75</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">window</span><span class="p">,</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-76"><a href="#eliminate_distinct_on-76"><span class="linenos">76</span></a> <span class="k">return</span> <span class="n">exp</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="n">outer_selects</span><span class="p">)</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">())</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="sa">f</span><span class="s1">'"</span><span class="si">{</span><span class="n">row_number</span><span class="si">}</span><span class="s1">" = 1'</span><span class="p">)</span> +</span><span id="eliminate_distinct_on-77"><a href="#eliminate_distinct_on-77"><span class="linenos">77</span></a> <span class="k">return</span> <span class="n">expression</span> </span></pre></div> @@ -356,6 +391,67 @@ </section> + <section id="eliminate_qualify"> + <input id="eliminate_qualify-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> +<div class="attr function"> + + <span class="def">def</span> + <span class="name">eliminate_qualify</span><span class="signature pdoc-code multiline">(<span class="param"> <span class="n">expression</span><span class="p">:</span> <span class="n"><a href="expressions.html#Expression">sqlglot.expressions.Expression</a></span></span><span class="return-annotation">) -> <span class="n"><a href="expressions.html#Expression">sqlglot.expressions.Expression</a></span>:</span></span> + + <label class="view-source-button" for="eliminate_qualify-view-source"><span>View Source</span></label> + + </div> + <a class="headerlink" href="#eliminate_qualify"></a> + <div class="pdoc-code codehilite"><pre><span></span><span id="eliminate_qualify-80"><a href="#eliminate_qualify-80"><span class="linenos"> 80</span></a><span class="k">def</span> <span class="nf">eliminate_qualify</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="eliminate_qualify-81"><a href="#eliminate_qualify-81"><span class="linenos"> 81</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="eliminate_qualify-82"><a href="#eliminate_qualify-82"><span class="linenos"> 82</span></a><span class="sd"> Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.</span> +</span><span id="eliminate_qualify-83"><a href="#eliminate_qualify-83"><span class="linenos"> 83</span></a> +</span><span id="eliminate_qualify-84"><a href="#eliminate_qualify-84"><span class="linenos"> 84</span></a><span class="sd"> The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY:</span> +</span><span id="eliminate_qualify-85"><a href="#eliminate_qualify-85"><span class="linenos"> 85</span></a><span class="sd"> https://docs.snowflake.com/en/sql-reference/constructs/qualify</span> +</span><span id="eliminate_qualify-86"><a href="#eliminate_qualify-86"><span class="linenos"> 86</span></a> +</span><span id="eliminate_qualify-87"><a href="#eliminate_qualify-87"><span class="linenos"> 87</span></a><span class="sd"> Some dialects don't support window functions in the WHERE clause, so we need to include them as</span> +</span><span id="eliminate_qualify-88"><a href="#eliminate_qualify-88"><span class="linenos"> 88</span></a><span class="sd"> projections in the subquery, in order to refer to them in the outer filter using aliases. Also,</span> +</span><span id="eliminate_qualify-89"><a href="#eliminate_qualify-89"><span class="linenos"> 89</span></a><span class="sd"> if a column is referenced in the QUALIFY clause but is not selected, we need to include it too,</span> +</span><span id="eliminate_qualify-90"><a href="#eliminate_qualify-90"><span class="linenos"> 90</span></a><span class="sd"> otherwise we won't be able to refer to it in the outer query's WHERE clause.</span> +</span><span id="eliminate_qualify-91"><a href="#eliminate_qualify-91"><span class="linenos"> 91</span></a><span class="sd"> """</span> +</span><span id="eliminate_qualify-92"><a href="#eliminate_qualify-92"><span class="linenos"> 92</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expression</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Select</span><span class="p">)</span> <span class="ow">and</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">"qualify"</span><span class="p">):</span> +</span><span id="eliminate_qualify-93"><a href="#eliminate_qualify-93"><span class="linenos"> 93</span></a> <span class="n">taken</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">)</span> +</span><span id="eliminate_qualify-94"><a href="#eliminate_qualify-94"><span class="linenos"> 94</span></a> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span><span class="p">:</span> +</span><span id="eliminate_qualify-95"><a href="#eliminate_qualify-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="ow">not</span> <span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span><span class="p">:</span> +</span><span id="eliminate_qualify-96"><a href="#eliminate_qualify-96"><span class="linenos"> 96</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">taken</span><span class="p">,</span> <span class="s2">"_c"</span><span class="p">)</span> +</span><span id="eliminate_qualify-97"><a href="#eliminate_qualify-97"><span class="linenos"> 97</span></a> <span class="n">select</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">alias_</span><span class="p">(</span><span class="n">select</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">alias</span><span class="p">))</span> +</span><span id="eliminate_qualify-98"><a href="#eliminate_qualify-98"><span class="linenos"> 98</span></a> <span class="n">taken</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">alias</span><span class="p">)</span> +</span><span id="eliminate_qualify-99"><a href="#eliminate_qualify-99"><span class="linenos"> 99</span></a> +</span><span id="eliminate_qualify-100"><a href="#eliminate_qualify-100"><span class="linenos">100</span></a> <span class="n">outer_selects</span> <span class="o">=</span> <span class="n">exp</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="o">*</span><span class="p">[</span><span class="n">select</span><span class="o">.</span><span class="n">alias_or_name</span> <span class="k">for</span> <span class="n">select</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">selects</span><span class="p">])</span> +</span><span id="eliminate_qualify-101"><a href="#eliminate_qualify-101"><span class="linenos">101</span></a> <span class="n">qualify_filters</span> <span class="o">=</span> <span class="n">expression</span><span class="o">.</span><span class="n">args</span><span class="p">[</span><span class="s2">"qualify"</span><span class="p">]</span><span class="o">.</span><span class="n">pop</span><span class="p">()</span><span class="o">.</span><span class="n">this</span> +</span><span id="eliminate_qualify-102"><a href="#eliminate_qualify-102"><span class="linenos">102</span></a> +</span><span id="eliminate_qualify-103"><a href="#eliminate_qualify-103"><span class="linenos">103</span></a> <span class="k">for</span> <span class="n">expr</span> <span class="ow">in</span> <span class="n">qualify_filters</span><span class="o">.</span><span class="n">find_all</span><span class="p">((</span><span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Column</span><span class="p">)):</span> +</span><span id="eliminate_qualify-104"><a href="#eliminate_qualify-104"><span class="linenos">104</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">expr</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Window</span><span class="p">):</span> +</span><span id="eliminate_qualify-105"><a href="#eliminate_qualify-105"><span class="linenos">105</span></a> <span class="n">alias</span> <span class="o">=</span> <span class="n">find_new_name</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">,</span> <span class="s2">"_w"</span><span class="p">)</span> +</span><span id="eliminate_qualify-106"><a href="#eliminate_qualify-106"><span class="linenos">106</span></a> <span class="n">expression</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">alias_</span><span class="p">(</span><span class="n">expr</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">alias</span><span class="p">),</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="eliminate_qualify-107"><a href="#eliminate_qualify-107"><span class="linenos">107</span></a> <span class="n">expr</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">exp</span><span class="o">.</span><span class="n">column</span><span class="p">(</span><span class="n">alias</span><span class="p">))</span> +</span><span id="eliminate_qualify-108"><a href="#eliminate_qualify-108"><span class="linenos">108</span></a> <span class="k">elif</span> <span class="n">expr</span><span class="o">.</span><span class="n">name</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">expression</span><span class="o">.</span><span class="n">named_selects</span><span class="p">:</span> +</span><span id="eliminate_qualify-109"><a href="#eliminate_qualify-109"><span class="linenos">109</span></a> <span class="n">expression</span><span class="o">.</span><span class="n">select</span><span class="p">(</span><span class="n">expr</span><span class="o">.</span><span class="n">copy</span><span class="p">(),</span> <span class="n">copy</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> +</span><span id="eliminate_qualify-110"><a href="#eliminate_qualify-110"><span class="linenos">110</span></a> +</span><span id="eliminate_qualify-111"><a href="#eliminate_qualify-111"><span class="linenos">111</span></a> <span class="k">return</span> <span class="n">outer_selects</span><span class="o">.</span><span class="n">from_</span><span class="p">(</span><span class="n">expression</span><span class="o">.</span><span class="n">subquery</span><span class="p">(</span><span class="n">alias</span><span class="o">=</span><span class="s2">"_t"</span><span class="p">))</span><span class="o">.</span><span class="n">where</span><span class="p">(</span><span class="n">qualify_filters</span><span class="p">)</span> +</span><span id="eliminate_qualify-112"><a href="#eliminate_qualify-112"><span class="linenos">112</span></a> +</span><span id="eliminate_qualify-113"><a href="#eliminate_qualify-113"><span class="linenos">113</span></a> <span class="k">return</span> <span class="n">expression</span> +</span></pre></div> + + + <div class="docstring"><p>Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently.</p> + +<p>The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY: +<a href="https://docs.snowflake.com/en/sql-reference/constructs/qualify">https://docs.snowflake.com/en/sql-reference/constructs/qualify</a></p> + +<p>Some dialects don't support window functions in the WHERE clause, so we need to include them as +projections in the subquery, in order to refer to them in the outer filter using aliases. Also, +if a column is referenced in the QUALIFY clause but is not selected, we need to include it too, +otherwise we won't be able to refer to it in the outer query's WHERE clause.</p> +</div> + + + </section> <section id="remove_precision_parameterized_types"> <input id="remove_precision_parameterized_types-view-source" class="view-source-toggle-state" type="checkbox" aria-hidden="true" tabindex="-1"> <div class="attr function"> @@ -367,25 +463,25 @@ </div> <a class="headerlink" href="#remove_precision_parameterized_types"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="remove_precision_parameterized_types-83"><a href="#remove_precision_parameterized_types-83"><span class="linenos"> 83</span></a><span class="k">def</span> <span class="nf">remove_precision_parameterized_types</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> -</span><span id="remove_precision_parameterized_types-84"><a href="#remove_precision_parameterized_types-84"><span class="linenos"> 84</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="remove_precision_parameterized_types-85"><a href="#remove_precision_parameterized_types-85"><span class="linenos"> 85</span></a><span class="sd"> Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions.</span> -</span><span id="remove_precision_parameterized_types-86"><a href="#remove_precision_parameterized_types-86"><span class="linenos"> 86</span></a><span class="sd"> This transforms removes the precision from parameterized types in expressions.</span> -</span><span id="remove_precision_parameterized_types-87"><a href="#remove_precision_parameterized_types-87"><span class="linenos"> 87</span></a><span class="sd"> """</span> -</span><span id="remove_precision_parameterized_types-88"><a href="#remove_precision_parameterized_types-88"><span class="linenos"> 88</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> -</span><span id="remove_precision_parameterized_types-89"><a href="#remove_precision_parameterized_types-89"><span class="linenos"> 89</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> -</span><span id="remove_precision_parameterized_types-90"><a href="#remove_precision_parameterized_types-90"><span class="linenos"> 90</span></a> <span class="o">**</span><span class="p">{</span> -</span><span id="remove_precision_parameterized_types-91"><a href="#remove_precision_parameterized_types-91"><span class="linenos"> 91</span></a> <span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> -</span><span id="remove_precision_parameterized_types-92"><a href="#remove_precision_parameterized_types-92"><span class="linenos"> 92</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="p">[</span> -</span><span id="remove_precision_parameterized_types-93"><a href="#remove_precision_parameterized_types-93"><span class="linenos"> 93</span></a> <span class="n">node_expression</span> -</span><span id="remove_precision_parameterized_types-94"><a href="#remove_precision_parameterized_types-94"><span class="linenos"> 94</span></a> <span class="k">for</span> <span class="n">node_expression</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">expressions</span> -</span><span id="remove_precision_parameterized_types-95"><a href="#remove_precision_parameterized_types-95"><span class="linenos"> 95</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node_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><span id="remove_precision_parameterized_types-96"><a href="#remove_precision_parameterized_types-96"><span class="linenos"> 96</span></a> <span class="p">],</span> -</span><span id="remove_precision_parameterized_types-97"><a href="#remove_precision_parameterized_types-97"><span class="linenos"> 97</span></a> <span class="p">}</span> -</span><span id="remove_precision_parameterized_types-98"><a href="#remove_precision_parameterized_types-98"><span class="linenos"> 98</span></a> <span class="p">)</span> -</span><span id="remove_precision_parameterized_types-99"><a href="#remove_precision_parameterized_types-99"><span class="linenos"> 99</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> -</span><span id="remove_precision_parameterized_types-100"><a href="#remove_precision_parameterized_types-100"><span class="linenos">100</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> -</span><span id="remove_precision_parameterized_types-101"><a href="#remove_precision_parameterized_types-101"><span class="linenos">101</span></a> <span class="p">)</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="remove_precision_parameterized_types-116"><a href="#remove_precision_parameterized_types-116"><span class="linenos">116</span></a><span class="k">def</span> <span class="nf">remove_precision_parameterized_types</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">Expression</span><span class="p">)</span> <span class="o">-></span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">:</span> +</span><span id="remove_precision_parameterized_types-117"><a href="#remove_precision_parameterized_types-117"><span class="linenos">117</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="remove_precision_parameterized_types-118"><a href="#remove_precision_parameterized_types-118"><span class="linenos">118</span></a><span class="sd"> Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions.</span> +</span><span id="remove_precision_parameterized_types-119"><a href="#remove_precision_parameterized_types-119"><span class="linenos">119</span></a><span class="sd"> This transforms removes the precision from parameterized types in expressions.</span> +</span><span id="remove_precision_parameterized_types-120"><a href="#remove_precision_parameterized_types-120"><span class="linenos">120</span></a><span class="sd"> """</span> +</span><span id="remove_precision_parameterized_types-121"><a href="#remove_precision_parameterized_types-121"><span class="linenos">121</span></a> <span class="k">return</span> <span class="n">expression</span><span class="o">.</span><span class="n">transform</span><span class="p">(</span> +</span><span id="remove_precision_parameterized_types-122"><a href="#remove_precision_parameterized_types-122"><span class="linenos">122</span></a> <span class="k">lambda</span> <span class="n">node</span><span class="p">:</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">(</span> +</span><span id="remove_precision_parameterized_types-123"><a href="#remove_precision_parameterized_types-123"><span class="linenos">123</span></a> <span class="o">**</span><span class="p">{</span> +</span><span id="remove_precision_parameterized_types-124"><a href="#remove_precision_parameterized_types-124"><span class="linenos">124</span></a> <span class="o">**</span><span class="n">node</span><span class="o">.</span><span class="n">args</span><span class="p">,</span> +</span><span id="remove_precision_parameterized_types-125"><a href="#remove_precision_parameterized_types-125"><span class="linenos">125</span></a> <span class="s2">"expressions"</span><span class="p">:</span> <span class="p">[</span> +</span><span id="remove_precision_parameterized_types-126"><a href="#remove_precision_parameterized_types-126"><span class="linenos">126</span></a> <span class="n">node_expression</span> +</span><span id="remove_precision_parameterized_types-127"><a href="#remove_precision_parameterized_types-127"><span class="linenos">127</span></a> <span class="k">for</span> <span class="n">node_expression</span> <span class="ow">in</span> <span class="n">node</span><span class="o">.</span><span class="n">expressions</span> +</span><span id="remove_precision_parameterized_types-128"><a href="#remove_precision_parameterized_types-128"><span class="linenos">128</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node_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><span id="remove_precision_parameterized_types-129"><a href="#remove_precision_parameterized_types-129"><span class="linenos">129</span></a> <span class="p">],</span> +</span><span id="remove_precision_parameterized_types-130"><a href="#remove_precision_parameterized_types-130"><span class="linenos">130</span></a> <span class="p">}</span> +</span><span id="remove_precision_parameterized_types-131"><a href="#remove_precision_parameterized_types-131"><span class="linenos">131</span></a> <span class="p">)</span> +</span><span id="remove_precision_parameterized_types-132"><a href="#remove_precision_parameterized_types-132"><span class="linenos">132</span></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">node</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">DataType</span><span class="p">)</span> +</span><span id="remove_precision_parameterized_types-133"><a href="#remove_precision_parameterized_types-133"><span class="linenos">133</span></a> <span class="k">else</span> <span class="n">node</span><span class="p">,</span> +</span><span id="remove_precision_parameterized_types-134"><a href="#remove_precision_parameterized_types-134"><span class="linenos">134</span></a> <span class="p">)</span> </span></pre></div> @@ -406,29 +502,29 @@ This transforms removes the precision from parameterized types in expressions.</ </div> <a class="headerlink" href="#preprocess"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="preprocess-104"><a href="#preprocess-104"><span class="linenos">104</span></a><span class="k">def</span> <span class="nf">preprocess</span><span class="p">(</span> -</span><span id="preprocess-105"><a href="#preprocess-105"><span class="linenos">105</span></a> <span class="n">transforms</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">exp</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">Expression</span><span class="p">]],</span> -</span><span id="preprocess-106"><a href="#preprocess-106"><span class="linenos">106</span></a> <span class="n">to_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">],</span> -</span><span id="preprocess-107"><a href="#preprocess-107"><span class="linenos">107</span></a><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">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> -</span><span id="preprocess-108"><a href="#preprocess-108"><span class="linenos">108</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="preprocess-109"><a href="#preprocess-109"><span class="linenos">109</span></a><span class="sd"> Creates a new transform by chaining a sequence of transformations and converts the resulting</span> -</span><span id="preprocess-110"><a href="#preprocess-110"><span class="linenos">110</span></a><span class="sd"> expression to SQL, using an appropriate `Generator.TRANSFORMS` function.</span> -</span><span id="preprocess-111"><a href="#preprocess-111"><span class="linenos">111</span></a> -</span><span id="preprocess-112"><a href="#preprocess-112"><span class="linenos">112</span></a><span class="sd"> Args:</span> -</span><span id="preprocess-113"><a href="#preprocess-113"><span class="linenos">113</span></a><span class="sd"> transforms: sequence of transform functions. These will be called in order.</span> -</span><span id="preprocess-114"><a href="#preprocess-114"><span class="linenos">114</span></a><span class="sd"> to_sql: final transform that converts the resulting expression to a SQL string.</span> -</span><span id="preprocess-115"><a href="#preprocess-115"><span class="linenos">115</span></a> -</span><span id="preprocess-116"><a href="#preprocess-116"><span class="linenos">116</span></a><span class="sd"> Returns:</span> -</span><span id="preprocess-117"><a href="#preprocess-117"><span class="linenos">117</span></a><span class="sd"> Function that can be used as a generator transform.</span> -</span><span id="preprocess-118"><a href="#preprocess-118"><span class="linenos">118</span></a><span class="sd"> """</span> -</span><span id="preprocess-119"><a href="#preprocess-119"><span class="linenos">119</span></a> -</span><span id="preprocess-120"><a href="#preprocess-120"><span class="linenos">120</span></a> <span class="k">def</span> <span class="nf">_to_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><span id="preprocess-121"><a href="#preprocess-121"><span class="linenos">121</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">transforms</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">copy</span><span class="p">())</span> -</span><span id="preprocess-122"><a href="#preprocess-122"><span class="linenos">122</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> -</span><span id="preprocess-123"><a href="#preprocess-123"><span class="linenos">123</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> -</span><span id="preprocess-124"><a href="#preprocess-124"><span class="linenos">124</span></a> <span class="k">return</span> <span class="n">to_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><span id="preprocess-125"><a href="#preprocess-125"><span class="linenos">125</span></a> -</span><span id="preprocess-126"><a href="#preprocess-126"><span class="linenos">126</span></a> <span class="k">return</span> <span class="n">_to_sql</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="preprocess-137"><a href="#preprocess-137"><span class="linenos">137</span></a><span class="k">def</span> <span class="nf">preprocess</span><span class="p">(</span> +</span><span id="preprocess-138"><a href="#preprocess-138"><span class="linenos">138</span></a> <span class="n">transforms</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">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">exp</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">Expression</span><span class="p">]],</span> +</span><span id="preprocess-139"><a href="#preprocess-139"><span class="linenos">139</span></a> <span class="n">to_sql</span><span class="p">:</span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">[[</span><span class="n">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">],</span> +</span><span id="preprocess-140"><a href="#preprocess-140"><span class="linenos">140</span></a><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">Generator</span><span class="p">,</span> <span class="n">exp</span><span class="o">.</span><span class="n">Expression</span><span class="p">],</span> <span class="nb">str</span><span class="p">]:</span> +</span><span id="preprocess-141"><a href="#preprocess-141"><span class="linenos">141</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="preprocess-142"><a href="#preprocess-142"><span class="linenos">142</span></a><span class="sd"> Creates a new transform by chaining a sequence of transformations and converts the resulting</span> +</span><span id="preprocess-143"><a href="#preprocess-143"><span class="linenos">143</span></a><span class="sd"> expression to SQL, using an appropriate `Generator.TRANSFORMS` function.</span> +</span><span id="preprocess-144"><a href="#preprocess-144"><span class="linenos">144</span></a> +</span><span id="preprocess-145"><a href="#preprocess-145"><span class="linenos">145</span></a><span class="sd"> Args:</span> +</span><span id="preprocess-146"><a href="#preprocess-146"><span class="linenos">146</span></a><span class="sd"> transforms: sequence of transform functions. These will be called in order.</span> +</span><span id="preprocess-147"><a href="#preprocess-147"><span class="linenos">147</span></a><span class="sd"> to_sql: final transform that converts the resulting expression to a SQL string.</span> +</span><span id="preprocess-148"><a href="#preprocess-148"><span class="linenos">148</span></a> +</span><span id="preprocess-149"><a href="#preprocess-149"><span class="linenos">149</span></a><span class="sd"> Returns:</span> +</span><span id="preprocess-150"><a href="#preprocess-150"><span class="linenos">150</span></a><span class="sd"> Function that can be used as a generator transform.</span> +</span><span id="preprocess-151"><a href="#preprocess-151"><span class="linenos">151</span></a><span class="sd"> """</span> +</span><span id="preprocess-152"><a href="#preprocess-152"><span class="linenos">152</span></a> +</span><span id="preprocess-153"><a href="#preprocess-153"><span class="linenos">153</span></a> <span class="k">def</span> <span class="nf">_to_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><span id="preprocess-154"><a href="#preprocess-154"><span class="linenos">154</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">transforms</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">copy</span><span class="p">())</span> +</span><span id="preprocess-155"><a href="#preprocess-155"><span class="linenos">155</span></a> <span class="k">for</span> <span class="n">t</span> <span class="ow">in</span> <span class="n">transforms</span><span class="p">[</span><span class="mi">1</span><span class="p">:]:</span> +</span><span id="preprocess-156"><a href="#preprocess-156"><span class="linenos">156</span></a> <span class="n">expression</span> <span class="o">=</span> <span class="n">t</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span> +</span><span id="preprocess-157"><a href="#preprocess-157"><span class="linenos">157</span></a> <span class="k">return</span> <span class="n">to_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><span id="preprocess-158"><a href="#preprocess-158"><span class="linenos">158</span></a> +</span><span id="preprocess-159"><a href="#preprocess-159"><span class="linenos">159</span></a> <span class="k">return</span> <span class="n">_to_sql</span> </span></pre></div> @@ -462,16 +558,16 @@ expression to SQL, using an appropriate <code>Generator.TRANSFORMS</code> functi </div> <a class="headerlink" href="#delegate"></a> - <div class="pdoc-code codehilite"><pre><span></span><span id="delegate-129"><a href="#delegate-129"><span class="linenos">129</span></a><span class="k">def</span> <span class="nf">delegate</span><span class="p">(</span><span class="n">attr</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> -</span><span id="delegate-130"><a href="#delegate-130"><span class="linenos">130</span></a><span class="w"> </span><span class="sd">"""</span> -</span><span id="delegate-131"><a href="#delegate-131"><span class="linenos">131</span></a><span class="sd"> Create a new method that delegates to `attr`. This is useful for creating `Generator.TRANSFORMS`</span> -</span><span id="delegate-132"><a href="#delegate-132"><span class="linenos">132</span></a><span class="sd"> functions that delegate to existing generator methods.</span> -</span><span id="delegate-133"><a href="#delegate-133"><span class="linenos">133</span></a><span class="sd"> """</span> -</span><span id="delegate-134"><a href="#delegate-134"><span class="linenos">134</span></a> -</span><span id="delegate-135"><a href="#delegate-135"><span class="linenos">135</span></a> <span class="k">def</span> <span class="nf">_transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> -</span><span id="delegate-136"><a href="#delegate-136"><span class="linenos">136</span></a> <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> -</span><span id="delegate-137"><a href="#delegate-137"><span class="linenos">137</span></a> -</span><span id="delegate-138"><a href="#delegate-138"><span class="linenos">138</span></a> <span class="k">return</span> <span class="n">_transform</span> + <div class="pdoc-code codehilite"><pre><span></span><span id="delegate-162"><a href="#delegate-162"><span class="linenos">162</span></a><span class="k">def</span> <span class="nf">delegate</span><span class="p">(</span><span class="n">attr</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="n">t</span><span class="o">.</span><span class="n">Callable</span><span class="p">:</span> +</span><span id="delegate-163"><a href="#delegate-163"><span class="linenos">163</span></a><span class="w"> </span><span class="sd">"""</span> +</span><span id="delegate-164"><a href="#delegate-164"><span class="linenos">164</span></a><span class="sd"> Create a new method that delegates to `attr`. This is useful for creating `Generator.TRANSFORMS`</span> +</span><span id="delegate-165"><a href="#delegate-165"><span class="linenos">165</span></a><span class="sd"> functions that delegate to existing generator methods.</span> +</span><span id="delegate-166"><a href="#delegate-166"><span class="linenos">166</span></a><span class="sd"> """</span> +</span><span id="delegate-167"><a href="#delegate-167"><span class="linenos">167</span></a> +</span><span id="delegate-168"><a href="#delegate-168"><span class="linenos">168</span></a> <span class="k">def</span> <span class="nf">_transform</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span> +</span><span id="delegate-169"><a href="#delegate-169"><span class="linenos">169</span></a> <span class="k">return</span> <span class="nb">getattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">attr</span><span class="p">)(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span> +</span><span id="delegate-170"><a href="#delegate-170"><span class="linenos">170</span></a> +</span><span id="delegate-171"><a href="#delegate-171"><span class="linenos">171</span></a> <span class="k">return</span> <span class="n">_transform</span> </span></pre></div> diff --git a/sqlglot/__init__.py b/sqlglot/__init__.py index 4a30008..10046d1 100644 --- a/sqlglot/__init__.py +++ b/sqlglot/__init__.py @@ -47,7 +47,7 @@ if t.TYPE_CHECKING: T = t.TypeVar("T", bound=Expression) -__version__ = "11.3.6" +__version__ = "11.4.1" pretty = False """Whether to format generated SQL by default.""" diff --git a/sqlglot/__main__.py b/sqlglot/__main__.py index f9613b2..f3433d3 100644 --- a/sqlglot/__main__.py +++ b/sqlglot/__main__.py @@ -1,5 +1,8 @@ +from __future__ import annotations + import argparse import sys +import typing as t import sqlglot @@ -43,6 +46,12 @@ parser.add_argument( help="Parse and return the expression tree", ) parser.add_argument( + "--tokenize", + dest="tokenize", + action="store_true", + help="Tokenize and return the tokens list", +) +parser.add_argument( "--error-level", dest="error_level", type=str, @@ -57,7 +66,7 @@ error_level = sqlglot.ErrorLevel[args.error_level.upper()] sql = sys.stdin.read() if args.sql == "-" else args.sql if args.parse: - sqls = [ + objs: t.Union[t.List[str], t.List[sqlglot.tokens.Token]] = [ repr(expression) for expression in sqlglot.parse( sql, @@ -65,8 +74,10 @@ if args.parse: error_level=error_level, ) ] +elif args.tokenize: + objs = sqlglot.Dialect.get_or_raise(args.read)().tokenize(sql) else: - sqls = sqlglot.transpile( + objs = sqlglot.transpile( sql, read=args.read, write=args.write, @@ -75,5 +86,5 @@ else: error_level=error_level, ) -for sql in sqls: - print(sql) +for obj in objs: + print(obj) diff --git a/sqlglot/dataframe/sql/dataframe.py b/sqlglot/dataframe/sql/dataframe.py index 32ee927..93bdf75 100644 --- a/sqlglot/dataframe/sql/dataframe.py +++ b/sqlglot/dataframe/sql/dataframe.py @@ -299,7 +299,7 @@ class DataFrame: for expression_type, select_expression in select_expressions: select_expression = select_expression.transform(replace_id_value, replacement_mapping) if optimize: - select_expression = optimize_func(select_expression) + select_expression = optimize_func(select_expression, identify="always") select_expression = df._replace_cte_names_with_hashes(select_expression) expression: t.Union[exp.Select, exp.Cache, exp.Drop] if expression_type == exp.Cache: diff --git a/sqlglot/dialects/bigquery.py b/sqlglot/dialects/bigquery.py index 0c2105b..6a43846 100644 --- a/sqlglot/dialects/bigquery.py +++ b/sqlglot/dialects/bigquery.py @@ -144,7 +144,6 @@ class BigQuery(Dialect): "BEGIN": TokenType.COMMAND, "BEGIN TRANSACTION": TokenType.BEGIN, "CURRENT_DATETIME": TokenType.CURRENT_DATETIME, - "CURRENT_TIME": TokenType.CURRENT_TIME, "DECLARE": TokenType.COMMAND, "GEOGRAPHY": TokenType.GEOGRAPHY, "FLOAT64": TokenType.DOUBLE, @@ -194,7 +193,6 @@ class BigQuery(Dialect): NO_PAREN_FUNCTIONS = { **parser.Parser.NO_PAREN_FUNCTIONS, # type: ignore TokenType.CURRENT_DATETIME: exp.CurrentDatetime, - TokenType.CURRENT_TIME: exp.CurrentTime, } NESTED_TYPE_TOKENS = { diff --git a/sqlglot/dialects/clickhouse.py b/sqlglot/dialects/clickhouse.py index b553df2..b54a77d 100644 --- a/sqlglot/dialects/clickhouse.py +++ b/sqlglot/dialects/clickhouse.py @@ -5,6 +5,7 @@ import typing as t from sqlglot import exp, generator, parser, tokens from sqlglot.dialects.dialect import Dialect, inline_array_sql, var_map_sql from sqlglot.errors import ParseError +from sqlglot.helper import ensure_list, seq_get from sqlglot.parser import parse_var_map from sqlglot.tokens import TokenType @@ -40,7 +41,18 @@ class ClickHouse(Dialect): class Parser(parser.Parser): FUNCTIONS = { **parser.Parser.FUNCTIONS, # type: ignore + "EXPONENTIALTIMEDECAYEDAVG": lambda params, args: exp.ExponentialTimeDecayedAvg( + this=seq_get(args, 0), + time=seq_get(args, 1), + decay=seq_get(params, 0), + ), "MAP": parse_var_map, + "HISTOGRAM": lambda params, args: exp.Histogram( + this=seq_get(args, 0), bins=seq_get(params, 0) + ), + "GROUPUNIQARRAY": lambda params, args: exp.GroupUniqArray( + this=seq_get(args, 0), size=seq_get(params, 0) + ), "QUANTILE": lambda params, args: exp.Quantile(this=args, quantile=params), "QUANTILES": lambda params, args: exp.Quantiles(parameters=params, expressions=args), "QUANTILEIF": lambda params, args: exp.QuantileIf(parameters=params, expressions=args), @@ -113,22 +125,40 @@ class ClickHouse(Dialect): TRANSFORMS = { **generator.Generator.TRANSFORMS, # type: ignore exp.Array: inline_array_sql, - exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})", + exp.ExponentialTimeDecayedAvg: lambda self, e: f"exponentialTimeDecayedAvg{self._param_args_sql(e, 'decay', ['this', 'time'])}", exp.Final: lambda self, e: f"{self.sql(e, 'this')} FINAL", + exp.GroupUniqArray: lambda self, e: f"groupUniqArray{self._param_args_sql(e, 'size', 'this')}", + exp.Histogram: lambda self, e: f"histogram{self._param_args_sql(e, 'bins', 'this')}", exp.Map: lambda self, e: _lower_func(var_map_sql(self, e)), - exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)), exp.Quantile: lambda self, e: f"quantile{self._param_args_sql(e, 'quantile', 'this')}", exp.Quantiles: lambda self, e: f"quantiles{self._param_args_sql(e, 'parameters', 'expressions')}", exp.QuantileIf: lambda self, e: f"quantileIf{self._param_args_sql(e, 'parameters', 'expressions')}", + exp.StrPosition: lambda self, e: f"position({self.format_args(e.this, e.args.get('substr'), e.args.get('position'))})", + exp.VarMap: lambda self, e: _lower_func(var_map_sql(self, e)), } EXPLICIT_UNION = True def _param_args_sql( - self, expression: exp.Expression, params_name: str, args_name: str + self, + expression: exp.Expression, + param_names: str | t.List[str], + arg_names: str | t.List[str], ) -> str: - params = self.format_args(self.expressions(expression, params_name)) - args = self.format_args(self.expressions(expression, args_name)) + params = self.format_args( + *( + arg + for name in ensure_list(param_names) + for arg in ensure_list(expression.args.get(name)) + ) + ) + args = self.format_args( + *( + arg + for name in ensure_list(arg_names) + for arg in ensure_list(expression.args.get(name)) + ) + ) return f"({params})({args})" def cte_sql(self, expression: exp.CTE) -> str: diff --git a/sqlglot/dialects/databricks.py b/sqlglot/dialects/databricks.py index 4ff3594..4268f1b 100644 --- a/sqlglot/dialects/databricks.py +++ b/sqlglot/dialects/databricks.py @@ -23,6 +23,7 @@ class Databricks(Spark): exp.DateDiff: generate_date_delta_with_unit_sql, exp.ToChar: lambda self, e: self.function_fallback_sql(e), } + TRANSFORMS.pop(exp.Select) # Remove the ELIMINATE_QUALIFY transformation PARAMETER_TOKEN = "$" diff --git a/sqlglot/dialects/dialect.py b/sqlglot/dialects/dialect.py index 25490cb..b267521 100644 --- a/sqlglot/dialects/dialect.py +++ b/sqlglot/dialects/dialect.py @@ -8,7 +8,7 @@ from sqlglot.generator import Generator from sqlglot.helper import flatten, seq_get from sqlglot.parser import Parser from sqlglot.time import format_time -from sqlglot.tokens import Tokenizer +from sqlglot.tokens import Token, Tokenizer from sqlglot.trie import new_trie E = t.TypeVar("E", bound=exp.Expression) @@ -160,12 +160,12 @@ class Dialect(metaclass=_Dialect): return expression def parse(self, sql: str, **opts) -> t.List[t.Optional[exp.Expression]]: - return self.parser(**opts).parse(self.tokenizer.tokenize(sql), sql) + return self.parser(**opts).parse(self.tokenize(sql), sql) def parse_into( self, expression_type: exp.IntoType, sql: str, **opts ) -> t.List[t.Optional[exp.Expression]]: - return self.parser(**opts).parse_into(expression_type, self.tokenizer.tokenize(sql), sql) + return self.parser(**opts).parse_into(expression_type, self.tokenize(sql), sql) def generate(self, expression: t.Optional[exp.Expression], **opts) -> str: return self.generator(**opts).generate(expression) @@ -173,6 +173,9 @@ class Dialect(metaclass=_Dialect): def transpile(self, sql: str, **opts) -> t.List[str]: return [self.generate(expression, **opts) for expression in self.parse(sql)] + def tokenize(self, sql: str) -> t.List[Token]: + return self.tokenizer.tokenize(sql) + @property def tokenizer(self) -> Tokenizer: if not hasattr(self, "_tokenizer"): @@ -385,6 +388,21 @@ def parse_date_delta( return inner_func +def date_trunc_to_time(args: t.Sequence) -> exp.DateTrunc | exp.TimestampTrunc: + unit = seq_get(args, 0) + this = seq_get(args, 1) + + if isinstance(this, exp.Cast) and this.is_type(exp.DataType.Type.DATE): + return exp.DateTrunc(unit=unit, this=this) + return exp.TimestampTrunc(this=this, unit=unit) + + +def timestamptrunc_sql(self: Generator, expression: exp.TimestampTrunc) -> str: + return self.func( + "DATE_TRUNC", exp.Literal.string(expression.text("unit") or "day"), expression.this + ) + + def locate_to_strposition(args: t.Sequence) -> exp.Expression: return exp.StrPosition( this=seq_get(args, 1), @@ -412,6 +430,16 @@ def min_or_least(self: Generator, expression: exp.Min) -> str: return rename_func(name)(self, expression) +def count_if_to_sum(self: Generator, expression: exp.CountIf) -> str: + cond = expression.this + + if isinstance(expression.this, exp.Distinct): + cond = expression.this.expressions[0] + self.unsupported("DISTINCT is not supported when converting COUNT_IF to SUM") + + return self.func("sum", exp.func("if", cond, 1, 0)) + + def trim_sql(self: Generator, expression: exp.Trim) -> str: target = self.sql(expression, "this") trim_type = self.sql(expression, "position") diff --git a/sqlglot/dialects/drill.py b/sqlglot/dialects/drill.py index 208e2ab..dc0e519 100644 --- a/sqlglot/dialects/drill.py +++ b/sqlglot/dialects/drill.py @@ -97,6 +97,7 @@ class Drill(Dialect): FUNCTIONS = { **parser.Parser.FUNCTIONS, # type: ignore + "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "drill"), "TO_TIMESTAMP": exp.TimeStrToTime.from_arg_list, "TO_CHAR": format_time_lambda(exp.TimeToStr, "drill"), } diff --git a/sqlglot/dialects/duckdb.py b/sqlglot/dialects/duckdb.py index 43f538c..f1d2266 100644 --- a/sqlglot/dialects/duckdb.py +++ b/sqlglot/dialects/duckdb.py @@ -14,6 +14,7 @@ from sqlglot.dialects.dialect import ( rename_func, str_position_sql, str_to_time_sql, + timestamptrunc_sql, timestrtotime_sql, ts_or_ds_to_date_sql, ) @@ -148,6 +149,9 @@ class DuckDB(Dialect): exp.ArraySize: rename_func("ARRAY_LENGTH"), exp.ArraySort: _array_sort_sql, exp.ArraySum: rename_func("LIST_SUM"), + exp.DayOfMonth: rename_func("DAYOFMONTH"), + exp.DayOfWeek: rename_func("DAYOFWEEK"), + exp.DayOfYear: rename_func("DAYOFYEAR"), exp.DataType: _datatype_sql, exp.DateAdd: _date_add, exp.DateDiff: lambda self, e: self.func( @@ -162,6 +166,7 @@ class DuckDB(Dialect): exp.JSONBExtract: arrow_json_extract_sql, exp.JSONBExtractScalar: arrow_json_extract_scalar_sql, exp.LogicalOr: rename_func("BOOL_OR"), + exp.LogicalAnd: rename_func("BOOL_AND"), exp.Pivot: no_pivot_sql, exp.Properties: no_properties_sql, exp.RegexpExtract: _regexp_extract_sql, @@ -175,6 +180,7 @@ class DuckDB(Dialect): exp.StrToTime: str_to_time_sql, exp.StrToUnix: lambda self, e: f"EPOCH(STRPTIME({self.sql(e, 'this')}, {self.format_time(e)}))", exp.Struct: _struct_sql, + exp.TimestampTrunc: timestamptrunc_sql, exp.TimeStrToDate: lambda self, e: f"CAST({self.sql(e, 'this')} AS DATE)", exp.TimeStrToTime: timestrtotime_sql, exp.TimeStrToUnix: lambda self, e: f"EPOCH(CAST({self.sql(e, 'this')} AS TIMESTAMP))", @@ -186,6 +192,7 @@ class DuckDB(Dialect): exp.UnixToStr: lambda self, e: f"STRFTIME(TO_TIMESTAMP({self.sql(e, 'this')}), {self.format_time(e)})", exp.UnixToTime: rename_func("TO_TIMESTAMP"), exp.UnixToTimeStr: lambda self, e: f"CAST(TO_TIMESTAMP({self.sql(e, 'this')}) AS TEXT)", + exp.WeekOfYear: rename_func("WEEKOFYEAR"), } TYPE_MAPPING = { diff --git a/sqlglot/dialects/hive.py b/sqlglot/dialects/hive.py index c4b8fa9..0110eee 100644 --- a/sqlglot/dialects/hive.py +++ b/sqlglot/dialects/hive.py @@ -1,5 +1,7 @@ from __future__ import annotations +import typing as t + from sqlglot import exp, generator, parser, tokens, transforms from sqlglot.dialects.dialect import ( Dialect, @@ -35,7 +37,7 @@ DATE_DELTA_INTERVAL = { DIFF_MONTH_SWITCH = ("YEAR", "QUARTER", "MONTH") -def _add_date_sql(self, expression): +def _add_date_sql(self: generator.Generator, expression: exp.DateAdd) -> str: unit = expression.text("unit").upper() func, multiplier = DATE_DELTA_INTERVAL.get(unit, ("DATE_ADD", 1)) modified_increment = ( @@ -47,7 +49,7 @@ def _add_date_sql(self, expression): return self.func(func, expression.this, modified_increment.this) -def _date_diff_sql(self, expression): +def _date_diff_sql(self: generator.Generator, expression: exp.DateDiff) -> str: unit = expression.text("unit").upper() sql_func = "MONTHS_BETWEEN" if unit in DIFF_MONTH_SWITCH else "DATEDIFF" _, multiplier = DATE_DELTA_INTERVAL.get(unit, ("", 1)) @@ -56,21 +58,21 @@ def _date_diff_sql(self, expression): return f"{diff_sql}{multiplier_sql}" -def _array_sort(self, expression): +def _array_sort(self: generator.Generator, expression: exp.ArraySort) -> str: if expression.expression: self.unsupported("Hive SORT_ARRAY does not support a comparator") return f"SORT_ARRAY({self.sql(expression, 'this')})" -def _property_sql(self, expression): +def _property_sql(self: generator.Generator, expression: exp.Property) -> str: return f"'{expression.name}'={self.sql(expression, 'value')}" -def _str_to_unix(self, expression): +def _str_to_unix(self: generator.Generator, expression: exp.StrToUnix) -> str: return self.func("UNIX_TIMESTAMP", expression.this, _time_format(self, expression)) -def _str_to_date(self, expression): +def _str_to_date(self: generator.Generator, expression: exp.StrToDate) -> str: this = self.sql(expression, "this") time_format = self.format_time(expression) if time_format not in (Hive.time_format, Hive.date_format): @@ -78,7 +80,7 @@ def _str_to_date(self, expression): return f"CAST({this} AS DATE)" -def _str_to_time(self, expression): +def _str_to_time(self: generator.Generator, expression: exp.StrToTime) -> str: this = self.sql(expression, "this") time_format = self.format_time(expression) if time_format not in (Hive.time_format, Hive.date_format): @@ -86,20 +88,22 @@ def _str_to_time(self, expression): return f"CAST({this} AS TIMESTAMP)" -def _time_format(self, expression): +def _time_format( + self: generator.Generator, expression: exp.UnixToStr | exp.StrToUnix +) -> t.Optional[str]: time_format = self.format_time(expression) if time_format == Hive.time_format: return None return time_format -def _time_to_str(self, expression): +def _time_to_str(self: generator.Generator, expression: exp.TimeToStr) -> str: this = self.sql(expression, "this") time_format = self.format_time(expression) return f"DATE_FORMAT({this}, {time_format})" -def _to_date_sql(self, expression): +def _to_date_sql(self: generator.Generator, expression: exp.TsOrDsToDate) -> str: this = self.sql(expression, "this") time_format = self.format_time(expression) if time_format and time_format not in (Hive.time_format, Hive.date_format): @@ -107,7 +111,7 @@ def _to_date_sql(self, expression): return f"TO_DATE({this})" -def _unnest_to_explode_sql(self, expression): +def _unnest_to_explode_sql(self: generator.Generator, expression: exp.Join) -> str: unnest = expression.this if isinstance(unnest, exp.Unnest): alias = unnest.args.get("alias") @@ -117,7 +121,7 @@ def _unnest_to_explode_sql(self, expression): exp.Lateral( this=udtf(this=expression), view=True, - alias=exp.TableAlias(this=alias.this, columns=[column]), + alias=exp.TableAlias(this=alias.this, columns=[column]), # type: ignore ) ) for expression, column in zip(unnest.expressions, alias.columns if alias else []) @@ -125,7 +129,7 @@ def _unnest_to_explode_sql(self, expression): return self.join_sql(expression) -def _index_sql(self, expression): +def _index_sql(self: generator.Generator, expression: exp.Index) -> str: this = self.sql(expression, "this") table = self.sql(expression, "table") columns = self.sql(expression, "columns") @@ -263,14 +267,15 @@ class Hive(Dialect): exp.DataType.Type.TEXT: "STRING", exp.DataType.Type.DATETIME: "TIMESTAMP", exp.DataType.Type.VARBINARY: "BINARY", + exp.DataType.Type.TIMESTAMPTZ: "TIMESTAMP", } TRANSFORMS = { **generator.Generator.TRANSFORMS, # type: ignore **transforms.UNALIAS_GROUP, # type: ignore + **transforms.ELIMINATE_QUALIFY, # type: ignore exp.Property: _property_sql, exp.ApproxDistinct: approx_count_distinct_sql, - exp.ArrayAgg: rename_func("COLLECT_LIST"), exp.ArrayConcat: rename_func("CONCAT"), exp.ArraySize: rename_func("SIZE"), exp.ArraySort: _array_sort, @@ -333,13 +338,19 @@ class Hive(Dialect): exp.TableFormatProperty: exp.Properties.Location.POST_SCHEMA, } - def with_properties(self, properties): + def arrayagg_sql(self, expression: exp.ArrayAgg) -> str: + return self.func( + "COLLECT_LIST", + expression.this.this if isinstance(expression.this, exp.Order) else expression.this, + ) + + def with_properties(self, properties: exp.Properties) -> str: return self.properties( properties, prefix=self.seg("TBLPROPERTIES"), ) - def datatype_sql(self, expression): + def datatype_sql(self, expression: exp.DataType) -> str: if ( expression.this in (exp.DataType.Type.VARCHAR, exp.DataType.Type.NVARCHAR) and not expression.expressions diff --git a/sqlglot/dialects/mysql.py b/sqlglot/dialects/mysql.py index a831235..1e2cfa3 100644 --- a/sqlglot/dialects/mysql.py +++ b/sqlglot/dialects/mysql.py @@ -177,7 +177,7 @@ class MySQL(Dialect): "@@": TokenType.SESSION_PARAMETER, } - COMMANDS = tokens.Tokenizer.COMMANDS - {TokenType.SET, TokenType.SHOW} + COMMANDS = tokens.Tokenizer.COMMANDS - {TokenType.SHOW} class Parser(parser.Parser): FUNC_TOKENS = {*parser.Parser.FUNC_TOKENS, TokenType.SCHEMA, TokenType.DATABASE} # type: ignore @@ -211,7 +211,6 @@ class MySQL(Dialect): STATEMENT_PARSERS = { **parser.Parser.STATEMENT_PARSERS, # type: ignore TokenType.SHOW: lambda self: self._parse_show(), - TokenType.SET: lambda self: self._parse_set(), } SHOW_PARSERS = { @@ -269,15 +268,12 @@ class MySQL(Dialect): } SET_PARSERS = { - "GLOBAL": lambda self: self._parse_set_item_assignment("GLOBAL"), + **parser.Parser.SET_PARSERS, "PERSIST": lambda self: self._parse_set_item_assignment("PERSIST"), "PERSIST_ONLY": lambda self: self._parse_set_item_assignment("PERSIST_ONLY"), - "SESSION": lambda self: self._parse_set_item_assignment("SESSION"), - "LOCAL": lambda self: self._parse_set_item_assignment("LOCAL"), "CHARACTER SET": lambda self: self._parse_set_item_charset("CHARACTER SET"), "CHARSET": lambda self: self._parse_set_item_charset("CHARACTER SET"), "NAMES": lambda self: self._parse_set_item_names(), - "TRANSACTION": lambda self: self._parse_set_transaction(), } PROFILE_TYPES = { @@ -292,15 +288,6 @@ class MySQL(Dialect): "SWAPS", } - TRANSACTION_CHARACTERISTICS = { - "ISOLATION LEVEL REPEATABLE READ", - "ISOLATION LEVEL READ COMMITTED", - "ISOLATION LEVEL READ UNCOMMITTED", - "ISOLATION LEVEL SERIALIZABLE", - "READ WRITE", - "READ ONLY", - } - def _parse_show_mysql(self, this, target=False, full=None, global_=None): if target: if isinstance(target, str): @@ -354,12 +341,6 @@ class MySQL(Dialect): **{"global": global_}, ) - def _parse_var_from_options(self, options): - for option in options: - if self._match_text_seq(*option.split(" ")): - return exp.Var(this=option) - return None - def _parse_oldstyle_limit(self): limit = None offset = None @@ -372,30 +353,6 @@ class MySQL(Dialect): offset = parts[0] return offset, limit - def _default_parse_set_item(self): - return self._parse_set_item_assignment(kind=None) - - def _parse_set_item_assignment(self, kind): - if kind in {"GLOBAL", "SESSION"} and self._match_text_seq("TRANSACTION"): - return self._parse_set_transaction(global_=kind == "GLOBAL") - - left = self._parse_primary() or self._parse_id_var() - if not self._match(TokenType.EQ): - self.raise_error("Expected =") - right = self._parse_statement() or self._parse_id_var() - - this = self.expression( - exp.EQ, - this=left, - expression=right, - ) - - return self.expression( - exp.SetItem, - this=this, - kind=kind, - ) - def _parse_set_item_charset(self, kind): this = self._parse_string() or self._parse_id_var() @@ -418,18 +375,6 @@ class MySQL(Dialect): kind="NAMES", ) - def _parse_set_transaction(self, global_=False): - self._match_text_seq("TRANSACTION") - characteristics = self._parse_csv( - lambda: self._parse_var_from_options(self.TRANSACTION_CHARACTERISTICS) - ) - return self.expression( - exp.SetItem, - expressions=characteristics, - kind="TRANSACTION", - **{"global": global_}, - ) - class Generator(generator.Generator): LOCKING_READS_SUPPORTED = True NULL_ORDERING_SUPPORTED = False @@ -523,16 +468,3 @@ class MySQL(Dialect): limit_offset = f"{offset}, {limit}" if offset else limit return f" LIMIT {limit_offset}" return "" - - def setitem_sql(self, expression): - kind = self.sql(expression, "kind") - kind = f"{kind} " if kind else "" - this = self.sql(expression, "this") - expressions = self.expressions(expression) - collate = self.sql(expression, "collate") - collate = f" COLLATE {collate}" if collate else "" - global_ = "GLOBAL " if expression.args.get("global") else "" - return f"{global_}{kind}{this}{expressions}{collate}" - - def set_sql(self, expression): - return f"SET {self.expressions(expression)}" diff --git a/sqlglot/dialects/postgres.py b/sqlglot/dialects/postgres.py index d7cbac4..5f556a5 100644 --- a/sqlglot/dialects/postgres.py +++ b/sqlglot/dialects/postgres.py @@ -12,6 +12,7 @@ from sqlglot.dialects.dialect import ( no_trycast_sql, rename_func, str_position_sql, + timestamptrunc_sql, trim_sql, ) from sqlglot.helper import seq_get @@ -34,7 +35,7 @@ def _date_add_sql(kind): from sqlglot.optimizer.simplify import simplify this = self.sql(expression, "this") - unit = self.sql(expression, "unit") + unit = expression.args.get("unit") expression = simplify(expression.args["expression"]) if not isinstance(expression, exp.Literal): @@ -92,8 +93,7 @@ def _string_agg_sql(self, expression): this = expression.this if isinstance(this, exp.Order): if this.this: - this = this.this - this.pop() + this = this.this.pop() order = self.sql(expression.this) # Order has a leading space return f"STRING_AGG({self.format_args(this, separator)}{order})" @@ -256,6 +256,9 @@ class Postgres(Dialect): "TO_TIMESTAMP": _to_timestamp, "TO_CHAR": format_time_lambda(exp.TimeToStr, "postgres"), "GENERATE_SERIES": _generate_series, + "DATE_TRUNC": lambda args: exp.TimestampTrunc( + this=seq_get(args, 1), unit=seq_get(args, 0) + ), } BITWISE = { @@ -311,6 +314,7 @@ class Postgres(Dialect): exp.DateSub: _date_add_sql("-"), exp.DateDiff: _date_diff_sql, exp.LogicalOr: rename_func("BOOL_OR"), + exp.LogicalAnd: rename_func("BOOL_AND"), exp.Min: min_or_least, exp.ArrayOverlaps: lambda self, e: self.binary(e, "&&"), exp.ArrayContains: lambda self, e: self.binary(e, "@>"), @@ -320,6 +324,7 @@ class Postgres(Dialect): exp.StrPosition: str_position_sql, exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", exp.Substring: _substring_sql, + exp.TimestampTrunc: timestamptrunc_sql, exp.TimeStrToTime: lambda self, e: f"CAST({self.sql(e, 'this')} AS TIMESTAMP)", exp.TimeToStr: lambda self, e: f"TO_CHAR({self.sql(e, 'this')}, {self.format_time(e)})", exp.TableSample: no_tablesample_sql, diff --git a/sqlglot/dialects/presto.py b/sqlglot/dialects/presto.py index aef9de3..07e8f43 100644 --- a/sqlglot/dialects/presto.py +++ b/sqlglot/dialects/presto.py @@ -3,12 +3,14 @@ from __future__ import annotations from sqlglot import exp, generator, parser, tokens, transforms from sqlglot.dialects.dialect import ( Dialect, + date_trunc_to_time, format_time_lambda, if_sql, no_ilike_sql, no_safe_divide_sql, rename_func, struct_extract_sql, + timestamptrunc_sql, timestrtotime_sql, ) from sqlglot.dialects.mysql import MySQL @@ -98,10 +100,16 @@ def _ts_or_ds_to_date_sql(self, expression): def _ts_or_ds_add_sql(self, expression): - this = self.sql(expression, "this") - e = self.sql(expression, "expression") - unit = self.sql(expression, "unit") or "'day'" - return f"DATE_ADD({unit}, {e}, DATE_PARSE(SUBSTR({this}, 1, 10), {Presto.date_format}))" + return self.func( + "DATE_ADD", + exp.Literal.string(expression.text("unit") or "day"), + expression.expression, + self.func( + "DATE_PARSE", + self.func("SUBSTR", expression.this, exp.Literal.number(1), exp.Literal.number(10)), + Presto.date_format, + ), + ) def _sequence_sql(self, expression): @@ -195,6 +203,7 @@ class Presto(Dialect): ), "DATE_FORMAT": format_time_lambda(exp.TimeToStr, "presto"), "DATE_PARSE": format_time_lambda(exp.StrToTime, "presto"), + "DATE_TRUNC": date_trunc_to_time, "FROM_UNIXTIME": _from_unixtime, "NOW": exp.CurrentTimestamp.from_arg_list, "STRPOS": lambda args: exp.StrPosition( @@ -237,6 +246,7 @@ class Presto(Dialect): TRANSFORMS = { **generator.Generator.TRANSFORMS, # type: ignore **transforms.UNALIAS_GROUP, # type: ignore + **transforms.ELIMINATE_QUALIFY, # type: ignore exp.ApproxDistinct: _approx_distinct_sql, exp.Array: lambda self, e: f"ARRAY[{self.expressions(e, flat=True)}]", exp.ArrayConcat: rename_func("CONCAT"), @@ -250,8 +260,12 @@ class Presto(Dialect): exp.BitwiseXor: lambda self, e: f"BITWISE_XOR({self.sql(e, 'this')}, {self.sql(e, 'expression')})", exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP", exp.DataType: _datatype_sql, - exp.DateAdd: lambda self, e: f"""DATE_ADD({self.sql(e, 'unit') or "'day'"}, {self.sql(e, 'expression')}, {self.sql(e, 'this')})""", - exp.DateDiff: lambda self, e: f"""DATE_DIFF({self.sql(e, 'unit') or "'day'"}, {self.sql(e, 'expression')}, {self.sql(e, 'this')})""", + exp.DateAdd: lambda self, e: self.func( + "DATE_ADD", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this + ), + exp.DateDiff: lambda self, e: self.func( + "DATE_DIFF", exp.Literal.string(e.text("unit") or "day"), e.expression, e.this + ), exp.DateStrToDate: lambda self, e: f"CAST(DATE_PARSE({self.sql(e, 'this')}, {Presto.date_format}) AS DATE)", exp.DateToDi: lambda self, e: f"CAST(DATE_FORMAT({self.sql(e, 'this')}, {Presto.dateint_format}) AS INT)", exp.Decode: _decode_sql, @@ -265,6 +279,7 @@ class Presto(Dialect): exp.Lateral: _explode_to_unnest_sql, exp.Levenshtein: rename_func("LEVENSHTEIN_DISTANCE"), exp.LogicalOr: rename_func("BOOL_OR"), + exp.LogicalAnd: rename_func("BOOL_AND"), exp.Quantile: _quantile_sql, exp.ApproxQuantile: rename_func("APPROX_PERCENTILE"), exp.SafeDivide: no_safe_divide_sql, @@ -277,6 +292,7 @@ class Presto(Dialect): exp.StructExtract: struct_extract_sql, exp.TableFormatProperty: lambda self, e: f"TABLE_FORMAT='{e.name.upper()}'", exp.FileFormatProperty: lambda self, e: f"FORMAT='{e.name.upper()}'", + exp.TimestampTrunc: timestamptrunc_sql, exp.TimeStrToDate: timestrtotime_sql, exp.TimeStrToTime: timestrtotime_sql, exp.TimeStrToUnix: lambda self, e: f"TO_UNIXTIME(DATE_PARSE({self.sql(e, 'this')}, {Presto.time_format}))", diff --git a/sqlglot/dialects/redshift.py b/sqlglot/dialects/redshift.py index dc881b9..ebd5216 100644 --- a/sqlglot/dialects/redshift.py +++ b/sqlglot/dialects/redshift.py @@ -20,6 +20,11 @@ class Redshift(Postgres): class Parser(Postgres.Parser): FUNCTIONS = { **Postgres.Parser.FUNCTIONS, # type: ignore + "DATEADD": lambda args: exp.DateAdd( + this=seq_get(args, 2), + expression=seq_get(args, 1), + unit=seq_get(args, 0), + ), "DATEDIFF": lambda args: exp.DateDiff( this=seq_get(args, 2), expression=seq_get(args, 1), @@ -76,13 +81,16 @@ class Redshift(Postgres): TRANSFORMS = { **Postgres.Generator.TRANSFORMS, # type: ignore **transforms.ELIMINATE_DISTINCT_ON, # type: ignore + exp.DateAdd: lambda self, e: self.func( + "DATEADD", exp.var(e.text("unit") or "day"), e.expression, e.this + ), exp.DateDiff: lambda self, e: self.func( - "DATEDIFF", e.args.get("unit") or "day", e.expression, e.this + "DATEDIFF", exp.var(e.text("unit") or "day"), e.expression, e.this ), exp.DistKeyProperty: lambda self, e: f"DISTKEY({e.name})", - exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})", exp.DistStyleProperty: lambda self, e: self.naked_property(e), exp.Matches: rename_func("DECODE"), + exp.SortKeyProperty: lambda self, e: f"{'COMPOUND ' if e.args['compound'] else ''}SORTKEY({self.format_args(*e.this)})", } # Redshift uses the POW | POWER (expr1, expr2) syntax instead of expr1 ^ expr2 (postgres) diff --git a/sqlglot/dialects/snowflake.py b/sqlglot/dialects/snowflake.py index 9b159a4..799e9a6 100644 --- a/sqlglot/dialects/snowflake.py +++ b/sqlglot/dialects/snowflake.py @@ -5,11 +5,13 @@ import typing as t from sqlglot import exp, generator, parser, tokens from sqlglot.dialects.dialect import ( Dialect, + date_trunc_to_time, datestrtodate_sql, format_time_lambda, inline_array_sql, min_or_least, rename_func, + timestamptrunc_sql, timestrtotime_sql, ts_or_ds_to_date_sql, var_map_sql, @@ -176,6 +178,7 @@ class Snowflake(Dialect): "ARRAYAGG": exp.ArrayAgg.from_arg_list, "ARRAY_CONSTRUCT": exp.Array.from_arg_list, "ARRAY_TO_STRING": exp.ArrayJoin.from_arg_list, + "DATE_TRUNC": date_trunc_to_time, "DATEADD": lambda args: exp.DateAdd( this=seq_get(args, 2), expression=seq_get(args, 1), @@ -186,10 +189,6 @@ class Snowflake(Dialect): expression=seq_get(args, 1), unit=seq_get(args, 0), ), - "DATE_TRUNC": lambda args: exp.DateTrunc( - unit=exp.Literal.string(seq_get(args, 0).name), # type: ignore - this=seq_get(args, 1), - ), "DECODE": exp.Matches.from_arg_list, "DIV0": _div0_to_if, "IFF": exp.If.from_arg_list, @@ -280,6 +279,8 @@ class Snowflake(Dialect): exp.DataType: _datatype_sql, exp.If: rename_func("IFF"), exp.Map: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"), + exp.LogicalOr: rename_func("BOOLOR_AGG"), + exp.LogicalAnd: rename_func("BOOLAND_AGG"), exp.VarMap: lambda self, e: var_map_sql(self, e, "OBJECT_CONSTRUCT"), exp.PartitionedByProperty: lambda self, e: f"PARTITION BY {self.sql(e, 'this')}", exp.Matches: rename_func("DECODE"), @@ -287,6 +288,7 @@ class Snowflake(Dialect): "POSITION", e.args.get("substr"), e.this, e.args.get("position") ), exp.StrToTime: lambda self, e: f"TO_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", + exp.TimestampTrunc: timestamptrunc_sql, exp.TimeStrToTime: timestrtotime_sql, exp.TimeToUnix: lambda self, e: f"EXTRACT(epoch_second FROM {self.sql(e, 'this')})", exp.Trim: lambda self, e: self.func("TRIM", e.this, e.expression), diff --git a/sqlglot/dialects/spark.py b/sqlglot/dialects/spark.py index 05ee53f..c271f6f 100644 --- a/sqlglot/dialects/spark.py +++ b/sqlglot/dialects/spark.py @@ -157,6 +157,7 @@ class Spark(Hive): exp.VariancePop: rename_func("VAR_POP"), exp.DateFromParts: rename_func("MAKE_DATE"), exp.LogicalOr: rename_func("BOOL_OR"), + exp.LogicalAnd: rename_func("BOOL_AND"), exp.DayOfWeek: rename_func("DAYOFWEEK"), exp.DayOfMonth: rename_func("DAYOFMONTH"), exp.DayOfYear: rename_func("DAYOFYEAR"), diff --git a/sqlglot/dialects/sqlite.py b/sqlglot/dialects/sqlite.py index ed7c741..ab78b6e 100644 --- a/sqlglot/dialects/sqlite.py +++ b/sqlglot/dialects/sqlite.py @@ -1,10 +1,11 @@ from __future__ import annotations -from sqlglot import exp, generator, parser, tokens +from sqlglot import exp, generator, parser, tokens, transforms from sqlglot.dialects.dialect import ( Dialect, arrow_json_extract_scalar_sql, arrow_json_extract_sql, + count_if_to_sum, no_ilike_sql, no_tablesample_sql, no_trycast_sql, @@ -13,23 +14,6 @@ from sqlglot.dialects.dialect import ( from sqlglot.tokens import TokenType -# https://www.sqlite.org/lang_aggfunc.html#group_concat -def _group_concat_sql(self, expression): - this = expression.this - distinct = expression.find(exp.Distinct) - if distinct: - this = distinct.expressions[0] - distinct = "DISTINCT " - - if isinstance(expression.this, exp.Order): - self.unsupported("SQLite GROUP_CONCAT doesn't support ORDER BY.") - if expression.this.this and not distinct: - this = expression.this.this - - separator = expression.args.get("separator") - return f"GROUP_CONCAT({distinct or ''}{self.format_args(this, separator)})" - - def _date_add_sql(self, expression): modifier = expression.expression modifier = expression.name if modifier.is_string else self.sql(modifier) @@ -78,20 +62,32 @@ class SQLite(Dialect): TRANSFORMS = { **generator.Generator.TRANSFORMS, # type: ignore + **transforms.ELIMINATE_QUALIFY, # type: ignore + exp.CountIf: count_if_to_sum, + exp.CurrentDate: lambda *_: "CURRENT_DATE", + exp.CurrentTime: lambda *_: "CURRENT_TIME", + exp.CurrentTimestamp: lambda *_: "CURRENT_TIMESTAMP", exp.DateAdd: _date_add_sql, + exp.DateStrToDate: lambda self, e: self.sql(e, "this"), exp.ILike: no_ilike_sql, exp.JSONExtract: arrow_json_extract_sql, exp.JSONExtractScalar: arrow_json_extract_scalar_sql, exp.JSONBExtract: arrow_json_extract_sql, exp.JSONBExtractScalar: arrow_json_extract_scalar_sql, exp.Levenshtein: rename_func("EDITDIST3"), + exp.LogicalOr: rename_func("MAX"), + exp.LogicalAnd: rename_func("MIN"), exp.TableSample: no_tablesample_sql, - exp.DateStrToDate: lambda self, e: self.sql(e, "this"), exp.TimeStrToTime: lambda self, e: self.sql(e, "this"), exp.TryCast: no_trycast_sql, - exp.GroupConcat: _group_concat_sql, } + def cast_sql(self, expression: exp.Cast) -> str: + if expression.to.this == exp.DataType.Type.DATE: + return self.func("DATE", expression.this) + + return super().cast_sql(expression) + def datediff_sql(self, expression: exp.DateDiff) -> str: unit = expression.args.get("unit") unit = unit.name.upper() if unit else "DAY" @@ -119,16 +115,32 @@ class SQLite(Dialect): return f"CAST({sql} AS INTEGER)" - def fetch_sql(self, expression): + def fetch_sql(self, expression: exp.Fetch) -> str: return self.limit_sql(exp.Limit(expression=expression.args.get("count"))) - def least_sql(self, expression): + # https://www.sqlite.org/lang_aggfunc.html#group_concat + def groupconcat_sql(self, expression): + this = expression.this + distinct = expression.find(exp.Distinct) + if distinct: + this = distinct.expressions[0] + distinct = "DISTINCT " + + if isinstance(expression.this, exp.Order): + self.unsupported("SQLite GROUP_CONCAT doesn't support ORDER BY.") + if expression.this.this and not distinct: + this = expression.this.this + + separator = expression.args.get("separator") + return f"GROUP_CONCAT({distinct or ''}{self.format_args(this, separator)})" + + def least_sql(self, expression: exp.Least) -> str: if len(expression.expressions) > 1: return rename_func("MIN")(self, expression) return self.expressions(expression) - def transaction_sql(self, expression): + def transaction_sql(self, expression: exp.Transaction) -> str: this = expression.this this = f" {this}" if this else "" return f"BEGIN{this} TRANSACTION" diff --git a/sqlglot/dialects/starrocks.py b/sqlglot/dialects/starrocks.py index 01e6357..2ba1a92 100644 --- a/sqlglot/dialects/starrocks.py +++ b/sqlglot/dialects/starrocks.py @@ -3,9 +3,18 @@ from __future__ import annotations from sqlglot import exp from sqlglot.dialects.dialect import arrow_json_extract_sql, rename_func from sqlglot.dialects.mysql import MySQL +from sqlglot.helper import seq_get class StarRocks(MySQL): + class Parser(MySQL.Parser): # type: ignore + FUNCTIONS = { + **MySQL.Parser.FUNCTIONS, + "DATE_TRUNC": lambda args: exp.TimestampTrunc( + this=seq_get(args, 1), unit=seq_get(args, 0) + ), + } + class Generator(MySQL.Generator): # type: ignore TYPE_MAPPING = { **MySQL.Generator.TYPE_MAPPING, # type: ignore @@ -20,6 +29,9 @@ class StarRocks(MySQL): exp.JSONExtract: arrow_json_extract_sql, exp.DateDiff: rename_func("DATEDIFF"), exp.StrToUnix: lambda self, e: f"UNIX_TIMESTAMP({self.sql(e, 'this')}, {self.format_time(e)})", + exp.TimestampTrunc: lambda self, e: self.func( + "DATE_TRUNC", exp.Literal.string(e.text("unit")), e.this + ), exp.TimeStrToDate: rename_func("TO_DATE"), exp.UnixToStr: lambda self, e: f"FROM_UNIXTIME({self.sql(e, 'this')}, {self.format_time(e)})", exp.UnixToTime: rename_func("FROM_UNIXTIME"), diff --git a/sqlglot/dialects/tsql.py b/sqlglot/dialects/tsql.py index 371e888..7b52047 100644 --- a/sqlglot/dialects/tsql.py +++ b/sqlglot/dialects/tsql.py @@ -117,14 +117,12 @@ def _string_agg_sql(self, e): if distinct: # exp.Distinct can appear below an exp.Order or an exp.GroupConcat expression self.unsupported("T-SQL STRING_AGG doesn't support DISTINCT.") - this = distinct.expressions[0] - distinct.pop() + this = distinct.pop().expressions[0] order = "" if isinstance(e.this, exp.Order): if e.this.this: - this = e.this.this - e.this.this.pop() + this = e.this.this.pop() order = f" WITHIN GROUP ({self.sql(e.this)[1:]})" # Order has a leading space separator = e.args.get("separator") or exp.Literal.string(",") diff --git a/sqlglot/expressions.py b/sqlglot/expressions.py index 0c345b3..b9da4cc 100644 --- a/sqlglot/expressions.py +++ b/sqlglot/expressions.py @@ -301,7 +301,7 @@ class Expression(metaclass=_Expression): the specified types. Args: - expression_types (type): the expression type(s) to match. + expression_types: the expression type(s) to match. Returns: The node which matches the criteria or None if no such node was found. @@ -314,7 +314,7 @@ class Expression(metaclass=_Expression): yields those that match at least one of the specified expression types. Args: - expression_types (type): the expression type(s) to match. + expression_types: the expression type(s) to match. Returns: The generator object. @@ -328,7 +328,7 @@ class Expression(metaclass=_Expression): Returns a nearest parent matching expression_types. Args: - expression_types (type): the expression type(s) to match. + expression_types: the expression type(s) to match. Returns: The parent node. @@ -336,8 +336,7 @@ class Expression(metaclass=_Expression): ancestor = self.parent while ancestor and not isinstance(ancestor, expression_types): ancestor = ancestor.parent - # ignore type because mypy doesn't know that we're checking type in the loop - return ancestor # type: ignore[return-value] + return t.cast(E, ancestor) @property def parent_select(self): @@ -549,8 +548,12 @@ class Expression(metaclass=_Expression): def pop(self): """ Remove this expression from its AST. + + Returns: + The popped expression. """ self.replace(None) + return self def assert_is(self, type_): """ @@ -626,6 +629,7 @@ IntoType = t.Union[ t.Type[Expression], t.Collection[t.Union[str, t.Type[Expression]]], ] +ExpOrStr = t.Union[str, Expression] class Condition(Expression): @@ -809,7 +813,7 @@ class Describe(Expression): class Set(Expression): - arg_types = {"expressions": True} + arg_types = {"expressions": False} class SetItem(Expression): @@ -905,6 +909,23 @@ class Column(Condition): def output_name(self) -> str: return self.name + @property + def parts(self) -> t.List[Identifier]: + """Return the parts of a column in order catalog, db, table, name.""" + return [part for part in reversed(list(self.args.values())) if part] + + def to_dot(self) -> Dot: + """Converts the column into a dot expression.""" + parts = self.parts + parent = self.parent + + while parent: + if isinstance(parent, Dot): + parts.append(parent.expression) + parent = parent.parent + + return Dot.build(parts) + class ColumnDef(Expression): arg_types = { @@ -1033,6 +1054,113 @@ class Constraint(Expression): class Delete(Expression): arg_types = {"with": False, "this": False, "using": False, "where": False, "returning": False} + def delete( + self, + table: ExpOrStr, + dialect: DialectType = None, + copy: bool = True, + **opts, + ) -> Delete: + """ + Create a DELETE expression or replace the table on an existing DELETE expression. + + Example: + >>> delete("tbl").sql() + 'DELETE FROM tbl' + + Args: + table: the table from which to delete. + dialect: the dialect used to parse the input expression. + copy: if `False`, modify this expression instance in-place. + opts: other options to use to parse the input expressions. + + Returns: + Delete: the modified expression. + """ + return _apply_builder( + expression=table, + instance=self, + arg="this", + dialect=dialect, + into=Table, + copy=copy, + **opts, + ) + + def where( + self, + *expressions: ExpOrStr, + append: bool = True, + dialect: DialectType = None, + copy: bool = True, + **opts, + ) -> Delete: + """ + Append to or set the WHERE expressions. + + Example: + >>> delete("tbl").where("x = 'a' OR x < 'b'").sql() + "DELETE FROM tbl WHERE x = 'a' OR x < 'b'" + + Args: + *expressions: the SQL code strings to parse. + If an `Expression` instance is passed, it will be used as-is. + Multiple expressions are combined with an AND operator. + append: if `True`, AND the new expressions to any existing expression. + Otherwise, this resets the expression. + dialect: the dialect used to parse the input expressions. + copy: if `False`, modify this expression instance in-place. + opts: other options to use to parse the input expressions. + + Returns: + Delete: the modified expression. + """ + return _apply_conjunction_builder( + *expressions, + instance=self, + arg="where", + append=append, + into=Where, + dialect=dialect, + copy=copy, + **opts, + ) + + def returning( + self, + expression: ExpOrStr, + dialect: DialectType = None, + copy: bool = True, + **opts, + ) -> Delete: + """ + Set the RETURNING expression. Not supported by all dialects. + + Example: + >>> delete("tbl").returning("*", dialect="postgres").sql() + 'DELETE FROM tbl RETURNING *' + + Args: + expression: the SQL code strings to parse. + If an `Expression` instance is passed, it will be used as-is. + dialect: the dialect used to parse the input expressions. + copy: if `False`, modify this expression instance in-place. + opts: other options to use to parse the input expressions. + + Returns: + Delete: the modified expression. + """ + return _apply_builder( + expression=expression, + instance=self, + arg="returning", + prefix="RETURNING", + dialect=dialect, + copy=copy, + into=Returning, + **opts, + ) + class Drop(Expression): arg_types = { @@ -1824,7 +1952,7 @@ class Union(Subqueryable): def select( self, - *expressions: str | Expression, + *expressions: ExpOrStr, append: bool = True, dialect: DialectType = None, copy: bool = True, @@ -2170,7 +2298,7 @@ class Select(Subqueryable): def select( self, - *expressions: str | Expression, + *expressions: ExpOrStr, append: bool = True, dialect: DialectType = None, copy: bool = True, @@ -2875,6 +3003,20 @@ class Dot(Binary): def name(self) -> str: return self.expression.name + @classmethod + def build(self, expressions: t.Sequence[Expression]) -> Dot: + """Build a Dot object with a sequence of expressions.""" + if len(expressions) < 2: + raise ValueError(f"Dot requires >= 2 expressions.") + + a, b, *expressions = expressions + dot = Dot(this=a, expression=b) + + for expression in expressions: + dot = Dot(this=dot, expression=expression) + + return dot + class DPipe(Binary): pass @@ -3049,7 +3191,7 @@ class TimeUnit(Expression): def __init__(self, **args): unit = args.get("unit") - if isinstance(unit, Column): + if isinstance(unit, (Column, Literal)): args["unit"] = Var(this=unit.name) elif isinstance(unit, Week): unit.set("this", Var(this=unit.this.name)) @@ -3261,6 +3403,10 @@ class Count(AggFunc): arg_types = {"this": False} +class CountIf(AggFunc): + pass + + class CurrentDate(Func): arg_types = {"this": False} @@ -3407,6 +3553,10 @@ class Explode(Func): pass +class ExponentialTimeDecayedAvg(AggFunc): + arg_types = {"this": True, "time": False, "decay": False} + + class Floor(Func): arg_types = {"this": True, "decimals": False} @@ -3420,10 +3570,18 @@ class GroupConcat(Func): arg_types = {"this": True, "separator": False} +class GroupUniqArray(AggFunc): + arg_types = {"this": True, "size": False} + + class Hex(Func): pass +class Histogram(AggFunc): + arg_types = {"this": True, "bins": False} + + class If(Func): arg_types = {"this": True, "true": True, "false": False} @@ -3493,7 +3651,11 @@ class Log10(Func): class LogicalOr(AggFunc): - _sql_names = ["LOGICAL_OR", "BOOL_OR"] + _sql_names = ["LOGICAL_OR", "BOOL_OR", "BOOLOR_AGG"] + + +class LogicalAnd(AggFunc): + _sql_names = ["LOGICAL_AND", "BOOL_AND", "BOOLAND_AGG"] class Lower(Func): @@ -3561,6 +3723,7 @@ class Quantile(AggFunc): # https://clickhouse.com/docs/en/sql-reference/aggregate-functions/reference/quantiles/#quantiles class Quantiles(AggFunc): arg_types = {"parameters": True, "expressions": True} + is_var_len_args = True class QuantileIf(AggFunc): @@ -3830,7 +3993,7 @@ ALL_FUNCTIONS = subclasses(__name__, Func, (AggFunc, Anonymous, Func)) # Helpers def maybe_parse( - sql_or_expression: str | Expression, + sql_or_expression: ExpOrStr, *, into: t.Optional[IntoType] = None, dialect: DialectType = None, @@ -4091,7 +4254,7 @@ def except_(left, right, distinct=True, dialect=None, **opts): return Except(this=left, expression=right, distinct=distinct) -def select(*expressions: str | Expression, dialect: DialectType = None, **opts) -> Select: +def select(*expressions: ExpOrStr, dialect: DialectType = None, **opts) -> Select: """ Initializes a syntax tree from one or multiple SELECT expressions. @@ -4135,7 +4298,14 @@ def from_(*expressions, dialect=None, **opts) -> Select: return Select().from_(*expressions, dialect=dialect, **opts) -def update(table, properties, where=None, from_=None, dialect=None, **opts) -> Update: +def update( + table: str | Table, + properties: dict, + where: t.Optional[ExpOrStr] = None, + from_: t.Optional[ExpOrStr] = None, + dialect: DialectType = None, + **opts, +) -> Update: """ Creates an update statement. @@ -4144,18 +4314,18 @@ def update(table, properties, where=None, from_=None, dialect=None, **opts) -> U "UPDATE my_table SET x = 1, y = '2', z = NULL FROM baz WHERE id > 1" Args: - *properties (Dict[str, Any]): dictionary of properties to set which are + *properties: dictionary of properties to set which are auto converted to sql objects eg None -> NULL - where (str): sql conditional parsed into a WHERE statement - from_ (str): sql statement parsed into a FROM statement - dialect (str): the dialect used to parse the input expressions. + where: sql conditional parsed into a WHERE statement + from_: sql statement parsed into a FROM statement + dialect: the dialect used to parse the input expressions. **opts: other options to use to parse the input expressions. Returns: Update: the syntax tree for the UPDATE statement. """ - update = Update(this=maybe_parse(table, into=Table, dialect=dialect)) - update.set( + update_expr = Update(this=maybe_parse(table, into=Table, dialect=dialect)) + update_expr.set( "expressions", [ EQ(this=maybe_parse(k, dialect=dialect, **opts), expression=convert(v)) @@ -4163,21 +4333,27 @@ def update(table, properties, where=None, from_=None, dialect=None, **opts) -> U ], ) if from_: - update.set( + update_expr.set( "from", maybe_parse(from_, into=From, dialect=dialect, prefix="FROM", **opts), ) if isinstance(where, Condition): where = Where(this=where) if where: - update.set( + update_expr.set( "where", maybe_parse(where, into=Where, dialect=dialect, prefix="WHERE", **opts), ) - return update + return update_expr -def delete(table, where=None, dialect=None, **opts) -> Delete: +def delete( + table: ExpOrStr, + where: t.Optional[ExpOrStr] = None, + returning: t.Optional[ExpOrStr] = None, + dialect: DialectType = None, + **opts, +) -> Delete: """ Builds a delete statement. @@ -4186,19 +4362,20 @@ def delete(table, where=None, dialect=None, **opts) -> Delete: 'DELETE FROM my_table WHERE id > 1' Args: - where (str|Condition): sql conditional parsed into a WHERE statement - dialect (str): the dialect used to parse the input expressions. + where: sql conditional parsed into a WHERE statement + returning: sql conditional parsed into a RETURNING statement + dialect: the dialect used to parse the input expressions. **opts: other options to use to parse the input expressions. Returns: Delete: the syntax tree for the DELETE statement. """ - return Delete( - this=maybe_parse(table, into=Table, dialect=dialect, **opts), - where=Where(this=where) - if isinstance(where, Condition) - else maybe_parse(where, into=Where, dialect=dialect, prefix="WHERE", **opts), - ) + delete_expr = Delete().delete(table, dialect=dialect, copy=False, **opts) + if where: + delete_expr = delete_expr.where(where, dialect=dialect, copy=False, **opts) + if returning: + delete_expr = delete_expr.returning(returning, dialect=dialect, copy=False, **opts) + return delete_expr def condition(expression, dialect=None, **opts) -> Condition: @@ -4414,7 +4591,7 @@ def to_column(sql_path: str | Column, **kwargs) -> Column: def alias_( - expression: str | Expression, + expression: ExpOrStr, alias: str | Identifier, table: bool | t.Sequence[str | Identifier] = False, quoted: t.Optional[bool] = None, @@ -4516,7 +4693,7 @@ def column( ) -def cast(expression: str | Expression, to: str | DataType | DataType.Type, **opts) -> Cast: +def cast(expression: ExpOrStr, to: str | DataType | DataType.Type, **opts) -> Cast: """Cast an expression to a data type. Example: @@ -4595,7 +4772,7 @@ def values( ) -def var(name: t.Optional[str | Expression]) -> Var: +def var(name: t.Optional[ExpOrStr]) -> Var: """Build a SQL variable. Example: @@ -4612,7 +4789,7 @@ def var(name: t.Optional[str | Expression]) -> Var: The new variable node. """ if not name: - raise ValueError(f"Cannot convert empty name into var.") + raise ValueError("Cannot convert empty name into var.") if isinstance(name, Expression): name = name.name @@ -4682,7 +4859,7 @@ def convert(value) -> Expression: raise ValueError(f"Cannot convert {value}") -def replace_children(expression, fun): +def replace_children(expression, fun, *args, **kwargs): """ Replace children of an expression with the result of a lambda fun(child) -> exp. """ @@ -4694,7 +4871,7 @@ def replace_children(expression, fun): for cn in child_nodes: if isinstance(cn, Expression): - for child_node in ensure_collection(fun(cn)): + for child_node in ensure_collection(fun(cn, *args, **kwargs)): new_child_nodes.append(child_node) child_node.parent = expression child_node.arg_key = k diff --git a/sqlglot/generator.py b/sqlglot/generator.py index 5936649..a6f4772 100644 --- a/sqlglot/generator.py +++ b/sqlglot/generator.py @@ -5,7 +5,7 @@ import typing as t from sqlglot import exp from sqlglot.errors import ErrorLevel, UnsupportedError, concat_messages -from sqlglot.helper import apply_index_offset, csv, seq_get +from sqlglot.helper import apply_index_offset, csv, seq_get, should_identify from sqlglot.time import format_time from sqlglot.tokens import TokenType @@ -25,8 +25,7 @@ class Generator: quote_end (str): specifies which ending character to use to delimit quotes. Default: '. identifier_start (str): specifies which starting character to use to delimit identifiers. Default: ". identifier_end (str): specifies which ending character to use to delimit identifiers. Default: ". - identify (bool): if set to True all identifiers will be delimited by the corresponding - character. + identify (bool | str): 'always': always quote, 'safe': quote identifiers if they don't contain an upcase, True defaults to always. normalize (bool): if set to True all identifiers will lower cased string_escape (str): specifies a string escape character. Default: '. identifier_escape (str): specifies an identifier escape character. Default: ". @@ -57,10 +56,10 @@ class Generator: TRANSFORMS = { exp.DateAdd: lambda self, e: self.func( - "DATE_ADD", e.this, e.expression, e.args.get("unit") + "DATE_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) ), exp.TsOrDsAdd: lambda self, e: self.func( - "TS_OR_DS_ADD", e.this, e.expression, e.args.get("unit") + "TS_OR_DS_ADD", e.this, e.expression, exp.Literal.string(e.text("unit")) ), exp.VarMap: lambda self, e: self.func("MAP", e.args["keys"], e.args["values"]), exp.CharacterSetProperty: lambda self, e: f"{'DEFAULT ' if e.args.get('default') else ''}CHARACTER SET={self.sql(e, 'this')}", @@ -736,7 +735,7 @@ class Generator: text = expression.name text = text.lower() if self.normalize else text text = text.replace(self.identifier_end, self._escaped_identifier_end) - if expression.args.get("quoted") or self.identify: + if expression.args.get("quoted") or should_identify(text, self.identify): text = f"{self.identifier_start}{text}{self.identifier_end}" return text @@ -1176,6 +1175,22 @@ class Generator: this = self.sql(expression, "this") return f"{this}{self.seg('OFFSET')} {self.sql(expression, 'expression')}" + def setitem_sql(self, expression: exp.SetItem) -> str: + kind = self.sql(expression, "kind") + kind = f"{kind} " if kind else "" + this = self.sql(expression, "this") + expressions = self.expressions(expression) + collate = self.sql(expression, "collate") + collate = f" COLLATE {collate}" if collate else "" + global_ = "GLOBAL " if expression.args.get("global") else "" + return f"{global_}{kind}{this}{expressions}{collate}" + + def set_sql(self, expression: exp.Set) -> str: + expressions = ( + f" {self.expressions(expression, flat=True)}" if expression.expressions else "" + ) + return f"SET{expressions}" + def lock_sql(self, expression: exp.Lock) -> str: if self.LOCKING_READS_SUPPORTED: lock_type = "UPDATE" if expression.args["update"] else "SHARE" @@ -1359,8 +1374,8 @@ class Generator: sql = self.query_modifiers( expression, self.wrap(expression), - self.expressions(expression, key="pivots", sep=" "), alias, + self.expressions(expression, key="pivots", sep=" "), ) return self.prepend_ctes(expression, sql) @@ -1668,7 +1683,7 @@ class Generator: expression_sql = self.sql(expression, "expression") return f"COMMENT{exists_sql}ON {kind} {this} IS {expression_sql}" - def transaction_sql(self, *_) -> str: + def transaction_sql(self, expression: exp.Transaction) -> str: return "BEGIN" def commit_sql(self, expression: exp.Commit) -> str: diff --git a/sqlglot/helper.py b/sqlglot/helper.py index 68e0383..6eff974 100644 --- a/sqlglot/helper.py +++ b/sqlglot/helper.py @@ -403,3 +403,20 @@ def first(it: t.Iterable[T]) -> T: Useful for sets. """ return next(i for i in it) + + +def should_identify(text: str, identify: str | bool) -> bool: + """Checks if text should be identified given an identify option. + + Args: + text: the text to check. + identify: "always" | True - always returns true, "safe" - true if no upper case + + Returns: + Whether or not a string should be identified. + """ + if identify is True or identify == "always": + return True + if identify == "safe": + return not any(char.isupper() for char in text) + return False diff --git a/sqlglot/optimizer/canonicalize.py b/sqlglot/optimizer/canonicalize.py index fc37a54..c5c780d 100644 --- a/sqlglot/optimizer/canonicalize.py +++ b/sqlglot/optimizer/canonicalize.py @@ -1,9 +1,12 @@ +from __future__ import annotations + import itertools from sqlglot import exp +from sqlglot.helper import should_identify -def canonicalize(expression: exp.Expression) -> exp.Expression: +def canonicalize(expression: exp.Expression, identify: str = "safe") -> exp.Expression: """Converts a sql expression into a standard form. This method relies on annotate_types because many of the @@ -11,15 +14,18 @@ def canonicalize(expression: exp.Expression) -> exp.Expression: Args: expression: The expression to canonicalize. + identify: Whether or not to force identify identifier. """ - exp.replace_children(expression, canonicalize) + exp.replace_children(expression, canonicalize, identify=identify) expression = add_text_to_concat(expression) expression = coerce_type(expression) expression = remove_redundant_casts(expression) + expression = ensure_bool_predicates(expression) if isinstance(expression, exp.Identifier): - expression.set("quoted", True) + if should_identify(expression.this, identify): + expression.set("quoted", True) return expression @@ -52,6 +58,17 @@ def remove_redundant_casts(expression: exp.Expression) -> exp.Expression: return expression +def ensure_bool_predicates(expression: exp.Expression) -> exp.Expression: + if isinstance(expression, exp.Connector): + _replace_int_predicate(expression.left) + _replace_int_predicate(expression.right) + + elif isinstance(expression, (exp.Where, exp.Having)): + _replace_int_predicate(expression.this) + + return expression + + def _coerce_date(a: exp.Expression, b: exp.Expression) -> None: for a, b in itertools.permutations([a, b]): if ( @@ -68,3 +85,8 @@ def _replace_cast(node: exp.Expression, to: str) -> None: cast = exp.Cast(this=node.copy(), to=data_type) cast.type = data_type node.replace(cast) + + +def _replace_int_predicate(expression: exp.Expression) -> None: + if expression.type and expression.type.this in exp.DataType.INTEGER_TYPES: + expression.replace(exp.NEQ(this=expression.copy(), expression=exp.Literal.number(0))) diff --git a/sqlglot/optimizer/pushdown_projections.py b/sqlglot/optimizer/pushdown_projections.py index 07a1b70..2e51117 100644 --- a/sqlglot/optimizer/pushdown_projections.py +++ b/sqlglot/optimizer/pushdown_projections.py @@ -1,7 +1,6 @@ from collections import defaultdict from sqlglot import alias, exp -from sqlglot.helper import flatten from sqlglot.optimizer.qualify_columns import Resolver from sqlglot.optimizer.scope import Scope, traverse_scope from sqlglot.schema import ensure_schema @@ -86,14 +85,15 @@ def _remove_unused_selections(scope, parent_selections, schema): else: order_refs = set() - new_selections = defaultdict(list) + new_selections = [] removed = False star = False + for selection in scope.selects: name = selection.alias_or_name if SELECT_ALL in parent_selections or name in parent_selections or name in order_refs: - new_selections[name].append(selection) + new_selections.append(selection) else: if selection.is_star: star = True @@ -101,18 +101,17 @@ def _remove_unused_selections(scope, parent_selections, schema): if star: resolver = Resolver(scope, schema) + names = {s.alias_or_name for s in new_selections} for name in sorted(parent_selections): - if name not in new_selections: - new_selections[name].append( - alias(exp.column(name, table=resolver.get_table(name)), name) - ) + if name not in names: + new_selections.append(alias(exp.column(name, table=resolver.get_table(name)), name)) # If there are no remaining selections, just select a single constant if not new_selections: - new_selections[""].append(DEFAULT_SELECTION()) + new_selections.append(DEFAULT_SELECTION()) - scope.expression.select(*flatten(new_selections.values()), append=False, copy=False) + scope.expression.select(*new_selections, append=False, copy=False) if removed: scope.clear_cache() diff --git a/sqlglot/optimizer/qualify_columns.py b/sqlglot/optimizer/qualify_columns.py index e793e31..66b3170 100644 --- a/sqlglot/optimizer/qualify_columns.py +++ b/sqlglot/optimizer/qualify_columns.py @@ -37,6 +37,7 @@ def qualify_columns(expression, schema): _qualify_outputs(scope) _expand_group_by(scope, resolver) _expand_order_by(scope) + return expression @@ -213,6 +214,21 @@ def _qualify_columns(scope, resolver): # column_table can be a '' because bigquery unnest has no table alias if column_table: column.set("table", column_table) + elif column_table not in scope.sources: + # structs are used like tables (e.g. "struct"."field"), so they need to be qualified + # separately and represented as dot(dot(...(<table>.<column>, field1), field2, ...)) + + root, *parts = column.parts + + if root.name in scope.sources: + # struct is already qualified, but we still need to change the AST representation + column_table = root + root, *parts = parts + else: + column_table = resolver.get_table(root.name) + + if column_table: + column.replace(exp.Dot.build([exp.column(root, table=column_table), *parts])) columns_missing_from_scope = [] # Determine whether each reference in the order by clause is to a column or an alias. @@ -373,10 +389,14 @@ class Resolver: if isinstance(node, exp.Subqueryable): while node and node.alias != table_name: node = node.parent + node_alias = node.args.get("alias") if node_alias: return node_alias.this - return exp.to_identifier(table_name) + + return exp.to_identifier( + table_name, quoted=node.this.quoted if isinstance(node, exp.Table) else None + ) @property def all_columns(self): diff --git a/sqlglot/optimizer/qualify_tables.py b/sqlglot/optimizer/qualify_tables.py index 6e50182..93e1179 100644 --- a/sqlglot/optimizer/qualify_tables.py +++ b/sqlglot/optimizer/qualify_tables.py @@ -34,11 +34,9 @@ def qualify_tables(expression, db=None, catalog=None, schema=None): derived_table.set("alias", exp.TableAlias(this=exp.to_identifier(alias_))) scope.rename_source(None, alias_) - for source in scope.sources.values(): + for name, source in scope.sources.items(): if isinstance(source, exp.Table): - identifier = isinstance(source.this, exp.Identifier) - - if identifier: + if isinstance(source.this, exp.Identifier): if not source.args.get("db"): source.set("db", exp.to_identifier(db)) if not source.args.get("catalog"): @@ -48,7 +46,7 @@ def qualify_tables(expression, db=None, catalog=None, schema=None): source = source.replace( alias( source.copy(), - source.this if identifier else next_name(), + name if name else next_name(), table=True, ) ) diff --git a/sqlglot/optimizer/scope.py b/sqlglot/optimizer/scope.py index 335ff3e..9c0768c 100644 --- a/sqlglot/optimizer/scope.py +++ b/sqlglot/optimizer/scope.py @@ -4,6 +4,7 @@ from enum import Enum, auto from sqlglot import exp from sqlglot.errors import OptimizeError +from sqlglot.helper import find_new_name class ScopeType(Enum): @@ -293,6 +294,8 @@ class Scope: result = {} for name, node in referenced_names: + if name in result: + raise OptimizeError(f"Alias already used: {name}") if name in self.sources: result[name] = (node, self.sources[name]) @@ -594,6 +597,8 @@ def _traverse_tables(scope): if table_name in scope.sources: # This is a reference to a parent source (e.g. a CTE), not an actual table. sources[source_name] = scope.sources[table_name] + elif source_name in sources: + sources[find_new_name(sources, table_name)] = expression else: sources[source_name] = expression continue diff --git a/sqlglot/parser.py b/sqlglot/parser.py index 90fdade..a36251e 100644 --- a/sqlglot/parser.py +++ b/sqlglot/parser.py @@ -96,6 +96,7 @@ class Parser(metaclass=_Parser): NO_PAREN_FUNCTIONS = { TokenType.CURRENT_DATE: exp.CurrentDate, TokenType.CURRENT_DATETIME: exp.CurrentDate, + TokenType.CURRENT_TIME: exp.CurrentTime, TokenType.CURRENT_TIMESTAMP: exp.CurrentTimestamp, } @@ -198,7 +199,6 @@ class Parser(metaclass=_Parser): TokenType.COMMIT, TokenType.COMPOUND, TokenType.CONSTRAINT, - TokenType.CURRENT_TIME, TokenType.DEFAULT, TokenType.DELETE, TokenType.DESCRIBE, @@ -370,8 +370,9 @@ class Parser(metaclass=_Parser): LAMBDAS = { TokenType.ARROW: lambda self, expressions: self.expression( exp.Lambda, - this=self._parse_conjunction().transform( - self._replace_lambda, {node.name for node in expressions} + this=self._replace_lambda( + self._parse_conjunction(), + {node.name for node in expressions}, ), expressions=expressions, ), @@ -441,6 +442,7 @@ class Parser(metaclass=_Parser): exp.With: lambda self: self._parse_with(), exp.Window: lambda self: self._parse_named_window(), exp.Qualify: lambda self: self._parse_qualify(), + exp.Returning: lambda self: self._parse_returning(), "JOIN_TYPE": lambda self: self._parse_join_side_and_kind(), } @@ -460,6 +462,7 @@ class Parser(metaclass=_Parser): TokenType.LOAD_DATA: lambda self: self._parse_load_data(), TokenType.MERGE: lambda self: self._parse_merge(), TokenType.ROLLBACK: lambda self: self._parse_commit_or_rollback(), + TokenType.SET: lambda self: self._parse_set(), TokenType.UNCACHE: lambda self: self._parse_uncache(), TokenType.UPDATE: lambda self: self._parse_update(), TokenType.USE: lambda self: self.expression( @@ -656,15 +659,15 @@ class Parser(metaclass=_Parser): } FUNCTION_PARSERS: t.Dict[str, t.Callable] = { + "CAST": lambda self: self._parse_cast(self.STRICT_CAST), "CONVERT": lambda self: self._parse_convert(self.STRICT_CAST), - "TRY_CONVERT": lambda self: self._parse_convert(False), "EXTRACT": lambda self: self._parse_extract(), "POSITION": lambda self: self._parse_position(), + "STRING_AGG": lambda self: self._parse_string_agg(), "SUBSTRING": lambda self: self._parse_substring(), "TRIM": lambda self: self._parse_trim(), - "CAST": lambda self: self._parse_cast(self.STRICT_CAST), "TRY_CAST": lambda self: self._parse_cast(False), - "STRING_AGG": lambda self: self._parse_string_agg(), + "TRY_CONVERT": lambda self: self._parse_convert(False), } QUERY_MODIFIER_PARSERS = { @@ -684,13 +687,28 @@ class Parser(metaclass=_Parser): "sample": lambda self: self._parse_table_sample(as_modifier=True), } + SET_PARSERS = { + "GLOBAL": lambda self: self._parse_set_item_assignment("GLOBAL"), + "LOCAL": lambda self: self._parse_set_item_assignment("LOCAL"), + "SESSION": lambda self: self._parse_set_item_assignment("SESSION"), + "TRANSACTION": lambda self: self._parse_set_transaction(), + } + SHOW_PARSERS: t.Dict[str, t.Callable] = {} - SET_PARSERS: t.Dict[str, t.Callable] = {} MODIFIABLES = (exp.Subquery, exp.Subqueryable, exp.Table) TRANSACTION_KIND = {"DEFERRED", "IMMEDIATE", "EXCLUSIVE"} + TRANSACTION_CHARACTERISTICS = { + "ISOLATION LEVEL REPEATABLE READ", + "ISOLATION LEVEL READ COMMITTED", + "ISOLATION LEVEL READ UNCOMMITTED", + "ISOLATION LEVEL SERIALIZABLE", + "READ WRITE", + "READ ONLY", + } + INSERT_ALTERNATIVES = {"ABORT", "FAIL", "IGNORE", "REPLACE", "ROLLBACK"} WINDOW_ALIAS_TOKENS = ID_VAR_TOKENS - {TokenType.ROWS} @@ -1775,11 +1793,12 @@ class Parser(metaclass=_Parser): self, alias_tokens: t.Optional[t.Collection[TokenType]] = None ) -> t.Optional[exp.Expression]: any_token = self._match(TokenType.ALIAS) - alias = self._parse_id_var( - any_token=any_token, tokens=alias_tokens or self.TABLE_ALIAS_TOKENS + alias = ( + self._parse_id_var(any_token=any_token, tokens=alias_tokens or self.TABLE_ALIAS_TOKENS) + or self._parse_string_as_identifier() ) - index = self._index + index = self._index if self._match(TokenType.L_PAREN): columns = self._parse_csv(self._parse_function_parameter) self._match_r_paren() if columns else self._retreat(index) @@ -2046,7 +2065,12 @@ class Parser(metaclass=_Parser): def _parse_table_parts(self, schema: bool = False) -> exp.Expression: catalog = None db = None - table = (not schema and self._parse_function()) or self._parse_id_var(any_token=False) + + table = ( + (not schema and self._parse_function()) + or self._parse_id_var(any_token=False) + or self._parse_string_as_identifier() + ) while self._match(TokenType.DOT): if catalog: @@ -2085,6 +2109,8 @@ class Parser(metaclass=_Parser): subquery = self._parse_select(table=True) if subquery: + if not subquery.args.get("pivots"): + subquery.set("pivots", self._parse_pivots()) return subquery this = self._parse_table_parts(schema=schema) @@ -3370,9 +3396,9 @@ class Parser(metaclass=_Parser): def _parse_window( self, this: t.Optional[exp.Expression], alias: bool = False ) -> t.Optional[exp.Expression]: - if self._match(TokenType.FILTER): - where = self._parse_wrapped(self._parse_where) - this = self.expression(exp.Filter, this=this, expression=where) + if self._match_pair(TokenType.FILTER, TokenType.L_PAREN): + this = self.expression(exp.Filter, this=this, expression=self._parse_where()) + self._match_r_paren() # T-SQL allows the OVER (...) syntax after WITHIN GROUP. # https://learn.microsoft.com/en-us/sql/t-sql/functions/percentile-disc-transact-sql?view=sql-server-ver16 @@ -3504,6 +3530,9 @@ class Parser(metaclass=_Parser): return self.PRIMARY_PARSERS[TokenType.STRING](self, self._prev) return self._parse_placeholder() + def _parse_string_as_identifier(self) -> t.Optional[exp.Expression]: + return exp.to_identifier(self._match(TokenType.STRING) and self._prev.text, quoted=True) + def _parse_number(self) -> t.Optional[exp.Expression]: if self._match(TokenType.NUMBER): return self.PRIMARY_PARSERS[TokenType.NUMBER](self, self._prev) @@ -3778,23 +3807,6 @@ class Parser(metaclass=_Parser): ) return self._parse_as_command(start) - def _parse_show(self) -> t.Optional[exp.Expression]: - parser = self._find_parser(self.SHOW_PARSERS, self._show_trie) # type: ignore - if parser: - return parser(self) - self._advance() - return self.expression(exp.Show, this=self._prev.text.upper()) - - def _default_parse_set_item(self) -> exp.Expression: - return self.expression( - exp.SetItem, - this=self._parse_statement(), - ) - - def _parse_set_item(self) -> t.Optional[exp.Expression]: - parser = self._find_parser(self.SET_PARSERS, self._set_trie) # type: ignore - return parser(self) if parser else self._default_parse_set_item() - def _parse_merge(self) -> exp.Expression: self._match(TokenType.INTO) target = self._parse_table() @@ -3861,8 +3873,71 @@ class Parser(metaclass=_Parser): expressions=whens, ) + def _parse_show(self) -> t.Optional[exp.Expression]: + parser = self._find_parser(self.SHOW_PARSERS, self._show_trie) # type: ignore + if parser: + return parser(self) + self._advance() + return self.expression(exp.Show, this=self._prev.text.upper()) + + def _parse_set_item_assignment( + self, kind: t.Optional[str] = None + ) -> t.Optional[exp.Expression]: + index = self._index + + if kind in {"GLOBAL", "SESSION"} and self._match_text_seq("TRANSACTION"): + return self._parse_set_transaction(global_=kind == "GLOBAL") + + left = self._parse_primary() or self._parse_id_var() + + if not self._match_texts(("=", "TO")): + self._retreat(index) + return None + + right = self._parse_statement() or self._parse_id_var() + this = self.expression( + exp.EQ, + this=left, + expression=right, + ) + + return self.expression( + exp.SetItem, + this=this, + kind=kind, + ) + + def _parse_set_transaction(self, global_: bool = False) -> exp.Expression: + self._match_text_seq("TRANSACTION") + characteristics = self._parse_csv( + lambda: self._parse_var_from_options(self.TRANSACTION_CHARACTERISTICS) + ) + return self.expression( + exp.SetItem, + expressions=characteristics, + kind="TRANSACTION", + **{"global": global_}, # type: ignore + ) + + def _parse_set_item(self) -> t.Optional[exp.Expression]: + parser = self._find_parser(self.SET_PARSERS, self._set_trie) # type: ignore + return parser(self) if parser else self._parse_set_item_assignment(kind=None) + def _parse_set(self) -> exp.Expression: - return self.expression(exp.Set, expressions=self._parse_csv(self._parse_set_item)) + index = self._index + set_ = self.expression(exp.Set, expressions=self._parse_csv(self._parse_set_item)) + + if self._curr: + self._retreat(index) + return self._parse_as_command(self._prev) + + return set_ + + def _parse_var_from_options(self, options: t.Collection[str]) -> t.Optional[exp.Expression]: + for option in options: + if self._match_text_seq(*option.split(" ")): + return exp.Var(this=option) + return None def _parse_as_command(self, start: Token) -> exp.Command: while self._curr: @@ -3874,6 +3949,9 @@ class Parser(metaclass=_Parser): def _find_parser( self, parsers: t.Dict[str, t.Callable], trie: t.Dict ) -> t.Optional[t.Callable]: + if not self._curr: + return None + index = self._index this = [] while True: @@ -3973,7 +4051,16 @@ class Parser(metaclass=_Parser): return this def _replace_lambda(self, node, lambda_variables): - if isinstance(node, exp.Column): - if node.name in lambda_variables: - return node.this + for column in node.find_all(exp.Column): + if column.parts[0].name in lambda_variables: + dot_or_id = column.to_dot() if column.table else column.this + parent = column.parent + + while isinstance(parent, exp.Dot): + if not isinstance(parent.parent, exp.Dot): + parent.replace(dot_or_id) + break + parent = parent.parent + else: + column.replace(dot_or_id) return node diff --git a/sqlglot/tokens.py b/sqlglot/tokens.py index 053bbdd..eb3c08f 100644 --- a/sqlglot/tokens.py +++ b/sqlglot/tokens.py @@ -502,6 +502,7 @@ class Tokenizer(metaclass=_Tokenizer): "CUBE": TokenType.CUBE, "CURRENT_DATE": TokenType.CURRENT_DATE, "CURRENT ROW": TokenType.CURRENT_ROW, + "CURRENT_TIME": TokenType.CURRENT_TIME, "CURRENT_TIMESTAMP": TokenType.CURRENT_TIMESTAMP, "DATABASE": TokenType.DATABASE, "DEFAULT": TokenType.DEFAULT, @@ -725,7 +726,6 @@ class Tokenizer(metaclass=_Tokenizer): TokenType.COMMAND, TokenType.EXECUTE, TokenType.FETCH, - TokenType.SET, TokenType.SHOW, } @@ -851,8 +851,10 @@ class Tokenizer(metaclass=_Tokenizer): # If we have either a semicolon or a begin token before the command's token, we'll parse # whatever follows the command's token as a string - if token_type in self.COMMANDS and ( - len(self.tokens) == 1 or self.tokens[-2].token_type in self.COMMAND_PREFIX_TOKENS + if ( + token_type in self.COMMANDS + and self._peek != ";" + and (len(self.tokens) == 1 or self.tokens[-2].token_type in self.COMMAND_PREFIX_TOKENS) ): start = self._current tokens = len(self.tokens) diff --git a/sqlglot/transforms.py b/sqlglot/transforms.py index aa7d240..2eafb0b 100644 --- a/sqlglot/transforms.py +++ b/sqlglot/transforms.py @@ -2,13 +2,12 @@ from __future__ import annotations import typing as t +from sqlglot import expressions as exp from sqlglot.helper import find_new_name if t.TYPE_CHECKING: from sqlglot.generator import Generator -from sqlglot import expressions as exp - def unalias_group(expression: exp.Expression) -> exp.Expression: """ @@ -61,8 +60,7 @@ def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression: and expression.args["distinct"].args.get("on") and isinstance(expression.args["distinct"].args["on"], exp.Tuple) ): - distinct_cols = expression.args["distinct"].args["on"].expressions - expression.args["distinct"].pop() + distinct_cols = expression.args["distinct"].pop().args["on"].expressions outer_selects = expression.selects row_number = find_new_name(expression.named_selects, "_row_number") window = exp.Window( @@ -71,14 +69,49 @@ def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression: ) order = expression.args.get("order") if order: - window.set("order", order.copy()) - order.pop() + window.set("order", order.pop().copy()) window = exp.alias_(window, row_number) expression.select(window, copy=False) return exp.select(*outer_selects).from_(expression.subquery()).where(f'"{row_number}" = 1') return expression +def eliminate_qualify(expression: exp.Expression) -> exp.Expression: + """ + Convert SELECT statements that contain the QUALIFY clause into subqueries, filtered equivalently. + + The idea behind this transformation can be seen in Snowflake's documentation for QUALIFY: + https://docs.snowflake.com/en/sql-reference/constructs/qualify + + Some dialects don't support window functions in the WHERE clause, so we need to include them as + projections in the subquery, in order to refer to them in the outer filter using aliases. Also, + if a column is referenced in the QUALIFY clause but is not selected, we need to include it too, + otherwise we won't be able to refer to it in the outer query's WHERE clause. + """ + if isinstance(expression, exp.Select) and expression.args.get("qualify"): + taken = set(expression.named_selects) + for select in expression.selects: + if not select.alias_or_name: + alias = find_new_name(taken, "_c") + select.replace(exp.alias_(select.copy(), alias)) + taken.add(alias) + + outer_selects = exp.select(*[select.alias_or_name for select in expression.selects]) + qualify_filters = expression.args["qualify"].pop().this + + for expr in qualify_filters.find_all((exp.Window, exp.Column)): + if isinstance(expr, exp.Window): + alias = find_new_name(expression.named_selects, "_w") + expression.select(exp.alias_(expr.copy(), alias), copy=False) + expr.replace(exp.column(alias)) + elif expr.name not in expression.named_selects: + expression.select(expr.copy(), copy=False) + + return outer_selects.from_(expression.subquery(alias="_t")).where(qualify_filters) + + return expression + + def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expression: """ Some dialects only allow the precision for parameterized types to be defined in the DDL and not in other expressions. @@ -139,6 +172,7 @@ def delegate(attr: str) -> t.Callable: UNALIAS_GROUP = {exp.Group: preprocess([unalias_group], delegate("group_sql"))} ELIMINATE_DISTINCT_ON = {exp.Select: preprocess([eliminate_distinct_on], delegate("select_sql"))} +ELIMINATE_QUALIFY = {exp.Select: preprocess([eliminate_qualify], delegate("select_sql"))} REMOVE_PRECISION_PARAMETERIZED_TYPES = { exp.Cast: preprocess([remove_precision_parameterized_types], delegate("cast_sql")) } diff --git a/tests/dialects/test_bigquery.py b/tests/dialects/test_bigquery.py index 22387da..e731b50 100644 --- a/tests/dialects/test_bigquery.py +++ b/tests/dialects/test_bigquery.py @@ -8,6 +8,9 @@ class TestBigQuery(Validator): def test_bigquery(self): self.validate_identity("SELECT STRUCT<ARRAY<STRING>>(['2023-01-17'])") self.validate_identity("SELECT * FROM q UNPIVOT(values FOR quarter IN (b, c))") + self.validate_identity( + "SELECT * FROM (SELECT * FROM `t`) AS a UNPIVOT((c) FOR c_name IN (v1, v2))" + ) self.validate_all("LEAST(x, y)", read={"sqlite": "MIN(x, y)"}) self.validate_all( @@ -280,7 +283,7 @@ class TestBigQuery(Validator): "duckdb": "CURRENT_DATE + INTERVAL 1 DAY", "mysql": "DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)", "postgres": "CURRENT_DATE + INTERVAL '1' DAY", - "presto": "DATE_ADD(DAY, 1, CURRENT_DATE)", + "presto": "DATE_ADD('DAY', 1, CURRENT_DATE)", "hive": "DATE_ADD(CURRENT_DATE, 1)", "spark": "DATE_ADD(CURRENT_DATE, 1)", }, diff --git a/tests/dialects/test_clickhouse.py b/tests/dialects/test_clickhouse.py index 905e1f4..d206bb1 100644 --- a/tests/dialects/test_clickhouse.py +++ b/tests/dialects/test_clickhouse.py @@ -16,6 +16,10 @@ class TestClickhouse(Validator): self.validate_identity("SELECT * FROM foo ANY JOIN bla") self.validate_identity("SELECT quantile(0.5)(a)") self.validate_identity("SELECT quantiles(0.5)(a) AS x FROM t") + self.validate_identity("SELECT quantiles(0.1, 0.2, 0.3)(a)") + self.validate_identity("SELECT histogram(5)(a)") + self.validate_identity("SELECT groupUniqArray(2)(a)") + self.validate_identity("SELECT exponentialTimeDecayedAvg(60)(a, b)") self.validate_identity("SELECT * FROM foo WHERE x GLOBAL IN (SELECT * FROM bar)") self.validate_identity("position(haystack, needle)") self.validate_identity("position(haystack, needle, position)") diff --git a/tests/dialects/test_dialect.py b/tests/dialects/test_dialect.py index 21f6be6..6214c43 100644 --- a/tests/dialects/test_dialect.py +++ b/tests/dialects/test_dialect.py @@ -519,7 +519,7 @@ class TestDialect(Validator): "duckdb": "x + INTERVAL 1 day", "hive": "DATE_ADD(x, 1)", "mysql": "DATE_ADD(x, INTERVAL 1 DAY)", - "postgres": "x + INTERVAL '1' 'day'", + "postgres": "x + INTERVAL '1' day", "presto": "DATE_ADD('day', 1, x)", "snowflake": "DATEADD(day, 1, x)", "spark": "DATE_ADD(x, 1)", @@ -543,12 +543,49 @@ class TestDialect(Validator): ) self.validate_all( "DATE_TRUNC('day', x)", + read={ + "bigquery": "DATE_TRUNC(x, day)", + "duckdb": "DATE_TRUNC('day', x)", + "spark": "TRUNC(x, 'day')", + }, write={ + "bigquery": "DATE_TRUNC(x, day)", + "duckdb": "DATE_TRUNC('day', x)", "mysql": "DATE(x)", + "presto": "DATE_TRUNC('day', x)", + "postgres": "DATE_TRUNC('day', x)", "snowflake": "DATE_TRUNC('day', x)", + "starrocks": "DATE_TRUNC('day', x)", + "spark": "TRUNC(x, 'day')", + }, + ) + self.validate_all( + "TIMESTAMP_TRUNC(x, day)", + read={ + "bigquery": "TIMESTAMP_TRUNC(x, day)", + "presto": "DATE_TRUNC('day', x)", + "postgres": "DATE_TRUNC('day', x)", + "snowflake": "DATE_TRUNC('day', x)", + "starrocks": "DATE_TRUNC('day', x)", + "spark": "DATE_TRUNC('day', x)", + }, + ) + self.validate_all( + "DATE_TRUNC('day', CAST(x AS DATE))", + read={ + "presto": "DATE_TRUNC('day', x::DATE)", + "snowflake": "DATE_TRUNC('day', x::DATE)", }, ) self.validate_all( + "TIMESTAMP_TRUNC(CAST(x AS DATE), day)", + read={ + "postgres": "DATE_TRUNC('day', x::DATE)", + "starrocks": "DATE_TRUNC('day', x::DATE)", + }, + ) + + self.validate_all( "DATE_TRUNC('week', x)", write={ "mysql": "STR_TO_DATE(CONCAT(YEAR(x), ' ', WEEK(x, 1), ' 1'), '%Y %u %w')", @@ -582,8 +619,6 @@ class TestDialect(Validator): "DATE_TRUNC('year', x)", read={ "bigquery": "DATE_TRUNC(x, year)", - "snowflake": "DATE_TRUNC(year, x)", - "starrocks": "DATE_TRUNC('year', x)", "spark": "TRUNC(x, 'year')", }, write={ @@ -599,7 +634,10 @@ class TestDialect(Validator): "TIMESTAMP_TRUNC(x, year)", read={ "bigquery": "TIMESTAMP_TRUNC(x, year)", + "postgres": "DATE_TRUNC(year, x)", "spark": "DATE_TRUNC('year', x)", + "snowflake": "DATE_TRUNC(year, x)", + "starrocks": "DATE_TRUNC('year', x)", }, write={ "bigquery": "TIMESTAMP_TRUNC(x, year)", @@ -752,7 +790,6 @@ class TestDialect(Validator): "trino": "REDUCE(x, 0, (acc, x) -> acc + x, acc -> acc)", "duckdb": "REDUCE(x, 0, (acc, x) -> acc + x, acc -> acc)", "hive": "REDUCE(x, 0, (acc, x) -> acc + x, acc -> acc)", - "presto": "REDUCE(x, 0, (acc, x) -> acc + x, acc -> acc)", "spark": "AGGREGATE(x, 0, (acc, x) -> acc + x, acc -> acc)", "presto": "REDUCE(x, 0, (acc, x) -> acc + x, acc -> acc)", }, @@ -1455,3 +1492,36 @@ SELECT "postgres": "SUBSTRING('123456' FROM 2 FOR 3)", }, ) + + def test_count_if(self): + self.validate_identity("COUNT_IF(DISTINCT cond)") + + self.validate_all( + "SELECT COUNT_IF(cond) FILTER", write={"": "SELECT COUNT_IF(cond) AS FILTER"} + ) + self.validate_all( + "SELECT COUNT_IF(col % 2 = 0) FROM foo", + write={ + "": "SELECT COUNT_IF(col % 2 = 0) FROM foo", + "databricks": "SELECT COUNT_IF(col % 2 = 0) FROM foo", + "presto": "SELECT COUNT_IF(col % 2 = 0) FROM foo", + "snowflake": "SELECT COUNT_IF(col % 2 = 0) FROM foo", + "sqlite": "SELECT SUM(CASE WHEN col % 2 = 0 THEN 1 ELSE 0 END) FROM foo", + "tsql": "SELECT COUNT_IF(col % 2 = 0) FROM foo", + }, + ) + self.validate_all( + "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + read={ + "": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + "databricks": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + "tsql": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + }, + write={ + "": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + "databricks": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + "presto": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + "sqlite": "SELECT SUM(CASE WHEN col % 2 = 0 THEN 1 ELSE 0 END) FILTER(WHERE col < 1000) FROM foo", + "tsql": "SELECT COUNT_IF(col % 2 = 0) FILTER(WHERE col < 1000) FROM foo", + }, + ) diff --git a/tests/dialects/test_drill.py b/tests/dialects/test_drill.py index e41bd34..f035176 100644 --- a/tests/dialects/test_drill.py +++ b/tests/dialects/test_drill.py @@ -4,6 +4,12 @@ from tests.dialects.test_dialect import Validator class TestDrill(Validator): dialect = "drill" + def test_drill(self): + self.validate_all( + "DATE_FORMAT(a, 'yyyy')", + write={"drill": "TO_CHAR(a, 'yyyy')"}, + ) + def test_string_literals(self): self.validate_all( "SELECT '2021-01-01' + INTERVAL 1 MONTH", diff --git a/tests/dialects/test_duckdb.py b/tests/dialects/test_duckdb.py index c314163..1cabade 100644 --- a/tests/dialects/test_duckdb.py +++ b/tests/dialects/test_duckdb.py @@ -125,6 +125,11 @@ class TestDuckDB(Validator): "SELECT a['x space'] FROM (SELECT {'x space': 1, 'y': 2, 'z': 3} AS a)" ) + self.validate_all("SELECT * FROM 'x.y'", write={"duckdb": 'SELECT * FROM "x.y"'}) + self.validate_all( + "WITH 'x' AS (SELECT 1) SELECT * FROM x", + write={"duckdb": 'WITH "x" AS (SELECT 1) SELECT * FROM x'}, + ) self.validate_all( "CREATE TABLE IF NOT EXISTS table (cola INT, colb STRING) USING ICEBERG PARTITIONED BY (colb)", write={ diff --git a/tests/dialects/test_presto.py b/tests/dialects/test_presto.py index bf22652..0a9111c 100644 --- a/tests/dialects/test_presto.py +++ b/tests/dialects/test_presto.py @@ -63,8 +63,8 @@ class TestPresto(Validator): "bigquery": "CAST(x AS TIMESTAMPTZ)", "duckdb": "CAST(x AS TIMESTAMPTZ(9))", "presto": "CAST(x AS TIMESTAMP(9) WITH TIME ZONE)", - "hive": "CAST(x AS TIMESTAMPTZ)", - "spark": "CAST(x AS TIMESTAMPTZ)", + "hive": "CAST(x AS TIMESTAMP)", + "spark": "CAST(x AS TIMESTAMP)", }, ) @@ -189,34 +189,38 @@ class TestPresto(Validator): ) self.validate_all( - "DAY_OF_WEEK(timestamp '2012-08-08 01:00')", + "DAY_OF_WEEK(timestamp '2012-08-08 01:00:00')", write={ - "spark": "DAYOFWEEK(CAST('2012-08-08 01:00' AS TIMESTAMP))", - "presto": "DAY_OF_WEEK(CAST('2012-08-08 01:00' AS TIMESTAMP))", + "spark": "DAYOFWEEK(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "presto": "DAY_OF_WEEK(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "duckdb": "DAYOFWEEK(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", }, ) self.validate_all( - "DAY_OF_MONTH(timestamp '2012-08-08 01:00')", + "DAY_OF_MONTH(timestamp '2012-08-08 01:00:00')", write={ - "spark": "DAYOFMONTH(CAST('2012-08-08 01:00' AS TIMESTAMP))", - "presto": "DAY_OF_MONTH(CAST('2012-08-08 01:00' AS TIMESTAMP))", + "spark": "DAYOFMONTH(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "presto": "DAY_OF_MONTH(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "duckdb": "DAYOFMONTH(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", }, ) self.validate_all( - "DAY_OF_YEAR(timestamp '2012-08-08 01:00')", + "DAY_OF_YEAR(timestamp '2012-08-08 01:00:00')", write={ - "spark": "DAYOFYEAR(CAST('2012-08-08 01:00' AS TIMESTAMP))", - "presto": "DAY_OF_YEAR(CAST('2012-08-08 01:00' AS TIMESTAMP))", + "spark": "DAYOFYEAR(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "presto": "DAY_OF_YEAR(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "duckdb": "DAYOFYEAR(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", }, ) self.validate_all( - "WEEK_OF_YEAR(timestamp '2012-08-08 01:00')", + "WEEK_OF_YEAR(timestamp '2012-08-08 01:00:00')", write={ - "spark": "WEEKOFYEAR(CAST('2012-08-08 01:00' AS TIMESTAMP))", - "presto": "WEEK_OF_YEAR(CAST('2012-08-08 01:00' AS TIMESTAMP))", + "spark": "WEEKOFYEAR(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "presto": "WEEK_OF_YEAR(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", + "duckdb": "WEEKOFYEAR(CAST('2012-08-08 01:00:00' AS TIMESTAMP))", }, ) @@ -366,6 +370,15 @@ class TestPresto(Validator): self.validate_identity("APPROX_PERCENTILE(a, b, c, d)") self.validate_all( + "ARRAY_AGG(x ORDER BY y DESC)", + write={ + "hive": "COLLECT_LIST(x)", + "presto": "ARRAY_AGG(x ORDER BY y DESC)", + "spark": "COLLECT_LIST(x)", + "trino": "ARRAY_AGG(x ORDER BY y DESC)", + }, + ) + self.validate_all( "SELECT a FROM t GROUP BY a, ROLLUP(b), ROLLUP(c), ROLLUP(d)", write={ "presto": "SELECT a FROM t GROUP BY a, ROLLUP (b, c, d)", diff --git a/tests/dialects/test_redshift.py b/tests/dialects/test_redshift.py index f5b8a43..ff730f8 100644 --- a/tests/dialects/test_redshift.py +++ b/tests/dialects/test_redshift.py @@ -7,6 +7,9 @@ class TestRedshift(Validator): def test_redshift(self): self.validate_all("CONVERT(INTEGER, x)", write={"redshift": "CAST(x AS INTEGER)"}) self.validate_all( + "DATEADD('day', ndays, caldate)", write={"redshift": "DATEADD(day, ndays, caldate)"} + ) + self.validate_all( 'create table "group" ("col" char(10))', write={ "redshift": 'CREATE TABLE "group" ("col" CHAR(10))', @@ -80,10 +83,10 @@ class TestRedshift(Validator): }, ) self.validate_all( - "DATEDIFF(d, a, b)", + "DATEDIFF('day', a, b)", write={ - "redshift": "DATEDIFF(d, a, b)", - "presto": "DATE_DIFF(d, a, b)", + "redshift": "DATEDIFF(day, a, b)", + "presto": "DATE_DIFF('day', a, b)", }, ) self.validate_all( diff --git a/tests/dialects/test_snowflake.py b/tests/dialects/test_snowflake.py index 1ac910c..5f6efce 100644 --- a/tests/dialects/test_snowflake.py +++ b/tests/dialects/test_snowflake.py @@ -18,6 +18,41 @@ class TestSnowflake(Validator): self.validate_identity("COMMENT IF EXISTS ON TABLE foo IS 'bar'") self.validate_all( + "SELECT i, p, o FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) = 1", + write={ + "": "SELECT i, p, o FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o NULLS LAST) = 1", + "databricks": "SELECT i, p, o FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o NULLS LAST) = 1", + "hive": "SELECT i, p, o FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o NULLS LAST) AS _w FROM qt) AS _t WHERE _w = 1", + "presto": "SELECT i, p, o FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS _w FROM qt) AS _t WHERE _w = 1", + "snowflake": "SELECT i, p, o FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) = 1", + "spark": "SELECT i, p, o FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o NULLS LAST) AS _w FROM qt) AS _t WHERE _w = 1", + "sqlite": "SELECT i, p, o FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o NULLS LAST) AS _w FROM qt) AS _t WHERE _w = 1", + "trino": "SELECT i, p, o FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS _w FROM qt) AS _t WHERE _w = 1", + }, + ) + self.validate_all( + "SELECT BOOLOR_AGG(c1), BOOLOR_AGG(c2) FROM test", + write={ + "": "SELECT LOGICAL_OR(c1), LOGICAL_OR(c2) FROM test", + "duckdb": "SELECT BOOL_OR(c1), BOOL_OR(c2) FROM test", + "postgres": "SELECT BOOL_OR(c1), BOOL_OR(c2) FROM test", + "snowflake": "SELECT BOOLOR_AGG(c1), BOOLOR_AGG(c2) FROM test", + "spark": "SELECT BOOL_OR(c1), BOOL_OR(c2) FROM test", + "sqlite": "SELECT MAX(c1), MAX(c2) FROM test", + }, + ) + self.validate_all( + "SELECT BOOLAND_AGG(c1), BOOLAND_AGG(c2) FROM test", + write={ + "": "SELECT LOGICAL_AND(c1), LOGICAL_AND(c2) FROM test", + "duckdb": "SELECT BOOL_AND(c1), BOOL_AND(c2) FROM test", + "postgres": "SELECT BOOL_AND(c1), BOOL_AND(c2) FROM test", + "snowflake": "SELECT BOOLAND_AGG(c1), BOOLAND_AGG(c2) FROM test", + "spark": "SELECT BOOL_AND(c1), BOOL_AND(c2) FROM test", + "sqlite": "SELECT MIN(c1), MIN(c2) FROM test", + }, + ) + self.validate_all( "TO_CHAR(x, y)", read={ "": "TO_CHAR(x, y)", diff --git a/tests/dialects/test_spark.py b/tests/dialects/test_spark.py index 9328eaa..5b21349 100644 --- a/tests/dialects/test_spark.py +++ b/tests/dialects/test_spark.py @@ -214,6 +214,9 @@ TBLPROPERTIES ( self.validate_identity("TRIM(TRAILING 'SL' FROM 'SSparkSQLS')") self.validate_all( + "CAST(x AS TIMESTAMP)", read={"trino": "CAST(x AS TIMESTAMP(6) WITH TIME ZONE)"} + ) + self.validate_all( "SELECT DATE_ADD(my_date_column, 1)", write={ "spark": "SELECT DATE_ADD(my_date_column, 1)", diff --git a/tests/dialects/test_sqlite.py b/tests/dialects/test_sqlite.py index f889445..98c4a79 100644 --- a/tests/dialects/test_sqlite.py +++ b/tests/dialects/test_sqlite.py @@ -57,6 +57,33 @@ class TestSQLite(Validator): def test_sqlite(self): self.validate_all( + "CURRENT_DATE", + read={ + "": "CURRENT_DATE", + "snowflake": "CURRENT_DATE()", + }, + ) + self.validate_all( + "CURRENT_TIME", + read={ + "": "CURRENT_TIME", + "snowflake": "CURRENT_TIME()", + }, + ) + self.validate_all( + "CURRENT_TIMESTAMP", + read={ + "": "CURRENT_TIMESTAMP", + "snowflake": "CURRENT_TIMESTAMP()", + }, + ) + self.validate_all( + "SELECT DATE('2020-01-01 16:03:05')", + read={ + "snowflake": "SELECT CAST('2020-01-01 16:03:05' AS DATE)", + }, + ) + self.validate_all( "SELECT CAST([a].[b] AS SMALLINT) FROM foo", write={ "sqlite": 'SELECT CAST("a"."b" AS INTEGER) FROM foo', diff --git a/tests/fixtures/identity.sql b/tests/fixtures/identity.sql index 380d945..3551423 100644 --- a/tests/fixtures/identity.sql +++ b/tests/fixtures/identity.sql @@ -132,6 +132,8 @@ INTERVAL '-31' CAST(GETDATE() AS DATE) INTERVAL 2 months INTERVAL (1 + 3) DAYS CAST('45' AS INTERVAL DAYS) +FILTER(a, x -> x.a.b.c.d.e.f.g) +FILTER(a, x -> FOO(x.a.b.c.d.e.f.g) + x.a.b.c.d.e.f.g) TIMESTAMP_DIFF(CURRENT_TIMESTAMP(), 1, DAY) DATETIME_DIFF(CURRENT_DATE, 1, DAY) QUANTILE(x, 0.5) @@ -161,6 +163,10 @@ CAST('2025-11-20 00:00:00+00' AS TIMESTAMP) AT TIME ZONE 'Africa/Cairo' SET x = 1 SET -v SET x = ';' +SET variable = value +SET GLOBAL variable = value +SET LOCAL variable = value +SET @user OFF COMMIT USE db USE role x diff --git a/tests/fixtures/optimizer/canonicalize.sql b/tests/fixtures/optimizer/canonicalize.sql index 8c7cd45..50fee7f 100644 --- a/tests/fixtures/optimizer/canonicalize.sql +++ b/tests/fixtures/optimizer/canonicalize.sql @@ -9,3 +9,19 @@ SELECT CAST(1 AS VARCHAR) AS "a" FROM "w" AS "w"; SELECT CAST(1 + 3.2 AS DOUBLE) AS a FROM w AS w; SELECT 1 + 3.2 AS "a" FROM "w" AS "w"; + +-------------------------------------- +-- Ensure boolean predicates +-------------------------------------- + +SELECT a FROM x WHERE b; +SELECT "x"."a" AS "a" FROM "x" AS "x" WHERE "x"."b" <> 0; + +SELECT a FROM x GROUP BY a HAVING SUM(b); +SELECT "x"."a" AS "a" FROM "x" AS "x" GROUP BY "x"."a" HAVING SUM("x"."b") <> 0; + +SELECT a FROM x GROUP BY a HAVING SUM(b) AND TRUE; +SELECT "x"."a" AS "a" FROM "x" AS "x" GROUP BY "x"."a" HAVING SUM("x"."b") <> 0 AND TRUE; + +SELECT a FROM x WHERE 1; +SELECT "x"."a" AS "a" FROM "x" AS "x" WHERE 1 <> 0; diff --git a/tests/fixtures/optimizer/optimizer.sql b/tests/fixtures/optimizer/optimizer.sql index a14e325..0b5504d 100644 --- a/tests/fixtures/optimizer/optimizer.sql +++ b/tests/fixtures/optimizer/optimizer.sql @@ -386,6 +386,29 @@ SELECT "x"."b" + 1 AS "c" FROM "x" AS "x"; +# title: unqualified struct element is selected in the outer query +# execute: false +WITH "cte" AS ( + SELECT + FROM_JSON("value", 'STRUCT<f1: STRUCT<f2: STRUCT<f3: STRUCT<f4: STRING>>>>') AS "struct" + FROM "tbl" +) SELECT "struct"."f1"."f2"."f3"."f4" AS "f4" FROM "cte"; +SELECT + FROM_JSON("tbl"."value", 'STRUCT<f1: STRUCT<f2: STRUCT<f3: STRUCT<f4: STRING>>>>')."f1"."f2"."f3"."f4" AS "f4" +FROM "tbl" AS "tbl"; + +# title: qualified struct element is selected in the outer query +# execute: false +WITH "cte" AS ( + SELECT + FROM_JSON("value", 'STRUCT<f1: STRUCT<f2: INTEGER>, STRUCT<f3: STRING>>') AS "struct" + FROM "tbl" +) SELECT "cte"."struct"."f1"."f2" AS "f2", "cte"."struct"."f1"."f3" AS "f3" FROM "cte"; +SELECT + FROM_JSON("tbl"."value", 'STRUCT<f1: STRUCT<f2: INTEGER>, STRUCT<f3: STRING>>')."f1"."f2" AS "f2", + FROM_JSON("tbl"."value", 'STRUCT<f1: STRUCT<f2: INTEGER>, STRUCT<f3: STRING>>')."f1"."f3" AS "f3" +FROM "tbl" AS "tbl"; + # title: left join doesnt push down predicate to join in merge subqueries # execute: false SELECT @@ -430,3 +453,11 @@ LEFT JOIN "unlocked" AS "unlocked" WHERE CASE WHEN "unlocked"."company_id" IS NULL THEN 0 ELSE 1 END = FALSE AND NOT "company_table_2"."id" IS NULL; + +# title: db.table alias clash +# execute: false +select * from db1.tbl, db2.tbl; +SELECT + * +FROM "db1"."tbl" AS "tbl" +CROSS JOIN "db2"."tbl" AS "tbl_2"; diff --git a/tests/fixtures/optimizer/pushdown_projections.sql b/tests/fixtures/optimizer/pushdown_projections.sql index f3b1a69..6ff9383 100644 --- a/tests/fixtures/optimizer/pushdown_projections.sql +++ b/tests/fixtures/optimizer/pushdown_projections.sql @@ -4,6 +4,9 @@ SELECT _q_0.a AS a FROM (SELECT x.a AS a FROM x AS x) AS _q_0; SELECT 1 FROM (SELECT * FROM x) WHERE b = 2; SELECT 1 AS "1" FROM (SELECT x.b AS b FROM x AS x) AS _q_0 WHERE _q_0.b = 2; +SELECT a, b, a from x; +SELECT x.a AS a, x.b AS b, x.a AS a FROM x AS x; + SELECT (SELECT c FROM y WHERE q.b = y.b) FROM (SELECT * FROM x) AS q; SELECT (SELECT y.c AS c FROM y AS y WHERE q.b = y.b) AS _col_0 FROM (SELECT x.b AS b FROM x AS x) AS q; diff --git a/tests/fixtures/pretty.sql b/tests/fixtures/pretty.sql index a06af88..8de9c85 100644 --- a/tests/fixtures/pretty.sql +++ b/tests/fixtures/pretty.sql @@ -1,3 +1,6 @@ +SET x TO 1; +SET x = 1; + SELECT * FROM test; SELECT * diff --git a/tests/test_build.py b/tests/test_build.py index 718e471..43707b0 100644 --- a/tests/test_build.py +++ b/tests/test_build.py @@ -510,6 +510,27 @@ class TestBuild(unittest.TestCase): .qualify("row_number() OVER (PARTITION BY a ORDER BY b) = 1"), "SELECT * FROM table QUALIFY ROW_NUMBER() OVER (PARTITION BY a ORDER BY b) = 1", ), + (lambda: exp.delete("tbl1", "x = 1").delete("tbl2"), "DELETE FROM tbl2 WHERE x = 1"), + (lambda: exp.delete("tbl").where("x = 1"), "DELETE FROM tbl WHERE x = 1"), + (lambda: exp.delete(exp.table_("tbl")), "DELETE FROM tbl"), + ( + lambda: exp.delete("tbl", "x = 1").where("y = 2"), + "DELETE FROM tbl WHERE x = 1 AND y = 2", + ), + ( + lambda: exp.delete("tbl", "x = 1").where(exp.condition("y = 2").or_("z = 3")), + "DELETE FROM tbl WHERE x = 1 AND (y = 2 OR z = 3)", + ), + ( + lambda: exp.delete("tbl").where("x = 1").returning("*", dialect="postgres"), + "DELETE FROM tbl WHERE x = 1 RETURNING *", + "postgres", + ), + ( + lambda: exp.delete("tbl", where="x = 1", returning="*", dialect="postgres"), + "DELETE FROM tbl WHERE x = 1 RETURNING *", + "postgres", + ), ]: with self.subTest(sql): self.assertEqual(expression().sql(dialect[0] if dialect else None), sql) diff --git a/tests/test_expressions.py b/tests/test_expressions.py index ecbdc24..69e1d14 100644 --- a/tests/test_expressions.py +++ b/tests/test_expressions.py @@ -6,6 +6,8 @@ from sqlglot import alias, exp, parse_one class TestExpressions(unittest.TestCase): + maxDiff = None + def test_arg_key(self): self.assertEqual(parse_one("sum(1)").find(exp.Literal).arg_key, "this") @@ -91,6 +93,32 @@ class TestExpressions(unittest.TestCase): self.assertIsInstance(column.parent_select, exp.Select) self.assertIsNone(column.find_ancestor(exp.Join)) + def test_to_dot(self): + column = parse_one('a.b.c."d".e.f').find(exp.Column) + dot = column.to_dot() + + self.assertEqual(dot.sql(), 'a.b.c."d".e.f') + + self.assertEqual( + dot, + exp.Dot( + this=exp.Dot( + this=exp.Dot( + this=exp.Dot( + this=exp.Dot( + this=exp.to_identifier("a"), + expression=exp.to_identifier("b"), + ), + expression=exp.to_identifier("c"), + ), + expression=exp.to_identifier("d", quoted=True), + ), + expression=exp.to_identifier("e"), + ), + expression=exp.to_identifier("f"), + ), + ) + def test_root(self): ast = parse_one("select * from (select a from x)") self.assertIs(ast, ast.root()) @@ -480,6 +508,7 @@ class TestExpressions(unittest.TestCase): self.assertIsInstance(parse_one("COMMIT"), exp.Commit) self.assertIsInstance(parse_one("ROLLBACK"), exp.Rollback) self.assertIsInstance(parse_one("GENERATE_SERIES(a, b, c)"), exp.GenerateSeries) + self.assertIsInstance(parse_one("COUNT_IF(a > 0)"), exp.CountIf) def test_column(self): column = parse_one("a.b.c.d") diff --git a/tests/test_generator.py b/tests/test_generator.py index d64a818..fce5c81 100644 --- a/tests/test_generator.py +++ b/tests/test_generator.py @@ -1,5 +1,6 @@ import unittest +from sqlglot import parse_one from sqlglot.expressions import Func from sqlglot.parser import Parser from sqlglot.tokens import Tokenizer @@ -28,3 +29,12 @@ class TestGenerator(unittest.TestCase): tokens = Tokenizer().tokenize("SELECT SPECIAL_UDF(a, b, c, d + 1) FROM x") expression = NewParser().parse(tokens)[0] self.assertEqual(expression.sql(), "SELECT SPECIAL_UDF(a, b, c, d + 1) FROM x") + + def test_identify(self): + assert parse_one("x").sql(identify=True) == '"x"' + assert parse_one("x").sql(identify="always") == '"x"' + assert parse_one("X").sql(identify="always") == '"X"' + assert parse_one("x").sql(identify="safe") == '"x"' + assert parse_one("X").sql(identify="safe") == "X" + assert parse_one("x as 1").sql(identify="safe") == '"x" AS "1"' + assert parse_one("X as 1").sql(identify="safe") == 'X AS "1"' diff --git a/tests/test_parser.py b/tests/test_parser.py index dbde437..861e47f 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -102,6 +102,13 @@ class TestParser(unittest.TestCase): self.assertEqual(expressions[1].sql(), "ADD JAR s3://a") self.assertEqual(expressions[2].sql(), "SELECT 1") + def test_lambda_struct(self): + expression = parse_one("FILTER(a.b, x -> x.id = id)") + lambda_expr = expression.expression + + self.assertIsInstance(lambda_expr.this.this, exp.Dot) + self.assertEqual(lambda_expr.sql(), "x -> x.id = id") + def test_transactions(self): expression = parse_one("BEGIN TRANSACTION") self.assertIsNone(expression.this) @@ -280,6 +287,39 @@ class TestParser(unittest.TestCase): self.assertIsInstance(parse_one("TIMESTAMP()"), exp.Func) self.assertIsInstance(parse_one("map.x"), exp.Column) + def test_set_expression(self): + set_ = parse_one("SET") + + self.assertEqual(set_.sql(), "SET") + self.assertIsInstance(set_, exp.Set) + + set_session = parse_one("SET SESSION x = 1") + + self.assertEqual(set_session.sql(), "SET SESSION x = 1") + self.assertIsInstance(set_session, exp.Set) + + set_item = set_session.expressions[0] + + self.assertIsInstance(set_item, exp.SetItem) + self.assertIsInstance(set_item.this, exp.EQ) + self.assertIsInstance(set_item.this.this, exp.Identifier) + self.assertIsInstance(set_item.this.expression, exp.Literal) + + self.assertEqual(set_item.args.get("kind"), "SESSION") + + set_to = parse_one("SET x TO 1") + + self.assertEqual(set_to.sql(), "SET x = 1") + self.assertIsInstance(set_to, exp.Set) + + set_as_command = parse_one("SET DEFAULT ROLE ALL TO USER") + + self.assertEqual(set_as_command.sql(), "SET DEFAULT ROLE ALL TO USER") + + self.assertIsInstance(set_as_command, exp.Command) + self.assertEqual(set_as_command.this, "SET") + self.assertEqual(set_as_command.expression, " DEFAULT ROLE ALL TO USER") + def test_pretty_config_override(self): self.assertEqual(parse_one("SELECT col FROM x").sql(), "SELECT col FROM x") with patch("sqlglot.pretty", True): diff --git a/tests/test_tokens.py b/tests/test_tokens.py index 0888555..909eb18 100644 --- a/tests/test_tokens.py +++ b/tests/test_tokens.py @@ -30,6 +30,21 @@ class TestTokens(unittest.TestCase): self.assertEqual(tokens[-1].line, 6) + def test_command(self): + tokens = Tokenizer().tokenize("SHOW;") + self.assertEqual(tokens[0].token_type, TokenType.SHOW) + self.assertEqual(tokens[1].token_type, TokenType.SEMICOLON) + + tokens = Tokenizer().tokenize("EXECUTE") + self.assertEqual(tokens[0].token_type, TokenType.EXECUTE) + self.assertEqual(len(tokens), 1) + + tokens = Tokenizer().tokenize("FETCH;SHOW;") + self.assertEqual(tokens[0].token_type, TokenType.FETCH) + self.assertEqual(tokens[1].token_type, TokenType.SEMICOLON) + self.assertEqual(tokens[2].token_type, TokenType.SHOW) + self.assertEqual(tokens[3].token_type, TokenType.SEMICOLON) + def test_jinja(self): tokenizer = Tokenizer() diff --git a/tests/test_transforms.py b/tests/test_transforms.py index 76d63b6..1e85b80 100644 --- a/tests/test_transforms.py +++ b/tests/test_transforms.py @@ -3,12 +3,13 @@ import unittest from sqlglot import parse_one from sqlglot.transforms import ( eliminate_distinct_on, + eliminate_qualify, remove_precision_parameterized_types, unalias_group, ) -class TestTime(unittest.TestCase): +class TestTransforms(unittest.TestCase): maxDiff = None def validate(self, transform, sql, target): @@ -74,6 +75,38 @@ class TestTime(unittest.TestCase): 'SELECT _row_number FROM (SELECT _row_number, ROW_NUMBER() OVER (PARTITION BY _row_number ORDER BY c DESC) AS _row_number_2 FROM x) WHERE "_row_number_2" = 1', ) + def test_eliminate_qualify(self): + self.validate( + eliminate_qualify, + "SELECT i, a + 1 FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p) = 1", + "SELECT i, _c FROM (SELECT i, a + 1 AS _c, ROW_NUMBER() OVER (PARTITION BY p) AS _w, p FROM qt) AS _t WHERE _w = 1", + ) + self.validate( + eliminate_qualify, + "SELECT i FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) = 1 AND p = 0", + "SELECT i FROM (SELECT i, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS _w, p, o FROM qt) AS _t WHERE _w = 1 AND p = 0", + ) + self.validate( + eliminate_qualify, + "SELECT i, p, o FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) = 1", + "SELECT i, p, o FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS _w FROM qt) AS _t WHERE _w = 1", + ) + self.validate( + eliminate_qualify, + "SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS row_num FROM qt QUALIFY row_num = 1", + "SELECT i, p, o, row_num FROM (SELECT i, p, o, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS row_num FROM qt) AS _t WHERE row_num = 1", + ) + self.validate( + eliminate_qualify, + "SELECT * FROM qt QUALIFY ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) = 1", + "SELECT * FROM (SELECT *, ROW_NUMBER() OVER (PARTITION BY p ORDER BY o) AS _w, p, o FROM qt) AS _t WHERE _w = 1", + ) + self.validate( + eliminate_qualify, + "SELECT c2, SUM(c3) OVER (PARTITION BY c2) AS r FROM t1 WHERE c3 < 4 GROUP BY c2, c3 HAVING SUM(c1) > 3 QUALIFY r IN (SELECT MIN(c1) FROM test GROUP BY c2 HAVING MIN(c1) > 3)", + "SELECT c2, r FROM (SELECT c2, SUM(c3) OVER (PARTITION BY c2) AS r, c1 FROM t1 WHERE c3 < 4 GROUP BY c2, c3 HAVING SUM(c1) > 3) AS _t WHERE r IN (SELECT MIN(c1) FROM test GROUP BY c2 HAVING MIN(c1) > 3)", + ) + def test_remove_precision_parameterized_types(self): self.validate( remove_precision_parameterized_types, |